Вы находитесь на странице: 1из 2890

e* will be created at load time.

;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq
;;; In lesson 4, the following function is moved to utils.lsp ;
;;;--------------------------------------------------------------------;
;;; Function: Degrees->Radians ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts a number representing an ;
;;; angular measurement in degrees, into its radian ;
;;; equivalent. There is no error checking done on the ;
;;; numberOfDegrees parameter -- it is always expected ;
;;; to be a valid number. ;
;;;--------------------------------------------------------------------;
(defun Degrees->Radians (numberOfDegrees)
(* pi (/ numberOfDegrees 180.0))
) ;_ end of defun

;;; In lesson 4, the following function is moved to utils.lsp ;


;;;--------------------------------------------------------------------;
;;; Function: 3dPoint->2dPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; 3D point (a list of three integers or reals), and ;
;;; converts it into a 2D point (a list of two reals). ;
;;; There is no error checking done on the 3dpt ;
;;; parameter -- it is always expected to be a valid ;
;;; point. ;
;;;--------------------------------------------------------------------;
;;; Work to do: Add some kind of parameter checking so that this ;
;;; function won't crash a program if it is passed a ;
;;; null value, or some other kind of data type than a ;
;;; 3D point. ;
;;;--------------------------------------------------------------------;
(defun 3dPoint->2dPoint (3dpt)
(list (float (car 3dpt)) (float (cadr 3dpt)))
) ;_ end of defun
;;; In lesson 4, the following function is moved to utils.lsp ;
;;;--------------------------------------------------------------------;
;;; Function: list->variantArray ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; list of double values, e.g. a list of 2D points: ;
;;; '(p1.X p1.Y p2.X p2.Y p3.X p3.Y p4.X p4.Y). ;
;;; The list is converted into an ActiveX ;
;;; variant based on a safearray. ;
;;; No error checking is performed on the parameter -- ;
;;; it is assumed to consist of a list of doubles. ;
;;;------------------------------------------------------------------- ;
(defun gp:list->variantArray (ptsList / arraySpace sArray)
; allocate space for an array of 2d poin
ts stored as doubles
(setq arraySpace
(vlax-make-safearray
vlax-vbdouble ; element type
(cons 0
(- (length ptsList) 1)
) ; array dimension
)
)
(setq sArray (vlax-safearray-fill arraySpace ptsList))
; return array variant
(vlax-make-variant sArray)
)

;;; In lesson 4, the following function is moved to gp-io.lsp ;


;;;--------------------------------------------------------------------;
;;; Function: gp:getPointInput ;
;;;--------------------------------------------------------------------;
;;; Description: This function will ask the user to select three ;
;;; points in the drawing, which will determine the ;
;;; path location, direction, and size. ;
;;;--------------------------------------------------------------------;
;;; If the user responds to the get functions with valid data, ;
;;; use startPt and endPt to determine the position, length, and ;
;;; angle at which the path is drawn. ;
;;;--------------------------------------------------------------------;
;;; The return value of this function will be a list consisting of: ;
;;; (10 . Starting Point) ;; A list of 3 reals (a point) denotes ;
;;; ;; the starting point of the garden path. ;
;;; (11 . Ending Point) ;; A list of 3 reals (a point) denotes ;
;;; ;; the ending point of the garden path. ;
;;; (40 . Width) ;; A real number denoting boundary width ;
;;; (41 . Length) ;; A real number denoting boundary length ;
;;; (50 . Path Angle) ;; A real number denoting the angle of the ;
;;; ;; path, in radians ;
;;;--------------------------------------------------------------------;
(defun gp:getPointInput (/ StartPt EndPt HalfWidth)
(if (setq StartPt (getpoint "\nStart point of path: "))
(if (setq EndPt (getpoint StartPt "\nEndpoint of path: "))
(if (setq HalfWidth (getdist EndPt "\nHalf width of path: "))
;; if you've made it this far, build the association list
;; as documented above. This will be the return value
;; from the function.
(list
(cons 10 StartPt)
(cons 11 EndPt)
(cons 40 (* HalfWidth 2.0))
(cons 50 (angle StartPt EndPt))
(cons 41 (distance StartPt EndPt))
) ;_ end of list
) ;_ end of if
) ;_ end of if
) ;_ end of if
) ;_ end of defun
;;; In lesson 4, the following function is moved to gp-io.lsp ;
;;;--------------------------------------------------------------------;
;;; Function: gp:getDialogInput ;
;;;--------------------------------------------------------------------;
;;; Description: This function will ask the user to determine the ;
;;; following path parameters: ;
;;; Tile size, Tile spacing ;
;;; Boundary polyline type ;
;;; Entity creation method ;
;;;--------------------------------------------------------------------;
(defun gp:getDialogInput ()
(alert
"Function gp:getDialogInput will get user choices via a dialog"
) ;_ end of alert
;; For now, return T, as if every task in the function worked correctly
T
) ;_ end of defun

;;; In lesson 4, the following function is moved to gpdraw.lsp ;


;;;--------------------------------------------------------------------;
;;; Function: gp:drawOutline ;
;;;--------------------------------------------------------------------;
;;; Description: This function will draw the outline of the garden ;
;;; path. ;
;;;--------------------------------------------------------------------;
;;; Note: no error checking or validation is performed on the ;
;;; BoundaryData parameter. The sequence of items within this ;
;;; parameter do not matter, but it is assumed that all sublists ;
;;; are present, and contain valid data. ;
;;;--------------------------------------------------------------------;
;;; Note: This function uses Activex as a means to produce the garden ;
;;; path boundary. The reason for this will become apparent during ;
;;; future lessons. But here is a hint: certain entity creation ;
;;; methods will not work from within a reactor-triggered function ;
;;;--------------------------------------------------------------------;
(defun gp:drawOutline (BoundaryData / VLADataPts PathAngle
Width HalfWidth StartPt PathLength
angm90 angp90 p1 p2
p3 p4 polypoints pline
)
;; extract the values from the list BoundaryData
(setq PathAngle (cdr (assoc 50 BoundaryData))
Width (cdr (assoc 40 BoundaryData))
HalfWidth (/ Width 2.00)
StartPt (cdr (assoc 10 BoundaryData))
PathLength (cdr (assoc 41 BoundaryData))
angp90 (+ PathAngle (Degrees->Radians 90))
angm90 (- PathAngle (Degrees->Radians 90))
p1 (polar StartPt angm90 HalfWidth)
p2 (polar p1 PathAngle PathLength)
p3 (polar p2 angp90 Width)
p4 (polar p3 (+ PathAngle (Degrees->Radians 180)) PathLength)
polypoints (apply 'append
(mapcar '3dPoint->2dPoint (list p1 p2 p3 p4))
)
)

;; ***** data conversion *****


;; Notice, polypoints is in AutoLISP format, consisting of a list of the
;; 4 corner points for the garden path.
;; The variable needs to be converted to a form of input parameter
;; acceptable to ActiveX calls.
(setq VLADataPts (gp:list->variantArray polypoints))
;; Add polyline to the model space using ActiveX automation.
(setq pline (vla-addLightweightPolyline
*ModelSpace* ; Global Definition for Model Space
VLADataPts
) ;_ end of vla-addLightweightPolyline
) ;_ end of setq
(vla-put-closed pline T)
;; Return the ActiveX object name for the outline polyline
;; The return value should look something like this:
;; #<VLA-OBJECT IAcadLWPolyline 02351a34>
pline
) ;_ end of defun

;;;********************************************************************;
;;; Function: C:GPath The Main Garden Path Function ;
;;;--------------------------------------------------------------------;
;;; Description: This is the main garden path function. It is a C: ;
;;; function, meaning that it is turned into an AutoCAD ;
;;; command called GPATH. This function determines the ;
;;; overall flow of the Garden Path program ;
;;;********************************************************************;
;;; The gp_PathData variable is an association list of the form: ;
;;; (10 . Starting Point) -- A list of 3 reals (a point) denotes ;
;;; the starting point of the garden path ;
;;; (11 . Ending Point) -- A list of 3 reals (a point) denotes ;
;;; the ending point of the garden path ;
;;; (40 . Width) -- A real number denoting boundary width ;
;;; (41 . Length) -- A real number denoting boundary length ;
;;; (50 . Path Angle) -- A real number denoting the angle of the ;
;;; path, in radians ;
;;; (42 . Tile Size) -- A real number denoting the size ;
;;; (radius) of the garden path tiles ;
;;; (43 . Tile Offset) -- Spacing of tiles, border to border ;
;;; ( 3 . Object Creation Style) ;
;;; -- The object creation style indicates how ;
;;; the tiles are to be drawn. The ;
;;; expected value is a string and one ;
;;; one of three values (string case is :
;;; unimportant): ;
;;; "ActiveX" ;
;;; "Entmake" ;
;;; "Command" ;
;;; ( 4 . Polyline Border Style) ;
;;; -- The polyline border style determines ;
;;; the polyline type to be used for the ;
;;; path boundary. The expected value ;
;;; one of two values (string case is :
;;; unimportant): ;
;;; "Pline" ;
;;; "Light" ;
;;;********************************************************************;
(defun C:GPath (/ gp_PathData PolylineName)
;; Ask the user for input: first for path location and
;; direction, then for path parameters. Continue only if you have
;; valid input. Store the data in gp_PathData
(if (setq gp_PathData (gp:getPointInput))
(if (gp:getDialogInput)
(progn
;; At this point, you have valid input from the user.
;; Draw the outline, storing the resulting polyline "pointer"
;; in the variable called PolylineName
(setq PolylineName (gp:drawOutline gp_PathData))
(princ "\nThe gp:drawOutline function returned <")
(princ PolylineName)
(princ ">")
(Alert "Congratulations - your program is complete!")
) ;_ end of progn
(princ "\nFunction cancelled.")
) ;_ end of if
(princ "\nIncomplete information to draw a boundary.")
) ;_ end of if
(princ) ; exit quietly
) ;_ end of defun
;;; Display a message to let the user know the command name
(princ "\nType GPATH to draw a garden path.")
(princ)¥ & Qëñq¶4±j ½ç|æ9ÚÄ
Ó¥$ÕºF½ZUnÀÜå
V ³)g B£0ñi W×(4T8#©8wÕ©
%)ë«  0C&‾
õ8_Å٥ʨQãüÜ
é ¤Z£ i«QÊj
¿ó 8¦Úbx
@é&»A)/ÇÙgº>'K
E¡ÁÁB Ñ;óú‾ ÈtÕ;\ú
¿P¦ÞÎÓ ̹ Aüom?çW=
ßxÞô-
‾Íú—¶Ò-
2 ð5ßáÞüÜÏ
‾Àòæ[ Ëû0ñ¾¾øÎ}ø¦y)7
ú÷Sá>Ó£V
ta¾¾õõõ>j¥ÜÇTÐ7ú
då`r£¾n~ÏôY ¿@ï¼ÏÇtÜ
&à+` ; Âò`qÊ2
A4 É ä±Ê°Èê&‾®ª6ê±Z
A9Ð=¨- t ° lL®Ä
Ã`;»?Á~p
â_øóyxg)Ë
Á
YA +äùCb( R¡,¨* T 2B-Ð
¨ê ¡Ðnè÷ÐQètº}MA ï  0Óal»Á¾° Sàx ¬ kà&¸^Á£ð>ø0|>_ 'á ð,ÂG!"F$H:R !z¤éF Qd?r
9 \A& GÈ rQ
»¢áh½ }ÊÑ}´Câ¸qâ9
íE Ñ]èaô4z BgÐ×Á àE#H *B=¡ 0HØIø p p 0MxJ$ùD1 D, V ½ÄÄÄãÄKÄ»ÄY dEò"E ÒI2 ÔEÚB
N'çÎ)Î].ÂuæJ¸rî
î÷
w Gä xR^‾ ÷[ÞoÆ ch gÞ`>bþ ù$á»ñ¥ü*~ÿ ÿ:ÿ¥ E Òb Å~ ËÏ,m,£- Ý , ‾Y¾´Â¬â*6X [ݱF=3ë
n»3Ü£ÜkÜGÝ‾z=Ä [ =¾ô = <Ë=G</zÁ^Á^j‾^ ¼ Þ¡ÞZïQïBº0FX'Ü+ òáû¤útø û<öuñ-ôÝà{Ö÷µ_ _ ß ß-G ,ê}ç
JlN< DHJIÚ tCj' KwKg C % N¡§d§
Ún§|ßLÝlÜ<9
 ê kªO=
ï5%4ý¦
úO
§%§mL»½Ðu¡váx:H
¤[mþ7¸lqlio
$ üZh³lG+ÔZÚz²Í¹³mzyâò]íÔöÊö?uøuôw|¿"
Õ¦oL¿
B ‾!ȨÉøC&13#s$ó/Y¢¬
 ÷ d Ò @ ®  ú i Ø¡G¡¶¢&¢
¬³ÙÜìâì=ÙOsbsúrnåºç
űN»Îå
££v£æ¤V¤Ç¥8¥©¦
wW&®ÜÛe֥ﺱ*|ÕöÕèjõê
sOæ1ó òvç=Ë
¦ ¦ý§n§à¨R¨Ä©7©©ª
ËïÏ \ä»hÙ¢ó
5k¶¬yÖ
¾æ ç ¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8ʗË6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔ
ç©è2è¼éFéÐê[êåëpëûì íí î(î´ï@ïÌðXðåñrñÿò óó§ô4ôÂõPõÞömöû÷ øø¨ù8ùÇúWúçûwüü ý)ýºþKþÜÿmÿÿ
÷ óû
536 0 obj<</Length 12248/Filter/FlateDecode/Length1 26076>>stream
endobj
endstream
[HÑÄUìË PSY
FdQA}? a£HdI: ; $" ´b« Ä P D¥ µ a@E¤ éÖDm¡ Xzh§f;;;
;;; GPPOLY.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; final state of the application at the end of Lesson 7. Use this ;
;;; file to check your work. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: gp:ZeroSmallNum ;
;;;--------------------------------------------------------------------;
;;; Description: This function tests and "fixes" very small numbers ;
;;; This is required when comparing reals to take care ;
;;; of rounding problems. The granularity of the ;
;;; comparison is very fine, which should guarantee ;
;;; that this function will work for any garden path ;
;;; situation. However, if this is applied to other ;
;;; applications, be sure to check for tolerances and ;
;;; numeric accuracy. ;
;;;--------------------------------------------------------------------;
(defun gp:ZeroSmallNum (num)
(setq num (rtos num 2 24))
(distof
(if (or (wcmatch num "*e-*")
(wcmatch num "*E-*")
) ;_ end of or
"0.0"
num
) ;_ end of if
) ;_ end of distof
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:Rtos2 ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts any real or interger number ;
;;; into a string decimal. ;
;;;--------------------------------------------------------------------;
(defun gp:Rtos2 (AnyNumber) (rtos AnyNumber 2))

;;;--------------------------------------------------------------------;
;;; Function: gp:PointEqual ;
;;;--------------------------------------------------------------------;
;;; Description: This function tests if points p1 and p2 are equal, ;
;;; given the accuracy defined in gp:ZeroSmallNum. ;
;;;--------------------------------------------------------------------;
(defun gp:PointEqual (p1 p2 /)
(setq p1 (mapcar 'gp:ZeroSmallNum p1) ; check for very small numbers in p1 and
fix them
p2 (mapcar 'gp:ZeroSmallNum p2) ; check for very small numbers in p2 and
fix them
p1 (mapcar 'gp:Rtos2 p1)
p2 (mapcar 'gp:Rtos2 p2)
) ;_ end of setq
;; Does every element the list p1 and p2 equal T
(Vl-Every '(lambda (x) (equal x 'T)) (mapcar 'equal p1 p2))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:recalcPolyCorners ;
;;;--------------------------------------------------------------------;
;;; Description: This function sorts out the changes made to the ;
;;; polyline border when one of its corner points has ;
;;; been dragged to a new location. What we know going ;
;;; in to this function is the point value of the moved ;
;;; point, which we can compare to the keyed List of ;
;;; that record how the polyline had been arranged ;
;;; prior to the move. ;
;;;--------------------------------------------------------------------;
(defun gp:recalcPolyCorners (MovedPoint KeyedList / movedKey testSet1 testSet2
result1 result2 )
;; From the MovedPoint, i.e., (15 (3.45 2.32)), extract just the
;; key value
(setq movedKey (car MovedKeyPoint))
;; Set up the points that need to be recalculated. The first value
;; in each test set is a point adjacent to the moved point. The
;; second value in each test set is the point opposite to the moved
;; point.
(cond ((equal movedKey 12)
(setq testSet1 '(13 14)
testSet2 '(15 14)))
((equal movedKey 13)
(setq testSet1 '(12 15)
testSet2 '(14 15)))
((equal movedKey 14)
(setq testSet1 '(15 12)
testSet2 '(13 12)))
((equal movedKey 15)
(setq testSet1 '(14 13)
testSet2 '(12 13)))
)
(setq result1 (getPerp-Distance-and-Angle
(cdr (assoc (nth 0 testSet1) KeyedList))
(cdr (assoc (nth 1 testSet1) KeyedList))
(cdr MovedPoint))
result2 (getPerp-Distance-and-Angle
(cdr (assoc (nth 0 testSet2) keyedList))
(cdr (assoc (nth 1 testSet2) keyedList))
(cdr MovedPoint))
;; replace the moved point
keyedList (subst MovedPoint
(assoc movedKey KeyedList) keyedList)
;; replace the first "opposite the moved point" point
keyedList (subst (cons (nth 0 testSet1) (car Result1))
(assoc (nth 0 testSet1) keyedList) keyedList)
;; replace the second "opposite the moved point" point
;; this will be the return value of the entire function
keyedList (subst (cons (nth 0 testSet2) (car Result2))
(assoc (nth 0 testSet2) keyedList) keyedList))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:FindPointInList ;
;;;--------------------------------------------------------------------;
;;; Description: This function will search for a testpoint, ex. ;
;;; '(4.05253 6.28481), searching in a gpath boundary ;
;;; list which is in the form: ;
;;; ((12 4.05253 3.62658) ;
;;; (15 4.05253 6.28481) ;
;;; (13 12.6903 3.62658) ;
;;; (14 12.6903 6.28481) ;
;;; ) ;
;;;--------------------------------------------------------------------;
;;; If the point is found this function returns the matching assoc ;
;;; value within a list, for example: ((15 4.05253 6.28481)) ;
;;; If no match is made, the function returns nil ;
;;;--------------------------------------------------------------------;
;;; Required Arguments: ;
;;; TestPoint is a 2D point (list of 2 reals ;
;;; TestList contains the fields and the points to test against ;
;;;--------------------------------------------------------------------;
(defun gp:FindPointInList (TestPoint TestList / result)
;; Since every point in TestList needs to be evaluated, use mapcar
;; to apply a function to be evaluated to every point in the TestList.
;; Mapcar has the advantage over foreach and while due to its ability
;; to apply a function to all items in a list without having to determine
;; a loop test condition, or to determine the number of iterations required.
(setq result (mapcar '(lambda (pointToExamine)
(if (gp:PointEqual
TestPoint
(cdr pointToExamine)
) ;_ end of gp:PointEqual
;; this will return the point with the assoc key
;; if the TestPoint is equal to the cdr of pointToEx
amine
pointToExamine
) ;_ end of if
) ;_ end of lambda
Testlist
) ;_ end of mapcar
) ;_ end of setq
;; --------------------------------------------------------------------------
;; What has happened above:
;; We passed FindPoint two arguments.
;; The first was the testPoint to look for, such as
;; was '(4.05253 6.28481).
;; The second argument was a list of consed points such as
;; ((12 4.05253 3.62658)
;; (15 4.05253 6.28481)
;; (13 12.6903 3.62658)
;; (14 12.6903 6.28481)
;; )
;; The purpose of this function was to determine if the point to be
;; searched <testPoint> is present in the list Testlist. In this case
;; the function FindPoint would return:
;; (nil (15 4.05253 6.28481) nil nil)
;; As you can see TestPoint matches the point in the field 15 above.
;; At this moment we are not interested in the nils present in the list.
;; So we remove the nils using Visual Lisp's vl-remove function.
;; (vl-remove nil Result)
;; Now the return value would be:
;; ( (15 4.05253 6.28481) )
;; which is excactly what we are expecting
;; Note if the variable <Result> is full of nils the expression
;; (vl-remove nil Result) would return nil
;; Example:
;; _$ (vl-remove nil '( nil nil nil nil ))
;; nil
;; _$
;; So the duty of this function is to return a found Point or nil
;; remove any nil value from the resulting list
(vl-remove nil Result)
) ;_ end of defun
;;;--------------------------------------------------------------------;
;;; Function: gp:FindMovedPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function's responsibility is to find the ;
;;; specific polyline border corner point that moved by ;
;;; comparing the presentPoints (the corner points after ;
;;; the user has moved one of them) with the keyed point ;
;;; list representing the previous configuration of the ;
;;; path border. ;
;;; ;
;;; Arguments: keyListToLookFor = list of keyindexes '( 12 13 14 15);
;;; PresentPoints = a list of points to examine ;
;;; KeyedList = a list comprised of consed key ;
;;; values and points. ;
;;;--------------------------------------------------------------------;
(defun gp:FindMovedPoint (keyListToLookFor PresentPoints KeyedList /
keyliststatus missingkey movedpoint result
returnvalue)
(setq result (apply 'append
(mapcar '(lambda (PointToLookFor)
;; since Findpoint only returns a value when fo
und
;; lets test the result. If its nil we'll place
(if (setq ReturnValue
(gp:FindPointInList PointToLookFor K
eyedList)
) ;_ end of setq
ReturnValue
;; the function above returned
;; something like ( (15 4.05253 6.28481) )
;; the structure above is a list within a lis
t
;; It failed (returned nil)
;; So we return a new value using the
(list (cons nil PointToLookFor))
) ;_ end of if
) ;_ end of lambda
PresentPoints
) ;_ end of mapcar
) ;_ end of apply
) ;_ end of setq
;; The expression above returned something like this:
;; ((12 #.# #.#) (14 #.# #.#) (15 #.# #.#))
;; Now run a test to find out which assoc key is missing
(setq KeylistStatus
(mapcar '(lambda (IndexKey)
(if (assoc IndexKey result)
(list T (assoc IndexKey result))
(list nil IndexKey)
) ;_ end of if
) ;_ end of lambda
keyListToLookFor
) ;_ end of mapcar
) ;_ end of setq
;; The expression above returned something like this:
;; ((T (12 #.# #.#)) (nil 13) (T (14 #.# #.#)) (T (15 #.# #.#)))
;; Now return just the key value for the missing point
(setq MissingKey
(cadr
(car
(vl-remove-if '(lambda (argument)
(not (null (car Argument)))
) ;_ end of lambda
KeylistStatus
) ;_ end of vl-remove-if
) ;_ end of car
) ;_ end of cadr
) ;_ end of setq
;; the expression above returned 13
;; Now, using the key, get the point that moved
(setq MovedPoint (cdar
;; vl-remove-if-not in this case is testing for the car
;; to be anything that is not nil.
(vl-remove-if-not
'(lambda (argument)
(null (car Argument))
) ;_ end of lambda
Result
) ;_ end of vl-remove-if-not
) ;_ end of cdar
) ;_ end of setq
;; The expression above returned a point, something like this:
;; (##.## ##.##)
;; Just incase we end up with a 2D list, add the current elevation
;; to turn it into a 3D point
(if (< (length MovedPoint) 3)
;; Princ we'll fix it here
(setq MovedPoint
(list (car MovedPoint)
(cadr MovedPoint)
(getvar "elevation")
) ;_ end of list
) ;_ end of setq
) ;_ end of if
;; This is the last evaluation that will be returned by this function.
;; This will now return the missing key with the moved point
;; something like: (13 ##.## ##.##)
(cons MissingKey
MovedPoint
) ;_ end of cons
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:RedefinePolyBorder ;
;;;--------------------------------------------------------------------;
;;; Description: This function is responsible for redefining the ;
;;; garden path polyline border, and returning the new ;
;;; reactor data which will be placed in the reactor ;
;;; data properties. ;
;;;--------------------------------------------------------------------;
(defun gp:RedefinePolyBorder (PresentPoints Reactordata /
KeyedList MovedKeyPoint NewKeyedList)
;; The keyedList contains information on the previous configuration
;; of the polyline. This information is stored in the reactor data,
;; and was attached immediately after the polyline was created.
(setq KeyedList (list (assoc 12 reactorData)
(assoc 15 reactorData)
(assoc 13 reactorData)
(assoc 14 reactorData)
) ;_ end of list
) ;_ end of setq
;; Since we know one of the points has moved we need to check
;; the points supplied against the saved points in reactorData
;; those points keys will be 12 13 14 15. We will test every point in
;; the supplied present point list and test it against every point
;; in the presentPoints list, which contains the 12 13 14 15 point
;; lists from the current (modified by the user) polyline configuration.
;; This way we can check for which point failed (i.e., did not match.)
;; The history of 12 13 14 15
;; StartingPoint
;; (12 . BottomStartingPoint )
;; (15 . TopStartingPoint )
;; EndingPoint
;; (13 . BottomEndingPoint )
;; (14 . TopEndingPoint )
(setq MovedKeyPoint
(gp:FindMovedPoint
'(12 13 14 15)
PresentPoints
KeyedList
) ;_ end of gp:FindMovedPoint
) ;_ end of setq
;; We use the path angle to determine where and what to do
(setq NewKeyedList (gp:recalcPolyCorners MovedKeyPoint KeyedList))
;; Now that we have the keyed list, all 12 13 14 15 keyindeces
;; are updated. We need to update the reactor data with the
;; new begining ending points and other values.
;; We will now use foreach since we do not need the entire
;; reactordata structure, only its final result
(foreach NewItem NewKeyedList
(setq reactorData
(subst NewItem
(assoc (car newItem) reactorData)
reactorData
) ;_ end of subst
) ;_ end of setq
) ;_ end of foreach
;; Now that we have changed the value of reactorData
;; with the returning values supplied by gp:recalcPolyCorners,
;; we can update other important information in reactorData.
;; Take care of placing new starting point, ending point, Width,
;; Path Length and Path Angle.
(setq
;; Starting Point
reactorData
(subst (cons 10
(midpoint (cdr (assoc 15 reactorData))
(cdr (assoc 12 reactorData))
) ;_ end of midpoint
) ;_ end of cons
(assoc 10 reactorData)
reactorData
) ;_ end of subst
;; Ending Point
reactorData (subst (cons 11
(midpoint (cdr (assoc 14 reactorData))
(cdr (assoc 13 reactorData))
) ;_ end of midpoint
) ;_ end of cons
(assoc 11 reactorData)
reactorData
) ;_ end of subst
;; Width
reactorData
(subst (cons 40
(distance (cdr (assoc 14 reactorData))
(cdr (assoc 13 reactorData))
) ;_ end of distance
) ;_ end of cons
(assoc 40 reactorData)
reactorData
) ;_ end of subst
;; pathLength
reactorData
(subst (cons 41
(distance (cdr (assoc 10 reactorData))
(cdr (assoc 11 reactorData))
) ;_ end of distance
) ;_ end of cons
(assoc 41 reactorData)
reactorData
) ;_ end of subst
;; PathAngle
reactorData
(subst (cons 50
(angle (cdr (assoc 10 reactorData))
(cdr (assoc 11 reactorData))
) ;_ end of angle
) ;_ end of cons
(assoc 50 reactorData)
reactorData
) ;_ end of subst
) ;_ end of setq
reactorData ; return the updated reactor data
) ;_ end of defun
;;; ;
;;; GPREACT.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; state of the application at the end of Lesson 6. Use this file ;
;;; to check your work, or to start off Lesson 7 with the code as it ;
;;; appears in the tutorial. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; General Notes: ;
;;;--------------------------------------------------------------------;
;;; After the execution of these reactor functions, you might ;
;;; experience difficulty in returning to Visual Lisp. If this does ;
;;; happen, type VLide at the AutoCAD command prompt and focus will ;
;;; be returned to Visual Lisp. ;
;;;--------------------------------------------------------------------;
;;; There are three types of reactors which we will be using: ;
;;; 1. an object reactor ;
;;; 2. a command reactor ;
;;; 3. a drawing reactor ;
;;; We will define two functions that will notify us when the user ;
;;; has modified or changed the garden path. ;
;;;--------------------------------------------------------------------;
;;; Object Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-modified |gp:outline-changed | Function called ;
;;; | | when object declared ;
;;; | | in owners is modified ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-erased |gp:outline-erased | Function called ;
;;; | | when object is erased ;
;;;----------------------|---------------------|-----------------------;
;;; ;
;;; Command Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-commandWillStart|gp:command-will-start| Function called when ;
;;; | | a command is typed ;
;;; | | at the command prompt ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-commandEnded |gp:command-ended | Function called when ;
;;; | | a command has ended ;
;;;----------------------|---------------------|-----------------------;
;;; ;
;;; Drawing Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-beginClose |gp:clean-all-reactors| Function to clean all ;
;;; | | existing reactors ;
;;; | | before ACAD exits ;
;;;--------------------------------------------------------------------;
;;; Since reactor events occur in sequence (commandWillStart occuring ;
;;; before the object modified reactor, for example), we need a few ;
;;; global variables to keep track of what changes are occuring to the ;
;;; path. The following globals are used: ;
;;; *polyToChange* ;
;;; *reactorsToRemove* ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: gp:command-will-start ;
;;;--------------------------------------------------------------------;
;;; Description: This is a reactor to any command starting ;
;;;--------------------------------------------------------------------;
;;; This is the function where we figure out what *will* be happening ;
;;; to the garden path (not what *is* happening). Reset the global ;
;;; variables *polyToChange* and *reactorsToRemove* so that ;
;;; subsequent reactor events will perform the correct actions. ;
;;; (This is necessary since this function may be called more than ;
;;; once, and the *polyToChange* pointer could be pointing to a ;
;;; polyline other than the one the user just selected for editing!) ;
;;; Also, reset the *reactorsToRemove* global, for the same reason. ;
;;;--------------------------------------------------------------------;
;;; THIS FUNCTION IS CURRENTLY IN A STUBBED-OUT STATE!!! ;
;;;--------------------------------------------------------------------;
(defun gp:command-will-start (reactor command-list)
;; Reset the global variable
(setq *polyToChange* nil
*reactorsToRemove* nil
) ;_ end of setq
;; Print to the console to see the results of the incoming data
(terpri)
(princ (list 'gp:command-will-start reactor command-list))
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(alert
(strcat
(format-reactor-message 'gp:command-will-start)
"\n\tThis reactor-callback function's responsibility will be to:\n"
"\n\tReset any of the global variables used within reactor functions"
"\n\tto an initial nil state. It will also note what AutoCAD command"
"\n\thas been issued and respond accordingly.\n"
"\n\tAssociated Actions:"
"\n\tIf a U, UNDO, STRETCH, MOVE, ROTATE, or SCALE command is being"
"\n\tstarted, break the associativity between the tiles and the "
"\n\tpolyline boundary."
) ;_ end of strcat
) ;_ end of alert
(princ)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:outline-erased ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is triggered when the path ;
;;; outline is being erased. If this happens, we need to;
;;; 1) Erase all of the tiles (the user is taking ;
;;; care of the rest of the work) ;
;;; 2) Set a global variable that stores the ;
;;; reactor assigned to this polyline, so that ;
;;; it can be removed when command-ended fires ;
;;;--------------------------------------------------------------------;
;;; THIS FUNCTION IS CURRENTLY IN A STUBBED-OUT STATE!!! ;
;;;--------------------------------------------------------------------;
(defun gp:outline-erased (outlinePoly reactor parameterList)
;; Store the reactor assigned to this entity to the global
;; *reactorsToRemove* so that it can be removed later
(setq *reactorsToRemove*
(append *reactorsToRemove* (list reactor))
) ;_ end of setq
;; Print to the console to see the results of the incoming data
(terpri)
(princ
(list 'gp:outline-erased outlinePoly reactor parameterList)
) ;_ end of princ
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(alert
(strcat
(format-reactor-message 'gp:outline-erased)
"\nThis reactor-callback function's responsibility will be to:\n"
"\n\tBuild upon a list that records pointers to any reactors for"
"\n\tany polyline or polylines being erased by the user. This is "
"\n\tdone so the reactors can be removed once the erase command "
"\n\thas ended."
) ;_ end of strcat
) ;_ end of alert
(princ)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:outline-changed ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is fired if the path outline ;
;;; is changed. If this happens we need to: ;
;;; 1) Erase the tiles ;
;;; 2) Remove the tile information from the reactor ;
;;; data (information stored to the reactor) ;
;;; 3) Save a pointer to the polyline for further ;
;;; processing when the command-ended reactor ;
;;; fires. ;
;;;--------------------------------------------------------------------;
;;; THIS FUNCTION IS CURRENTLY IN A STUBBED-OUT STATE!!! ;
;;;--------------------------------------------------------------------;
(defun gp:outline-changed
(outlinePoly reactor parameterList / tile tiles reactorData)
;; Set up the global variable that stores the pointer to the
;; polyline (as described in the description above)
(setq *polyToChange* outlinePoly)
;; Print to the console to see the results of the incoming data
(terpri)
(princ
(list 'gp:outline-changed outlinePoly reactor parameterList)
) ;_ end of princ
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(alert
(strcat
(format-reactor-message 'gp:outline-changed)
"\n\tThis reactor-callback function's responsibility will be to:\n"
"\n\tAct upon the notification that the outline has been modified."
"\n\tAssociated Actions:"
"\n\t\t1. Erase the tiles"
"\n\t\t2. Remove any associativity to field 100"
"\n\t\t (the field that holds a list of tile objects)"
"\n\t\t3. Save the Reactor and Polyline for further processing"
"\n\t\t once the command now in progress has ended."
) ;_ end of strcat
) ;_ end of alert
(princ)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:command-ended ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is called at the end of any ;
;;; command. ;
;;;--------------------------------------------------------------------;
;;; This is where the majority of work is done. Once the command ;
;;; that the user is performing has ended, we can get to work. (We ;
;;; cannot modify entities while they are being modified by AutoCAD ;
;;; itself, so we have to wait until we get a notification that the ;
;;; command in progress is complete, and we can have access to the ;
;;; entities.) ;
;;;--------------------------------------------------------------------;
;;; THIS FUNCTION IS CURRENTLY IN A STUBBED-OUT STATE!!! ;
;;;--------------------------------------------------------------------;
(defun gp:command-ended (reactor command-list)
;; Print to the console to see the results of the incoming data
(terpri)
(princ (list 'gp:command-ended reactor command-list))
(terpri)
(if *polyToChange*
(progn
(princ "\nPolyline being modified is ")
(princ *polyToChange*)
) ;_ end of progn
) ;_ end of if
(if *reactorsToRemove*
(progn
(princ "\nReactors that need to be removed: ")
(princ *reactorsToRemove*)
) ;_ end of progn
) ;_ end of if
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(alert
(strcat
(format-reactor-message 'gp:command-ended)
"\nThis reactor-callback function's responsibility will be to:\n"
"\n\tNote what AutoCAD command has ended and respond accordingly."
"\n\tAssociated Actions:"
"\n\t\t1. If the polyline has been erased, remove associated reactors"
"\n\t\t2. If the associatvity has been lost, then erase application"
"\n\t\t data from the reactor."
"\n\t\t3. If the outline has not lost associativity and has been "
"\n\t\t stretched using Grips, then straighten it up."
) ;_ end of strcat
) ;_ end of alert
(princ)
) ;_ end of defun
;;;--------------------------------------------------------------------;
;;; Function: format-reactor-message ;
;;;--------------------------------------------------------------------;
;;; Description: This is a temporary function used to format the ;
;;; messages that appear in the stubbed-out reactor ;
;;; callback function alerts. ;
;;; It uses the vl-symbol-name function to convert the ;
;;; reactorFunction symbol into a string, and returns ;
;;; this as a formatted message presentable for the ;
;;; alert dialog box. ;
;;;--------------------------------------------------------------------;
(defun format-reactor-message (reactorFunction)
(strcat "****************************| Callback function: "
(vl-symbol-name reactorFunction)
" |***************************\n"
) ;_ end of strcat
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: gp:clean-all-reactors ;
;;;--------------------------------------------------------------------;
;;; Description: Used to clean all reactors before exiting AutoCAD. ;
;;; This is a Very Important Function! ;
;;;--------------------------------------------------------------------;
(defun gp:clean-all-reactors (reactor command-list)
(terpri)
(princ (list 'gp:clean-all-reactors reactor command-list))
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(terpri)
(princ (list command-list " has been issued"))
(cleanReactors)
) ;_ end of defun

 Êñ^Á (6 f¦P³ D D¶úu¿¨PØ$''÷IÐèÛÔæÙ7sv ÖÝ [û´qÿe½Ú㪠øÜ»»ÙM Èò /º¥Üå°kÒ$ ð G


köABÀæ±Ø{ÃÃÝl ´iã ð
É—5µcù
py ¡ 4
P K(bál°°Q
Dì1» qi ¤¼¬"¨EÛjûÑïãë
g 3F/.1äæ_û©¹¹¹SsÇO
U´ Ï d;çÜÝÍ&
T Ý7¡ððWïsæ7sæÌ
ê-[ïé5áT÷3w786V¬ºa£c
: ; ?ûsßó—(ÉWß´Y®ñ'
å÷D ¡÷µeÕ_yõcMõÁêÇ%¬CKê
.¸{a[É(Ïî͍ /½õòÌ
G ,Â Ü ç³°6ÃQø÷|+R[atÁ^ øGáøþ Gï2C
Ò $ù6rµ—ï0zÚ lFn ^êC" È °/{7G,½á¤¡ ÂǦ " zM¸ùV ÁøÈdÆ mHæ#þeìì=лg@
J¡æÁ|X~ì{ PuØÝÁ ±6` cÜOQV ÏäA j1ºOëgÐ ÷cØ%C ¼Kj =ÊùÅ°Ï¥°
Ã
hÏ`ÖÚ 
ÑçÖÜ4£d9ç
[§TXëâý$<
0Ïà痥×÷ã6â¹
Y«9{kH+< ~ õðtÀxëâØ>ý%ǗA'Ö\ u ² SLú& ßÂ~8 x, 5 -"±¸Ôð6b
q  k ñ[ Ö ¸v¶65ºÒ¥ ‾NÑ #ÓlEMÍ f eå HlÄ5htß 4® ‾¿M Ê ÐX<¶'DæÎ1j z;zìÀø">YTõÒµ Ó xg\wç_ _
!è ðfò 0Çï$»~0 wÇ x ÞÀ
y a§9 g
9 ØÑ(z c ~ <ÓÒ¸Sp;Ôïá]xÎÁIäÞçÏ3È á#øDHEê¸ Ï x sfÕ#Ì W¡Ès}åe¥%?|hÎìâYE 3½—«àAç üò¦O :åþÉ rÆ
~ÉC½MuªÇïF{!s ¸ªS²³ bFÒ M ' !!=_à î  ïP* êì @-) =n«Í¦p
\Ü
;¡ÚMR*k¼
rQ#—%Õ3
Önpæd*Tô3ɱ
aÊ:¦®[ Òäî¹LÒ
9¨ TæÄËTûÀAªÎ£ªmtH&Í
¥Êã ^Mui´¥RÊÎÂèóË
n ±üR.¹ fʗ%ªsø+
f4V\ uì
@ ¨»VHê7
ۍÅÍ'S§
Î «_ôGQ$Énù
g ºVOh\
É Êc4 oè!®Ïfc¾¬
êü¸ z R æ F:
H,õå2F »(ø ÑQ4Çãf~IÕïÖd¶H©Ü"C%ëÁ 0æá¤8<ª\UCGùUX 5 lµQ§ áS \°,͸ ÓÙø |®m vL Üh7I²
915j£Ç_7
%ªÁ¨~vÙ EU*)
ÑÙ] L¤cC]
ó¬Ü×2y¥u9
V bÓ j(
;¸d
žúd°SS
ì,ì=!-
"´q ´ynë
B{y¦Í ÜcÁ_µí>¹[
Ê <Õîû5DDZ»µ
¿@ " Etbabé,
A Ü ¿{
tvܹ
Ê@ÆH h aC,Êi1q}k
I &ÕD!XCÎ
  Kõà
Ók cìÀ$¥Õa ±Ýz¤* f¥Nõ+lsÁL%^H>P ä 1 iM!ÕÔL
> á34< áF,
a Áa=IõìSXP2Xṳ D|²í¬õªbÃR w L 3±÷ì³Po&»ýϤ-ÁóæÊl¬Ñ^T°lcQ¥ &£ ä¨Ôðò1¬qPs äã[ ¡-
Êe
±"
6U2Ù¤r½ÂËÙB¡
Q ¢)Z
%ãùÞčÐóboc‾dô
Lôk6
AQÐ/a´õ,ÇR×zi UCª±%êÕüN±F À ¥³ SShòX4 £ ÍcÙ 4Ø ¢9Ϲ¶¨Îm¡fôÈ Êè  /xµ¡«Lõmf¦4
ed)væ4—dD1Mµ°ùkãÍ )±Á&Ö#ÌQ'4ÔÈV>㮳û =d -áÈÎ"ìãÀ
¬=XØ ¨:/3;Ë4Må°ª Ro=@ )5þf äÁ‾*
ÚÿÈ
E¥-âÐ
¾Ëí]¡vh|§ÓR¤eÀBµ¶h#
! > ¿« û¹é}ν÷
e Uu ñçÐ13ýã7ïsßï
sîýuBe)4 s& -óÞó¼
S 6 5õ;;;
YH-+IX ÈR,² £L chí
;;; GPREACT.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; final state of the application at the end of Lesson 7. Use this ;
;;; file to check your work. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; General Notes: ;
;;;--------------------------------------------------------------------;
;;; After the execution of these reactor functions, you might ;
;;; experience difficulty in returning to Visual Lisp. If this does ;
;;; happen, type VLide at the AutoCAD command prompt and focus will ;
;;; be returned to Visual Lisp. ;
;;;--------------------------------------------------------------------;
;;; There are three types of reactors which we will be using: ;
;;; 1. an object reactor ;
;;; 2. a command reactor ;
;;; 3. a drawing reactor ;
;;; We will define two functions that will notify us when the user ;
;;; has modified or changed the garden path. ;
;;;--------------------------------------------------------------------;
;;; Object Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-modified |gp:outline-changed | Function called ;
;;; | | when object declared ;
;;; | | in owners is modified ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-erased |gp:outline-erased | Function called ;
;;; | | when object is erased ;
;;;----------------------|---------------------|-----------------------;
;;; ;
;;; Command Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-commandWillStart|gp:command-will-start| Function called when ;
;;; | | a command is typed ;
;;; | | at the command prompt ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-commandEnded |gp:command-ended | Function called when ;
;;; | | a command has ended ;
;;;----------------------|---------------------|-----------------------;
;;; ;
;;; Drawing Reactor ;
;;;----------------------|---------------------|-----------------------;
;;; Event |Function to call | Description ;
;;;----------------------|---------------------|-----------------------;
;;; :vlr-beginClose |gp:clean-all-reactors| Function to clean all ;
;;; | | existing reactors ;
;;; | | before ACAD exits ;
;;;--------------------------------------------------------------------;
;;; Since reactor events occur in sequence (commandWillStart occuring ;
;;; before the object modified reactor, for example), we need a few ;
;;; global variables to keep track of what changes are occuring to the ;
;;; path. The following globals are used: ;
;;; *lostAssociativity* ;
;;; *polyToChange* ;
;;; *reactorsToRemove* ;
;;; *reactorToChange* ;
;;; *Safe-to-Delete* ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: Gp:Safe-Delete ;
;;;--------------------------------------------------------------------;
;;; Description: This function is used to clean-up (erase) any objects;
;;; that have not been erased in a previous command/ ;
;;; reactor sequence. This function is called only from ;
;;; the :vlr-commandEnded reactor event callback function;
;;; gp:Command-ended. Items (tiles) to delete are ;
;;; collected within the global variable *Safe-to-Delete*;
;;;--------------------------------------------------------------------;
;;; The parameter activeCommand is the name of the command that has ;
;;; just ended. Because of the command/reactor sequence within any of;
;;; the GRIP_* commands, entity may only be done if the command is NOT;
;;; a GRIP_* command. ;
;;;--------------------------------------------------------------------;
(defun Gp:Safe-Delete (activeCommand / owner trl)
(if (not (equal
(strcase (substr activeCommand 1 5))
"GRIP_"
)
)
(progn
(if *Safe-to-Delete*
(foreach Item *Safe-to-Delete*
(if (not (vlax-erased-p Item))
(vla-erase item)
)
)
)
(setq *Safe-to-Delete* nil)
(setq trl (assoc :VLR-OBJECT-REACTOR (vlr-reactors)))
(if trl (setq trl (cdr trl)))
(while trl
(progn
(foreach owner *OwnerReactorsToRemove*
(if owner
(vlr-owner-remove (car trl) owner)
)
)
(setq trl (cdr trl))
)
)
)
)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:erase-tiles ;
;;;--------------------------------------------------------------------;
;;; Description: A utility function for erasing all of the tiles in a ;
;;; garden path. ;
;;;--------------------------------------------------------------------;
;;; The parameter "reactor" passed to this function is a pointer to a ;
;;; reactor associated with a garden path. This reactor should have ;
;;; reactor data stored within it which contains VLA-object ID's for ;
;;; each of the tiles (circles) within the path. By retrieving this ;
;;; data, the tiles can be erased. ;
;;; After erasing the tiles, a nil value is put back into the reactor ;
;;; data (otherwise, the reactor would have bad pointers to tiles that;
;;; have just been erased.) ;
;;;--------------------------------------------------------------------;
(defun gp:erase-tiles (reactor / reactorData tiles tile)
(if (setq reactorData (vlr-data reactor))
(progn
;; Tiles in the path are stored as data in the reactor
(setq tiles (cdr (assoc 100 reactorData)))
;; Erase all the existing tiles in the path
(foreach tile tiles
(if (and (null (member tile *Safe-to-Delete*))
(not (vlax-erased-p tile))
)
(progn
(vla-put-visible tile 0)
(setq *Safe-to-Delete* (cons tile *Safe-to-Delete*))
)
)
)
(vlr-data-set reactor nil)
)
)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:command-will-start ;
;;;--------------------------------------------------------------------;
;;; Description: This is a reactor to any command starting ;
;;;--------------------------------------------------------------------;
;;; This is the function where we figure out what will be happening ;
;;; to the garden path. The various reactor globals are set to ;
;;; flag the changes that we expect to be made, so that subsequent ;
;;; reactor events will perform the correct actions. ;
;;;--------------------------------------------------------------------;
(defun gp:command-will-start (reactor command-list)
;; Reset all four reactor globals to nil
(setq *lostAssociativity*
nil
*polyToChange*
nil
*reactorsToRemove*
nil
*reactorsToChange*
nil
)
(if (member (setq currentCommandName (car command-list))
'("U" "UNDO" "STRETCH" "MOVE"
"ROTATE" "SCALE" "BREAK" "GRIP_MOVE"
"GRIP_ROTATE" "GRIP_SCALE" "GRIP_MIRROR"
)
)
(progn
(setq *lostAssociativity* T)
(princ "\nNOTE: The ")
(princ currentCommandName)
(princ " command will break a path's associativity.")
)
)
(princ)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:outline-erased ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is triggered if the path ;
;;; outline is being erased. In this case, store the ;
;;; reactor to the global list *reactorsToRemove* ;
;;;--------------------------------------------------------------------;
(defun gp:outline-erased (outlinePoly reactor parameterList)
(setq *reactorsToRemove*
(cons reactor *reactorsToRemove*)
*OwnerReactorsToRemove*
(cons outlinePoly *OwnerReactorsToRemove*)
)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:outline-changed ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is fired if the path outline ;
;;; is changed, or if the path is being moved, rotated, ;
;;; or altered in some way (other than being erased). ;
;;; If the command is a grip stretch, the path will ;
;;; retain its associativity with the tiles, so the ;
;;; function must act differently in this situation, ;
;;; by saving a pointer to the polyline border, so that ;
;;; it can be updated during the commandEnded callback. ;
;;;--------------------------------------------------------------------;
(defun gp:outline-changed (outlinePoly reactor parameterList)
(if *lostAssociativity*
(setq *reactorsToRemove*
(cons reactor *reactorsToRemove*)
)
(setq *polytochange* outlinePoly
*reactorsToChange* (cons reactor *reactorsToChange*)
)
)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:command-ended ;
;;;--------------------------------------------------------------------;
;;; Description: This reactor function is called at the end of any ;
;;; command. ;
;;;--------------------------------------------------------------------;
;;; This is where the majority of work is done. Once the command ;
;;; that the user is performing has ended, we can get to work. (We ;
;;; cannot modify entities while they are being modified by AutoCAD ;
;;; itself, so we have to wait until we get a notification that the ;
;;; command in progress is complete, and we can have access to the ;
;;; entities.) ;
;;;--------------------------------------------------------------------;
(defun gp:command-ended (reactor command-list
/ objReactor
reactorToChange reactorData
coordinateValues currentPoints
newReactorData newPts
tileList
)
(cond
;; CONDITION 1 - POLYLINE ERASED (Erase command)
;; If one or more polyline borders are being erased (indicated
;; by the presence of *reactorsToRemove*), erase the tiles within
;; the border, then remove the reactor.
(*reactorsToRemove*
(foreach objReactor *reactorsToRemove*
(gp:erase-tiles objReactor)
)
(setq *reactorsToRemove* nil)
)
;; CONDITION 2 - LOST ASSOCIATIVITY (Move, Rotate, etc.)
;; If the associatvity has been lost (undo, move, etc.) then erase
;; the tiles within each border
;;
((and *lostassociativity* *reactorsToChange*)
(foreach reactorToChange *reactorsToChange*
(gp:erase-tiles reactorToChange)
)
(setq *reactorsToChange* nil)
)
;; CONDITION 3 - GRIP_STRETCH
;; In this case, we are keeping the associativity of the tiles to
;; the path, but the path and the tiles will need to be recalculated
;; and redrawn. A GRIP_STRETCH can only be performed on a single
;; POLYLINE at a time.
((and (not *lostassociativity*)
*polytochange*
*reactorsToChange*
(member "GRIP_STRETCH" command-list)
;; for a GRIP_STRETCH, there will be only one reactor in
;; the global *reactorsToChange*
(setq reactorData
(vlr-data (setq reactorToChange
(car *reactorsToChange*)
)
)
)
)
;; First, erase the tiles within the polyline border
(gp:erase-tiles reactorToChange)
;; Next, get the current coordinate values of the polyline
;; vertices
(setq coordinateValues
(vlax-safearray->list
(vlax-variant-value
(vla-get-coordinates *polyToChange*)
)
)
)

;; If the outline is a lightweight polyline, you'll have 2d points,


;; so use the utility function xyList->ListOfPoints to convert the
;; list of coordinate data into lists of ((x y) (x y) ...) points.
;; Otherwise, use the xyzList->ListOfPoints function that deals
;; with 3d points, and converts the coordinate data into lists of
;; ((x y z) (x y z) ... ) points.
(setq CurrentPoints
(if (= (vla-get-ObjectName *polytochange*) "AcDbPolyline")
(xyList->ListOfPoints coordinateValues)
(xyzList->ListOfPoints coordinateValues)
)
)
;; Send this new information to RedefinePolyBorder -- this will
;; return the new Polyline Border
(setq NewReactorData
(gp:RedefinePolyBorder CurrentPoints reactorData)
)
;; Get all the border Points and ...
(setq newpts (list (cdr (assoc 12 NewReactorData))
(cdr (assoc 13 NewReactorData))
(cdr (assoc 14 NewReactorData))
(cdr (assoc 15 NewReactorData))
)
)
;; ...update the outline of the polyline with the new points
;; calculated above. If you're dealing with a lightweight polyline,
;; convert these points to 2d (since all of the points in newpts are
;; 3D) otherwise leave them alone.
(if (= (cdr (assoc 4 NewReactorData)) "LIGHT")
(setq newpts (mapcar '(lambda (point)
(3dPoint->2dPoint Point)
)
newpts
)
)
)

;; Now update the polyline with the correct points


(vla-put-coordinates
*polytochange*
;; For description of the list->variantArray see utils.lsp
(gp:list->variantArray (apply 'append newpts))
)

;; We now use the current definition of the NewReactorData which is


;; really the same as the Garden path data structure. The only
;; exception is that the field (100) containing the list of
;; tiles is nil. This is ok since gp:Calculate-and-Draw-Tiles
;; does not require this field to draw the tiles. In fact this
;; function creates the tiles and returns a list of drawn tiles.
(setq tileList (gp:Calculate-and-Draw-Tiles
;; path data list without correct tile list
NewReactorData
;; Object creation function
;; Within a reactor this *MUST* be ActiveX
"ActiveX"
)
)

;; Now that we have received all the tiles drawn we'll rebuild
;; the data structure with the correct tileList value and reset
;; the data property in the reactor
;; Update the tiles associated with the polyline border
(setq NewReactorData
(subst (cons 100 tileList)
(assoc 100 NewReactorData)
NewReactorData
)
)
;; By now we have the new data associated with the polyline.
;; All there is left to do is associate it with the reactor
;; using vlr-data-set
(vlr-data-set (car *reactorsToChange*) NewReactorData)
;; remove all references to the temporary
;; variables *polytochange* and *reactorsToChange*
(setq *polytochange* nil
*reactorsToChange* nil
)
)
)
;; safely delete any items in the *Safe-to-Delete* global if you can!!!
(Gp:Safe-Delete (car command-list))
(setq *OwnerReactorsToRemove* nil)
(princ)
)

;;;--------------------------------------------------------------------;
;;; Function: gp:clean-all-reactors ;
;;;--------------------------------------------------------------------;
;;; Description: Used to clean all reactors before exiting AutoCAD. ;
;;; This is a Very Important Function! ;
;;;--------------------------------------------------------------------;
(defun gp:clean-all-reactors (reactor command-list)
(terpri)
(princ (list 'gp:clean-all-reactors reactor command-list))
(terpri)
(princ (setq reactorData (vlr-data reactor)))
(terpri)
(princ (list command-list " has been issued"))
(cleanReactors)
)

-%ÙqÊ Ñ ²W²À y½Qê‾ZDQ>Ó


¥ º »zôlííJ:Í¥ÜnµücnL áyû} Ã>Âaáp§9,KH¨ºk4¶|ÐêVliw&Å Á‾7l¢à ¸   ]h ÄÎUé\§øySE8¹C G
¬t» ¶MòkA¿ Vú g3n F
z\!»N {¡Õ Õ
vw?mNËk§$
~‾ký ?v í*¥7ÿv³ám¸5A&£ ì:6;c¼m
§?
õùñmйç"%.
eiÔ1]
ÿÉ_Oön
1ÿ2`üԍçÖ\Ò
 Ô3É0<À´N:
« «ì®Ó xáÀùÓ-!ª
y¡‾.
v&ãÛ~zèàÙ
a:÷aî
ª!7@
.{Æy
à ~O?ü»#§-RØ
ïNì
@"A=÷ßW^¼óÆÎ
¸á £<ì]¥EEÎ
ÃQ<Y¦
_ z~ß['û—<{}÷¡é
M{
¶í´È
K^ê
½ -_ç¥yãí
µýâ¥þÝkcôé
¶ zgupÆ÷`þ|T
¶‾» jδڬ:2
¶ÝcüHÇ
aÈÈ1dä
Êç ucõ
ÁPD
/5æq«m¸Õ—ÞÇ$tÎõ» ó:3í& ÆÌ¿Ì Û¬ -R àxFþÆã'z2gÆJ8ù Së¥dOËýûÖ'd¶za±()A ¶uÚFÎýï ³ ceüçåÁñ u
=Z¼ ú×Uª8{{Ê. ¾"¡¨H¨+ .ª eC Þ Õ%õeuÈY±l,Ë{Ýø ½xíy?à_¼¸Þk
Þ} ÞZL ô —\ _¶ãHͧ®# ÊÃå$®[ÅPåu+ ú ?Ó: Oy1/ººá&w©è5% ] mâ^Ð ßS[[K |.c;ê_,²5ã À×Ñ
$K¹¦
sáU(¡ÇV
 KÒ@
~µTÜ?Ú¥X!̱Kr
¢VI«PÑJV£ªª"Z¥
7¬(Åe6 ¥<
öîÛ3
Ó û?ãÕ
>Q©Q¤*T<¤JEÅ
ÅyFç ËÎìÎîìÎ
}hBÀK¿
wöî½ß<kÖ^‾×Yßv0¶1
vÖ,ÉK×Öì¿#Ûòwæ ól Ó³÷üFuz¬W6Ñ$eâY>;Xî.l
aÕ ° C :! B 5!ܼÄÆæL#c`ÅX1V c`å ¤—ÜÏ, Bfø Ä cÂ÷ 7z3|P}F 2úvlnúf5  ªyõòÛ zå È\fòÈ µGÆU 04
êl{îú|Ð$|Ëãö¸ñà j}L* D Õ '$ÊeT. Õ²×Ã# #Q¡Ðs bbÉk´àI °[´²Tu ¤TÄ Ì4: Ð^ ë
Æl×Ì ÷ó=‾ø âl ÇÓ%| |
± ö= ± øîB¢Á²úJ[ 
rø Ê¢¸C¿G7>¤#È ÖvÔÚ Zc¨5 º&Z&¢m<%&ê¹ç¾<9x!µ\ÿ /'cª~úæ ÏÌ ¡þtsPõtõ!ù5%xÓ¡pÆo§ª c 2K¢(BM ¹)Þ
Ô_ dëgú÷./FEà/ÒݼC;ÿøOt Î àua Ú@éÿ ²D H gQzJ¸QÂ
J(=åÅÀ ØPü@eý ßTQï0gj vyDD}nc¤t$sòtõ^õ.cuÆ Ã ;cC;ª °²0¨ b1!51&EÚZ½Ü‾xí
9
Åñf ZZ °J1v‾BN %Åg§)LÁ >çl¬þ¼ náy õl×D´[®ÃÐ KÂ%
á p C¸v*+× Æ¬X¸@è1k|Âg &L Q£ ?3ªgã uu
]ò2
M{hjpSÅ©§
×Ôú  '«þê Þ[io
gìÉps\á
²H6rÓÒ¼EÀÌ
OÎKºÚ=W(^
,ä_xci
¶ ÂÒ%ò
ã/«ËbEwÉ¿ãÇF³6KõÝÎÃ=Å
( È> E ã6ÅtR9Ñ'᪠.ô E`ñS`¾èµÀ Ó w."VPbÁ7nMVPr Á}5ß
%osÓ m ^ ^¢þBtqYÙ Ù 7»òV@: }6 -6ïÀ¾ ‾ /5 H&í²Ø ncãwÛx8Ýu‾é® Ö$ºnyG ì¹ GDåó+V¶T O³ß  H
ø×,ü¤±Ú C$ V 4À ÷ûø  ×lY / Å6 UyE¥þÝ s Ù6Ò © Ó `[ú ú@¿ ¬Ñlk dÙØq ÷ j±ÏT‾77*D2¬§wíæ
;;; GRAFUN.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates adding a 3D mesh utilizing activeX methods ;
;;; and native AutoLISP command function. The Mesh is produced by ;
;;; applying a function to the beginning coordinate for the mesh, ;
;;; a length in Y direction for the mesh, and a length in the x ;
;;; for the mesh. ;
;;; coordinate. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; General Note: ACAD user timer must be ON ;
;;; (command "_.time" "_ON" "") ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model functions here
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; Function: GET-UTIME ;
;;; ;
;;; Description: GET-UTIME converts a fraction of a day into ;
;;; seconds by multiplying the result from ;
;;; (getvar "tdusrtimer") and 86400.0. ;
;;; ;
;;; Example: ;
;;; (getvar "tdusrtimer") returns a fraction of ;
;;; one day. So... (getvar "tdusrtimer") might ;
;;; return: 0.138439 ;
;;; In order to return elapsed second we determine ;
;;; Seconds in One Hour: ;
;;; (* 60.00 60.00) = 3600.0 ;
;;; And seconds in One 24 Hour period: ;
;;; (* 24 3600.0) = 86400.0 ;
;;; ;
;;; Arguments: None ;
;;; ;
;;; Returned Value: Returns a real number whose meaning is: ;
;;; Elapsed time in seconds from when the drawing was ;
;;; opened. ;
;;; ;
;;; Usage: (get-utime) ;
;;; ;
;;;--------------------------------------------------------------------;
;;; returns the user time
(defun get-utime ()
(* 86400 (getvar "tdusrtimer"))
)
;;;--------------------------------------------------------------------;
;;; Function: AL-GRAFUN ;
;;; ;
;;; Description: Draws a mesh utilizing the AutoLISP Command ;
;;; function according to the arguments supplied. ;
;;; This function prints elapsed time in minutes ;
;;; and seconds during processes and returns a list ;
;;; points which were used to create the 3D mesh. ;
;;; ;
;;; Required Functions: ;
;;; get-utime ;
;;; ;
;;; Arguments: ;
;;; Fun = Function to apply. ;
;;; xy0 = Lower left corner of rectangular mesh. ;
;;; xy1 = Upper right corner of rectangular mesh. ;
;;; dx = Density factor for x direction. ;
;;; The smaller the number denser the mesh. ;
;;; dy = Density factor for y direction. ;
;;; The smaller the number denser the mesh. ;
;;; ;
;;; Returned Value: A list points which were used to create ;
;;; the 3D mesh. ;
;;; ;
;;;Dislayed Values: Displays time of evaluation in the ;
;;; following format: ;
;;; (TT == NCT + DMT) ;
;;; Where: ;
;;; TT = Total elapsed time. ;
;;; NCT = Elapsed time from start of function which ;
;;; draws the mesh until the function has ;
;;; finished its number crunching. ;
;;; DMT = Elapsed time of the mesh drawing portion ;
;;; after number crunching has finished. ;
;;; ;
;;; Usage: (al-grafun fun xy0 xy1 dx dy) ;
;;;--------------------------------------------------------------------;
(defun aal-grafun (fun xy0 xy1 dx dy
/ x0 y0 x1 y1 x_coord y_coord z_coord cx cy pts ids t0 t1 t2 t3 ce bm os
)
(setq t0 (get-utime))
(setq x0 (car xy0)
y0 (cadr xy0)
x1 (car xy1)
y1 (cadr xy1)
)
(setq x_coord x0
cx 0)
(while (<= x_coord x1)
(setq y_coord y0
cy 0 )
(while (<= y_coord y1)
(setq z_coord (fun x_coord y_coord))
(setq pts (cons (list x_coord y_coord z_coord) pts))
(setq y_coord (+ y_coord dy)
cy (1+ cy) )
)
(setq x_coord (+ x_coord dx)
cx (1+ cx) )
)
(setq pts (reverse pts))
(setq t1 (get-utime))
(setq ce (getvar "CMDECHO"))
(setq bm (getvar "BLIPMODE"))
(setq os (getvar "OSMODE"))
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setvar "OSMODE" 0)
(command "_.3dmesh" cx cy)
(FOREACH p pts (command p))
(setq pts (entlast))
(command "_.CIRCLE" '(5.0 5.0 0.0) 5.0)
(setvar "CMDECHO" ce)
(setvar "BLIPMODE" bm)
(setvar "OSMODE" os)
(setq t2 (get-utime))
;(command "")
(princ "\n; Time: ")
(princ (list (- t2 t0) '== (- t1 t0) '+ (- t2 t1)))
pts
)
;;;--------------------------------------------------------------------;
;;; Function: VL-GRAFUN ;
;;; ;
;;; Description: Draws a mesh utilizing Visual LISP Automation ;
;;; extensions (known as activeX methods) according ;
;;; to the arguments supplied. ;
;;; This function prints elapsed time in minutes ;
;;; and seconds during processes and returns a list ;
;;; points which were used to create the 3D mesh. ;
;;; ;
;;; Required Functions: ;
;;; get-utime ;
;;; ;
;;; Arguments: ;
;;; Fun = Function to apply. ;
;;; xy0 = Lower left corner of rectangular mesh. ;
;;; xy1 = Upper right corner of rectangular mesh. ;
;;; dx = Density factor for x direction. ;
;;; The smaller the number denser the mesh. ;
;;; dy = Density factor for y direction. ;
;;; The smaller the number denser the mesh. ;
;;; ;
;;; Returned Value: A list points which were used to create ;
;;; the 3D mesh. ;
;;;Dislayed Values: Displays time of evaluation in the ;
;;; following format: ;
;;; (TT == NCT + DMT) ;
;;; Where: ;
;;; TT = Total elapsed time. ;
;;; NCT = Elapsed time from start of function which ;
;;; draws the mesh until the function has ;
;;; finished its number crunching. ;
;;; DMT = Elapsed time of the mesh drawing portion ;
;;; after number crunching has finished. ;
;;; ;
;;; Usage: (vl-grafun fun xy0 xy1 dx dy) ;
;;;--------------------------------------------------------------------;
(defun avl-grafun (fun xy0 xy1 dx dy
/ x0 y0 x1 y1 x_coord y_coord z_coord cx cy pts t0 t1 t2 t3 *ModelSpace*
)
(setq t0 (get-utime))
(setq x0 (car xy0)
y0 (cadr xy0)
x1 (car xy1)
y1 (cadr xy1)
)
(setq x_coord x0
cx 0)
(while (<= x_coord x1)
(setq y_coord y0
cy 0 )
(while (<= y_coord y1)
(setq z_coord (fun x_coord y_coord))
(setq pts (vl-list* z_coord y_coord x_coord pts))
(setq y_coord (+ y_coord dy)
cy (1+ cy) )
)
(setq x_coord (+ x_coord dx)
cx (1+ cx) )
)
(setq pts (reverse pts))
;; New for AutoCAD 2000 - Create and Fill A Variant Array for the Mesh Points
(setq ptlstlen (length pts))
(setq PointDataA (vlax-make-safearray vlax-vbDouble (cons 0 (1- ptlstlen))))
(vlax-safearray-fill PointDataA pts)
(setq PointData (vlax-make-variant PointDataA (logior vlax-vbarray vlax-vbDoub
le)))
;; New for AutoCAD 2000 - Create and Fill A Variant Array for the Mesh Points
(setq t1 (get-utime))
(setq *ModelSpace* (vla-get-ModelSpace
(vla-get-ActiveDocument
(vlax-get-acad-object) )))
(setq pmesh (vla-Add3Dmesh *ModelSpace* cx cy PointData) )
(vla-Update pmesh)
(vla-AddCircle *ModelSpace* (vlax-3d-Point '(5.0 5.0 0.0)) 5.0)
(setq t2 (get-utime))
(princ "\n; Time: ")
(print (list (- t2 t0) '== (- t1 t0) '+ (- t2 t1)))
pmesh
)
;;;--------------------------------------------------------------------;
;;; Function: SQR ;
;;; ;
;;; Description: Function to return the square of a number. ;
;;; ;
;;; Arguments: ;
;;; x = a valid number. ;
;;; Note: no error checking is performed ;
;;; ;
;;; Returned Value: a number either real or integer. ;
;;; If an integer is passed an integer is returned. ;
;;; If a real number is passed a real is returned. ;
;;; ;
;;; Usage: (sqr 7) returns 49 ;
;;; (sqr 7.0) returns 49.00 ;
;;;--------------------------------------------------------------------;
(defun sqr(x) (* x x))
;;;--------------------------------------------------------------------;
;;; Function: SPHE5 ;
;;; ;
;;; Description: Function which calculates a half of sphere. ;
;;; Where: C(5,5,0), R(5) ;
;;; and Z coordinate is: ;
;;; Z = F(X,Y) ;
;;; ;
;;; This function provides a seed algorithim to ;
;;; calculate 1/2 a sphere to utilize within ;
;;; our 3dMesh creation functions: ;
;;; vl-grafun ;
;;; al-grafun ;
;;; ;
;;; Required Functions: ;
;;; sqr ;
;;; ;
;;; Arguments: ;
;;; x_coord = X coordinate of point to determine the Z ;
;;; coordinate for the mesh. ;
;;; y_coord = Y coordinate of point to determine the Z ;
;;; coordinate for the mesh. ;
;;; ;
;;; Returned Value: Z coordinate. ;
;;; ;
;;; Usage: (sphe5 x_coord y_coord) ;
;;;--------------------------------------------------------------------;
(defun sphe5 (x_coord y_coord)
(sqrt (max 0.0 (- 25 (sqr (- x_coord 5)) (sqr (- y_coord 5)))))
)
;;;--------------------------------------------------------------------;
;;; Function: AZVPOINT ;
;;; ;
;;; Description: This function changes the vpoint of the current ;
;;; viewport to values represented in pt argument. ;
;;; ;
;;; Arguments: ;
;;; pt = A list of three numbers which represent view ;
;;; coordinate and direction. ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (zvpoint '( 0 0 1)) ;
;;;--------------------------------------------------------------------;
(defun zvpoint (pt / ce)
(setq ce (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(COMMAND "_.ZOOM" "_E")
(COMMAND "_.VPOINT" pt)
(setvar "CMDECHO" ce)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: C:AL-GF ;
;;; ;
;;; Description: This excecutes the native AutoLISP function to ;
;;; create a 3D mesh. ;
;;; ;
;;; Required Functions: ;
;;; al-grafun ;
;;; zvpoint ;
;;; sphe5 ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (c:AL-GF) or AL-GF from the ACAD comand prompt. ;
;;;--------------------------------------------------------------------;
(defun C:AL-GF ()
(aAL-GRAFUN SPHE5 '(-1 -1) '(11 8) 0.2 0.2)
(ZVPOINT '(10 10 3))
)
;;;--------------------------------------------------------------------;
;;; Function: C:VLA-GF ;
;;; ;
;;; Description: This excecutes ActiveX Automation functions to ;
;;; create a 3D mesh. ;
;;; ;
;;; Required Functions: ;
;;; vl-grafun ;
;;; zvpoint ;
;;; sphe5 ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (c:VLA-GF) or VLA-GF from the ACAD comand prompt. ;
;;;--------------------------------------------------------------------;
;;; Use ActiveX Automation.
;;; Returns a response similar to this:(your may vary)
;;; "; Time:
;;; (1.54 == 0.71 + 0.83)
(defun C:VLA-GF ()
(aVL-GRAFUN SPHE5 '(-1.0 -1.0) '(11.0 8.0) 0.2 0.2)
(ZVPOINT '(10 10 3))
)
;;;--------------------------------------------------------------------;
;;; ;
;;; On Your Own: ;
;;; Try out the following code fragment in the Visual LISP console ;
;;; after loading this file into the editor. ;
;;; (VL-GRAFUN SPHE5 '(0 0) '(4 4) 0.2 0.2) ;
;;;--------------------------------------------------------------------;
;;; Print an aid for the command above.
(princ "; To test: AL-GF, VLA-GF, (c:al-gf), or (c:vla-gf) \n")
(princ)
;;; EOF
2%)¶{º'==#6=V^¤îé2
-'d_ÈéGS|HjÈÐ 9Ä7b*á
á±×pßB4y
mÁÕ=¾=éM ûª 7~Ò)Ý
 6ek ê`{M§#¸|%gã ø Ô
ceã ìTMhG~3«Õ®
ÓkÅ®%Û
ÍT± =²,ÛÄX²¥XµâÔ®
óI@A Ñ ; øøü5 ×I+«i `*.Wy
® Ó ^bgmí%
ns vË
!n!9
$2y3Ù
Bê PBi¡¥
J/!9äTZt)
ì
ß¼ï½yóæÍÎì[t
Pñ
$P  Ü3z½!@͍£©ÁàyéxtzT9OOÀhíök8ìì+fwHöVõçêÞÚµh1[ý©:ÐO¢É¨@£F
ð Ø 0Ù " 7¾u³ Tû
k| ïQ¥ÀÈ
— ÿ; ¶Å  ÿR°ëH7e %Ludè`wW! Ï ÐÁ ]©
ÛÁ«#R>×F¥Æ' Êu"Ý|8+½Që¤ç Ãó2éMÇÚTUjo§ó,rl&Uèi j P U¥»0 Zx÷hÇ ¡xwb w< r e íª¬Ýÿ]Ö¼ |°M )¾3Ò<Þ
úðáãEhð5 ðV#ç
ÜG Àã #    |ìñò/<DþÇx \çQuhIÐ#§ Ñe KÐE7<@þ Ç È— ä ½ãqÌG: Aú± Í +` b \´M ³aC :ZLdÈàÌ
+_Í ó}K¨ AiÃi´YO×< võ gT±x6
P3E|ÿydºÐ±gY/ë ¬ ¶ ³®8%÷Î\`¹þþ 1Wl˱V]6aÙ »¦UÉ°±r Í kë®Ãæ
Ç°Ï¥ÌÔÔÔôìXï ^6 m³oÜ* þ ÉãÌt aºë Ítfk¦ã¶Qb® 3º} Y|æuõùé1³Â0
[¨ .® wu×p ^)e1 %6X±6+®mN¦D Y|½ ºï9q« há÷óW }0 ß° ß÷ßôò_ø ø±¢`
èðÖ /öâÚSõ 2 u
FäöÛ× ¾[ ¾ͪ(i {ï.‾øã ]§îWå3TyM5ï 5»lÄ
endstream
545
endobj
0 obj<</StemV 124/FontName/GGGIOA+Calibri-Bold/FontStretch/Normal/FontFile2
544 0 R/FontWeight 700/Flags 4/Descent -250/FontBBox[-493 -194 1239 952]/Ascent
750/FontFamily(Calibri)/CapHeight 625/XHeight -531/Type/FontDescriptor/ItalicAng
le 0>>
546
endobj
0 obj<</Subtype/CIDFontType2/FontDescriptor 545 0 R/BaseFont/GGGIOA+Calibri-
Bold/W[3[226]882[306]]/CIDSystemInfo<</Supplement 0/Ordering(Identity)/Registry(
Adobe)>>/DW
547
endobj
0 obj<</Length
1000/Type/Font>>
22361/Filter/FlateDecode/Length1 44584>>stream
*HÂ8ÄUt—¨ PSY
j#m}?a óÃÒC;5c×TMÍ{õëÕ=÷½{î
D"²//ìh@6EmD% "b %é$¬Ò
ÿ ûP)fB¶±E@p!
< ë==լߢÈ
* â  4" ¨
MLK«è|ñ´=P, Å øäl²à$ìv¬ jðÚ2õ  &:ñ
ÚaäÉá aÜæø&|âp%r9¬ ¿8µ$pv
gÇER³¢3¦è Ï Ç =|"µï  É g³@÷;7µ3£Xñ5 é@Ï£~@ fEqv(Pþ¸W¾H ¾:Ê e~ #P»þþN¾hÐP
²PÜÐUÌ
ÊJ(¡Ø
K%P mEäMÒ×¥O
s) `0ª9MKò
TB1D¡å
öû¬u¡+By
è ZG¢ÞT AÒï©"x4©Ôì
Y  EP0% 8Db$±~8
ApR&Ü
³ÍÍ® ÉÚ%º)Ú
2 HVòç
137Äa4Õ
P |%àÐÕá"
 8@,GVô
>β ²¢cy
õÃ©× ºzî_Öcw©ðÀßÎ^µ®
EÈ_.+NÌ¡ë@
P$«ÏTw PÌã±Yb? ¾
êÈÜX²æ Û  ²°¢¼èpª»+Ô]L Öt+hgƶÅ$ºÌ´¶²¶u´uÜ  õcÒC Y~å! É 6£® f[ÐM¡ñ,mÞ1CEeÎs19ÂX # JÚÂ[Að+
;; Hatchutil.lsp - This file contains several general purpose functions for
;; dealing with hatch objects and their associated boundaries.
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;(if (not acet-wmf-convert)
; (load "acet-wmf.lsp" "")
;);if
;
;
;NOTE: group data will be lost on entmake need to use entmakex and entmod on dic
tionary.
; Mabe create an acet-entmake function the looks at reactor object referenc
es and
; resolves them with a swap of old name to new ename from entmakeX
;
;
;
;Terminology and naming convention used for hatch utility function names:
; entity - when used in explaining parameters - a general term meaning an enam
e OR elist
; ename or elist will be used explicitly when only one or the other i
s accepted.
; boundary - the collective boundary or boundaries of a hatch
; loop - one component of a hatch boundary. A hatch boundary may contain one
or more loops.
; edge - An ename that is one compenent of a loop. A loop may contain one or
more edge enames.
;
; Functions that modify and/or create entities will contain a "-db" suffix to in
dicate
; a data base change will occur when called.
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;acet-flatn-hatch
;takes a hatch entity (ename or elist) and creates a flattened version of it.
;returns a selection set of new objects created.
;
; General approach to flattening the hatch...
; - flatten the pattern data and the seed points
; - get ss of boundary objects
; - flatn each boundary object and replace references to the old one with the ne
w one.
; - entmod the hatch
;
;General hatch notes:
;
; ;91 ;marks start of path data
;
; ;92 marks start of new loop
; ;93 may be present to indicate how many edges
;
; ;72 marks start of new edge (if pline it indicates bulge)
;
; ;75 marks end of path data
;
;
;92 gc map
;
;0=default 1=external 2=polyline 4=derived 8=textbox
16=outermost
;
;32 is sometimes present but is undocumented
; Seems to be present when select is used on objects that do not create end-to
-end closed loops.
;
;
;Pline
; 1 2 4 boundary pick
; 1 selected
;
;lines
; 1 2 4 boundary pick
; 1 selected
;
;lines extended
; 1 2 4 boundary pick
; 1 32 selected
;
;
;ellipse/pline
; 1 4 boundary pick
; 1 selected
;
;
;
;------------------------------------------------------------------------------
;Remaining problems:
;------------------------------------------------------------------------------
;
;DID IT (needs testing) - flatn non-associative hatch - need to re-associate it
and create
; boundary objects
;
;DID IT acet-hatch-remake - takes a hatch entity and re-creates it as associativ
e.
; - entmake to copy then use entlast/entget
; - flip the associative flag on
; - acet-hatch-loop-make
; - acet-hatch-boundary-assoc-db
; - force an update
;
;DID IT acet-hatch-boundary-delete-db Delete boundary objects from hatch.
; - Use acet-hatch-edge-id-remove to remove it from all loops
; if a loop no longer has any object associated with it then remove
; the loop and update the loop count.
; Re-make the boundary object being removed to get rid of reactors.
;
;DID IT - Adding new loops. takes a hatch and a loop list and appends the loop t
o the hatch.
; - increment the loop count
; - get first loop data and copy it.
; - check enpoints of provided ename loop and set proper 92 flags.
; - if endpoints don't match use 1 and 32
; - else use 4 for derived
; - add references to new loop enames in the appended loop
; - force an update
;
;------------------------------------------------------------------------------
;- Loss of associativity when to far out or too close up.
;
; Need to determine when a loop has points such that the problem will occur.
; 1. If endpoints have a gap. If the gap is greater than or equal to the
; current pixel-unit then there may be a problem.
;
; 2. If endpoints are too close such that arcs or linesegments become duplicate
d
; single points. If the distance between any set of adjacent points is less
; than or equal to the current pixel unit then there may be a problem.
;
;
; Additional info: This problem will occur only for hatches that contain bounda
ry pick
; loops.
; - For boundary pick loops (derived- bit=4) make sure all end points for the
; loop edges match exactly.
;
;2dconvert
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch ename or elist and creates an new associative version of
;the hatch along with new boundary objects.
;Returns the ename of the new hatch if successful.
;
(defun acet-hatch-remake ( e1 / na lst loop loop2 edge )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq lst (acet-hatch-loop-make e1)) ;; make the boundary edg
es
(entmake e1) ;; make a copy of the ha
tch
(setq na (entlast)
e1 (entget na)
e1 (acet-hatch-edge-id-remove-all e1) ;; remove the existing b
oundary object references
);setq
(acet-hatch-boundary-assoc-db e1 lst T) ;; add the new ones
(setq e1 (entget na))
(acet-hatch-update na)
na
);defun acet-hatch-remake

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and a list of loops (edge enames) and associates each loop
;with the hatch.
;Returns a new loop list.
;
;NOTES: - The hatch gets entmoded and the boundaries get re-created and provided
ones get deleted.
; - Also note that any existing boundary objects on the hatch are removed.
The new ones
; are simply placed at the specified loop index.
;
(defun acet-hatch-boundary-assoc-db ( e1 lst updateOK / na n a update )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq e1 (subst (cons 71 1) (assoc 71 e1) e1));setq flip associativity on
(setq n 0)
(repeat (length lst)
(setq a (acet-hatch-loop-assoc-db e1 (nth n lst) n)
e1 (car a)
update (or update (cadr a))
);setq
(setq n (+ n 1));setq
);repeat
(entmod e1)
(if (and updateOK
update
);and
(acet-hatch-update na)
);if
(setq lst (acet-hatch-boundary-enames e1))
);defun acet-hatch-boundary-assoc-db
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and a list of new enames for the loop to associate and the
;index to place the loop in.
;Returns a list of two elements. (e1 update)
; The first is the updated hatch elist and the second is a true or nil flag that
;when true indicates that the hatch needs to be updated after it is entmoded.
;
;NOTES: - The hatch does not get entmoded.
; - The existing boundary objects that are no longer part of the boundary
set will
; be re-created to dis-associate them them from the hatch.
; - The new boundary objects will also be re-created to "associate" them t
o the hatch.
;
(defun acet-hatch-loop-assoc-db ( e1 elst2 n / na loop ss edge e2 lptype ss loop
2 edgetp lptype2
update ss2 na2 n
)
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if

(setq loop (acet-hatch-loop-data-at-index e1 n) ;; the original loop


ss (acet-hatch-boundary-ss e1) ;; original edge objects
);setq
;; re-create the new boundaries for this loop to associate them to the hatch
(foreach edge elst2
(setq e2 (entget edge));setq
(if (not (member (cons 330 na) e2))
(progn
(setq e2 (acet-acadreactor-id-add e2 na));setq
(entmake e2)
(entdel edge)
(setq elst2 (subst (entlast) edge elst2))
);progn then not already associated to the hatch
);if
);foreach
(setq lptype (cdr (assoc 92 loop))) ;; old loop type
(if (= 4 (logand 4 lptype))
(progn
;; Then loop is derived from boundary pick
;; Assemble the new loop data and insert it at the proper location
(setq ss2 (acet-list-to-ss elst2) ;; objec
ts for new loop
loop2 (acet-hatch-loop-data-generate ss2) ;; new l
oop geometry data
edgetp (mapcar 'cdr (acet-list-m-assoc 72 loop2)) ;; list
of 72 values (edge types)
lptype2 (cdr (assoc 92 loop2)) ;; temp
loop type
);setq
;; to get the new loop type... modify the old loop type by adding or remo
ving the pline bit as needed
(cond
((and (= 2 (logand 2 lptype))
(or (member 3 edgetp) ;; new loop contains ellipse or spline
(member 4 edgetp)
);or
);and
(setq lptype (- lptype 2))
);cond #1 then old boundary was a pline and new one does not have pline
bit set so remove it from lptype
((and (/= 2 (logand 2 lptype))
(= 2 (logand 2 lptype2))
);and
(setq lptype (+ lptype 2))
);cond #1 then old one had no pline and new one has pline bit set so add
it to lptype
);cond close
);progn then derived
);if
(if (/= lptype (cdr (assoc 92 loop)))
(progn
;; then loop type is derived and it has changes so update the geometry of
the loop
(setq loop2 (subst (cons 92 lptype) (assoc 92 loop2) loop2) ;; put t
he proper loop type in
update T
);setq
);progn then
(progn
;; strip the old edge ids out
(setq loop (reverse loop))
(while (= 330 (car (car loop)))
(setq loop (cdr loop))
);while
; add the new edge ids in
(foreach edge elst2
(setq loop (cons (cons 330 edge) loop))
);foreach
(setq loop2 (reverse loop))
);progn else loop type has not changed so keep original geometry and just
update references to edges
);if
(setq loop2 (subst (cons 97 (length elst2)) (assoc 97 loop2) loop2) ;; make
sure edge count is correct
e1 (acet-hatch-loop-data-put e1 loop2 n) ;; inser
t the new loop in proper location
);setq
(if ss
(progn
;; Where needed; re-create the original boundary edge objects to
;; dis-associate them from the hatch
(setq ss2 (acet-hatch-boundary-ss e1))
(setq n 0)
(repeat (sslength ss)
(setq na2 (ssname ss n))
(if (not (ssmemb na2 ss2))
(progn
(setq e2 (entget na2)
e2 (acet-acadreactor-id-remove e2 na)
);setq
(entmake e2)
(entdel na2)
);progn then no longer associated to hatch so re-create
);if
(setq n (+ n 1));setq
);repeat
);progn then
);if
(list e1 update)
);defun acet-hatch-loop-assoc-db

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and returns true if any of the loops have the derived bit
set.
;loop created via a boundary pick instead of select objects.
;
(defun acet-hatch-is-derived ( e1 / na lst flag a )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq lst (mapcar 'cdr (acet-list-m-assoc 92 e1)))
(while lst
(setq a (car lst)
lst (cdr lst)
);setq
(if (= 4 (logand 4 a))
(setq flag T
lst nil
);setq then derived
);if
);while
flag
);defun acet-hatch-is-derived
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Delete boundary objects from hatch.
; - Use acet-hatch-edge-id-remove to remove it from all loops
; if a loop no longer has any object associated with it then remove
; the loop updating the loop count.
; Re-make the boundary object being removed to get rid of reactors.
;
(defun acet-hatch-boundary-delete-db ( e1 ss / na n j na2 e2 loop loop2 lst2 lst
)
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq lst (acet-hatch-boundary-enames e1)
e1 (acet-hatch-edge-id-remove-all e1) ;; remove all references to edge
s
);setq
;; re-build each loop with specified edges removed
(foreach loop lst
(setq loop2 nil)
(foreach edge loop
(if (not (ssmemb edge ss))
(setq loop2 (cons edge loop2))
(progn
(setq e2 (entget edge)
e2 (acet-acadreactor-id-remove e2 na)
);setq
(entmake e2)
(entdel edge)
);progn else remove the reactors by re-entmaking without the reactor refe
rences
);if
);foreach
(if loop2
(setq lst2 (cons loop2 lst2))
(setq e1 (acet-hatch-loop-remove e1 (vl-position loop lst)));setq else del
ete the loop
);if
);foreach
(setq lst2 (reverse lst2))
(acet-hatch-boundary-assoc-db e1 lst2 T)
);defun acet-hatch-boundary-delete-db
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch entity (ename or elist) and returns a selection set of associated
boubndary
;objects.
;
(defun acet-hatch-boundary-ss ( e1 / na lst ss )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq lst (member (assoc 97 e1) e1)
lst (acet-list-m-assoc 330 lst)
lst (mapcar 'cdr lst)
);setq
(if lst
(setq ss (acet-list-to-ss lst));setq
);if
ss
);defun acet-hatch-boundary-ss
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and returns a list of loop lists.
; Each loop list is a list of enames.
;
(defun acet-hatch-boundary-enames ( e1 / na loop lst a )

(if (equal (type e1) 'ENAME)


(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq e1 (cdr (member (assoc 330 e1) e1))
e1 (cdr (member (assoc 91 e1) e1))
e1 (reverse (cdr (member (assoc 75 e1) (reverse e1))))
);setq
(while e1
(setq a (car e1)
e1 (cdr e1)
);setq
(if (= 92 (car a))
(progn
(if loop
(setq lst (cons (reverse loop) lst)
loop nil
);setq then
);if
);progn then
(progn
(if (= 330 (car a))
(setq loop (cons (cdr a) loop));setq then
);if
);progn else
);if
);while
(if loop
(setq lst (cons (reverse loop) lst)
loop nil
);setq then
);if
(reverse lst)
);defun acet-hatch-boundary-enames

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Adding new loops. Takes a hatch and a loop ename list and appends the loop to t
he hatch.
;
(defun acet-hatch-loop-add-db ( e1 loop / na n )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq n (cdr (assoc 91 e1))
e1 (acet-hatch-loop-assoc-db e1 loop n)
e1 (car e1)
);setq
(entmod e1)

(acet-hatch-update na)
);defun acet-hatch-loop-add-db
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Used by acet-hatch-boundary-delete-db to remove unneeded loops
;Delete a single loop from the hatch.
;Takes a hatch entity and a loop index
;updates the loop count and deletes the loop and returns the new elist
;NOTE: No entmod is performed and boundary objects will still reference the hatc
h.
;
(defun acet-hatch-loop-remove ( e1 j / na n a e2 )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq n (cdr (assoc 91 e1))
e1 (subst (cons 91 (- n 1)) (assoc 91 e1) e1)
n -1
);setq
(while (setq a (car e1))
(if (= 92 (car a))
(progn
(setq n (+ n 1))
(if (= n j)
(progn
(setq e1 (cdr e1))
(while (and (setq a (car e1))
(/= 92 (car a))
(/= 75 (car a))
);and
(setq e1 (cdr e1))
);while
);progn then strip the loop data
);if
);progn then
);if
(if a
(setq e2 (cons a e2))
);if
(setq e1 (cdr e1));setq
);while
(setq e2 (reverse e2))
);defun acet-hatch-loop-remove
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and a loop index and returns the hatch data for that loop.
;
(defun acet-hatch-loop-data-at-index ( e1 j / na a n loop )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if

(setq n -1)
(while (setq a (car e1))
(setq e1 (cdr e1));setq
(cond
((= 92 (car a))
(setq n (+ n 1))
)
((= 75 (car a))
(setq n -1
e1 nil
);setq
)
);cond close
(if (= n j)
(setq loop (cons a loop))
);if
);while
(reverse loop)
);defun acet-hatch-loop-data-at-index

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a hatch entity and data for one complete loop and places it at the specif
ied index.
;returns the new elist.
;NOTE: Any existing data at the specified index will be removed.
;
(defun acet-hatch-loop-data-put ( e1 loop j / na e2 e3 n k )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq e2 (reverse e1)
e2 (member (assoc 91 e2) e2)
e2 (reverse e2) ;; portion before path data
e3 (member (assoc 75 e1) e1) ;; portion after path data
k (cdr (assoc 91 e1))
);setq
(if (>= j k)
(setq e2 (subst (cons 91 (+ k 1)) (assoc 91 e2) e2)
e1 (append e2 loop e3)
);setq then actually adding another loop
(progn
(setq n 0)
(repeat k
(if (= n j)
(setq e2 (append e2 loop));setq then
(setq e2 (append e2 (acet-hatch-loop-data-at-index e1 n)));setq else
);if
(setq n (+ n 1));setq
);repeat
(setq e1 (append e2 e3));setq
);progn then
);if
e1
);defun acet-hatch-loop-data-put
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a selection set for one loop and creates a temporary hatch object and the
n
;extracts the loop data at index 0 and returns it.
(defun acet-hatch-loop-data-generate ( ss / xt d sf na e1 loop n )
;; Find the smallest object in the selection set and base that hatch scale off
of that
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n))
(if (and (setq xt (acet-ent-geomextents na))
(setq xt (distance (car xt) (cadr xt)))
(> xt 0.0)
(or (not d)
(< xt d)
);or
);and
(setq d xt)
);if
(setq n (+ n 1));setq
);repeat
(if (and (setq xt (acet-geom-ss-extents ss nil))
(setq xt (distance (car xt) (cadr xt)))
d
(< d (* 0.02 xt))
);and
(setq d (/ (+ d xt) 2.0)
);setq then d is way less that the extents of the full selection set so ave
rgage the two.
);if
(if d
(progn
(setq sf (/ (* 0.75 d) 0.125)
na (entlast)
);setq
(command "_.-bhatch" "_prop" "ansi37" sf 0.0 "_select" ss "" "")
);progn then
);if
(if (not (equal na (entlast)))
(progn
(setq na (entlast)
e1 (entget na)
);setq
(command "_.undo" "1")
(setq loop (acet-hatch-loop-data-at-index e1 0))
(if (/= (sslength ss) (cdr (assoc 97 loop)))
(progn
(setq loop (subst (cons 97 (sslength ss)) (assoc 97 loop) loop))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
na (cons 330 na)
);setq
(if (not (member na loop))
(setq loop (append loop (list na)));setq then
);if
(setq n (+ n 1));setq
);repeat
);progn then
);if
);progn then
);if
loop
);defun acet-hatch-loop-data-generate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch elist, an ename, and a loop index and
;adds the ename to the hatch boundary path at the specified loop index.
;Returns the new elist.
;
(defun acet-hatch-edge-id-add ( e1 na2 j / e2 e3 e4 e5 n a b lst k tp )
(setq e2 (acet-list-split e1 (assoc 92 e1))
e3 (cadr e2) ;; path data and beyond
e2 (car e2) ;; prior to path data
e3 (acet-list-split e3 (assoc 75 e3))
e4 (cadr e3) ;; after path data
e3 (car e3) ;; path data
;e2 (reverse (member (assoc 91 e1) (reverse e1))) ;; the b
egining
;e3 (cdr (member (assoc 91 e1) e1)) ;; the path data
;e3 (reverse e3)
;e3 (cdr (member (assoc 75 e3) e3))
;e3 (reverse e3)
;e4 (member (assoc 75 e1) e1) ;; the end
tp (cdr (assoc 0 (entget na2)))
);setq
(setq n -1)
(while e3
(setq a (car e3))
(if (= 92 (car a))
(progn
(setq a (cdr a))
(if (and (or (= tp "ELLIPSE") ;; if new object is a ellipse or spline
and the loop was a pline
(= tp "SPLINE")
);or
(= 2 (logand 2 a))
);and
(setq a (- a 2));setq then remove the pline bit
);if
(setq e5 (cons (cons 92 a) e5)
e3 (cdr e3)
);setq
(setq n (+ n 1))
(if (= n j)
(progn
(while (/= (car (car e3)) 97) ;; traverse the data until sourc
e object count is found
(setq e5 (cons (car e3) e5)
e3 (cdr e3)
);setq
);while
(setq a (car e3)
e3 (cdr e3)
e5 (cons (cons 97 (+ 1 (cdr a))) ;; update source object
count
e5
)
);setq
(while (= (car (car e3)) 330) ;; add in existing source object
references
(setq e5 (cons (car e3) e5)
e3 (cdr e3)
);setq
);while
(setq e5 (cons (cons 330 na2) e5));setq ;; add the one we need t
o add
);progn then
);if
);progn then starting a new loop
(setq e5 (cons a e5)
e3 (cdr e3)
);setq else
);if
);while
(setq e5 (reverse e5))
(append e2 e5 e4)
);defun acet-hatch-edge-id-add

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch elist, an ename, and a loop index and
;removes the ename from the hatch boundary path at the specified loop index.
;Returns the new elist.
;
(defun acet-hatch-edge-id-remove ( e1 na2 j / e2 e3 e4 e5 n a b lst k tp groupc
)
(setq e2 (acet-list-split e1 (assoc 92 e1))
e3 (cadr e2) ;;
e2 (car e2) ;; before path data
e3 (acet-list-split e3 (assoc 75 e3))
e4 (cadr e3) ;; after path data
e3 (car e3) ;; path data
;e2 (reverse (member (assoc 91 e1) (reverse e1))) ;; the b
egining
;e3 (cdr (member (assoc 91 e1) e1)) ;; the path data
;e3 (reverse e3)
;e3 (cdr (member (assoc 75 e3) e3))
;e3 (reverse e3)
;e4 (member (assoc 75 e1) e1) ;; the end
tp (cdr (assoc 0 (entget na2)))
groupc (cons 330 na2)
);setq
(setq n -1)
(while e3
(setq a (car e3))
(if (= 92 (car a))
(progn
(setq e5 (cons a e5)
e3 (cdr e3)
);setq
(setq n (+ n 1))
(if (= n j)
(progn
(while (/= (car (car e3)) 97) ;; traverse the data until sourc
e object count is found
(setq e5 (cons (car e3) e5)
e3 (cdr e3)
);setq
);while
(setq a (car e3)
e3 (cdr e3)
e5 (cons (cons 97 (- (cdr a) 1)) ;; update source object
count
e5
)
);setq
(while (= (car (car e3)) 330) ;; add in existing source object
references
(if (not (equal (car e3) groupc))
(setq e5 (cons (car e3) e5)) ;; then not the one we are remov
ing so add it
);if
(setq e3 (cdr e3));setq
);while
);progn then
);if
);progn then starting a new loop
(setq e5 (cons a e5)
e3 (cdr e3)
);setq else
);if
);while
(setq e5 (reverse e5))
(append e2 e5 e4)
);defun acet-hatch-edge-id-remove
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch elist and removes references to boundary source objects from the
list.
;Returns the new list.
;
(defun acet-hatch-edge-id-remove-all ( e1 / x e2 pflag )
(foreach x e1
(cond
((= (car x) 97)
(setq x '(97 . 0)
pflag T ;; into the path data now
)
)
((and pflag
(= (car x) 330)
);and
(setq x nil)
)
);cond close
(if x
(setq e2 (cons x e2))
);if
);foreach
(reverse e2)
);defun acet-hatch-edge-id-remove-all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch elist, an old ename and a new ename and replaces references
;to the old object with references to the new one.
;Returns a list of three items:
; (elist oldna newna)
;
;elist - the updated version of the hatch elist
;oldna - the newly created version of oldna (the original is deleted)
;newna - the newly created version of newna (the original is deleted)
;
;NOTE: The newna and oldna objects are re-created in order to add/remove the rea
ctors.
; Also note that the hatch is not modified via entmod. Only its list is mod
ified.
;
(defun acet-hatch-edge-id-replace-db ( e1 oldna newna / na lst e2 )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(if (and (setq e2 (entget newna))
(setq e2 (acet-acadreactor-id-add e2 na)) ;; point at the hatch
(entmake e2)
);and
(progn
(entdel newna)
(setq newna (entlast)
e1 (subst (cons 330 newna) (cons 330 oldna) e1)
e2 (entget oldna)
e2 (acet-acadreactor-id-remove e2 na)
);setq
(entmake e2)
(entdel oldna)
(setq oldna (entlast)
lst (list e1 oldna newna)
);setq
);progn then
);if
lst
);defun acet-hatch-edge-id-replace-db
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;Takes a hatch elist and an ename of a boundary object
;Returns the first loop index that the ename is referenced in. Returns -1 if not
present.
;First index is 0
;
(defun acet-hatch-edge-id-loop-index ( e1 na2 / a n flag )
(setq e1 (cdr (member (assoc 91 e1) e1))
e1 (reverse (cdr (member (assoc 75 e1) (reverse e1))))
a (cons 330 na2)
);setq

(setq n -1)
(while e1
(if (= 92 (car (car e1)))
(setq n (+ n 1));setq
(progn
(if (equal a (car e1))
(setq e1 nil
flag T
);setq then
);if
);progn
);if
(setq e1 (cdr e1));setq
);while
(if (not flag)
(setq n -1)
);if
n
);defun acet-hatch-edge-id-loop-index

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;General purpose update function for associative hatches.
;Takes a hatch entity (ename or elist) and safely updates the hatch without loss
of
;associativity.
;NOTE: This may require re-creating the boundary objects for re-associating a ha
tch
; that has lost it during the update.
;
;Returns T if successful and nil if not. (hatch will be associative on return no
matter what)
;
(defun acet-hatch-update ( e1 / na lst a ss xt p1 p2 p3 p4 p5 p6 sf d1 d2 p7 ss2
elst n lst2 na2 e2 flag )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq flag T)
(setq ss (acet-hatch-boundary-ss e1));setq
(if (not (acet-hatch-is-derived e1))
(command "_.move" na ss "" "0,0" "0,0");then just move it to force an updat
e
(progn
(acet-ucs-cmd '("_view"))
(setq xt (acet-geom-ss-extents ss T) ;; get the extents of the hatch
boundaries
p1 (car xt)
p2 (cadr xt)
p1 (list (car p1) (cadr p1) 0.0)
p2 (list (car p2) (cadr p2) 0.0)
xt (acet-geom-view-points) ;; get the view corner points
p3 (car xt)
p4 (cadr xt)
p3 (list (car p3) (cadr p3) 0.0)
p4 (list (car p4) (cadr p4) 0.0)
;sf (/ (distance p3 p4) ;; scale factor to make the hatc
h same size as the current view
; (distance p1 p2)
; )
;sf (* sf 0.75) ;; adjust it down to allow for d
ifferences in height to width ratio
;; of screen versus boundary ext
ents.
sf (/ (acet-geom-pixel-unit)
(cdr (assoc 47 e1))
)
p5 (acet-geom-midpoint p1 p2) ;; want to find a base point to
scale from such that the mid points
p6 (acet-geom-midpoint p3 p4) ;; of p1-p2 and p3-p4 will coinc
ide.
p7 (acet-ss-scale-to-fit-base p5 p6 sf) ;; get the base point to sca
le from
);setq
;; get the original boundary objects in case we need to re-hook them up
;; after the scale operations.
(setq lst (acet-hatch-boundary-enames e1));setq
(acet-ss-redraw ss 4)
(redraw na 4)
(command "_.redraw")
(setq ss2 (acet-hatch-boundary-ss e1)
ss2 (ssadd na ss2)
);setq
(acet-ss-visible ss2 0) ;; go stealth
(setq elst (acet-hatch-boundary-dumb-down ss)) ;; get rid of point along p
lines that are too close together
(command "_.scale" na ss "" p7 sf) ;; scale it then reverse
it
(setq e1 (entget na))
(if (/= 1 (cdr (assoc 71 e1)))
(progn
; (print (assoc 92 e1))
; (getstring "lost assocativity on first scale")
(acet-hatch-boundary-assoc-db e1 lst nil) ;; re-assoc the objects
(setq e1 (entget na)
ss (acet-hatch-boundary-ss e1)
lst (acet-hatch-boundary-enames e1) ;; get updated version of
lst ;@rk
lst2 (apply 'append lst)
);setq
;; swap in the new enames for the boundaries
; (getstring "what up")
(setq n 0)
(repeat (length elst)
(setq e2 (nth n elst)
na2 (nth n lst2)
e2 (subst (cons -1 na2) (assoc -1 e2) e2)
elst (subst e2 (nth n elst) elst)
);setq
(setq n (+ n 1));setq
);repeat
(command "_.move" na ss "" "0,0" "0,0")
(setq e1 (entget na))
(if (/= 1 (cdr (assoc 71 e1)))
(setq flag nil);then we failed to coax the hatch into updating.
);if
;(getstring "did we get it back?")
);progn then lost associativity so re-assoc and re-build the selection
set
);if
(command "_.scale" na ss "" p7 (/ 1.0 sf)) ;; then reverse the scal
ing

(foreach x elst (entmod x)) ;; put the boundary back


to its original accuracy.
(setq e1 (entget na))
(if (/= 1 (cdr (assoc 71 e1)))
(progn
; (print (assoc 92 e1))
; (getstring "lost assocativity dude")
(acet-hatch-boundary-assoc-db e1 lst nil) ;; re-assoc the objects
; (getstring "Just did a acet-hatch-boundary-assoc-db")
(setq e1 (entget na)
ss2 (acet-hatch-boundary-ss e1)
ss2 (ssadd na ss2)
);setq
);progn then lost associativity so re-assoc and re-build the selection
set
);if
(acet-ss-visible ss2 0) ;; make the hatch and boundaries visible again
(acet-ucs-cmd '("_prev"))
);progn else it has one or more derived (boundary pick) loops.
);if
flag
);defun acet-hatch-update
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;
(defun acet-hatch-boundary-dumb-down ( ss / lst na e1 n px )
(setq px (acet-geom-pixel-unit))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(if (= "LWPOLYLINE" (cdr (assoc 0 e1)))
(progn
(setq lst (cons e1 lst))
(acet-lwpline-remove-adjacent-dups e1 px)
);progn then
);if
(setq n (+ n 1));setq
);repeat
lst
);defun acet-hatch-boundary-dumb-down
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;
(defun acet-lwpline-remove-adjacent-dups ( e1 fuz / na lst plst wlst1 wlst2 blst
j n p1 p2 )
(if (equal (type e1) 'ENAME)
(setq na e1
e1 (entget na)
);setq then
(setq na (cdr (assoc -1 e1)));setq else
);if
(setq lst (acet-pline-segment-list e1)
plst (nth 0 lst)
wlst1 (nth 1 lst)
wlst2 (nth 2 lst)
blst (nth 3 lst)
lst nil
);setq
(setq n 0)
(while (< (+ n 1) (length plst))
(setq p1 (nth n plst)
j (+ n 1)
);setq
(while (and (< j (length plst))
(setq p2 (nth j plst))
(<= (distance p1 p2) fuz)
);and
(setq lst (cons j lst)) ;; add to list of items to be removed
(setq j (+ j 1));setq
);while
(setq n j);setq
);while
(setq plst (acet-list-m-remove-nth lst plst)
wlst1 (acet-list-m-remove-nth lst wlst1)
wlst2 (acet-list-m-remove-nth lst wlst2)
blst (acet-list-m-remove-nth lst blst)
lst (list plst wlst1 wlst2 blst)
);setq
(acet-pline-segment-list-apply e1 lst)
);defun acet-lwpline-remove-adjacent-dups
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;
;Remove the indexes listed in ids from lst and return new lst
;
(defun acet-list-m-remove-nth ( ids lst / n lst2 )
(setq n 0)
(repeat (length lst)
(if (not (member n ids))
(setq lst2 (cons (nth n lst) lst2));setq then
);if
(setq n (+ n 1));setq
);repeat
(reverse lst2)
);defun acet-list-m-remove-nth

(princ)
üAµÉlãÐR }±ueߥËÝv¹vRüe¦ì Tþ EÇC {N91/ÄÅ%fS /×XZ3¸kÁ¬¿ nSt  þ¡ävúâïl Y0± _ uüñÔÇi D1ùe E4"
%Î?-W B¶¬þU ,p[C3úOº.9
лõï Ì¥ë5f;XY
S2+ Ü)ún4²8j
ì6UA Uèe
¸KZ¢qäZ³Ë¢þðkÙ5
&ÿ2¥G´Ë 4vÎVÿ-ÚGD»
û bá?öËmÉQ\
Ú½|Ò¾0?¢ÿÿ SUÆ\H°ñ÷ÓìÌ @\ÜUgN y8+*dL×LÌÜ
)JÄT *¶Hb?ìß _\
I]ü5Mª0 àáü÷q$Ú Ê }Y~fE ´= ç Á÷qòÉ,$ ®p c/ ùÖ_iú ¦øù m Ñ þ57 Â#¶ (Ä Eû) ¸
ïa½#H Ü øA¦àrÍ®wbc
Ñ.u +kåùg R3û ³íKð¹Ò¾f,Ä üÅ @; ã?ý $®
Üá
#a ÆÎW 7_I ¢q AÅn½#HÙ°S[D E‾BÇU8§B E®ýsD´K¢áS´= Çß?&+{éZæ Ô½6vrÂJ ä3X ñÇ‾ô
wÙ¨zås MHû~; S ¹æwùÛÑ¿Ù<%  CÑ CÂh wäìvWh{ ÛRUö_ 3© _âO@¿}pÛ Dñç~òùÅ  ÄÎ ò-?q% ]Ö|Êâ] *8
×±¸
ó;j[û¬
|FÛ Í‾
ÕHÄðz!szÇ
[Í=<ù
ÏÉC$µMZ: úµ×Ã`
ki² ?ùn
}y¹¤m
Î7 iý «¿¨ç ÔÚ¢m˶ÍLçÅ.ÍÚ²(Q Àÿì Ì
»Ú=WAæ
Î-õüMß.ùéþ ì¾OíÝ.7Y
yôÊ¿lL×Ùó
äÇ>ÿY¾ó
Q [ ³=ý¿9i
¦D»é‾ zÜí³
#+b‾w5"ïÏ
ùê~Ó×Kvhq
äDÂÄoñïËü ¡b9W
, BÕÖ®ÝkïÜÆÁ".
@á*W øc%.¢4ßg
V' ´e ~Çïßɾ uíEÚêù´øSç
Gù Q5 Ì=S«¸lzPÁ<É¿d  z Jp+/§¬m8prÈGp æëËÅ;UÙi )ßÌEÀ¦öbMâT øU ,ñïóú}u Pû7]½ð¿ÖÎì ãߗzó u¼ö
ç¼õ
8LâgÏ
´SÏw]ÑðÙ
_êÊù;
y66ý òÿ
ÕÚ S~<$Öâ
d‾vÛÊÆ¢¤Z¤Â¿G»ÞÐ^
 / ‾Ê2ã¨o®
e¬uÞ4 úúr®N
`O!æWÚRïU±
öYeÓBûVg
&Ó8ø¡ªüça°
'Û C5Ê7&7ÕDe
4Ã:+£ Þ sh
&‾hÍ?åùDX¦ :2#¾4®@Dèp
i ¹I ±^3 ¥ÇWªxO9ö|ÉÂÃõ»
Óï, à÷ãyh{
I|Î$zËÿÙÖ
Zä ÏÂÎ×3í ×^غ\QX»fªÎT õì¬JLÐÈf¥ 4p Ó/qÚ Úµo{1ß ùg#$µ=Ì_í ¢ »r>*é oo×Ãýfϧ=‾)çe ýg´ë÷Úë
øø |´ýmo®gI{Ü| 9÷){9ú{ ¡@àØZz§ÉBü{½AEf_¹ $m ]pæ ²²¢]× £ù)a fó &_ Ð Ø2X v¾9×ÞçÜó¡özK;Áæ«ÛÕ\Î
Æáz  Yûáõbxý$óM |D=ï³'´::± ðÁóãóó¸Uu CZ æû4÷æ5 µýzV%ð c¦pÎ
ÛLµmƶgÿ3óPmDE? ÄqÉT.ͺ"¼}4~q3
;;; IMAGE.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;; Load the AutoCAD 2000 COM object model functions here.
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; This file demonstrates adding an Image using Visual LISP's ;
;;; ActiveX functions. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: INSERT-IMAGE ;
;;;--------------------------------------------------------------------;
;;; ;
;;; Description: Places an image into ACAD. ;
;;; ;
;;; Arguments: ;
;;; fnm = File name of image. ;
;;; pt = Insertion point for image. ;
;;; scale = Scale insertion for the imag. ;
;;; rot-angle = Rotation for the image. ;
;;; #<Vla Objec IAcadLine 022f2814> ;
;;; ;
;;; Returned Value: A Vla Object such as: ;
;;; #<VLA-OBJECT IAcadRaster 027a1c4c> ;
;;; ;
;;; Usage: ;
;;; (insert-image ;
;;; (getfiled "Choose Image file" "" ;
;;; "BMP" ;
;;; 4 ;
;;; ) ;
;;; '(0 0) ;
;;; 1 ;
;;; 0 ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun insert-image (fnm pt scale rot-angle
/ AcadApp ActiveDoc ModelSpace
)
(if fnm ;; if the file name is present and not nil
(progn
(setq AcadApp (vlax-get-acad-object)
ActiveDoc (vla-get-ActiveDocument AcadApp)
ModelSpace (vla-get-ModelSpace ActiveDoc)
)
(vla-AddRaster
ModelSpace
fnm
(vlax-3d-point pt)
scale
rot-angle
)
)
)
)
-Ùü ä—lø
^sÃì±
åm[.r
ÿcì÷ä7ÉÃüY1ÿ
à«Ñ <ÉCW# üýòPr¢è§ïïÎxe¼ ¶çMx¦n¹0Æ ÓWW9ìÀ׍[ þ Ø{%ðÓ(, ü H
øcÿ§WO¾
ó7h¶ÉÉ{
ø ¤#&-Ã!ϗJáâõí
ø ,ËWa $Åð 8K=u Ì'6a_ ¼1 ùoÛ
º¤~/v
m ×Z ç¡ çÉÔ^㸠> <Ð^Ô5íecÉ$¡*@ å ëMÖöí ¹8 G ؗIþ9öäsîj|ÔùÞXØ §¨yä7c 1Àÿ þ¸@Âk³(M + ®rñ
[»¡°úÒÆGòÔ <`'
ÿ—Cΰᡥ¡9tÅl
ç » û {@} {ü"Ç spÂ`Ã
`ØèRQ
3/ìKD
2ðL*Ø&õ!o,
fu ÝsÕÂ÷ùOÃ^8¼Â~É°
Uªæ ÑvI!‾6ÂûA9
£ ±û
 F,lø¥ Ü &Ú¢¤$åÆ´£TÒIì À+øÕ å© Ìa‾È
/º
Q²Â
RÕ Ù¾#Æ
Q#v&¿$ò*z¾&?²7óï
;9¿x÷¾ T {¡õNæ|¢Û õÙØå ñ%þYKH
û Ó0²á=Ï
‾FyÞû¦µR_¢*O Gì1jÀí ±/ ¢ð,CÚI
^õ ®:x—ÕØ À<ͼ-Át-&°wÈë  <Ï 1g8j ôSj } BÏ
©&u
{3\ª3"~
ؽá¹{ ]> NQÓ
|ö _©«DòÖH¸H"
 - lO¸: Ûù¦ 4©:x ³$ûl×®t¦ì ãß17¬α`ßw  Ë`i Z +iÀn½çéeÔZ*%rM;¼uû» ãCì°£
ö ð× | Pto2üNØ9R$8 ÍìÉ ç>ÇBÄ#~Õ$"¥oVaÿ ý±óÅyi&x6‾ð]e¥ÙH¡9 N:Ð.)g¨{¼*aw <$O^Nþª£ É¥¢ÚZ¨¾rì
iê vãáÇؗE¶?
pHÞ9m
֟YM
LÀ3÷k£Füu~TíöÓÌu¬n
ûTVÞ¢¼°ÿ`ì&Ë«ß&^H
ا&ܧ
.J`;%¸Å¿Àn
ª j¦
=]ÿË» òÅÃOü5Çî&Ô
ýT9rì

ðcéz§ý¬
ö ôø§xÂÍs
àX
Ñ*éôû»\îò>äX
dìÎyÏS
âs&$y»Ï
Í<Rçbÿ
=a—cì¶Ä
3RÆ
³ñKS$
ÐÞë
ä¾<°_½í]±®©¨Fÿ
>#ücØãªá
F^gؿ
¹_Îç;ÝÍ¡t&
® pͱl©
¹v(ÚGÃ
0±³pëBn
¶Ê>{ @—ex;M¾Rp{y
;£r>gH.
¿° !öñ5ý
[6ÁÄÜFQÔpD
wDa
÷ h¿ñÀD;4uWRjí°(HØæ¹Q³=
‾æëä::zN<Hï²
Õá`êÛq\ pëv
=)¶.<Þ
ì8ÓÊ AT (`
Ü®WRÜéë ý±»¸Ý5/ Rþîù ù àÔ \ òøµQ± éq¸Mf/°ßPîv ÅÔg ‾  ?U §`—wawç±÷×Û>»" *æÒá@ä' ÜØÎ`o þåØï'
»¿{ ío ?Ä2 }¶g°_iËfáÙ¿ÿñûÌ 98Kur˱ ð æ±_‾cëÆ#7È¿° ì9ù‾õÛ±ÿóÚ¾nû a ãx
endstream
551
endobj
0 obj<</Subtype/Image/Length 47/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 125/Height 286/Type/XObject>>stream
H ìÇ¡
°}Âÿ_ì³NcÀM%.É[×帻»»»»»»ûîó1
À³5v
endstream
552
endobj 0 obj<</Subtype/Image/Length 23458/Filter/FlateDecode/BitsPerComponent 8/Col
orSpace 516 0 R/Mask 551 0 R/Width 125/Height 286/Type/XObject>>stream
tH8.R¸ìÕE®tYt 
év9 ½_+vlÕ¾/Zìt¼Äk
ò@õïP RãÎ
¼£STÇõ1;PV
z o ú Hú5õë[V
~ ù5Ô(A¥íyÚ
ÊÚÈ |ÖSQ
À Y²u—Þ\ßÜÜ=ÞÞ?q
îD}fTç
ÌWÍG7VIªb}
)òf¨ß
ö/¤
À?þ8
à¨Ué©
¤_S¿¾
G;þs:~×qb~¬
5]&å¸*
=iUzÑÌ ë۰ϧã÷
//w‾\}:ÝÂ;;
¿÷8a?ÊqÂ~ ã ý(Ç ûQ
;; ix_edit.lsp - IMAGEEDIT command
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. AUTODESK
;; SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR
;; FITNESS FOR A PARTICULAR USE. AUTODESK, INC. DOES NOT WARRANT THAT THE
;; OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject
;; to restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:imageedit ( / na na2 na3 na4 e1 e2 e3 e4 fna fna2 ina ina2)
(acet-error-init
(list (list "cmdecho" 0)
T
);list
);acet-error-init
(princ "\nUse the IMAGEAPP command to specify a non-system-default editor.")
(if (setq na (acet-ui-single-select '((0 . "IMAGE")) nil))
(progn
(setq e1 (entget na) ;the image
na2 (cdr (assoc 340 e1)) ;the imagedef dict
e2 (entget na2)
fna (cdr (assoc 1 e2)) ;the image filename
na3 (cdr (assoc 330 e2)) ;the dictionary that holds th
e image name
e3 (entget na3) ;
na4 (cdr (assoc 330 (reverse e2))) ;the imagedef_reactor
e4 (entget na4)
e3 (member (cons 350 na2) (reverse e3))
ina (xstrcase (cdr (assoc 3 e3)))
);setq
(command "_.-image" "_unload" ina)
(setq fna2 (ACET-FILE-WRITEDIALOG "IMAGE EDIT"
fna
(strcat "BMP;RLE;DIB;RST;GP4;MIL;CAL;CG4;"
";FLC;FLI;GIF;JPG;PCX;PCT;PNG;TGA;"
"TIF"
);strcat
"Acet:ImageEdit"
1664
);ACET-FILE-WRITEDIALOG
);setq
(if (and fna2
(setq fna2 (acet-file-find-image fna2));setq
);and
(progn
(start_image_editor ina fna2)
(if (not (equal (acet-file-find-image fna)
(acet-file-find-image fna2)
)
)
(progn
;(entmod (subst (cons 1 fna2) (assoc 1 e2) e2))
(command "_.image" "_path" ina fna2)
(setq ina2 (xstrcase (acet-filename-path-remove (acet-filename-ex
t-remove fna2))));setq
(setq ina "")
(while (or (not (snvalid ina))
);or
(if (and (snvalid ina2)
(not (and (member (cons 3 ina2) (entget na3))
(not (equal ina2 (xstrcase (cdr (assoc 3
e3)))))
;(princ "\n*Invalid* That name is alread
y in use.")
);and
);not
);and
(progn
(setq ina (getstring (strcat "\nImage name <"
ina2 ">: "
);strcat
);getstring
);setq
(if (equal ina "")
(setq ina ina2)
);if
(setq ina (xstrcase ina));setq
(if (not (snvalid ina))
(progn
(princ "\n*Invalid image name*")
);progn
);if
);progn then
(setq ina (getstring (strcat "\nImage name: "
);strcat
);getstring
ina (xstrcase ina)
);setq else
);if
(if (and (member (cons 3 ina) (entget na3))
(not (equal ina (xstrcase (cdr (assoc 3 e3)))))
(princ "\n*Invalid* That name is already in use.")
);and
(setq ina "")
);if
);while
(if (not (equal ina
(xstrcase (cdr (assoc 3 e3)))
)
);not
(progn
(setq e3 (entget na3)
e3 (member (cons 350 na2) (reverse e3))
e3 (cdr (cdr e3))
e3 (append (reverse e3)
(list (cons 3 ina) (cons 350 na2) )
(cdr (member (cons 350 na2) (entget n
a3)))
);append
);setq
(entmod e3)
);progn then
);if
);progn
);if
);progn then
);if
;(alert (strcat "Pick OK when ready to re-load " ina))
(command "_.-image" "_unload" ina)
(command "_.-image" "_reload" ina)
);progn then
);if
(acet-error-restore)
);defun c:imageedit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Sets the default raster editing application to use in conjunction with the
;imageedit command.
(defun c:imageapp ( / a fna )
(acet-error-init (list nil nil))
(if (or (not (setq a (getenv "VIP_IMAGEEDIT_IMAGEAPP")))
(equal a ".")
(not (findfile a))
);or
(setq a ".")
);if
(while (or (not fna)
(and (not (equal fna "."))
(not (findfile fna))
(princ "\nCannot find that file!")
);and
);or
(setq fna (getstring T
(strcat "\nRaster editing application or . for system defau
lt <"
a
">: "
);strcat
);getstring
fna (acet-str-space-trim fna)
);setq
(cond
((equal fna "")
(setq fna a)
);cond #1
((equal fna "~")
(setq fna (ACET-FILE-READDIALOG "Raster editing application" a "EXE" "Acet:Ras
ter" 1664))
);cond #2
);cond close
);while
(if (not (equal fna "."))
(setq fna (findfile fna));setq
);if
(setenv "VIP_IMAGEEDIT_IMAGEAPP" fna)
(acet-error-restore)
);defun c:imageapp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun start_image_editor ( ina fna / fna2 a app msg flag)
(setq fna2 (acet-file-find-image fna))
(if (not fna2)
(progn
(alert (strcat "Cannot find image: " fna))
(if (not #ihatch);global default file name.
(setq #ihatch "")
);if
(setq fna (ACET-FILE-WRITEDIALOG "Image file name"
#ihatch
(strcat "bmp;rle;dib;rst;gp4;mil;cal;cg4;"
"flc;fli;gif;jpg;pcx;pct;png;tga;tif"
);strcat
"Acet:ImageEdit"
1664
);ACET-FILE-WRITEDIALOG
);setq
(if (setq fna2 (acet-file-find-image fna))
(progn
(command "_.-image" "_path" ina fna)
(command "_.-image" "_unload" ina)
);progn
);if
);progn then
);if
(if fna2
(setq fna fna2)
(setq fna nil)
);if
(if (not (setq app (getenv "VIP_IMAGEEDIT_IMAGEAPP")))
(progn
(setq app ".")
(setenv "VIP_IMAGEEDIT_IMAGEAPP" ".")
);progn
);if
(if (equal app ".")
(setq app (acet-filename-associated-app fna));setq
);if
(if (and fna
app
(or (setq a (findfile app))
(and (getenv "PATH")
(setq a (acet-file-find-on-path app (getenv "PATH")))
);and
);or
);and
(progn
(if (or (acet-str-m-find "IEXPLORE.EXE" (acet-filename-path-remove app))
(acet-str-m-find "NETSCAPE.EXE" (acet-filename-path-remove app))
);or
(setq msg (strcat "\n The associated application: "
"\n \"" app "\""
"\n is not suitable for editing the selected image.
"
"\n\n You can use the IMAGEAPP command to specify a
suitable "
"\n application and override the system default."
"\n\n Alternativley you can change the file associa
tion in"
"\n My Computer by clicking View and then clicking
Options."
);strcat
);setq then
);if
(if (not msg)
(progn

(setq app (acet-filename-ext-remove a)


app (acet-str-replace "\"" "" app)
fna (acet-str-replace "\"" "" fna)
)
(setq
flag (acet-sys-spawn 1 app fna)
);setq
(if (< flag 0)
(princ (strcat "\nError starting application \"" app "\"."))
);if
);progn then
(alert msg);else
);if
);progn then
(progn
(if fna
(progn
(if (not app)
(progn
(alert (strcat "No associated application found for file extensio
n: "
"\"" (vl-filename-extension fna) "\"."
"\n\n Create an association in My Computer by "
"clicking View and then clicking Options."
);strcat
);alert
);progn then association failed
(progn
(if (not a)
(alert "\nRaster editing application: \"" app "\" was not fou
nd.")
);if
);progn else just could not find the app.
);if
);progn then
);if
);progn else describe the error
);if
);defun start_image_editor

(princ)
ý¾; ùïûË ÃF{Õ3N{«4
ØMÙ/ÑÐ@¾ bfzÀ. É PððP
£v= z  ¨ Åj¹ wj g. Ðþ÷¾ÿæE‾.µóº>] »ðC¸â4Ã6£ ö å4Ø_lqoäÆI ÿ  W‾8;ÙÙN%^q/òÉ tï ¹—#[ÒÝ Ý¤ð
%ûjº
Î Üén
N—êÇèB
÷ÚùÇ
O% AL""`>hËFõâ
< Áä¶ Óq Ø_³
],ÚQCúà
¼×ÓN#É[%ªI
Ä»_¿ ÐvP"À
 M È àdø
2Ó7%,
7 Ì˪
5*´¨
HK?)GF6R¡WÀT-®
ÚUóâ\# Tp¡BÕ£xÍ ¸Ó@ÖT 3zI
^=øÈ  ³>
7F3!;*ç p$4«~] ÊüDIJ~ÂÁów}IÛ p¡G
Pþ.
 Hï¨7¸F(!-
çØÄÔ ±#W7
E# ÿ¨Í
½ú Ý häBE§e h  ¾ú0¢Lñ2;© ¢ 6,6ò í %¶%Lɺ¶l¹`Z  ¢Ï W ¬æÅIÝUè U«z^A½Ð vðoîYÀ
K T:´ÈnMdJnÝà Ân ¸a¶²Äæf ;2""P´VöX G;ºë²¼cæÇN<~ Áyær¡& ÍhÅtF8Ç9Daÿ=s7 &» ¬jÄèy‾Q4zÒxE×c\q
P|Ú
;;;
;;; JULIAN.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;; DESCRIPTION
;;;
;;; AutoCAD Julian date / calendar date conversion routines
;;;
;;; CTOJ -- Converts calendar date and time to Julian date
;;;
;;; Call: (ctoj <year> <month> <day> <hour> <minute> <second/fraction>)
;;; Input: Calendar date as argument list, for example:
;;; (ctoj 1957 10 4 19 26 24) ; Launch of Sputnik 1
;;; Returns: Julian date / fraction, as in DATE setvar
;;;
;;;
;;; DTOJ -- Converts AutoCAD calendar date/time to Julian date
;;;
;;; Call: (dtoj <calendar date>)
;;; Input: Real number YYYYMMDD<.HHMMSSmsec>, like CDATE setvar.
;;; Returns: Julian date / fraction, as in DATE setvar
;;;
;;;
;;; JTOC -- Converts Julian date to calendar date list
;;;
;;; Call: (jtoc <Julian date>)
;;; Input: Real number <Julian day>.<fraction>, like DATE setvar
;;; Returns: Calendar date/time list:
;;; (<year> <month> <day> <hour> <minute> <second/fraction>)
;;;
;;;
;;; JTOD -- Converts Julian date to AutoCAD calendar date/time
;;;
;;; Call: (jtod <Julian date>)
;;; Input: Real number <Julian day>.<fraction>, like DATE setvar
;;; Returns: Calendar date/time, as in CDATE setvar
;;;
;;;
;;; JTOW -- Determines day of the week for a given Julian day
;;;
;;; Call: (jtow <Julian date>)
;;; Input: Real number <Julian day>.<fraction>, like DATE setvar
;;; Returns: Integer day of the week, 0 = Sunday, 1 = Monday, ...
;;; 6 = Saturday
;;;
;;;
;;; C:DATE -- Implements DATE command to display the current date/time
;;; in the format: Day YYYY/M/D HH:MM:SS.msec
;;;
;;; Call: DATE (at AutoCAD's Command: prompt)
;;; Input: None (obtains DATE setvar in Julian format)
;;; Returns; Nothing
;;;
;;; Uses (JTOD) to convert to calendar format, and edits the date/time
;;; from there. Day of the week is calculated with (JTOW).
;;;
;;;
;;; Note that a Julian date returned by AutoCAD's DATE setvar or
;;; computed from the CDATE setvar is a true Julian date only if the
;;; system's clock is set to UTC/Zulu (Greenwich Mean Time). Julian
;;; dates are easily compared for earlier/later, and durations can be
;;; computed via simple subtraction. However, such calculations are
;;; accurate only for readings obtained in the same time zone, with
;;; the same clock or synchronized clocks.
;;;
;;;
;;; DETAILS
;;;
;;; If you're interested solely in converting contemporary dates
;;; provided by AutoCAD between Julian and calendar date format you
;;; can ignore the following discussion. If you wish to use these
;;; functions for general work with Julian dates over their entire
;;; historical span of validity (any day beginning with the start of
;;; the year 4713 B.C. has a valid Julian day number), read on.
;;;
;;; 1. B.C. versus negative year numbers
;;;
;;; Historians refer to the first year of the Christian era as "1
;;; A.D." with the year that preceded it called "1 B.C.". This is
;;; consistent with usage at the time, since zero did not come
;;; into use until much later, but creates a messy discontinuity
;;; in the numbering of years which complicates any algorithm
;;; which attempts to calculate across that boundary. Astronomers
;;; have adopted the convention that the year which preceded 1
;;; A.D. is denoted "year 0", the year before that "year -1" and
;;; so on. Thus any year less than 1 can be converted to the
;;; nomenclature used by historians by discarding the sign and
;;; adding one to get the B.C. year number. These functions
;;; follow the astronomical convention for years prior to 1 A.D.
;;; and hence the year in which Julius Caesar established the
;;; Julian calendar in the Roman Empire, 46 B.C. in the history
;;; books, is specified as "-45" when using these functions.
;;;
;;; 2. Julian versus Gregorian calendar
;;;
;;; In October of 1582, the modern Gregorian calendar was
;;; proclaimed by the Vatican, replacing the less-accurate Julian
;;; calendar. At the same time, 10 days were skipped to correct
;;; the inaccuracy in the date of the equinoxes and solstices
;;; which had accumulated over the almost six centuries the Julian
;;; calendar had been used. Thus Thursday, October 4, 1582
;;; (Julian calendar) was followed by Friday, October 15, 1582
;;; (Gregorian calendar). These functions assume, therefore, that
;;; dates on or before October 4, 1582 are in the Julian calendar
;;; and dates thereafter in the Gregorian. If you're working with
;;; dates from history, you must be extremely careful to verify
;;; which calendar they are specified in, as not all countries
;;; adopted the Gregorian calendar immediately. Britain and its
;;; colonies, for example, remained on the Julian calendar until
;;; Wednesday, September 2, 1752, at which time 11 days had to be
;;; dropped to align with the Gregorian calendar on Thursday,
;;; September 14, 1752. Russia remained on the Julian calendar
;;; until after the 1917 revolution, and Turkey did not adopt the
;;; Gregorian calendar until 1927. The later the date of
;;; adoption, naturally, the greater the number of days of Julian
;;; calendar error skipped.
;;;
;;; 3. Round-off in "calendar date" format
;;;
;;; AutoCAD's calendar date format as returned by (getvar "cdate")
;;; is defined as a floating-point number interpreted as:
;;;
;;; yyyymmdd.hhiissttt
;;;
;;; where yyyy = year, mm = month number, dd = year number, hh =
;;; hours, ii = minutes, ss = seconds, and ttt = thousandths of a
;;; second. If you look carefully at this format, you'll note
;;; that the full specification occupies 17 digits, while IEEE
;;; floating-point numbers as used in AutoCAD have a precision of
;;; 16 digits at best and less than that once you start to perform
;;; calculations on them. Thus, extracting millisecond timings
;;; from calendar dates is problematic, and using calendar dates
;;; for any but the simplest calculations can lead to obscure and
;;; intermittent errors due to round-off. The best approach is to
;;; avoid using "calendar dates" entirely, perform all
;;; calculations with Julian dates, and use the JTOC and CTOJ
;;; functions to convert calendar dates to and from Julian. Since
;;; these functions don't try to pack an entire calendar date into
;;; one floating point number, they avoid the round-off problems
;;; which plague AutoCAD "calendar dates".
;;;
;;;
;;; REFERENCES
;;;
;;; The algorithms and test cases used herein may be found in Chapter 7
;;; (pages 59-66) of:
;;;
;;; Meeus, Jean. Astronomical Algorithms. Richmond: Willman-Bell, 1991.
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (CTOJ <year> <month> <day> <hour> <minute> <second/fraction>)
;;;
(defun ctoj (yr m d hh mm ss / y a b)
(setq y yr)
(if (<= m 2)
(setq y (1- y)
m (+ m 12)
)
)
(if (or (< yr 1582)
(and (= yr 1582) (or (< m 10) (and (= m 10) (< d 5)))))
(setq b 0) ; Julian calendar
(setq a (fix (/ y 100)) ; Gregorian calendar
b (+ (- 2 a) (fix (/ a 4)))
)
)
(+ (fix (+ (* 365.25 (+ y 4716)) (fix (* 30.6001 (+ m 1)))))
d b -1524.0 (/ (+ (* (+ (* hh 60) mm) 60) ss) (* 24.0 60 60)))
)
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (DTOJ <calendar date>) -- convert calendar date/time to Julian
;;;
(defun dtoj (cdate / c f yr ys m d)
(setq ys (if (< cdate 0) -1 1) ; Sign on year
c (fix (abs cdate)) ; Date in unsigned digits
yr (* (/ c 10000) ys) ; Get year
m (rem (/ c 100) 100) ; Get month
d (rem c 100) ; Get day
f (rem (abs cdate) 1) ; Fraction of day
)
(ctoj yr m d (fix (+ (* f 100) 0.1))
(rem (fix (+ (* f 10000) 0.1)) 100)
(+ (rem (fix (+ (* f 1000000) 0.1)) 100)
(/ (rem (fix (+ (* f 1000000000) 0.1)) 1000) 1000.0)))
)
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (JTOC <Julian date>) -- convert Julian date/time to calendar date list
;;;
(defun jtoc (td / time a b c d e alpha z m hh mm)
(setq time (* 86400.0 (- td (setq z (fix td)))))
(if (< z 2299161)
(setq a z) ; Julian calendar
(setq alpha (fix (/ (- z 1867216.25) 36524.25)) ; Gregorian calendar
a (- (+ z 1 alpha) (fix (/ alpha 4)))
)
)
(setq b (+ a 1524)
c (fix (/ (- b 122.1) 365.25))
d (fix (* 365.25 c))
e (fix (/ (- b d) 30.6001))
)
(setq m (fix (if (< e 14) (1- e) (- e 13))))
; Determine the clock time from the fraction of a day
(setq hh (fix (/ time 3600.0))
time (- time (* hh 3600.0))
mm (fix (/ time 60.0))
)
; Return calendar date as list
(list (fix (- c (if (> m 2) 4716 4715))) m (fix (- b d (fix (* 30.6001 e))))
hh mm
(- time (* mm 60))
)
)
;;;
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (JTOD <Julian date>) -- convert Julian date/time to calendar
;;;
(defun jtod (td / j)
(setq j (jtoc td))
; Return calendar date in form YYYYMMDD.HHMMSSmsec
(* (+ (* (abs (car j)) 10000) ; year
(* (cadr j) 100) ; month
(caddr j) ; day
(/ (cadddr j) 100.0) ; hour
(/ (nth 4 j) 10000.0) ; minute
(/ (nth 5 j) 1000000.0) ; seconds, milliseconds
)
(if (< (car j) 0) -1 1) ; apply sign to year
)
)
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (JTOW <Julian date>) -- Convert a Julian date to day of week
;;;
(defun jtow (j)
(fix (rem (1+ j) 7))
)
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (c:JTEST) -- Internal test program for Julian date functions
;;; Displays several lines of numbers. If none are
;;; flagged with " Error ", all is okay.
;;;
;(defun c:JTEST (/ dl jl cjl cdl err eps)
; (setq dl '(20000101.12 19870127.0 19870619.12 19880127.0
; 19880619.12 19000101.0 16000101.0 16001231.0
; 8370410.0712 -10000712.12 -10000229.0 -10010817.2136
; -47120101.12 -47120101.0 19930309.12 15821004.0
; 15821015.0 19770426.0 19571004.0 19100420.0
; 19860209.0 3330127.0 -5840528.0)
; jl '(2451545.5 2446823.0 2446966.5 2447188.0 2447332.5
; 2415021.0 2305448.0 2305813.0 2026872.3 1356001.5
; 1355867.0 1355671.9 0.5 0.0 2449056.5
; 2299160.0 2299161.0 2443260.0 2436116.0 2418782.0
; 2446471.0 1842713.0 1507900.0)
; eps 0.00005
; )
;
; ; Test DTOJ
;
; (setq cjl (mapcar 'dtoj dl)
; err (mapcar '- cjl jl))
; (mapcar '(lambda (x y z w) (princ (rtos x 2 4)) (princ " ")
; (princ (rtos y 2 12)) (princ " ")
; (princ (rtos z 2 12)) (princ " ")
; (princ w)
; (if (> (abs w) eps) (princ " Error "))
; (terpri))
; dl jl cjl err)
; (terpri)
;
; ; Test JTOD
;
; (setq cdl (mapcar 'jtod jl)
; err (mapcar '- cdl dl))
; (mapcar '(lambda (x y z w) (princ (rtos x 2 4)) (princ " ")
; (princ (rtos y 2 12)) (princ " ")
; (princ (rtos z 2 12)) (princ " ")
; (princ w)
; (if (> (abs w) eps) (princ " Error "))
; (terpri))
; jl dl cdl err)
;
; ; Test JTOW
;
; (if (or (/= (jtow (dtoj 19540630)) 3)
; (/= (jtow (dtoj 15821004)) 4)
; (/= (jtow (dtoj 15821015)) 5)
; )
; (princ "\n Error in jtow.\n")
; )
;
; (princ)
;)
;;;
;;;----------------------------------------------------------------------------
;;;
;;; (C:DATE) -- Implement DATE command to display date/time
;;;
(defun c:date (/ j c cdate m d y hh mm ss msec)
(setq cdate (jtod (setq j (getvar "date")))
c (fix cdate)
y (/ c 10000) ; Get year
m (rem (/ c 100) 100) ; Ger month
d (rem c 100) ; Get day
c (- cdate (fix cdate)) ; Strip date from date/time
c (fix (* c 1000000000)) ; Scale time to get HHMMSSmmm integer
hh (/ c 10000000) ; Get hours
mm (rem (/ c 100000) 100) ; Get minutes
ss (rem (/ c 1000) 100) ; Get seconds
msec (rem c 1000) ; Get milliseconds
)
; Print the day of the week
(princ (nth (jtow j) '("Sun"
"Mon"
"Tue"
"Wed"
"Thu"
"Fri"
"Sat")))
(princ " ")
; Print the date. YYYY/M/D
(princ (strcat (itoa y) "/" (itoa m) "/" (itoa d)))
; Print the time. HH:MM:SS.msec
(princ (strcat " " (if (> hh 9) "" "0") (itoa hh)))
(princ (strcat ":" (if (> mm 9) "" "0") (itoa mm)))
(princ (strcat ":" (if (> ss 9) "" "0") (itoa ss)))
(princ (cond ((> msec 99) "." )
((> msec 9) ".0" )
(T ".00")
)
)
(princ msec)
(terpri)
(princ)
)

(princ)
²B ¶Q¼0ÇÎÅ ‾ÐuÕÑôò ¦Ö ;* *rµ3  PÜÎŹD SEÝX¬óó ý Ýmä½VxÑ[ÿìÜËR] µ6í ªñÀ¥aj®O§ÓÓ±ö ¿ßz!Øâkãr
x-á<#ØÚñ z¶Õ ö±KxÚP=¿½eÕºÄ$ÅNJ@2vÏNú©'Þ±yE %c
] Ås$] Zxu=ÇËq}¡SE
Xq
Õ üègy±Òl÷ ³wBVþ}5°ûù à  ¥b íC,÷éË$ê\ Gh|°
ò W ÒKUC3Ã*¶Ç ä éå ÷ äRÇ 3_ì!ßãнe×oYñ ÖÈÇç
ÚCi Ï ±_ üRf |½³M¬ö¬F^¾ Ö¨Þñ? 'n< p/ ½ û ß¿ø¿ /ݶÑ$¿ÿkìÎÄñ뾍 xß HI ã̾ÅV÷ÿ ¢d'c`   @P4 _«»
éf=Jq'&%q§IÌËÃÌ Í"ÎWñ [ΰ;;
;; Layoutmerge.lsp - Move objects from one or more layouts to the current layou
t and remove
;; the empty original layouts.
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;

;; Autoload the lman.lsp file


(acet-autoload '("lman.lsp" "(bns_sl lstate)"))
(acet-autoload '("tblname.lsp" "(acet-ui-table-name-get lst)"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
(defun c:layoutmerge ( / lst n )
(acet-error-init
(list '( "cmdecho" 0
"highlight" 0
"ucsview" 0
"osmode" 0
"extnames" nil
"cmddia" nil
"plinewid" 0.0
)
T
)
)
(if (or (= (getvar "cmddia") 0)
(= 4 (logand 4 (getvar "cmdactive")))
);or
(setvar "cmddia" 0)
);if
(if (setq lst (acet-layoutmerge-ui))
(progn
(setq n (acet-layoutmerge lst))
(princ (acet-str-format "\n%1 layouts merged." (itoa n)))
(command "_.zoom" "_e")
);progn
);if
(acet-error-restore)
);defun c:layoutmerge

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
(defun c:-layoutmerge ( / lst n )
(acet-error-init
(list '( "cmdecho" 0
"highlight" 0
"ucsview" 0
"osmode" 0
"extnames" nil
"cmddia" 0
)
T
)
)
(if (setq lst (acet-layoutmerge-ui))
(progn
(setq n (acet-layoutmerge lst))
(princ (acet-str-format "\n%1 layouts merged." (itoa n)))
(command "_.zoom" "_e")
);progn then
);if
(acet-error-restore)
);defun c:-layoutmerge
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
(defun acet-layoutmerge-ui ( / lst3 layoutcount flags target del-flag lst )
(setq lst3 (acet-ui-table-name-get
(list "Specify layout(s) to merge" ;; title
"" ;; default
"acad_layout" ;; table/dict name
(+ 8 32) ;; flags: DisallowPick +
MultipleSelect
nil ;; filter
"acet-1508.hlp" ;; help file
"LAYOUTMERGE" ;; help topic
);list
)
);setq
(if lst3
(progn
(setq layoutcount (length (acet-dict-name-list "acad_layout")))
(if (>= layoutcount 255)
(setq flags 8)
(setq flags (+ 1 8)) ;allow new
);if
(setq target (acet-ui-table-name-get
(list "Specify destination layout" ;; title
(getvar "ctab") ;; default
"acad_layout" ;; table/dict na
me
(+ 1 8) ;; flags: AllowN
ew + DisallowPick
nil ;; filter
"acet-1508.hlp" ;; help file
"LAYOUTMERGE" ;; help topic
);list
)
);setq
(if target
(progn
(initget "Yes No")
(if (/= "No"
(progn
(initget "Yes No")
(getkword "\nDelete unused layouts? <Y>: ")
)
)
(setq del-flag T)
);if
(setq lst (list lst3 target del-flag))
);progn then
);if
);progn then
);if
lst
);defun acet-layoutmerge-ui

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
(defun acet-layoutmerge ( alst / lst sourcelst target del-flag
layout temp ss na p1 p2 tmplst locked n laylst space a
xt
)
;; Extract the individual arguments from the single argument list provided.
(setq lst '( sourcelst target del-flag ))
(setq n 0)
(repeat (min (length lst) (length alst))
(set (nth n lst) (nth n alst))
(setq n (+ n 1));setq
);repeat
;; convert to uppper case and
;; remove the current tab from the source list if present
(setq sourcelst (mapcar 'xstrcase sourcelst)
sourcelst (vl-remove (xstrcase target) sourcelst)
);setq
;; Remove layouts that do not exist
(foreach layout sourcelst
(if (not (acet-dict-ename "acad_layout" layout))
(setq sourcelst (vl-remove layout sourcelst))
);if
);foreach
;; tell the error handler to delete the temp files if called
(if (and (equal (type *error*) 'LIST)
(equal (cadr *error*) "acet-error")
);and
(setq *error* (append *error*
(list
'(foreach x tmplst (vl-file-delete x))
'(princ)
);list
);append
);setq
);if
(acet-groups-to-xdata "ACET-LAYOUTMERGE-GROUP-") ;; Save group data to xd
ata
(acet-layoutmerge-tag-viewports) ;; mark on viewports wit
h an xdata tag.
(if (not (tblobjname "layer" "defpoints")) ;; Create defpoints if n
eeded
(command "_.-layer" "_new" "defpoints" "")
);if
(bns_sl "LAYOUTMERGE") ;; and Save the layer st
atus
(command "_.-layer" "_unlock" "*" "_thaw" "*" "") ;; and thaw and unlock e
verything

(setq n 0)
(repeat (length sourcelst)
(setq layout (nth n sourcelst)
temp (vl-filename-mktemp "ACET" (getvar "tempprefix") ".dwg")
);setq
(if (acet-layoutmerge-wblock layout temp) ;; wblock each layout to a temp
file
(progn
(setq laylst (cons layout laylst));setq list of layouts to delete (id del
ete flag is true)
(if (findfile temp)
(setq tmplst (cons temp tmplst));setq
);if
);progn then wblock
);if
(setq n (+ n 1));setq
);repeat layout in sourcelst
(setq tmplst (reverse tmplst))
;; set the target layout current (create it if not present)
(if (not (acet-dict-ename "ACAD_LAYOUT" target))
(command "_.layout" "_new" target)
);if
(setvar "ctab" target)
(if (and (= 0 (getvar "tilemode")) ;; go to paper space if needed
(/= 1 (getvar "cvport"))
);and
(command "_.pspace")
);if

(if del-flag
(progn
(foreach layout laylst ;; delete the unneeded l
ayouts
(if (not (acet-str-equal layout "model"))
(command "_.layout" "_delete" layout)
);if
);foreach
);progn then delete the layouts
);if
(acet-ucs-cmd (list "_view"))
;; find the insertion point for the first layout to insert
(if (and (setq ss (ssget "_x" (list (cons 410 target))));setq
(setq p1 (acet-geom-ss-extents ss nil))
);and
(setq p2 (cadr p1)
p1 (car p1)
p1 (list (+ (car p2) (* 0.25 (distance p1 p2)))
(cadr p1)
)
);setq then
(setq p1 (list 0.0 0.0))
);if
;; loop through the list of temp filenames and insert them
(setq n 0)
(repeat (length tmplst)
(setq na (entlast)
temp (nth n tmplst)
);setq
(command "_.-insert" (strcat "*" temp) p1 1 0);command
;; get the extents of the objects and save a view.
(setq ss (acet-ss-new na))
(if (and ss
(> (sslength ss) 0)
(setq p1 (acet-geom-ss-extents ss nil))
);and
(progn
(setq p2 (cadr p1)
p1 (car p1)
);setq
(command "_.zoom" "_w" p1 p2)
(setq a (nth n sourcelst))
(if (= 0 (getvar "extnames"))
(setq a (acet-str-replace " " "_" a))
);if
(command "_.view" "_s" a)
(setq p1 (list (+ (car p2) (* 0.25 (distance p1 p2)))
(cadr p1)
)
);setq
);progn then
);if
(vl-file-delete temp)
(setq n (+ n 1));setq
);repeat

(acet-ucs-cmd (list "_prev"))


(bns_rl "LAYOUTMERGE")
(bns_dl "LAYOUTMERGE")
(acet-xdata-to-groups "ACET-LAYOUTMERGE-GROUP-")
(acet-layoutmerge-restore-tagged-viewports)
;; put the error handler back
(if (and (equal (type *error*) 'LIST)
(equal (cadr *error*) "acet-error")
);and
(setq *error* (reverse (cdr (cdr (reverse *error*)))));setq then remove the
princ and the foreach
);if
n
);defun layoutmerge
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
(defun acet-layoutmerge-wblock ( layout temp / space xv p1 p2 h ss xt flag na la
ylst )
(setvar "ctab" layout)
(if (= 0 (getvar "tilemode"))
(progn
(if (/= 1 (getvar "cvport"))
(command "_.pspace")
);if
(setq space 1)
);progn
(setq space 0)
);if
(acet-ucs-cmd (list "_view"))
(setq xv (trans (getvar "viewdir") 1 0 T)
p1 (acet-geom-view-points)
p2 (cadr p1)
p1 (car p1)
h (* 0.01 (distance p1 p2))
);setq

(if (setq ss (ssget "_x"


(list
'(-4 . "<AND")
(cons 410 (acet-str-esc-wildcards layout)) ;escape the
wildcards for ssget
'(-4 . "<NOT") '(-4 . "<AND")
'(0 . "VIEWPORT") '(69 . 1) ;not the paper space vi
ewport
'(-4 . "AND>") '(-4 . "NOT>")
'(-4 . "AND>")
);list
);ssget
);setq
(progn
;; label the layout with a pline rectangle and a text object
(setq na (entlast))
(entmake
(list
'(0 . "TEXT")
(cons 67 space) (cons 8 "defpoints") ;(cons 410 layout)
(list 10 (+ (car p1) (/ h 2.0)) (+ (cadr p1) (/ h 2.0)) 0.0)
(cons 1 layout) (cons 40 h)
(cons 50 (acet-geom-angle-trans 0.0 '(0.0 0.0 1.0) xv))
(cons 210 xv)
);list
);entmake
(if (not (equal na (entlast)))
(setq ss (ssadd (entlast) ss)) ;then add the text to the selection se
t
);if
(setq na (entlast))
(command "_.pline" p1 (list (car p2) (cadr p1)) p2 (list (car p1) (cadr p
2)) "_c")
(command "_.chprop" (entlast) "" "_lay" "defpoints" "")
(if (not (equal na (entlast)))
(setq ss (ssadd (entlast) ss)) ;then add the pline to the selection s
et
);if
(setq xt (acet-geom-ss-extents ss nil))
(if xt
(setq p1 (car xt))
);if
(command "_.wblock" temp "" p1 ss "")
);progn then
);if
(acet-ucs-cmd (list "_prev"))
(if (not (setq flag (findfile temp)))
(progn
(if ss
(princ "\nTemp file creation failed.")
(progn
(setq flag T)
(setq laylst (cons layout laylst)) ;; delete it anyway
(princ "\nNo objects found in layout.")
);progn
);if
(princ (acet-str-format "\nUnable to merge layout %1." layout))
);progn then
);if
flag
);defun acet-layoutmerge-wblock
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
(defun acet-groups-to-xdata ( prefix / lst na e1 lst2 a na2 e2 xd j b name n )
(setq lst (acet-dict-name-list "acad_group"))
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
na (acet-dict-ename "acad_group" a)
e1 (entget na)
a (acet-str-replace "*" "" a)
name (strcat prefix a)
b (list
(cons 1000 (nth n lst)) ;the original group name
(cons 1000 (cdr (assoc 300 e1))) ;the description
(cons 1070 (cdr (assoc 70 e1))) ;unnamed
(cons 1071 (cdr (assoc 71 e1))) ;selectable
);list
lst2 (acet-list-m-assoc 340 e1)
);setq
(regapp name)
(setq j 0)
(repeat (length lst2)
(setq na2 (cdr (nth j lst2))
e2 (entget na2)
xd (assoc -3 (entget na2 '("*")))
xd (cdr xd)
xd (acet-list-assoc-put (cons name b) xd) ;replace or add the xdata
xd (cons -3 xd)
);setq
(setq e2 (append e2 (list xd)))
(entmod e2)
(setq j (+ j 1));setq
);repeat
(setq n (+ n 1));setq
);repeat
);defun acet-groups-to-xdata
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;
(defun acet-xdata-to-groups ( prefix / ss na e1 xdlst n xd j lst2 x grpdata a na
me ac-group lst )
(if (setq ss (ssget "_x" (list (list -3
(list (strcat prefix "*"))
);list
);list
);ssget
);setq
(progn
;; loop through the selection set of all objects with group related xdata
and build a list of
;; unique group names/definitions based on the data
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na '("*"))
xdlst (cdr (assoc -3 e1))
);setq
(setq j 0)
(repeat (length xdlst)
(setq a (car (nth j xdlst)) ;the appid name
grpdata (cdr (nth j xdlst)) ;raw xdata
);setq
(if (wcmatch (xstrcase a) (xstrcase (strcat prefix "*")))
(progn
;;add the current ent to the list for the specified appid name
(setq x (cdr (cdr (assoc a lst2)))
x (append (list a grpdata na) x)
lst2 (acet-list-assoc-put x lst2)
);setq
;; Update the item in lst so that it's only an appid so
;; that the data can be removed later via entmod
(setq xdlst (acet-list-assoc-put (list a) xdlst));setq
);progn then
);if
(setq j (+ j 1));setq
);repeat
;;;mod the ent to remove the xdata because we don't need it anymore
(if (and xdlst
(not (member (cons -3 xdlst) e1)) ;xdata changed?
);and
(entmod (subst (cons -3 xdlst) (assoc -3 e1) e1))
);if
(setq n (+ n 1));setq
);repeat
;; use the master list to actually entmake the groups
(setq n 0)
(repeat (length lst2)
(setq a (nth n lst2)
grpdata (cadr a) ;the properties of the group (selectabl
e/description ...etc)
lst (cdr (cdr a)) ;the enames (strip the appidname and th
e group data)
lst (mapcar '(lambda (x) (cons 340 x)) lst) ;add the 340 gro
up code
name (assoc 1000 grpdata) ;the original gr
oup name
grpdata (vl-remove name grpdata) ;remove the grou
p name
name (cdr name)
grpdata (subst (cons 300 (cdr (assoc 1000 grpdata))) (assoc 1000 gr
pdata) grpdata) ;description
grpdata (subst (cons 70 (cdr (assoc 1070 grpdata))) (assoc 1070 grp
data) grpdata) ;unnamed flag
grpdata (subst (cons 71 (cdr (assoc 1071 grpdata))) (assoc 1071 grp
data) grpdata) ;selectable flag
e1 (dictsearch (namedobjdict) "ACAD_GROUP")
ac-group (cdr (assoc -1 e1))
grpdata (append (list '(0 . "GROUP") ;; add the header
'(100 . "AcDbGroup")
);list
grpdata
lst ;; add the entity names
);append
);setq
;; if the specified group already exists then delete it
(if (setq na (acet-dict-ename "acad_group" name))
(progn
(entdel na)
(dictremove (cdr (assoc -1 e1)) name)
);progn then
);if
(setq na (entmakex grpdata)) ;Create the group
(dictadd ac-group name na)

(setq n (+ n 1));setq
);repeat
(acet-appid-delete (strcat prefix "*")) ;remove the appids that were used
to attach the group-related xdata
);progn then
);if
);defun acet-xdata-to-groups
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
(defun acet-layoutmerge-viewport-xdata-tag ( na / ob app lst lst2 gclst vlst )
(vl-load-com)
(setq ob (vlax-ename->vla-object na)
app "ACET-LAYOUTMERGE-VP-ON"
);setq
(if (not (tblobjname "appid" app))
(regapp app)
);if
(setq lst (list 1001 1070)
lst2 (list (vlax-make-variant app vlax-vbString)
(vlax-make-variant 1 vlax-vbInteger)
)
gclst (vlax-make-safearray vlax-vbInteger ;; initi
alize the arrays
(cons 0 (- (length lst) 1))
)
vlst (vlax-make-safearray vlax-vbVariant
(cons 0 (- (length lst2) 1))
)
);setq
(vlax-safearray-fill gclst lst) ;;fill the arrays
(vlax-safearray-fill vlst lst2)
(vla-setxdata ob gclst vlst)
);defun acet-layoutmerge-viewport-xdata-tag

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
(defun acet-layoutmerge-viewport-xdata-untag ( na / ob app lst lst2 gclst vlst )
(vl-load-com)
(setq ob (vlax-ename->vla-object na)
app "ACET-LAYOUTMERGE-VP-ON"
);setq
(if (not (tblobjname "appid" app))
(regapp app)
);if
(setq lst (list 1001)
lst2 (list (vlax-make-variant app vlax-vbString)
)
gclst (vlax-make-safearray vlax-vbInteger ;; initi
alize the arrays
(cons 0 (- (length lst) 1))
)
vlst (vlax-make-safearray vlax-vbVariant
(cons 0 (- (length lst2) 1))
)
);setq

(vlax-safearray-fill gclst lst) ;;fill the arrays


(vlax-safearray-fill vlst lst2)
;(getstring "hey")
(vla-setxdata ob gclst vlst)
;(getstring "hey2")
);defun acet-layoutmerge-viewport-xdata-untag

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
;; mark on viewports with an xdata tag.
(defun acet-layoutmerge-tag-viewports ( / ss na e1 n )
(setq ss (ssget "_x" '((0 . "VIEWPORT")
(-4 . "<AND")
(-4 . "<NOT") (68 . 0) (-4 . "NOT>") ;on
(-4 . "<NOT") (69 . 1) (-4 . "NOT>") ;not the paper spa
ce viewport
(-4 . "AND>")
)
);ssget
);setq
(if ss
(progn
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(if (/= 0 (cdr (assoc 68 e1)))
(acet-layoutmerge-viewport-xdata-tag na)
);if
(setq n (+ n 1));setq
);repeat
);progn then
);if
);defun acet-layoutmerge-tag-viewports

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
;; mark on viewports with an xdata tag.
(defun acet-layoutmerge-restore-tagged-viewports ( / app ss na e1 n )
(vl-load-com)
(setq app "ACET-LAYOUTMERGE-VP-ON"
ss (ssget "_x" (list (list -3 (list app)))
);ssget
);setq
(if ss
(progn
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(acet-layoutmerge-viewport-xdata-untag na)
(if (= 1 (cdr (assoc 67 e1)))
(vla-put-viewporton (vlax-ename->vla-object na) -1) ;turn the viewpo
rt back on.
);if
(setq n (+ n 1));setq
);repeat
(acet-appid-delete app) ;;delete the appid
);progn then
);if
);defun acet-layoutmerge-restore-tagged-viewports

(acet-autoload2 '("Lman.lsp" (bns_dl lstate)))


(acet-autoload2 '("Lman.lsp" (bns_rl lstate)))
(acet-autoload2 '("Lman.lsp" (bns_sl lstate)))
(princ)
çúÜÅø¸¹ #Õ¶ÝNUÀO¶ a{0 kýÍm 5½ñ¤ùRývókvß<îö7ݾÏ;Uà;"i_7àx ÈyÔ^èÍ R{ëÜ 5jt""i÷þ(l]E}½åËrl
íÁl R ä{Nl wîð
kÏe¢÷ûíÁ¤x/G n¸£ pijÀ±ïèñô{ª y‾Û?É»]´Gð Âã!Î ¡ÉyÕík .ÅÔAûÐù3áÌ[ þ iÿ?ûå¢ì( ÑOß Þª g a@¢wõî
¼©ؗ ݍ^¸.ö-O{± p ðwf ?Vã)õb öuµ`N éve ù ]l Ø S"a/dRcA F0Ô Èn J²Ãàh a?dkV vÏÜ:aÚ ¤A ê} 1í ¼
ö;-À z ¶ö´IÄn{(üXé^HÞ¶¸¼ ö7¾±Ø}]ûÀë{«dÄtÂì´Û .º» !É$A¢TàÊ‾Ù= hÉsë% ¥ ´ Æ K Ò¤döÀó Ú¹>6*I
lvmL&
wÌìJ,
êyÑ°
{)Ô
¢~ùÅÞÎÌLþ/²@v°+7©[RA¼##
x¤]ìÅÑÖø[§
Õò+¦ÝX$T¾,ÍÐ
Bì8F=HúÕVrØ
ØBÅ©_ìOÃÎË Ê1kP\8
¸ùÒ.®¡}
ôGðØm ÷ Òá¹Õ:Yÿ
¸aJì@
¨:Qv1/ö;±ï3ºà
^÷> ä²oûD«Ièvf©ñÑ
ÞÛhZ> ühæÞ¦Ça
, qÆ M
SØCà
Ô/Çþ5À
{ZF äì +ì{´¨ümså
Ñì¥xSt«h
ê0ö NX°WiGì¦ ? }iΣf 7]x±ß Ý~> â8çÓHSÎì®á Ã‾TY9ë~‾ëú5¨S< * ýÅþ8ìIÀêXsÍFìã#änq¾ p d_kÏþ Ã
endstream
555
endobj
0 obj<</Subtype/Image/Length 17/Filter/FlateDecode/BitsPerComponent 8/ColorS
pace 516 0 R/Width 89/Height 1/Type/XObject>>stream
H 9s@@  Ú
endstream
556
endobj 0 obj<</Subtype/Image/Length 50/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 95/Height 286/Type/XObject>>stream
H0òìÆ¡
÷ß ÍG p¤UMÎF[j{wwwÿèåîîþò\LUyV
endstream
557
endobj
0 obj<</Subtype/Image/Length 50/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 94/Height 505/Type/XObject>>stream
H ìÆ¡
°}Àÿßì³Î¡@Í&*É[×uÜÝÝÝÝÝÝÝÝÝÝ}ÿ| [eÄû
endstream
558
endobj0 obj<</Subtype/Image/Length 39635/Filter/FlateDecode/BitsPerComponent 8/Col
orSpace 516 0 R/Mask 557 0 R/Width 94/Height 505/Type/XObject>>stream
âOÀþ
H ì 8ùS
ðhYÀç~‾Ý? ú¬ øüq¼
qå P~@-
ïáèSTt ¸
ï$$DD¹$ qä Ò@ ¥Û
÷}vw:
 ¥ÀÁ;ýq8
9 ÚÚWWkÙ
ûH0u©Úrÿ¢}Ý d <j ý1] J½~ýúû}ùô—_¿ååÌñ±ÎÇ 3
ñçM
ñàGB0'ÇÛ¾4ï7sr2ï3
¤ £ D*Aü(»/æ_ÿ!´u
²q#HÆÌ
d¢¤—ÀÇÌ
4ã ó ø½ t4 / ø<3^p# ! ¤$ 7å'â'ÛÁ¸T^6Xå¼[K)EñOhÁzR ï>îtñÄ
/}/ ^ª`@ÃH Ä:   b 8^ Ç ) 6ÕTAfÌü Ì`Y É ø åúî« e! ¶èúÝúð¢Q/Ç!ÚQ=i Àç?@ýi3Ǥ È{t L/zôBZ|QÈ¿ú
-H`¿x
+Ñslà®dÏS—gÇíBÈ>a XÓEéo¶Î È ù<3!ðú#hpõïÂè¦Zwº6§Ïbó ¨É & Ø`
f@o p<z Kgté
Ô©F `£1YP Ù°Ú6ðùo¹ Ì>ÿ§°wÇëÛEÐ7¼ér‾;\«µX¼# '2¹S¹ E£siõn ÎèI'Â3ô-~Üx à±ncYÀëïÝC|ûÄk )
b 6ßø6||m&öâ ;üËëij gPp×âÙÐ; j» Å . E¼  u E= Æ dZ Dí,èÜr½gIïV! YµxWÍ BëZ\±*V kZXgDÁäMÖ Ù
þ~Èé
#¸bBû{Ñ¿,¼þø*zð<°
¸׺dzhÁ°{—
¤ :H¬q Ô £{Aë  ¹Î£ÐÃ*¢Ðx$Ë E M¥v©u Þ - A«#
ü9ï,tø-cæ yùúW ç‾þ ÷¥*gJÚ5Âoå
îpçnsø7ÙüúAAÍÀ\õ  fp®vhüVÎU%{øuCüß<"l t< u> ÑÆDì©{S"¹A¹êP9×4n 2Yü¾@äÅ ¿xãG&ÄJÆ   Ëkâ
ânz¶¸ -®a ªØÂj ¨ -®fKª @¿¸ #nàos m¤ ×È 3Í ñdù eMãÔ`ðráKÐð´ã~ð Þ'Ìcü Ê&ZöµÖ¬Úîo ¸¹S]übÆ<©_R2¸
ΰâ"GIX*ì 0 $ WaçôÙ&vþ-ÆMúجT'W 5X½&+X¥Ã.hòÅ }Ä á?½ÓË ù 
Eg ßò°
àLUÛ#(¬j?ÃRMøÊæw+Ä{ Âí üÐÅY Ï _9ë/ AË&aò¸§tÜC~ì) Ê  åü@ `ýâ\ø p§L% ¢EüHÁ íüépÞ¤? Ôú
EJ¥BgwxíH
‾åÒ 9 ©<Êã¼Ê Ê©¥|QÑ~ª
¼ É|Ê  :]H
W0¢/}h&
 \êt^'/‾G ÏZÉ{à:?»U" HÅs»y ‾:ÅÅ 3 ;;;
;;; LINKEX.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;

;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains reactor tets. ;
;;;--------------------------------------------------------------------;
;;; Linker-reactor test
;;;;;; first look for existing reactors types
(vlr-types)
;;;;;;; then look available reactions
(VLR-Reaction-Names :VLR-Linker-Reactor)
;;;--------------------------------------------------------------------;
;;; Function: STANDARD-UN/LOAD-REACTION ;
;;; ;
;;; Description: This function copies a reaction to all objects ;
;;; contained in the argument obj-list. ;
;;; ;
;;; Arguments: ;
;;; self = a valid linker object. ;
;;; lstr = a call back function to the call back function. ;
;;; ;
;;; Returned Value: prints the current event and reaction names ;
;;; ;
;;; Usage: ;
;;; (standard-un/load-reaction ;
;;; self ;
;;; lstr ) ;
;;;--------------------------------------------------------------------;
(defun standard-un/load-reaction (self lstr)
(terpri)
(prin1 (VLR-current-reaction-name))
(print (car lstr))
)
;;;--------------------------------------------------------------------;
;;; Function: C:LINKEX-TST ;
;;; ;
;;; Description: This function creates linking reactors. ;
;;; ;
;;; Required Functions: ;
;;; standard-un/load-reaction ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a valid vla linker reactor object ;
;;; ;
;;; Usage: (C:LINKEX-TST) or LINKEX-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
;;; create and add reactor to ACAD
(defun C:LINKEX-TST ()
(function standard-un/load-reaction)
(setq lr
(VLR-Linker-reactor
nil ;users' data
'((:vlr-rxAppLoaded . VLR-trace-reaction)
(:vlr-rxAppUnLoaded . VLR-beep-reaction)
) ;reactions
)
)
(setq lr1
(VLR-Linker-reactor
nil ;users' data
'((:vlr-rxAppLoaded . standard-un/load-reaction)
(:vlr-rxAppUnLoaded . standard-un/load-reaction)
) ;reactions
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: C:STOP-LINKEX-TST ;
;;; ;
;;; Description: This function stops all link messages. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:STOP-LINKEX-TST) or STOP-LINKEX-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:STOP-LINKEX-tst ()
(vlr-remove lr)
(vlr-remove lr1)
)

;;;--------------------------------------------------------------------;
;;; Function: C:LINKEX-INFO ;
;;; ;
;;; Description: This function displays a help file in the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:LINKEX-INFO) or LINKEX-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:LINKEX-INFO ()
(princ "\nFor test run LINKEX-tst command.")
(princ
"\nThen load an arx application and see results at Visual Lisp console"
)
(princ "\nand Trace windows.")
(princ
"\nTo stop test run STOP-LINKEX-TST command."
)
(terpri)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "LINKEX-TST" "LINKEX-INFO" "STOP-LINKEX-TST")
*REACT-TEST-COMMANDS-INFO*))
;;EOF
àÙÞQcYM@¢½§4¢Þ Q ` e L,Q B2$/+2 ]³Rµ>>iA¨ªI8Ií¥J`;> -®é> *©Øwü5 ä` - T5Çv 9Á@c£ ð V¼ Ü F[K
úó Ì Ð`édÀ| ÌDck1ÛW$\/Dtp¥ \' ÕP,?bUA]å âsi 0
ÈàÿTG Jð\Xª
ì¡h÷Ëå ‾% Æ Ì ú+ÙbÅ-Fè ¬.£ìJÌñc6 ¬E 2£v E MØîÄtüD_yP v  +ÒëID{.s‾TCÛíC&j ¥dÓ(ÝÍ + 
À í(AFuS ÆfYÝ*2]»ßS=MÐ CM
à}ýï\ V¥DR
LÊÜE<
|½ YÅ_I
³ Ë×ï°æo/|¿ðóÓ
ÞD²/ S/ \RêÅÆr,oØxZ
z ùµ¸ ] W
XUÈã]
È|9~rzd|öÜÔÍÇ?..Gòð2A
oú+FñÍjfqÉ[|ë½z©UºAè6LfG
z¹ zõÇ oS‾Þ8‾ Òÿ "` b )E DQ¦±èU"Hw f©ðóíї2¿9| uèè¹ÃÇ¿ ¹uçþ¿ ¿vÅQ
³7Yçç Æ®¾ôù±©#ÃÓSӗî=x¶/Å(O¢c&Áî®cÓm=y ¾ò§O ïÝ7úÉþ±O`p`
ô«ÏÆöìûíÐÔ¥«w ¿NÅL8Ac_QâtÁêÙ þ ÇÏONÌ~z`lϾ ½ðS{÷ ïÙ7ºç³ ý >59÷haqyÉÄ L¼ÂêJS¥÷×tÎNñ¸o‾ñ~2o<
 êÖ¸þZ©6T ooÿ44|ñÀÁS£7.ÎÞ {
¿t}aú« ÓW¾ÿzþÇg/ ÕxY Zþ C4-Eò—þü— ÏìÝ?þ»¡ ³î\¼úpæ¿ì yWiÆ?Î éɨ iã"[Q{ kâ6) Å}Ñ(eE;é¤Ç :I
¬]ñ
l B ²p@&
òȤø´e J
Ù i×èÔÂf,_*ß
pÛ¸ z#lŨ ø¤7{û¿¥s
ï({ZJ É©ú&}[
°:øö7¿²r¢
ªK¹ÂwÈ@À
GyARp/7
y$óÓd@Up
# Ýýsp[P
¬Óë ãܧãÂ%îN± oí¸!oC³Èh;hé"yÉÆI°±À6Z:
}Ï^p&ÒKò!
ä¨7ÍQü|pñ0]³
Ò 3öjey-
üUè'7`Üc/Ã
ÎR UB Íú'
xÂÉég8YJ@ [ÿ´ÿßõýí t´mX âãÓk 2¹Â úÕ /+{o? ¢* °( ¡¿ù+xõÙù# $³°r dg4ZsËsJo !Àb ª
*µùëv
à²ç bÎPx)
0 , zªk]ÉäP ýyðöݬkÝÞ¨km'{õc=O a Q d xŽÃä B颶
õ&AçÑ
4|A \wôänù(gà/:S¼CæäìËÙ»Ï
WE¸1DwåK ëÌ# {ÉDÓ8¸aw£v°®ÉÐ¥sZ
ì÷Ȭl¦q ù6j%×uM §ÒÂÚKAW
7º/eW(4èa2ò
í¡: 2 ¨y¨õ
¦ ¦ ¶Ýf0Ï
yYT 7R
> l dáv ` D) 8Jý ¼¬f+ l:—
?Ù5k-ý )í É 8$ ?ήPú‾z á—üÛ_{ûå±É`³vPÓ4ЫµØÜ4'Ñ\ÈFà`tr9¼ L£YV¤:sÝE G ¹ þ>j ¥3 d~ ÌÚv4¢52#&Êc
& # H 3ëÑâqæN¾t Éä¾Ê] \¾r?lèN¥êÚàM d~ ÌêVª¦V¤À@ÆLyH! # %Îy¶cñ Tî2{CÊ',¤XãoN]Þ î>þi ¡£Û ²C@äj
É C uo¿9x./ á¨Ëç
¿àÂ
+ªª²*—%
‾ÖVV3`Ü KYY.P
®¾e¥+= ÌÊV'7Ç
 Ñh ÿõMöÍÄÄ
]* A®Mú
úî fÃ!ðÚé%Å
2`(Dæ¢Ök!¹H$ß
 áDa8äòí¾ÃK ¸6t}
ô ÍÀ³ùÜÂàÞ ðptYsíÊÝ ‾Õn® â Ú dîÕ Í~È ê4½CfÒ
AÖF|¸  ô:Ç "ɤÜÒÈûÿkÅÛ£>1¦3
ýóÉh¥-‾h> F;ôQ¢ÃöI» © h TêôM£0¹V Ûmí®UÝNåáÕ´¾ Á!
y µ¦ æÁ®¾3
"C±A³ÍËð—' ÓY ë ÜÄ*
,}4VàíîÖ6 ¦ÅÔ70Æðg Ò°íÎÈ|`/ ü¾G^ÊK¼gÞ$ÎçÜk=ýü?þÕ
l²ÎÂ,IñüÒö srYZH æW§W ¢âÍ ²ã "8¸Ædªg` o ÔdØé= ù1 §©ÕdºAgl^ä¼`»lØLÎ ¾öƗwËÇ0ï‾Óµ: /Äö´ 8
q;;; ;
;;; LISPDATA1.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates the capability of Visual LISP to store ;
;;; AutoLISP data to a drawing. ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model functions here.
(if (car (atoms-family 1 '("vl-load-com"))) (vl-load-com))
;;;--------------------------------------------------------------------;
;;; Function: C:LISPDATA-TEST ;
;;; ;
;;; Description: Command which demonstrates the capability of ;
;;; Visual LISP to store AutoLISP data to a drawing. ;
;;; This is done in two ways: First, by ;
;;; storing data in a global dictionary ;
;;; named "MY-DICT". Second, by storing data in an ;
;;; AutoCAD circle entity. ;
;;; ;
;;; The ActiveX methods demonstrated are: ;
;;; (vlax-ldata-put <str/entity> <key> <data>) ;
;;; (vlax-ldata-get <str/entity> <key> [<default>]) ;
;;; (vlax-ldata-delete <str/entity> <key>) ;
;;; (vlax-ldata-list <str/entity>) ;
;;; (vlax-ldata-test <ldata>) ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:LISPDATA-TEST) or LISPDATA-TEST from the ACAD ;
;;; Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:LISPDATA-TEST (/ aApp aDoc key1 val1
modelSpace circleObj x
handle entname key2 val2
)
(princ "Visual LISP LispDATA demonstration")
(setq aApp (vlax-get-acad-object)
aDoc (vla-get-ActiveDocument aApp)
)
;; Add LDATA in global dictionary
(princ "\nStep 1. LDATA in global named dictionary:\n")
(setq key1 "Key1"
val1 '("Key1 value" 1 1.1 k1)
)
;; Check value to fit in LDATA
(or (vlax-ldata-test val1)
(exit)
)
(vlax-ldata-put "MY-DICT" key1 val1)
(princ "Dictionary: adding -> ")
(prin1 val1)
(terpri)
(setq x (vlax-ldata-get "MY-DICT" key1 "None"))
(princ "Dictionary: getting <- ")
(prin1 x)
(terpri)
(setq x (vlax-ldata-list "MY-DICT"))
(princ "Dictionary: listing == ")
(prin1 x)
(terpri)
;; Get default value for no LDATA:
(vlax-ldata-delete "MY-DICT" key1)
(setq x (vlax-ldata-get "MY-DICT" key1 "NO VALUE"))
(princ "Dictionary: deleted -- ")
(prin1 x)
(terpri)

;; Add LDATA in Entity's xdictionary


(princ "\nStep 2. LDATA in Entity's xdictionary:\n")
(setq modelSpace (vla-get-ModelSpace aDoc)
circleObj (vla-AddCircle modelSpace (vlax-3d-point '(10.0 10.0 0.0)) 10
.0)
handle (vla-get-Handle circleObj)
entname (entlast)
)
(setq key2 "Key2"
val2 (list "Key2 value" 2 2.2 'k2 handle circleObj entname)
)
;; Check value to fit in LDATA
(or (vlax-ldata-test val2)
(exit)
)
(vlax-ldata-put circleObj key2 val2)
(princ "Entity: adding -> ")
(prin1 val2)
(terpri)
(setq x (vlax-ldata-get circleObj key2 "None"))
(princ "Entity: getting <- ")
(prin1 x)
(terpri)
(setq x (vlax-ldata-list circleObj))
(princ "Entity: listing == ")
(prin1 x)
(terpri)
;; Get default value for no LDATA:
(vlax-ldata-delete entname key2)
(setq x (vlax-ldata-get entname key2 "NO VALUE"))
(princ "Entity: deleted -- ")
(prin1 x)
(terpri)
;; Clean up DWG
(vla-erase circleObj)
(princ "\nLDATA demonstration complete")
(princ)
)
(princ "\nTo test: C:LISPDATA-TEST")
(princ)
üÓ` ½È®³¨ ]3ÎÃ0)8 Ì Ã< JÝ¢cY^!2ÁͦMi2BP L(qK \~ \| *|ö9 È= °ûe8 Æ B>l
UÉü02rÝ
Ñ {sç$QS© ×Ç ÿà*c&Àd>Øx±|<2¡³[_<³}@Í»6ÿ\\ _ÍX ¦ A¶å÷û¾ ¿Ô èÏÏEä O Ä¿ÍÚÎuIÛ &sáTöî®]ß:@
ù £FªdJF>6G¤Ð[ûU¦ öÁÚæ¾¥ii}fi 4ç ò[U~x(T c(ÃP2—s u74÷Õ<í²Ñ¹ i—ÆäÒ ô UûÚÞa0Mæ(^u0dXPÅÕD{
;;; LISPDATA2.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;; Load the COM object model functions here
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; Function: C:LDT ;
;;; ;
;;; Description: This function demonstrates how to change ;
;;; LispDATA value attached to an AutoCAD entity ;
;;; so that it can be UNDOne correctly. ;
;;; ;
;;; Note: Attaching xdictionaries to objects will increase the ;
;;; size of the drawing. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:LDT) Or LDT from the ACAD command line. ;
;;;--------------------------------------------------------------------;
(defun C:LDT (/ entname curData newData cmdecho)
(and
(setq entname (car (entsel "\nEntity to change LispDATA ")))
(if (setq curData (vlax-ldata-get entname "LDT"))
(princ (strcat "\nExisting LispDATA value: " curData))
(progn
(princ "\nNo LDATA attached")
(setq curData "")
)
)
(setq newData
(getstring t
(strcat "\nEnter LDATA string <" curData ">: ")
)
)
(/= newData "")
(progn
(setq cmdecho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(command "_.UNDO" "_m")
(setvar "CMDECHO" cmdecho)
(vlax-ldata-put entname "LDT" newData)
)
)
(princ)
)
dwë?ì iWÙ Â]Ý ³A F
ëQÏ
F%*¨AEÅ!Ac
²Ú¶ßã ¨ 8$m¢U &2 ±ï ¼û SU` kº?µk½«VUQç<ìýî½ º Þgk[ô)³ 'B¹ ²_ jaèH ô À×d®@FÔGqË&d,î 
%Uå > þÅØüî¶í acé[¸
Ù) ÀÑáKÌ -]E <i ì ¡®ùyÏ0 ù
òñ
d.er
7 ú Nä
îµ P?ìÓtN?
íìP'CÏWªë
Ø£«gÓ¿ÛÙ´
xmÐlÀ®AVw¦
ؽqí%D¶cÅ$mîEÚæ¦6WD¹88N rq ÑgKïµim—\5üxÀ
ÙD³1 Mf'( p«  þ
^''TILÆæ ï ÿóÿ£p'" q
SÓÄz ²÷FQ} ¬µâa_sç ³£
(
Î&1c~ë4
½ TkïHIj:å* ~`y þÌxã$³ ±d] Õ¶³1ö(qMæjdÀÛyE)—Z
_ÒÈùÃ4G|Ê l, x[Áètb X#dòË[ LK×ÌØËÝ-ú öÅá]úÚ(& dCç1 ßbÈ°Èg Ö] /Kïkó¤ª2yWmÓpçÐkä3Þ ïá8§þÄ
ã Ú½QXã 0è¢ ö%  h=d; Ì ý é»YÜPPÑZYolé M'#Ä
Æ ". F  ézdr¥*Iá¾z¤cpy : w |
ìß¡TTÃÉ5 _!«Dy±h_ F¬ð.x Vo È IÆ ËmR ú ¿©j0ü^T_P¡ l Nojɺc? ÁÍ<!#K È  g Trr8_\³wöÏálj2rͳΧ
{ üô}2Þ åhð¢üQ /bóEñ¿Açô¤7bg#vôz³ mX?ö
/ÉúÿÔåUèÊë :ã« 7Ì ó
Ö Ö þÖhF  s /c ëðëük Î0U|‾%—L-UôÔiÇ{GßmÓA»7 ]qà\Ñá¿6Xd —<×d®LF M´?NHþ¸Ý³R1þh1Ì öÅÄ ?Aû"
ë«:ªUO çV ]çã á QÞ $92üJô7 ì äÔÒ Z?VXÑ _Þ\Ù8 ÒÏ ¦wvB áû=¬ SzûA@A½ {?þ>sM&6ùDv Ö À À6c
?±°£Ð
@ÏínXO
É‾hP_ÖÏÁ4eß
wL Èyâ6-õÆÙ²Ý ¢º¢Ê Zõ ~hinÕ±ÿO 9JòJ1 qæ0!D r n _ ÌÁñ Å X =ÐçÉÔE÷Ú«U¦¦®ÙÉ%ú 3ì<
—/~:
²møöÝòSØ:Ù¡N¦
TaP>vë5
é Ø4o
Eåê,èR¥D®WwNÏ|Xßû
)2WO¹y0B$ÈÐøÅ
'¡£î5-V(ô¹R5̧U
)ãN: Æ£DÔs øt)
íý Ófê
óïÈqü
ã Lô ¾ ä®æ
öH§Í 1¬LP¼½p c=8³8¿À?Â^ ¹*Ø»XÙpp}
¹ª/§´1GòHúÀ é 0ÛßYOAG ÄêEB "° ùÀÃpòf UjM²¦ RUqU \e2 Þ,¼uQ¸»Ãí\8E:¡!&DèÆ ø È\ðJ
'R²—è æP<äRp®mFM
ì 8ÏúÓÔ«í{ Ǘ Þ *Q ÞïjÔM ¦—׶ð xûÖ P
"ß
ÁXà#
9@ͶÙ,
Õb6¼¾ëë
Ð P!Úw|
\W Yã0aq
`ó Æ ¦¬¦³A;
¦ ½XÞ«nì*(Wå
®Éüd¸ÚM°
=Þ6ó
*×ñÅ
5ûñd
k+öL`¿3‾÷
ôØø ko÷þD
Ï  ;ðCî@ô
c¾Lâsm_~F?Mæ/AöÃÌÚt
 LcûäÀøÆ
ÌÉd53â&ã+ÒWèSXب
Îß9íK C4L
¬ Ö5%dxÈÌk«Z?ZX©¹Q\
þ$¤ÉÊ{wgÿ ô¾îvqÃí»ª2¹AÛój~
+ÓV« ö ý±¾÷qß
dì8³ ÓÎC*åÊ k Õõ?ÒÏ /R{îLIW+L :ÀrGÀ¸ðPðA©}ò{¡âfQC¾´µª¾¿ûÉóìþ  컲i¤ù ù `kÏ~ºË ÿ_#s Â# *5
%2³Ò
*‾3D¡q/n~ëìì
Yá
ºGÖ
m5Ê¡
ÜeK]óà
w7üP¬±Á
ã¾rÂò
)¢É_£ TçlëÈÈ
22uI
 bÏD
5èTµÜ.ªË
âÐf²Ö.-}øæ
°}îÇéÿØ/簾º-
¨Kîµ+ÔÃcó{
DÈ AÇp\|çlÒ
Ô©Å
+å¥JjÚ 
Bo I¨ä ë¤u½mÆ((É%j
¢19£¼
 \PTA$ÔôFzé$!
Ôê£YEßuòùÞµ÷>9
n L V®²¸B¸IãÆWî8¿Ì<
 wéO¦ñ
9ç8
¡ûèäC+m©<ý#sÌ
kI2qÔh
×&óÃ1
ùaK±"i0
ü‾M9µÒM:Ë
%¦µÄ
¶L7²§¤¥¸¶—
PÈlÖ
Îã ÿé¬
ð U?2"^[
n#_/k;îLæ³
Êc Xäz0 Ð#Éwý2½
rY-
y¥-Ìê®2Î
ªÖ} ïÎÌô¢Vf
Þ|²HuN½þU
ÔKZ ýk,ú(
cåÕO¢&E#5s
i}éR
3rðØtËE
BFë o
Þt0¤à Â5ýryo;;;
;;; LMAN.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;(defun c:lman ( / )
;;
;;(if (or (equal (getvar "cmddia") 0)
;; (equal 4 (logand 4 (getvar "cmdactive")))
;; );or
;; (c:-lman);the dialogs are off or a script is running.
;; (bns_dd_lman)
;;);if
;;(princ)
;;);defun c:lman
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dd_lman ( / msg str iv lst lst2 flag );
(acet-error-init (list
(list "cmdecho" 0
"regenmode" 1
"expert" 0
"ucsicon" 0
"filedia" 1
)
nil ;flag. True means use undo for error clean up.
);list
);acet-error-init
(bns_lman_ltypefx)
(bns_reg_it)
(setq lst (bns_get_layerstates));setq
(if (and (equal (cadr #last_restore) (bns_get_la_status));equal
(member (car #last_restore) lst)
);and
(setq lst2 (list (acet-str-format "Current layer state: %1" (car #last_resto
re))
(car #last_restore)
(itoa (vl-position (car #last_restore) lst))
);list
);setq then
(setq lst2 (list "Current layer state: *UNNAMED*" "" "")
#last_restore nil
);setq
);if
(if (not #dlg_pnt)
(setq #dlg_pnt '(-1 -1))
);if
(while (or (not flag)
(equal flag 2)
);or
(if (> (setq iv (load_dialog "lman.dcl")) 0)
(progn
(setq #iv iv);setq
(if (new_dialog "lman" iv "" #dlg_pnt);NEW_DIALOG DISPLAYS THE DIALOG
(progn
(if lst
(progn
(acet-dcl-list-make "list_states" lst);make the pop-up list
(set_tile "list_states" (caddr lst2))
);progn then
(setq lst2 (list (car lst2) (cadr lst2) ""));setq else
);if
(set_tile "msg" (car lst2))
(action_tile "list_states"
"(setq lst2 (bns_list_pick lst))"
);action_tile
(setq msg "Save current layer status as:"
str (strcat "(setq lst "
"(bns_dlg_sl lst iv "
"(if (not (equal (get_tile \"list_states\") \"\")) "
"(bns_new_state lst "
"(nth (atoi (get_tile \"list_states\")) lst)
"
"msg "
")"
"(bns_new_state lst (bns_get_nextname lst) msg)
) "
")"
"lst2 (cadr lst) "
"lst (car lst))"
);strcat
);setq
(action_tile "saveas" str);action_tile
(action_tile "edit"
"(setq lst (bns_dlg_edit lst iv) lst2 (cadr lst) lst (car
lst))"
);action_tile
(action_tile "delete"
"(setq lst (bns_dlg_dl lst iv) lst2 (cadr lst) lst (car l
st))"
);action_tile
(action_tile "rename"
"(setq lst (bns_dlg_rename lst iv) lst2 (cadr lst) lst (c
ar lst))"
);action_tile
(action_tile "import"
"(bns_dlg_import iv)"
);action_tile
(action_tile "export"
"(bns_dlg_export iv)"
);action_tile
(action_tile "options"
"(bns_get_lmanmode_dd)"
);action_tile
(action_tile "restore"
"(setq lst (bns_dlg_rl lst iv) lst2 (cadr lst) lst (car l
st))"
);action_tile
(action_tile "close"
"(setq #dlg_pnt (done_dialog 0))"
);action_tile
(action_tile "help" "(acet-help \"LMAN\")")
(mode_tile "restore" 2)
(setq flag (start_dialog));setq

);progn then initialize the tiles and activate the dialog box
(progn
(alert "Unable to display dialog box")
(setq flag 1)
);progn
);if new dialog
(setq #iv nil);setq
(if (equal flag 2)
(progn
(setq lst (down_dlg_operation lst))
(if (and (equal (length lst) 2)
(or (equal (type (list 1)) (type (car lst)))
(not (car lst))
);or
(equal (type (list 1)) (type (cadr lst)))
);and
(setq lst2 (cadr lst)
lst (car lst)
);setq
);if
);progn
(unload_dialog iv);unload it when done
);if
);progn then
(progn
(alert "Unable to load dialog box")
(setq flag 1)
);progn else
);if load
);while
(cond
((equal flag 1)
(progn
(bns_rl (nth (atoi (nth 2 lst2))
lst
);nth
);bns_rl
);progn then
);cond #1
);cond close
(acet-error-restore)
);defun bns_dd_lman
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_import ( iv / )
(setq down_dlg_operation (list '(lst / lst2 )
'(setq lst2 (bns_c_import_lay))
'(list (bns_get_layerstates) lst2);'lst
);list
);setq
(setq #dlg_pnt (done_dialog 2));setq
(unload_dialog iv)
);defun bns_dlg_import

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_export ( iv / )
(setq down_dlg_operation (list '(lst / lst2)
'(setq lst2 (bns_c_export_lay))
'(list lst lst2)
);list
);setq
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
);defun bns_dlg_export
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_sl ( lst iv a / msg b lst2)
(if (and (not #iv)
(or (not (equal (cadr #last_restore) (bns_get_la_status)
);equal
);not
#incomplete
);or
);and
(progn
(setq msg "Save changes as:"
b a
a (bns_new_state lst a msg)
);setq
(if a
(setq #incomplete nil)
);if
);progn then
(progn
(if (not #iv)
(setq b a
a nil
);setq then
);if
);progn else
);if
(if a
(progn
(if (not (member a lst))
(setq lst (append lst (list a))
lst (acad_strlsort lst)
lst2 (list (acet-str-format "Created: %1" a)
a
(itoa (vl-position a lst))
);list
);setq then
(setq lst2 (list (acet-str-format "Redefined: %1" a)
a
(itoa (vl-position a lst))
);list
);setq else
);if
(if (not #iv)
(progn
(bns_sl a)
);progn then
(progn
(setq down_dlg_operation (list '(lst / )
(append '(bns_sl) (list a))
'lst
);list
);setq
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
);progn
);if
);progn then
(progn
(if (and lst
#iv
);and
(progn
(setq lst2 (list (acet-str-format "Current layer state: %1"
(nth (atoi (get_tile "list_states")) lst)
)
(nth (atoi (get_tile "list_states")) lst)
(get_tile "list_states")
);list
);setq
);progn then
(progn
(if (and (member b lst)
(equal (cadr #last_restore) (bns_get_la_status))
);and
(setq lst2 (list (acet-str-format "Current layer state: %1" b)
b
(itoa (vl-position b lst))
)
);setq then
(setq lst2 (list "Current layer state: *UNNAMED*"
nil
""
)
);setq else
);if
);progn else
);if
(setq
down_dlg_operation (list '(lst / )
'(princ)
'lst
);list
);setq
);progn else
);if
(setq lst (list lst lst2))
lst
);defun bns_dlg_sl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_rl ( lst iv / lst2 a b)
(if lst
(progn
(setq a (get_tile "list_states")
b (nth (atoi a) lst)
lst2 (list (acet-str-format "Restored: %1" b)
b
a
);list
down_dlg_operation (list '(lst / )
(append '(bns_rl) (list b))
'lst
);list
);setq
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
);progn then
(setq lst2 (list "" nil ""));setq
);if
(list lst lst2)
);defun bns_dlg_rl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_get_nextname (lst / mx n a )
(setq n 0
mx 0
);setq
(repeat (length lst)
(setq a (nth n lst))
(if (wcmatch a "LAYER_STATE*")
(setq mx (max mx
(atoi (substr a 12))
);max
);setq
);if
(setq n (+ n 1));setq
);repeat
(setq a (strcat "LAYER_STATE" (itoa (+ 1 mx))));setq
a
);defun bns_get_nextname

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_edit ( lst iv / lstate lst2)
(if (and lst
(not (equal "" (get_tile "list_states")))
);and
(progn
(setq lstate (nth (atoi (get_tile "list_states")) lst)
lstate (xstrcase (acet-str-space-trim lstate))
lst2 (list (acet-str-format "Current layer state: %1" lstate)
(get_tile "save_name")
(get_tile "list_states")
);list
);setq
(setq down_dlg_operation (list
'(lst)
(append '(progn)
(list
(append '(bns_rl) (list lstate))
(append '(initdia))
(append '(command) (list "_.layer"))
);list
);append
(append '(bns_dlg_sl) (list 'lst iv lstate
))
);list
);setq
);progn then
(progn
(if (member (car #last_restore) lst)
(setq lst2 (list (acet-str-format "Current layer state: %1" (car #l
ast_restore))
(car #last_restore)
(itoa (vl-position (car #last_restore) lst))
);list
lstate (car #last_restore)
);setq then
(setq lst2 (list "Current layer state: *UNNAMED*" nil "")
lstate (bns_get_nextname lst)
);setq else
);if
(setq down_dlg_operation (list
'(lst)
(append '(progn)
(list
(append '(initdia))
(append '(command) (list "_.laye
r"))
);list
);append
(append '(bns_dlg_sl) (list 'lst iv lstat
e))
);list
);setq
);progn else
);if
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
(setq lst (list lst lst2))
);defun bns_dlg_edit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_dl ( lst iv / lstate lst2 n)
(if (and lst
(not (equal ""
(setq n (get_tile "list_states"))
);equal
);not
(setq n (atoi n)
lstate (nth n lst)
lstate (xstrcase (acet-str-space-trim lstate))
lst2 (list (get_tile "msg")
lstate
(get_tile "list_states")
);list
);setq
(equal 1 (bns_warning lstate "Are you sure you want to delete"))
);and
(progn
(setq lst2 (list (acet-str-format "Deleted: %1" lstate)));setq
(setq lst (acet-list-remove-nth n lst));setq
(if (member (car #last_restore) lst)
(setq lst2 (list (car lst2)
(car #last_restore)
(itoa (vl-position (car #last_restore) lst))
);list
);setq then
(setq lst2 (list (car lst2) nil ""));setq
);if
(setq down_dlg_operation (list '(lst)
(append '(bns_dl) (list lstate))
'lst
);list
);setq
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
);progn then
(progn
(if (member (car #last_restore) lst)
(setq lst2 (list (acet-str-format "Current layer state: %1" (car #las
t_restore))
(car #last_restore)
(itoa (vl-position (car #last_restore) lst))
);list
);setq then
(setq lst2 (list "" nil ""));setq
);if
);progn else
);if
(setq lst (list lst lst2))
);defun bns_dlg_dl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_list_pick ( lst / a)
(setq a (list
(get_tile "msg")
(get_tile "save_name")
(get_tile "list_states")
);list
);setq
(if (equal $REASON 4)
(setq #dlg_pnt (done_dialog 1))
);if
a
);defun bns_list_pick
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dl ( lstate / lst n)
(bns_reg_it)
(setq lst (acet-table-name-list "layer"));setq
(setq n 0);setq
(repeat (length lst)
(bns_d_layerstate (nth n lst) lstate)
;(spinner)
(setq n (+ n 1));setq
);repeat
(if (acet-str-equal lstate (car #last_restore))
(setq #last_restore nil)
);if
(princ)
);defun bns_dl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;delete layer state
(defun bns_d_layerstate ( la lstate / lst lst2 lst3 e1 xd a b)
(if lstate
(setq lstate (xstrcase lstate))
)
(setq e1 (entget (tblobjname "layer" la) '("RAK"))
xd (cdr (assoc -3 e1))
lst (cdr (assoc "RAK" xd))
a (cons 1000 (strcat "{" lstate))
b (cons 1000 (strcat lstate "}"))
);setq
(if (member a lst)
(progn
(setq lst2 (reverse (cdr (member a (reverse lst))))
lst3 (cdr (member b lst))
);setq
(setq
lst (append lst2 lst3)
lst (append (list "RAK") lst)
xd (subst lst (assoc "RAK" xd) xd)
xd (append (list -3) xd)
e1 (subst xd (assoc -3 e1) e1)
);setq
(entmod e1)
);progn then remove it
);if
(princ)
);defun bns_d_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_sl ( lstate / lst lst2 n ss na a vp clayer)
(bns_reg_it)
(if lstate
(setq lstate (xstrcase lstate))
)
(if (and (equal (getvar "tilemode") 0)
(setq na (acet-currentviewport-ename))
);and
(progn
(setq lst2 (acet-viewport-frozen-layer-list na)
lst2 (mapcar 'xstrcase lst2)
);setq
);progn then need to add the data to the viewports
);if
(setq clayer (xstrcase (getvar "clayer"))
lst (acet-table-name-list "layer")
lst (mapcar 'xstrcase lst)
);setq
(setq n 0);setq
(repeat (length lst)
(setq a (nth n lst));setq
(if (member a lst2)
(setq vp a)
(setq vp nil)
);if
(bns_add_layerstate
(entget (tblobjname "layer" a) '("RAK"))
lstate
clayer
vp
nil
);bns_add_layerstate
(setq n (+ n 1));setq
);repeat
(setq #last_restore (list lstate (bns_get_la_status))
#incomplete nil
);setq
);defun bns_sl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes
; e1- entity list of layer
; lstate name
; current layer name
; vp - name the layer if it is frozen in the current viewport
; lst5 - full data list if called on import operation.
;
(defun bns_add_layerstate ( e1 lstate clayer vp lst5 / a b c d xd lst lst2 lst3
lst4)
(if lstate
(setq lstate (xstrcase lstate))
)
(setq a (cons 1000 (strcat "{" lstate))
d (cons 1000 (strcat lstate "}"))
c (cdr (assoc 2 e1)) ;The layer name
xd (cdr (assoc -3 e1))
lst (cdr (assoc "RAK" xd))
);setq
(if (not lst5)
(progn
(setq lst2 (list
a ;The layer_s
tate name
(cons 1070 (cdr (assoc 70 e1))) ;The F/T L/U
Nlock xref bit
(cons 1070 (cdr (assoc 62 e1))) ;The color a
nd on/off
(cons 1000 (bns_local_ltype (cdr (assoc 6 e1))));The linetyp
e
);list
);setq
(if (acet-str-equal clayer c)
(setq lst2 (append lst2 (list '(1070 . 1))
);append
);setq then it's the current layer
);if
(if vp
(setq lst2 (append lst2 (list (cons 1000 vp))));setq then save the vp
freeze info
);if
(setq lst2 (append lst2
(list
(cons 1071 (cdr (assoc 370 e1))) ;The
line weight
(cons 1071 (cdr (assoc 290 e1))) ;The
Plot visibility
(cons 1005 (cdr (assoc 5 ;The
PlotStyle handle
(entget (cdr (assoc 390 e1)))
) );assoc
);cons
);list
);append
);setq
(setq lst2 (append lst2 (list d)));setq
);progn then
(setq lst2 lst5);setq else info from file import
);if
(if (member a lst)
(progn
(setq lst3 (reverse lst));setq
(while (setq b (member a lst3))
(setq b (cdr b)
lst3 b
);setq
);while
(setq lst3 (reverse lst3));setq
(setq lst4 lst);setq
(while (setq b (member d lst4))
(setq b (cdr b)
lst4 b
);setq
);while
);progn then
(setq lst3 lst);setq
);if
(setq lst2 (append (list "RAK") lst3 lst2 lst4));setq
(if lst
(setq lst2 (subst lst2 (assoc "RAK" xd) xd));setq then some xdata was ther
e and my xdata was too
(progn
(if xd
(setq lst2 (append xd (list lst2)));setq then xdata was there but not
mine
(setq lst2 (list lst2));setq else
);if
);progn else
);if
(setq lst2 (append (list -3) lst2));setq the new xdata
(if xd
(setq e1 (subst lst2 (assoc -3 e1) e1));setq
(setq e1 (append e1 (list lst2)));setq else
);if
(entmod e1)
);defun bns_add_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_list_layerstates ( / lst a b n )
(setq a (getstring "\nEnter layer states to list <*>:"));setq
(if (equal a "") (setq a "*"));if
(setq a (xstrcase a));setq
(if (setq lst (bns_get_layerstates));setq
(progn
(setq n 0);setq
(repeat (length lst)
(setq b (nth n lst));setq
(if (wcmatch b a)
(princ (strcat "\n" b))
);if
(setq n (+ n 1));setq
);repeat
);progn then
(princ "\nNo saved layer states found")
);if
(princ "\n")
);defun bns_list_layerstates
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_get_layerstates ( / e1 xd lst lst2 lst3 a b n j)
(setq lst (acet-table-name-list "layer"))
(setq b (length lst));setq
(setq n 0);setq
(repeat b
(setq e1 (entget (tblobjname "layer" (nth n lst)) '("RAK"))
xd (cdr (assoc -3 e1))
lst2 (cdr (assoc "RAK" xd))
;lst2 (m_assoc 1000 lst2)
);setq
(setq j 0);setq
(repeat (length lst2)
(setq a (nth j lst2));setq
(if (or (not (equal (car a) 1000))
(not (equal "{" (substr (cdr a) 1 1)))
);or
(setq a nil)
(progn
(setq a (xstrcase (substr (cdr a) 2)))
(if (not (member a lst3))
(setq lst3 (append lst3 (list a)));setq then
);if
);progn else
);if
(setq j (+ j 1));setq
);repeat
(setq n (+ n 1));setq
);repeat
(if lst3
(setq lst3 (acad_strlsort lst3));setq then
);if
lst3
);defun bns_get_layerstates
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;a full list of raw xdata from the layer table
(defun bns_get_layerstates_all ( / e1 xd lst lst2 b n )
(setq lst (acet-table-name-list "layer"))
(setq b (length lst));setq
(setq n 0);setq
(repeat b
(setq e1 (entget (tblobjname "layer" (nth n lst)) '("RAK"))
xd (cdr (assoc -3 e1))
lst2 (append lst2 (list
(list (cdr (assoc 2 e1))
(cdr (assoc "RAK" xd))
);list
);list
);append
);setq
(setq n (+ n 1));setq
);repeat
lst2
);defun bns_get_layerstates_all

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_c_export_lay ( / fna lst2)
(bns_reg_it)
(setq fna (ACET-FILE-WRITEDIALOG "Export file name"
(strcat (vl-filename-base (getvar "dwgname"))
".lay"
)
"lay"
"Acet:LayExport"
1665
);ACET-FILE-WRITEDIALOG
);setq
(if fna
(progn
(bns_export fna)
(setq lst2 (list (acet-str-format "Exported layer state(s) to %1" fna)
"" ""
);list
);setq
);progn
(setq lst2 (list "" "" ""));setq
);if
lst2
);defun bns_c_export_lay
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_export ( fna / fh lst n a )
(setq lst (bns_get_layerstates_all)
fh (open fna "w")
);setq
(setq n 0);setq
(repeat (length lst)
(setq a (nth n lst));setq
(bns_write_it a fh)
(setq n (+ n 1));setq
);repeat
(close fh)
);defun bns_export
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_c_import_lay ( / fna lst2)
(bns_reg_it)
(setq fna (acet-ui-getfile "Import file name"
(strcat (getvar "dwgprefix")
(acet-filename-path-remove (acet-filename-ext-remo
ve (getvar "dwgname")))
".lay"
)
"lay"
"Acet:LayImport"
1664
);acet-ui-getfile
);setq
(if fna
(progn
(bns_lman_import fna)
(setq lst2 (list (acet-str-format "Imported layer state(s) from %1" fna)
"" ""
);list
);setq
);progn
(setq lst2 (list "" "" ""));setq
);if
lst2
);defun bns_c_import_lay
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_lman_import ( fna / lstate fh lst5 a la e1 flag x na )
(bns_reg_it)
(setq fh (open fna "r"));setq
(read-line fh)
(while (setq a (read-line fh));setq
(setq a (read a));setq
(if (equal 'STR (type a))
(progn
(setq la a);setq
(if (not (setq na (tblobjname "layer" a)))
(progn
(cond
((setq x (wcmatch a "*|*"))
(princ (acet-str-format "\nCannot import xref'd layer: \"%1\"."
a))
)
((not (snvalid a))
(princ (acet-str-format "\nInvalid layer name: %1" a))
)
(T
(command "_.layer" "_new" a "")
(setq na (tblobjname "layer" a))
)
);cond close
);progn then
);if
(if na
(setq e1 (entget na '("RAK")));setq
(setq e1 nil)
);if
);progn then it's a layer name
(progn
(setq flag nil
lst5 nil
);setq
(while (not flag)
(setq lst5 (append lst5 (list a)));setq
(if (and
(equal 'LIST (type a))
(equal 1000 (car a))
(equal "}" (substr (cdr a) (strlen (cdr a)) 1))
);and
(progn
(setq flag T)
(if e1
(progn
(setq lstate (substr (cdr a) 1 (- (strlen (cdr a)) 1)));setq
(bns_add_layerstate e1 lstate "0" nil lst5)
(setq e1 (entget na '("RAK")))
);progn valid layer
);if
);progn then
(progn
(if (not (setq a (read-line fh)))
(setq flag T);setq
(setq a (read a));setq
);if
);progn
);if
);while
);progn else it's layer state data
);if
);while
(close fh)
);defun bns_lman_import
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_write_it ( lst fh / n a b)
(setq a (car lst)
lst (cadr lst)
);setq
(print a fh)
(setq n 0);setq
(repeat (length lst)
(setq b (nth n lst));setq
(print b fh)
(setq n (+ n 1));setq
);repeat
);defun bns_write_it
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_get_la_status ( / lst lst2 n a na)
(setq lst (acet-table-name-list "layer"))
(setq n 0)
(repeat (length lst)
(setq a (entget (tblobjname "layer" (nth n lst))))
(setq lst2 (cons a lst2))
(setq n (+ n 1));setq
);repeat
(setq lst (reverse lst2)
lst2 nil
);setq
(list (getvar "clayer")
lst
(if (and (equal (getvar "tilemode") 0)
(setq na (acet-currentviewport-ename))
);and
(list a (acet-viewport-frozen-layer-list na))
nil
);if
);list
);defun bns_get_la_status
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rl ( lstate / na ss lst lst2 lst3 lst4 a b n clayer bitflag missingl
t)
(bns_reg_it)
(if lstate
(setq lstate (xstrcase lstate))
)
(if (equal (getvar "tilemode") 0)
(setq na (acet-currentviewport-ename)) ;then need to add the data to the v
iewports
);if
(if (not (equal #last_restore (list lstate (bns_get_la_status))))
(progn
(setq #incomplete nil
clayer (getvar "clayer")
lst (acet-table-name-list "layer")
bitflag (bns_get_cur_lmanmode)
);setq
(setq n 0);setq
(repeat (length lst)
(setq lst2 (bns_r_layerstate (nth n lst) ;layer name
lstate ;layer state name
lst2 ;list that's passed & returned
for layer
na ;current viewport ename
lst4 ;second list that's returned fo
r VPlayer
bitflag ;sum of 1 =on/off,
; 2 = f/t,
; 4 = vp frz current vpor
t
; 8 = not used (f in new
vports)
; 16 = lock/unlock
; 32 = color
; 64 = linetype
; 128 = line weight
; 256 = plot
; 512 = plotstyle
);bns_r_layer_state
lst4 (cadr lst2)
lst2 (car lst2)
);setq
(setq n (+ n 1));setq
);repeat
(if (and na lst4)
(progn
(command "_.vplayer" "_T" "*" "")
(setq n 0);setq
(repeat (length lst4)
(command (nth n lst4))
(setq n (+ n 1));setq
);repeat
(command "")
);progn then do the vport thang
);if

;do a pre-process of the list and get a list of non-resolved linetypes


(setq n 0);setq
(repeat (length lst2)
(setq lst3 (nth n lst2)
a (car lst3)
lst3 (cdr lst3)
);setq
(while lst3
(setq b (car lst3));setq
(cond
((or (equal "_LW" b) (equal "_P" b) (equal "_PS" b) (equal "_C" b));or
(setq lst3 (cdr lst3));setq
);cond #1
((equal "_LT" b)
(if (and (not (tblobjname "ltype" (cadr lst3)))
(not (member (cadr lst3) missinglt))
(not (command "_.-linetype" "_load" (cadr lst3) "acad.lin" "
"))
(not (tblobjname "ltype" (cadr lst3)))
);and
(progn
(setq missinglt (cons (cadr lst3) missinglt))
(princ (acet-str-format "\nCannot find linetype: %1. Use linetyp
e command to load it."
(cadr lst3)
)
);princ
);progn then
);if
(setq lst3 (cdr lst3));setq
);cond #2
);cond close
(setq lst3 (cdr lst3));setq
);while
(setq n (+ 1 n));setq
);repeat
;issue the layer command and apply the properties
(command "_.layer")
(setq n 0);setq
(repeat (length lst2)
(setq lst3 (nth n lst2)
a (car lst3)
lst3 (cdr lst3)
);setq
(while lst3
(setq b (car lst3));setq
(cond
((or (equal "_LW" b)
(equal "_P" b)
(equal "_PS" b)
);or
(command b (cadr lst3) a)
(setq lst3 (cdr lst3));setq
);cond #1
((equal "_LT" b)
(if (not (member (cadr lst3) missinglt))
(command b (cadr lst3) a)
);if
(setq lst3 (cdr lst3));setq
);cond #2
((equal "_C" b)
(if (and (acet-str-equal a (getvar "clayer"))
(equal "-" (substr (cadr lst3) 1 1))
);and
(command b (cadr lst3) a "_Y")
(command b (cadr lst3) a)
);if
(setq lst3 (cdr lst3));setq
);cond #3
((and (or (equal b "_F")
(equal b "_OFF")
);or
(acet-str-equal a (getvar "clayer"))
);and
(if (equal b "_OFF")
(command b a "_Y")
(princ "\nCan't freeze the current layer.")
);if
);cond #4
(T
(command b a)
);cond #5
);cond close
(setq lst3 (cdr lst3));setq
);while
(setq n (+ 1 n));setq
);repeat
(command "")
(if (not #incomplete)
(setq #last_restore (list lstate (bns_get_la_status)));setq
);if
);progn then need to perform a restore
);if
(princ)
);defun bns_rl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;restore a layer state on the given layer
;takes
;layer name
;layer state name
;list passed to layer command
;entname of current viewport
;lst4 list passed to VPlayer
;bitflag sum of bits control options to restore.
;
(defun bns_r_layerstate (la lstate lst2 na lst4 bitflag /
lstate2 e1 xd lst lst3 a b c d vp flag
aa bb cc e2
)
(if lstate
(setq lstate (xstrcase lstate))
);if
(setq e1 (entget (tblobjname "layer" la)
'("RAK")
);entget
xd (cdr (assoc -3 e1))
lst (cdr (assoc "RAK" xd))
lstate2 (strcat lstate "}")
lstate (strcat "{" lstate)
);setq
(if (setq lst (member (cons 1000 lstate) lst));setq
(progn
(setq lst (reverse (member (cons 1000 lstate2) (reverse lst)))
lst (cdr lst)
a (cdr (nth 0 lst));the 70 code
aa (cdr (assoc 70 e1))
b (cdr (nth 1 lst));the color
bb (cdr (assoc 62 e1))
c (cdr (nth 2 lst));the linetype
cc (cdr (assoc 6 e1))
lst (cdr (cdr (cdr lst)))
d (assoc 1070 lst) ;the clayer ????
vp (assoc 1000 lst) ;vp frozen?????
);setq
(if (or (< b -255)
(= b 0)
(> b 255)
);or
(setq b 1)
);if
(if (or (< bb -255)
(= bb 0)
(> bb 255)
);or
(setq bb 1)
);if
(if (and na ;current viewport entity name
(not (equal vp (cons 1000 lstate2))) ;vp is not the end of the x
data i.e. (1000 . "LSTATE}")
(equal 4 (logand 4 bitflag)) ;vplayer thaw/freeze option is on
);and
(setq lst4 (append lst4 (list "_F" la "")));setq
(progn
(if (and (setq vp (cdr vp));setq
(equal (type vp) 'STR)
(equal 4 (logand 4 bitflag))
);and
(setq lst4 (append lst4 (list "_T" la "")));setq
);if
);progn then do the vport stuff
);if
(if (and (equal d '(1070 . 1)) ;then it was the current layer when save
d
(not (equal 16 ;if it's not xrefed then make it so this
time too
(logand 16 (cdr (assoc 70 e1)))
);equal
);not
);and
(progn
(setq lst3 (list la "_T" "_ON" "_Set");lst3 is a list with layername
followed
flag 99 ;by the operations to perform
on layername
);setq
(if (< bb 0)
(setq lst3 (append lst3 (list "_OFF")));setq
);if
);progn then current layer set stuff
(setq lst3 (list la)
flag nil
);setq else
);if
(if (and (equal 32 (logand 32 bitflag)) ;color option is on
(not (equal (abs b) (abs bb))) ;color change is needed.
);and
(progn
(setq lst3 (append lst3
(list "_C" (itoa b)) ;rk was (abs b) instead of b
);append
);setq then a color change is needed.
);progn
);if
(if (and (equal 1 (logand 1 bitflag)) ;restore on/off option is active
(< (/ (float b) (float bb)) 0) ;it's on/off needs to be changed
);and
(progn
(if (< b 0)
(setq lst3 (append lst3 (list "_OFF")));setq then turn it off
(progn
(if (equal 1 (logand 1 aa))
(setq lst3 (append lst3
(list "_T" "_ON" "_F"))
);setq then it's frozen so, turn it on quietly.
(setq lst3 (append lst3 (list "_ON")));setq else
);if
);progn else turn it on
);if
);progn then it's on/off status needs to be changed
);if
(if (and (equal 2 (logand 2 bitflag)) ;thaw/freeze option is active
(not flag) ;not current (already thawed if it
's going to be current)
(not (equal (logand 1 a) (logand 1 aa))) ;freeze thaw change ne
eded
);and
(progn
(if (equal 1 (logand 1 a))
(setq lst3 (append lst3 (list "_F")));setq then freeze it
(setq lst3 (append lst3 (list "_T")));setq thaw it
);if
);progn then needs to be frzn or thawed and it's not already that way
.
);if
(if (and (equal 16 (logand 16 bitflag)) ;lock/unlock option is
on
(not (equal (logand 4 a) (logand 4 aa))) ;locked unlocked statu
s change needed
);and
(progn
(if (equal 4 (logand 4 a))
(setq lst3 (append lst3 (list "_LO")));setq then
(setq lst3 (append lst3 (list "_UN")));setq else
);if
);progn then needs to be locked/unlocked and it's not already that wa
y.
);if
(if (and (equal 64 (logand 64 bitflag)) ;linetype option i
s on
(not (equal c (bns_local_ltype cc))) ;ltype change need
ed.
);and
(setq lst3 (append lst3 (list "_LT" c)));setq
);if
(setq lst (member (assoc 1071 lst) lst)
a (cdr (car lst))
lst (cdr lst)
);setq
(if (and a
(equal 128 (logand 128 bitflag)) ;lineweight opti
on is on
(/= a
(cdr (assoc 370 e1))
) ;change needed
);and
(progn
(if (>= a 0)
(progn
(if (= (getvar "LWUNITS") 0)
(setq b (cvunit (/ a 100.0) "mm" "in")) ;convert fro
m mm to inches
(setq b (/ a 100.0)) ;leave as mm
);if
(setq b (rtos b 2 8))
);progn then
(setq b "_def")
);if
(setq lst3 (append lst3
(list "_LW" b);list
);append
);setq
);progn then
);if
(setq lst (member (assoc 1071 lst) lst)
a (cdr (car lst))
lst (cdr lst)
);setq
(if (and a
(equal 256 (logand 256 bitflag)) ;plot restore op
tion is on
(/= a
(cdr (assoc 290 e1))
) ;change needed
);and
(progn
(if (= a 1)
(setq a "_P")
(setq a "_no")
);if
(setq lst3 (append lst3
(list "_P" a);list
);append
);setq
);progn then
);if
(setq lst (member (assoc 1005 lst) lst)
a (cdr (car lst))
lst (cdr lst)
);setq
(if (and a
(setq a (handent a))
(equal 512 (logand 512 bitflag)) ;plotstyle resto
re option is on
(not (equal a ;change needed
(cdr (assoc 390 e1))
)
);not
(setq e2 (dictsearch (namedobjdict) "ACAD_PLOTSTYLENAME")
e2 (reverse e2)
a (cons 350 a)
e2 (cdr (member a e2))
a (cdr (car e2))
);setq
);and
(progn
(setq lst3 (append lst3
(list "_PS" a);list
);append
);setq
);progn then
);if
(if (> (length lst3) 1)
(progn
(if flag
(setq lst2 (append (list lst3) lst2)) ;the set current layer fir
st
(setq lst2 (append lst2 (list lst3))) ;else append to end of lis
t
);if
);progn then
);if
);progn then the layer state is defined
(progn
(princ (acet-str-format
"\nWarning. Layer \"%1\" is not defined in \"%2\". Save the layer state to updat
e it."
la (substr lstate 2)
)
)
(setq #incomplete T)
);progn
);if
(list lst2 lst4)
);defun bns_r_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_dlg_rename ( lst iv / lstate lst2 n newlstate)
(if (and lst
(not (equal ""
(setq n (get_tile "list_states"))
);equal
);not
(setq n (atoi n)
lstate (nth n lst)
lstate (xstrcase (acet-str-space-trim lstate))
lst2 (list (get_tile "msg")
lstate
(get_tile "list_states")
);list
);setq
(setq newlstate (bns_lman_rename_dd lstate))
);and
(progn
(setq lst (subst newlstate lstate lst));setq
(if (acet-str-equal (car #last_restore) lstate)
(setq #last_restore (append (list newlstate) (cdr #last_restore)));se
tq
);if
(if (member (car #last_restore) lst)
(setq lst2 (list (acet-str-format "Current layer state: %1" (car #las
t_restore))
(car #last_restore)
(itoa (vl-position newlstate lst))
;(itoa (vl-position (car #last_restore) lst))
);list
);setq then
(setq lst2 (list "" nil ""));setq
);if
(setq down_dlg_operation (list '(lst)
(append '(bns_lman_rename)
(list lstate newlstate)
)
'lst
);list
);setq
(setq #dlg_pnt (done_dialog 2))
(unload_dialog iv)
);progn then
(progn
;(if (equal ""
; (setq n (get_tile "list_states"))
; );equal
; (setq lst2 (list "Nothing selected." nil ""));setq
;);if
;(print "nothing")
;(if (member (car #last_restore) lst)
; (setq lst2 (list (strcat "Current layer state: " (car #last_restore)
);strcat
; (car #last_restore)
; (itoa (vl-position (car #last_restore) lst))
; );list
; );setq then
; (setq lst2 (list "" nil ""));setq
;);if
);progn else
);if
(setq lst (list lst lst2))
);defun bns_dlg_rename
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_lman_rename_dd ( lstate / newlstate states ed_check iv flag)
(defun ed_check ( val reason states / )
(setq val (acet-str-space-trim (xstrcase val)));setq
(set_tile "ed2" val)
(cond
((equal val "")
(set_tile "error" "New name cannot be empty.")
);cond #1
;((equal val (get_tile "ed1"))
; (set_tile "error" "That's the same as the old name!")
;);cond #2
((and (member val states)
(not (equal val (get_tile "ed1")))
);and
(set_tile "error" "That name is already in use.")
);cond #3
(T
(set_tile "error" "")
(if (equal reason 1)
(done_dialog 1)
);if
);cond #4
);cond close
val
);defun ed_check
(if (> (setq iv (load_dialog "lman.dcl")) 0)
(progn
(if (new_dialog "lman_rename" iv);NEW_DIALOG DISPLAYS THE DIALOG
(progn
(setq states (bns_get_layerstates));setq list of layer state names.
(set_tile "txt1" "Old name: ")
(set_tile "txt2" "New name: ")
(set_tile "ed1" lstate)
(mode_tile "ed1" 1)
(set_tile "ed2" lstate)
(mode_tile "ed2" 2)
(action_tile "ed2"
"(setq newlstate (ed_check $value $reason states))"
);action_tile
(action_tile "accept"
(strcat
"(setq newlstate "
"(ed_check (get_tile \"ed2\") 1 states)"
")"
);strcat
);action_tile
(action_tile "cancel"
"(done_dialog 0)"
);action_tile
(setq flag (start_dialog));setq
(if (equal flag 1)
(progn
;(bns_lman_rename lstate newlstate)
(if (not (acet-str-equal newlstate lstate))
(setq flag newlstate)
(setq flag nil)
);if
);progn then
(setq flag nil)
);if
);progn then initialize the tiles and activate the dialog box
(progn
(alert "Unable to display dialog box")
(setq flag nil)
);progn
);if new dialog
);progn then
(progn
(alert "Unable to load dialog box")
(setq flag nil)
);progn else
);if load
(if flag
(setq flag (xstrcase flag))
);if
flag
);defun bns_lman_rename_dd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_c_rename_layerstate ( / flag a b lst)
(setq lst (bns_get_layerstates));setq
(while (not flag) ;get the old name
(setq a (xstrcase (getstring T "\nEnter old name [?]: "))
a (acet-str-space-trim a)
);setq
(cond
((equal a "?") (bns_list_layerstates))
((member a lst) (setq flag T))
(T (princ "\nLayer state not found."))
);cond close
);while
(setq flag nil)
(while (not flag) ;get the new name
(setq b (xstrcase (getstring T "\nEnter new name [?]: "))
b (acet-str-space-trim b)
);setq
(cond
((equal b "?") (bns_list_layerstates))
((not (member b lst)) (setq flag T))
(T (princ "\nThat name is already in use."))
);cond close
);while
(bns_lman_rename a b)
);defun bns_c_rename_layerstate

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_lman_rename ( lstate lstate2 / n lst flag)
(setq lst (acet-table-name-list "layer"));setq
(setq n 0);setq
(repeat (length lst)
(setq flag (or (bns_rename_layerstate (nth n lst) ;layer name
lstate ;old layer state name
lstate2 ;new layer state name
);bns_rename_layerstate
flag
);or
);setq
(setq n (+ n 1));setq
);repeat
flag
);defun bns_lman_rename
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rename_layerstate (la oldlstate newlstate / e1 xd lst
lstate lstate2 lstate3 lstate4 flag
)
(if oldlstate
(setq oldlstate (xstrcase oldlstate))
)
(if newlstate
(setq newlstate (xstrcase newlstate))
)
(setq e1 (entget (tblobjname "layer" la)
'("RAK")
);entget
xd (cdr (assoc -3 e1))
lst (cdr (assoc "RAK" xd))
lstate (strcat "{" oldlstate)
lstate2 (strcat oldlstate "}")
lstate3 (strcat "{" newlstate)
lstate4 (strcat newlstate "}")
);setq
(if (and (member (cons 1000 lstate) lst)
(member (cons 1000 lstate2) lst)
);and
(progn
(setq lst (subst (cons 1000 lstate3) (cons 1000 lstate) lst)
lst (subst (cons 1000 lstate4) (cons 1000 lstate2) lst)
lst (append (list "RAK") lst)
xd (subst lst (assoc "RAK" xd) xd)
xd (append (list -3) xd)
e1 (subst xd (assoc -3 e1) e1)
);setq
(setq flag (entmod e1))
);progn then the layer state is defined
(progn
;doesn't exist
(setq flag nil);setq
);progn
);if
flag
);defun bns_rename_layerstate

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_new_state ( lst new_name msg / lstate iv str flag);
(if (> (setq iv (load_dialog "lman.dcl")) 0)
(progn
(if (new_dialog "new_lman" iv);NEW_DIALOG DISPLAYS THE DIALOG
(progn
(set_tile "new_msg" msg)
(set_tile "new_name" new_name)
(setq str (strcat
"(if (equal $reason 1) "
"(progn (setq lstate (get_tile \"new_name\")) "
"(done_dialog 1) "
")"
")"
);strcat
);setq
(action_tile "new_name" str)
(action_tile "accept"
"(setq lstate (get_tile \"new_name\")) (done_dialog 1)"
);action_tile
(action_tile "cancel"
"(done_dialog 0)"
);action_tile
(mode_tile "new_name" 2)
(setq flag (start_dialog));setq
;START_DIALOG MAKES THE BUTTONS ACTIVE
);progn then initialize the tiles and activate the dialog box
(progn
(alert "Unable to display dialog box")
(setq flag 1)
);progn
);if new dialog
);progn then
(progn
(alert "Unable to load dialog box")
(setq flag 1)
);progn else
);if load
(if lstate
(setq lstate (acet-str-space-trim (xstrcase lstate)))
);if
(if (and (not (acet-str-equal lstate new_name))
(member lstate lst)
);and
(progn
(if (equal 0 (bns_warning lstate ""))
(setq lstate (bns_new_state lst new_name msg));setq
);if
);progn
);if
(if lstate
(setq lstate (xstrcase lstate))
)
lstate
);defun bns_new_state
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_warning ( name msg2 / iv flag);
(if (> (setq iv (load_dialog "lman.dcl")) 0)
(progn
(if (new_dialog "warning" iv);NEW_DIALOG DISPLAYS THE DIALOG
(progn
(if (not (equal msg2 ""))
(progn
(set_tile "warn_msg" (acet-str-format "%1 %2?" msg2 name))
(set_tile "warn_msg2" "")
);progn
(progn
(set_tile "warn_msg" (acet-str-format "\"%1\" already exist." n
ame))
(set_tile "warn_msg2" "Do you want to overwrite it?")
);progn
);if
(action_tile "accept"
"(done_dialog 1)"
);action_tile
(action_tile "cancel"
"(done_dialog 0)"
);action_tile
(mode_tile "accept" 2)
(setq flag (start_dialog));setq
;START_DIALOG MAKES THE BUTTONS ACTIVE
);progn then initialize the tiles and activate the dialog box
(progn
(alert "Unable to display dialog box")
(setq flag 1)
);progn
);if new dialog
);progn then
(progn
(alert "Unable to load dialog box")
(setq flag 1)
);progn else
);if load
flag
);defun bns_warning
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_reg_it ( )
(if (not (tblsearch "appid" "RAK"))
(if (= (regapp "RAK") nil)
(princ "\nCan't register XDATA for RAK. ")
);if
);if
);defun bns_reg_it

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_c_delete_layerstate ( / lstate lst2 a)
(bns_reg_it)
(while (not lstate)
(setq lstate (xstrcase (getstring T "\nEnter a name the for layer state to de
lete [?]:"))
);setq
(if (not (equal lstate ""))
(progn
(if (equal (acet-str-space-trim lstate) "?")
(progn
(bns_list_layerstates)
(setq lstate nil);setq
);progn then
(progn
(if (not lst2)
(setq lst2 (bns_get_layerstates))
);if
(if (not (member lstate lst2))
(progn
(princ (acet-str-format "\nCan't find saved layer state: %1" l
state))
(setq lstate nil);setq
);progn
(progn
(initget "Yes No _Yes No")
(setq a (getkword "Are you sure? [Yes/No] <Yes>: "))
(if (equal a "No")
(setq lstate "")
);if
);progn else
);if
);progn else
);if
);progn then
);if
);while
(if (and (not (equal a "No"))
(not (equal lstate ""))
);and
(progn
(bns_dl lstate)
(princ (acet-str-format "\nLayer state: %1 deleted." lstate))
);progn then
);if
(princ)
);defun bns_c_delete_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_c_restore_layerstate ( / lstate lst2)
(bns_reg_it)
(while (not lstate)
(setq lstate (xstrcase
(getstring T "\nEnter a name the for layer state to restore [?]
:")
)
);setq
(if (not (equal "" lstate))
(progn
(if (equal (acet-str-space-trim lstate) "?")
(progn
(bns_list_layerstates)
(setq lstate nil);setq
);progn then
(progn
(setq lstate (acet-str-space-trim lstate));setq
(if (not lst2)
(setq lst2 (bns_get_layerstates))
);if
(if (not (member lstate lst2))
(progn
(princ (acet-str-format "\nCan't find saved layer state: %1" l
state))
(setq lstate nil);setq
);progn
);if
);progn else
);if
);progn
);if
);while
(if (not (equal lstate ""))
(progn
(bns_rl lstate)
(princ (acet-str-format "\nLayer state: %1 restored." lstate ))
);progn then
);if
(princ)
);defun bns_c_restore_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
(defun bns_c_save_layerstate ( / lstate cstate lst a)
(bns_reg_it)
(while (not lstate)
(setq lstate (xstrcase (getstring T "\nEnter name for saving current layer st
atus [?]: ")));setq
(cond
((equal (acet-str-space-trim lstate) "?")
(bns_list_layerstates)
(setq lstate nil);setq
);cond #1
((not (equal lstate ""))
(setq lstate (acet-str-space-trim lstate))
(if (equal "" lstate) ;(not (snvalid lstate))
(progn
(princ "\nInvalid name.")
(setq lstate nil)
);progn
(progn
(setq lst (bns_get_layerstates));setq
(if (and (equal (cadr #last_restore) (bns_get_la_status));equal
(member (car #last_restore) lst)
);and
(setq cstate (car #last_restore))
(setq cstate "*UNNAMED*")
);if
(if (not (or (not (member lstate lst))
(acet-str-equal cstate lstate)
);or
);not
(progn
(initget "Yes No _Yes No")
(setq a (getkword "Layer state already exists. Overwrite? [Yes/N
o] <Yes>: "))
(if (equal a "No")
(setq lstate "")
);if
);progn then
);if
);progn then
);if
);cond #2
);cond close
);while
(if (and (not (equal a "No"))
(not (equal "" lstate))
);and
(progn
(bns_sl lstate)
(princ (acet-str-format "\nLayer state: %1 saved." lstate ))
);progn then
);if
(princ)
);defun bns_c_save_layerstate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_lman_ltypefx ( / lst n j a b na e1 )

(setq lst (acet-table-name-list "ltype"))


(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
na (tblobjname "ltype" a)
e1 (entget na)
);setq
(if (and (equal 16 (logand 16 (cdr (assoc 70 e1))))
(wcmatch a "*|*")
);and
(progn
(while (and (not (equal (substr a 1 1) "|"))
(> (strlen a) 1)
);and
(setq a (substr a 2))
);while
(setq a (substr a 2));setq
(if (and (not (tblobjname "ltype" a))
(not (equal "" a))
);and
(progn
(setq b (cdr (assoc 70 e1))
b (- b 16)
);setq
(if (equal 32 (logand 32 b))
(setq b (- b 32))
);if
(setq e1 (subst (cons 2 a) (assoc 2 e1) e1)
e1 (subst (cons 70 b) (assoc 70 e1) e1)
);setq
(if (assoc 340 e1)
(progn
(setq b (substr (nth n lst)
1
(- (strlen (nth n lst)) (strlen a) 1)
);substr
j 0
);setq
(while (tblobjname "ltype" (strcat b "$" (itoa j) "$" a))
(setq j (+ j 1))
);while
(command "_.xbind" "_lt" (nth n lst))
(command "_.rename" "_lt"
(strcat b "$" (itoa j) "$" a)
a
);command
);progn
(entmake e1)
);if
);progn
);if
);progn
);if
(setq n (+ n 1))
);repeat
);defun bns_lman_ltypefx

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_local_ltype ( a / na e1 )
(if (and (setq na (tblobjname "ltype" a))
(setq e1 (entget na))
(equal 16 (logand 16 (cdr (assoc 70 e1))))
(wcmatch a "*|*")
);and
(progn
(while (and (not (equal (substr a 1 1) "|"))
(> (strlen a) 1)
);and
(setq a (substr a 2))
);while
(setq a (substr a 2))
);progn
);if
a
);defun bns_local_ltype
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;(defun c:-lman ( / flag lst)
;;
;; (acet-error-init (list
;; (list "cmdecho" 0
;; "regenmode" 1
;; "expert" 0
;; "ucsicon" 0
;; )
;; nil ;flag. True means use undo for error clean up.
;; );list
;; );acet-error-init
;;
;; (bns_lman_ltypefx)
;;
;; (bns_reg_it)
;;
;; (setq lst (bns_get_layerstates));setq
;; (if (and (equal (cadr #last_restore) (bns_get_la_status));equal
;; (member (car #last_restore) lst)
;; );and
;; (princ (acet-str-format "\nCurrent layer state: %1" (car #last_restore)))
;; (progn
;; (princ "\nCurrent layer state: *UNNAMED*")
;; (setq #last_restore nil);setq
;; );progn
;; );if
;;
;; (setq flag T)
;; (while flag
;; (initget "? Import Export Save Restore Delete reName _? Import Export Save R
estore Delete reName")
;; (setq flag (getkword "\nEnter an option for layer states [?/Import/Export/Sa
ve/Restore/Delete/reName]: "))
;; (cond
;; ((equal flag "?")
;; (bns_list_layerstates)
;; )
;; ((acet-str-equal "Import" flag)
;; (princ (strcat "\n" (car (bns_c_import_lay))))
;; )
;; ((acet-str-equal "Export" flag)
;; (princ (strcat "\n" (car (bns_c_export_lay))))
;; )
;; ((acet-str-equal "Save" flag)
;; (bns_c_save_layerstate)
;; )
;; ((acet-str-equal "Restore" flag)
;; (bns_c_restore_layerstate)
;; )
;; ((acet-str-equal "Delete" flag)
;; (bns_c_delete_layerstate)
;; )
;; ((acet-str-equal "reName" flag)
;; (bns_c_rename_layerstate)
;; )
;; (T (setq flag nil))
;; );cond close
;; );while
;; (acet-error-restore)
;;);defun c:-lman
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;(defun c:lmanmode ( / ) ;dialog unless script or cmddia=0
;; (acet-error-init nil)
;; (bns_get_lmanmode nil)
;; (setq #last_restore nil)
;; (acet-error-restore)
;;);defun c:lmanmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;(defun c:-lmanmode ( / ) ;command line
;; (acet-error-init nil)
;; (bns_get_lmanmode T)
;; (setq #last_restore nil)
;; (acet-error-restore)
;;);defun c:-lmanmode

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_get_lmanmode ( flag / mode)
(setq mode (bns_get_cur_lmanmode))
(if (or flag
(equal 0 (getvar "cmddia"))
(equal 4 (logand 4 (getvar "cmdactive")))
);or
(bns_get_lmanmode_cmd)
(bns_get_lmanmode_dd)
);if
);defun bns_get_lmanmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;bns_get_lmanmode_cmd
;prompts for lmanmode at the command line.
;The ACET-LMAN-MODE variable controls the types of operations that
;lman performs on layerstate restore.
;
;Lmanmode is a sum of the following:
;1 - on/off
;2 - thaw/freeze
;4 - Vpthaw/vpfreeze
;(8) - ;not used
;16 - lock/unlock
;32 - color
;64 - linetype
;128 - line weight
;256 - plot
;512 - plotstyle
;
(defun bns_get_lmanmode_cmd ( / curmode mode a flag)
(setq curmode (bns_get_cur_lmanmode)
mode curmode
);setq
(bns_princ_lmanmode mode)
(while (not flag)
(initget 6) ; no zero and no negative
(if (setq a (getint "\nEnter LMANMODE bit coded setting: "))
(setq a (logand 1015 a))
);if
(cond
((not a)
(setq a curmode
flag T
);setq
);cond #1
((<= a 1015)
(setq a (acet-calc-bitlist a));setq
(if (not a)
(setq a 0)
);if
(if (member 8 a)
(progn
(setq a (- (apply '+ a) 8));setq then
(princ "\nIgnoring 8 bit value.")
);progn
(setq a (apply '+ a));setq else
);if
(if (> a 0)
(setq flag T);setq
);if
);cond #2
);cond close
(if (not flag)
(princ "\nInvalid value.")
);if
);while
(if (and a
(equal (type a) 'INT)
);and
(progn
(bns_princ_lmanmode a)
(acet-setvar (list "ACET-LMAN-MODE" a 3))
);progn then
);if
mode
);defun bns_get_lmanmode_cmd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;bns_get_lmanmode_dd
;prompts for lmanmode using a dcl dialog with check boxes.
;sets the variable ACET-LMAN-MODE
;
;Lmanmode is a sum of the following:
; 1 - on/off
; 2 - thaw/freeze
; 4 - Vpthaw/vpfreeze
; (8) - ;not used
; 16 - lock/unlock
; 32 - color
; 64 - linetype
; 128 - line weight
; 256 - plot
; 512 - plotstyle
;
(defun bns_get_lmanmode_dd ( / iv flag set_bit mode)
(setq mode (bns_get_cur_lmanmode))
(if (> (setq iv (load_dialog "lman"));setq
0
);test
(progn
(if (new_dialog "lmanmode" iv)
(progn
(if (equal 1 (logand 1 mode))
(set_tile "onoff" "1")
(set_tile "onoff" "0")
);if
(if (equal 2 (logand 2 mode))
(set_tile "thawfreeze" "1")
(set_tile "thawfreeze" "0")
);if
(if (equal 4 (logand 4 mode))
(set_tile "vpthawfreeze" "1")
(set_tile "vpthawfreeze" "0")
);if
(if (equal 16 (logand 16 mode))
(set_tile "lock" "1")
(set_tile "lock" "0")
);if
(if (equal 32 (logand 32 mode))
(set_tile "color" "1")
(set_tile "color" "0")
);if
(if (equal 64 (logand 64 mode))
(set_tile "linetype" "1")
(set_tile "linetype" "0")
);if
(if (equal 128 (logand 128 mode))
(set_tile "lineweight" "1")
(set_tile "lineweight" "0")
);if
(if (equal 256 (logand 256 mode))
(set_tile "plot" "1")
(set_tile "plot" "0")
);if
(if (equal 512 (logand 512 mode))
(set_tile "plotstyle" "1")
(set_tile "plotstyle" "0")
);if
(defun set_bit ( a mode val / )
(if (and (equal "0" val)
(equal a (logand a mode))
);and
(setq mode (- mode a));subtract the bit
(progn
(if (equal "1" val)
(setq mode (logior a mode));setq then add the bit
);if
);progn else
);if
(if (<= mode 0) ;disable the OK button
(progn
(setq mode 0)
(set_tile "error" "Must select at least one option.")
(mode_tile "accept" 1)
);progn then
(progn
(set_tile "error" "")
(mode_tile "accept" 0)
);progn else
);if
mode
);defun set_bit
(action_tile "onoff" "(setq mode (set_bit 1 mode $value))")
(action_tile "thawfreeze" "(setq mode (set_bit 2 mode $value))")
(action_tile "vpthawfreeze" "(setq mode (set_bit 4 mode $value))")
(action_tile "lock" "(setq mode (set_bit 16 mode $value))")
(action_tile "color" "(setq mode (set_bit 32 mode $value))")
(action_tile "linetype" "(setq mode (set_bit 64 mode $value))")
(action_tile "lineweight" "(setq mode (set_bit 128 mode $value))")
(action_tile "plot" "(setq mode (set_bit 256 mode $value))")
(action_tile "plotstyle" "(setq mode (set_bit 512 mode $value))")

(action_tile "accept" "(done_dialog 1)")


(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(acet-help \"LMAN\")")
(setq flag (start_dialog));setq ;START_DIALOG MAKES THE BUTTONS ACTIV
E
(if (and (equal flag 1)
(> mode 0)
);and
(progn
(acet-setvar (list "ACET-LMAN-MODE" mode 3))
(setq #last_restore nil)
);progn then
(setq mode (bns_get_cur_lmanmode));setq else
);if
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load

;(bns_princ_lmanmode mode)
mode
);defun bns_get_lmanmode_dd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Gets the current lmanmode setting from the variable ACET-LMAN-MODE
;Returns an a bit sum integer. See header for bns_get_lmanmode for more details.
;
(defun bns_get_cur_lmanmode ( / mode )
(if (not (setq mode (acet-getvar '("ACET-LMAN-MODE"))))
(progn
(setq mode (+ 1 2 4 16 32 64 128 256 512))
(acet-setvar (list "ACET-LMAN-MODE"
(+ 1 2 4 16 32 64 128 256 512)
3
);list
);acet-setvar
);progn then
);if
mode
);defun bns_get_cur_lmanmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Lmanmode is a sum of the following:
; 1 - on/off
; 2 - thaw/freeze
; 4 - Vpthaw/vpfreeze
; (8) - ;not used
; 16 - lock/unlock
; 32 - color
; 64 - linetype
; 128 - line weight
; 256 - plot
; 512 - plotstyle
;
(defun bns_princ_lmanmode ( mode / lst n a b )

(if (not mode)


(setq mode (bns_get_cur_lmanmode))
);if
(setq lst (list '(1 "On/off")
'(2 "thaw/Freeze")
'(4 "Vpthaw/vpfreeze")
;;;;'(8 "not used")
'(16 "Lock/unlock")
'(32 "Color")
'(64 "Linetype")
'(128 "Lineweight")
'(256 "Plot")
'(512 "PlotStyle")
);list
);setq
(setq b "")
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq
(if (equal (car a) (logand (car a) mode))
(setq b (strcat b ", " (cadr a)));setq
);if
(setq n (+ n 1));setq
);repeat
(if (equal (substr b 2) "")
(princ "\nCurrent LMANMODE: None");then
(princ (acet-str-format "\nCurrent LMANMODE: %1" (substr b 2)));else
);if
(substr b 2)
);defun bns_princ_lmanmode

(princ)
ÉP½ a«¥. ÚìÜ&GÈh§f Ù2ÙC&O÷ -¨G ÿóaæOO9¿f ^ÐÎSòRòdÏr%©liQ¥Z5l 7ûÌ ëî<'Bþ=  ü®ýj'_s@
Ó
ÿ÷µ;=á ¾q   W!iéÕtkt oÍóÖMä3ÜBøÝòx h£ .!4ñ6Bª wï
ÅÏl(Tyü L¶¸¨ºSÔ8TÖ<. ½ 4
ÊÉ~
dà b];ÇNÏ Ã—M' åù.F"ËëaëÚ.ñlq ,@µÁ`0®RhÍ;=#:VaÝÃä¼ ²$å$¥
³jÓ8²lÐô %Ë( cQB{Ac4ÚB$Iµî
Æ-%9z¹9w ¿.!¸ þñ¥ bIr ]YT.
% Euü >~M—°V-SM »¨%($+ðL
S#ÒâB i B°M$ëWý
º¢ ?²hñô Ø Ç/x?>Êyð8÷Q ðYnM*G VÐLHΩã¾VÉUóo 8g
«
ÇmÛ : =pK5 ûí_Ù&n©Û«ßh«¿% s<O;;;
;;; LSPDATA.lsp- Express Tool data for lsp command
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
;
(defun c:lsp ( / lst n a b wc
acet-lsp-is-command acet-lsp-princ
core-symbol-list
com-symbol-list
reactor-symbol-list
)
(acet-error-init nil)
(load "lspdata.lsp" "lspdata load failed")
;;;;local function for checking if _string_ argument provided
;;;;is bound to a command function (c:XXXX)
(defun acet-lsp-is-command ( a / )
(and (equal "C:" (substr (xstrcase a) 1 2))
(acet-lsp-is-function (eval (read a)))
);and
);defun acet-lsp-is-command

(defun acet-lsp-princ ( a / b c)
(cond
((member a core-symbol-list) (setq b "Core"))
((member a com-symbol-list) (setq b "Com"))
((member a reactor-symbol-list) (setq b "Reactor"))
(T (setq b ""))
);cond close
(if (setq c (type (eval (read a))))
(setq c (vl-symbol-name c))
(setq c "nil")
);if
(setq c (strcat "(" c ")"))
(if (= "C:" (substr a 1 2))
(setq a (substr a 3))
);if
(while (< (strlen a) 30)
(setq a (strcat a " "))
);while
(while (< (strlen c) 30)
(setq c (strcat c " "))
);while
(princ (strcat "\n" a c b))
);defun acet-lsp-princ
;;;;;;get down to the buisness at hand...
(initget "Commands Functions Variables Load ? _Commands Functions Variables Lo
ad ?")
(setq a (getkword "\nEnter an option [?/Commands/Functions/Variables/Load]: ")
)
(if (and a
(/= "Load" a)
(/= a "?")
)
(setq wc (getstring (acet-str-format "\nEnter %1 to list <*>: " a))
lst (atoms-family 1)
lst (acad_strlsort lst)
);setq
);if
(if (or (not wc)
(= wc "")
)
(setq wc "*")
(setq wc (xstrcase wc))
);if
(cond
((= a "Commands")
(setq n 0);setq
(repeat (length lst)
(setq a (xstrcase (nth n lst)));setq
(if (and (acet-lsp-is-command a)
(wcmatch (substr a 3) wc)
);and
(acet-lsp-princ a)
);if
(setq n (+ n 1))
);repeat
);cond 1
((= a "Functions")
(setq n 0);setq
(repeat (length lst)
(setq a (xstrcase (nth n lst))
b (eval (read a))
);setq
(if (and (wcmatch a wc)
b
(acet-lsp-is-function b)
);and
(acet-lsp-princ a)
);if
(setq n (+ n 1));setq
);repeat
);cond 2
((= a "Variables")
(progn
(setq n 0);setq
(repeat (length lst)
(setq a (xstrcase (nth n lst))
b (eval (read a))
);setq
(if (and
(not (acet-lsp-is-function b));not a function
(not (acet-lsp-is-command a));not a command
(wcmatch a wc)
);and
(progn
(acet-lsp-princ a)
);progn then
);if
(setq n (+ n 1))
);repeat
);progn then
);cond 4
((= a "?")
(help "acad_alr.chm" "")
);cond 5
((= a "Load")
(command "_.appload")
);cond 6
);cond close
(acet-error-restore)
(princ)
);defun c:lsp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;
;;;;Function for checking if argument provided is a function
(defun acet-lsp-is-function ( b / )
(or (and (= 'LIST (type b)) ;;;;;;a list that looks like a function?
(not (acet-list-is-dotted-pair b)) ;not a dotted pair
(> (length b) 1)
(or (= 'LIST (type (car b)))
(not (car b))
);or
);and
(= 'SUBR (type b)) ;;;;;;or a standard subroutine
(= 'USUBR (type b)) ;;;;;;or a subroutine (w/IDE loaded)
(= 'EXRXSUBR (type b)) ;;;;;;or an arx subroutine
);or
);defun acet-lsp-is-function

(setq core-symbol-list
'(
"*"
"*ERROR*"
"*VLISP-NEW-FULL-INIT*"
"+"
"-"
"/"
"/="
"1+"
"1-"
":CONSTANTS-PREFIX"
":FALSE"
":METHODS-PREFIX"
":PROG-ID"
":PROPERTIES-PREFIX"
":TLB-FILENAME"
":TRUE"
":VLAX-FALSE"
":VLAX-NULL"
":VLAX-TRUE"
"<"
"<="
"="
">"
">="
"ABS"
"ACAD_COLORDLG"
"ACAD_STRLSORT"
"ACTION_TILE"
"ADD_LIST"
"ADS"
"ALERT"
"ALLOC"
"AND"
"ANGLE"
"ANGTOF"
"ANGTOS"
"APPEND"
"APPLY"
"ARX"
"ARXLOAD"
"ARXUNLOAD"
"ASCII"
"ASSOC"
"ATAN"
"ATOF"
"ATOI"
"ATOM"
"ATOMS-FAMILY"
"BHATCH"
"BHERRS"
"BOOLE"
"BOUNDP"
"BPOLY"
"C:PSDRAG"
"C:PSFILL"
"C:PSIN"
"C:VLIDE"
"CAAAAR"
"CAAADR"
"CAAAR"
"CAADAR"
"CAADDR"
"CAADR"
"CAAR"
"CADAAR"
"CADADR"
"CADAR"
"CADDAR"
"CADDDR"
"CADDR"
"CADR"
"CAR"
"CDAAAR"
"CDAADR"
"CDAAR"
"CDADAR"
"CDADDR"
"CDADR"
"CDAR"
"CDDAAR"
"CDDADR"
"CDDAR"
"CDDDAR"
"CDDDDR"
"CDDDR"
"CDDR"
"CDR"
"CHR"
"CLIENT_DATA_TILE"
"CLOSE"
"COMMAND"
"COND"
"CONS"
"COS"
"CVUNIT"
"DEFUN"
"DEFUN-Q"
"DEFUN-Q-LIST-REF"
"DEFUN-Q-LIST-SET"
"DICTADD"
"DICTNEXT"
"DICTREMOVE"
"DICTRENAME"
"DICTSEARCH"
"DIMX_TILE"
"DIMY_TILE"
"DISTANCE"
"DISTOF"
"DONE_DIALOG"
"END_IMAGE"
"END_LIST"
"ENTDEL"
"ENTGET"
"ENTLAST"
"ENTMAKE"
"ENTMAKEX"
"ENTMOD"
"ENTNEXT"
"ENTSEL"
"ENTUPD"
"EQ"
"EQUAL"
"EVAL"
"EXIT"
"EXP"
"EXPAND"
"EXPT"
"FILL_IMAGE"
"FINDFILE"
"FIX"
"FLOAT"
"FNSPLITL"
"FOREACH"
"FUNCTION"
"GC"
"GCD"
"GETANGLE"
"GETCFG"
"GETCNAME"
"GETCORNER"
"GETDIST"
"GETENV"
"GETFILED"
"GETINT"
"GETKWORD"
"GETORIENT"
"GETPOINT"
"GETREAL"
"GETSTRING"
"GETURL"
"GETVAR"
"GET_ATTR"
"GET_TILE"
"GRAPHSCR"
"GRCLEAR"
"GRDRAW"
"GRREAD"
"GRTEXT"
"GRVECS"
"HANDENT"
"HELP"
"IF"
"INITDIA"
"INITGET"
"INTERS"
"ISMNUGRPLOADED"
"ITOA"
"LAMBDA"
"LAST"
"LAYOUTLIST"
"LENGTH"
"LIST"
"LISTP"
"LOAD"
"LOAD_DIALOG"
"LOG"
"LOGAND"
"LOGIOR"
"LSH"
"MAPCAR"
"MAX"
"MEM"
"MEMBER"
"MENUCMD"
"MENUGROUP"
"MIN"
"MINUSP"
"MODE_TILE"
"MTEDIT"
"MTPROP"
"NAMEDOBJDICT"
"NENTSEL"
"NENTSELP"
"NEW_DIALOG"
"NOT"
"NTH"
"NULL"
"NUMBERP"
"OPEN"
"OR"
"OSNAP"
"PAUSE"
"PI"
"POLAR"
"PRAGMA"
"PRIN1"
"PRINC"
"PRINT"
"PROGN"
"PROMPT"
"QUIT"
"QUOTE"
"READ"
"READ-CHAR"
"READ-LINE"
"REDRAW"
"REGAPP"
"REM"
"REPEAT"
"REPORT"
"REVERSE"
"RTOS"
"SET"
"SETCFG"
"SETENV"
"SETFUNHELP"
"SETQ"
"SETURL"
"SETVAR"
"SETVIEW"
"SET_TILE"
"SIN"
"SLIDE_IMAGE"
"SNVALID"
"SQRT"
"SSADD"
"SSDEL"
"SSGET"
"SSGETFIRST"
"SSLENGTH"
"SSMEMB"
"SSNAME"
"SSNAMEX"
"SSSETFIRST"
"STARTAPP"
"START_DIALOG"
"START_IMAGE"
"START_LIST"
"STRCASE"
"STRCAT"
"STRLEN"
"SUBST"
"SUBSTR"
"T"
"TABLET"
"TBLNEXT"
"TBLOBJNAME"
"TBLSEARCH"
"TERM_DIALOG"
"TERPRI"
"TEXTBOX"
"TEXTPAGE"
"TEXTSCR"
"TRACE"
"TRANS"
"TYPE"
"UNLOAD_DIALOG"
"UNTRACE"
"VECTOR_IMAGE"
"VER"
"VL-ACAD-DEFUN"
"VL-ACAD-UNDEFUN"
"VL-ARX-IMPORT"
"VL-BB-REF"
"VL-BB-SET"
"VL-BT"
"VL-BT-OFF"
"VL-BT-ON"
"VL-CMDF"
"VL-CONSP"
"VL-DIRECTORY-FILES"
"VL-DOC-EXPORT"
"VL-DOC-IMPORT"
"VL-DOC-REF"
"VL-DOC-SET"
"VL-EVERY"
"VL-EXIT-WITH-ERROR"
"VL-EXIT-WITH-VALUE"
"VL-FILE-COPY"
"VL-FILE-DELETE"
"VL-FILE-DIRECTORY-P"
"VL-FILE-RENAME"
"VL-FILE-SIZE"
"VL-FILE-SYSTIME"
"VL-FILENAME-BASE"
"VL-FILENAME-DIRECTORY"
"VL-FILENAME-EXTENSION"
"VL-FILENAME-MKTEMP"
"VL-GET-RESOURCE"
"VL-INFP"
"VL-INIT"
"VL-LIST*"
"VL-LIST->STRING"
"VL-LIST-EXPORTED-FUNCTIONS"
"VL-LIST-LENGTH"
"VL-LIST-LOADED-VLX"
"VL-LOAD-ALL"
"VL-LOAD-COM"
"VL-LOAD-REACTORS"
"VL-MEMBER-IF"
"VL-MEMBER-IF-NOT"
"VL-MKDIR"
"VL-NANP"
"VL-POSITION"
"VL-PRIN1-TO-STRING"
"VL-PRINC-TO-STRING"
"VL-PROPAGATE"
"VL-REGISTRY-DELETE"
"VL-REGISTRY-DESCENDENTS"
"VL-REGISTRY-READ"
"VL-REGISTRY-WRITE"
"VL-REMOVE"
"VL-REMOVE-IF"
"VL-REMOVE-IF-NOT"
"VL-SOME"
"VL-SORT"
"VL-SORT-I"
"VL-STRING->LIST"
"VL-STRING-ELT"
"VL-STRING-LEFT-TRIM"
"VL-STRING-MISMATCH"
"VL-STRING-POSITION"
"VL-STRING-RIGHT-TRIM"
"VL-STRING-SEARCH"
"VL-STRING-SUBST"
"VL-STRING-TRANSLATE"
"VL-STRING-TRIM"
"VL-SYMBOL-NAME"
"VL-SYMBOL-VALUE"
"VL-SYMBOLP"
"VL-UNLOAD-VLX"
"VL-VBALOAD"
"VL-VBARUN"
"VLARTS-INIT"
"VLAX-FOR"
"VLISP-DCLRES-LIST"
"VLISP-DCLRES-LOAD-DIALOG"
"VLISP-EXPORT-SYMBOL"
"VLISP-FASRES-LIST"
"VLISP-FASRES-LOAD"
"VLISP-IMPORT-EXSUBRS"
"VLISP-IMPORT-SYMBOL"
"VLISP-INIRES-LIST"
"VLX-LOADED-P"
"VMON"
"VPORTS"
"WCMATCH"
"WHILE"
"WRITE-CHAR"
"WRITE-LINE"
"XDROOM"
"XDSIZE"
"XSTRCASE"
"ZEROP"
"_VER"
"_VL-FAST-MODE"
"_VL-TIMES"
"_VLISP-VERSION"
"~"
)
)
(setq com-symbol-list
'(
":VLR-"
":VLR-ABORTATTACH"
":VLR-ABORTDEEPCLONE"
":VLR-ABORTDXFIN"
":VLR-ABORTDXFOUT"
":VLR-ABORTINSERT"
":VLR-ABORTRESTORE"
":VLR-ABORTWBLOCK"
":VLR-ACDB-REACTOR"
":VLR-BEGINATTACH"
":VLR-BEGINCLOSE"
":VLR-BEGINDEEPCLONE"
":VLR-BEGINDEEPCLONEXLATION"
":VLR-BEGINDOUBLECLICK"
":VLR-BEGINDWGOPEN"
":VLR-BEGINDXFIN"
":VLR-BEGINDXFOUT"
":VLR-BEGININSERT"
":VLR-BEGININSERTM"
":VLR-BEGINRESTORE"
":VLR-BEGINRIGHTCLICK"
":VLR-BEGINSAVE"
":VLR-BEGINWBLOCK"
":VLR-BEGINWBLOCKID"
":VLR-BEGINWBLOCKOBJECTS"
":VLR-BEGINWBLOCKPT"
":VLR-CANCELLED"
":VLR-COMANDEERED"
":VLR-COMMAND-REACTOR"
":VLR-COMMANDCANCELLED"
":VLR-COMMANDENDED"
":VLR-COMMANDFAILED"
":VLR-COMMANDWILLSTART"
":VLR-COPIED"
":VLR-DATABASECONSTRUCTED"
":VLR-DATABASETOBEDESTROYED"
":VLR-DEEPCLONE-REACTOR"
":VLR-DOCFRAMEMOVEDORRESIZED"
":VLR-DOCMANAGER-REACTOR"
":VLR-DOCUMENTBECAMECURRENT"
":VLR-DOCUMENTCREATED"
":VLR-DOCUMENTLOCKMODECHANGED"
":VLR-DOCUMENTLOCKMODECHANGEVETOED"
":VLR-DOCUMENTLOCKMODEWILLCHANGE"
":VLR-DOCUMENTTOBEACTIVATED"
":VLR-DOCUMENTTOBEDEACTIVATED"
":VLR-DOCUMENTTOBEDESTROYED"
":VLR-DWG-REACTOR"
":VLR-DWGFILEOPENED"
":VLR-DXF-REACTOR"
":VLR-DXFINCOMPLETE"
":VLR-DXFOUTCOMPLETE"
":VLR-EDITOR-REACTOR"
":VLR-ENDATTACH"
":VLR-ENDDEEPCLONE"
":VLR-ENDDWGOPEN"
":VLR-ENDINSERT"
":VLR-ENDRESTORE"
":VLR-ENDWBLOCK"
":VLR-ERASED"
":VLR-GOODBYE"
":VLR-INSERT-REACTOR"
":VLR-LAYOUTSWITCHED"
":VLR-LINKER-REACTOR"
":VLR-LISP-REACTOR"
":VLR-LISPCANCELLED"
":VLR-LISPENDED"
":VLR-LISPWILLSTART"
":VLR-MAINFRAMEMOVEDORRESIZED"
":VLR-MISCELLANEOUS-REACTOR"
":VLR-MODIFIED"
":VLR-MODIFIEDXDATA"
":VLR-MODIFYUNDONE"
":VLR-MOUSE-REACTOR"
":VLR-OBJECT-REACTOR"
":VLR-OBJECTAPPENDED"
":VLR-OBJECTCLOSED"
":VLR-OBJECTERASED"
":VLR-OBJECTMODIFIED"
":VLR-OBJECTOPENEDFORMODIFY"
":VLR-OBJECTREAPPENDED"
":VLR-OBJECTUNAPPENDED"
":VLR-OBJECTUNERASED"
":VLR-OPENEDFORMODIFY"
":VLR-OTHERATTACH"
":VLR-OTHERINSERT"
":VLR-OTHERWBLOCK"
":VLR-PICKFIRSTMODIFIED"
":VLR-REAPPENDED"
":VLR-REDIRECTED"
":VLR-RXAPPLOADED"
":VLR-RXAPPUNLOADED"
":VLR-SAVECOMPLETE"
":VLR-SUBOBJMODIFIED"
":VLR-SYSVAR-REACTOR"
":VLR-SYSVARCHANGED"
":VLR-SYSVARWILLCHANGE"
":VLR-TOOLBAR-REACTOR"
":VLR-TOOLBARBITMAPSIZECHANGED"
":VLR-TOOLBARBITMAPSIZEWILLCHANGE"
":VLR-UNAPPENDED"
":VLR-UNDO-REACTOR"
":VLR-UNDOSUBCOMMANDAUTO"
":VLR-UNDOSUBCOMMANDBACK"
":VLR-UNDOSUBCOMMANDBEGIN"
":VLR-UNDOSUBCOMMANDCONTROL"
":VLR-UNDOSUBCOMMANDEND"
":VLR-UNDOSUBCOMMANDMARK"
":VLR-UNDOSUBCOMMANDNUMBER"
":VLR-UNERASED"
":VLR-UNKNOWNCOMMAND"
":VLR-WBLOCK-REACTOR"
":VLR-WBLOCKNOTICE"
":VLR-WINDOW-REACTOR"
":VLR-XREF-REACTOR"
":VLR-XREFSUBCOMMANDATTACHITEM"
":VLR-XREFSUBCOMMANDBINDITEM"
":VLR-XREFSUBCOMMANDDETACHITEM"
":VLR-XREFSUBCOMMANDOVERLAYITEM"
":VLR-XREFSUBCOMMANDPATHITEM"
":VLR-XREFSUBCOMMANDRELOADITEM"
":VLR-XREFSUBCOMMANDUNLOADITEM"
"AC0DEGREES"
"AC100_1"
"AC10_1"
"AC180DEGREES"
"AC1FT_1FT"
"AC1IN_1FT"
"AC1_1"
"AC1_10"
"AC1_100"
"AC1_128IN_1FT"
"AC1_16"
"AC1_16IN_1FT"
"AC1_2"
"AC1_20"
"AC1_2IN_1FT"
"AC1_30"
"AC1_32IN_1FT"
"AC1_4"
"AC1_40"
"AC1_4IN_1FT"
"AC1_50"
"AC1_64IN_1FT"
"AC1_8"
"AC1_8IN_1FT"
"AC270DEGREES"
"AC2_1"
"AC3DFACE"
"AC3DPOLYLINE"
"AC3DSOLID"
"AC3IN_1FT"
"AC3_16IN_1FT"
"AC3_32IN_1FT"
"AC3_4IN_1FT"
"AC3_8IN_1FT"
"AC4_1"
"AC6IN_1FT"
"AC8_1"
"AC90DEGREES"
"ACABOVE"
"ACACTIVEVIEWPORT"
"ACALIGNMENTALIGNED"
"ACALIGNMENTBOTTOMCENTER"
"ACALIGNMENTBOTTOMLEFT"
"ACALIGNMENTBOTTOMRIGHT"
"ACALIGNMENTCENTER"
"ACALIGNMENTFIT"
"ACALIGNMENTLEFT"
"ACALIGNMENTMIDDLE"
"ACALIGNMENTMIDDLECENTER"
"ACALIGNMENTMIDDLELEFT"
"ACALIGNMENTMIDDLERIGHT"
"ACALIGNMENTRIGHT"
"ACALIGNMENTTOPCENTER"
"ACALIGNMENTTOPLEFT"
"ACALIGNMENTTOPRIGHT"
"ACALIGNPNTACQUISITIONAUTOMATIC"
"ACALIGNPNTACQUISITIONSHIFTTOACQUIRE"
"ACALLVIEWPORTS"
"ACARC"
"ACARCHITECTURAL"
"ACARROWARCHTICK"
"ACARROWBOXBLANK"
"ACARROWBOXFILLED"
"ACARROWCLOSED"
"ACARROWCLOSEDBLANK"
"ACARROWDATUMBLANK"
"ACARROWDATUMFILLED"
"ACARROWDEFAULT"
"ACARROWDOT"
"ACARROWDOTBLANK"
"ACARROWDOTSMALL"
"ACARROWINTEGRAL"
"ACARROWNONE"
"ACARROWOBLIQUE"
"ACARROWOPEN"
"ACARROWOPEN30"
"ACARROWOPEN90"
"ACARROWORIGIN"
"ACARROWORIGIN2"
"ACARROWSMALL"
"ACARROWSONLY"
"ACARROWUSERDEFINED"
"ACATTACHMENTPOINTBOTTOMCENTER"
"ACATTACHMENTPOINTBOTTOMLEFT"
"ACATTACHMENTPOINTBOTTOMRIGHT"
"ACATTACHMENTPOINTMIDDLECENTER"
"ACATTACHMENTPOINTMIDDLELEFT"
"ACATTACHMENTPOINTMIDDLERIGHT"
"ACATTACHMENTPOINTTOPCENTER"
"ACATTACHMENTPOINTTOPLEFT"
"ACATTACHMENTPOINTTOPRIGHT"
"ACATTRIBUTE"
"ACATTRIBUTEMODECONSTANT"
"ACATTRIBUTEMODEINVISIBLE"
"ACATTRIBUTEMODEPRESET"
"ACATTRIBUTEMODEVERIFY"
"ACATTRIBUTEREFERENCE"
"ACBASEMENUGROUP"
"ACBESTFIT"
"ACBEZIERSURFACEMESH"
"ACBLOCKREFERENCE"
"ACBLUE"
"ACBOTTOMTOTOP"
"ACBYBLOCK"
"ACBYLAYER"
"ACBYSTYLE"
"ACCENTERLINE"
"ACCENTERMARK"
"ACCENTERNONE"
"ACCIRCLE"
"ACCUBICSPLINE3DPOLY"
"ACCUBICSPLINEPOLY"
"ACCUBICSURFACEMESH"
"ACCYAN"
"ACDECIMAL"
"ACDEFAULTUNITS"
"ACDEGREEMINUTESECONDS"
"ACDEGREES"
"ACDEMANDLOADCMDINVOKE"
"ACDEMANDLOADDISABLED"
"ACDEMANDLOADENABLED"
"ACDEMANDLOADENABLEDWITHCOPY"
"ACDEMANDLOADONOBJECTDETECT"
"ACDEMANLOADDISABLE"
"ACDIAGONAL"
"ACDIM3POINTANGULAR"
"ACDIMALIGNED"
"ACDIMANGULAR"
"ACDIMARCHITECTURAL"
"ACDIMARCHITECTURALSTACKED"
"ACDIMDECIMAL"
"ACDIMDIAMETRIC"
"ACDIMENGINEERING"
"ACDIMFRACTIONAL"
"ACDIMFRACTIONALSTACKED"
"ACDIMLARCHITECTURAL"
"ACDIMLDECIMAL"
"ACDIMLENGINEERING"
"ACDIMLFRACTIONAL"
"ACDIMLINEWITHTEXT"
"ACDIMLSCIENTIFIC"
"ACDIMLWINDOWSDESKTOP"
"ACDIMORDINATE"
"ACDIMPRECISIONEIGHT"
"ACDIMPRECISIONFIVE"
"ACDIMPRECISIONFOUR"
"ACDIMPRECISIONONE"
"ACDIMPRECISIONSEVEN"
"ACDIMPRECISIONSIX"
"ACDIMPRECISIONTHREE"
"ACDIMPRECISIONTWO"
"ACDIMPRECISIONZERO"
"ACDIMRADIAL"
"ACDIMROTATED"
"ACDIMSCIENTIFIC"
"ACDIMWINDOWSDESKTOP"
"ACDISPLAY"
"ACDISPLAYDCS"
"ACDRAGDISPLAYAUTOMATICALLY"
"ACDRAGDISPLAYONREQUEST"
"ACDRAGDONOTDISPLAY"
"ACELLIPSE"
"ACENGINEERING"
"ACENGLISH"
"ACEXTENDBOTH"
"ACEXTENDNONE"
"ACEXTENDOTHERENTITY"
"ACEXTENDTHISENTITY"
"ACEXTENTS"
"ACEXTERNALREFERENCE"
"ACFALSE"
"ACFIRSTEXTENSIONLINE"
"ACFITCURVEPOLY"
"ACFONTBOLD"
"ACFONTBOLDITALIC"
"ACFONTITALIC"
"ACFONTREGULAR"
"ACFRACTIONAL"
"ACFULLPREVIEW"
"ACGRADS"
"ACGREEN"
"ACGROUP"
"ACHATCH"
"ACHATCHLOOPTYPEDEFAULT"
"ACHATCHLOOPTYPEDERIVED"
"ACHATCHLOOPTYPEEXTERNAL"
"ACHATCHLOOPTYPEPOLYLINE"
"ACHATCHLOOPTYPETEXTBOX"
"ACHATCHPATTERNTYPECUSTOMDEFINED"
"ACHATCHPATTERNTYPEPREDEFINED"
"ACHATCHPATTERNTYPEUSERDEFINED"
"ACHATCHSTYLEIGNORE"
"ACHATCHSTYLENORMAL"
"ACHATCHSTYLEOUTER"
"ACHORIZONTAL"
"ACHORIZONTALALIGNMENTALIGNED"
"ACHORIZONTALALIGNMENTCENTER"
"ACHORIZONTALALIGNMENTFIT"
"ACHORIZONTALALIGNMENTLEFT"
"ACHORIZONTALALIGNMENTMIDDLE"
"ACHORIZONTALALIGNMENTRIGHT"
"ACHORZCENTERED"
"ACINCHES"
"ACINSERTUNITSANGSTROMS"
"ACINSERTUNITSASTRONOMICALUNITS"
"ACINSERTUNITSAUTOASSIGN"
"ACINSERTUNITSCENTIMETERS"
"ACINSERTUNITSDECAMETERS"
"ACINSERTUNITSDECIMETERS"
"ACINSERTUNITSFEET"
"ACINSERTUNITSGIGAMETERS"
"ACINSERTUNITSHECTOMETERS"
"ACINSERTUNITSINCHES"
"ACINSERTUNITSKILOMETERS"
"ACINSERTUNITSLIGHTYEARS"
"ACINSERTUNITSMETERS"
"ACINSERTUNITSMICROINCHES"
"ACINSERTUNITSMICRONS"
"ACINSERTUNITSMILES"
"ACINSERTUNITSMILLIMETERS"
"ACINSERTUNITSMILS"
"ACINSERTUNITSNANOMETERS"
"ACINSERTUNITSPARSECS"
"ACINSERTUNITSPROMPT"
"ACINSERTUNITSUNITLESS"
"ACINSERTUNITSYARDS"
"ACINTERSECTION"
"ACJIS"
"ACKEYBOARDENTRY"
"ACKEYBOARDENTRYEXCEPTSCRIPTS"
"ACKEYBOARDRUNNINGOBJSNAP"
"ACLAYOUT"
"ACLEADER"
"ACLEFTTORIGHT"
"ACLIMITS"
"ACLINE"
"ACLINENOARROW"
"ACLINESPACINGSTYLEATLEAST"
"ACLINESPACINGSTYLEEXACTLY"
"ACLINEWITHARROW"
"ACLNWT000"
"ACLNWT005"
"ACLNWT009"
"ACLNWT013"
"ACLNWT015"
"ACLNWT018"
"ACLNWT020"
"ACLNWT025"
"ACLNWT030"
"ACLNWT035"
"ACLNWT040"
"ACLNWT050"
"ACLNWT053"
"ACLNWT060"
"ACLNWT070"
"ACLNWT080"
"ACLNWT090"
"ACLNWT100"
"ACLNWT106"
"ACLNWT120"
"ACLNWT140"
"ACLNWT158"
"ACLNWT200"
"ACLNWT211"
"ACLNWTBYBLOCK"
"ACLNWTBYLAYER"
"ACLNWTBYLWDEFAULT"
"ACMAGENTA"
"ACMAX"
"ACMENUFILECOMPILED"
"ACMENUFILESOURCE"
"ACMENUITEM"
"ACMENUSEPARATOR"
"ACMENUSUBMENU"
"ACMETRIC"
"ACMILLIMETERS"
"ACMIN"
"ACMINSERTBLOCK"
"ACMLINE"
"ACMODELSPACE"
"ACMOVETEXTADDLEADER"
"ACMOVETEXTNOLEADER"
"ACMTEXT"
"ACNATIVE"
"ACNORM"
"ACNOTSTACKED"
"ACOFF"
"ACON"
"ACOQGRAPHICS"
"ACOQHIGHPHOTO"
"ACOQLINEART"
"ACOQPHOTO"
"ACOQTEXT"
"ACOUTSIDE"
"ACOVERFIRSTEXTENSION"
"ACOVERSECONDEXTENSION"
"ACPALETTEBYDRAWING"
"ACPALETTEBYSESSION"
"ACPAPERSPACE"
"ACPAPERSPACEDCS"
"ACPARTIALMENUGROUP"
"ACPARTIALPREVIEW"
"ACPENWIDTH013"
"ACPENWIDTH018"
"ACPENWIDTH025"
"ACPENWIDTH035"
"ACPENWIDTH050"
"ACPENWIDTH070"
"ACPENWIDTH100"
"ACPENWIDTH140"
"ACPENWIDTH200"
"ACPENWIDTHUNK"
"ACPIXELS"
"ACPLOTORIENTATIONLANDSCAPE"
"ACPLOTORIENTATIONPORTRAIT"
"ACPOINT"
"ACPOLICYLEGACYDEFAULT"
"ACPOLICYLEGACYLEGACY"
"ACPOLICYLEGACYQUERY"
"ACPOLICYNEWDEFAULT"
"ACPOLICYNEWLEGACY"
"ACPOLYFACEMESH"
"ACPOLYLINE"
"ACPOLYLINELIGHT"
"ACPOLYMESH"
"ACPREFERENCECLASSIC"
"ACPREFERENCECUSTOM"
"ACPRINTERALERTONCE"
"ACPRINTERALWAYSALERT"
"ACPRINTERNEVERALERT"
"ACPRINTERNEVERALERTLOGONCE"
"ACPROXYBOUNDINGBOX"
"ACPROXYNOTSHOW"
"ACPROXYSHOW"
"ACPVIEWPORT"
"ACQUADSPLINE3DPOLY"
"ACQUADSPLINEPOLY"
"ACQUADSURFACEMESH"
"ACR12_DXF"
"ACR13_DWG"
"ACR13_DXF"
"ACR14_DWG"
"ACR14_DXF"
"ACR15_DWG"
"ACR15_DXF"
"ACR15_TEMPLATE"
"ACRADIANS"
"ACRASTER"
"ACRAY"
"ACRED"
"ACREGION"
"ACRIGHTTOLEFT"
"ACSCALETOFIT"
"ACSCIENTIFIC"
"ACSECONDEXTENSIONLINE"
"ACSELECTIONSETALL"
"ACSELECTIONSETCROSSING"
"ACSELECTIONSETCROSSINGPOLYGON"
"ACSELECTIONSETFENCE"
"ACSELECTIONSETLAST"
"ACSELECTIONSETPREVIOUS"
"ACSELECTIONSETWINDOW"
"ACSELECTIONSETWINDOWPOLYGON"
"ACSHAPE"
"ACSIMPLE3DPOLY"
"ACSIMPLEMESH"
"ACSIMPLEPOLY"
"ACSOLID"
"ACSPLINE"
"ACSPLINENOARROW"
"ACSPLINEWITHARROW"
"ACSUBTRACTION"
"ACTEXT"
"ACTEXTANDARROWS"
"ACTEXTFLAGBACKWARD"
"ACTEXTFLAGUPSIDEDOWN"
"ACTEXTONLY"
"ACTOLBASIC"
"ACTOLBOTTOM"
"ACTOLDEVIATION"
"ACTOLERANCE"
"ACTOLLIMITS"
"ACTOLMIDDLE"
"ACTOLNONE"
"ACTOLSYMMETRICAL"
"ACTOLTOP"
"ACTOOLBARBUTTON"
"ACTOOLBARCONTROL"
"ACTOOLBARDOCKBOTTOM"
"ACTOOLBARDOCKLEFT"
"ACTOOLBARDOCKRIGHT"
"ACTOOLBARDOCKTOP"
"ACTOOLBARFLOATING"
"ACTOOLBARFLYOUT"
"ACTOOLBARSEPARATOR"
"ACTOPTOBOTTOM"
"ACTRACE"
"ACTRUE"
"ACUCS"
"ACUNION"
"ACUNKNOWN"
"ACVERTCENTERED"
"ACVERTICALALIGNMENTBASELINE"
"ACVERTICALALIGNMENTBOTTOM"
"ACVERTICALALIGNMENTMIDDLE"
"ACVERTICALALIGNMENTTOP"
"ACVIEW"
"ACVIEWPORT2HORIZONTAL"
"ACVIEWPORT2VERTICAL"
"ACVIEWPORT3ABOVE"
"ACVIEWPORT3BELOW"
"ACVIEWPORT3HORIZONTAL"
"ACVIEWPORT3LEFT"
"ACVIEWPORT3RIGHT"
"ACVIEWPORT3VERTICAL"
"ACVIEWPORT4"
"ACVP100_1"
"ACVP10_1"
"ACVP1FT_1FT"
"ACVP1IN_1FT"
"ACVP1_1"
"ACVP1_10"
"ACVP1_100"
"ACVP1_128IN_1FT"
"ACVP1_16"
"ACVP1_16IN_1FT"
"ACVP1_2"
"ACVP1_20"
"ACVP1_2IN_1FT"
"ACVP1_30"
"ACVP1_32IN_1FT"
"ACVP1_4"
"ACVP1_40"
"ACVP1_4IN_1FT"
"ACVP1_50"
"ACVP1_64IN_1FT"
"ACVP1_8"
"ACVP1_8IN_1FT"
"ACVP2_1"
"ACVP3IN_1FT"
"ACVP3_16IN_1FT"
"ACVP3_32IN_1FT"
"ACVP3_4IN_1FT"
"ACVP3_8IN_1FT"
"ACVP4_1"
"ACVP6IN_1FT"
"ACVP8_1"
"ACVPCUSTOMSCALE"
"ACVPSCALETOFIT"
"ACWHITE"
"ACWINDOW"
"ACWORLD"
"ACXLINE"
"ACYELLOW"
"ACZOOMSCALEDABSOLUTE"
"ACZOOMSCALEDRELATIVE"
"ACZOOMSCALEDRELATIVEPSPACE"
"SAFEARRAY"
"SAFEARRAY-GET-DIM"
"SAFEARRAY-GET-ELEMENT"
"SAFEARRAY-GET-L-BOUND"
"SAFEARRAY-GET-U-BOUND"
"SAFEARRAY-PUT-ELEMENT"
"SAFEARRAY-TYPE"
"SAFEARRAY-VALUE"
"VARIANT"
"VARIANT-TYPE"
"VARIANT-VALUE"
"VLA-ACTIVATE"
"VLA-ADD"
"VLA-ADD3DFACE"
"VLA-ADD3DMESH"
"VLA-ADD3DPOLY"
"VLA-ADDARC"
"VLA-ADDATTRIBUTE"
"VLA-ADDBOX"
"VLA-ADDCIRCLE"
"VLA-ADDCONE"
"VLA-ADDCUSTOMOBJECT"
"VLA-ADDCYLINDER"
"VLA-ADDDIM3POINTANGULAR"
"VLA-ADDDIMALIGNED"
"VLA-ADDDIMANGULAR"
"VLA-ADDDIMDIAMETRIC"
"VLA-ADDDIMORDINATE"
"VLA-ADDDIMRADIAL"
"VLA-ADDDIMROTATED"
"VLA-ADDELLIPSE"
"VLA-ADDELLIPTICALCONE"
"VLA-ADDELLIPTICALCYLINDER"
"VLA-ADDEXTRUDEDSOLID"
"VLA-ADDEXTRUDEDSOLIDALONGPATH"
"VLA-ADDFITPOINT"
"VLA-ADDHATCH"
"VLA-ADDITEMS"
"VLA-ADDLEADER"
"VLA-ADDLIGHTWEIGHTPOLYLINE"
"VLA-ADDLINE"
"VLA-ADDMENUITEM"
"VLA-ADDMINSERTBLOCK"
"VLA-ADDMLINE"
"VLA-ADDMTEXT"
"VLA-ADDOBJECT"
"VLA-ADDPOINT"
"VLA-ADDPOLYFACEMESH"
"VLA-ADDPOLYLINE"
"VLA-ADDPVIEWPORT"
"VLA-ADDRASTER"
"VLA-ADDRAY"
"VLA-ADDREGION"
"VLA-ADDREVOLVEDSOLID"
"VLA-ADDSEPARATOR"
"VLA-ADDSHAPE"
"VLA-ADDSOLID"
"VLA-ADDSPHERE"
"VLA-ADDSPLINE"
"VLA-ADDSUBMENU"
"VLA-ADDTEXT"
"VLA-ADDTOLERANCE"
"VLA-ADDTOOLBARBUTTON"
"VLA-ADDTORUS"
"VLA-ADDTRACE"
"VLA-ADDVERTEX"
"VLA-ADDWEDGE"
"VLA-ADDXLINE"
"VLA-ADDXRECORD"
"VLA-ANGLEFROMXAXIS"
"VLA-ANGLETOREAL"
"VLA-ANGLETOSTRING"
"VLA-APPENDINNERLOOP"
"VLA-APPENDITEMS"
"VLA-APPENDOUTERLOOP"
"VLA-APPENDVERTEX"
"VLA-ARRAYPOLAR"
"VLA-ARRAYRECTANGULAR"
"VLA-ATTACHEXTERNALREFERENCE"
"VLA-ATTACHTOOLBARTOFLYOUT"
"VLA-AUDITINFO"
"VLA-BIND"
"VLA-BOOLEAN"
"VLA-CHECKINTERFERENCE"
"VLA-CLEAR"
"VLA-CLIPBOUNDARY"
"VLA-CLOSE"
"VLA-COPY"
"VLA-COPYFROM"
"VLA-CREATETYPEDARRAY"
"VLA-DELETE"
"VLA-DELETEFITPOINT"
"VLA-DELETEPROFILE"
"VLA-DETACH"
"VLA-DISPLAY"
"VLA-DISPLAYPLOTPREVIEW"
"VLA-DISTANCETOREAL"
"VLA-DOCK"
"VLA-ELEVATEORDER"
"VLA-ENDUNDOMARK"
"VLA-ERASE"
"VLA-EVAL"
"VLA-EVALUATE"
"VLA-EXPLODE"
"VLA-EXPORT"
"VLA-EXPORTPROFILE"
"VLA-FLOAT"
"VLA-GET-ACTIVE"
"VLA-GET-ACTIVEDIMSTYLE"
"VLA-GET-ACTIVEDOCUMENT"
"VLA-GET-ACTIVELAYER"
"VLA-GET-ACTIVELAYOUT"
"VLA-GET-ACTIVELINETYPE"
"VLA-GET-ACTIVEPROFILE"
"VLA-GET-ACTIVEPVIEWPORT"
"VLA-GET-ACTIVESELECTIONSET"
"VLA-GET-ACTIVESPACE"
"VLA-GET-ACTIVETEXTSTYLE"
"VLA-GET-ACTIVEUCS"
"VLA-GET-ACTIVEVIEWPORT"
"VLA-GET-ALIGNMENT"
"VLA-GET-ALIGNMENTPOINTACQUISITION"
"VLA-GET-ALLOWLONGSYMBOLNAMES"
"VLA-GET-ALTFONTFILE"
"VLA-GET-ALTROUNDDISTANCE"
"VLA-GET-ALTSUPPRESSLEADINGZEROS"
"VLA-GET-ALTSUPPRESSTRAILINGZEROS"
"VLA-GET-ALTSUPPRESSZEROFEET"
"VLA-GET-ALTSUPPRESSZEROINCHES"
"VLA-GET-ALTTABLETMENUFILE"
"VLA-GET-ALTTEXTPREFIX"
"VLA-GET-ALTTEXTSUFFIX"
"VLA-GET-ALTTOLERANCEPRECISION"
"VLA-GET-ALTTOLERANCESUPPRESSLEADINGZEROS"
"VLA-GET-ALTTOLERANCESUPPRESSTRAILINGZEROS"
"VLA-GET-ALTTOLERANCESUPPRESSZEROFEET"
"VLA-GET-ALTTOLERANCESUPPRESSZEROINCHES"
"VLA-GET-ALTUNITS"
"VLA-GET-ALTUNITSFORMAT"
"VLA-GET-ALTUNITSPRECISION"
"VLA-GET-ALTUNITSSCALE"
"VLA-GET-ANGLE"
"VLA-GET-ANGLEFORMAT"
"VLA-GET-ANGLEVERTEX"
"VLA-GET-ANNOTATION"
"VLA-GET-APPLICATION"
"VLA-GET-ARCLENGTH"
"VLA-GET-ARCSMOOTHNESS"
"VLA-GET-AREA"
"VLA-GET-ARROWHEAD1BLOCK"
"VLA-GET-ARROWHEAD1TYPE"
"VLA-GET-ARROWHEAD2BLOCK"
"VLA-GET-ARROWHEAD2TYPE"
"VLA-GET-ARROWHEADBLOCK"
"VLA-GET-ARROWHEADSIZE"
"VLA-GET-ARROWHEADTYPE"
"VLA-GET-ASSOCIATIVEHATCH"
"VLA-GET-ATTACHMENTPOINT"
"VLA-GET-AUTOAUDIT"
"VLA-GET-AUTOSAVEINTERVAL"
"VLA-GET-AUTOSAVEPATH"
"VLA-GET-AUTOSNAPAPERTURE"
"VLA-GET-AUTOSNAPAPERTURESIZE"
"VLA-GET-AUTOSNAPMAGNET"
"VLA-GET-AUTOSNAPMARKER"
"VLA-GET-AUTOSNAPMARKERCOLOR"
"VLA-GET-AUTOSNAPMARKERSIZE"
"VLA-GET-AUTOSNAPTOOLTIP"
"VLA-GET-AUTOTRACKINGVECCOLOR"
"VLA-GET-AUTOTRACKTOOLTIP"
"VLA-GET-BACKWARD"
"VLA-GET-BASEPOINT"
"VLA-GET-BATCHPLOTPROGRESS"
"VLA-GET-BEEPONERROR"
"VLA-GET-BIGFONTFILE"
"VLA-GET-BLOCK"
"VLA-GET-BLOCKS"
"VLA-GET-BRIGHTNESS"
"VLA-GET-CANONICALMEDIANAME"
"VLA-GET-CAPTION"
"VLA-GET-CEINSERTUNITS"
"VLA-GET-CEINSERTUNITSACTION"
"VLA-GET-CELOADPALETTE"
"VLA-GET-CENTER"
"VLA-GET-CENTERMARKSIZE"
"VLA-GET-CENTERPLOT"
"VLA-GET-CENTERTYPE"
"VLA-GET-CENTROID"
"VLA-GET-CHECK"
"VLA-GET-CIRCUMFERENCE"
"VLA-GET-CLIPPED"
"VLA-GET-CLIPPINGENABLED"
"VLA-GET-CLOSED"
"VLA-GET-COLOR"
"VLA-GET-COLUMNS"
"VLA-GET-COLUMNSPACING"
"VLA-GET-CONFIGFILE"
"VLA-GET-CONFIGNAME"
"VLA-GET-CONSTANT"
"VLA-GET-CONSTANTWIDTH"
"VLA-GET-CONTOURLINESPERSURFACE"
"VLA-GET-CONTRAST"
"VLA-GET-CONTROLPOINTS"
"VLA-GET-COORDINATE"
"VLA-GET-COORDINATES"
"VLA-GET-COUNT"
"VLA-GET-CREATEBACKUP"
"VLA-GET-CURSORSIZE"
"VLA-GET-CUSTOMDICTIONARY"
"VLA-GET-CUSTOMSCALE"
"VLA-GET-DATABASE"
"VLA-GET-DECIMALSEPARATOR"
"VLA-GET-DEFAULTINTERNETURL"
"VLA-GET-DEFAULTOUTPUTDEVICE"
"VLA-GET-DEFAULTPLOTSTYLEFORLAYERS"
"VLA-GET-DEFAULTPLOTSTYLEFOROBJECTS"
"VLA-GET-DEGREE"
"VLA-GET-DELTA"
"VLA-GET-DEMANDLOADARXAPP"
"VLA-GET-DESCRIPTION"
"VLA-GET-DIAMETER"
"VLA-GET-DICTIONARIES"
"VLA-GET-DIMENSIONLINECOLOR"
"VLA-GET-DIMENSIONLINEEXTEND"
"VLA-GET-DIMENSIONLINEWEIGHT"
"VLA-GET-DIMLINE1SUPPRESS"
"VLA-GET-DIMLINE2SUPPRESS"
"VLA-GET-DIMLINEINSIDE"
"VLA-GET-DIMLINESUPPRESS"
"VLA-GET-DIMSTYLES"
"VLA-GET-DIRECTION"
"VLA-GET-DIRECTIONVECTOR"
"VLA-GET-DISPLAY"
"VLA-GET-DISPLAYDRAGGEDOBJECT"
"VLA-GET-DISPLAYGRIPS"
"VLA-GET-DISPLAYGRIPSWITHINBLOCKS"
"VLA-GET-DISPLAYLAYOUTTABS"
"VLA-GET-DISPLAYLOCKED"
"VLA-GET-DISPLAYOLESCALE"
"VLA-GET-DISPLAYSCREENMENU"
"VLA-GET-DISPLAYSCROLLBARS"
"VLA-GET-DISPLAYSILHOUETTE"
"VLA-GET-DOCKEDVISIBLELINES"
"VLA-GET-DOCKSTATUS"
"VLA-GET-DOCUMENTS"
"VLA-GET-DRAFTING"
"VLA-GET-DRAWINGDIRECTION"
"VLA-GET-DRIVERSPATH"
"VLA-GET-ELEVATION"
"VLA-GET-ELEVATIONMODELSPACE"
"VLA-GET-ELEVATIONPAPERSPACE"
"VLA-GET-ENABLE"
"VLA-GET-ENABLESTARTUPDIALOG"
"VLA-GET-ENDANGLE"
"VLA-GET-ENDPARAMETER"
"VLA-GET-ENDPOINT"
"VLA-GET-ENDTANGENT"
"VLA-GET-EXTENSIONLINECOLOR"
"VLA-GET-EXTENSIONLINEEXTEND"
"VLA-GET-EXTENSIONLINEOFFSET"
"VLA-GET-EXTENSIONLINEWEIGHT"
"VLA-GET-EXTLINE1ENDPOINT"
"VLA-GET-EXTLINE1POINT"
"VLA-GET-EXTLINE1STARTPOINT"
"VLA-GET-EXTLINE1SUPPRESS"
"VLA-GET-EXTLINE2ENDPOINT"
"VLA-GET-EXTLINE2POINT"
"VLA-GET-EXTLINE2STARTPOINT"
"VLA-GET-EXTLINE2SUPPRESS"
"VLA-GET-FADE"
"VLA-GET-FIELDLENGTH"
"VLA-GET-FILES"
"VLA-GET-FIT"
"VLA-GET-FITPOINTS"
"VLA-GET-FITTOLERANCE"
"VLA-GET-FLOATINGROWS"
"VLA-GET-FLYOUT"
"VLA-GET-FONTFILE"
"VLA-GET-FONTFILEMAP"
"VLA-GET-FORCELINEINSIDE"
"VLA-GET-FRACTIONFORMAT"
"VLA-GET-FREEZE"
"VLA-GET-FULLCRCVALIDATION"
"VLA-GET-FULLNAME"
"VLA-GET-FULLSCREENTRACKINGVECTOR"
"VLA-GET-GRAPHICSWINLAYOUTBACKGRNDCOLOR"
"VLA-GET-GRAPHICSWINMODELBACKGRNDCOLOR"
"VLA-GET-GRIDON"
"VLA-GET-GRIPCOLORSELECTED"
"VLA-GET-GRIPCOLORUNSELECTED"
"VLA-GET-GRIPSIZE"
"VLA-GET-GROUPS"
"VLA-GET-HANDLE"
"VLA-GET-HASATTRIBUTES"
"VLA-GET-HASEXTENSIONDICTIONARY"
"VLA-GET-HATCHSTYLE"
"VLA-GET-HEIGHT"
"VLA-GET-HELPFILEPATH"
"VLA-GET-HELPSTRING"
"VLA-GET-HISTORYLINES"
"VLA-GET-HORIZONTALTEXTPOSITION"
"VLA-GET-HWND"
"VLA-GET-HYPERLINKDISPLAYCURSOR"
"VLA-GET-HYPERLINKDISPLAYTOOLTIP"
"VLA-GET-HYPERLINKS"
"VLA-GET-IMAGEFILE"
"VLA-GET-IMAGEFRAMEHIGHLIGHT"
"VLA-GET-IMAGEHEIGHT"
"VLA-GET-IMAGEVISIBILITY"
"VLA-GET-IMAGEWIDTH"
"VLA-GET-INCREMENTALSAVEPERCENT"
"VLA-GET-INDEX"
"VLA-GET-INSERTIONPOINT"
"VLA-GET-INVISIBLE"
"VLA-GET-ISLAYOUT"
"VLA-GET-ISOPENWIDTH"
"VLA-GET-ISPERIODIC"
"VLA-GET-ISPLANAR"
"VLA-GET-ISRATIONAL"
"VLA-GET-ISXREF"
"VLA-GET-KEYBOARDACCELERATOR"
"VLA-GET-KEYBOARDPRIORITY"
"VLA-GET-KNOTS"
"VLA-GET-LABEL"
"VLA-GET-LARGEBUTTONS"
"VLA-GET-LASTHEIGHT"
"VLA-GET-LAYER"
"VLA-GET-LAYERON"
"VLA-GET-LAYERS"
"VLA-GET-LAYOUT"
"VLA-GET-LAYOUTCREATEVIEWPORT"
"VLA-GET-LAYOUTCROSSHAIRCOLOR"
"VLA-GET-LAYOUTDISPLAYMARGINS"
"VLA-GET-LAYOUTDISPLAYPAPER"
"VLA-GET-LAYOUTDISPLAYPAPERSHADOW"
"VLA-GET-LAYOUTS"
"VLA-GET-LAYOUTSHOWPLOTSETUP"
"VLA-GET-LEADERLENGTH"
"VLA-GET-LEFT"
"VLA-GET-LEGACYSTYLESHEET"
"VLA-GET-LENGTH"
"VLA-GET-LENSLENGTH"
"VLA-GET-LICENSESERVER"
"VLA-GET-LIMITS"
"VLA-GET-LINEARSCALEFACTOR"
"VLA-GET-LINESPACINGFACTOR"
"VLA-GET-LINESPACINGSTYLE"
"VLA-GET-LINETYPE"
"VLA-GET-LINETYPEGENERATION"
"VLA-GET-LINETYPES"
"VLA-GET-LINETYPESCALE"
"VLA-GET-LINEWEIGHT"
"VLA-GET-LOCALEID"
"VLA-GET-LOCK"
"VLA-GET-LOGFILEON"
"VLA-GET-LOGFILEPATH"
"VLA-GET-LOWERLEFTCORNER"
"VLA-GET-MACRO"
"VLA-GET-MAINDICTIONARY"
"VLA-GET-MAJORAXIS"
"VLA-GET-MAJORRADIUS"
"VLA-GET-MAXACTIVEVIEWPORTS"
"VLA-GET-MAXAUTOCADWINDOW"
"VLA-GET-MAXNUMOFSYMBOLS"
"VLA-GET-MCLOSE"
"VLA-GET-MDENSITY"
"VLA-GET-MEASUREMENT"
"VLA-GET-MEASUREMENTUNITS"
"VLA-GET-MENUBAR"
"VLA-GET-MENUFILE"
"VLA-GET-MENUFILENAME"
"VLA-GET-MENUGROUPS"
"VLA-GET-MENUS"
"VLA-GET-MINORAXIS"
"VLA-GET-MINORRADIUS"
"VLA-GET-MODE"
"VLA-GET-MODELCROSSHAIRCOLOR"
"VLA-GET-MODELSPACE"
"VLA-GET-MODELTYPE"
"VLA-GET-MOMENTOFINERTIA"
"VLA-GET-MONOCHROMEVECTORS"
"VLA-GET-MRUNUMBER"
"VLA-GET-MSPACE"
"VLA-GET-MVERTEXCOUNT"
"VLA-GET-NAME"
"VLA-GET-NAMENOMNEMONIC"
"VLA-GET-NCLOSE"
"VLA-GET-NDENSITY"
"VLA-GET-NORMAL"
"VLA-GET-NUMBEROFCONTROLPOINTS"
"VLA-GET-NUMBEROFCOPIES"
"VLA-GET-NUMBEROFFACES"
"VLA-GET-NUMBEROFFITPOINTS"
"VLA-GET-NUMBEROFLOOPS"
"VLA-GET-NUMBEROFVERTICES"
"VLA-GET-NVERTEXCOUNT"
"VLA-GET-OBJECTARXPATH"
"VLA-GET-OBJECTID"
"VLA-GET-OBJECTNAME"
"VLA-GET-OBJECTSNAPMODE"
"VLA-GET-OBJECTSORTBYPLOTTING"
"VLA-GET-OBJECTSORTBYPSOUTPUT"
"VLA-GET-OBJECTSORTBYREDRAWS"
"VLA-GET-OBJECTSORTBYREGENS"
"VLA-GET-OBJECTSORTBYSELECTION"
"VLA-GET-OBJECTSORTBYSNAP"
"VLA-GET-OBLIQUEANGLE"
"VLA-GET-OLELAUNCH"
"VLA-GET-OLEQUALITY"
"VLA-GET-ONMENUBAR"
"VLA-GET-OPENSAVE"
"VLA-GET-ORIGIN"
"VLA-GET-ORTHOENABLED"
"VLA-GET-ORTHOON"
"VLA-GET-OUTPUT"
"VLA-GET-PAPERSPACE"
"VLA-GET-PAPERUNITS"
"VLA-GET-PARENT"
"VLA-GET-PATH"
"VLA-GET-PATTERNANGLE"
"VLA-GET-PATTERNDOUBLE"
"VLA-GET-PATTERNNAME"
"VLA-GET-PATTERNSCALE"
"VLA-GET-PATTERNSPACE"
"VLA-GET-PATTERNTYPE"
"VLA-GET-PERIMETER"
"VLA-GET-PICKADD"
"VLA-GET-PICKAUTO"
"VLA-GET-PICKBOXSIZE"
"VLA-GET-PICKDRAG"
"VLA-GET-PICKFIRST"
"VLA-GET-PICKFIRSTSELECTIONSET"
"VLA-GET-PICKGROUP"
"VLA-GET-PLOT"
"VLA-GET-PLOTCONFIGURATIONS"
"VLA-GET-PLOTHIDDEN"
"VLA-GET-PLOTLEGACY"
"VLA-GET-PLOTORIGIN"
"VLA-GET-PLOTPOLICYFORLEGACYDWGS"
"VLA-GET-PLOTPOLICYFORNEWDWGS"
"VLA-GET-PLOTROTATION"
"VLA-GET-PLOTSTYLENAME"
"VLA-GET-PLOTSTYLESHEET"
"VLA-GET-PLOTTABLE"
"VLA-GET-PLOTTYPE"
"VLA-GET-PLOTVIEWPORTBORDERS"
"VLA-GET-PLOTVIEWPORTSFIRST"
"VLA-GET-PLOTWITHLINEWEIGHTS"
"VLA-GET-PLOTWITHPLOTSTYLES"
"VLA-GET-POLARTRACKINGVECTOR"
"VLA-GET-POSTSCRIPTPROLOGFILE"
"VLA-GET-PREFERENCES"
"VLA-GET-PRESET"
"VLA-GET-PRIMARYUNITSPRECISION"
"VLA-GET-PRINCIPALDIRECTIONS"
"VLA-GET-PRINCIPALMOMENTS"
"VLA-GET-PRINTERCONFIGPATH"
"VLA-GET-PRINTERDESCPATH"
"VLA-GET-PRINTERPAPERSIZEALERT"
"VLA-GET-PRINTERSPOOLALERT"
"VLA-GET-PRINTERSTYLESHEETPATH"
"VLA-GET-PRINTFILE"
"VLA-GET-PRINTSPOOLERPATH"
"VLA-GET-PRINTSPOOLEXECUTABLE"
"VLA-GET-PRODUCTOFINERTIA"
"VLA-GET-PROFILES"
"VLA-GET-PROMPTSTRING"
"VLA-GET-PROXYIMAGE"
"VLA-GET-QUIETERRORMODE"
"VLA-GET-RADIIOFGYRATION"
"VLA-GET-RADIUS"
"VLA-GET-RADIUSRATIO"
"VLA-GET-READONLY"
"VLA-GET-REGISTEREDAPPLICATIONS"
"VLA-GET-REMOVEHIDDENLINES"
"VLA-GET-RENDERSMOOTHNESS"
"VLA-GET-ROTATION"
"VLA-GET-ROUNDDISTANCE"
"VLA-GET-ROWS"
"VLA-GET-ROWSPACING"
"VLA-GET-SAVEASTYPE"
"VLA-GET-SAVED"
"VLA-GET-SAVEPREVIEWTHUMBNAIL"
"VLA-GET-SCALEFACTOR"
"VLA-GET-SCALELINEWEIGHTS"
"VLA-GET-SECONDPOINT"
"VLA-GET-SEGMENTPERPOLYLINE"
"VLA-GET-SELECTION"
"VLA-GET-SELECTIONSETS"
"VLA-GET-SHORTCUTMENU"
"VLA-GET-SHOWPLOTSTYLES"
"VLA-GET-SHOWPROXYDIALOGBOX"
"VLA-GET-SHOWRASTERIMAGE"
"VLA-GET-SHOWWARNINGMESSAGES"
"VLA-GET-SINGLEDOCUMENTMODE"
"VLA-GET-SNAPBASEPOINT"
"VLA-GET-SNAPON"
"VLA-GET-SNAPROTATIONANGLE"
"VLA-GET-SOLIDCHECK"
"VLA-GET-SOLIDFILL"
"VLA-GET-STANDARDSCALE"
"VLA-GET-STARTANGLE"
"VLA-GET-STARTPARAMETER"
"VLA-GET-STARTPOINT"
"VLA-GET-STARTTANGENT"
"VLA-GET-STATUSID"
"VLA-GET-STORESQLINDEX"
"VLA-GET-STYLENAME"
"VLA-GET-STYLESHEET"
"VLA-GET-SUBMENU"
"VLA-GET-SUPPORTPATH"
"VLA-GET-SUPPRESSLEADINGZEROS"
"VLA-GET-SUPPRESSTRAILINGZEROS"
"VLA-GET-SUPPRESSZEROFEET"
"VLA-GET-SUPPRESSZEROINCHES"
"VLA-GET-SYSTEM"
"VLA-GET-TABLESREADONLY"
"VLA-GET-TABORDER"
"VLA-GET-TAGSTRING"
"VLA-GET-TARGET"
"VLA-GET-TEMPFILEEXTENSION"
"VLA-GET-TEMPFILEPATH"
"VLA-GET-TEMPLATEDWGPATH"
"VLA-GET-TEMPXREFPATH"
"VLA-GET-TEXTALIGNMENTPOINT"
"VLA-GET-TEXTCOLOR"
"VLA-GET-TEXTEDITOR"
"VLA-GET-TEXTFONT"
"VLA-GET-TEXTFONTSIZE"
"VLA-GET-TEXTFONTSTYLE"
"VLA-GET-TEXTFRAMEDISPLAY"
"VLA-GET-TEXTGAP"
"VLA-GET-TEXTGENERATIONFLAG"
"VLA-GET-TEXTHEIGHT"
"VLA-GET-TEXTINSIDE"
"VLA-GET-TEXTINSIDEALIGN"
"VLA-GET-TEXTMOVEMENT"
"VLA-GET-TEXTOUTSIDEALIGN"
"VLA-GET-TEXTOVERRIDE"
"VLA-GET-TEXTPOSITION"
"VLA-GET-TEXTPRECISION"
"VLA-GET-TEXTPREFIX"
"VLA-GET-TEXTROTATION"
"VLA-GET-TEXTSTRING"
"VLA-GET-TEXTSTYLE"
"VLA-GET-TEXTSTYLES"
"VLA-GET-TEXTSUFFIX"
"VLA-GET-TEXTUREMAPPATH"
"VLA-GET-TEXTWINBACKGRNDCOLOR"
"VLA-GET-TEXTWINTEXTCOLOR"
"VLA-GET-THICKNESS"
"VLA-GET-TOLERANCEDISPLAY"
"VLA-GET-TOLERANCEHEIGHTSCALE"
"VLA-GET-TOLERANCEJUSTIFICATION"
"VLA-GET-TOLERANCELOWERLIMIT"
"VLA-GET-TOLERANCEPRECISION"
"VLA-GET-TOLERANCESUPPRESSLEADINGZEROS"
"VLA-GET-TOLERANCESUPPRESSTRAILINGZEROS"
"VLA-GET-TOLERANCESUPPRESSZEROFEET"
"VLA-GET-TOLERANCESUPPRESSZEROINCHES"
"VLA-GET-TOLERANCEUPPERLIMIT"
"VLA-GET-TOOLBARS"
"VLA-GET-TOP"
"VLA-GET-TOTALANGLE"
"VLA-GET-TRANSLATEIDS"
"VLA-GET-TRANSPARENCY"
"VLA-GET-TRUECOLORIMAGES"
"VLA-GET-TWISTANGLE"
"VLA-GET-TYPE"
"VLA-GET-UCSICONATORIGIN"
"VLA-GET-UCSICONON"
"VLA-GET-UCSPERVIEWPORT"
"VLA-GET-UNITSFORMAT"
"VLA-GET-UPPERRIGHTCORNER"
"VLA-GET-UPSIDEDOWN"
"VLA-GET-URL"
"VLA-GET-URLDESCRIPTION"
"VLA-GET-USER"
"VLA-GET-USERCOORDINATESYSTEMS"
"VLA-GET-USESTANDARDSCALE"
"VLA-GET-UTILITY"
"VLA-GET-VBE"
"VLA-GET-VERIFY"
"VLA-GET-VERSION"
"VLA-GET-VERTICALTEXTPOSITION"
"VLA-GET-VIEWPORTDEFAULT"
"VLA-GET-VIEWPORTON"
"VLA-GET-VIEWPORTS"
"VLA-GET-VIEWS"
"VLA-GET-VIEWTOPLOT"
"VLA-GET-VISIBILITYEDGE1"
"VLA-GET-VISIBILITYEDGE2"
"VLA-GET-VISIBILITYEDGE3"
"VLA-GET-VISIBILITYEDGE4"
"VLA-GET-VISIBLE"
"VLA-GET-VOLUME"
"VLA-GET-WEIGHTS"
"VLA-GET-WIDTH"
"VLA-GET-WINDOWSTATE"
"VLA-GET-WINDOWTITLE"
"VLA-GET-WORKSPACEPATH"
"VLA-GET-XREFDATABASE"
"VLA-GET-XREFDEMANDLOAD"
"VLA-GET-XREFEDIT"
"VLA-GET-XREFFADEINTENSITY"
"VLA-GET-XREFLAYERVISIBILITY"
"VLA-GET-XSCALEFACTOR"
"VLA-GET-XVECTOR"
"VLA-GET-YSCALEFACTOR"
"VLA-GET-YVECTOR"
"VLA-GET-ZSCALEFACTOR"
"VLA-GETANGLE"
"VLA-GETATTRIBUTES"
"VLA-GETBITMAPS"
"VLA-GETBOUNDINGBOX"
"VLA-GETBULGE"
"VLA-GETCONSTANTATTRIBUTES"
"VLA-GETCONTROLPOINT"
"VLA-GETCORNER"
"VLA-GETCUSTOMSCALE"
"VLA-GETDISTANCE"
"VLA-GETENTITY"
"VLA-GETEXTENSIONDICTIONARY"
"VLA-GETFITPOINT"
"VLA-GETFONT"
"VLA-GETGRIDSPACING"
"VLA-GETINPUT"
"VLA-GETINTEGER"
"VLA-GETINTERFACEOBJECT"
"VLA-GETINVISIBLEEDGE"
"VLA-GETKEYWORD"
"VLA-GETLOOPAT"
"VLA-GETNAME"
"VLA-GETOBJECT"
"VLA-GETORIENTATION"
"VLA-GETPAPERMARGINS"
"VLA-GETPAPERSIZE"
"VLA-GETPOINT"
"VLA-GETPROJECTFILEPATH"
"VLA-GETREAL"
"VLA-GETSNAPSPACING"
"VLA-GETSTRING"
"VLA-GETSUBENTITY"
"VLA-GETUCSMATRIX"
"VLA-GETVARIABLE"
"VLA-GETWEIGHT"
"VLA-GETWIDTH"
"VLA-GETWINDOWTOPLOT"
"VLA-GETXDATA"
"VLA-GETXRECORDDATA"
"VLA-HANDLETOOBJECT"
"VLA-HIGHLIGHT"
"VLA-IMPORT"
"VLA-IMPORTPROFILE"
"VLA-INITIALIZEUSERINPUT"
"VLA-INSERTBLOCK"
"VLA-INSERTINMENUBAR"
"VLA-INSERTLOOPAT"
"VLA-INSERTMENUINMENUBAR"
"VLA-INTERSECTWITH"
"VLA-ITEM"
"VLA-LISTADS"
"VLA-LISTARX"
"VLA-LOAD"
"VLA-LOADADS"
"VLA-LOADARX"
"VLA-LOADDVB"
"VLA-LOADSHAPEFILE"
"VLA-MIRROR"
"VLA-MIRROR3D"
"VLA-MODIFIED"
"VLA-MOVE"
"VLA-NEW"
"VLA-OBJECTIDTOOBJECT"
"VLA-OFFSET"
"VLA-OPEN"
"VLA-PLOTTODEVICE"
"VLA-PLOTTOFILE"
"VLA-POLARPOINT"
"VLA-PROMPT"
"VLA-PURGEALL"
"VLA-PURGEFITDATA"
"VLA-PUT-ACTIVEDIMSTYLE"
"VLA-PUT-ACTIVEDOCUMENT"
"VLA-PUT-ACTIVELAYER"
"VLA-PUT-ACTIVELAYOUT"
"VLA-PUT-ACTIVELINETYPE"
"VLA-PUT-ACTIVEPROFILE"
"VLA-PUT-ACTIVEPVIEWPORT"
"VLA-PUT-ACTIVESPACE"
"VLA-PUT-ACTIVETEXTSTYLE"
"VLA-PUT-ACTIVEUCS"
"VLA-PUT-ACTIVEVIEWPORT"
"VLA-PUT-ALIGNMENT"
"VLA-PUT-ALIGNMENTPOINTACQUISITION"
"VLA-PUT-ALLOWLONGSYMBOLNAMES"
"VLA-PUT-ALTFONTFILE"
"VLA-PUT-ALTROUNDDISTANCE"
"VLA-PUT-ALTSUPPRESSLEADINGZEROS"
"VLA-PUT-ALTSUPPRESSTRAILINGZEROS"
"VLA-PUT-ALTSUPPRESSZEROFEET"
"VLA-PUT-ALTSUPPRESSZEROINCHES"
"VLA-PUT-ALTTABLETMENUFILE"
"VLA-PUT-ALTTEXTPREFIX"
"VLA-PUT-ALTTEXTSUFFIX"
"VLA-PUT-ALTTOLERANCEPRECISION"
"VLA-PUT-ALTTOLERANCESUPPRESSLEADINGZEROS"
"VLA-PUT-ALTTOLERANCESUPPRESSTRAILINGZEROS"
"VLA-PUT-ALTTOLERANCESUPPRESSZEROFEET"
"VLA-PUT-ALTTOLERANCESUPPRESSZEROINCHES"
"VLA-PUT-ALTUNITS"
"VLA-PUT-ALTUNITSFORMAT"
"VLA-PUT-ALTUNITSPRECISION"
"VLA-PUT-ALTUNITSSCALE"
"VLA-PUT-ANGLEFORMAT"
"VLA-PUT-ANGLEVERTEX"
"VLA-PUT-ANNOTATION"
"VLA-PUT-ARCSMOOTHNESS"
"VLA-PUT-AREA"
"VLA-PUT-ARROWHEAD1BLOCK"
"VLA-PUT-ARROWHEAD1TYPE"
"VLA-PUT-ARROWHEAD2BLOCK"
"VLA-PUT-ARROWHEAD2TYPE"
"VLA-PUT-ARROWHEADBLOCK"
"VLA-PUT-ARROWHEADSIZE"
"VLA-PUT-ARROWHEADTYPE"
"VLA-PUT-ASSOCIATIVEHATCH"
"VLA-PUT-ATTACHMENTPOINT"
"VLA-PUT-AUTOAUDIT"
"VLA-PUT-AUTOSAVEINTERVAL"
"VLA-PUT-AUTOSAVEPATH"
"VLA-PUT-AUTOSNAPAPERTURE"
"VLA-PUT-AUTOSNAPAPERTURESIZE"
"VLA-PUT-AUTOSNAPMAGNET"
"VLA-PUT-AUTOSNAPMARKER"
"VLA-PUT-AUTOSNAPMARKERCOLOR"
"VLA-PUT-AUTOSNAPMARKERSIZE"
"VLA-PUT-AUTOSNAPTOOLTIP"
"VLA-PUT-AUTOTRACKINGVECCOLOR"
"VLA-PUT-AUTOTRACKTOOLTIP"
"VLA-PUT-BACKWARD"
"VLA-PUT-BASEPOINT"
"VLA-PUT-BATCHPLOTPROGRESS"
"VLA-PUT-BEEPONERROR"
"VLA-PUT-BIGFONTFILE"
"VLA-PUT-BRIGHTNESS"
"VLA-PUT-CANONICALMEDIANAME"
"VLA-PUT-CEINSERTUNITS"
"VLA-PUT-CEINSERTUNITSACTION"
"VLA-PUT-CELOADPALETTE"
"VLA-PUT-CENTER"
"VLA-PUT-CENTERMARKSIZE"
"VLA-PUT-CENTERPLOT"
"VLA-PUT-CENTERTYPE"
"VLA-PUT-CHECK"
"VLA-PUT-CIRCUMFERENCE"
"VLA-PUT-CLIPPINGENABLED"
"VLA-PUT-CLOSED"
"VLA-PUT-COLOR"
"VLA-PUT-COLUMNS"
"VLA-PUT-COLUMNSPACING"
"VLA-PUT-CONFIGNAME"
"VLA-PUT-CONSTANT"
"VLA-PUT-CONSTANTWIDTH"
"VLA-PUT-CONTOURLINESPERSURFACE"
"VLA-PUT-CONTRAST"
"VLA-PUT-CONTROLPOINTS"
"VLA-PUT-COORDINATE"
"VLA-PUT-COORDINATES"
"VLA-PUT-CREATEBACKUP"
"VLA-PUT-CURSORSIZE"
"VLA-PUT-CUSTOMDICTIONARY"
"VLA-PUT-CUSTOMSCALE"
"VLA-PUT-DECIMALSEPARATOR"
"VLA-PUT-DEFAULTINTERNETURL"
"VLA-PUT-DEFAULTOUTPUTDEVICE"
"VLA-PUT-DEFAULTPLOTSTYLEFORLAYERS"
"VLA-PUT-DEFAULTPLOTSTYLEFOROBJECTS"
"VLA-PUT-DEMANDLOADARXAPP"
"VLA-PUT-DESCRIPTION"
"VLA-PUT-DIAMETER"
"VLA-PUT-DIMENSIONLINECOLOR"
"VLA-PUT-DIMENSIONLINEEXTEND"
"VLA-PUT-DIMENSIONLINEWEIGHT"
"VLA-PUT-DIMLINE1SUPPRESS"
"VLA-PUT-DIMLINE2SUPPRESS"
"VLA-PUT-DIMLINEINSIDE"
"VLA-PUT-DIMLINESUPPRESS"
"VLA-PUT-DIRECTION"
"VLA-PUT-DIRECTIONVECTOR"
"VLA-PUT-DISPLAYDRAGGEDOBJECT"
"VLA-PUT-DISPLAYGRIPS"
"VLA-PUT-DISPLAYGRIPSWITHINBLOCKS"
"VLA-PUT-DISPLAYLAYOUTTABS"
"VLA-PUT-DISPLAYLOCKED"
"VLA-PUT-DISPLAYOLESCALE"
"VLA-PUT-DISPLAYSCREENMENU"
"VLA-PUT-DISPLAYSCROLLBARS"
"VLA-PUT-DISPLAYSILHOUETTE"
"VLA-PUT-DOCKEDVISIBLELINES"
"VLA-PUT-DRAWINGDIRECTION"
"VLA-PUT-DRIVERSPATH"
"VLA-PUT-ELEVATION"
"VLA-PUT-ELEVATIONMODELSPACE"
"VLA-PUT-ELEVATIONPAPERSPACE"
"VLA-PUT-ENABLE"
"VLA-PUT-ENABLESTARTUPDIALOG"
"VLA-PUT-ENDANGLE"
"VLA-PUT-ENDPARAMETER"
"VLA-PUT-ENDPOINT"
"VLA-PUT-ENDTANGENT"
"VLA-PUT-EXTENSIONLINECOLOR"
"VLA-PUT-EXTENSIONLINEEXTEND"
"VLA-PUT-EXTENSIONLINEOFFSET"
"VLA-PUT-EXTENSIONLINEWEIGHT"
"VLA-PUT-EXTLINE1ENDPOINT"
"VLA-PUT-EXTLINE1POINT"
"VLA-PUT-EXTLINE1STARTPOINT"
"VLA-PUT-EXTLINE1SUPPRESS"
"VLA-PUT-EXTLINE2ENDPOINT"
"VLA-PUT-EXTLINE2POINT"
"VLA-PUT-EXTLINE2STARTPOINT"
"VLA-PUT-EXTLINE2SUPPRESS"
"VLA-PUT-FADE"
"VLA-PUT-FIELDLENGTH"
"VLA-PUT-FIT"
"VLA-PUT-FITPOINTS"
"VLA-PUT-FITTOLERANCE"
"VLA-PUT-FLOATINGROWS"
"VLA-PUT-FONTFILE"
"VLA-PUT-FONTFILEMAP"
"VLA-PUT-FORCELINEINSIDE"
"VLA-PUT-FRACTIONFORMAT"
"VLA-PUT-FREEZE"
"VLA-PUT-FULLCRCVALIDATION"
"VLA-PUT-FULLSCREENTRACKINGVECTOR"
"VLA-PUT-GRAPHICSWINLAYOUTBACKGRNDCOLOR"
"VLA-PUT-GRAPHICSWINMODELBACKGRNDCOLOR"
"VLA-PUT-GRIDON"
"VLA-PUT-GRIPCOLORSELECTED"
"VLA-PUT-GRIPCOLORUNSELECTED"
"VLA-PUT-GRIPSIZE"
"VLA-PUT-HATCHSTYLE"
"VLA-PUT-HEIGHT"
"VLA-PUT-HELPFILEPATH"
"VLA-PUT-HELPSTRING"
"VLA-PUT-HISTORYLINES"
"VLA-PUT-HORIZONTALTEXTPOSITION"
"VLA-PUT-HYPERLINKDISPLAYCURSOR"
"VLA-PUT-HYPERLINKDISPLAYTOOLTIP"
"VLA-PUT-IMAGEFILE"
"VLA-PUT-IMAGEFRAMEHIGHLIGHT"
"VLA-PUT-IMAGEHEIGHT"
"VLA-PUT-IMAGEVISIBILITY"
"VLA-PUT-IMAGEWIDTH"
"VLA-PUT-INCREMENTALSAVEPERCENT"
"VLA-PUT-INSERTIONPOINT"
"VLA-PUT-INVISIBLE"
"VLA-PUT-ISOPENWIDTH"
"VLA-PUT-KEYBOARDACCELERATOR"
"VLA-PUT-KEYBOARDPRIORITY"
"VLA-PUT-KNOTS"
"VLA-PUT-LABEL"
"VLA-PUT-LARGEBUTTONS"
"VLA-PUT-LASTHEIGHT"
"VLA-PUT-LAYER"
"VLA-PUT-LAYERON"
"VLA-PUT-LAYOUTCREATEVIEWPORT"
"VLA-PUT-LAYOUTCROSSHAIRCOLOR"
"VLA-PUT-LAYOUTDISPLAYMARGINS"
"VLA-PUT-LAYOUTDISPLAYPAPER"
"VLA-PUT-LAYOUTDISPLAYPAPERSHADOW"
"VLA-PUT-LAYOUTSHOWPLOTSETUP"
"VLA-PUT-LEADERLENGTH"
"VLA-PUT-LEFT"
"VLA-PUT-LEGACYSTYLESHEET"
"VLA-PUT-LENSLENGTH"
"VLA-PUT-LIMITS"
"VLA-PUT-LINEARSCALEFACTOR"
"VLA-PUT-LINESPACINGFACTOR"
"VLA-PUT-LINESPACINGSTYLE"
"VLA-PUT-LINETYPE"
"VLA-PUT-LINETYPEGENERATION"
"VLA-PUT-LINETYPESCALE"
"VLA-PUT-LINEWEIGHT"
"VLA-PUT-LOCK"
"VLA-PUT-LOGFILEON"
"VLA-PUT-LOGFILEPATH"
"VLA-PUT-MACRO"
"VLA-PUT-MAINDICTIONARY"
"VLA-PUT-MAJORAXIS"
"VLA-PUT-MAJORRADIUS"
"VLA-PUT-MAXACTIVEVIEWPORTS"
"VLA-PUT-MAXAUTOCADWINDOW"
"VLA-PUT-MAXNUMOFSYMBOLS"
"VLA-PUT-MCLOSE"
"VLA-PUT-MDENSITY"
"VLA-PUT-MEASUREMENTUNITS"
"VLA-PUT-MENUFILE"
"VLA-PUT-MINORRADIUS"
"VLA-PUT-MODE"
"VLA-PUT-MODELCROSSHAIRCOLOR"
"VLA-PUT-MODELTYPE"
"VLA-PUT-MONOCHROMEVECTORS"
"VLA-PUT-MRUNUMBER"
"VLA-PUT-MSPACE"
"VLA-PUT-NAME"
"VLA-PUT-NCLOSE"
"VLA-PUT-NDENSITY"
"VLA-PUT-NORMAL"
"VLA-PUT-NUMBEROFCOPIES"
"VLA-PUT-OBJECTARXPATH"
"VLA-PUT-OBJECTSNAPMODE"
"VLA-PUT-OBJECTSORTBYPLOTTING"
"VLA-PUT-OBJECTSORTBYPSOUTPUT"
"VLA-PUT-OBJECTSORTBYREDRAWS"
"VLA-PUT-OBJECTSORTBYREGENS"
"VLA-PUT-OBJECTSORTBYSELECTION"
"VLA-PUT-OBJECTSORTBYSNAP"
"VLA-PUT-OBLIQUEANGLE"
"VLA-PUT-OLELAUNCH"
"VLA-PUT-OLEQUALITY"
"VLA-PUT-ORIGIN"
"VLA-PUT-ORTHOENABLED"
"VLA-PUT-ORTHOON"
"VLA-PUT-PAPERUNITS"
"VLA-PUT-PATH"
"VLA-PUT-PATTERNANGLE"
"VLA-PUT-PATTERNDOUBLE"
"VLA-PUT-PATTERNSCALE"
"VLA-PUT-PATTERNSPACE"
"VLA-PUT-PICKADD"
"VLA-PUT-PICKAUTO"
"VLA-PUT-PICKBOXSIZE"
"VLA-PUT-PICKDRAG"
"VLA-PUT-PICKFIRST"
"VLA-PUT-PICKGROUP"
"VLA-PUT-PLOTHIDDEN"
"VLA-PUT-PLOTLEGACY"
"VLA-PUT-PLOTORIGIN"
"VLA-PUT-PLOTPOLICYFORLEGACYDWGS"
"VLA-PUT-PLOTPOLICYFORNEWDWGS"
"VLA-PUT-PLOTROTATION"
"VLA-PUT-PLOTSTYLENAME"
"VLA-PUT-PLOTSTYLESHEET"
"VLA-PUT-PLOTTABLE"
"VLA-PUT-PLOTTYPE"
"VLA-PUT-PLOTVIEWPORTBORDERS"
"VLA-PUT-PLOTVIEWPORTSFIRST"
"VLA-PUT-PLOTWITHLINEWEIGHTS"
"VLA-PUT-PLOTWITHPLOTSTYLES"
"VLA-PUT-POLARTRACKINGVECTOR"
"VLA-PUT-POSTSCRIPTPROLOGFILE"
"VLA-PUT-PRESET"
"VLA-PUT-PRIMARYUNITSPRECISION"
"VLA-PUT-PRINTERCONFIGPATH"
"VLA-PUT-PRINTERDESCPATH"
"VLA-PUT-PRINTERPAPERSIZEALERT"
"VLA-PUT-PRINTERSPOOLALERT"
"VLA-PUT-PRINTERSTYLESHEETPATH"
"VLA-PUT-PRINTFILE"
"VLA-PUT-PRINTSPOOLERPATH"
"VLA-PUT-PRINTSPOOLEXECUTABLE"
"VLA-PUT-PROMPTSTRING"
"VLA-PUT-PROXYIMAGE"
"VLA-PUT-QUIETERRORMODE"
"VLA-PUT-RADIUS"
"VLA-PUT-RADIUSRATIO"
"VLA-PUT-REMOVEHIDDENLINES"
"VLA-PUT-RENDERSMOOTHNESS"
"VLA-PUT-ROTATION"
"VLA-PUT-ROUNDDISTANCE"
"VLA-PUT-ROWS"
"VLA-PUT-ROWSPACING"
"VLA-PUT-SAVEASTYPE"
"VLA-PUT-SAVEPREVIEWTHUMBNAIL"
"VLA-PUT-SCALEFACTOR"
"VLA-PUT-SCALELINEWEIGHTS"
"VLA-PUT-SECONDPOINT"
"VLA-PUT-SEGMENTPERPOLYLINE"
"VLA-PUT-SHOWPLOTSTYLES"
"VLA-PUT-SHOWPROXYDIALOGBOX"
"VLA-PUT-SHOWRASTERIMAGE"
"VLA-PUT-SHOWWARNINGMESSAGES"
"VLA-PUT-SINGLEDOCUMENTMODE"
"VLA-PUT-SNAPBASEPOINT"
"VLA-PUT-SNAPON"
"VLA-PUT-SNAPROTATIONANGLE"
"VLA-PUT-SOLIDCHECK"
"VLA-PUT-SOLIDFILL"
"VLA-PUT-STANDARDSCALE"
"VLA-PUT-STARTANGLE"
"VLA-PUT-STARTPARAMETER"
"VLA-PUT-STARTPOINT"
"VLA-PUT-STARTTANGENT"
"VLA-PUT-STORESQLINDEX"
"VLA-PUT-STYLENAME"
"VLA-PUT-STYLESHEET"
"VLA-PUT-SUPPORTPATH"
"VLA-PUT-SUPPRESSLEADINGZEROS"
"VLA-PUT-SUPPRESSTRAILINGZEROS"
"VLA-PUT-SUPPRESSZEROFEET"
"VLA-PUT-SUPPRESSZEROINCHES"
"VLA-PUT-TABLESREADONLY"
"VLA-PUT-TABORDER"
"VLA-PUT-TAGSTRING"
"VLA-PUT-TARGET"
"VLA-PUT-TEMPFILEEXTENSION"
"VLA-PUT-TEMPFILEPATH"
"VLA-PUT-TEMPLATEDWGPATH"
"VLA-PUT-TEMPXREFPATH"
"VLA-PUT-TEXTALIGNMENTPOINT"
"VLA-PUT-TEXTCOLOR"
"VLA-PUT-TEXTEDITOR"
"VLA-PUT-TEXTFONT"
"VLA-PUT-TEXTFONTSIZE"
"VLA-PUT-TEXTFONTSTYLE"
"VLA-PUT-TEXTFRAMEDISPLAY"
"VLA-PUT-TEXTGAP"
"VLA-PUT-TEXTGENERATIONFLAG"
"VLA-PUT-TEXTHEIGHT"
"VLA-PUT-TEXTINSIDE"
"VLA-PUT-TEXTINSIDEALIGN"
"VLA-PUT-TEXTMOVEMENT"
"VLA-PUT-TEXTOUTSIDEALIGN"
"VLA-PUT-TEXTOVERRIDE"
"VLA-PUT-TEXTPOSITION"
"VLA-PUT-TEXTPRECISION"
"VLA-PUT-TEXTPREFIX"
"VLA-PUT-TEXTROTATION"
"VLA-PUT-TEXTSTRING"
"VLA-PUT-TEXTSTYLE"
"VLA-PUT-TEXTSUFFIX"
"VLA-PUT-TEXTUREMAPPATH"
"VLA-PUT-TEXTWINBACKGRNDCOLOR"
"VLA-PUT-TEXTWINTEXTCOLOR"
"VLA-PUT-THICKNESS"
"VLA-PUT-TOLERANCEDISPLAY"
"VLA-PUT-TOLERANCEHEIGHTSCALE"
"VLA-PUT-TOLERANCEJUSTIFICATION"
"VLA-PUT-TOLERANCELOWERLIMIT"
"VLA-PUT-TOLERANCEPRECISION"
"VLA-PUT-TOLERANCESUPPRESSLEADINGZEROS"
"VLA-PUT-TOLERANCESUPPRESSTRAILINGZEROS"
"VLA-PUT-TOLERANCESUPPRESSZEROFEET"
"VLA-PUT-TOLERANCESUPPRESSZEROINCHES"
"VLA-PUT-TOLERANCEUPPERLIMIT"
"VLA-PUT-TOP"
"VLA-PUT-TRANSLATEIDS"
"VLA-PUT-TRANSPARENCY"
"VLA-PUT-TRUECOLORIMAGES"
"VLA-PUT-TWISTANGLE"
"VLA-PUT-TYPE"
"VLA-PUT-UCSICONATORIGIN"
"VLA-PUT-UCSICONON"
"VLA-PUT-UCSPERVIEWPORT"
"VLA-PUT-UNITSFORMAT"
"VLA-PUT-UPSIDEDOWN"
"VLA-PUT-URL"
"VLA-PUT-URLDESCRIPTION"
"VLA-PUT-USESTANDARDSCALE"
"VLA-PUT-VERIFY"
"VLA-PUT-VERTICALTEXTPOSITION"
"VLA-PUT-VIEWPORTDEFAULT"
"VLA-PUT-VIEWPORTON"
"VLA-PUT-VIEWTOPLOT"
"VLA-PUT-VISIBILITYEDGE1"
"VLA-PUT-VISIBILITYEDGE2"
"VLA-PUT-VISIBILITYEDGE3"
"VLA-PUT-VISIBILITYEDGE4"
"VLA-PUT-VISIBLE"
"VLA-PUT-WEIGHTS"
"VLA-PUT-WIDTH"
"VLA-PUT-WINDOWSTATE"
"VLA-PUT-WORKSPACEPATH"
"VLA-PUT-XREFDEMANDLOAD"
"VLA-PUT-XREFEDIT"
"VLA-PUT-XREFFADEINTENSITY"
"VLA-PUT-XREFLAYERVISIBILITY"
"VLA-PUT-XSCALEFACTOR"
"VLA-PUT-XVECTOR"
"VLA-PUT-YSCALEFACTOR"
"VLA-PUT-YVECTOR"
"VLA-PUT-ZSCALEFACTOR"
"VLA-QUIT"
"VLA-REALTOSTRING"
"VLA-REGEN"
"VLA-RELOAD"
"VLA-REMOVE"
"VLA-REMOVEFROMMENUBAR"
"VLA-REMOVEITEMS"
"VLA-REMOVEMENUFROMMENUBAR"
"VLA-RENAME"
"VLA-REPLACE"
"VLA-RESETPROFILE"
"VLA-REVERSE"
"VLA-ROTATE"
"VLA-ROTATE3D"
"VLA-RUNMACRO"
"VLA-SAVE"
"VLA-SAVEAS"
"VLA-SCALEENTITY"
"VLA-SECTIONSOLID"
"VLA-SELECT"
"VLA-SELECTATPOINT"
"VLA-SELECTBYPOLYGON"
"VLA-SELECTONSCREEN"
"VLA-SENDCOMMAND"
"VLA-SETBITMAPS"
"VLA-SETBULGE"
"VLA-SETCONTROLPOINT"
"VLA-SETCUSTOMSCALE"
"VLA-SETFITPOINT"
"VLA-SETFONT"
"VLA-SETGRIDSPACING"
"VLA-SETINVISIBLEEDGE"
"VLA-SETLAYOUTSTOPLOT"
"VLA-SETPATTERN"
"VLA-SETPROJECTFILEPATH"
"VLA-SETSNAPSPACING"
"VLA-SETVARIABLE"
"VLA-SETVIEW"
"VLA-SETWEIGHT"
"VLA-SETWIDTH"
"VLA-SETWINDOWTOPLOT"
"VLA-SETXDATA"
"VLA-SETXRECORDDATA"
"VLA-SLICESOLID"
"VLA-SPLIT"
"VLA-STARTBATCHMODE"
"VLA-STARTUNDOMARK"
"VLA-TRANSFORMBY"
"VLA-TRANSLATECOORDINATES"
"VLA-UNLOAD"
"VLA-UNLOADADS"
"VLA-UNLOADARX"
"VLA-UNLOADDVB"
"VLA-UPDATE"
"VLA-WBLOCK"
"VLA-ZOOMALL"
"VLA-ZOOMCENTER"
"VLA-ZOOMEXTENTS"
"VLA-ZOOMPICKWINDOW"
"VLA-ZOOMSCALED"
"VLA-ZOOMWINDOW"
"VLAX-3D-POINT"
"VLAX-ADD-CMD"
"VLAX-COUNT"
"VLAX-CREATE-OBJECT"
"VLAX-CURVE-GETAREA"
"VLAX-CURVE-GETCLOSESTPOINTTO"
"VLAX-CURVE-GETCLOSESTPOINTTOPROJECTION"
"VLAX-CURVE-GETDISTATPARAM"
"VLAX-CURVE-GETDISTATPOINT"
"VLAX-CURVE-GETENDPARAM"
"VLAX-CURVE-GETENDPOINT"
"VLAX-CURVE-GETFIRSTDERIV"
"VLAX-CURVE-GETPARAMATDIST"
"VLAX-CURVE-GETPARAMATPOINT"
"VLAX-CURVE-GETPOINTATDIST"
"VLAX-CURVE-GETPOINTATPARAM"
"VLAX-CURVE-GETSECONDDERIV"
"VLAX-CURVE-GETSTARTPARAM"
"VLAX-CURVE-GETSTARTPOINT"
"VLAX-CURVE-ISCLOSED"
"VLAX-CURVE-ISPERIODIC"
"VLAX-CURVE-ISPLANAR"
"VLAX-DISABLE-DOCACTIVATION"
"VLAX-DUMP-OBJECT"
"VLAX-ENABLE-DOCACTIVATION"
"VLAX-ENAME->VLA-OBJECT"
"VLAX-ERASED-P"
"VLAX-GET"
"VLAX-GET-ACAD-OBJECT"
"VLAX-GET-OBJECT"
"VLAX-GET-OR-CREATE-OBJECT"
"VLAX-GET-PROPERTY"
"VLAX-IMPORT-TYPE-LIBRARY"
"VLAX-INVOKE"
"VLAX-INVOKE-METHOD"
"VLAX-ITEM"
"VLAX-LDATA-DELETE"
"VLAX-LDATA-GET"
"VLAX-LDATA-LIST"
"VLAX-LDATA-PUT"
"VLAX-LDATA-TEST"
"VLAX-MAKE-SAFEARRAY"
"VLAX-MAKE-VARIANT"
"VLAX-MAP-COLLECTION"
"VLAX-METHOD-APPLICABLE-P"
"VLAX-NEW-DOCUMENT"
"VLAX-OBJECT-RELEASED-P"
"VLAX-OPEN-DOCUMENT"
"VLAX-PRODUCT-KEY"
"VLAX-PROPERTY-AVAILABLE-P"
"VLAX-PUT"
"VLAX-PUT-PROPERTY"
"VLAX-QUEUEEXPR"
"VLAX-READ-ENABLED-P"
"VLAX-REG-APP"
"VLAX-RELEASE-OBJECT"
"VLAX-REMOVE-CMD"
"VLAX-SAFEARRAY->LIST"
"VLAX-SAFEARRAY-FILL"
"VLAX-SAFEARRAY-GET-DIM"
"VLAX-SAFEARRAY-GET-ELEMENT"
"VLAX-SAFEARRAY-GET-L-BOUND"
"VLAX-SAFEARRAY-GET-U-BOUND"
"VLAX-SAFEARRAY-PUT-ELEMENT"
"VLAX-SAFEARRAY-TYPE"
"VLAX-TMATRIX"
"VLAX-TYPEINFO-AVAILABLE-P"
"VLAX-VARIANT-CHANGE-TYPE"
"VLAX-VARIANT-TYPE"
"VLAX-VARIANT-VALUE"
"VLAX-VBABORT"
"VLAX-VBABORTRETRYIGNORE"
"VLAX-VBAPPLICATIONMODAL"
"VLAX-VBARCHIVE"
"VLAX-VBARRAY"
"VLAX-VBBOOLEAN"
"VLAX-VBCANCEL"
"VLAX-VBCRITICAL"
"VLAX-VBCURRENCY"
"VLAX-VBDATAOBJECT"
"VLAX-VBDATE"
"VLAX-VBDEFAULTBUTTON1"
"VLAX-VBDEFAULTBUTTON2"
"VLAX-VBDEFAULTBUTTON3"
"VLAX-VBDIRECTORY"
"VLAX-VBDOUBLE"
"VLAX-VBEMPTY"
"VLAX-VBERROR"
"VLAX-VBEXCLAMATION"
"VLAX-VBHIDDEN"
"VLAX-VBHIRAGANA"
"VLAX-VBIGNORE"
"VLAX-VBINFORMATION"
"VLAX-VBINTEGER"
"VLAX-VBKATAKANA"
"VLAX-VBLONG"
"VLAX-VBLOWERCASE"
"VLAX-VBNARROW"
"VLAX-VBNO"
"VLAX-VBNORMAL"
"VLAX-VBNULL"
"VLAX-VBOBJECT"
"VLAX-VBOK"
"VLAX-VBOKCANCEL"
"VLAX-VBOKONLY"
"VLAX-VBPROPERCASE"
"VLAX-VBQUESTION"
"VLAX-VBREADONLY"
"VLAX-VBRETRY"
"VLAX-VBRETRYCANCEL"
"VLAX-VBSINGLE"
"VLAX-VBSTRING"
"VLAX-VBSYSTEM"
"VLAX-VBSYSTEMMODAL"
"VLAX-VBUPPERCASE"
"VLAX-VBVARIANT"
"VLAX-VBVOLUME"
"VLAX-VBWIDE"
"VLAX-VBYES"
"VLAX-VBYESNO"
"VLAX-VBYESNOCANCEL"
"VLAX-VLA-OBJECT->ENAME"
"VLAX-WRITE-ENABLED-P"
"VLR-ACDB-REACTOR"
"VLR-ADD"
"VLR-ADDED-P"
"VLR-BEEP-REACTION"
"VLR-COMMAND-REACTOR"
"VLR-CURRENT-REACTION-NAME"
"VLR-DATA"
"VLR-DATA-SET"
"VLR-DEEPCLONE-REACTOR"
"VLR-DOCMANAGER-REACTOR"
"VLR-DOCUMENT"
"VLR-DWG-REACTOR"
"VLR-DXF-REACTOR"
"VLR-EDITOR-REACTOR"
"VLR-INSERT-REACTOR"
"VLR-LINKER-REACTOR"
"VLR-LISP-REACTOR"
"VLR-MISCELLANEOUS-REACTOR"
"VLR-MOUSE-REACTOR"
"VLR-OBJECT-REACTOR"
"VLR-OWNER-ADD"
"VLR-OWNER-REMOVE"
"VLR-OWNERS"
"VLR-PERS"
"VLR-PERS-ACTIVATE"
"VLR-PERS-DICTNAME"
"VLR-PERS-LIST"
"VLR-PERS-P"
"VLR-PERS-RELEASE"
"VLR-RANGE"
"VLR-RANGE-SET"
"VLR-REACTION-NAMES"
"VLR-REACTION-SET"
"VLR-REACTIONS"
"VLR-REACTOR.GETDICTKEY"
"VLR-REACTORS"
"VLR-REMOVE"
"VLR-REMOVE-ALL"
"VLR-SYSVAR-REACTOR"
"VLR-TOOLBAR-REACTOR"
"VLR-TRACE-REACTION"
"VLR-TYPE"
"VLR-TYPES"
"VLR-UNDO-REACTOR"
"VLR-WBLOCK-REACTOR"
"VLR-WINDOW-REACTOR"
"VLR-XREF-REACTOR"
)
)
(setq reactor-symbol-list
'(
)
)

(princ)£eô÷ä½ é©5] UáHíÒzíB¤êÅ5 o¶Ø J| úµÍ x²n{ =;ÿ½^s¥ûÝÕw?vwÉøeù ²ðÿì YSZiÆ?ÅTÍte.¦+Ss1


ÃO ¤ö/!*àw/ë/Õ5þõmÿ52 FFSÈÈU2
HH!Ñ/
´t2ýõN\§¢Yt&
\ p ÐÇxϲ©$z
é ‾QΗ
ÿ+ ÛSó?ò î. sV¥y Òp^¤Ð=Õ ÂæöS¹: 'øÏøÄýÙùb¹ªbÇQë:,ݶæ %—Qôë®ö v5ÿ<Ü
s¨ù8g UÄçU®kÚmöz½¡R*«
k×ùûNu0`
XÂáw ¨ã4æ aû±¸ûôô0÷Æã~
 Ãܱø»è©ùôT jNÂk¡ 8X>ðñJÇû|
Ï3ðìgí
ëüCZï úh@uЧr÷+\}rG‾l‾W¶
$ ÒO— Þ K6yI[^¢Þ;¬óä³öO¨ýêÜà _ Ô7\n :
eÒX©
³p ÆW‾ÈLÅåÿ¦ ¸íd Ï@2 !Àv á 4
Ö7 ñï§y?ó ÷ W d¹« XÀº^¸¦-VéA½ v Ë6-%ruOpw|úÁìB B]cÝ«q<7Xð¿£A—zÞü0ø: ÖWÄyÄ¢ä0¡ Q´D¸Ø`0¼zg ©Ý¨
ØbO"á;; %" ß GgÉsè,áO$Üq
87 # PHüÇÿ1Ï >ð åÈåc ¢¶ Íô² MGDÃÁ ÖÝ¿îîSzzåîÙ~—t¿[²ßµêêÚ» ÷: lK × ¦W|C;O×ÎÓ&Ij¿¹¶ø}ÑÞz©¹õJ1
;;; lspsurf.lsp - Express Tool utilities
;;;
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:LSPSURF ( / fna ) ; lsp viewer
(if (setq fna (findfile "lspsurf.exe"))
(startapp (strcat "\"" fna "\""))
(alert "\"LSPSURF.EXE\" not found. \nCheck your installation directories."
)
);if
(princ)
)

(princ)
 ;©tŤs!ÑL@0íãÚ<=ìûkL »{h Ñïb æ qÖÏÐt ëÑ®§*Ʋb´M1Ü&&I b@õ!2Df Ð zñ /|C j (ÖDÚÿ ´8H
M÷ÇÁ1|6[§_s4Û×þüÐõ—åõïÖwþfÜDï ±þ(v? #ÁIñ|[¢H9,Ó20=Weϸ ! ü
/ ò?SaGRL  Aé ¼RUV`éaZÚ } ºÈ 1PvÆÒ| ÛÅózÀ ÷²Úx »ºN [d;7¤ Õ Ìå;ü 5±Û=ºÝ5²Ù <Ànºy nZè08iú
 W¨¿Ç×cy:
WÛ‾Áò4h
h1 Ë Sby*_ `x
V¥#
3²5Vñ
 q (°BÅ=H
SyÌ ÏEÇç
¾ å}öwÊcQ¾Ê
sQøpgØ
çX¡;K~¥ Þsª£cmíT
¿âÙüà ÃãCËà‾ÍÆ
Ê\F R±‾ NX?—Ù
LÌʽ ìGmö«6ûµé
t ±² ü+çÂ_ a© UÁâØV%ר
|½¹ ) V÷ÙóËT ½Ë2Ç]f ¸K4£ f m×ÏP5 z ¢ ¤ ªõÑ (FÉrK l $£1Ø*»Ñ ̍¢~¢È: #NÐ çéq\P ¬¾ÇQ㸠 WÕÂV¼
Lci®sñ!kÕ-
ù¬) loÓ§gðÆ 6ÝX n ®uÐTªÜF µI- $Ã$ñ H
¡â-Ý
Òõ$ì
©Ð
h¾5^jM
úOD
ð3S gÂs
ô§@ä{
Ü Éi¸=Wë,
^ /-¶Gßû¦*¸¾É
a«Áõ5
2 §¬âf!1
l@³
xȨ¶S½¦@
%¨}
Ç ²ÚSeí
%‾ 2å
´\å'3¬P´'
¶H^¶4G±$h6r
¦ÒºJÉ|
î²Ä( V
ÍÐ |CG9K%k)¦úS
Z Aâ×] R+yßÃ_uÑ禩s
: ep÷iùv>ý§pàÊæÚ§K
Öúª&,äúb1 ëÅ><kzðà
W ñ
j7 X
0ª
}8ñÅI¾_Ñ
ïøâSÔÐÂ
xT¸elÀ|
Íë«,
Øß7kÞÚøbsã
eÖ[
ZzÄ-
NµÝL
Q= ;oï{ÿþ—»¾
â¼å}öw
ðÖ§8Ûýf6 Ô(çþ
[;w<Á»ÿc¿¼
}»ä)ƪÕ|
ÓȲ8ü¿í®gwl
ãèù&1OW ¨Ó%¢¼X9È
ID &69")Ya
>DÞüf
T²×af'xÊöØ
Ï¢kº ü¿¿,TN
ÙVB ¡ £h§§ñ?6Mß‾
dïÿ± n q
KxØþSo á ©Ü
Û Gº;m!ÞsÞÓAaïªîÙî 9ür 9»È]~ @ \WÚ¿) Ã8G½d R×Ëâòá ¿½ßíí `§ÊÓêðþ±äÝ ìýÁÈî©òW ©ÉjCWkê#Þ6â-3
ÛCÖ Â²Æ¶ Üí1d = írsHa+ºzC Ì òÈ,^ûWK[
ó@ ¨Â
MÈR Wb÷Hí^@æð íaw`ÔCCãþ *øªýjÿËÉ1Ð_9 `jî¾h¸ ¨ ÊGß voïì
Í)¡<ªL
1ÉL ã ÖÕ9#ya¢.ÍÔ¹ lw ó—Ä`ó2Öú h ³íp rï[ßo;v÷B f` Óù³z Âæ êAáà}jóEàù3ãúêÈ|vt±àþùÇÜáþ*Af
;;; MAIN_MDI.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file shows how to use the new VARIANT and SAFEARRAY ;
;;; variables. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First of all, initialize the ActiveX interface for this session ;
;;; if need be. ;
;;;--------------------------------------------------------------------;
(vl-load-com)
; make sure AutoCAD is in MDI mode
(setvar "SDI" 0)
; spread utility definitions to all current and future documents for session
(vl-load-all "doc_utils.lsp")
; variable will be used by sample's VLX application and be evident in each
; of this session's documents
(setq mdi-vlx-cntr 0)
(vl-propagate 'mdi-vlx-cntr)
(setq drawings nil)
(while (setq choice (getfiled "Choose another DWG to open" "" "dwg" 0))
(setq drawings (reverse (cons choice drawings)))
)
(setq docs (vla-get-Documents (vlax-get-acad-object)))
;perform sequential open
(foreach file drawings (vla-open docs file))

;;;
;;; MKLTYPE.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;
;
;acet:mkltype-fna - global used for retaining default filename.
;
;Autoload some stuff at load time
(acet-autoload '("mkshape.lsp" "(bns_get_shapefile shapename)"))

(defun c:mkltype ( / FNA LST2 NAME FLAG XV FLT P1 SS P2 ANG LST FLAG2 A B TMP de
sc fuz prec newflag)
(acet-error-init
(list (list "cmdecho" 0
"expert" nil
"ucsicon" 0
"ucsfollow" 0
);list
T
);list
);acet-error-init
(sssetfirst nil nil)
(setq prec 6);this is the decimal precision that will be used for all floating p
oint values
;when written to .lin files.
(if (not acet:mkltype-fna)
(setq acet:mkltype-fna (acet-filename-ext-remove (getvar "dwgname")));setq t
hen
);if
(setvar "expert" 2)
(setq fna (ACET-FILE-WRITEDIALOG "MKLTYPE - Select Linetype File"
acet:mkltype-fna
"lin"
"Acet:Mkltype"
1665 ;1665
);ACET-FILE-WRITEDIALOG
);setq
(if (assoc "EXPERT" (car acet:sysvar-list))
(setvar "expert" (cadr (assoc "EXPERT" (car acet:sysvar-list))));then
);if
(if fna
(progn
(setq acet:mkltype-fna fna);setq then set the default for next time.
(if (findfile fna)
(setq lst2 (bns_read_lin_file fna));setq then read the lin file.
);if
;get a valid name for the linetype.
(while (not (snvalid
(setq name (xstrcase (getstring "\nEnter linetype name: ")
)
);setq
)
);not
(princ "\n*Invalid linetype name*")
);while
(setq flag (assoc (strcat "*" name) lst2));setq
(if (and (not flag)
(not (tblobjname "ltype" name))
);and
(setq newflag T)
);if
(if (or newflag
(initget "Yes No _Yes No")
(equal "Yes"
(getkword "\nLine definition already exists. Overwrite it? [
Yes/No] <No>: ")
)
);or
(progn
(setq desc (getstring T "\nEnter linetype description: "))
(if flag
(setq lst2 (acet-list-remove-nth (vl-position flag lst2) lst2));se
tq then remove old ltype
);if
(setq xv (acet-geom-cross-product (getvar "ucsxdir") (getvar "ucsydir
"))
xv (acet-geom-unit-vector '(0.0 0.0 0.0) xv)
flt (acet-ss-flt-cspace)
flt (list '(-4 . "<AND")
(car flt)
(cadr flt)
'(-4 . "<OR")
'(0 . "LINE")
'(0 . "LWPOLYLINE")
'(-4 . "<AND") ;dis-allow 3dmesh and polyface m
esh
'(0 . "POLYLINE")
'(-4 . "<NOT") '(-4 . "&") '(70 . 112) '(-4 . "NOT
>")
'(-4 . "AND>")
'(0 . "POINT")
'(-4 . "<AND") ;disallow mirrored shapes
'(0 . "SHAPE") '(-4 . ">") '(41 . 0) (cons 210 xv)
'(-4 . "AND>")
'(-4 . "<AND") ;disallow mirrored text
'(0 . "TEXT") '(-4 . ">") '(41 . 0) (cons 210 xv)
'(-4 . "AND>")
'(-4 . "OR>")
'(-4 . "AND>")
);list
);setq
(while (and (not flag2) ;get a start and end point and a selection set
that yields a
;number of segments less than or equal to 12.
(setq p1 (mkltype_get_start_and_stop));setq
(setq ss (ssget flt));setq
);and
(setq p2 (cadr p1)
p1 (car p1)
ang (angle p1 p2)
p2 (trans p2 1 0)
p1 (trans p1 1 0)
);setq
(acet-ucs-cmd (list "_z" (* ang (/ 180.0 pi))));acet-ucs-cmd
(setq p1 (trans p1 0 1)
p2 (trans p2 0 1)
p1 (acet-geom-list-extents (list p1 p2))
p2 (cadr p1)
p1 (car p1)
fuz (/ (- (car p2) (car p1))
100000.0
)
fuz (max (/ 1.0 (expt 10 prec)) fuz)
lst (mkltype_ss_parse p1 p2 ang ss fuz) ;returns (list lst
y cnt)
);setq
(setq
lst (mkltype_format lst fuz) ;returns (list lst cnt)
);setq
(acet-ucs-cmd (list "_p"))
(cond
((= (cadr lst) 1)
(princ "\n*Invalid* That's the continuous linetype!")
)
((> (cadr lst) 12)
(princ "\n*Invalid* Too many segments in linetype definition.")
)
(T
(setq flag2 T
lst (car lst)
);setq
)
);cond close
);while
(if flag2
(progn
(setq a (mkltype_format2 lst prec));setq
(if (equal (length a) 2)
(setq b (append (list (strcat "*" name)
desc ;description
);list
(cadr a)
);append
);setq
(setq b nil);setq
);if
(setq a (car a)
a (append (list (strcat "*" name)
desc ;description
);list
a
);append
);setq
(acet-file-backup fna) ;backup the .lin file before writing to it
.
(mkltype_write_lin_file fna (append lst2 (list a)))
(if b
(progn
(setq tmp (getvar "tempprefix")
tmp (xstrcase tmp)
tmp (acet-str-replace "/" "\\" tmp)
);setq
(if (and (not (equal tmp ""))
(not (equal "\\" (substr tmp (strlen tmp) 1)))
);and
(setq tmp (strcat tmp "\\"));setq
);if
(setq fna (xstrcase (strcat tmp "bns_temp.lin")));setq
(mkltype_write_lin_file fna (list b))
);progn then
);if
(command "_.-linetype" "_l" name fna)
(while (wcmatch (getvar "cmdnames") "*LINETYPE*")
(command "")
);while
(acet-file-backup-delete)
(if (equal (acet-filename-path-remove fna) "BNS_TEMP.LIN")
(vl-file-delete fna);then delete the temp file.
);if
(if (tblobjname "ltype" name)
(progn
(if newflag
(princ (acet-str-format "\nLinetype \"%1\" created and l
oaded." name))
(princ (acet-str-format "\nLinetype \"%1\" redefined and
loaded." name))
);if
);progn then
(princ "\nLinetype creation failed.")
);if
);progn then
);if
);progn then write the linetype definition to the specified file.
);if
);progn then got a good file name
);if
(acet-error-restore)
);defun c:mkltype
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun mkltype_get_start_and_stop ( / p1 p2 flag)
(initget 1)
(if (setq p1 (getpoint "\nSpecify starting point for line definition: "))
(progn
(while (not flag)
(initget 1)
(setq p2 (getpoint p1 "\nSpecify ending point for line definition: "))
(if p2
(progn
(if (not (equal 0.0 (distance p1 p2)))
(setq p1 (list p1 p2)
flag T
);setq then
(princ "\n*Invalid* Distance between points must be non-zero")
);if
);progn
(setq p1 nil)
);if
);while
);progn then
);if
p1
);defun mkltype_get_start_and_stop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_read_lin_file ( fna / fh a lst lst2)
(if (setq fh (open fna "r"));setq
(progn
(while (setq a (read-line fh))
(if (equal "*" (substr a 1 1))
(progn
(if lst
(setq lst2 (append lst2 (list lst)));setq
);if
(setq lst (acet-str-to-list "," a)
lst (list (car lst)
(eval (append '(strcat)
(cdr lst)
);append
);eval
);list
);setq
);progn then it's the begining of a lin definition
(setq lst (append lst (list a)));setq else
);if
);while
(close fh)
(if (and lst
(not (equal (last lst2) lst))
);and
(setq lst2 (append lst2 (list lst)));setq
);if
);progn then
);if
lst2
);defun bns_read_lin_file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun mkltype_write_lin_file ( fna lst / fh a n )
(if (setq fh (open fna "w"));setq
(progn
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq
(if (> (length a) 1)
(progn
(write-line (strcat (car a) "," (cadr a)) fh)
(setq a (cdr (cdr a)));setq
);progn then
);if
(while a
(write-line (car a) fh)
(setq a (cdr a));setq
);while
(setq n (+ n 1));setq
);repeat
(close fh)
);progn then
);if
);defun mkltype_write_lin_file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;lst is linetype data
;d is decimal places of precision to use
(defun mkltype_format2 ( lst prec / fuz str str2 n a x lst2 lst3)
(setq fuz (/ 1.0 (expt 10 prec)))
(setq str ""
str2 ""
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq
(if (not (equal str ""))
(setq str (strcat str ",")
str2 (strcat str2 ",")
);setq then
);if
(if (> (length a) 1)
(progn
(if (equal (car a) "SHAPE")
(progn
(setq str (strcat str
"[" (nth 1 a) ;the shape name
"," (nth 2 a) ;the shx filename for target lin fil
e
);strcat
str2 (strcat str2
"[" (nth 1 a) ;the shape name
"," (nth 7 a) ;the shx filename for the bns_temp.
lin file
);strcat
);setq
);progn then shape
(setq str (strcat str
"[" (nth 1 a) ;the text string
"," (nth 2 a) ;the style name
);strcat
str2 (strcat str2
"[" (nth 1 a) ;the text string
"," (nth 2 a) ;the style name
);strcat
);setq else text
);if
(setq a (cdr a));setq strip the "type" string off
(setq x "")
(if (not (equal 0.0 (nth 2 a) fuz))
(setq x (strcat x ",x=" (bns_zero_strip (nth 2 a) prec)));setq then add
x offset
);if
(if (not (equal 0.0 (nth 3 a) fuz))
(setq x (strcat x ",y=" (bns_zero_strip (nth 3 a) prec)));setq then add
y offset
);if
(setq x (strcat x ",s=" (bns_zero_strip (nth 4 a) prec)));setq add the size
(if (not (equal 0.0 (nth 5 a) fuz))
(setq x (strcat x ",r=" (bns_zero_strip (nth 5 a) prec)));setq then the
rotation
);if

(setq x (strcat x "]"));setq


(setq str (strcat str x)
str2 (strcat str2 x)
);setq
);progn then a shape or text
(progn
(setq str (strcat str (bns_zero_strip (car a) prec))
str2 (strcat str2 (bns_zero_strip (car a) prec))
);setq
);progn else add pen up or pen down sequences
);if
(if (or (> (strlen str) 200)
(> (strlen str2) 200)
);or
(setq str (strcat str ",")
str2 (strcat str2 ",")
lst2 (append lst2 (list str))
lst3 (append lst3 (list str2))
str ""
str2 ""
);setq
);if
(setq n (+ n 1));setq
);repeat
(if (not (equal str ""))
(setq lst2 (append lst2 (list str))
lst3 (append lst3 (list str2))
);setq then
);if
(setq lst2 (append (list (strcat "A," (car lst2)))
(cdr lst2)
);append
lst3 (append (list (strcat "A," (car lst3)))
(cdr lst3)
);append
);setq
(if (and (setq a (last lst2))
(equal "," (substr a (strlen a)))
);and
(setq lst2 (cdr (reverse lst2))
lst2 (cons (substr a 1 (max 0 (- (strlen a) 1)))
lst2
);cons
lst2 (reverse lst2)
);setq then get rid of that last comma because nothing else follows this lin
e.
);if
(if (and (setq a (last lst3))
(equal "," (substr a (strlen a)))
);and
(setq lst3 (cdr (reverse lst3))
lst3 (cons (substr a 1 (max 0 (- (strlen a) 1)))
lst3
);cons
lst3 (reverse lst3)
);setq then get rid of that last comma because nothing else follows this lin
e.
);if
(if (assoc "SHAPE" lst)
(setq str (list lst2 lst3) ; list with target lin file and bns_temp.lin fi
le
);setq then
(setq str (list lst2));setq else return single string in a list to write to
file
);if
str
);defun mkltype_format2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_zero_strip ( a prec / fuz b)
(setq fuz (/ 1.0 (expt 10 prec)))
(if (equal 0.0 a fuz)
(setq a "0")
(progn
(if (< a 0)
(setq b "-")
(setq b "")
);if
(setq a (abs a)
a (rtos a 2 prec)
);setq
(while (and (> (strlen a) 0)
(equal "0" (substr a 1 1))
);and
(setq a (substr a 2))
);while
(while (and (> (strlen a) 0)
(equal "0" (substr a (strlen a) 1))
);and
(setq a (substr a 1 (- (strlen a) 1)
);substr
);setq
);while
(if (equal "." (substr a
(max (strlen a) 1)
1
)
)
(setq a (substr a 1 (- (strlen a) 1)
);substr
);setq
);if
(if (equal a "")
(setq a "0")
(setq a (strcat b a))
);if
);progn then
);if
a
);defun bns_zero_strip
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun mkltype_format ( lst fuz / Y CNT LT N A DX B c LST2)
(setq y (cadr lst)
cnt (caddr lst)
lst (car lst)
lt (getvar "ltscale")
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
dx (abs (- (cadr a) (car a)))
);setq
(cond
((equal "SHAPE" (cadddr a))
(setq b (list "SHAPE"
(nth 4 a) ;the shape name or text string
(nth 5 a) ;the shx file or the stylename
0 ;the x offset
(/ (- (caddr a) y) lt) ;the y offset
(/ (nth 6 a) lt) ;the size
(nth 7 a) ;the rotation
(nth 8 a) ;the output shxname for the bn
s_temp.lin file.
);list
);setq then
);cond #1
((equal "TEXT" (cadddr a))
(setq b (list "TEXT"
(nth 4 a) ;the shape name or text string
(nth 5 a) ;the shx file or the stylename
0 ;the x offset
(/ (- (caddr a) y) lt) ;the y offset
(/ (nth 6 a) lt) ;the size
(nth 7 a) ;the rotation
);list
);setq then
);cond #2
(T
(setq b (list (/ (* dx (last a)) ;pen up/pen down is indicated by -1.0 or 1.0
lt ;respectiveley as the last item in a
)
);list
);setq
);cond #3
);cond close
(setq lst2 (append lst2 (list b)));setq
(setq n (+ n 1));setq
);repeat
(if (and (>= (car (car lst2)) 0)
(= (car (last lst2)) 0)
);and
(setq lst2 (reverse (cdr (reverse lst2)))
cnt (- cnt 1)
);setq then remove the 0 at the end cuz it's not needed.
);if
(if (and (> cnt 12)
(or (assoc "SHAPE" lst2)
(assoc "TEXT" lst2)
);or
);and
(progn ;attempt to combine some segments that are on each side of a
shape/text
;object. Then adjust the x offset for the shape/text
(princ "\nOptimizing segments...")
(setq a (cadr lst2))
(setq n 2)
(while (< (+ n 1) (length lst2))
(setq b (nth n lst2)
c (nth (+ n 1) lst2)
);setq
(if (and (or (equal (car b) "SHAPE")
(equal (car b) "TEXT")
);or
(equal (length a) 1) ;the previous element is a dash
(equal (length c) 1) ;dash the next element is a dash
(>= (- n 2) 0) ;can't remove the first pen down
(not (equal "SHAPE" (car (nth (- n 2) lst2))));element before 'a'
is not shape/text
(not (equal "TEXT" (car (nth (- n 2) lst2))))
(> (* (car a) (car c)) 0) ;segments have the same sign
);and
(progn
(setq b (acet-list-put-nth (abs (car a)) b 3)
lst2 (acet-list-put-nth b lst2 n)
c (list (+ (car a) (car c)))
lst2 (acet-list-put-nth c lst2 (+ n 1))
lst2 (acet-list-remove-nth (- n 1) lst2)
n (- n 1)
cnt (- cnt 1)
);setq
);progn then combine a and b and adjust x offset for b
);if
(setq a b)
(setq n (+ n 1));setq
);while
(princ "Done.")
);progn then
);if

(list lst2 cnt)


);defun mkltype_format

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun mkltype_ss_parse ( p3 p4 ang ss fuz / cnt n na e1 shpname shx
shx2 b p1 a lst p2 lst2 lst3
)
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(cond
(
(equal "SHAPE" (cdr (assoc 0 e1)))
(if (setq shpname (cdr (assoc 2 e1)))
(progn
(setq shx (bns_get_shapefile shpname)
shx2 shx
);setq
(if (and shx
(setq b (acet-file-find-font (acet-filename-path-remove shx)))
(acet-str-equal b (acet-file-find-font shx))
);and
(setq shx (acet-filename-path-remove b));setq
);if
(setq shx (acet-filename-ext-remove shx));setq
(setq p1 (trans (cdr (assoc 10 e1)) na 1)
a (list (car p1) (car p1) (cadr p1)
"SHAPE"
shpname
shx ;possibly stripped path versio
n of the shx filename
;shx will be used for the targ
et linetype file
(cdr (assoc 40 e1)) ;the size
(* (acet-geom-angle-trans ;the rotation expressed in
degrees
(cdr (assoc 50 e1))
(cdr (assoc 210 e1))
1
)
(/ 180.0 pi)
)
shx2 ;the filename.shx as it exists in th
is drawing.
;this will be used for the bns_temp.
lin file
;that is created and loaded in addit
ion to
;[filename].lin that the user specif
ies.
);list
);setq
);progn then
);if
);cond #1
((equal "TEXT" (cdr (assoc 0 e1)))
(setq p1 (trans (cdr (assoc 10 e1)) na 1)
a (list (car p1) (car p1) (cadr p1)
"TEXT"
(strcat "\"" (cdr (assoc 1 e1)) "\"") ;the string
(cdr (assoc 7 e1)) ;the style
(cdr (assoc 40 e1)) ;the size
(*
(acet-geom-angle-trans ;the rotation expressed in degrees
(cdr (assoc 50 e1))
(cdr (assoc 210 e1))
1
)
(/ 180.0 pi)
)
);list
);setq
);cond #2
(T
(setq lst (acet-geom-object-point-list na (* 5 (acet-geom-pixel-unit)))
p1 (acet-geom-list-extents lst)
p2 (cadr p1)
p1 (car p1)
a (list (car p1) ;min x and
(car p2) ;max x
(cadr p1) ;and the y coord
(cdr (assoc 0 e1)) ;type
;na
);list
);setq
);cond #3
);cond close
(if (and (>= (cadr a) (car p3))
(<= (car a) (car p4))
);and
(progn
;make sure the ent is fully within the start/stop definition points
(if (> (car p3) (car a))
(setq a (append (list (car p3)) (cdr a)));setq
);if
(if (> (cadr a) (car p4))
(setq a (append (list (car a) (car p4)) (cdr (cdr a))));setq
);if
(if (or (equal "TEXT" (nth 3 a))
(equal "SHAPE" (nth 3 a))
);or
(setq lst2 (append lst2 (list a)));setq then add it to the shape/text l
ist
(setq lst3 (append lst3 (list a)));setq else add to pen down line segme
nt list
);if
);progn then there is overlap with the start/stop definition points
(progn
(if a
(progn
(princ (acet-str-format "\nIgnoring %1 object outside of line definiti
on start/stop points." (nth 3 a)))
(if (equal "SHAPE" (nth 3 a))
(princ "\nSHAPE insertion points must fall within start/stop point
s.")
);if
(if (equal "TEXT" (nth 3 a))
(princ "\nTEXT start point must fall within lin definition start/s
top points.")
);if
);progn
);if
);progn else let the user know whats going on.
);if

(setq n (+ n 1));setq
);repeat
(if lst2
(setq lst2 (acet-list-isort lst2 0));setq then sort the shapes and text
);if
(setq lst3 (bns_combine_overlap p3 p4 lst3) ;pen down segments.
lst3 (bns_add_pen_up_segments p3 p4 lst3)
);setq
(setq lst2 (bns_combine_symbols_and_segments lst3 lst2 fuz));setq
(setq cnt 0) ;count how many line/point segments
(setq n 0)
(repeat (length lst2)
(if (and (not (equal "SHAPE" (nth 3 (nth n lst2))))
(not (equal "TEXT" (nth 3 (nth n lst2))))
);and
(setq cnt (+ cnt 1))
);if
(setq n (+ n 1));setq
);repeat
(list lst2 (cadr p3) cnt)
);defun mkltype_ss_parse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_combine_overlap (P1 P2 LST / A N J LST2 X1 X2 X3 X4 LST3 B)
(setq n 0)
(while (< n (length lst))
(setq a (nth n lst)
x1 (max (car a) (car p1))
x2 (min (cadr a) (car p2))
);setq
(if (not (member n lst2))
(setq j (+ n 1))
(setq j (length lst))
);if
(while (< j (length lst))
(setq b (nth j lst)
x3 (max (car b) (car p1))
x4 (min (cadr b) (car p2))
);setq
(if (and (not (member j lst2))
(or (and (<= x3 x2)
(>= x3 x1)
);and
(and (<= x4 x2)
(>= x4 x1)
);and
);or
);and
(setq x1 (min x1 x2 x3 x4)
x2 (max x1 x2 x3 x4)
lst2 (append lst2 (list j))
);setq then
);if
(setq j (+ j 1));setq
);while
(if (not (member n lst2))
(setq a (append (list x1 x2) (cdr (cdr a)))
lst3 (append lst3 (list a))
);setq
);if
(setq n (+ n 1));setq
);while
(if lst3
(setq lst3 (acet-list-isort lst3 0))
);if
lst3
);defun bns_combine_overlap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_add_pen_up_segments ( p1 p2 lst / a b n lst2)
(setq a (car lst))
(if (or (not lst)
(< (car p1) (car a))
);or
(setq a (list (car p1) (car p1) (cadr p1) "POINT")
lst (append (list a) lst)
);setq then add a point up front.
);if
(setq a (last lst));setq
(if (or (not lst)
(< (cadr a) (car p2))
);or
(setq a (list (car p2) (car p2) (cadr p1) "POINT")
lst (append lst (list a))
);setq then add a point to the end.
);if
(setq a (car lst)
a (append a (list 1.0))
lst2 (list a)
);setq
(setq n 0)
(repeat (max 0 (- (length lst) 1))
(setq a (nth n lst)
b (nth (+ n 1) lst)
);setq
(if (> (car b) (cadr a))
(setq lst2 (append lst2
(list (list (cadr a) (car b) (cadr p1) "LINE" -1.0))
);append
);setq then add a pen up segment
);if
(setq b (append b (list 1.0))
lst2 (append lst2 (list b))
);setq add the pen down segment
(setq n (+ n 1));setq
);repeat
lst2
);defun bns_add_pen_up_segments
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;bns_combine_symbols_and_segments
; takes two lists and returns a single list
;Args:
;lst is a list sublists containing line segments:
;((minx maxx y entitytype ...)
; ...
;)
;lst2 is a list of sublists containing TEXT/SHAPE information.
;((minx maxx y entitytype string/shapename style/shapefile size rotation)
; ...
;)
;
(defun bns_combine_symbols_and_segments ( lst lst2 fuz / n a b x1 x2 x3 lst3)
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
x1 (car a)
x2 (cadr a)
);setq
(while (and lst2 ;while shape/text objects are on current segmen
t
(setq b (car lst2)
x3 (car b)
)
(>= x3 x1)
(<= x3 x2)
);and
(if (and (not (equal x3 x1))
(not (equal x3 x2))
);and
(setq lst3 (append lst3
(list (append (list x1 x3) (cdr (cdr a)))
b
);list
);append
);setq then split the line segment because text/shape falls between it's e
nd points
(progn
(if (equal x3 x2)
(progn
(if (and ;lst3
(equal (- x2 x1) 0.0 fuz)
(or (not lst3)
(equal "SHAPE" (nth 3 (last lst3)))
(equal "TEXT" (nth 3 (last lst3)))
);or
);and
(setq a (append (list x1 (+ x1 fuz)) (cdr (cdr a))));setq then
);if
(setq lst3 (append lst3
(list a
b
);list
);append
);setq then
);progn then the shape/text object is at the end of the current segme
nt
(progn
(if (not lst3)
(setq lst3 (list (list x1 x1 (caddr a)
"LINE"
1.0
);list
);list
);setq then put a dummy point at the front
);if
(if (and lst3
(or (equal "SHAPE" (nth 3 (last lst3)))
(equal "TEXT" (nth 3 (last lst3)))
);or
);and
(setq lst3 (append lst3
(list
(list (car (last lst3))
(+ (car (last lst3)) fuz)
(caddr (last lst3))
"LINE"
(last (nth (- (length lst3) 2)
lst3
);nth
);last use sign of prev segment
);list
);list
);append
);setq then put a dummy point between the shape/text objects
);if ;so that they will not be on the same segment
(setq lst3 (append lst3
(list b);list
);append
);setq
);progn else shape/text object is at begining of current segment
);if
);progn else shape/text is at one of the endpoints of the segment
);if
(setq lst2 (cdr lst2)
x1 (max x3 x1)
a (append (list x1 x2) (cdr (cdr a)))
);setq
);while shape/text objects fall between the current line segment.
(if (not (and lst3
(or (equal "SHAPE" (nth 3 (last lst3)))
(equal "TEXT" (nth 3 (last lst3)))
);or
(equal 0.0 (- (cadr a) (car a)))
);and
);not
(setq lst3 (append lst3 (list a)))
);if
(setq n (+ n 1));setq
);repeat
lst3
);defun bns_combine_symbols_and_segments

(acet-autoload2 '("Mkshape.lsp" (bns_get_shapefile shapename)))


(princ)
ìkëÅ ö¢G\ C¶ ¦J éÔ ‾ãÐä÷( Ýât½à ¢á&ªØÑRj .¡aß Ké2f¤ ¥àF©øQa´NÓ% Õ ãô¢¸.q¬^£ 8£,Þ¢HìQ%Ú
²²vB¬
_±0õpy¾ñýËæ‾
H 2Ӧʴk N}¶»;oÐ\àµ
Ö^—|ZÁn}lßß$
xÌùƼþî¼~Sî
ïPÏwI¡½
)×cÉ
àܲégÜÉ:1´Íþv(üûTø
ÁG]È20T2ã- ö Sö×=Æå.ýj ñí ü×1þëÉãËÓú Ô ÙQYð¤$,<? Ï á¡«ò
9;;
;;;
;;; MKSHAPE.LSP - Written by Randy Kintzley
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;Globals used for retaining defaults
; acet:mkshape-fna - default filename
; acet:mkshape-res - default resolution for shape
;
(defun c:mkshape ( / SWAP_3 FNA LST MX A SHPTYPE NAME
KEY ID FLAG RES BSPNT SS FNA2 newflag xflag xfna flt
)

(acet-error-init
(list (list "cmdecho" 0
"expert" nil
);list
T
);list
);acet-error-init
(sssetfirst nil nil)

;local function
(defun swap_3 ( lst / n a)
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
a (append (list (caddr a) (cadr a) (car a))
(cdr (cdr (cdr a)))
);append re-arange the order of the first 3 elements for
; searching using assoc
lst (subst a (nth n lst) lst)
);setq
(setq n (+ n 1));setq
);repeat
lst
);defun swap_3
;get the shp filename to write to.
(if (not acet:mkshape-fna)
(setq acet:mkshape-fna (acet-filename-ext-remove (getvar "dwgname")));setq t
hen
);if
(setvar "expert" 2)
(setq fna (ACET-FILE-WRITEDIALOG "MKSHAPE - Select Shape File"
acet:mkshape-fna
"shp"
"Acet:Mkshape"
1665
);ACET-FILE-WRITEDIALOG
);setq
(if (assoc "EXPERT" (car acet:sysvar-list))
(setvar "expert" (cadr (assoc "EXPERT" (car acet:sysvar-list))));then
);if
(if fna
(progn
(setq acet:mkshape-fna fna);setq then set the default for next time.
(if (and (not (findfile fna)) ;new shp
(setq a (findfile (strcat (acet-filename-ext-remove fna) ".shx")))
;shx already exists
);and
(progn
(acet-autoload '("yes_no.lsp" "(bns_get_yes_no a b)"))
(if (equal (bns_get_yes_no
(list "OVERWRITE WARNING"
(acet-str-format "\n\n\tMKSHAPE will compile \"%1\"\n\t
to create \"%2.SHX\"\n\n\t\t\"%3.SHX\" already exists.\n\n\t
\t\t\tOverwrite?"
(xstrcase fna)
(xstrcase (acet-filename-ext-remove fna))
(xstrcase (acet-filename-ext-remove fna))
)
);list
'(60 15)
);bns_get_yes_no
0
);equal
(exit)
);if
);progn
);if
(if (and (findfile fna)
(setq lst (bns_read_shp_file fna))
);and
(progn
(setq mx (itoa (last lst))
lst (car lst)
lst (acet-list-isort lst 0)
);setq
(if (and (setq a (assoc "*0" lst))
(equal (cadr a) "4")
);and
(progn
(princ (acet-str-format "\n*Invalid* %1 is a font file." fna ))
(exit)
);progn
(progn
(setq shptype "Shape");setq
(setq lst (swap_3 lst));setq
);progn else it's shape file
);if
);progn then read the shape file and determine if it is a font file or
a shape file.
(progn
(if (not shptype)
(setq shptype "Shape");setq
);if
(setq mx "1")
);progn else ask what type of file the user wishes to write, a Shape or
Font?
);if
(if (equal shptype "Shape")
(progn
(setq name "")
(while (not (snvalid name));not
(setq name (xstrcase (getstring "\nEnter the name of the shape: ")
)
xflag nil
xfna nil
);setq
(cond
((not (snvalid name))
(princ "\n*Invalid shape name*")
);cond #1
((> (strlen name) 18)
(setq name "")
(princ "\n*Invalid* Shape name too long.")
);cond #2
((and
(setq xflag (bns_shape_exists name)) ;shape exist already
(setq xfna (acet-file-find-font (bns_get_shapefile name))) ;wh
at file?
(not (acet-str-equal
xfna ;if same file, it's cool b
ut
(acet-file-find-font ;not if another file defin
es
(strcat (acet-filename-ext-remove fna)
;the same shape.
".shx"
);strcat
)
);acet-str-equal
);not
);and
(princ
(acet-str-format "\n*Invalid* Shape \"%1\" already exists in loade
d shape file \"%2\"." name xfna)
);princ
(if (findfile (strcat (acet-filename-ext-remove xfna) ".SHP"))
(princ
(acet-str-format "\nYou can redefine it only if you choose \"%
1.SHP\" for the filename." (acet-filename-ext-remove xfna))
)
);if
(setq name "")
);cond #3
);cond
);while
(if lst
(setq key mx
;key (caddr (last lst))
;key (itoa (+ 1 (atoi (substr key 2))))
);setq
(setq key "1");else
);if
(setq id name);setq
);progn then SHAPE
(progn
(while (equal (strlen (setq key (getstring "\nEnter the desired charac
ter: ")))
0
);equal
(princ "\n*Invalid*")
);while
(setq key (substr key 1 1)
key (ascii key)
key (itoa key)
id (strcat "*" key)
);setq
(setq name "")
);progn else FONT
);if
(setq flag (assoc id lst))
(if (and (not flag)
(not xflag)
);and
(setq newflag T);set then
);if
(if (or newflag
(initget "Yes No _Yes No")
(equal "Yes"
(getkword "\nThis shape already exists. Overwrite it? [Yes/N
o] <No>: ")
)
);or
(progn
(if flag
(setq lst (acet-list-remove-nth (vl-position flag lst) lst));setq
then
);if
(if (equal shptype "Shape")
(progn
(setq lst (swap_3 lst));setq then
(if flag
(setq key (caddr flag)
key (substr key 2)
);setq then
);if
);progn then
);if
(if (not acet:mkshape-res) (setq acet:mkshape-res 128.0));if
(initget 6)
(setq res (getint
(acet-str-format "\nEnter resolution <%1>: "
(itoa (fix acet:mkshape-res))
)
);getint
);setq
(if (not res)
(setq res acet:mkshape-res);setq then
(setq res (acet-calc-round (abs (float res))
8.0
)
);setq else
);if
(if (< res 8.0)
(setq res 8.0)
(progn
(if (> res 32767)
(setq res 32767.0);setq
);if
);progn else
);if
(setq acet:mkshape-res res)
(if (and (setq bspnt (initget 1)
bspnt (getpoint "\nSpecify insertion base point: ")
);setq
(setq flt (acet-ss-flt-cspace)
flt (list
'(-4 . "<AND")
(car flt) ;; the tab
(cadr flt) ;; the 67 group code
'(-4 . "<OR")
'(0 . "LINE") '(0 . "ARC") '(0 . "CIRCL
E")
'(0 . "LWPOLYLINE") '(0 . "ELLIPSE")
'(0 . "SPLINE") '(0 . "3DFACE") '(0 . "
SOLID") '(0 . "TRACE")
'(-4 . "<AND") ;dis-allow 3dmesh an
d polyface mesh
'(0 . "POLYLINE")
'(-4 . "<NOT")
'(-4 . "&")
'(70 . 112)
'(-4 . "NOT>")
'(-4 . "AND>")
'(-4 . "OR>")
'(-4 . "AND>")
);list
ss (ssget flt)

);setq
);and
(progn
(setq fna2 (strcat (acet-filename-ext-remove fna) ".shx"))
(acet-file-backup fna) ;Create temp backups of old files (shp an
d shx)
(acet-file-backup fna2) ;and add a routine to *error* to restore
;the backups in the event of an error.
(mkshape shptype bspnt ss fna key name res lst mx)
(command "_.compile" fna)
(if (and fna2
(bns_shx_loaded fna2)
);and
(progn
(bns_shx_reload fna2)
);progn then
(progn
(command "_.load" fna2)
;(setq newflag T)
);progn else
);if
(if (and name
(bns_shape_exists name)
);and
(progn
(if newflag
(princ (acet-str-format "\nShape \"%1\" created." name))
(princ (acet-str-format "\nShape \"%1\" redefined." name
))
);if
(princ "\nUse the SHAPE command to place shapes in your draw
ing.")
);progn
(princ "\nShape definition failed.")
);if
;(command "_.shape" name pause 1.0 0)
(acet-file-backup-delete)
;all is OK so delete the backup files
);progn then
);if
);progn then
);if
);progn then got fna
);if
(acet-error-restore)
);defun c:mkshape

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun mkshape ( shptype bspnt ss fna key name res lst2 mx /
FH NXTKEY N A B J LST d fact
)
(if (setq fh (open fna "w"));setq
(progn
(if lst2
(progn
(setq nxtkey (+ 1 (atoi mx)));setq
(princ "\nRe-writing existing portion of shp file out...")
);progn then
(setq nxtkey 2);setq else
);if
(if (and (equal shptype "Font")
(not lst2)
);and
(setq lst2 (list
(list
"*0" "4" "AutoCAD Express Tools (C) Copyright 1999 by Auto
desk, Inc."
"21,7,2,0"
);list
);list
);setq then
);if
(setq n 0) ;write the existing portion of the font out.
(repeat (length lst2)
(setq a (nth n lst2)
b ""
j 0
);setq
(write-line (strcat (car a) "," (cadr a) "," (caddr a)) fh)
(setq a (cdr (cdr (cdr a))));setq
(setq j 0)
(repeat (length a)
(write-line (nth j a) fh)
(setq j (+ j 1));setq
);repeat

(setq n (+ n 1));setq
);repeat
(if lst2 (princ "Done."));if
(close fh)
(setq lst (mkshape_get_ent_points bspnt ss res);get a list of points on t
he geometry
d (cadr lst) ;the dx
lst (car lst)
fact (find_best_scale_fact d res)
lst (shape_def2 lst res d fact) ;convert the coords to shape format
.
);setq
(princ "Done.")
(princ "\nWriting new shape...")
(mkshape_write_new_shape key name lst fna nxtkey)
(princ "Done.")
);progn then
);if
);defun mkshape

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;get_ent_points - takes a selection set and a resolution value (integer i.e. 12
7).
;Returns a list of sub-lists.
;Each sub-list is a list of points along an entity from the selection set.
;
;
(defun mkshape_get_ent_points ( bspnt ss res / N NA LST P1 P2 A LST2 D LST3 J LS
T4)
(princ "\nDetermining geometry extents...")
(setq n 0)
(repeat (sslength ss) ;get the max and min points
(setq na (ssname ss n)
lst (acet-geom-object-point-list na nil)
);setq
(if (not p1)
(setq p1 (acet-geom-list-extents lst));setq then
(setq p1 (acet-geom-list-extents (append p1 lst)));setq else
);if
(setq n (+ n 1));setq
);repeat
(princ "Done.")
(setq p2 (cadr p1)
p1 (car p1)
a (min (- (car p2) (car p1))
(- (cadr p2) (cadr p1))
);min
);setq
(if (equal a 0.0 0.00000001)
(setq a (max (- (car p2) (car p1))
(- (cadr p2) (cadr p1))
);max
);setq then
);if
(if (equal a 0.0 0.00000001)
(setq a 0.00000001)
);if
(setq a (/ a res) ;calculate the resolution to use with ep_list
a (/ a 5.0) ;five points on the ent for every shape res grid point
p1 nil ;will help to ensure a good translation.
);setq
(princ "\nBuilding coord lists...")
(setq n 0)
(repeat (sslength ss) ;get the list of point lists and a new max and
min
(setq na (ssname ss n)
lst (acet-geom-object-point-list na a)
lst2 (append lst2 (list lst))
);setq
(if (not p1)
(setq p1 (acet-geom-list-extents lst));setq then
(setq p1 (acet-geom-list-extents (append p1 lst)));setq else
);if
(setq n (+ n 1));setq
);repeat
(princ "Done.")

(princ "\nFormating coords....")


(setq p2 (cadr p1) ;get ready to shift all of the points such that
p1 (car p1) ;the lower left most point is at the origin.
d (acet-geom-delta-vector p1 p2)
d ;(/ 1.0 ;the scale factor to bring the biggest dimension down
to 1.0
(max (abs (car d)) (abs (cadr d)))
;)
p2 (acet-geom-delta-vector p1 p2) ;p2 is now expressed as an off
set from p1
p2 (acet-geom-vector-scale p2 d) ;adjust for scale to 1
p1 (acet-geom-vector-scale bspnt -1.0) ;The offset to move from base poi
nt to 0,0
);setq
(setq n 0)
(repeat (length lst2)
(setq lst (nth n lst2) ;list of coords for a single ent.
lst3 nil
);setq
(setq j 0)
(repeat (length lst)
(setq a (nth j lst)
a (acet-geom-vector-add a p1) ;move it
;a (acet-geom-vector-scale a d) ;scale it
);setq
(setq lst3 (append lst3 (list a)));setq
(setq j (+ j 1));setq
);repeat
(setq lst4 (append lst4 (list lst3)));setq
(setq n (+ n 1));setq
);repeat
(list lst4 d)
);defun mkshape_get_ent_points
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun shape_def2 ( lst res dx fact / A K N LST2 LST3 J B V D LST4)

;just to put things back the way they were, add a fake entity
;sublist to make the last point a return to 0,0.
(if (not (equal (last lst) '((0.0 0.0))));not equal
(setq lst (append lst '(((0.0 0.0))) );append
);setq then
);if
(setq a '(0.0 0.0 0.0));setq the pen location
(setq k 0);setq
(setq n 0)
(repeat (length lst) ;repeat through the list of point sublists (one for eac
h object)
(setq lst2 (nth n lst)
);setq
;(pline (list '(62 . 1) lst2))
(setq lst2 (car (snap_to_shp_res lst2 res dx)) ;the snapped points
lst3 nil
);setq
;(pline (list '(62 . 2) lst2))
;(getstring "hey")
;(entdel (entlast))
;(entdel (entlast))

(acet-spinner)
(setq j 0)
(repeat (length lst2) ;repeat through coord list and con
vert
(setq b (nth j lst2)
v (acet-geom-delta-vector a b) ;the offset from curr
ent pen pos to point b
v (vtoshp v res dx) ;the vector converted to a SHP
string vector
d (acet-geom-vector-add a (shptov v res dx)) ;d is a candidate for ne
w pos. of the pen
);setq
(if (or (not (equal "(0,0)" (substr v 1 5))) ;not a 0 length vector
(not lst3)
);or
(progn
(setq a d);setq ;set the new pen location
(if (not lst3)
(setq lst3 (append (vect_dist_check2 (list v)) ;move to start of obje
ct
(list "001") ;drop the pen down
);append
);setq
(setq lst3 (append lst3
(vect_dist_check2 (list v)) ;move along the object
);append
);setq
);if
);progn then the offset was not a 0 length vector so add it to the list
);if
(setq j (+ j 1));setq
);repeat
(if lst3
(setq lst4 (append lst4 (list lst3)));setq add the converted object geometr
y to lst4
);if
(setq n (+ n 1));setq
);repeat
;Now add needed pen up and pen down sequences.
;Also create subshapes as needed.
(setq lst nil
lst2 nil
k 0
);setq
(setq n 0)
(repeat (length lst4)
(setq lst3 (nth n lst4));setq the geometry for an object
(setq lst2 (append lst2 ;a list of one or more converted objects
(list "002" "9") ;pen up to get ready for new object
);append ; lst2 holds one shape def at max
k (+ k 2)
);setq
(while (not (equal (car lst3) "001")) ;loop until reaching the pen down/start po
int
(setq lst2 (append lst2 (list (car lst3)))
k (+ k 2)
lst3 (cdr lst3)
);setq
(if (> k 1900)
(setq lst2 (start_new_subshape lst2 k dx res fact)
lst (append lst (list lst2)) ;lst is a list of shape(s)
lst2 (list "002" "9") ;continue pen up for the next shape
k 2
);setq then
);if
);while
(if (and (wcmatch (last lst2) "(*)") ;if last item is a coord and its not
(0,0)
(not (equal (last lst2) "(0,0)")) ;to end the 9 specification
);and
(setq lst2 (append lst2 (list "(0,0)"))
k (+ k 2)
);setq
);if
(setq lst2 (append lst2 (list "001" "9")) ;now at ent start so drop the pen down
k (+ k 2)
lst3 (cdr lst3) ;remove the "001" from lst3
);setq
(setq j 0)
(repeat (length lst3) ;with pen down, race through the coords of the ent
(setq a (nth j lst3))
(setq lst2 (append lst2 (list a))
k (+ k 2)
);setq
(if (> k 1900)
(setq lst2 (start_new_subshape lst2 k dx res fact)
lst (append lst (list lst2))
lst2 (list "9") ;continue pen down for the next shape
k 1
);setq then
);if
(setq j (+ j 1));setq
);repeat
(if (equal (last lst2) "9")
(setq lst2 (reverse (cdr (reverse lst2)))
k (- k 1)
);setq then
(progn
(if (and (not (equal (last lst2) "(0,0)"))
(wcmatch (last lst2) "(*)")
);and
(setq lst2 (append lst2 (list "(0,0)"))
k (+ k 2)
);setq
);if
);progn else
);if
(acet-spinner)

(setq n (+ n 1));setq
);repeat
(if lst2
(setq lst2 (start_new_subshape lst2 k dx res fact)
lst (append lst (list lst2))
);setq
);if

lst
);defun shape_def2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun start_new_subshape ( lst2 k dx res fact / )
(if (and (not (equal (last lst2) "(0,0)"))
(wcmatch (last lst2) "(*)")
);and
(setq lst2 (append lst2 (list "(0,0)"))
k (+ k 2)
);setq
);if
(setq lst2 (mkshape_add_scale_fact lst2 k dx res fact));setq
);defun start_new_subshape
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun vect_dist_check2 ( lst / A B S1 S2 C D X Y FLAG)
(while (not flag)
(setq a (last lst)
a (substr a 2)
a (substr a 1 (- (strlen a) 1))
a (acet-str-to-list "," a)
b (read (cadr a))
a (read (car a))
);setq
(if (< a 0)
(setq s1 -1)
(setq s1 1)
);if
(if (< b 0)
(setq s2 -1)
(setq s2 1)
);if
(setq a (abs a)
b (abs b)
);setq
(setq c (max a b));setq
(if (> c 127)
(progn
(setq d (/ 127.0 (float c))
x (list (fix (acet-calc-round (* d a) 1.0))
(fix (acet-calc-round (* d b) 1.0))
)
y (list (* (- a (car x)) s1)
(* (- b (cadr x)) s2)
);list
x (list (* (car x) s1)
(* (cadr x) s2)
);list
x (strcat "(" (itoa (car x)) "," (itoa (cadr x)) ")")
y (strcat "(" (itoa (car y)) "," (itoa (cadr y)) ")")
lst (reverse (cdr (reverse lst)))
lst (append lst (list x y))
);setq
);progn then
(setq flag T);setq else no need to to split last vector
);if
);while
lst
);defun vect_dist_check2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun mkshape_write_new_shape ( key name lst2 fna nxtkey / FH SUB J LST B FLAG
A N)
(if (not (setq fh (open fna "a")))
(setq lst2 nil);setq then abort
);if
(setq nxtkey (- nxtkey 1)
sub name
);setq
(setq j 0)
(repeat (length lst2)
(setq lst (nth j lst2)
b (cadr lst) ;the k or size number
);setq
(if (not (equal (+ j 1) (length lst2)))
(setq b (+ b 2) ;and to size for name and key?
flag T
);setq then this is the last time through the repeat loop
(setq flag nil);setq else
);if
(setq lst (car lst) ;the shape vector data
;build the header for the shape
a (strcat "*" key "," ;- the key number
(itoa (+ 1 b)) ;- size (add one for the end marke
r "0")
","
sub ;- the name of the shape or descri
ption
;(xstrcase name) ; for a character
);strcat
);setq
(write-line a fh) ;write the header for the new shape
(setq a "")
(setq n 0);setq
(repeat (length lst) ;write out the vector data for the new shape
(if (>= (strlen a) 118)
(progn
(write-line (substr a 2) fh)
(setq a "")
);progn then
);if
(setq a (strcat a "," (nth n lst)));setq
(setq n (+ n 1));setq
);repeat
(if (> (strlen a) 1)
(setq a (substr a 2))
(setq a "")
);if
(setq sub (strcat name "_SUBSHAPE_" key)
nxtkey (+ nxtkey 1)
key (itoa nxtkey)
);setq
(if flag
(setq a (strcat a ",7," key));then reference the next sub shape
);if
(setq a (strcat a ",0"));setq
(write-line a fh)
(setq j (+ j 1));setq
);repeat
(close fh)
);defun mkshape_write_new_shape
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun snap_to_shp_res ( lst res dx / N A C LST2 LST3 B)
(setq n 0)
(repeat (length lst) ;repeat throught the coords.
(setq a (nth n lst)
c a
a (vtoshp a res dx) ;change to shape format
a (shptov a res dx) ;change back to vector
);setq
(if (not (equal a (last lst2))) ;if not a duplicate point
(progn
(if (< (length lst2) 2) ;simply append for the first two time
s
(setq lst2 (append lst2 (list a)) ;the snapped points and the
lst3 (append lst3 (list c)) ;original points
);setq then
(progn
(if (equal (angle (nth (- (length lst2) 2) lst2) ;if no change in angl
e
(last lst2)
)
(angle (last lst2) a)
0.00001
);equal
(progn
;(print "same angle")
(setq lst2 (append (reverse (cdr (reverse lst2)))
(list a)
);append
lst3 (append (reverse (cdr (reverse lst3)))
(list c)
);append
);setq then last two points are at same angle so remove last and
add new one
);progn
(setq lst2 (append lst2 (list a))
lst3 (append lst3 (list c))
);setq else add new point
);if
;do some resolution enhancment if needed
(if (and (> (length lst2) 2)
(setq b (shp_kill_coord lst2 lst3 b));setq resolution enhanci
ng function.
);and
(setq lst2 (car b)
lst3 (cadr b)
b 99
);setq
(setq b nil)
);if
);progn else check for duplicate points/same angle points/and points th
at can
;be removed.
);if
);progn
);if
(setq n (+ n 1));setq
);repeat

(list lst2 lst3) ;return the snapped points and remaining origininals that coori
spond.
);defun snap_to_shp_res
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun shp_kill_coord ( lst lst2 flag / A B C P1 P2 P3 X )
(setq lst (reverse lst)
a (car lst) ;the snapped points
b (cadr lst)
c (caddr lst)
lst2 (reverse lst2)
p1 (car lst2) ;the original coords.
p2 (cadr lst2)
p3 (caddr lst2)
x (inters a c
p2
(polar p2 (+ (angle a c) (/ pi 2.0)) 1.0)
nil
);inters
)
(if (and x
(not (equal 0.0 (acet-geom-vector-side x a c)))
(or (and (not (equal flag 99))
(or
(<= (distance a p1) (distance b p2))
(<= (distance c p3) (distance b p2))
);or
);and
(and (<= (distance a p1) (distance b p2))
(<= (distance c p3) (distance b p2))
);and
);or
(< (distance p2 x)
(distance p2 b)
)
);and
(progn
(acet-spinner)
;(princ "\nResolution enhancing")
(setq lst (append (list a c) (cdr (cdr (cdr lst))))
lst (reverse lst)
lst2 (append (list p1 p3) (cdr (cdr (cdr lst2))))
lst2 (reverse lst2)
lst (list lst lst2)
);setq
);progn then enhance by removing the middle coord.
(setq lst nil)
);if
lst
);defun shp_kill_coord
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun find_best_scale_fact ( dx res / x mx lst lst2)
;Need to multiply by dx/res
;but first we need to express dx/res
;accurately with integers.
(setq mx 10000.0 ;- num of decmal places to shift the number in order
; to convert to an integer and retain at least some precisi
on
);setq
(if (< dx mx)
(setq x (acet-calc-round (/ mx dx) 1.0)
dx (* dx x)
res (* res x)
);setq
);if
(if (< res mx)
(setq x (acet-calc-round (/ mx res) 1.0)
res (* res x)
dx (* dx x)
);setq
);if
(setq dx (acet-calc-round dx 1.0)
res (acet-calc-round res 1.0)
);setq
(while (or (not lst)
(not lst2)
);or
(setq lst (find_best_multiples dx)
lst2 (find_best_multiples res)
);setq
(if (or (< dx 10000)
(< res 10000)
);or
(progn
(if (not lst)
(setq dx (+ dx 1))
);if
(if (not lst2)
(setq res (+ res 1))
);if
);progn then
(setq dx (acet-calc-round (/ dx 10.0) 1.0)
res (acet-calc-round (/ res 10.0) 1.0)
);setq
);if
);while
(list lst
lst2
);list
);defun find_best_scale_fact
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun find_best_multiples ( a / x b c d n plst lst lst2 )
(setq plst
(list 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 8
9 97 101
103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191
193 197 199
211 223 227 229 233 239 241 251
);list of prime numbers
);setq
(setq x a);setq save original val in case we have to use recursion later
(setq b 1.0)
(while (> a 254)
(setq d a)
(setq n 1)
(while (and (< n (length plst))
(> a 254)
(< n a)
);and
(setq c (float (nth n plst)))
(if (equal (/ a c)
(float (/ (fix a) (fix c)))
);equal
(progn
(if (<= (* b c) 254)
(setq b (* b c));setq then
(progn
(setq lst (append lst (list (list b)))
b c
);setq then
);progn else
);if
(if (not (equal 1 a))
(setq a (acet-calc-round (/ a c) 1.0));setq
);if
(setq n (+ (length plst) 1));setq
);progn then 'a is evenly divisible by c
);if
(setq n (+ n 1));setq
);while
(if (not (equal a d))
(setq lst (append lst (list (list b)))
b 1.0
);setq
(progn
(if (and (equal a d)
(equal n (length plst))
);and
(setq a 1
lst nil
);setq then jump out cuz we must have hit a prime
);if
);progn
);if
);while
(if (and (not (equal a 1))
(<= a 254)
);and
(setq lst (append lst (list (list a))));setq
);if
(if lst
(progn
(setq lst (acet-list-isort lst 0));setq
(setq n 0)
(setq b 1.0)
(repeat (length lst)
(setq a (car (nth n lst)))
(if (< (* b a) 254)
(setq b (* b a))
(setq lst2 (append lst2 (list b))
b a
);setq
);if
(setq n (+ n 1));setq
);repeat
(if (not (equal b 1.0))
(setq lst2 (append lst2 (list b)));setq
);if
(setq lst lst2)
);progn then
);if

lst
);defun find_best_multiples
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun mkshape_add_scale_fact ( lst3 k dx res fact / lst lst2 a n )
;fact is from (find_best_scale_fact dx res)
(setq lst (car fact) ;the numerator factors
lst2 (cadr fact) ;the denominator
);setq
(setq n 0)
(while (< n (length lst2)) ;do the division first
(setq a (fix (nth n lst2))
lst3 (append (list "3" (itoa a))
lst3
(list "4" (itoa a))
);append
k (+ k 4)
);setq
(setq n (+ n 1));setq
);while
(setq n 0)
(while (< n (length lst)) ;do the multiplying
(setq a (fix (nth n lst))
lst3 (append (list "4" (itoa a))
lst3
(list "3" (itoa a))
);append
k (+ k 4)
);setq
(setq n (+ n 1));setq
);while
(list lst3 k)
);defun mkshape_add_scale_fact

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun shptov ( a res dx / b)
(setq res (/ (float res) dx))
(if (or (equal "8" (substr a 1 1))
(equal "9" (substr a 1 1))
);or
(setq a (substr a 3));setq
);if
(setq a (acet-str-to-list "," a)
b (cadr a)
a (car a)
a (list (/ (atof (substr a 2))
res
)
(/ (atof (substr b
1
(- (strlen b) 1)
)
)
res
)
);list
);setq
a
);defun shptov
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun vtoshp ( a res dx / b)
(setq res (/ (float res) dx))
(setq b (cadr a)
a (car a)
a (itoa (fix (acet-calc-round (* res a) 1.0)))
b (itoa (fix (acet-calc-round (* res b) 1.0)))
a (strcat "(" a "," b ")")
);setq
a
);defun vtoshp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun bns_read_shp_file ( fna / FH MX N A LST LST2 C D B LST4 LST3 FLAG)


(if (setq fh (open fna "r"))
(progn
(setq mx 0)
(princ (acet-str-format "\nReading shape file: %1..." fna ))
(setq n 0)
(while (setq a (read-line fh))
(setq a (xstrcase a))
(if (equal n (* 10 (/ n 10)))
(acet-spinner)
);if
(if (equal "*" (substr a 1 1))
(progn
(if lst2
(setq lst (append lst (list lst2))
lst2 nil
);setq
);if
(setq c a
a (acet-str-to-list "," a)
d (acet-str-space-trim (car a))
d (atoi (substr d 2))
);setq
(if (> d mx)
(setq mx d)
);if
(if (not (> (length a) 2))
(progn
(princ (acet-str-format "\nError in shp file at line: %1" (itoa
(+ n 1))))
(exit)
);progn then bail out
);if
(setq b (acet-str-space-trim (caddr a)));setq
(if (wcmatch b "*_SUBSHAPE_*")
(progn
(setq b (acet-str-to-list "_SUBSHAPE_" b)
b (strcat "*" (cadr b))
);setq
(if lst3
(setq lst4 (append lst4 (list lst3))
lst3 nil
);setq then
);if
(setq lst3 (list b) ;the owner/parent key of thi sub-shape
a (list c)
flag T
);setq
);progn then
(progn
(setq flag nil);setq
(if lst3
(setq lst4 (append lst4 (list lst3))
lst3 nil
);setq then
);if
(setq lst3 nil);setq
);progn else not a subshape
);if
);progn then found the begining of a character or shape.
(setq a (list a));setq else
);if
(while a
(if flag
(progn
(if (not (equal (car a) ""))
(setq lst3 (append lst3 (list (car a))))
);if
);progn
(progn
(if (not (equal (car a) ""))
(setq lst2 (append lst2 (list (car a))))
);if
);progn else
);if
(setq a (cdr a))
);while
(setq n (+ n 1));setq
);while read-line succeeds
(close fh)
(if flag
(progn
(if (not (equal lst3 (last lst4)))
(setq lst4 (append lst4 (list lst3)));setq
);if
);progn then
(progn
(if (not (equal lst2 (last lst)))
(setq lst (append lst (list lst2)));setq
);if
);progn else
);if
(setq n 0)
(repeat (length lst4)
(setq a (nth n lst4)
b (assoc (car a) lst)
a (append b (cdr a))
lst (subst a b lst)
);setq
(setq n (+ n 1));setq
);repeat
(princ "Done.")
);progn then opened the file.
);if
(if lst
(setq lst (list lst (+ mx 1)));setq then
);if
lst
);defun bns_read_shp_file
; ======== BEGIN MKSHAPE FUNCTIONS ========
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Return a list of style record objects that are holders for
;loaded shape files.
;
(defun bns_get_shape_styles ( / app doc sty styob name shx lst)
(vl-load-com)
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
sty (vla-get-textstyles doc)
);setq
(vlax-for styob sty
(setq name (vla-get-name styob)
shx (vla-get-fontfile styob)
);setq
(if (equal name "")
(progn
(setq lst (append lst
(list styob
;(handent
; (vla-get-handle styob)
;)
);list
);append
);setq
);progn then
);if
);vlax-for
lst
);defun bns_get_shape_styles

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;bns_shape_exists
;Takes a shape name (string)
;and returns T if the shape exists in a loaded shx file (shape is available)
;returns nil if the shape is not available
(defun bns_shape_exists ( shpname / e1 a)

(setq e1 (list '(0 . "SHAPE") '(100 . "AcDbEntity") '(67 . 0)


'(8 . "0") '(100 . "AcDbShape") '(10 4.07343 3.43308 0.0)
'(40 . 1.0)
(cons 2 shpname)
'(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(60 . 1)
'(210 0.0 0.0 1.0)
)
e1 (entmake e1)
);setq
(if e1
(progn
(if (setq a (acet-layer-locked "0"))
(command "_.layer" "_unlock" "0" "")
);if
(entdel (entlast))
(if a
(command "_.layer" "_lock" "0" "")
);if
);progn then
);if
e1
);defun bns_shape_exists
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;takes an entity name of a shape
;returns the associated shx filename
(defun bns_get_shapefile ( shapename / lst lst2 flag n a fna)
(vl-load-com)
(setq lst (bns_get_shape_styles));setq
(cond
((equal 1 (length lst))
(setq fna (vla-get-fontfile (car lst)));setq
);cond #2
(T
(setq lst2 (bns_disable_shapes lst)
flag T
);setq
);cond #3
);cond close
(setq n 0);setq ;put the shapes back to the way they were.
(while (< n (length lst2))
(setq a (nth n lst2))
(bns_re-enable_shapes (list a))
(if (and flag
(bns_shape_exists shapename)
);and
(progn
(setq fna (vla-get-fontfile (car a))
flag nil
);setq
);progn then
);if
(setq n (+ n 1));setq
);while
fna
);defun bns_get_shapefile

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun bns_disable_shapes ( lst / n ob shx lst2 na e1)
(vl-load-com)
(setq n 0)
(repeat (length lst)
(setq ob (nth n lst)
na (vlax-vla-object->ename ob)
shx (vla-get-fontfile ob)
lst2 (append lst2 (list (list ob shx)))
);setq
(if (and na
(setq e1 (entget na))
);and
(entmod (subst (cons 3 "") (assoc 3 e1) e1))
);if
(setq n (+ n 1));setq
);repeat

lst2
);defun bns_disable_shapes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun bns_re-enable_shapes ( lst / n ob shx na e1)
(vl-load-com)
(setq n 0)
(repeat (length lst)
(setq ob (nth n lst)
shx (cadr ob)
ob (car ob)
na (vlax-vla-object->ename ob)
e1 (entget na)
);setq
(if e1
(entmod (subst (cons 3 shx) (assoc 3 e1) e1))
);if
;(vla-put-fontfile ob shx) ;this works good!
(setq n (+ n 1));setq
);repeat
);defun bns_re-enable_shapes

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes a file name and checks the style table to see if the shx file is referenc
ed.
;returns T if referenced by shape style record
(defun bns_shx_loaded ( shx / lst n ob a flag)
(vl-load-com)
(if (setq shx (acet-file-find-font shx))
(setq shx (xstrcase shx)
lst (bns_get_shape_styles)
);setq then
);if
(setq n 0)
(while (< n (length lst))
(setq ob (nth n lst)
a (vla-get-fontfile ob)
a (acet-file-find-font a)
);setq
(if (and a
(equal (xstrcase a) shx)
);and
(setq flag T
n (length lst)
);setq
);if
(setq n (+ n 1));setq
);while
flag
);defun bns_shx_loaded

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;takes an shx file name and re-loads it
;
(defun bns_shx_reload ( shx / lst shx_sav app doc sty cnt styob name shx2 a)
(vl-load-com)
(setq lst #acet-shx-files
shx_sav (xstrcase shx)
);setq
(if (and (setq shx (acet-file-find-font shx))
(setq shx (xstrcase shx))
(not (assoc shx lst))
);and
(progn
(setq lst (append lst
(list (list
shx
shx_sav
);list
);list
);append
);setq
(setq #acet-shx-files lst)
);progn then
);if
(if (not #acet-shx-mod-count)
(progn
(setq #acet-shx-mod-count 0)
(bns_shx_react)
);progn
);if
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
sty (vla-get-textstyles doc)
);setq
(if shx
(progn
(setq shx (xstrcase shx)
#acet-shx-mod-count (+ #acet-shx-mod-count 1)
cnt #acet-shx-mod-count
);setq
(vlax-for styob sty
(setq name (vla-get-name styob)
shx2 (vla-get-fontfile styob)
shx2 (acet-file-find-font shx2)
);setq
(if (and (equal name "")
shx2
(setq shx2 (xstrcase shx2))
(equal shx shx2)
);and
(progn
(princ (acet-str-format "\nReloading: %1" shx2))
(setq a (bns_path_mod_it shx2 cnt))
(vla-put-fontfile styob a)
);progn then
);if
);vlax-for
);progn then shx was found
);if

);defun bns_shx_reload

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_path_mod_it ( shx2 cnt / a)
(setq shx2 (xstrcase shx2)
shx2 (acet-filename-supportpath-remove shx2)
;shx2 (acet-filename-ext-remove shx2)
a (acet-filename-directory shx2) ;the dir
shx2 (acet-filename-path-remove shx2) ;the base name
);setq
(repeat cnt
(setq a (strcat a ".\\"))
);repeat
(setq a (strcat a shx2))
);defun bns_path_mod_it
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_shx_react ( / )
(vl-load-com)
(acet-editor-reactor-add '(:vlr-beginsave . bns_shx_beginsave))
(acet-editor-reactor-add '(:vlr-savecomplete . bns_shx_savecomplete))
(acet-editor-reactor-add '(:vlr-commandwillstart . bns_shx_begin_cmd))
(acet-editor-reactor-add '(:vlr-commandcancelled . bns_shx_savecomplete))
(acet-editor-reactor-add '(:vlr-commandended . bns_shx_savecomplete))
(acet-editor-reactor-add '(:vlr-beginclose . bns_shx_react_off))
(setq #acet-shx-react-off nil)
);defun bns_shx_react

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_shx_react_off ( a b / )
(vl-load-com)
(setq #acet-shx-react-off T
#acet-shx-files nil
#acet-shx-mod-count nil
#acet-shx-changed-lst nil
);setq
(acet-reactor-remove '(:vlr-beginsave . bns_shx_beginsave))
(acet-reactor-remove '(:vlr-savecomplete . bns_shx_savecomplete))
(acet-reactor-remove '(:vlr-commandwillstart . bns_shx_begin_cmd))
(acet-reactor-remove '(:vlr-commandcancelled . bns_shx_savecomplete))
(acet-reactor-remove '(:vlr-commandended . bns_shx_savecomplete))
(acet-reactor-remove '(:vlr-beginclose . bns_shx_react_off))
);defun bns_shx_react_off

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_shx_begin_cmd ( a b / r )
(vl-load-com)
(if #acet-shx-react-off
(acet-reactor-remove '(:vlr-commandwillstart . bns_shx_begin_cmd))
(progn
(if (or (equal (car b) "WBLOCK")
(equal (car b) "LOAD")
(equal (car b) "DXFOUT")
);or
(bns_shx_beginsave a b)
);if
);progn else
);if
);defun bns_shx_begin_cmd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_shx_beginsave ( a b / lst2 n ob shx)
(vl-load-com)
(if #acet-shx-react-off
(acet-reactor-remove '(:vlr-beginsave . bns_shx_beginsave))
(progn
(if #acet-shx-files
(progn
(setq lst2 (bns_get_shape_styles))
(setq n 0)
(repeat (length lst2)
(setq ob (nth n lst2)
shx (vla-get-fontfile ob)
);setq
(if (and shx
(setq a (acet-file-find-font shx))
(setq a (assoc (xstrcase a) #acet-shx-files))
);and
(progn
;(print "begin")
;(print "")
(vla-put-fontfile ob (cadr a))
(setq #acet-shx-changed-lst (append #acet-shx-changed-lst
(list (list ob shx))
);append
);setq
);progn then
);if
(setq n (+ n 1));setq
);repeat
);progn then
);if
);progn else
);if
);defun bns_shx_beginsave
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_shx_savecomplete ( a b / ob shx )
;(print "bns_shx_savecomplete")
;(print "")
(vl-load-com)
(if #acet-shx-react-off
(progn
(acet-reactor-remove '(:vlr-savecomplete . bns_shx_savecomplete))
(acet-reactor-remove '(:vlr-commandcancelled . bns_shx_savecomplete))
(acet-reactor-remove '(:vlr-commandended . bns_shx_savecomplete))
);progn remove
(progn
(while #acet-shx-changed-lst
(setq a (car #acet-shx-changed-lst)
ob (car a)
shx (cadr a)
#acet-shx-changed-lst (cdr #acet-shx-changed-lst)
);setq
(if (and shx
(acet-file-find-font shx)
);and
(progn
;(print "complete")
(vla-put-fontfile ob shx)
);progn then
);if
);while
);progn else
);if
);defun bns_shx_savecomplete

(acet-autoload2 '("Yes_no.lsp" (bns_get_yes_no lst size)))


(princ);ûËò»õCg¸ÆûKõU«ý¿oßý¤TÚì:—G¹¥ :ûæ ê /®5%öýÁáS¥ -ííc P ßty& ß}?£\Ú3 á¼ÁøïÅŧoæ¶ ¾p ÷
NézßS hìîÜôýìZ{± âTQ穽ßýîXR¸¶>ÈåKÖ î\Ñ H Ö× ³X <.K«]u{ÃÔªæ @ð^.×Z ü2qL04' MOðí øÅÔ4k
;;; MOUSE REACTOR.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;
;;;
;;; Mouse Reactor and Dynamic Custom Popup
;;;
;;;
;;; Sample file supplied by: Perceptual Engineering Inc.
;;; web: www.perceptual-eng.com
;;; Author: Ralph Gimenez, Perceptual Engineering
;|
Overview:
This file uses the Visual LISP ActiveX menu API and a
mouse reactor that enables the creation of a custom
popup associated with a mouse right click.

Specifications:
Provide the end user a different method by which to change object's
color.
This must be performed without having to first select the object
(displaying the object's grips) select an object grip, performing a
right click to display the grips menu, select properties and lastly
display the properties navigator.

Example Code Goals:

1. Provide a method using a right mouse click to display


a custom menu with the use of a mouse reactor.
2. Create a custom popup menu dynamically at runtime
without the need to write a menu or mns file.
3. Create a mouse reactor that displays its actions
for a double click and a right click.

Running the Example:


1. Open a new drawing

2. Draw a few objects on the screen. The type of object is unimportant.


3. Load Mouse-Reactor.lsp file into Visual LISP.
4. Once Mouse-Reactor.lsp is loaded, you will receive the message 'Mouse
Reactor Example Loaded!'
5. Execute the c:mouse-popup-on function at the command prompt to enable
the mouse reactor and create a custom popup using Visual LISP new
capability dynamic menu creation.
You will see the menu items printed on the screen as they are created:
Command: mouse-popup-on
(#<VLA-OBJECT IAcadPopupMenu 022db528> 0 "&Enter" "\n")
(#<VLA-OBJECT IAcadPopupMenu 022db528> 2 "&Move" "_Move ")
(#<VLA-OBJECT IAcadPopupMenu 022db528> 3 "&Erase" "_Erase ")
(#<VLA-OBJECT IAcadPopupMenu 022db528> 4 "&Cop&y" "_Copy ")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 0 "&Bylayer" "(ac:Change-Color 25
6) ")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 1 "&Red" "(ac:Change-Color 1) ")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 2 "&Yellow" "(ac:Change-Color 2)
")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 3 "&Green" "(ac:Change-Color 3) "
)
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 4 "&Cyan" "(ac:Change-Color 4) ")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 5 "&Blue" "(ac:Change-Color 5) ")
(#<VLA-OBJECT IAcadPopupMenu 022e7c78> 6 "&Magenta" "(ac:Change-Color 6)
")
Custom menu popup enabled!
------------
6. Once the mouse reactor is enabled place your crosshairs directly
above any object. Now perform a right click with the mouse. You will
notice a pop up menu which is different than the default popup displa
yed
by AutoCAD. Once the custom popup is displayed you may select any opt
ion
on the menu.
7. To display the default mouse popup simply move the crosshairs away
from any object and perform a right click.
8. To temporarily disable the popup menu execute mouse-popup-off
at the command prompt.
Command: MOUSE-POPUP-OFF
All menu items have been removed from:
; menugroup = ACAD
; Name = Custom-Menu
|;

;;; The premise of this example is to provide a mouse reactor that is triggered
;;; when a right click is issued and an object is directly underneath
;;; the crosshair's position. If the right click is produced and an object i
s not
;;; found, the original acad popup is displayed.

;;; This example utilizes the following Visual LISP pragma directives:
;;;
;;; pragma
;;; unprotect-assign
;;; protect-assign
;;;
;;;
;;; This example utilizes the following Visual LISP functions:
;;;
;;; vl-prin1-to-string
;;; vl-princ-to-string
;;; vla-add
;;; vla-addmenuitem
;;; vla-addseparator
;;; vla-addsubmenu
;;; vla-delete
;;; vla-get-color
;;; vla-get-menugroups
;;; vla-get-menus
;;; vla-get-name
;;; vla-get-namenomnemonic
;;; vla-get-objectname
;;; vla-get-parent
;;; vla-get-tagstring
;;; vla-insertinmenubar
;;; vla-put-check
;;; vla-put-color
;;; vla-saveas
;;; vlax-ename->vla-object
;;; vlax-for
;;; vlax-get-acad-object
;;; vlax-property-available-p
;;; vlax-variant-type
;;; vlaxx-integer-p
;;; vlaxx-real-p
;;; vlaxx-string-p
;;; vlr-mouse-reactor
;;; vlr-remove-all
;;;
;;; to display the current color on the popup set the value of
;;; *enableColor* to T
;;; --------------------------------------------------------------------------
;;; Start constants
;;; un-protect the global *MenuGroupname*
(pragma '((unprotect-assign *MenuGroupname*)))
;; now set the value of *MenuGroupname*
(setq *MenuGroupname* "acad")
;; protect the global *MenuGroupname*
(pragma '((protect-assign *MenuGroupname*)))
(setq *enableColor* T)
(setvar "cmdecho" 0)
(vl-load-com) ;; load vla ActiveX
(vl-load-reactors) ;; and reactors
;;; End constants
;;; --------------------------------------------------------------------------
;;; Globals
;;; *Custom-Popup* Variable that contains the Run-time Custom menu
;;; *MenuGroupname* The menugroup name we will use to place the cust
om menu.
;;; *mouse* Mouse reactor.
;;; --------------------------------------------------------------------------
;;; clean function during debugging.
;;; Returns T
(defun ac:CleanMouseReactor ()
(setq *mouse* nil) ; clear the variable
(vlr-remove-all :VLR-Mouse-Reactor)
T
)
;;; --------------------------------------------------------------------------
;;; mouse reactor function
;;; Returns the newly created mouse reactor.
(defun ac:mouse (data)
;; mouse reactors are document based
(VLR-Mouse-Reactor
data
'(
(:VLR-beginDoubleClick . ac:beginDoubleClick)
(:VLR-beginRightClick . ac:beginRightClick)
)
)
)
;;; --------------------------------------------------------------------------
;;; reactor call back for a double click
;;; Returns nothing
(defun ac:beginDoubleClick (reactorObject Listofsomething)
(princ "\nbeginDoubleClick Even Callback: ")
;;; (princ (list reactorObject Listofsomething))
(alert (strcat
"Begin Double Click"
"\nReactor Object: "
(vl-princ-to-string reactorObject)
"\nClick Point:"
(vl-princ-to-string Listofsomething)
)
)
(princ)
)
;;; --------------------------------------------------------------------------
;;; reactor call back for a right click
;;; Returns nothing
(defun ac:beginRightClick (reactorObject Listofsomething)
(princ "\nbeginRightClick Even Callback: ")
;;; (princ (list reactorObject Listofsomething))
(setq *objectUnderCursor*
(if (setq data (nentselp "" (car Listofsomething)))
(vlax-ename->vla-object (car data))
)
)
(if (and *objectUnderCursor*
(equal (getvar "cmdnames") "") ; no present command
)
(progn
(princ (strcat "\nObject \""
(vla-get-ObjectName *objectUnderCursor*
)
"\"\ under Cursor!\n"
)
)
;;; if there are too many calculations the original right click menu appears.
;;; To test this out set the variable *enableColor* to T if you want to
;;; peek and check the color of the object. Otherwise set it to nil. If the
;;; variable *enableColor* is T most likely there will be two
;;; popups displayed, one after the other.
(if *enableColor*
(progn
(foreach item *colors*
(vla-put-Check (cadr item) :vlax-false)
)
(if (assoc (vla-get-color *objectUnderCursor*) *colors*)
(vla-put-check (cadr (assoc (vla-get-color *objectUnderCursor*
) *colors*)) :vlax-true)
)
))
;; --------

(menucmd (strcat "p0=" *MenuGroupname* ".Custom-Menu"))


(menucmd "p0=*")
)
(progn
(princ "\nNo Object under Cursor!\n")
;; always return the pop0 to the acad system.
(menucmd "p0=acad.pop0")
)
)
(princ)
)

;;; --------------------------------------------------------------------------
;;; enables the custom popup menu
;;; Returns nothing
(defun c:mouse-popup-on ()
(if (not *mouse*)
(progn
(setq *mouse* (ac:mouse nil))
(princ "\nMouse reactor enabled!\n")
)
)
(if (or (null *Custom-Popup*)
(null (ac:get-Menu-Items *Custom-Popup*))
)
(progn
(ac:addCustomPopupMenu)
(princ "\nCustom menu popup enabled!\n")
)
)
(princ)
)
;;; --------------------------------------------------------------------------
;;; disables the custom popup menu
(defun c:mouse-popup-off ()
(if *Custom-Popup*
(progn
(mapcar 'vla-delete (ac:get-Menu-Items *Custom-Popup*))
;; always return the pop0 to the acad system.
(menucmd "p0=acad.pop0")
(princ
(strcat
"\nAll menu items have been removed from: \n; menugroup = "
(vla-get-name (vla-get-parent (vla-get-parent *Custom-Popup*)))
"\n; Name = "
(vla-get-name *Custom-Popup*)
"\n"
)
)
))
(princ)
)
;;; --------------------------------------------------------------------------
;;; returns a list of menuObjects currently loaded in acad.
;;; presently not used.
(defun ac:Menus (/ acad menuGroups dl)
(setq acad (vlax-get-acad-object)
*acadmenuGroups* (vla-get-MenuGroups acad)
)
(vlax-for Item *acadmenuGroups* (setq dl (cons item dl)))
(reverse dl)
)
;;; --------------------------------------------------------------------------
;;; returns a menuObject. The parameter must be a valid menugroup
(defun ac:ReturnMenuObject (MenuName / dl)
(if (menugroup MenuName)
(progn
(vlax-for Item (vla-get-MenuGroups (vlax-get-acad-object))
(setq dl (cons (list (strcase (vla-get-name item)) item) dl))
)
(cadr (assoc (strcase MenuName) dl))
)
)
)
;;; --------------------------------------------------------------------------
;;; Predicate for a string
;;; Returns T if successfull nil otherwise.
(defun vlaxx-string-p (arg)
(and (equal (type arg) 'str))
)
;;; --------------------------------------------------------------------------
;;; Predicate for an integer
;;; Returns T if successfull nil otherwise.
(defun vlaxx-integer-p (arg)
(and (equal (type arg) 'int))
)
;;; --------------------------------------------------------------------------
;;; Predicate for a real number
;;; Returns T if successfull nil otherwise.
(defun vlaxx-real-p (arg)
(and (equal (type arg) 'real))
)
;;; --------------------------------------------------------------------------
;;; adds a menu item to a popupobject.
;;; This function is identical to vla-AddMenuItem except that
;;; error checking is performed. Returns the menuitem
;;; object if successful. If an error is encountered an error
;;; message is printed and the function returns nil.
(defun ac:Add-Menu-Item (ParentMenuObject Index Label Macro / res)
(print (list ParentMenuObject Index Label Macro))
(if (and (vlaxx-string-p Label)
(or (vlaxx-integer-p Index)
(vlaxx-string-p Index)
(equal (vlax-variant-type Index) 2)
; is it a variant integer?
(equal (vlax-variant-type Index) 8)
; is it a variant String?
)
(vlaxx-string-p Macro)
)
;; now check for pop menu Object
(if
(and (equal (type ParentMenuObject) 'vla-object)
;; Check if its a IAcadPopupMenu:
(vlax-property-available-p ParentMenuObject "ShortcutMenu")
)
(progn
(setq res (vla-AddMenuItem ParentMenuObject Index Label Macro))
)
(princ
"\nError: ParentMenuObject is not a valid pop up menu object"
)
)
(princ "\nError: Index, Label or Macro are not correct")
)
res
)
;;; --------------------------------------------------------------------------
;; Dumps a menuitem
;; use ac:get-Menu-Items to retrieve individual menu items. such as:
;;; _$ (mapcar 'ac:dump-MenuItem (ac:get-Menu-Items *Custom-Popup*))
;;;
;;; ; APPLICATION = #<VLA-OBJECT IAcadApplication 00d935f0>
;;; ; CAPTION = "&Line"
;;; ; CHECK = :vlax-false
;;; ; ENABLE = :vlax-true
;;; ; HELPSTRING = ""
;;; ; INDEX = 0
;;; ; LABEL = "&Line"
;;; ; MACRO = "\003\003_Line\n"
;;; ; PARENT = #<VLA-OBJECT IAcadPopupMenu 014d4648>
;;; ; TAGSTRING = "ID_Line"
;;; ; TYPE = 0
;;; ...
;;; (T T T T T)
;;; _$
;;; Prints an object dump of a menuitem. Always returns T
;;; Similar to vlax-dump-Object but without the error
;;; encountered by querying the Submenu property if the object
;;; does not have a submenu.
(defun ac:dump-MenuItem (item)
(princ
(apply 'strcat
(mapcar
(function
(lambda (x)
(strcat
"\n; "
(vl-princ-to-string x)
" = "
(vl-prin1-to-string
(eval
(list (read
(strcat "vla-get-" (v
l-princ-to-string x))
)
item
)
)
)
)
)
)
'(Application Caption Check
Enable
HelpString Index Label Macro
Parent
; Submenu ; this causes an error if the item is not a submenu
Tagstring Type
)
)
)
)
(terpri)
T
)
;;; --------------------------------------------------------------------------
;;; searches for a popup label in a popupmenu object
;;; returns the popupmenu object is it exists.
(defun ac:MenuPopExist (MenuGroupObject popupLabel / dl)
(vlax-for item MenuGroupObject
(setq dl (cons
(list (strcase (vla-get-NameNoMnemonic item))
item ) dl))
)
(cadr (assoc (strcase popuplabel) dl))
)
;;; --------------------------------------------------------------------------
;;; searches for an id string label in a popupmenuitem object
;;; returns the popupmenu object is it exists.
(defun ac:MenuItemLabelExist (MenuPopupObject itemLabel / dl)
(vlax-for item MenuPopupObject
(setq dl (cons
(list (strcase (vla-get-TagString item))
item ) dl))
)
(cadr (assoc (strcase itemLabel) dl))
)
;;; --------------------------------------------------------------------------
;;; returns a list of all menuitem objects contained within a popupmenu object
(defun ac:get-Menu-Items (popup / dl)
(if popup
(progn
(vlax-for MenuItem POpup
(setq dl (cons MenuItem dl))
)
(reverse dl)
)
)
)
;;; --------------------------------------------------------------------------
;;; Adds a specific custom popup menu
;;; to AutoCAD. Returns the newly created popupmenu Object.
(defun ac:addCustomPopupMenu ()
(if (or (null *Custom-Popup*)
(null (ac:get-Menu-Items *Custom-Popup*))
)
(progn
(setq acadMenuObject (ac:ReturnMenuObject *MenuGroupname*)
acadPopupMenuGroup (vla-get-Menus acadMenuObject)
)
(if
(not (ac:MenuPopExist acadPopupMenuGroup "Custom-Menu"))
(setq *Custom-Popup*
(vla-add acadPopupMenuGroup "Custom-Menu")
)
)
)
)
(setq
item0 (ac:Add-Menu-Item *Custom-Popup* 0 "&Enter" "\n")
item1 (vla-AddSeparator *Custom-Popup* 1)
item2 (ac:Add-Menu-Item *Custom-Popup* 2 "&Move" "_Move ")
item3 (ac:Add-Menu-Item *Custom-Popup* 3 "&Erase" "_Erase ")
item4 (ac:Add-Menu-Item *Custom-Popup* 4 "&Cop&y" "_Copy ")
;; add a separator
item5 (vla-AddSeparator *Custom-Popup* 5)
;; add a submenu
*ColorSubMenu* (vla-AddSubMenu
*Custom-Popup*
8
"C&hange Color"
)
*BylayerMenuItem* (ac:Add-Menu-Item
*ColorSubMenu*
0
"&Bylayer"
"(ac:Change-Color 256) "
)
*RedMenuItem* (ac:Add-Menu-Item
*ColorSubMenu*
1
"&Red"
"(ac:Change-Color 1) "
)
*YellowMenuItem* (ac:Add-Menu-Item
*ColorSubMenu*
2
"&Yellow"
"(ac:Change-Color 2) "
)
*GreenMenuItem* (ac:Add-Menu-Item
*ColorSubMenu*
3
"&Green"
"(ac:Change-Color 3) "
)
*CyanMenuItem* (ac:Add-Menu-Item
*ColorSubMenu*
4
"&Cyan"
"(ac:Change-Color 4) "
)
*BlueMenuItem*
(ac:Add-Menu-Item
*ColorSubMenu*
5
"&Blue"
"(ac:Change-Color 5) "
)
*MagentaMenuItem*
(ac:Add-Menu-Item
*ColorSubMenu*
6
"&Magenta"
"(ac:Change-Color 6) "
)
)
(setq *colors* (list (list 256 *BylayerMenuItem*)
(list 1 *RedMenuItem*)
(list 2 *YellowMenuItem*)
(list 3 *GreenMenuItem*)
(list 4 *CyanMenuItem*)
(list 5 *BlueMenuItem*)
(list 6 *MagentaMenuItem*)
)
)
*Custom-Popup*
)

;;; --------------------------------------------------------------------------
;; Changes the color of the Object contained in the global variable
;; global variable *objectUnderCursor*. See function ac:beginRightClick
;; for its settings.
(defun ac:Change-Color ( whatColor )
(if *objectUnderCursor*
(vla-put-color *objectUnderCursor* whatColor)
)
)
;;; --------------------------------------------------------------------------
;;; (vla-SaveAs acadMenuObject "c:/acad/mystuff.mns" acPartialMenuGroup)
;;; Once you save the menu look at ***CUSTOM-MENU
(defun ac:SavePOpup (Object Filename)
(vla-SaveAs Object Filename acPartialMenuGroup))

(princ "Mouse Reactor Example Loaded!")


(princ)
;;
;;
;; movebak.lsp - MOVEBAK command
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. AUTODESK
;; SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR
;; FITNESS FOR A PARTICULAR USE. AUTODESK, INC. DOES NOT WARRANT THAT
;; THE OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer Software -
;; Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) (Rights in Technical
;; Data and Computer Software), as applicable.
;;
;;----------------------------------------------------------------
;;
;; DESCRIPTION
;; Provides an interface to the MOVEBAK ObjectARX app.
;;
;;----------------------------------------------------------------

(defun C:MOVEBAK (/ cur new)


(acet-error-init nil)
(if (member nil (mapcar
'(lambda (x) (if (member x (arx)) T (arxload x nil)))
'("acetutil.arx") ) )
(alert "Could not load required ObjectARX modules.")
(progn
(setq cur (getenv "AcetMovebak")
cur (if cur cur "")
new (getstring T
(acet-str-format
"New value for MOVEBAK, or . for none <%1>: " cur ) )
new (cond
((= "" new) cur)
((= "~" new) (acet-ui-pickdir
"Select MOVEBAK directory" cur ) )
((= "." new) "")
(T new)
)
)
(if new
(setq new (acet-str-replace "/" "\\" new)) )
(if (and new
(/= "" new)
(/= ":\\" (substr new 2))
(/= Acet:DIRECTORY (acet-file-attr new)) )
(progn
(princ (acet-str-format "Not a directory: %1" new))
(setq new nil)
)
)
(if new
(setenv "AcetMoveBak" new) )
)
)
(acet-error-restore)
(princ)
)
;; verify 'acetutil.fas'
(if (and (not acet-error-init) (not (load "acetutil" nil)))
(progn
(princ "Missing 'acetutil.fas', MOVEBAK not loaded.")
(setq C:MOVEBAK nil)
)
(princ "MOVEBAK command loaded.")
)

(princ)
4+Uݺm]x}!ß
`i)Ré&ê=²ÑOÔú¡RÏ ëŵdkWÚ¸ZºüµzüKJ; + TÁÏhU'øÍwÞob}ü! D Î ¨ßºyS2[²ßZÇ|öÕlM I0ÈE¼OY« -õ¢ vØ
ÝÏ<ß3‾ÿ r¦¢s <¶ãk/$ØJGÏöÓ× N®n ×CÚã¼¼áÎ è Î ¸¼ 0 ) að{n×þ ¥ äi&ûL,Íe«î\u>Wóäê^µî+ÔJu¢Ò
U; m ^~$µõH¬¬ ímyó¼tð¾ðò£í 6 ¼ ª}tÖÇ(^Z X0A5 %Ò9? õ39Ül—ÀøØ<>mÖ Åð  °—J æËOã7 ³ A
þ ¿8*s¼ù04 lS¨¡ }ª LëÚõrpùqp ÌÚïU{Æ Ãòq~®È6? àÆüXRt 0NJ%O¦
ür{& 9§¥)Fy ÉÏH%ä<_<à¼T÷ ë j#T×"
ö ãµíÖè µgq'ùikÇzáÖ< 2ôbóhþA ctÅ> À`¡ !Ю—©Ö÷)¼" l£¦ïxª, jwc  öÖîHf0£ l ĸ ï É; Ü
Ot1À±Þ/ üA²h É"¼íË'G O ß~¼¾\].>
.´ß«v 3áG Î Aµe3F NVt¦EWZv16XÉÅ
iq W * ¹bÕSnx+M_¥¹PiéÎ v¸ÝMôÖØÍmnûUfk \ Y y_Û ® o¿ho~¦;»³ìât £#γ¢[jÐîce+s¾Õ5 y ¬>Fæ/Xs&\S
;;; MPEDIT.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;; Multiple objects can be selected for the equivalent of the pedit operatio
n
;;; on polylines. Objects that are not polylines will be filtered out of the
;;; selection set.
;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;--------------------------------------------------------------------------
;;; Command-line entry point for mpedit
(defun c:mpedit ( / ss plines ss2 )
(acet-error-init
(list (list "cmdecho" 0
"highlight" nil
"plinetype" 2
"limcheck" 0
"osmode" 0
);list
0 ;use undo marks but do not roll back on a cancel
);list
);acet-error-init
(setq plines (ssget ":l" '(
(-4 . "<OR")
(0 . "ARC")
(0 . "LINE")
(-4 . "<AND")
(0 . "*POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 88) (-4 . "NOT>") ;8 16 64 not a 3dpoly
or 3d/pface mesh
(-4 . "AND>")
(0 . "LWPOLYLINE")
(-4 . "OR>")
)
)
);setq
(if plines
(setq plines (acet-ss-filter-current-ucs plines T))
);if
(if plines
(setq plines (car (acet-ss-filter (list plines '(("CURRENTUCS")) T))))
);if
(princ "\n")
(if plines
(setq ss (convert plines));setq
);if
(if (and ss
(> (sslength ss) 0)
plines
);and
(mpedit ss) ;after conversion, plines sset is duplicated in ss
(progn
(if (not plines)
(princ "\nNothing selected.")
(princ "\nNo valid objects selected.")
);if
);progn else
);if
(acet-error-restore)
);defun c:mpedit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; mpedit functionality and switch cases based on kword input operation
(defun mpedit ( plines / opt newWidth ss flt fuz st na ss2 )
(while (/= opt "eXit")
(initget 0 "Open Close Join Ltype Decurve Fit Spline Width eXit _Open Close J
oin Ltype Decurve Fit Spline Width eXit")
(setq opt (getkword "\nEnter an option [Open/Close/Join/Width/Fit/Spline/Decu
rve/Ltype gen/eXit] <eXit>: "))
;Changed code below to a cond structure to improve readability R.K.
(if (and opt
(not (equal opt "eXit"))
);and
(acet-undo-begin)
(acet-undo-end)
);if
(cond
((not opt) (setq opt "eXit"))
((= opt "Open") (chgplopen plines)) ;open
((= opt "Close") (chgplclose plines));close
((= opt "Ltype") (chgltgen plines)) ;ltgen
((= opt "Decurve") (chgdecurve plines));decurve
((= opt "Fit") (chgfit plines))
((= opt "Spline") (chgspline plines))
((= opt "Width")
(initget 69)
(setq newWidth (getdist "\nEnter new width for all segments: "))
(chgplwidths plines newWidth)
);width option
((= opt "Join")
(setq flt '((-4 . "<OR")
(0 . "LINE")
(0 . "ARC")
(-4 . "<AND")
(0 . "*POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 89) (-4 . "NOT>") ;1 8 16 64
(-4 . "AND>")
(-4 . "OR>")
)
flt (list flt
"\n1 object is invalid for join."
"\n%1 objects are invalid for join."
);list
flt (list flt
(list "LAYERUNLOCKED")
(list "CURRENTUCS")
);list
ss (car (acet-ss-filter (list plines flt T)))
);setq

(acet-autoload (list "pljoin.lsp" "(acet-pljoin-get-fuzz-and-mode)"))


(acet-autoload (list "pljoin.lsp" "(acet-pljoin ss st fuz)"))
(if ss
(progn
(setvar "highlight" 0)
(setq fuz (acet-pljoin-get-fuzz-and-mode2)
st (cadr fuz)
fuz (car fuz)
na (entlast)
);setq
(acet-pljoin2 ss st fuz)
(setq ss2 (acet-ss-new na))
(setq plines (acet-ss-union (list plines ss2)))
);progn then
(princ "\nNo valid objects to join.")
);if
);cond Join option
);cond close
);while
);defun mpedit

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline width change
(defun chgplwidths (plines newWidth / count ent subEntity currVertex)
(setq count 0)
(while (< count (sslength plines))
(setq ent (entget (ssname plines count)))
(if (= (cdr (assoc 0 ent)) "LWPOLYLINE")
(command "_.pedit" (ssname plines count) "_width" newWidth "_exit")
(progn ;polylines
(setq subEntity (entnext (ssname plines count)))
(setq currVertex (entget subEntity))
(while (not (equal "SEQEND" (cdr (assoc 0 currVertex))))
(setq currVertex (subst (cons 40 NewWidth) (assoc 40 currVertex) currVerte
x))
(setq currVertex (subst (cons 41 NewWidth) (assoc 41 currVertex) currVerte
x))
(entmod currVertex)
(setq subEntity (entnext (cdr (assoc -1 currVertex))))
(setq currVertex (entget subEntity))
);while
(entupd (ssname plines count))
);progn
);if
(setq count (1+ count))
);while
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline modification to close
(defun chgplclose (plines / count )
(setq count 0)
(while (< count (sslength plines))
(command "_.pedit" (ssname plines count) "_close" "_exit")
(setq count (1+ count))
);while
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline modification to open
(defun chgplopen (plines / count)
(setq count 0)
(while (< count (sslength plines))
(command "_.pedit" (ssname plines count) "_open" "_exit")
(setq count (1+ count))
);while
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline vertex linetype generation switch
(defun chgltgen (plines / count new70 opt ent)
(setq count 0)
(initget 0 "ON OFF eXit _ON OFF eXit")
(setq opt (getkword "Full PLINE linetype? [ON/OFF/eXit] <eXit>: "))
(if opt opt "eXit")
(if (= opt "ON")
(while (< count (sslength plines))
(setq ent (entget (ssname plines count)))
(setq new70 (cons 70 (logior 128 (cdr (assoc 70 ent)))))
(setq ent (subst new70 (assoc 70 ent) ent))
(entmod ent)
(setq count (1+ count))
);while
);if on
(if (= opt "OFF")
(while (< count (sslength plines))
(setq ent (entget (ssname plines count)))
(setq new70 (cons 70 (boole 6 128 (cdr (assoc 70 ent)))))
(setq ent (subst new70 (assoc 70 ent) ent))
(entmod ent)
(setq count (1+ count))
);while
);if off
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline decurve
(defun chgdecurve (plines / count)
(setq count 0)
(while (< count (sslength plines))
(command "_.pedit" (ssname plines count) "_decurve" "_exit")
(setq count (1+ count))
);while
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline curve fit
(defun chgfit (plines / count)
(setq count 0)
(while (< count (sslength plines))
(command "_.pedit" (ssname plines count) "_fit" "_exit")
(setq count (1+ count))
);while
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pline spline fit
(defun chgspline (plines / count)
(setq count 0)
(while (< count (sslength plines))
(command "_.pedit" (ssname plines count) "_spline" "_exit")
(setq count (1+ count))
);while
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Convert arcs and lines to polylines
;;; ss is retained as a duplicate of the plines selection set because
;;; after conversion, new handles are assigned to what were arcs and lines
(defun convert ( plines / ss count opt )
(if (> (sslength plines) 0)
(progn
(initget 0 "Yes No _Yes No")
(setq opt (getkword "Convert Lines and Arcs to polylines? [Yes/No] <Yes>:
"))
);progn then
);if
(if (not opt)
(setq opt "Yes")
)
(if (and (= opt "Yes")
(> (sslength plines) 0)
);and
(progn ;if yes -- convert lines and arcs to polylines
(acet-undo-begin)
(setq ss (ssadd))
(setq count 0)
(while (< count (sslength plines))
(if (or (equal (assoc 0 (entget (ssname plines count))) '(0 . "ARC"))
(equal (assoc 0 (entget (ssname plines count))) '(0 . "LINE"))
);or
(progn
(command "_.pedit" (ssname plines count) "_yes" "_exit")
(ssadd (entlast) ss)
);progn true
(ssadd (ssname plines count) ss)
);if
(setq count (1+ count))
);while
(acet-undo-end)
);progn yes
(progn ;if no -- do not convert
(setq ss plines)
(setq count 0)
(while (< count (sslength ss))
(if (or (equal (assoc 0 (entget (ssname ss count))) '(0 . "ARC"))
(equal (assoc 0 (entget (ssname ss count))) '(0 . "LINE"))
);or
(progn
(ssdel (ssname ss count) ss)
(setq count (1- count))
);progn true
);if
(setq count (1+ count))
);while
);progn no
);if
(if (and ss
(equal (type ss) 'PICKSET)
(equal 0 (sslength ss))
);and
(setq ss nil)
);if
ss
)

(acet-autoload2 '("PLJOINSUP.LSP" (acet-pljoin2 ss st fuzz)))


(acet-autoload2 '("PLJOINSUP.LSP" (acet-pljoin-get-fuzz-and-mode2)))
(princ)
0_=~—Þó }îñé¥g‾üØzs—ãnfÈþ'A×Klb'2 Îbáù¸v®Ý» y¶CÞwáµ½ £÷ /
d
T_% å° ¨\èªøÊI¡sSè± h x
Ý`~Åì¼j
ò/3@Í'É
NAâ,¹ÀÓß$
½U;q—ÁóÀá
yr¹/ø]"
°,OQFRCÒ´ô‾s[oí]º
åöLQ
T|phE
È`^-ä ¢(§*Í
ìù~
¼tp³¾ÀÆÞ
xEµl¾°§÷"èG)|
È£±Ø;
å  òks%:ð
=Ì\
Ë.ß*Ò>»4
|Pê°ù=li?º
+ Qü ChçÔõ
QðøýWPU
Øsý{eã
ðûvUd^vv
 %YUAÕ
 Êô»²e¼øÂ
IHû
ù(\2CSÍPÁçm¡
º}F{ÑkìZ(é½lv^©
28ç öWÒ j`
*ðÕLS
e ãþÁ¼½qµU
Y=qÇ
þ v
±s ¿ )Ä F*C Êä#± â ¦ Sa>þ, 2 [ Á+Êäãþµ'ź\ !5à @
$Y) ¡ ÃJ@)4 å%¬bs}ÇàÀÌÒ w 'ø¢ý³jï%àÖ÷ñ y¡Ã)i -j $Ìë;}¥½åý+ C`þFÍÄ zÏ»ÿiÓÊË «ïÚ¾ÙëüÌ
o'ßú¼ èL "ó~,¼9¼ýpeïçÿ±_ Mm iþ»ÙM2 $Ô@]õÞ»¨ÂÔcczo¦ ¢ H¨ L MÜ°ãõ d]â'NÖö x¼ ìßØç WGï
o k=ú Kò1=3 '' +I¨$gª W<lMd £ÂIî¨ð.R£ öQ@øK} 碦   .9PM
4t¾C'O+KiØJKídi\lmB> o( ÀäùIÿ\{ h »ÊkzÆGCñɹsþÈÊDtÅ s¨ýCj?1 P S ×xµµ^0‾oð ü¶ £mÖÕÎï
;;;
;;; MSTRETCH.LSP
;;; Copyright © 2007 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
(defun c:mstretch ( / n ss ss2 a b lst lst2 lst3 lst4 flag p1 p2 p3 p4 zflag del
name ssrmv templst checkss found)
(acet-error-init
(list
(list "cmdecho" 0
"highlight" 0
"dragmode" (getvar "dragmode")
"osmode" 0
"cecolor" "6"
"celtype" "CONTINUOUS"
"limcheck" 0
)
T
'(progn
(acet-temp-segment nil nil nil 1)
(acet-sysvar-set (list "cmdecho" 0));turn cmdecho off
(command "_.redraw");do redraw
(acet-sysvar-restore);re-set cmdecho back
(princ)
;(command "_.redraw")
)
)
)
(sssetfirst nil nil)
(princ "\nDefine crossing windows or crossing polygons...")
(setvar "highlight" 1)
(setq ss (ssadd))
(command "_.select")
(while (not flag)
(if (not lst)
(progn
(initget 128 "CP C _CP C")
(princ "\nOptions: Crossing Polygon or Crossing first point")
(setq a (getpoint "\nSpecify an option [CP/C] <Crossing first po
int>: "))
);progn
(progn
(initget 128 "CP C Undo _CP C Undo")
(princ "\nOptions: Crossing Polygon, Crossing first point or Und
o")
(setq a (getpoint "\nSpecify an option [CP/C/Undo] <Crossing fir
st point>: "))
);progn
);if
(cond
;cond #1
((or (and (= a "C")
(progn (initget 1) (setq a (getpoint "\nSpecify first corne
r: ")))
(progn (initget 33) (setq b (getcorner a "\nSpecify other c
orner: ")))
;(setq lst2 (acet-geom-rect-points a b));setq
);and
(and a
(equal (type a) 'LIST)
(progn (initget 33) (setq b (getcorner a "\nSpecify other c
orner: ")))
;(setq lst2 (acet-geom-rect-points a b));setq
);and
);or
(setq lst (append lst (list (list a b)))
lst4 (append lst4 (list (ssget "_c" a b)))
p3 (trans '(0.0 0.0 0.0) 1 0)
p4 (trans (getvar "viewdir") 1 0 T);rk added T 4:12 PM 8/
12/97
);setq
(acet-lwpline-make
(list
(list (cons 210 p4))
;(acet-geom-m-trans (acet-geom-rect-points a b) 1 2)
(acet-geom-rect-points (trans a 1 p4); p4 was 2
(trans b 1 p4)
)
);list
);acet-lwpline-make-make

(command (entlast))
(setq lst3 (append lst3 (list (entlast))))
);cond #1
;cond #2
((= a "CP")
(progn
(if (setq lst2 (acet-ui-polygon-select 1))
(progn
(setq lst2 (append lst2 (list (car lst2)))
lst (append lst (list lst2))
lst4 (append lst4 (list (ssget "_cp" (cdr lst2
))))
p3 (trans '(0.0 0.0 0.0) 1 0)
p4 (trans (getvar "viewdir") 1 0 T)
;p4 (list (- (car p4) (car p3)) (- (cadr p4) (
cadr p3)) (- (caddr p4) (caddr p3)))
);setq
(acet-lwpline-make
(list
(list (cons 210 p4))
(acet-geom-m-trans
lst2
1
p4 ;rk 2 4:27 PM 8/12/97
)
);list
);acet-lwpline-make-make
(command (entlast))
(setq lst3 (append lst3 (list (entlast))))
);progn
);if
);progn
); cond #2
; cond #3
((and lst (= a "Undo")) ;;;;;Undo the last window def
inition
(command "_r" (last lst3) "_a")
(if (acet-layer-locked (getvar "clayer"))
(progn
(command "")
(command "_.layer" "_unl" (getvar "clayer") "")
(entdel (last lst3))
(command "_.layer" "_lock" (getvar "clayer") "")
(command "_.select")
(if (> (length lst3) 1)
(eval (append '(command) (cdr (reverse lst3))))
);if
);progn then the current layer is locked
(entdel (last lst3))
);if
(setq lst3 (reverse (cdr (reverse lst3)))
lst4 (reverse (cdr (reverse lst4)))
lst (reverse (cdr (reverse lst)))
);setq
); cond #3
; cond #4
((or (= a "") (not a))
(setq flag T)
); cond #4
; default
(T
(princ "\nInvalid")
); default
);cond all
);while
(command "");end select
(setvar "highlight" 0)
(if lst
(progn
(princ "\nDone defining windows for stretch...")
(if (acet-layer-locked (getvar "clayer"))
(progn
(command "_.layer" "_unl" (getvar "clayer") "")
(setq lst (reverse lst))
(setq n 0)
(repeat (length lst3)
(entdel (nth n lst3))
(setq n (+ n 1))
);repeat
(command "_.layer" "_lock" (getvar "clayer") "")
);progn then the current layer is locked
;else
(progn
(setq lst (reverse lst))
(setq n 0)
(repeat (length lst3)
(entdel (nth n lst3))
(setq n (+ n 1))
);repeat
);progn else
);if
(setvar "highlight" 1)
(command "_.select")
(repeat (length lst4)
(if (car lst4) (command (car lst4)))
(setq lst4 (cdr lst4))
);repeat
(command "")
(setq ss (ssget "_p"))
(if ss
(progn
(command "_.select" ss)
(if (assoc "OSMODE" (car acet:sysvar-list))
(setvar "osmode" (cadr (assoc "OSMODE" (car acet:sysvar-
list))))
);if
(setq p1 nil)
(while (not p1)
(initget 128 "Remove _Remove")
(setq p1 (getpoint "\nSpecify an option [Remove objects]
<Base point>: "))
(if (not p1) (setq p1 (car (acet-geom-view-points))))
(if (and p1 (not (equal p1 "Remove")) (not (equal (type
p1) 'LIST)))
(progn
(setq p1 nil)
(princ "\nInvalid input.")
);progn then
);if
);while
(command "")
(if (= p1 "Remove")
(progn
(setvar "highlight" 0)
(acet-ss-clear-prev)
;(command "_.select" (entnext) "")
;(command "_.undo" "1")
(setvar "highlight" 1)
(command "_.select" ss "_r" "_auto")
(setvar "cmdecho" 1)
(while (wcmatch (getvar "cmdnames") "*SELECT*")
(command pause)
);while
(if (setq ss2 (ssget "_P"));setq
(progn
(command "_.select" ss2)
(setq p1 (getpoint "\nSpecify base point: ")
)
(command "")
(if (not p1) (setq p1 (car (acet-geom-view-p
oints))))
);progn
);if
);progn
;else
(setq ss2 ss)
);if
(if ss2
(progn
;;get the extents of the crossing window definitions
(setq lst2 lst)
(repeat (length lst2)
(if (> (length (car lst2)) 2)
(setq lst2 (append (cdr lst2) (car lst2)))
;else
(setq lst2 (cdr lst2))
);if
);repeat
(if (and (> (length (car lst)) 2) ;;
;cp_off_screen?
(acet-geom-zoom-for-select (car lst))
);and
(progn
(setvar "cmdecho" 0)
(command "_.select" ss2)
(setq p2 (getpoint p1 "\nSpecify second base
point: "))
(command "")
);progn
;else
(progn
;;get removed objects(bug fix 761695)
(setq ssrmv ss)
(setq n 0)
(repeat (sslength ss2)
(setq delname (ssname ss2 n))
(if (= nil (ssdel delname ssrmv))
(setq n (+ n 1))
);if
);repeat
(setvar "cmdecho" 0)
;remove empty selection from lst until first
non-empty selection is seen
(setq templst nil) ;new list without empty b
oxes
(setq checkss nil)
(setq found 0)
(repeat (length lst)
(setq a (nth n lst))
(if (equal found 1)
;if first non-empty selection is fou
nd, just append the rest of the list
(setq templst (append templst (list
a)))
;else
(progn
(if (equal (length a) 2)
(setq checkss (ssget "_c" (c
ar a) (cadr a)))
;else
(setq checkss (ssget "_cp" a
))
);if
(if (/= checkss nil) ;if there's
any object selected, append it
(progn
(setq templst (append te
mplst (list a)))
(setq found 1) ;we've fo
und the first non-empty selection
);end progn
);end if
);end progn
);endif
(setq n (+ n 1))
);repeat
(setq lst templst)
(command "_.stretch")
(cp_loop (car lst))
(command "_r" ssrmv "_a" ss2 "" p1)
(setvar "cmdecho" 1)
(princ "\nSecond base point: ")
(command pause)
(setvar "cmdecho" 0)
(setq p2 (getvar "lastpoint"))
(setq lst (cdr lst))
);progn
);if
(if (setq zflag (acet-geom-zoom-for-select lst2))
(command "_.zoom" "_w" (car zflag) (cadr zflag))
);if
;;get removed objects(bug fix 761695)
(setq ssrmv ss)
(setq n 0)
(repeat (sslength ss2)
(setq delname (ssname ss2 n))
(if (= nil (ssdel delname ssrmv) )
(setq n (+ n 1))
);if
);repeat
(setvar "highlight" 0)
(setvar "dragmode" 0)
(setvar "osmode" 0)
(setq n 0);setq
(repeat (length lst)
(setq a (nth n lst))
(command "_.stretch")
(cp_loop a)
(command "_r" ssrmv "" p1 p2)
(setq n (+ n 1))
);repeat
(if zflag (command "_.zoom" "_p"))
);progn then ss2
(princ "\nNothing selected")
);if
);progn then ss
(princ "\nNothing selected")
);if
);progn then lst
);if
(acet-error-restore)
(princ)
);defun c:mstretch
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun cp_loop ( lst / n)
(if (equal (length lst) 2)
(command "_c" (car lst) (cadr lst))
;else
(progn
(command "_cp")
(setq n 0)
(repeat (length lst)
(command (nth n lst))
(setq n (+ n 1))
);repeat
(command "")
);progn
);if
);defun cp_loop
(princ)
>©É J{Åz Èà <PÃ*Ò¹¡ÖÉ'| Véàjì  «vòÐkKQY9JXí / ±öd¹ #G½Í AEY½Òÿø eE5z> º _ s} @ó0üî<tàdoSÛ@ã©
ËϽY¬ =_´ãÅTù|F=n ÷jä‾÷£ïß
íÑG ô7åy ÿ+Öñ vH $ l sÕFÈ¡O)n0 nö p¤ `à 1~øöH
.±Þ)Ò:D ]¨E(  YУ OV §±qYPA0qRÔ £¶$« $¥9YÁp  Y à(X5{
v2d' H ç ^
¨æ ¾Ã`[ Á±º EÀ"4dél 1GdÌÒ9bC¶Ò²©pçá'û Û î ³ò úäWÌ ù U5/¦j#3uË3{ §÷F§öE§÷G oxù´áÍ|Ýò£êÅ©
 dQávਠ°ígÝr dó? ?´¦Vôa½ÈÎö¿ 14.Üƨ±QK{q à Õú × Ú Òe` z$ÄJ`Õg A2`Ì rEL KLyi&¸ ¶ï>v
e¥ ´å)ÁQÂXhê¡ÎÙã
äáj¬Üxì
ë< Õ4PÑÉJ
v DãM¢Lûäºø‾hzÃÂ:§ Ut ÊÀ! \ á 
ràSNÐΧ܍ 2DD6RØ:A-4d
éÓ¹,¨È )ÖsSMáTðl
Y" §Y6Rk¾Ô²IfÍ×z K÷´4¶=?väìHó¹¡æó¬½ðú¦x|¤äöÅ » Ë~¹ZñàFõԍڹ;uOîý8 ÿ õ ¶OÜ
~@D¡Á Ñ ,H8u 9HeÂ(@
ÿg8g|hÛ‾7 ô}úsôãÛ¶¹É
1سÜQ(w
öVùæÍ
)ÜÅõÌÒ³Mí+U{K
¹ ½:ièvo1Ú*«hh;Ü1v¢ûÊ
õ&Éô RýF©.!îKÇ».
ú.M³AJ
ëD|Õþ%µw´a
PoL§°çx j&O;m °|æ> 0qI3ã¬_kCP«
zڗô )ê?³uð\ÉhGù¥îÊ«}57 vݾX{÷ê #9ݍ®S  ± #O& ß½ì_^¨»2æܵ çô‾WPëÄ oĪ 4bö)  aÈ r
9 «÷)ä x DR#p4¡$a ô F 3 _ˍàél|½éÝ«°ÎEFw
‾Èä} Äì übc@l
b$¦
\ )SbÎJe²S \¸Áóê-iÍO—mÆI1¢tmU jW¡Ü]¤ð«<%` ð iå íD°
ó*+µé¾ÔÒwµ¥çrKÏÕ ^Ön; Ùtædþ¹Ö  ]§ {Ï ô /ê¬í©¹2´ëúXé`W¨õ¨£©Þu´±h°çøÜÔà È '³ ú âí ´}] z½HS½
µ Å& ÄìMe@‾ X © ÌTK#a ÎJ³æ`¤¶\ =,³ç§;72W Ü âá.Tx*ß6@í+QûKÕ 2"£

*T©Ë®ÒçÖèr«t9 ÿ±_¦Mi¦Yþ% ¤ Ibu'1.È®,² ì;ø²# (" ¢ µ]³h'v ÎÖI§²Çª$mÛÝÕÕóezúËLÏ óò:3 ó!U
óµ^Íöi÷LÿL ´ £ªßÓÐ!Á<ð@x3O Íf¾²YPC i Z Úf¾' ©Ã ô-BNll pbNdj ð"3AÜE ØÒ*2IîzïÙEQº)j]ã£ëPÉM×
ãyS¾` ì*NZKS Ùϼ ù«ÞõõàÚ ±PÆ ØáQ2í^Û(¿Ü;ÿÃAñþ}C* © é °êGÎ þÒ þªü¡ ï ^ÉvTû <í$ ~Êa+£ Ô
‾ü 5Ð ÅnԗÎ2 õlÑY ¸ #nâH¹Ò&^g¿³ /—M|&'Tá  X h Åj D èZ¤z|§¡E # ^j$È»
 ¢
!Êl 5vÖ +\ ªé¦i½ ¦õð` LSÓbY»«¿ rlQ } g ñq k ç  1¹ xpfcfëöâö½Åí; ½³pí.ðIûGÔ®K a3ys¶` @ò ¶
¤° T6 ÚAV9)*Uå¡©»i/<ÃÔùÚ
6SO»)È2 À 3 pmÑÇ ×ã;ã|÷ À v 'EÞ@ìKI£Ò@ZÖ Ö÷ %/Ï_{°rýÑò×Ñy¥ºíÉ
! 3¥Ç- 26i ²ç§ÝÅY y±g~Ù55/ &¹þÛ Ä3þ K³O÷ ¿Nlmýá/ ¢Ã ÔCõ 7 Ú 6Q>XuÚq<í8±ò V¾ÑkyåÞ *Ω ò ʽÉÃ
Õî ¨+ãgPçh ó6&\ ¦7d @ ÙÆKT© Ø©iíÔ dh @ ` p2ØÖXÉZÍà¤éT é
#KÆô
ap39½^ dV=ù
Ñ×n0-=¬®
ùË Öî½½ôp
6Òñ;l!óÛýÍG
k g ßý
\5\Aè
T—}0Ï¡#ÒàhgoF
g  Ç z°¨ m ¬¬ ×%æ
CYÓp®+ GÒ(
°ÜýêáB|óÆÊË
Âl ´Ô=9oHä8
Âî#g~
~ 5Àt
¢µ'ujüÀÅ
 >K=ÚHÅ
¥ ßï×´
>öÎ,ÑÍ®:*
hiÇ8 g¶ýp@éh
WôÃF*¦ý¿Ì—ÐQíÕ0
´ ¢òNUó¼æ\ÒÀÛÃG9EÒ!oäÊÐÃ
h Ü/Ñ%GÿP¬
ë ¢jÖÄýÉ
wB9Á¢ÛDR
7¼‾âõ)
;;; mvsetup.lsp
;;;
;;; Copyright 1990-2003 by Autodesk, Inc.
;;;
;;; Permission to use, copy, modify, and distribute this software
;;; for any purpose and without fee is hereby granted, provided
;;; that the above copyright notice appears in all copies and
;;; that both that copyright notice and the limited warranty and
;;; restricted rights notice below appear in all supporting
;;; documentation.
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;;
;;; DESCRIPTION
;;;
;;; This is a setup routine for Mview.
;;;
;;; It is based around a set of functionality that was determined to be a
;;; necessary part of preparing a drawing for plotting. This routine allows
;;; the user to insert several pre-defined title blocks (ANSI A - E) and in
;;; addition it allows the user to create a set of viewports within the
;;; title block just inserted. A global scale may be specified as a ratio
;;; between the scale of the title block in paperspace and the model geometry
;;; in modelspace. For example, if you were doing an engineering drawing at
;;; a scale of 1:4 or quarter scale, then you would specify that you wanted
;;; a ratio of 1 paperspace unit to 4 modelspace units. The routine will
;;; convert this to 0.25xp for the Zoom command. You may also elect to
;;; align the viewports.
;;;
;;; (The first time you invoke MVSETUP, you may notice a slight delay.
;;; This occurs because the routine is creating a default file of various
;;; title blocks and viewport layouts. If you should accidentally erase
;;; your default file, another will be created the next time you invoke
;;; MVSETUP. The file will be created in the directory specified by the
;;; AutoCAD system variable "ACADPREFIX". If you run AutoCAD from a
;;; directory other than that one, and the system variables ACAD or ACADCFG
;;; do not point to that directory, then MVSETUP will not be able to find
;;; it, and will create a new one in the directory pointed to by the first
;;; path found in the current setting of the AutoCAD system variable
;;; "ACADPREFIX".)
;;;
;;; When you invoke MVSETUP from the command line or one of the menus, you
;;; are given four options; three dealing with the creation and manipulation
;;; of viewports, and one which allows you to insert various "title blocks".
;;; The initial prompt is shown below.
;;;
;;; Align/Create/Scale viewports/Options/Title block/Undo:
;;;
;;; The Align viewports option presents you with several more options; you
;;; are asked to determine the type of alignment you wish to perform.
;;;
;;; Angled/Horizontal/Vertical alignment/Rotate view/Undo?
;;;
;;; The Horizontal and Vertical options ask you to pick a basepoint in one
;;; viewport, and the point to move in another viewport. The view in the
;;; second viewport is panned by the offset distance in X or Y between
;;; the two points relative to the zoom scale factor of the second viewport.
;;;
;;; The Angled option asks you for these two points and for a distance and
;;; angle from the basepoint. The point in the first viewport at the
;;; specified distance and angle from the basepoint is where the "other"
;;; point will be panned.
;;;
;;; The Rotate view option asks you for a basepoint and a rotation angle
;;; and uses the DVIEW command to change the view twist. This generally
;;; will be useful only when the UCS of the view you are rotating is
;;; parallel to the screen and would be used to align a view with an
;;; angled edge with the Align Angled option.
;;;
;;; Selecting Create viewports prompts you with the following:
;;;
;;; Delete objects/<Create viewports>:
;;;
;;; Selecting Delete objects provides you with a general selection prompt
;;; at which time you may delete any paperspace objects that you wish.
;;; This is intended to allow you to clear an area for your new viewports.
;;; Modelspace entities will NOT be removed.
;;;
;;;
;;; Selecting Create viewports prompts you to select one of the viewport
;;; options listed.
;;;
;;; Available Mview viewport layout options:
;;;
;;; 0: None
;;; 1: Single
;;; 2: Std. Engineering
;;; 3: Array of Viewports
;;;
;;; Redisplay/<Number of entry to load>:
;;;
;;; Pressing RETURN or selecting "None" returns you to the main prompt
;;; without creating any viewports.
;;;
;;; "Single" is a single viewport which can fill the default area open in
;;; the sheet or it can be located by picking two points on the screen.
;;;
;;; Std. Engineering is a set of four viewports with the upper left viewport
;;; in plan view, the lower left in a front view, the lower right in a right
;;; side view, and the upper right in an oblique view at -45 degrees from 0
;;; and up 30 degrees.
;;;
;;; The "Array of Viewports" allows you to specify any array of viewports
;;; that you want to place on your sheet, from a 1 by 2 or 2 by 1 to any
;;; level allowed by AutoCAD.
;;;
;;;
;;; After selecting option 1, 2 or 3, you are prompted to specify the bounding
;;; area for the viewports that are to be created. Each of the title blocks
;;; provided has a bounding region defined for it in the default file. You
;;; can elect to create all of the viewports within this region by selecting
;;; "Default" at the following prompt:
;;;
;;; Bounding area for viewports. Default/<First point >:
;;;
;;; You can also select two points on the screen and the number of viewports
;;; you subsequently define will be mapped into this area.
;;;
;;; Picking options 2 or 3 prompts you to specify the distance between the
;;; viewports; the interstitial distance. This value must be a positive
;;; number but may be zero. The value you enter for X is automatically
;;; assigned to Y, though you may specify Y to have a different value.
;;; If you selected option 2 above, then the four viewports are created and
;;; the four views are mapped into them as defined in the default file.
;;; The other options create the viewports but do not change the views in
;;; any of them; the view will be a plan view in the current UCS.
;;;
;;;
;;; Selecting Scale viewports at the main menu prompts you to select the
;;; viewports you wish to scale. If you select one or more viewports
;;; you asked whether you wnat to set the zoom scales all at once or for
;;; each viewport separately:
;;;
;;; Set zoom scale factors for viewports. Interactively/<Uniform>:
;;;
;;; After selecting one of these you are asked the following;
;;;
;;; Enter the ratio of paper space units to model space units...
;;; Number of paper space units. <1.0>:
;;; Number of model space units. <1.0>:
;;;
;;; The number of viewports specified will have their zoom scales changed
;;; by the ratio of the paper space units divided by the model space units.
;;; This is cumulative over time, so performing this operation twice with
;;; paper space units set to 1.0 and model space units set to 2.0 will give
;;; the same results as doing it once with 1.0 an 4.0 as the values.
;;;
;;;
;;; Selecting Options at the main menu allows you to specify several
;;; preferences for operation of Mvsetup. They are:
;;;
;;; Set Layer/LImits/Units/Xref:
;;;
;;; The Layer option allows you to specify a layer, existing or new, on
;;; which to insert the title block, the LImits option allows you to
;;; specify whether or not to reset the limits to the drawing extents after
;;; a title block has been inserted, Units specifies whether the sizes and
;;; point locations are to be translated to inch or millimeter paper units,
;;; and the Xref option let's you determine whether the title block is to
;;; be inserted or Xref'ed.
;;;
;;;
;;; Selecting Title block from the main menu gives you another sub-menu.
;;;
;;; Delete objects/Origin/<Insert title block>:
;;;
;;; Delete objects works as described above under Create viewports.
;;; Origin allows you to specify a new UCS origin for the subsequent
;;; insertion of a title block. Pressing RETURN will cause you to be
;;; presented with a list of available title blocks or sheets.
;;;
;;; Available title block options:
;;;
;;; 0: NONE
;;; 1: ISO A4 Size(mm)
;;; 2: ISO A3 Size(mm)
;;; 3: ISO A2 Size(mm)
;;; 4: ISO A1 Size(mm)
;;; 5: ISO A0 Size(mm)
;;; 6: ANSI-V Size(in)
;;; 7: ANSI-A Size(in)
;;; 8: ANSI-B Size(in)
;;; 9: ANSI-C Size(in)
;;; 10: ANSI-D Size(in)
;;;
;;; 11: ANSI-E Size(in)
;;; 12: Arch/Engineering (24 x 36 in)
;;;
;;; Add/Redisplay/<Number of entry to load>:
;;;
;;; This list includes ISO standard sheets used outside the US, specified
;;; in millimeters, the ANSI standard sheet layouts from A to E and size
;;; A Vertical specified in inches. Selecting the number preceding one of the
;;; selections causes one of two things to occur. One, if the AutoCAD
;;; drawing associated with the selections cannot be found, then the
;;; default file is read, a definition is extracted, and the drawing is
;;; created in your current drawing. You are then asked whether you want
;;; to save this drawing to disk. If you want to use this drawing more
;;; than once, you should answer Yes to this prompt. Two, if the AutoCAD
;;; drawing can be found then it is INSERTed into your drawing at 0,0.
;;;
;;; The other options are Add, Delete and Redisplay.
;;;
;;; Pressing RETURN or selecting 0 for "None" at this prompt returns you
;;; to the main menu. Selecting the number of a viable entry causes one
;;; of two things to occur: if you selected one of the built-in entries,
;;; and you have not created a drawing by the name associated with this
;;; entry, the default file is scanned for a definition, and if found,
;;; the title block is created in your current drawing. You are asked
;;; whether you want to create a drawing of the entities just created.
;;; For example, picking 1 (ANSI-V Size) gives you the following prompt:
;;;
;;; Create a drawing named ansi-v.dwg? <Y>:
;;;
;;; Answering Yes causes a drawing to be created and reinserted into your
;;; drawing where it was created.
;;;
;;; If the drawing already exists it is inserted at the current UCS origin.
;;; This is the mechanism for using your own title blocks and parts of
;;; title blocks.
;;;
;;; Selecting Add after the available title blocks are listed gives you
;;; the following prompts; example text follows the colon:
;;;
;;; Title block description: A/E (24 x 18in)
;;;
;;; Drawing to insert (without extension): arch-b
;;; Specify default usable area? <Y>: Y
;;;
;;; Lower left corner: (1.12 0.99 0.00)
;;; Upper right corner: (18.63 17.02 0.00)
;;;
;;; A line looking like this
;;;
;;; A/E (24 x 18in),arch-b.dwg,(1.12 0.99 0.00),(18.63 17.02 0.00),in
;;;
;;; is added after the last entry in the default file.
;;;
;;; The last field of the line specifies whether the title block has been
;;; created in inch or millimeter units. This filed is used to allow title
;;; blocks created in either unit system to be interchanged simply by setting
;;; the unit type in the Options menu.
;;;
;;; Selecting Delete at the same prompt allows you to delete any of the
;;; lines listed except line 0. Redisplay causes the list to be displayed
;;; again.
;;;
;;; If neither a valid drawing or a definition can be found you are so
;;; informed and returned to the main menu.
;;;
;;;
;;; GLOBALS:
;;; mv_nln -- New layer name for title block insertions.
;;; mv_slr -- Set Limits Request from drawing extents.
;;; mv_utr -- Unit Translation Request.
;;; mv_uxr -- Use Xref Request for title block insertions.
;;;
;;;----------------------------------------------------------------------------;
;;;
;;; Avoid (gc)s on load to improve load time.
;;;
(defun do_alloc (/ old_allod new_alloc)
(setq old_alloc (alloc 2000) new_alloc (alloc 2000))
(expand (1+ (/ 11500 new_alloc)))
(alloc old_alloc)
)
(do_alloc)
(setq do_alloc nil)
;;;
;;; ===========================================================================
;;; ===================== load-time error checking ============================
;;;
(defun ai_abort (app msg)
(defun *error* (s)
(if old_error (setq *error* old_error))
(princ)
)
(if msg
(alert (strcat " Application error: "
app
" \n\n "
msg
" \n"
)
)
)
(exit)
)
;;; Check to see if AI_UTILS is loaded, If not, try to find it,
;;; and then try to load it.
;;;
;;; If it can't be found or it can't be loaded, then abort the
;;; loading of this file immediately, preserving the (autoload)
;;; stub function.
(cond
( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
( (not (findfile "ai_utils.lsp")) ; find it
(ai_abort "MVSETUP"
(strcat "Can't locate file AI_UTILS.LSP."
"\n Check support directory.")))
( (eq "failed" (load "ai_utils" "failed")) ; load it
(ai_abort "MVSETUP" "Can't load file AI_UTILS.LSP"))
)
(if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
(ai_abort "MVSETUP" nil) ; a Nil <msg> supresses
) ; ai_abort's alert box dialog.
;;; ==================== end load-time operations ===========================
;;;
;;; Start routine from menu pick or by typing MVS at the
;;; command prompt.
;;;
(defun mv_sup ( / mv_err s mv_oer mv_oce mv_olu ll_crn need_z mv_orm mv_oln
deffi deffo mv_utr mv_oas undo_setting)
;;
;; Internal error handler defined locally
;;
(defun mv_err (s) ; If an error (such as CTRL-C) occurs
; while this command is active...
(if (/= s "Function cancelled")
(if (= s "quit / exit abort")
(princ)
(princ (strcat "\nError: " s))
)
)
(if deffi (close deffi))
(if deffo (close deffo))
(if mv_olu (setvar "lunits" mv_olu)) ; Restore prev. linear units value
(if (/= 1 mv_orm)
(setvar "regenmode" mv_orm)) ; Restore prev. Regenmode value
(if (/= 0 mv_osm)
(setvar "osmode" mv_osm)) ; Restore prev. Object snap mode value
(if (/= 0 mv_oas)
(setvar "pickfirst" mv_oas)) ; Restore prev. Pickfirst value
(command "_.UNDO" "_EN")
(ai_undo_off)
; Restore CMDECHO without undo recording
(ai_setCmdEcho mv_oce) ; Reset command echoing on error
(if mv_oer ; If an old error routine exists
(setq *error* mv_oer) ; then, reset it
)
(princ)
)
(if (not *DEBUG*)
(if *error* ; If there is an error routine defined
(setq mv_oer *error* ; Store AutoLisp error routine
*error* mv_err) ; Temporarily replace it
)
)
(setq mv_oce (getvar "cmdecho"))
(ai_setCmdEcho 0) ; Turn off command echoing without undo re
cording
(ai_undo_on) ; Turn UNDO on
(setq mv_orm (getvar "regenmode"))
(setq mv_osm (getvar "osmode"))
(setq mv_oas (getvar "pickfirst"))
(if (/= 0 mv_oas) (setvar "pickfirst" 0)) ; Turn off pickfirst
(if (/= 0 mv_osm) (setvar "osmode" 0)) ; Turn off object snap mode
(if (/= 1 mv_orm) (setvar "regenmode" 1))
(if (/= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar "CLAYER"))))))
(if (mv_ctm) ; Is Tile-mode on? T or nil
(mv_dos) ; Do old setup
;; else
(mv_dns) ; Do new setup
)
(princ "\nCannot run MVSETUP from a locked layer.")
)
(if deffi (setq deffi (close deffi)))
(if deffo (setq deffo (close deffo)))
(if (/= 1 mv_orm)
(setvar "regenmode" mv_orm)) ; Restore prev. Regenmode value
(if (/= 0 mv_osm)
(setvar "osmode" mv_osm)) ; Restore prev. Object snap mode value
(if (/= 0 mv_oas)
(setvar "pickfirst" mv_oas)) ; Restore prev. Pickfirst value
(ai_undo_off) ; Return UNDO to initial state
(ai_setCmdEcho mv_oce) ; Reset command echoing
(if mv_oer ; If an old error routine exists
(setq *error* mv_oer) ; then, reset it
)
(princ)
)
;;;
;;; Check Tile-mode. Returns T if ON and nil if not on.
;;;
;;; mv_ctm == MView_Check_TileMode
;;;
(defun mv_ctm ()
(if (= (getvar "TILEMODE") 1)
(progn
(initget "Yes No")
(setq ans (getkword "\nEnable paper space? [No/Yes] <Y>: "))
(if (= ans "No")
T
(progn
(setvar "TILEMODE" 0)
nil
)
)
)
nil
)
)
;;;
;;; Do a new setup relative to a point to be given by the user.
;;; The default is the current 0,0,0.
;;;
;;; mv_dns == MView_Do_New_Setup
;;;
(defun mv_dns (/ mv_ver mv_xdf mv_xlf o_cvpt ans sset ITEM_LIST fd program var)
;; Get program name
(if (not (setq program (getvar "program")))
(setq program "acad")
)
(if (= program "acad")
(setq var "acadprefix")
; else
(setq var "exedir")
)
(setq mv_ver "2.0") ; Reset this local if you make a change.
(setq mv_xpf (mv_cpf (getvar var )))
(setq mv_xdf (strcat mv_xpf "mvsetup.dfs"))
(setq mv_xlf "mvsetup.lsp") ; Reset these locals if you make changes.
(setq uctr 0)
(setq o_cvpt (getvar "cvport"))
(if (/= o_cvpt 1)
(command "_.PSPACE") ; Change to paperspace
)
;; Look for external definitions -- set fd to file descriptor
(setq fd (mv_lfx mv_xdf "r"))
;; Close the file, but do not set the handle to nil.
(if fd (close fd))

(if (null fd)


;; then
(progn
(princ (strcat "\nCreating the default file mvsetup.dfs"
"\nin the directory "
mv_xpf ". "))
(mv_cdf)
(setq fd (mv_lfx mv_xdf "r"))
;; Close the file; we were just checking to see if it was there.
(close fd)
)
;; else
)
(setq temp T
mv_utr "in"
)
(while temp
(initget "Align Create Scale Title Undo Options")
(setq ans (getkword (strcat
"\nEnter an option [Align/Create/Scale viewports/"
"Options/Title block/Undo]: ")))
(cond
((= ans "Align")
(mv_vpa) ; Viewport alignment
)
((= ans "Create")
(setq temp1 T)
(while temp1
(initget "Create Delete Undo")
(setq ans (getkword
"\nEnter option [Delete objects/Create viewports/Undo] <Create>: "))
(cond
((= ans "Delete")
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))

(princ "\nSelect the objects to delete... ")


(setq sset (ssget))
(if sset
(command "_.ERASE" sset "")
)
(command "_.UNDO" "_EN")
)
((= ans "Undo")
(cond
((= uctr 0) (princ "\nNothing to undo. \n"))
((> uctr 0)
(command "_.U")
(setq uctr (- uctr 1)
ll_crn nil
)
)
)
)
(T
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(setq temp1 nil)
(if (setq deffi (mv_lfx mv_xdf "r"))
(progn
(textpage)
(setq str1 "\nAvailable layout options: . . . \n")
(setq vp_item_list (mv_pao "MVIEWS" str1))
(if (and (= (type vp_item_list) 'LIST) (null skip))
(mv_mvi)
)
(setq deffi (close deffi))
)
(princ (strcat "\nCouldn't open the file " mv_xdf " for reading.
"))
)
(command "_.UNDO" "_EN")
)
)
)
(command "_.UNDO" "_EN")
)
((= ans "Options")
(mv_sop) ; Set options
)
((= ans "Scale")
(mv_szs) ; Set zoom scale factors
)
((= ans "Title")
(setq temp1 T)
(while temp1
(if (/= (getvar "cvport") 1)
(command "_.PSPACE")
)
(initget "Delete Origin Insert Undo")
(setq ans (getkword
"\nEnter title block option [Delete objects/Origin/Undo/Insert] <Ins
ert>: "))
(cond
((= ans "Delete")
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(princ "\nSelect the objects to delete... ")
(setq sset (ssget))
(if sset
(command "_.ERASE" sset "")
)
(command "_.UNDO" "_EN")
)
((= ans "Origin")
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
;; Get an origin point for the new title block.
(initget 1)
(setq ans (getpoint '(0 0 0)
"\nSpecify new origin point for this sheet: "))
(command "_.UCS" "_O" ans)
(command "_.UNDO" "_EN")
)
((= ans "Undo")
(cond
((= uctr 0) (princ "\nNothing to undo. \n"))
((> uctr 0)
(command "_.U")
(setq uctr (- uctr 1)
ll_crn nil
)
)
)
)
(T
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(setq temp1 nil)
(if fd
(mv_gop)
(princ (strcat
"\nCouldn't open the file " mv_xdf " for reading. "))
)
(command "_.UNDO" "_EN")
)
)
)
(command "_.UNDO" "_EN")
)
((= ans "Undo")
(cond
((= uctr 0) (princ "\nNothing to undo. \n"))
((> uctr 0)
(command "_.U")
(setq uctr (- uctr 1)
ll_crn nil
)
)
)
)
(T
(setq temp nil)
)
)
)
(if (/= o_cvpt 1)
(progn
(setq sset (ssget "_x" '((0 . "VIEWPORT"))))
(if sset
(setq o_cvpt (mv_vvp o_cvpt sset))
(setq o_cvpt nil)
)
(command "_.MSPACE") ; Change to modelspace
;; If the previously current viewport has been deleted,
;; this will do nothing.
(if o_cvpt (setvar "cvport" o_cvpt)) ; Restore previous active viewport
)
)
)
;;;
;;; Set preference options.
;;;
;;; mv_sop == MView_Set_OPtions
;;;
(defun mv_sop (/ temp lay cont)
;;;
;;; Prompt for a layer name.
;;;
(defun getsymbolstring (p / resp)
(setq resp ; raw response
(getstring
(if (or (eq (getvar "EXTNAMES") 0)
(eq (logand (getvar "CMDACTIVE") 4) 4)) nil 1)
p))
(if (wcmatch resp "\"*\"")
(setq resp (substr resp 2 (- (strlen resp) 2))))
(ai_strtrim resp)
)
(setq cont T)
(while cont
(initget "Layer LImits Units Xref")
(setq temp (getkword (strcat "\nEnter an option [Layer/LImits/Units/Xref] <e
xit>: ")))
(cond
((= temp "Layer")
(setq mv_oln (getvar "CLAYER"))
(setq temp (if mv_nln (strcat " <" mv_nln ">: ") ": "))
(setq temp (getsymbolstring (strcat
"\nEnter layer name for title block or [. (for current layer)]" temp))
)
(cond
((= temp "")
(setq mv_nln nil)
)
((= temp ".")
(setq mv_nln nil)
)
(T
(if (snvalid temp)
(progn
(if (setq lay (tblsearch "LAYER" temp))
(if (= (logand (cdr(assoc 70 lay)) 2) 2)
(command "_.LAYER" "_THAW" temp "")
)
(command "_.LAYER" "_NEW" temp "")
)
(setq mv_nln temp)
)
(princ "\nInvalid layer name.\n")
)
)
)
)
((= temp "LImits")
(setq temp (if mv_slr "Y" "N"))
(initget "Yes No")
(setq temp (getkword (strcat "\nSet drawing limits? [Yes/No] <"
temp ">: ")))
(if mv_slr
(if (= temp "No")
(setq mv_slr nil)
(setq mv_slr T)
)
(if (= temp "Yes")
(setq mv_slr T)
(setq mv_slr nil)
)
)
)
((= temp "Units")
(setq temp (if mv_utr mv_utr "in"))
(initget "Mm Millimeters Inches MEters Feet")
(setq temp (getkword (strcat
"\nEnter paper space units type [Feet/Inches/MEters/Millimeters] <"
temp ">: "))
)
(if temp
(cond
((= temp "Millimeters") (setq mv_utr "mm"))
((= temp "Mm") (setq mv_utr "mm"))
((= temp "MEters") (setq mv_utr "m"))
((= temp "Feet") (setq mv_utr "ft"))
((= temp "Inches") (setq mv_utr "in"))
(T (princ))
)
)
)
((= temp "Xref")
(setq temp (if mv_uxr "Xref" "Insert"))
(initget "Xref Insert")
(setq temp (getkword (strcat
"\nEnter title block placement method [Xref attach/Insert] <"
temp ">: "))
)
(if mv_uxr
(if (= temp "Insert")
(setq mv_uxr nil)
(setq mv_uxr T)
)
(if (= temp "Xref")
(setq mv_uxr T)
(setq mv_uxr nil)
)
)
)
(T
(setq cont nil)
)
)
)
)
;;;
;;; Return the first path in ACADPREFIX delimited by `;'.
;;;
;;; mv_cpf == MView_Check_acadPreFix
;;;
(defun mv_cpf (pf / temp)
(setq j 1
l (strlen pf)
)
(while (<= j l)
(if (= (substr pf j 1) ";")
(progn
(setq temp (substr pf 1 (1- j)))
(setq j (1+ l))
)
(setq j (1+ j))
)
)
;; Use passed in string if temp is nil.
(if (= temp nil)
(setq temp pf)
)
;; If temp does not end in a backslash, add one.
(if temp
(if (/= (substr temp (strlen temp) 1) "\\")
(setq temp (strcat temp "\\"))
)
)
;; Return path
temp
)
;;;
;;; Verify the Mview viewport whose number we have in vp_n.
;;;
;;; mv_vvp == MView_Verify_ViewPort
;;;
(defun mv_vvp (num sset / j vp ss_len cont)
(setq ss_len (sslength sset)
j 0
cont T
)
(while (and cont (< j ss_len))
(setq temp (entget (ssname sset j)))
(setq j (1+ j))
(if (= (cdr(assoc 68 temp)) 2)
(setq vp temp)
)
(if (= (cdr(assoc 69 temp)) num)
(setq cont nil
vp temp
)
)
)
(cdr(assoc 69 vp))
)
;;;
;;; Align viewport geometry
;;;
;;; mv_vpa == MView_ViewPort_Align
;;;
(defun mv_vpa ( / temp temp1 ans p1 pt1 p2 a1 d1)
(setq temp T)
(while temp
(initget "Angled Horizontal Rotate Vertical Undo")
(setq ans (getkword
"\nEnter an option [Angled/Horizontal/Vertical alignment/Rotate view/Undo]
: "))
(if (or (= ans "") (= ans "Rotate") (= ans "Undo") (null ans))
(if (= ans "Rotate")
(progn
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(command "_.MSPACE")
(command "_.UCS" "_W")
(setq p1 (getpoint "\nSpecify basepoint in the viewport with the view
to be rotated: "))
(setq temp (getvar "cvport"))
(command "_.UCS" "_V")
(setq a1 (getangle (trans p1 0 1) "\nSpecify angle from basepoint: "))
(command "_.DVIEW" "" "_TW" (* a1 (/ 180 pi)) "")
(command "_.UCS" "_P")
(command "_.UCS" "_P")
(command "_.PSPACE")
(command "_.UNDO" "_EN")
)
(if (= ans "Undo")
(cond
((= uctr 0) (princ "\nNothing to undo. \n") )
((> uctr 0)
(command "_.U")
(setq uctr (- uctr 1)
ll_crn nil
)
)
)
(setq temp nil)
)
)
(progn
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(command "_.MSPACE")
(command "_.UCS" "_W")
(setq p1 (getpoint "\nSpecify basepoint: "))
(setq pt1 (trans (trans p1 1 2) 2 3))
(setq temp (getvar "cvport"))

(setq p2 (getpoint "\nSpecify point in viewport to be panned: "))


(setq p2 (trans (trans p2 1 2) 2 3))
(cond
((= ans "Angled")
(setq temp1 (getvar "cvport"))
(if (= temp1 temp)
(princ "\nPoints must be in different viewports. ")
(progn
(setvar "cvport" temp)
(setvar "orthomode" 0)
(princ (strcat
"\nSpecify the distance and angle "
"to the new alignment point "))
(princ (strcat
"\nin the current viewport where "
"you specified the basepoint. "))
(setq d1 (getdist "\nSpecify distance from basepoint: "))
(setq a1 (getangle "\nSpecify angle from basepoint: "))
(setq p1 (polar p1 a1 d1))
(setq p1 (trans (trans p1 1 2) 2 3))
(setvar "cvport" temp1)
(command "_.UCS" "_V")
(command "_.PAN" (trans p2 3 2) (trans p1 3 2))
)
)
)
((= ans "Horizontal")
(setq temp1 (getvar "cvport"))
(command "_.UCS" "_V")
(setq p1 (list (car p2) (cadr pt1) (caddr p2)))
(if (= temp1 temp)
(princ "\nPoints must be in different viewports. ")
(command "_.PAN" (trans p2 3 2) (trans p1 3 2))
)
)
((= ans "Vertical")
(setq temp1 (getvar "cvport"))
(command "_.UCS" "_V")
(setq p1 (list (car pt1) (cadr p2) (caddr p2)))
(if (= temp1 temp)
(princ "\nPoints must be in different viewports. ")
(command "_.PAN" (trans p2 3 2) (trans p1 3 2))
)
)
(T
(setq temp nil)
)
)
(command "_.UCS" "_P")
(command "_.UNDO" "_EN")
)
)
)
)
;;;
;;; Read lines from a file until the argument matches the given sub-string
;;;
;;; mv_rux == MView_Read_Until_Xx_found
;;;
(defun mv_rux (str j k / l cont line)
(setq cont T l 1)
(while cont
(setq line (read-line deffi))
(setq l (1+ l))
;; Seek to the first instance of str at position j - k.
(if line
(if (= (substr line j k) str)
(setq cont nil)
)
(progn
(setq cont nil l nil)
)
)
)
l ; Return nil or line number where
; matching string is found
)
;;;
;;; Tokenize the line, removing any blanks not within the string.
;;; Return the tokenized list of strings found.
;;;
;;; mv_tok == MView_TOKenize
;;;
(defun mv_tok (str / sl j str_list)
(setq s_list (mv_tkw str))
(setq list_l (length s_list)
j 0
)
(while (< j list_l)
(setq s_list (subst (mv_tki (nth j s_list)) (nth j s_list) s_list))
(setq j (1+ j))
)
s_list
)
;;;
;;; Tokenize the item, removing any leading and trailing blanks.
;;; Return the string.
;;;
;;; mv_tki == MView_ToKenize_Item
;;;
(defun mv_tki (str / sl j k str_list)
(setq sl (strlen str)
j 1
k 0
)
(while (and (< j sl) (= (substr str j 1) " "))
(setq j (1+ j))
)
(while (and (< k sl) (= (substr str (- sl k) 1) " "))
(setq k (1+ k))
)
(substr str j (- sl k))
)
;;;
;;; Tokenize a string into a list of strings.
;;; Return the tokenized string list.
;;;
;;; mv_tkw == MView_ToKenize_into_Words
;;;
(defun mv_tkw (str / sl k)
(setq sl (strlen str)
k 0
)
(while (and (< k sl) (/= (substr str (1+ k) 1) ","))
(setq k (1+ k))
)
(if str_list
(setq str_list (append str_list (list (substr str 1 k))))
(setq str_list (list (substr str 1 k)))
)
(setq k (+ k 2))
(if (< k sl)
(mv_tkw (substr str k))
)
str_list
)
;;;
;;; List names on the screen until an end of list marker is found.
;;; Store the items found into a list, ITEM_LIST, a global
;;; Ignore blank lines and commented lines. Return number of lines.
;;;
;;; mv_lns == MView_List_Names_on_Screen
;;;
(defun mv_lns (str j k / l cont line)
(setq cont T l -1)
(while cont
(if (setq line (read-line deffi))
;; Seek to the end of the section delimited by "str"
;; Else print the line to the screen preceded by an integer
(if (= (substr line j k) str)
(setq cont nil)
(progn
(setq l (1+ l)
new_line (mv_tok line)
item (car new_line)
ITEM_LIST (if ITEM_LIST
(append ITEM_LIST (list new_line))
(list new_line)
)
)
(if (and (= (rem l 10) 1) (> l 1))
(if (= (rem l 20) 1)
(progn
(princ "\n<more> ")
(grread)
)
(terpri)
)
)
(princ (strcat "\n\t" (itoa l) ":\t " item))
)
)
(setq cont nil)
)
)
l
)
;;;
;;; Add an entry to the default file. Get all inputs.
;;;
;;; mv_aef == MView_Add_an_Entry_to_default_File
;;;
(defun mv_aef ( / str ans deffo p1 p2)
(setq ans (getstring T "\nEnter title block description: "))
(if (not (or (= ans "") (null ans)))
(progn
(setq str ans)
(setq ans (getstring "\nEnter drawing name to insert (without extension):
"))
(if (not (or (= ans "") (null ans)))
(progn
(initget "Yes No")
(setq p1 (getkword "\nDefine default usable area? [Yes/No] <Y>: "))
(if (= p1 "No")
(setq str (strcat str "," ans ".dwg" "," mv_utr))
(progn
(initget 1)
(setq p1 (getpoint "\nSpecify lower-left corner: "))
(initget 1)
(setq p2 (getcorner p1 "\nSpecify upper-right corner: "))
(mv_s2p 'p1 'p2)
(setq str (strcat str "," ans ".dwg"
",(" (rtos (car p1))
" " (rtos (cadr p1))
" " (rtos (caddr p1))
")"
",(" (rtos (car p2))
" " (rtos (cadr p2))
" " (rtos (caddr p2))
")"
"," mv_utr))
)
)
(setq deffi (close deffi))
(if (setq deffi (mv_lfx mv_xdf "r"))
(if (setq deffo (mv_lfx "temp.tdf" "w"))
(progn
(setq cur_ln (+ cur_ln max_l))
(repeat cur_ln (progn
(write-line (read-line deffi) deffo)
))
(write-line str deffo)
(while (setq line (read-line deffi))
(write-line line deffo)
)
)
)
)
(setq deffo (close deffo))
(setq deffi (close deffi))
(if (setq deffi (mv_lfx "temp.tdf" "r"))
(if (setq deffo (mv_lfx mv_xdf "w"))
(while (setq line (read-line deffi))
(write-line line deffo)
)
)
)
(setq deffo (close deffo))
(setq deffi (close deffi))
(command "shell" "del temp.tdf")
(textpage)
)
)
)
)
)
;;;
;;; Subtract an entry from the default file. Get all inputs.
;;;
;;; mv_sef == MView_Subtract_an_Entry_from_default_File
;;;
(defun mv_sef ( / str ans deffo)
(setq str (nth 0 d_item_list))
(setq deffi (close deffi))
(if (setq deffi (mv_lfx mv_xdf "r"))
(if (setq deffo (mv_lfx "temp.tdf" "w"))
(progn
(setq cur_ln (mv_rux str 1 (strlen str)))
(setq cur_ln (- cur_ln 2))
(close deffi)
(setq deffi (mv_lfx mv_xdf "r"))
(repeat cur_ln (progn
(write-line (read-line deffi) deffo)
))
(read-line deffi)
(while (setq line (read-line deffi))
(write-line line deffo)
)
)
)
)
(setq deffo (close deffo))
(setq deffi (close deffi))
(if (setq deffi (mv_lfx "temp.tdf" "r"))
(if (setq deffo (mv_lfx mv_xdf "w"))
(while (setq line (read-line deffi))
(write-line line deffo)
)
)
)
(setq deffo (close deffo))
(setq deffi (close deffi))
(command "shell" "del temp.tdf")
(textpage)
(setq deffi (mv_lfx mv_xdf "r"))
(princ)
)
;;;
;;; Pick from the list by typing an integer, returns the item or zero.
;;; cont is global to this routine, local to the calling routine.
;;;
;;; mv_pfl == MView_Pick_From_List
;;;
(defun mv_pfl (max_l ig_b ig_str prmpt / OK ans return str)
(while (null OK)
(initget ig_b ig_str)
(setq ans (getint prmpt))
(cond
((or (= ans "") (null ans))
(setq OK T cont nil return 0)
)
((= ans "Add")
(mv_aef)
(setq OK T)
)
((= ans "Delete")
(setq str "\nEnter number of entry to delete from list: ")
(setq d_item_list (mv_pfl max_l 6 "" str))
(if d_item_list
(progn
(princ (strcat "\nDeleting " (car d_item_list) " from list. "))
(mv_sef)
)
)
(setq OK T cont T return 0)
)
((= ans "Redisplay")
(setq OK T)
)
(T
(if (and (>= ans 0) (<= ans max_l))
(setq return (nth ans ITEM_LIST)
OK T
cont nil
)
(progn
(princ (strcat
"\nNumber must be between 0 and " (itoa max_l) "\n"))
(setq OK nil)
)
)
)
)
)
return
)
;;;
;;; Get the user's options
;;;
;;; mv_gop == MView_Get_OPtions
;;;
(defun mv_gop (/ deffi d_item_name max_lines ans cont isc fsc mmsc msc li ll)
(if (setq deffi (mv_lfx mv_xdf "r"))
(progn
(textpage)
(setq str1 "\nAvailable title blocks:... \n")
(setq d_item_list (mv_pao "NAMES" str1))
(if (and (= (type d_item_list) 'LIST) (null skip))
(progn
(mv_tbi)
(setq ll (length d_item_list)
li (nth 2 d_item_list)
)
(if li ; ll is > 2
(progn
(if (= (type (read li)) 'LIST)
(progn
(setq ll_crn li)
(if (> ll 3)
(setq ur_crn (nth 3 d_item_list)
li (nth 4 d_item_list)
)
(setq ll_crn nil ur_crn nil)
)
)
)
(if (= (type ur_crn) 'STR)
(setq ll_crn (read ll_crn)
ur_crn (read ur_crn)
)
)
;;; Force the right units to be used for the scaling
(cond
((= li "mm")
(if (= (strcase mv_utr T) "in")
(setq mv_utr "mm")
)
)
((= li "in")
(if (= (strcase mv_utr T) "mm")
(setq mv_utr "in")
)
)
)
(cond
((= (strcase mv_utr T) "mm")
(setq isc 25.4
mmsc 1.0
msc 1000.0
fsc (* 12 25.4)
)
)
((= (strcase mv_utr T) "m")
(setq isc (/ 25.4 1000)
mmsc (/ 1.0 1000)
msc 1.0
fsc (/ (* 12 25.4) 1000)
)
)
((= (strcase mv_utr T) "ft")
(setq isc (/ 1.0 12)
mmsc (/ 1.0 (* 12 25.4))
msc (/ 1000.0 (* 12 25.4))
fsc 1.0
)
)
((= (strcase mv_utr T) "in")
(setq isc 1.0
mmsc (/ 1.0 25.4)
msc (/ 1000.0 25.4)
fsc 12.0
)
)
(T
(princ "\nError: unit type not specified in default file.")
(exit)
)
)
)
)
(cond
((= li "in") ; And are defined in inches
(command "_.SCALE" (entlast) "" "0,0" isc)
(setq ll_crn (mapcar '(lambda (x) (* x isc)) ll_crn))
(setq ur_crn (mapcar '(lambda (x) (* x isc)) ur_crn))
)
((= li "ft") ; And are defined in feet
(command "_.SCALE" (entlast) "" "0,0" fsc)
(setq ll_crn (mapcar '(lambda (x) (* x fsc)) ll_crn))
(setq ur_crn (mapcar '(lambda (x) (* x fsc)) ur_crn))
)
((= li "mm") ; And are defined in millimeters
(command "_.SCALE" (entlast) "" "0,0" mmsc)
(setq ll_crn (mapcar '(lambda (x) (* x mmsc)) ll_crn))
(setq ur_crn (mapcar '(lambda (x) (* x mmsc)) ur_crn))
)
((= li "M") ; And are defined in meters
(command "_.SCALE" (entlast) "" "0,0" msc)
(setq ll_crn (mapcar '(lambda (x) (* x msc)) ll_crn))
(setq ur_crn (mapcar '(lambda (x) (* x msc)) ur_crn))
)
)
(command "_.ZOOM" "_E")
(if mv_slr ; Set Limits requested
(progn
(setq temp (getvar "EXTMIN"))
(setvar "LIMMIN" (list (car temp) (cadr temp)))
(setq temp (getvar "EXTMAX"))
(setvar "LIMMAX" (list (car temp) (cadr temp)))
)
)
)
)
(setq ITEM_LIST nil)
(setq deffi (close deffi))
)
(princ (strcat "\nCouldn't open the file " mv_xdf " for reading. "))
)
)
;;;
;;; Pick options
;;;
;;; mv_pao == MView_Pick_An_Option
;;;
(defun mv_pao (str str1 / cont max_lines d_item_list)
(setq cont T)
(while cont
(princ str1)
(setq cur_ln (mv_rux str 1 (strlen str)))
(setq ITEM_LIST nil)
(setq max_lines (mv_lns (strcat "END_" str)
1 (+ 4 (strlen str))))
(if (= str "MVIEWS")
(setq d_item_list (mv_pfl max_lines 4 "Redisplay"
"\nEnter layout number to load or [Redisplay]: "))
(setq d_item_list (mv_pfl max_lines 4 "Add Redisplay Delete"
"\nEnter number of title block to load or [Add/Delete/Redisplay]: "))
)
;;
;; Skip the title block insertion if "None" is selected.
;;
(if (and (= (type d_item_list) 'LIST) (= (car d_item_list) "None"))
(setq skip T)
(setq skip nil)
)
;;
;; If the Redisplay option is chosen, rewind the file by
;; Closing it, opening it again, and seeking to the start
;; of the NAMES section again.
;;
(if cont
(progn
(if deffi (setq deffi (close deffi)))
(if (null (setq deffi (mv_lfx mv_xdf "r")))
(progn
(princ (strcat "\nCouldn't open " mv_xdf " for reading."))
(setq cont nil)
)
)
)
)
)
d_item_list
)
;;;
;;; Title block insertion
;;; Check that the drawing exists and if not, try to create it
;;; from the definition, if it can be found. If not,
;;; reject the selection. If there is a definition, then
;;; execute it and perform the WBLOCK command, then
;;; insert the resulting block.
;;;
;;; mv_tbi == MView_Title_Block_Insertion
;;;
(defun mv_tbi ()
;; If an alternate layer has been specified, then set that layer for the
;; subsequent title block insertion or Xref.
(if mv_nln
(command "_.LAYER" "_SET" mv_nln "")
)
;;
;; a definition in the default file. If that fails, then
(if (> (length d_item_list) 1)
(if (setq block_name (findfile (nth 1 d_item_list)))
(if mv_uxr
(mv_xtb block_name)
(mv_itb block_name)
)
;; Block named not found; try to create it...
(progn
(setq block_name (nth 1 d_item_list))
(setq e_last (cdr(assoc -1 (entget(entlast)))))
(setq item_name (strcat "NAME - " (nth 0 d_item_list)))
(if (mv_rux item_name 1 (strlen item_name))
(mv_cfd)
)
(if (not (eq (cdr(assoc -1 (entget(entlast)))) e_last))
(progn
(setq sset (ssadd)) ; Create a null selection set.
(while (setq e_last (if e_last (entnext e_last) (entnext)))
(ssadd e_last sset) ; Add new entities to end of database.
)
(initget "Yes No")
(setq ans (getkword (strcat
"\nCreate a drawing named " block_name "? <Y>: ")))
(if (/= ans "No")
(progn
(command "_.WBLOCK" block_name "" "0,0" sset "")
(if mv_uxr
(mv_xtb block_name)
(mv_itb block_name)
)
)
;; Else do nothing...
)
)
(progn
(princ (strcat
"\nCouldn't find a definition for block " block_name ". "))
;;(exit)
)
)
)
)
(progn
(setq d_item_list (strcat "NAME - " (nth 0 d_item_list)))
(if (mv_rux d_item_list 1 (strlen d_item_list))
(mv_cfd)
)
)
)
(if mv_nln
(command "_.LAYER" "_SET" mv_oln "") ; Reset old layer
)
)
;;;
;;; Insert title blocks, no prompting for attributes.
;;;
;;; mv_itb == MView_Insert_Title_Block
;;;
(defun mv_itb (block_name / attreq_old)
;; Insert the block
(setq attreq_old (getvar "attreq"))
(setvar "attreq" 0)
(command "_.INSERT" block_name "0,0" "" "" "")
(setvar "attreq" attreq_old)
)
;;;
;;; Xref title blocks; variable attributes are ignored.
;;;
;;; mv_xtb == MView_Xref_Title_Block
;;;
(defun mv_xtb (block_name / b_def b_nam hasatt temp cont count)
;; Insert the block
(command "_.XREF" "_ATTACH" block_name "0,0" "" "" "0")
)
;;;
;;; Create the mview viewports.
;;;
;;; mv_mvi == MView_MView_Insertion
;;;
(defun mv_mvi (/ n_vp_x n_vp_y i_l_len view_n p1 p2 ok_size)
(if (> (length vp_item_list) 0)
(progn
(if (> (length vp_item_list) 2)
(setq n_vp_x (nth 1 vp_item_list)
n_vp_y (nth 2 vp_item_list)
)
)
(if (> (setq i_l_len (length vp_item_list)) 3)
(setq view_n (- i_l_len 3)) ; Number of views defined.
(setq view_n 0)
)
(setq d_item_name (strcat "VPSETNAME - " (nth 0 vp_item_list)))
(if (mv_rux d_item_name 1 (strlen d_item_name))
(progn
(mv_gba) ; Get bounding area
(mv_s2p 'mvs_p1 'mvs_p2)
(mv_gnv) ; Get number of viewport
(mv_gid) ; Get interstitial distances
(mv_cfp) ; Calculate first points
(mv_cba) ; Check area is on-screen
(setvar "osmode" 0)
(command "_.MVIEW" p1 p2)
(if (> (cdr (assoc 68 (entget (entlast)))) 0)
(progn
(setq ok_size T)
(mv_cna) ; Check number of active viewports
)
)
(setq f_vp_n (mv_gvn)) ; Get viewport number
(mv_avp) ; Array other Mview viewports
(setq l_vp_n (mv_gvn)) ; Get viewport number
(if (and (not ok_size) (> i_l_len 3))
(princ "\n Viewport size is too small to change views.")
(mv_cav) ; Change the view of all viewports
)
)
)
)
)
)
;;;
;;; Set the zoom scale factors for a set of viewports.
;;;
;;; mv_szs == MView_Set_Zoom_Scales
;;;
(defun mv_szs ( / temp)
(command "_.UNDO" "_GROUP")
(setq uctr (1+ uctr))
(if (/= (getvar "cvport") 1)
(command "_.PSPACE")
)
(princ "\nSelect the viewports to scale... ")
(setq sset (ssget '((0 . "VIEWPORT") (-4 . "<NOT") (69 . 1) (-4 . "NOT>"))))
(if sset
(progn
(if (> (sslength sset) 1)
(progn
(initget "Interactively Uniform")
(setq ans (getkword (strcat
"\nSet zoom scale factors for viewports. "
"Interactively/<Uniform>: "))
)
(if (= ans "Interactively")
(setq vp_s_i T)
(setq vp_s_i nil)
)
)
(setq vp_s_i nil)
)
(setq temp (sslength sset)
j 0
)
(if (= (getvar "cvport") 1)
(command "_.MSPACE")
)
(while (< j temp)
(progn
(setq vp_n (cdr(assoc 69 (entget(ssname sset j)))))
(setvar "cvport" vp_n)
(setq j (1+ j))
(if (or vp_s_i (< j 2))
(mv_ssi)
)
(command "_.ZOOM" (strcat (mv_sts vp_scale) "xp"))
)
)
(command "_.PSPACE")
)
(princ "\nNo viewports selected. ")
)
(command "_.UNDO" "_EN")
)
;;;
;;; Interactively set the scale of each viewport.
;;;
;;; mv_ssi == MView_Setup_Scale_Interactively
;;;
(defun mv_ssi (/ ans)
(princ "\nSet the ratio of paper space units to model space units... ")
(initget 6)
(setq ans (getreal
"\nEnter the number of paper space units <1.0>: ")
)
(if (= (type ans) 'REAL)
(setq vp_scale ans)
(setq vp_scale 1.0)
)
(initget 6)
(setq ans (getreal
"\nEnter the number of model space units <1.0>: ")
)
(if (= (type ans) 'REAL)
(setq vp_scale (/ vp_scale ans))
(setq vp_scale (/ vp_scale 1.0))
)
vp_scale
)
;;;
;;; Set up the scale either interactively or uniformly.
;;;
;;; mv_sus == MView_Set_Up_Scale
;;;
(defun mv_sus ()
(if vp_s_i
(mv_ssi)
)
(setq vp (mv_gvp (+ n vp_n) sset))
(command "_.ZOOM" (strcat (mv_sts vp_scale) "xp"))
)
;;;
;;; Convert a real number to its shortest value; no trailing zeros.
;;;
;;; mv_sts == MView_Scale_To_String
;;;
(defun mv_sts (num / scale j return)
(setq scale (rtos num 2 15)
j 0
)
(while (< j (strlen scale))
(if (= (setq return (substr scale (- (strlen scale) j) 1)) "0")
(setq j (1+ j))
(if (= return ".")
(progn
(setq return (substr scale 1 (- (strlen scale) (1- j))))
(setq j (strlen scale))
)
(progn
(setq return (substr scale 1 (- (strlen scale) j)))
(setq j (strlen scale))
)
)
)
)
return
)
;;;
;;; Change to a new plan view and restore.
;;;
;;; mv_npv == MView_set_New_Plan_View
;;;
(defun mv_npv (ord_1 amnt_1 ord_2 amnt_2)
(command "_.UCS" ord_1 amnt_1)
(command "_.UCS" ord_2 amnt_2)
(command "_.PLAN" "" )
(command "_.UCS" "_P")
(command "_.UCS" "_P")
(princ)
)
;;;
;;;Get the Mview viewport whose number we have in vp_n.
;;;
;;; mv_gvp == MView_Get_ViewPort
;;;
(defun mv_gvp (num sset / j vp ss_len cont)
(setq ss_len (sslength sset)
j 0
cont T
)
(while (and cont (< j ss_len))
(if (= (cdr(assoc 69 (setq vp (entget (ssname sset j))))) num)
(setq cont nil)
)
(setq j (1+ j))
)
vp
)
;;;
;;; Change the view into all Mview viewports.
;;;
;;; mv_cav == MView_Change_All_Views
;;;
(defun mv_cav (/ n sset vp_n vp m_4_iso)
(if need_z
(command "_.ZOOM" "_E")
)
(setq n 0
sset (ssget "_x" '((0 . "VIEWPORT")))
vp_n f_vp_n
)
(command "_.MSPACE")
;;(setvar "cvport" vp_n)
;; While we still have both viewports and view definitions for them...
(while (and (< n view_n) (<= (+ n vp_n) l_vp_n))
(setq vp (mv_gvp (+ n vp_n) sset))
(if m_4_iso
(command "_.MVIEW" "_on" (cdr (assoc -1 vp)) "")
)
(setvar "cvport" (+ n vp_n))
(cond
((= (nth (+ 3 n) vp_item_list) "PLAN")
(command "_.PLAN" "")
;;(mv_sus)
)
((= (nth (+ 3 n) vp_item_list) "FRONT")
(mv_npv "_x" "90" "_x" "0")
;;(mv_sus)
)
((= (nth (+ 3 n) vp_item_list) "RIGHT")
(mv_npv "_z" "90" "_x" "90")
;;Test for case when all 4 viewports can't be on. We
;;turn this one off so we can continue to the iso view.
(if (= maxact 4)
(progn
(command "_.MVIEW" "_OFF" (cdr (assoc -1 vp)) "")
(setq m_4_iso T)
)
)
;;(mv_sus)
)
((= (nth (+ 3 n) vp_item_list) "LEFT")
(mv_npv "_z" "-90" "_x" "90")
;;(mv_sus)
)
((= (nth (+ 3 n) vp_item_list) "ISO")
(command "_.VPOINT" "_R" "-45" "30")
;;(mv_sus)
)
(T
(princ "\nUndefined view definition in default file. ")
(exit)
)
)
(setq n (1+ n))
)
(command "_.PSPACE")
)
;;;
;;; Array other Mview viewports.
;;;
;;; mv_avp == MView_Array_ViewPorts
;;;
(defun mv_avp ( / dx dy)
(if (and (> (car mvs_p4) 1) (> (cadr mvs_p4) 1))
(progn
(setq dx (+ (car mvs_p5) (car mvs_p3)))
(setq dy (+ (cadr mvs_p5) (cadr mvs_p3)))
(command "_.ARRAY"
(entlast) ""
"_r"
(cadr mvs_p4)
(car mvs_p4)
(+ (cadr mvs_p5) (cadr mvs_p3))
(+ (car mvs_p5) (car mvs_p3))
)
)
(if (> (car mvs_p4) 1)
(progn
(setq dx (+ (car mvs_p5) (car mvs_p3)))
(command "_.ARRAY"
(entlast) ""
"_r"
(cadr mvs_p4)
(car mvs_p4)
(+ (car mvs_p5) (car mvs_p3))
)
)
(if (> (cadr mvs_p4) 1)
(progn
(setq dy (+ (cadr mvs_p5) (cadr mvs_p3)))
(command "_.ARRAY"
(entlast) ""
"_R"
(cadr mvs_p4)
(car mvs_p4)
(+ (cadr mvs_p5) (cadr mvs_p3))
)
)
)
)
)
)
;;;
;;; Check the number of active viewports plus the number of new
;;; viewports to be created to determine whether the allowable
;;; number of active viewports will be exceeded. If so, noff
;;; holds the number of viewports to turn off before creating
;;; the rest of the new ones.
;;;
;;; mv_cna == MView_Check_Number_of_Active_viewports
;;;
(defun mv_cna (/ sset ssl nsset nssl n temp total noff)
(setq sset (ssget "_x" '((0 . "viewport")))
ssl (sslength sset)
nsset (ssadd)
n 0
)
(while (< n ssl)
(setq temp (ssname sset n))
(if (> (cdr (assoc 68 (entget temp))) 0)
(ssadd temp nsset)
)
(setq n (1+ n))
)
(if (> (setq total (+ (setq nssl (sslength nsset))
(1- (* (car mvs_p4) (cadr mvs_p4)))
)
)
(setq maxact (getvar "maxactvp"))
)
(progn
(setq noff (- total maxact)
n 1
)
(if (> maxact 4)
(while (and (<= n noff) (< n (1- nssl)))
(setq temp (ssname nsset n))
(command "_.MVIEW" "_OFF" temp "")
(setq n (1+ n))
)
(while (< n (1- ssl))
(setq temp (ssname sset n))
(command "_.MVIEW" "_OFF" temp "")
(setq n (1+ n))
)
)
)
)
)
;;;
;;; Get the name of a Mview viewport.
;;;
;;; mv_gvn == MView_Get_Viewport_Name
;;;
(defun mv_gvn ()
(cdr(assoc 69 (entget(entlast))))
)
;;;
;;; Calculate the size of the individual viewports from the two
;;; corner points, mvs_p1 and mvs_p2, the interstitial distances
;;; held in mvs_p3, and the number of viewports held in mvs_p4.
;;;
;;; mv_cfp == MView_Calculate_First_Points
;;;
(defun mv_cfp (/ x y dx dy )
(mv_s2p 'mvs_p1 'mvs_p2)
;; Points are now sorted so that mvs_p1 IS lower left....
(setq x (- (car mvs_p2) (car mvs_p1))
y (- (cadr mvs_p2) (cadr mvs_p1))
dx (/ (- x (* (1- (car mvs_p4)) (car mvs_p3))) (car mvs_p4))
dy (/ (- y (* (1- (cadr mvs_p4)) (cadr mvs_p3))) (cadr mvs_p4))
p1 mvs_p1
p2 (mapcar '+ p1 (setq mvs_p5 (list dx dy 0)))
)
)
;;;
;;; Sort two points into lower-left to upper-right order.
;;;
;;; mv_s2p == MView_Sort_2_Points
;;;
(defun mv_s2p (_p1 _p2 / x y pt1 pt2 )
(setq pt1 (eval _p1)
pt2 (eval _p2)
)
(if (> (car pt1) (car pt2))
(setq x (car pt1)
pt1 (list (car pt2) (cadr pt1) 0.0)
pt2 (list x (cadr pt2) 0.0)
)
)
(if (> (cadr pt1) (cadr pt2))
(setq x (cadr pt1)
pt1 (list (car pt1) (cadr pt2) 0.0)
pt2 (list (car pt2) x 0.0)
)
)
(set _p1 pt1)
(set _p2 pt2)
)
;;;
;;; Get the number of viewports in X and Y.
;;; Sets the global mvs_p4 which is a point containing the X and Y
;;; amounts as the (car) and (cadr) of mvs_p4.
;;;
;;; mv_gnv == MView_Get_Number_of_Viewports_in_x_and_y
;;;
(defun mv_gnv (/ )
(if n_vp_x
(progn
(setq mvs_p4 (list (read n_vp_x) (read n_vp_y) 0))
)
(progn
(setq ans (getint "\nEnter number of viewports in X direction <1>: "))
(if (= (type ans) 'INT)
(setq mvs_p4 (list ans))
(setq mvs_p4 (list 1))
)
(setq ans (getint "\nEnter number of viewports in Y direction <1>: "))
(if (= (type ans) 'INT)
(setq mvs_p4 (append mvs_p4 (list ans 0)))
(setq mvs_p4 (append mvs_p4 (list 1 0)))
)
)
)
)
;;;
;;; Get the horizontal and vertical distances between the viewports.
;;; Sets the global mvs_p3 which is a point containing the X and Y
;;; interstitial distances as the (car) and (cadr) of mvs_p3.
;;;
;;; mv_gid == MView_Get_Interstitial_Distances
;;;
(defun mv_gid (/ )
(setq mvs_p3 (list 0.0 0.0 0.0))
(if (> (car mvs_p4) 1)
(progn
(setq ans (getdist (strcat
"\nSpecify distance between viewports in X direction <"
(mv_sts (car mvs_p3))
">: ")))
(if (= (type ans) 'REAL)
(setq mvs_p3 (list ans ans ans))
)
)
)
(if (> (cadr mvs_p4) 1)
(progn
(setq ans (getdist (strcat
"\nSpecify distance between viewports in Y direction <"
(mv_sts (cadr mvs_p3))
">: ")))
(if (= (type ans) 'REAL)
(setq mvs_p3 (list (car mvs_p3) ans (caddr mvs_p3)))
)
)
)
mvs_p3
)
;;;
;;; Get set up for creating viewports.
;;; Sets the globals mvs_p1 and mvs_p2 which are the corners of the
;;; allowable area for viewports in paperspace coordinates.
;;;
;;; mv_gba == MView_Get_Bounding_Area
;;;
(defun mv_gba (/ )
(if ll_crn
(initget 1 "Default")
(initget 1)
)
(graphscr)
(setq ans (getpoint
(if ll_crn
"\nBounding area for viewport(s). Default/<First point >: "
"\nSpecify first corner of bounding area for viewport(s): "
)
))
(if (= ans "Default")
(progn
(if ll_crn
(setq mvs_p1 ll_crn
mvs_p2 ur_crn
)
(progn
(princ "\nNo default points defined. ")
(exit)
)
)
)
(progn
(initget 1)
(setq mvs_p1 ans
mvs_p2 (getcorner mvs_p1 "\nSpecify opposite corner: ")
)
)
)
)
;;;
;;; Check that the corners given are on-screen. If not, zoom so they are.
;;;
;;; mv_cba == MView_Check_Bounding_Area
;;;
(defun mv_cba (/ vs vc ss dx dy)
(setq vs (getvar "viewsize")
vc (getvar "viewctr")
ss (getvar "screensize")
dx (* vs (/ (car ss) (cadr ss)))
)
(if (or (< (car mvs_p1) (- (car vc) (/ dx 2.0)))
(< (cadr mvs_p1) (- (cadr vc) (/ vs 2.0)))
(> (car mvs_p2) (+ (car vc) (/ dx 2.0)))
(> (cadr mvs_p2) (+ (cadr vc) (/ vs 2.0)))
)
(setq need_z T)
)
)
;;;
;;; Create a title block or Mview viewport layout from the code in the
;;; default file. This may be anything from inserting a block to actually
;;; drawing every component of the title block from scratch. Any
;;; single-line valid Lisp expression may be written in the default file
;;; after the DATA name.
;;;
;;; mv_cfd == MView_Create_From_Defaults
;;;
(defun mv_cfd (/ cont theCmd)
(setq cont T)
(while cont
(setq theCmd (mv_rpl))
(if (= (substr theCmd 1 8) "END_ITEM")
(progn
(setq cont nil)
)
(mv_etl theCmd)
)
)
)
;;;
;;; Evaluate the line or string passed in.
;;;
;;; mv_etl == MView_Evaluate_The_Line
;;;
(defun mv_etl (str / )
;(princ str)(terpri)
(if (eval(read str)) T nil)
)
;;;
;;; Read and parse out a line of the Lisp code found in the defaults
;;; file. This must be done so that literal strings may be written
;;; directly in the defaults file, without having to escape all of them.
;;; We will do the escaping here, if necessary.
;;;
;;; Return the escaped string
;;;
;;; mv_rpl == MView_Read_and_Parse_a_Line
;;;
(defun mv_rpl ( / line j k sl str)
(if (setq line (read-line deffi))
(progn
(setq j 1 k 1 sl (strlen line) str "")
(while (<= j sl)
(if (= (setq sb_str (substr line j k)) "\"")
(setq str (strcat str "\""))
(setq str (strcat str sb_str))
)
(setq j (1+ j))
)
)
(progn
(princ "\nNo lines left to read. ")
(exit)
)
)
str
)
;;;
;;; Create a default definitions file in the current directory
;;; Read it out of this file (mvsetup.lsp) at the end of the file.
;;;
;;; mv_cdf == MView_Create_Defaults_File
;;;
(defun mv_cdf (/ deffi deffo cont line)
;; The default file name for mvsetup is "mvsetup.dfs".
;; Look for it in AutoCAD's search paths
;;
(if (setq deffi (mv_lfx "mvsetup.lsp" "r"))
(if (setq deffo (mv_lfx mv_xdf "w"))
(progn
(setq cont T)
(while cont
(setq line (read-line deffi))
;; Seek to the start of the default file definition
(if (= (substr line 1 13) ";;; Start DDF")
(setq cont nil)
)
)
;; Start writing the file
;; Throw away the first four characters of each line to the EOF.
(while (setq line (read-line deffi))
;; Seek to the start of the default file definition
(write-line (substr line 5) deffo)
)
(setq deffi (close deffi))
(setq deffo (close deffo))
)
(princ (strcat "\nError opening " mv_xdf " for writing. "))
)
(princ (strcat "\nError opening " mv_xlf " for reading. "))
)
)
;;;
;;; Look for an external definitions file in AutoCAD's search path
;;;
;;; mv_lfx == MView_Look_For_eXternal_file
;;;
(defun mv_lfx (f_name r_or_w / lfile)
;; Look for f_name in AutoCAD's search paths.
(if (= r_or_w "w")
(if (setq temp (open f_name r_or_w))
temp ; Return file descriptor
(progn
(princ (strcat "\nCouldn't open " f_name " for writing. "))
(exit)
)
)
(if (setq lfile (findfile f_name))
(if (setq temp (open lfile r_or_w))
temp ; Return file descriptor
(progn
(princ (strcat "\nCouldn't open " f_name " for reading. "))
(exit)
)
)
nil ; or nil
)
)
)
;;;
;;; Change an existing setup, including the titleblock and/or viewports
;;;
;;; mv_coc == MView_Change_Or_Create?
;;;
(defun mv_coc ()
(initget "Create Update")
(setq ans (getkword "\nCreate new setup or [Update current setup]: "))
(if (= ans "Update")
-1 ; Return -1
1 ; Return 1
)
)
;;;
;;; Tilemode setup.
;;;
;;; mv_ == MView_
;;;
(defun mv_dos (/ temp xl yl)

;; (if (and (/= (getvar "screenboxes") 0)(= (getvar "menuname") "acad"))


;; (setq scr_mnu 1)
;; (setq scr_mnu nil)
;; )
;; (if scr_mnu (menucmd "S=UNITS0"))
(initget 7 "Scientific Decimal Engineering Architectural Metric 1 2 3 4 5")
(setq xxx (getkword "\nEnter units type [Scientific/Decimal/Engineering/Archit
ectural/Metric]: "))
(cond
;; ((= xxx "1")(setq temp 1 scr_mnu 1))
;; ((= xxx "2")(setq temp 2 scr_mnu 1))
;; ((= xxx "3")(setq temp 3 scr_mnu 1))
;; ((= xxx "4")(setq temp 4 scr_mnu 1))
;; ((= xxx "5")(setq temp 5 scr_mnu 1))
((= xxx "Scientific")(setq temp 1 scr_mnu nil))
((= xxx "Decimal")(setq temp 2 scr_mnu nil))
((= xxx "Engineering")(setq temp 3 scr_mnu nil))
((= xxx "Architectural")(setq temp 4 scr_mnu nil))
((= xxx "Metric")(setq temp 5 scr_mnu nil))
(t (princ))
)
(setq mv_olu (getvar "lunits")) ; Store current linear units setting
(if (= temp 5) ; Set linear units to new value
(setvar "lunits" 2) ; If metric
(setvar "lunits" temp) ; otherwise
)
;; (if scr_mnu
;; (progn
;; (menucmd (strcat "S=U" (itoa temp)))
;; (initget 5) ; 0 ok, but no null or negative valu
es
;; (setq mv_sc (getreal "\nSelect the scale from the screen menu: "))
;; (cond
;; ((= mv_sc 0)
;; (progn
;; (initget 7)
;; (setq mv_sc (getreal "\nEnter the scale: "))
;; (setq mv_sc (float mv_sc))
;; )
;; )
;; )
;; (cond
;; ((= temp 5)
;; (menucmd "S=METRIC")
;; )
;; (T
;; (menucmd "S=ENGLISH")
;; )
;; )
;; (initget 5) ; 0 ok, but no null or negative valu
es
;; (setq xl (getdist "\nSelect the Paper size from the screen menu: "))
;; (initget 5) ; 0 ok, but no null or negative valu
es
;; (setq yl (getdist))
;; (cond
;; ((= xl 0)
;; (progn
;; (initget 7) ; No null, negative or zero values
;; (setq xl (getdist "\nEnter the Horizontal Dimension of the paper: "
))
;; (initget 7) ; No null, negative or zero values
;; (setq yl (getdist "\nEnter the Vertical Dimension of the paper: "))
;; )
;; )
;; )
;;
;; )
;; (progn
(textscr)
(cond
((= temp 1)
(princ (strcat
"\nScientific Scales\n=================\n"
"\n (4.0) 4 TIMES\n (2.0) 2 TIMES\n (1.0) FULL"
"\n (0.5) HALF\n (0.25) QUARTER\n")
)
)
((= temp 2)
(princ (strcat
"\nDecimal Scales\n=================\n"
"\n (4.0) 4 TIMES\n (2.0) 2 TIMES\n (1.0) FULL"
"\n (0.5) HALF\n (0.25) QUARTER\n")
)
)
((= temp 3)
(princ (strcat
"\nEngineering Scales\n===================\n"
"\n (120) 1\"=10'\n (240) 1\"=20'\n"
"\n (360) 1\"=30'\n (480) 1\"=40'\n"
"\n (600) 1\"=50'\n (720) 1\"=60'\n"
"\n (960) 1\"=80'\n (1200) 1\"=100'\n" )
)
)
((= temp 4)
(princ (strcat
"\nArchitectural Scales\n=====================\n"
"\n (480) 1/40\"=1'\n (240) 1/20\"=1'\n (192) 1/16\"=1'"
"\n (96) 1/8\"=1'\n (48) 1/4\"=1'\n"
"\n (24) 1/2\"=1'\n (16) 3/4\"=1'\n (12) 1\"=1'\n (4) 3\"=1'"
"\n (2) 6\"=1'\n (1) FULL\n")
)
)
((= temp 5)
(princ (strcat
"\nMetric Scales\n=================\n"
"\n (5000) 1:5000\n (2000) 1:2000\n (1000) 1:1000"
"\n (500) 1:500\n (200) 1:200\n"
"\n (100) 1:100\n (75) 1:75\n (50) 1:50"
"\n (20) 1:20\n (10) 1:10\n (5) 1:5\n (1) FULL\n")
)
)
)
(initget 5) ; 0 ok, but no null or negative values
(setq mv_sc (getreal "\nEnter the scale factor: "))
(setq mv_sc (float mv_sc))
(initget 7) ; No null, negative or zero values
(setq xl (getdist "\nEnter the paper width: "))
(initget 7) ; No null, negative or zero values
(setq yl (getdist "\nEnter the paper height: "))
;; )
;; )
(setq xl (* mv_sc xl)
yl (* mv_sc yl)
)
(command
"_.LIMITS" "0,0" (list xl yl)
"_.PLINE" "0,0" (list 0 yl) (list xl yl) (list xl 0) "0,0" "_C"
"_.ZOOM" "_a"
)
;; (menucmd "S=")
;; (menucmd "S=")
;; (menucmd "S=")
)
;;;
;;; C: function definition.
;;;
(defun c:mvs () (mv_sup))
(defun c:mvsetup () (mv_sup))
;;;
;;; The rest of this file in source form is the default file. When creating
;;; a default file, each line following the line which contains "Start DDF"
;;; is read and written to the default file minus its first four characters.
;;;
;;; This file contains definitions for ANSI A through E size title block
;;; sheets and several viewport setup options. If this file is ever
;;; Kelvinated or protected, then this section should be stripped out and
;;; shipped separately. Some code changes would also be required.
;;;
;;; Start DDF
;;; ;;; Do NOT erase or change the first three lines
;;; ;;; Version 2.0 -- Copyright 1990,1992,1994,1996-1998 by Autodesk, Inc.
;;; ;;; MView Setup Defaults
;;; ;;; This file contains sets of defaults for setting up multiple viewport
;;; ;;; configurations in Paperspace in Release 13 of AutoCAD. It is intended
;;; ;;; that you modify the entries given here to create your own customized
;;; ;;; versions. The format of the file is as follows:
;;; ;;;
;;; ;;; The first part of the file is a list of the NAME's of the entries
;;; ;;; followed by an END_NAMES delimiter.
;;; ;;;
;;; ;;; Each of the names may have optional, comma delimited fields in the
;;; ;;; following order: the first optional field is the file/path name of
;;; ;;; an AutoCAD drawing which is to be inserted at the local UCS origin
;;; ;;; when the name is selected, followed by a window in paperspace units
;;; ;;; which represents the extents (in paperspace) of the usable paper
;;; ;;; area. This is the area which may be automatically filled with
;;; ;;; viewports. Last is either mm or in which specifies whether the units
;;; ;;; used to construct the title block are specified in millimeters or
;;; ;;; inches. If the area points are not specified this filed may follow
;;; ;;; the drawing name immediately.
;;; ;;;
;;; ;;; The data portion of the file for any NAME entry is of arbitrary
;;; ;;; length, and contains lines of AutoLISP code with all coordinates
;;; ;;; in Paperspace units. It is terminated with END_DATA.
;;; ;;;
;;; ;;; Lines of AutoLisp code cannot be split across multiple lines.
;;; ;;;
;;; ;;; Lines may be commented out with `;'.
;;;
;;; NAMES
;;; None
;;; ISO A4 Size(mm),iso_a4.dwg,(22.0 48.0 0.0),(198.0 278.0 0.0),mm
;;; ISO A3 Size(mm),iso_a3.dwg,(27.0 48.0 0.0),(408.0 285.0 0.0),mm
;;; ISO A2 Size(mm),iso_a2.dwg,(27.0 48.0 0.0),(582.0 408.0 0.0),mm
;;; ISO A1 Size(mm),iso_a1.dwg,(27.0 58.0 0.0),(819.0 572.0 0.0),mm
;;; ISO A0 Size(mm),iso_a0.dwg,(27.0 58.0 0.0),(1167.0 819.0 0.0),mm
;;; ANSI-V Size(in),ansi_v.dwg,(0.505 2.125 0.0),(7.995 9.5777 0.0),in
;;; ANSI-A Size(in),ansi_a.dwg,(0.375 2.255 0.0),(10.625 6.9477 0.0),in
;;; ANSI-B Size(in),ansi_b.dwg,(0.745 0.505 0.0),(10.005 10.495 0.0),in
;;; ANSI-C Size(in),ansi_c.dwg,(0.625 0.875 0.0),(15.125 16.125 0.0),in
;;; ANSI-D Size(in),ansi_d.dwg,(1.125 0.625 0.0),(25.255 21.375 0.0),in
;;; ANSI-E Size(in),ansi_e.dwg,(0.625 1.125 0.0),(35.755 32.875 0.0),in
;;; Arch/Engineering (24 x 36in),archeng.dwg,(1.0 1.0 0.0),(30.5 23.0 0.0),in
;;; Generic D size Sheet (24 x 36in),gs24x36.dwg,(1.625 1.375 0.0),(33.625 22.62
5 0.0),in
;;; END_NAMES
;;;
;;; DATA
;;;
;;; NAME - None
;;; (princ)
;;; END_ITEM
;;;
;;; An ISO - A4 size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 mm.
;;;
;;; NAME - ISO A4 Size(mm)
;;; (command "_.ZOOM" "_W" "-80,-5" "330,300")
;;; ;;;
;;; ;;; Trimming marks
;;; (command "_.LINE" "0,5" "0,0" "5,0" "")
;;; (command "_.LINE" "205,0" "210,0" "210,5" "")
;;; (command "_.LINE" "210,292" "210,297" "205,297" "")
;;; (command "_.LINE" "5,297" "0,297" "0,292" "")
;;; ;;;
;;; ;;; Drawing sheet frame
;;; (command "_.LINE" "20,10" "200,10" "200,287" "20,287" "_C")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "95,20" "200,20" "")
;;; (command "_.LINE" "20,30" "200,30" "")
;;; (command "_.LINE" "20,40" "200,40" "")
;;; (command "_.LINE" "20,46" "200,46" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "33,40" "33,46" "")
;;; (command "_.LINE" "50,30" "50,46" "")
;;; (command "_.LINE" "75,30" "75,40" "")
;;; (command "_.LINE" "95,10" "95,30" "")
;;; (command "_.LINE" "125,30" "125,40" "")
;;; (command "_.LINE" "150,30" "150,46" "")
;;; (command "_.LINE" "165,10" "165,20" "")
;;; (command "_.LINE" "180,10" "180,20" "")
;;; (command "_.LINE" "180,30" "180,40" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK2" "isocp" "0" "1.0" "0" "" "")
;;; (command "_.TEXT" "21,42" "2.5" "0" "Itemref")
;;; (command "_.TEXT" "34,42" "2.5" "0" "Quantity")
;;; (command "_.TEXT" "51,42" "2.5" "0" "Title/Name, designation, material, dime
nsion etc")
;;; (command "_.TEXT" "151,42" "2.5" "0" "Article No./Reference")
;;; (command "_.TEXT" "21,36" "2.5" "0" "Designed by")
;;; (command "_.TEXT" "51,36" "2.5" "0" "Checked by")
;;; (command "_.TEXT" "76,36" "2.5" "0" "Approved by - date")
;;; (command "_.TEXT" "126,36" "2.5" "0" "Filename")
;;; (command "_.TEXT" "152,36" "2.5" "0" "Date")
;;; (command "_.TEXT" "181,36" "2.5" "0" "Scale")
;;; (command "_.TEXT" "21,26" "2.5" "0" "Owner")
;;; (command "_.TEXT" "96,26" "2.5" "0" "Title/Name")
;;; (command "_.TEXT" "96,16" "2.5" "0" "Drawing number")
;;; (command "_.TEXT" "166,16" "2.5" "0" "Edition")
;;; (command "_.TEXT" "181,16" "2.5" "0" "Sheet")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontal
;;; (command "_.LINE" "20,280" "200,280" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "30,280" "30,287" "")
;;; (command "_.LINE" "151,280" "151,287" "")
;;; (command "_.LINE" "171,280" "171,287" "")
;;; (command "_.LINE" "186,280" "186,287" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.TEXT" "21,282.5" "2.5" "0" "RevNo")
;;; (command "_.TEXT" "31,282.5" "2.5" "0" "Revision note")
;;; (command "_.TEXT" "152,282.5" "2.5" "0" "Date")
;;; (command "_.TEXT" "172,282.5" "2.5" "0" "Signature")
;;; (command "_.TEXT" "187,282.5" "2.5" "0" "Checked")
;;; END_ITEM
;;;
;;; An ISO - A3 size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 mm.
;;;
;;; NAME - ISO A3 Size(mm)
;;; (command "_.ZOOM" "_W" "-5,-5" "425,302")
;;; ;;;
;;; ;;; Trimming marks
;;; (command "_.LINE" "0,5" "0,0" "5,0" "")
;;; (command "_.LINE" "415,0" "420,0" "420,5" "")
;;; (command "_.LINE" "420,292" "420,297" "415,297" "")
;;; (command "_.LINE" "5,297" "0,297" "0,292" "")
;;; ;;;
;;; ;;; Drawing sheet frame
;;; (command "_.LINE" "25,10" "410,10" "410,287" "25,287" "_C")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "310,20" "410,20" "")
;;; (command "_.LINE" "240,30" "410,30" "")
;;; (command "_.LINE" "240,40" "410,40" "")
;;; (command "_.LINE" "240,46" "410,46" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "240,10" "240,46" "")
;;; (command "_.LINE" "250,40" "250,46" "")
;;; (command "_.LINE" "265,30" "265,46" "")
;;; (command "_.LINE" "290,30" "290,40" "")
;;; (command "_.LINE" "310,10" "310,30" "")
;;; (command "_.LINE" "340,30" "340,40" "")
;;; (command "_.LINE" "365,30" "365,46" "")
;;; (command "_.LINE" "380,10" "380,20" "")
;;; (command "_.LINE" "395,10" "395,20" "")
;;; (command "_.LINE" "395,30" "395,40" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK2" "isocp" "0" "1.0" "0" "" "")
;;; (command "_.TEXT" "240.7,42" "2.5" "0" "Itemref")
;;; (command "_.TEXT" "251,42" "2.5" "0" "Quantity")
;;; (command "_.TEXT" "266,42" "2.5" "0" "Title/Name, designation, material, dim
ension etc")
;;; (command "_.TEXT" "366,42" "2.5" "0" "Article No./Reference")
;;; (command "_.TEXT" "241,36" "2.5" "0" "Designed by")
;;; (command "_.TEXT" "266,36" "2.5" "0" "Checked by")
;;; (command "_.TEXT" "291,36" "2.5" "0" "Approved by - date")
;;; (command "_.TEXT" "341,36" "2.5" "0" "Filename")
;;; (command "_.TEXT" "366,36" "2.5" "0" "Date")
;;; (command "_.TEXT" "396,36" "2.5" "0" "Scale")
;;; (command "_.TEXT" "241,26" "2.5" "0" "Owner")
;;; (command "_.TEXT" "311,26" "2.5" "0" "Title/Name")
;;; (command "_.TEXT" "311,16" "2.5" "0" "Drawing number")
;;; (command "_.TEXT" "381,16" "2.5" "0" "Edition")
;;; (command "_.TEXT" "396,16" "2.5" "0" "Sheet")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontal
;;; (command "_.LINE" "25,17" "205,17" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "35,10" "35,17" "")
;;; (command "_.LINE" "156,10" "156,17" "")
;;; (command "_.LINE" "176,10" "176,17" "")
;;; (command "_.LINE" "191,10" "191,17" "")
;;; (command "_.LINE" "205,10" "205,17" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.TEXT" "26,12.5" "2.5" "0" "RevNo")
;;; (command "_.TEXT" "36,12.5" "2.5" "0" "Revision note")
;;; (command "_.TEXT" "157,12.5" "2.5" "0" "Date")
;;; (command "_.TEXT" "177,12.5" "2.5" "0" "Signature")
;;; (command "_.TEXT" "192,12.5" "2.5" "0" "Checked")
;;; END_ITEM
;;;
;;; An ISO - A2 size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 mm.
;;;
;;; NAME - ISO A2 Size(mm)
;;; (command "_.ZOOM" "_W" "-5,-5" "600,425")
;;; ;;;
;;; ;;; Trimming marks
;;; (command "_.LINE" "0,5" "0,0" "5,0" "")
;;; (command "_.LINE" "589,0" "594,0" "594,5" "")
;;; (command "_.LINE" "594,415" "594,420" "589,420" "")
;;; (command "_.LINE" "5,420" "0,420" "0,415" "")
;;; ;;;
;;; ;;; Drawing sheet frame
;;; (command "_.LINE" "25,10" "584,10" "584,410" "25,410" "_C")
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "484,20" "584,20" "")
;;; (command "_.LINE" "414,30" "584,30" "")
;;; (command "_.LINE" "414,40" "584,40" "")
;;; (command "_.LINE" "414,46" "584,46" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "414,10" "414,46" "")
;;; (command "_.LINE" "424,40" "424,46" "")
;;; (command "_.LINE" "439,30" "439,46" "")
;;; (command "_.LINE" "464,30" "464,40" "")
;;; (command "_.LINE" "484,10" "484,30" "")
;;; (command "_.LINE" "514,30" "514,40" "")
;;; (command "_.LINE" "539,30" "539,46" "")
;;; (command "_.LINE" "554,10" "554,20" "")
;;; (command "_.LINE" "569,10" "569,20" "")
;;; (command "_.LINE" "569,30" "569,40" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK2" "isocp" "0" "1.0" "0" "" "")
;;; (command "_.TEXT" "414.7,42" "2.5" "0" "Itemref")
;;; (command "_.TEXT" "425,42" "2.5" "0" "Quantity")
;;; (command "_.TEXT" "440,42" "2.5" "0" "Title/Name, designation, material, dim
ension etc")
;;; (command "_.TEXT" "540,42" "2.5" "0" "Article No./Reference")
;;; (command "_.TEXT" "415,36" "2.5" "0" "Designed by")
;;; (command "_.TEXT" "440,36" "2.5" "0" "Checked by")
;;; (command "_.TEXT" "465,36" "2.5" "0" "Approved by - date")
;;; (command "_.TEXT" "515,36" "2.5" "0" "Filename")
;;; (command "_.TEXT" "540,36" "2.5" "0" "Date")
;;; (command "_.TEXT" "570,36" "2.5" "0" "Scale")
;;; (command "_.TEXT" "415,26" "2.5" "0" "Owner")
;;; (command "_.TEXT" "485,26" "2.5" "0" "Title/Name")
;;; (command "_.TEXT" "485,16" "2.5" "0" "Drawing number")
;;; (command "_.TEXT" "555,16" "2.5" "0" "Edition")
;;; (command "_.TEXT" "570,16" "2.5" "0" "Sheet")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontal
;;; (command "_.LINE" "25,17" "205,17" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "35,10" "35,17" "")
;;; (command "_.LINE" "156,10" "156,17" "")
;;; (command "_.LINE" "176,10" "176,17" "")
;;; (command "_.LINE" "191,10" "191,17" "")
;;; (command "_.LINE" "205,10" "205,17" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.TEXT" "26,12.5" "2.5" "0" "RevNo")
;;; (command "_.TEXT" "36,12.5" "2.5" "0" "Revision note")
;;; (command "_.TEXT" "157,12.5" "2.5" "0" "Date")
;;; (command "_.TEXT" "177,12.5" "2.5" "0" "Signature")
;;; (command "_.TEXT" "192,12.5" "2.5" "0" "Checked")
;;; END_ITEM
;;;
;;; An ISO - A1 size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 mm.
;;;
;;; NAME - ISO A1 Size(mm)
;;; (command "_.ZOOM" "_W" "-5,-5" "846,599")
;;; ;;;
;;; ;;; Trimming marks
;;; (command "_.LINE" "0,5" "0,0" "5,0" "")
;;; (command "_.LINE" "836,0" "841,0" "841,5" "")
;;; (command "_.LINE" "841,589" "841,594" "836,594" "")
;;; (command "_.LINE" "5,594" "0,594" "0,589" "")
;;; ;;;
;;; ;;; Drawing sheet frame
;;; (command "_.LINE" "25,20" "821,20" "821,574" "25,574" "_C")
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "721,30" "821,30" "")
;;; (command "_.LINE" "651,40" "821,40" "")
;;; (command "_.LINE" "651,50" "821,50" "")
;;; (command "_.LINE" "651,56" "821,56" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "651,20" "651,56" "")
;;; (command "_.LINE" "661,50" "661,56" "")
;;; (command "_.LINE" "676,40" "676,56" "")
;;; (command "_.LINE" "701,40" "701,50" "")
;;; (command "_.LINE" "721,20" "721,40" "")
;;; (command "_.LINE" "751,40" "751,50" "")
;;; (command "_.LINE" "776,40" "776,56" "")
;;; (command "_.LINE" "791,20" "791,30" "")
;;; (command "_.LINE" "806,20" "806,30" "")
;;; (command "_.LINE" "806,40" "806,50" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK2" "isocp" "0" "1.0" "0" "" "")
;;; (command "_.TEXT" "651.7,52" "2.5" "0" "Itemref")
;;; (command "_.TEXT" "662,52" "2.5" "0" "Quantity")
;;; (command "_.TEXT" "677,52" "2.5" "0" "Title/Name, designation, material, dim
ension etc")
;;; (command "_.TEXT" "777,52" "2.5" "0" "Article No./Reference")
;;; (command "_.TEXT" "652,46" "2.5" "0" "Designed by")
;;; (command "_.TEXT" "677,46" "2.5" "0" "Checked by")
;;; (command "_.TEXT" "702,46" "2.5" "0" "Approved by - date")
;;; (command "_.TEXT" "752,46" "2.5" "0" "Filename")
;;; (command "_.TEXT" "777,46" "2.5" "0" "Date")
;;; (command "_.TEXT" "807,46" "2.5" "0" "Scale")
;;; (command "_.TEXT" "652,36" "2.5" "0" "Owner")
;;; (command "_.TEXT" "722,36" "2.5" "0" "Title/Name")
;;; (command "_.TEXT" "722,26" "2.5" "0" "Drawing number")
;;; (command "_.TEXT" "792,26" "2.5" "0" "Edition")
;;; (command "_.TEXT" "807,26" "2.5" "0" "Sheet")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontal
;;; (command "_.LINE" "25,27" "205,27" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "35,20" "35,27" "")
;;; (command "_.LINE" "156,20" "156,27" "")
;;; (command "_.LINE" "176,20" "176,27" "")
;;; (command "_.LINE" "191,20" "191,27" "")
;;; (command "_.LINE" "205,20" "205,27" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.TEXT" "26,22.5" "2.5" "0" "RevNo")
;;; (command "_.TEXT" "36,22.5" "2.5" "0" "Revision note")
;;; (command "_.TEXT" "157,22.5" "2.5" "0" "Date")
;;; (command "_.TEXT" "177,22.5" "2.5" "0" "Signature")
;;; (command "_.TEXT" "192,22.5" "2.5" "0" "Checked")
;;; END_ITEM
;;;
;;; An ISO - A0 size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 mm.
;;;
;;; NAME - ISO A0 Size(mm)
;;; (command "_.ZOOM" "_W" "-5,-5" "1194,846")
;;; ;;;
;;; ;;; Trimming marks
;;; (command "_.LINE" "0,5" "0,0" "5,0" "")
;;; (command "_.LINE" "1184,0" "1189,0" "1189,5" "")
;;; (command "_.LINE" "1189,836" "1189,841" "1184,841" "")
;;; (command "_.LINE" "5,841" "0,841" "0,836" "")
;;; ;;;
;;; ;;; Drawing sheet frame
;;; (command "_.LINE" "25,20" "1169,20" "1169,821" "25,821" "_C")
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "1069,30" "1169,30" "")
;;; (command "_.LINE" "999,40" "1169,40" "")
;;; (command "_.LINE" "999,50" "1169,50" "")
;;; (command "_.LINE" "999,56" "1169,56" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "999,20" "999,56" "")
;;; (command "_.LINE" "1009,50" "1009,56" "")
;;; (command "_.LINE" "1024,40" "1024,56" "")
;;; (command "_.LINE" "1049,40" "1049,50" "")
;;; (command "_.LINE" "1069,20" "1069,40" "")
;;; (command "_.LINE" "1099,40" "1099,50" "")
;;; (command "_.LINE" "1124,40" "1124,56" "")
;;; (command "_.LINE" "1139,20" "1139,30" "")
;;; (command "_.LINE" "1154,20" "1154,30" "")
;;; (command "_.LINE" "1154,40" "1154,50" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK2" "isocp" "0" "1.0" "0" "" "")
;;; (command "_.TEXT" "999.7,52" "2.5" "0" "Itemref")
;;; (command "_.TEXT" "1010,52" "2.5" "0" "Quantity")
;;; (command "_.TEXT" "1025,52" "2.5" "0" "Title/Name, designation, material, di
mension etc")
;;; (command "_.TEXT" "1125,52" "2.5" "0" "Article No./Reference")
;;; (command "_.TEXT" "1000,46" "2.5" "0" "Designed by")
;;; (command "_.TEXT" "1025,46" "2.5" "0" "Checked by")
;;; (command "_.TEXT" "1050,46" "2.5" "0" "Approved by - date")
;;; (command "_.TEXT" "1100,46" "2.5" "0" "Filename")
;;; (command "_.TEXT" "1125,46" "2.5" "0" "Date")
;;; (command "_.TEXT" "1155,46" "2.5" "0" "Scale")
;;; (command "_.TEXT" "1000,36" "2.5" "0" "Owner")
;;; (command "_.TEXT" "1070,36" "2.5" "0" "Title/Name")
;;; (command "_.TEXT" "1070,26" "2.5" "0" "Drawing number")
;;; (command "_.TEXT" "1140,26" "2.5" "0" "Edition")
;;; (command "_.TEXT" "1155,26" "2.5" "0" "Sheet")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontal
;;; (command "_.LINE" "25,27" "205,27" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "35,20" "35,27" "")
;;; (command "_.LINE" "156,20" "156,27" "")
;;; (command "_.LINE" "176,20" "176,27" "")
;;; (command "_.LINE" "191,20" "191,27" "")
;;; (command "_.LINE" "205,20" "205,27" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.TEXT" "26,22.5" "2.5" "0" "RevNo")
;;; (command "_.TEXT" "36,22.5" "2.5" "0" "Revision note")
;;; (command "_.TEXT" "157,22.5" "2.5" "0" "Date")
;;; (command "_.TEXT" "177,22.5" "2.5" "0" "Signature")
;;; (command "_.TEXT" "192,22.5" "2.5" "0" "Checked")
;;; END_ITEM
;;;
;;;
;;; An ANSI - A size Vertical sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-V Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "9.0,11.5")
;;; (command "_.LINE" "0,0" "8.5,0" "8.5,11" "0,11" "_C")
;;; (command "_.LINE" ".38,.25" "8.12,.25" "8.12,10.75" ".38,10.75" "_C")
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "4.25,0" "_W" "0.02" "" "4.25,.1" "")
;;; (command "_.SOLID" "4.1,.1" "4.4,.1" "4.25,.25" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "8.37,5.5" "_W" "0.02" "" "8.27,5.5" "")
;;; (command "_.SOLID" "8.27,5.35" "8.27,5.65" "8.12,5.5" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "4.25,11" "_W" "0.02" "" "4.25,10.9" "")
;;; (command "_.SOLID" "4.1,10.9" "4.4,10.9" "4.25,10.75" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" ".13,5.5" "_W" "0.02" "" ".23,5.5" "")
;;; (command "_.SOLID" ".23,5.35" ".23,5.65" ".38,5.5" "" "")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "1.87,0.25" "1.87,2" "8.12,2" "")
;;; (command "_.LINE" "1.87,.565" "3.87,.565" "")
;;; (command "_.LINE" "1.87,.88" "8.12,.88" "")
;;; (command "_.LINE" "3.87,.5" "8.12,.5" "")
;;; (command "_.LINE" "3.87,1.5" "8.12,1.5" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "3.87,0.25" "3.87,2" "")
;;; (command "_.LINE" "4.87,.25" "4.87,.5" "")
;;; (command "_.LINE" "6.37,.25" "6.37,.5" "")
;;; (command "_.LINE" "4.25,.5" "4.25,.88" "")
;;; (command "_.LINE" "5.37,.5" "5.37,.88" "")
;;; (command "_.LINE" "7.74,.5" "7.74,.88" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "3.9223,.3425" "0.065" "0" "Scale")
;;; (command "_.TEXT" "6.4228,.3425" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "3.9579,.7659" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "4.3189,.7659" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "5.4410,.7659" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "7.8205,.7659" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "2.62,10.5" "8.12,10.5" "")
;;; (command "_.LINE" "2.62,10.25" "8.12,10.25" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "2.62,10.75" "2.62,9.7027" "")
;;; (command "_.LINE" "3.12,10.25" "3.12,10.5" "")
;;; (command "_.LINE" "3.50,10.25" "3.50,10.5" "")
;;; (command "_.LINE" "6.24,10.25" "6.24,10.5" "")
;;; (command "_.LINE" "7.12,10.25" "7.12,10.5" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "5.3302,10.5825" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "2.7287,10.3403" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "3.2001,10.3403" "0.065" "0" "REV")
;;; (command "_.TEXT" "4.5020,10.3403" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "6.5677,10.3403" "0.065" "0" "Date")
;;; (command "_.TEXT" "7.3614,10.3403" "0.065" "0" "APPROVED")
;;; END_ITEM
;;;
;;; An ANSI - A size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-A Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "11.5,9.0")
;;; (command "_.LINE" "0,0" "11,0" "11,8.5" "0,8.5" "_C")
;;; (command "_.LINE" ".25,.38" "10.75,.38" "10.75,8.12" ".25,8.12" "_C")
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "5.5,.13" "_W" "0.02" "" "5.5,.23" "")
;;; (command "_.SOLID" "5.35,.23" "5.65,.23" "5.5,.38" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "11,4.25" "_W" "0.02" "" "10.9,4.25" "")
;;; (command "_.SOLID" "10.9,4.1" "10.9,4.4" "10.75,4.25" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "5.5,8.37" "_W" "0.02" "" "5.5,8.27" "")
;;; (command "_.SOLID" "5.35,8.27" "5.65,8.27" "5.5,8.12" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" "0,4.25" "_W" "0.02" "" ".1,4.25" "")
;;; (command "_.SOLID" ".1,4.1" ".1,4.4" ".25,4.25" "" "")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "4.5,.38" "4.5,2.13" "10.75,2.13" "")
;;; (command "_.LINE" "4.5,.695" "6.5,.695" "")
;;; (command "_.LINE" "4.5,1.01" "10.75,1.01" "")
;;; (command "_.LINE" "6.5,.63" "10.75,.63" "")
;;; (command "_.LINE" "6.5,1.63" "10.75,1.63" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "6.5,0.38" "6.5,2.13" "")
;;; (command "_.LINE" "7.5,.38" "7.5,.63" "")
;;; (command "_.LINE" "9.0,.38" "9.0,.63" "")
;;; (command "_.LINE" "6.88,.63" "6.88,1.01" "")
;;; (command "_.LINE" "8,.63" "8,1.01" "")
;;; (command "_.LINE" "10.37,.63" "10.37,1.01" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "6.5523,0.4725" "0.065" "0" "Scale")
;;; (command "_.TEXT" "9.0528,0.4725" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "6.5879,0.8959" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "6.9489,0.8959" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "8.0710,0.8959" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "10.4505,0.8959" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "5.25,7.87" "10.75,7.87" "")
;;; (command "_.LINE" "5.25,7.62" "10.75,7.62" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "5.25,8.12" "5.25,7.0727" "")
;;; (command "_.LINE" "5.75,7.62" "5.75,7.87" "")
;;; (command "_.LINE" "6.13,7.62" "6.13,7.87" "")
;;; (command "_.LINE" "8.87,7.62" "8.87,7.87" "")
;;; (command "_.LINE" "9.75,7.62" "9.75,7.87" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "7.9602,7.9525" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "5.3587,7.7103" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "5.8301,7.7103" "0.065" "0" "REV")
;;; (command "_.TEXT" "7.1320,7.7103" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "9.1977,7.7103" "0.065" "0" "Date")
;;; (command "_.TEXT" "9.9914,7.7103" "0.065" "0" "APPROVED")
;;; END_ITEM
;;;
;;; An ANSI - B size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-B Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "17.5,11.5")
;;; (command "_.LINE" "0,0" "17,0" "17,11" "0,11" "_C")
;;; (command "_.LINE" ".62,.38" "16.38,.38" "16.38,10.62" ".62,10.62" "_C")
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "8.5,.13" "_W" "0.02" "" "8.5,.23" "")
;;; (command "_.SOLID" "8.35,.23" "8.65,.23" "8.5,.38" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "16.62,5.5" "_W" "0.02" "" "16.52,5.5" "")
;;; (command "_.SOLID" "16.52,5.35" "16.52,5.65" "16.38,5.5" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "8.5,10.87" "_W" "0.02" "" "8.5,10.77" "")
;;; (command "_.SOLID" "8.35,10.77" "8.65,10.77" "8.5,10.62" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" ".38,5.5" "_W" "0.02" "" ".48,5.5" "")
;;; (command "_.SOLID" ".48,5.35" ".48,5.65" ".62,5.5" "" "")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "10.13,.38" "10.13,2.13" "16.38,2.13" "")
;;; (command "_.LINE" "10.13,.695" "12.13,.695" "")
;;; (command "_.LINE" "10.13,1.01" "16.38,1.01" "")
;;; (command "_.LINE" "12.13,.63" "16.38,.63" "")
;;; (command "_.LINE" "12.13,1.63" "16.38,1.63" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "12.13,0.38" "12.13,2.13" "")
;;; (command "_.LINE" "13.13,.38" "13.13,.63" "")
;;; (command "_.LINE" "14.63,.38" "14.63,.63" "")
;;; (command "_.LINE" "12.51,.63" "12.51,1.01" "")
;;; (command "_.LINE" "13.63,.63" "13.63,1.01" "")
;;; (command "_.LINE" "16,.63" "16,1.01" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "12.1823,0.4725" "0.065" "0" "Scale")
;;; (command "_.TEXT" "14.6828,0.4725" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "12.2179,0.8959" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "12.5789,0.8959" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "13.7010,0.8959" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "16.0805,0.8959" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "10.88,10.37" "16.38,10.37" "")
;;; (command "_.LINE" "10.88,10.12" "16.38,10.12" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "10.88,10.62" "10.88,9.5727" "")
;;; (command "_.LINE" "11.38,10.12" "11.38,10.37" "")
;;; (command "_.LINE" "11.76,10.12" "11.76,10.37" "")
;;; (command "_.LINE" "14.5,10.12" "14.5,10.37" "")
;;; (command "_.LINE" "15.38,10.12" "15.38,10.37" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "13.5902,10.4525" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "10.9887,10.2103" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "11.4601,10.2103" "0.065" "0" "REV")
;;; (command "_.TEXT" "12.7620,10.2103" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "14.8277,10.2103" "0.065" "0" "Date")
;;; (command "_.TEXT" "15.6214,10.2103" "0.065" "0" "APPROVED")
;;; END_ITEM
;;;
;;; An ANSI - C size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-C Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "22.5,17.5")
;;; (command "_.LINE" "0,0" "22,0" "22,17" "0,17" "_C")
;;; (command "_.LINE" ".5,.75" "21.5,.75" "21.5,16.25" ".5,16.25" "_C")
;;; (command "_.LINE" "5.5,0.375" "5.5,0.75" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "2" "2" "15.875" "11")
;;; (command "_.LINE" "0.125,4.25" "0.5,4.25" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "2" "2" "8.5" "21.375")
;;; ;;;
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "11,.5" "_W" "0.02" "" "11,.6" "")
;;; (command "_.SOLID" "10.85,.6" "11.15,.6" "11,.75" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "21.75,8.5" "_W" "0.02" "" "21.65,8.5" "")
;;; (command "_.SOLID" "21.65,8.35" "21.65,8.65" "21.5,8.5" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "11,16.5" "_W" "0.02" "" "11,16.4" "")
;;; (command "_.SOLID" "10.85,16.4" "11.15,16.4" "11,16.25" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" ".25,8.5" "_W" "0.02" "" ".35,8.5" "")
;;; (command "_.SOLID" ".35,8.35" ".35,8.65" ".5,8.5" "" "")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "15.25,0.75" "15.25,2.5" "21.50,2.5" "")
;;; (command "_.LINE" "15.25,1.065" "17.25,1.065" "")
;;; (command "_.LINE" "15.25,1.38" "21.5,1.38" "")
;;; (command "_.LINE" "17.25,1" "21.5,1" "")
;;; (command "_.LINE" "17.25,2" "21.5,2" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "17.25,0.75" "17.25,2.5" "")
;;; (command "_.LINE" "18.25,0.75" "18.25,1" "")
;;; (command "_.LINE" "19.75,0.75" "19.75,1" "")
;;; (command "_.LINE" "17.63,1" "17.63,1.38" "")
;;; (command "_.LINE" "18.75,1" "18.75,1.38" "")
;;; (command "_.LINE" "21.12,1" "21.12,1.38" "")
;;; ;;;
;;; ;;; Text
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "17.3023,0.8425" "0.065" "0" "Scale")
;;; (command "_.TEXT" "19.8028,0.8425" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "17.3379,1.2659" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "17.6989,1.2659" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "18.8210,1.2659" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "21.2005,1.2659" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "16,16" "21.5,16" "")
;;; (command "_.LINE" "16,15.75" "21.5,15.75" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "16,16.25" "16,15.2027" "")
;;; (command "_.LINE" "16.5,15.75" "16.5,16" "")
;;; (command "_.LINE" "16.88,15.75" "16.88,16" "")
;;; (command "_.LINE" "19.62,15.75" "19.62,16" "")
;;; (command "_.LINE" "20.5,15.75" "20.5,16" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "18.7102,16.0825" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "16.1087,15.8403" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "16.5801,15.8403" "0.065" "0" "REV")
;;; (command "_.TEXT" "17.8820,15.8403" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "19.9477,15.8403" "0.065" "0" "Date")
;;; (command "_.TEXT" "20.7414,15.8403" "0.065" "0" "APPROVED")
;;; ;;;
;;; (command "_.TEXT" "_MC" "0.25,2.125" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "0.25,6.375" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "0.25,10.625" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "0.25,14.875" "0.25" "0" "D")
;;; (command "_.TEXT" "_MC" "21.75,2.125" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "21.75,6.375" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "21.75,10.625" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "21.75,14.875" "0.25" "0" "D")
;;; ;;;
;;; (command "_.TEXT" "_MC" "19.25,0.5" "0.25" "0" "1")
;;; (command "_.TEXT" "_MC" "13.75,0.5" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "8.25,0.5" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "2.75,0.5" "0.25" "0" "4")
;;; ;;;
;;; (command "_.TEXT" "_MC" "19.25,16.5" "0.25" "0" "1")
;;; (command "_.TEXT" "_MC" "13.75,16.5" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "8.25,16.5" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "2.75,16.5" "0.25" "0" "4")
;;; END_ITEM
;;;
;;; An ANSI - D size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-D Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "34.5,22.5")
;;; (command "_.LINE" "0,0" "34,0" "34,22" "0,22" "_C")
;;; (command "_.LINE" "1,.5" "33,.5" "33,21.5" "1,21.5" "_C")
;;; (command "_.LINE" "4.25,.125" "4.25,.5" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "2" "8" "21.375" "4.25")
;;; (command "_.LINE" ".5,5.5" "1,5.5" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "3" "2" "5.5" "32.5")
;;; ;;;
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "17,.1" "_W" "0.02" "" "17,.3" "")
;;; (command "_.SOLID" "16.8,.3" "17.2,.3" "17,.5" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "33.4,11" "_W" "0.02" "" "33.4,11" "")
;;; (command "_.SOLID" "33.2,10.8" "33.2,11.2" "33,11" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "17,21.9" "_W" "0.02" "" "17,21.7" "")
;;; (command "_.SOLID" "16.8,21.7" "17.2,21.7" "17,21.5" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" ".6,11" "_W" "0.02" "" ".8,11" "")
;;; (command "_.SOLID" ".8,10.8" ".8,11.2" "1,11" "" "")
;;; ;;;
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; (command "_.LINE" "25.38,.5" "25.38,3" "33,3" "")
;;; (command "_.LINE" "27.88,.5" "27.88,3" "")
;;; (command "_.LINE" "27.88,.75" "33,.75" "")
;;; (command "_.LINE" "25.38,1.25" "33,1.25" "")
;;; (command "_.LINE" "27.88,2.37" "33,2.37" "")
;;; (command "_.LINE" "25.38,.875" "27.88,.875" "")
;;; ;;;
;;; (command "_.LINE" "28.87,.5" "28.87,.75" "")
;;; (command "_.LINE" "31.25,.5" "31.25,.75" "")
;;; (command "_.LINE" "28.26,.75" "28.26,1.25" "")
;;; (command "_.LINE" "29.51,.75" "29.51,1.25" "")
;;; (command "_.LINE" "32.5,.75" "32.5,1.25" "")
;;; ;;;
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "27.9323,0.5925" "0.065" "0" "Scale")
;;; (command "_.TEXT" "31.3028,0.5925" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "27.9679,1.1359" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "28.3289,1.1359" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "29.5810,1.1359" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "32.6405,1.1359" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "26,21.25" "33,21.25" "")
;;; (command "_.LINE" "26,21" "33,21" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "26,20.4527" "26,21.5" "")
;;; (command "_.LINE" "26.5,21" "26.5,21.25" "")
;;; (command "_.LINE" "26.88,21" "26.88,21.25" "")
;;; (command "_.LINE" "31.12,21" "31.12,21.25" "")
;;; (command "_.LINE" "32,21" "32,21.25" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "29.5746,21.3325" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "26.1087,21.0903" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "26.5801,21.0903" "0.065" "0" "REV")
;;; (command "_.TEXT" "28.7464,21.0903" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "31.4477,21.0903" "0.065" "0" "Date")
;;; (command "_.TEXT" "32.2477,21.0903" "0.065" "0" "APPROVED")
;;; ;;;
;;; (command "_.TEXT" "_MC" "0.5,2.75" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "0.5,8.25" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "0.5,13.75" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "0.5,19.25" "0.25" "0" "D")
;;; (command "_.TEXT" "_MC" "33.5,2.75" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "33.5,8.25" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "33.5,13.75" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "33.5,19.25" "0.25" "0" "D")
;;; ;;;
;;; (command "_.TEXT" "_MC" "2.125,0.25" "0.25" "0" "8")
;;; (command "_.TEXT" "_MC" "6.375,0.25" "0.25" "0" "7")
;;; (command "_.TEXT" "_MC" "10.625,0.25" "0.25" "0" "6")
;;; (command "_.TEXT" "_MC" "14.875,0.25" "0.25" "0" "5")
;;; (command "_.TEXT" "_MC" "19.125,0.25" "0.25" "0" "4")
;;; (command "_.TEXT" "_MC" "23.375,0.25" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "27.625,0.25" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "31.875,0.25" "0.25" "0" "1")
;;; ;;;
;;; (command "_.TEXT" "_MC" "2.125,21.75" "0.25" "0" "8")
;;; (command "_.TEXT" "_MC" "6.375,21.75" "0.25" "0" "7")
;;; (command "_.TEXT" "_MC" "10.625,21.75" "0.25" "0" "6")
;;; (command "_.TEXT" "_MC" "14.875,21.75" "0.25" "0" "5")
;;; (command "_.TEXT" "_MC" "19.125,21.75" "0.25" "0" "4")
;;; (command "_.TEXT" "_MC" "23.375,21.75" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "27.625,21.75" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "31.875,21.75" "0.25" "0" "1")
;;; END_ITEM
;;;
;;; An ANSI - E size sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - ANSI-E Size(in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "44.5,34.5")
;;; (command "_.LINE" "0,0" "44,0" "44,34" "0,34" "_C")
;;; (command "_.LINE" ".5,1" "43.5,1" "43.5,33" ".5,33" "_C")
;;; (command "_.LINE" "5.5,.5" "5.5,1" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "2" "8" "32.5" "5.5")
;;; (command "_.LINE" ".125,4.25" ".5,4.25" "")
;;; (command "_.ARRAY" (entlast) "" "_R" "7" "2" "4.25" "43.375")
;;; ;;;
;;; ;;; Bottom microfilm alignment arrow
;;; (command "_.PLINE" "22,.6" "_W" "0.02" "" "22,.8" "")
;;; (command "_.SOLID" "21.8,.8" "22.2,.8" "22,1" "" "")
;;; ;;; Right microfilm alignment arrow
;;; (command "_.PLINE" "43.9,17" "_W" "0.02" "" "43.7,17" "")
;;; (command "_.SOLID" "43.7,16.8" "43.7,17.2" "43.5,17" "" "")
;;; ;;; Top microfilm alignment arrow
;;; (command "_.PLINE" "22,33.4" "_W" "0.02" "" "22,33.2" "")
;;; (command "_.SOLID" "21.8,33.2" "22.2,33.2" "22,33" "" "")
;;; ;;; Left microfilm alignment arrow
;;; (command "_.PLINE" ".1,17" "_W" "0.02" "" ".3,17" "")
;;; (command "_.SOLID" ".3,16.8" ".3,17.2" ".5,17" "" "")
;;; ;;;
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; (command "_.LINE" "35.88,1" "35.88,3.5" "43.5,3.5" "")
;;; (command "_.LINE" "35.88,1.375" "38.38,1.375" "")
;;; (command "_.LINE" "35.88,1.75" "43.5,1.75" "")
;;; (command "_.LINE" "38.38,1.25" "43.5,1.25" "")
;;; (command "_.LINE" "38.38,2.87" "43.5,2.87" "")
;;; ;;;
;;; (command "_.LINE" "38.38,1" "38.38,3.5" "")
;;; (command "_.LINE" "39.37,1" "39.37,1.25" "")
;;; (command "_.LINE" "41.75,1" "41.75,1.25" "")
;;; (command "_.LINE" "38.76,1.25" "38.76,1.75" "")
;;; (command "_.LINE" "40.01,1.25" "40.01,1.75" "")
;;; (command "_.LINE" "43,1.25" "43,1.75" "")
;;; ;;;
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "38.4323,1.0925" "0.065" "0" "Scale")
;;; (command "_.TEXT" "41.8028,1.0925" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "38.4679,1.6359" "0.065" "0" "SIZE")
;;; (command "_.TEXT" "38.8289,1.6359" "0.065" "0" "FSCM NO.")
;;; (command "_.TEXT" "40.0810,1.6359" "0.065" "0" "DWG NO.")
;;; (command "_.TEXT" "43.1405,1.6359" "0.065" "0" "REV")
;;; ;;;
;;; ;;; Revision bar
;;; ;;;
;;; ;;; Horizontals
;;; (command "_.LINE" "36.5,32.75" "43.5,32.75" "")
;;; (command "_.LINE" "36.5,32.5" "43.5,32.5" "")
;;; ;;;
;;; ;;; Verticals
;;; (command "_.LINE" "36.5,31.9527" "36.5,33" "")
;;; (command "_.LINE" "37,32.5" "37,32.75" "")
;;; (command "_.LINE" "37.38,32.5" "37.38,32.75" "")
;;; (command "_.LINE" "41.62,32.5" "41.62,32.75" "")
;;; (command "_.LINE" "42.5,32.5" "42.5,32.75" "")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "40.0746,32.8325" "0.065" "0" "REVISIONS")
;;; (command "_.TEXT" "36.6087,32.5903" "0.065" "0" "ZONE")
;;; (command "_.TEXT" "37.0801,32.5903" "0.065" "0" "REV")
;;; (command "_.TEXT" "39.2464,32.5903" "0.065" "0" "DESCRIPTION")
;;; (command "_.TEXT" "41.9477,32.5903" "0.065" "0" "Date")
;;; (command "_.TEXT" "42.7477,32.5903" "0.065" "0" "APPROVED")
;;; ;;;
;;; (command "_.TEXT" "_MC" "0.25,2.125" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "0.25,6.375" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "0.25,10.625" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "0.25,14.875" "0.25" "0" "D")
;;; (command "_.TEXT" "_MC" "0.25,19.125" "0.25" "0" "E")
;;; (command "_.TEXT" "_MC" "0.25,23.375" "0.25" "0" "F")
;;; (command "_.TEXT" "_MC" "0.25,27.625" "0.25" "0" "G")
;;; (command "_.TEXT" "_MC" "0.25,31.875" "0.25" "0" "H")
;;; ;;;
;;; (command "_.TEXT" "_MC" "43.75,2.125" "0.25" "0" "A")
;;; (command "_.TEXT" "_MC" "43.75,6.375" "0.25" "0" "B")
;;; (command "_.TEXT" "_MC" "43.75,10.625" "0.25" "0" "C")
;;; (command "_.TEXT" "_MC" "43.75,14.875" "0.25" "0" "D")
;;; (command "_.TEXT" "_MC" "43.75,19.125" "0.25" "0" "E")
;;; (command "_.TEXT" "_MC" "43.75,23.375" "0.25" "0" "F")
;;; (command "_.TEXT" "_MC" "43.75,27.625" "0.25" "0" "G")
;;; (command "_.TEXT" "_MC" "43.75,31.875" "0.25" "0" "H")
;;; ;;;
;;; (command "_.TEXT" "_MC" "2.75,0.5" "0.25" "0" "8")
;;; (command "_.TEXT" "_MC" "8.25,0.5" "0.25" "0" "7")
;;; (command "_.TEXT" "_MC" "13.75,0.5" "0.25" "0" "6")
;;; (command "_.TEXT" "_MC" "19.25,0.5" "0.25" "0" "5")
;;; (command "_.TEXT" "_MC" "24.75,0.5" "0.25" "0" "4")
;;; (command "_.TEXT" "_MC" "30.25,0.5" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "35.75,0.5" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "41.25,0.5" "0.25" "0" "1")
;;; ;;;
;;; (command "_.TEXT" "_MC" "2.75,33.5" "0.25" "0" "8")
;;; (command "_.TEXT" "_MC" "8.25,33.5" "0.25" "0" "7")
;;; (command "_.TEXT" "_MC" "13.75,33.5" "0.25" "0" "6")
;;; (command "_.TEXT" "_MC" "19.25,33.5" "0.25" "0" "5")
;;; (command "_.TEXT" "_MC" "24.75,33.5" "0.25" "0" "4")
;;; (command "_.TEXT" "_MC" "30.25,33.5" "0.25" "0" "3")
;;; (command "_.TEXT" "_MC" "35.75,33.5" "0.25" "0" "2")
;;; (command "_.TEXT" "_MC" "41.25,33.5" "0.25" "0" "1")
;;; END_ITEM
;;;
;;; A sample Architectural 24 x 36 sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - Arch/Engineering (24 x 36in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "36.5,24.5")
;;; (command "_.LINE" "0,0" "36,0" "36,24" "0,24" "_C")
;;; ;;; Outer border line
;;; (command "_.PLINE" ".5,.5" "_W" "0.1" "" "35.5,.5" "35.5,23.5" ".5,23.5" "_C
")
;;; (command "_.FILLET" "_R" "1")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Outer border line
;;; (command "_.PLINE" "31,1" "_W" "0.05" "" "35,1" "35,23" "31,23" "_C")
;;; (command "_.FILLET" "_R" ".5")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Sheet No. border line
;;; (command "_.PLINE" "31.25,1.25" "34.75,1.25" "34.75,2.75" "31.25,2.75" "_C")
;;; (command "_.FILLET" "_R" ".25")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Project border line
;;; (command "_.PLINE" "31.25,3" "34.75,3" "34.75,5" "31.25,5" "_C")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Firm border line
;;; (command "_.PLINE" "31.25,5.25" "34.75,5.25" "34.75,7.25" "31.25,7.25" "_C")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Notes/Revisions border line
;;; (command "_.PLINE" "31.25,7.5" "34.75,7.5" "34.75,22.75" "31.25,22.75" "_C")
;;; (command "_.FILLET" "_P" "_l")
;;; ;;;
;;; ;;; Sheet No. lines
;;; (command "_.PLINE" "33.25,1.25" "_W" "0.025" "" "33.25,2.75" "")
;;; (command "_.PLINE" "31.25,2.25" "33.25,2.25" "")
;;; (command "_.PLINE" "31.25,1.75" "33.25,1.75" "")
;;; ;;;
;;; ;;; Notes/Revisions lines
;;; (command "_.PLINE" "31.75,7.5" "31.75,8.625" "")
;;; (command "_.PLINE" "34.125,7.5" "34.125,8.625" "")
;;; (command "_.PLINE" "31.25,7.875" "34.75,7.875" "")
;;; (command "_.PLINE" "31.25,8.25" "34.75,8.25" "")
;;; (command "_.PLINE" "31.25,8.625" "34.75,8.625" "")
;;; ;;;
;;; (command "_.PLINE" "31.25,22.375" "34.75,22.375" "")
;;; ;;;
;;; ;;; Sheet text
;;; (command "_.STYLE" "ADESK1" "romans" "0" "1.0" "0" "" "" "")
;;; (command "_.TEXT" "31.4054,7.0711" "0.065" "0" "Firm Name and Address")
;;; (command "_.TEXT" "31.4054,4.8211" "0.065" "0" "Project Name and Address")
;;; (command "_.TEXT" "31.4054,2.5846" "0.065" "0" "Project")
;;; (command "_.TEXT" "33.3899,2.5846" "0.065" "0" "Sheet")
;;; (command "_.TEXT" "31.4054,2.0989" "0.065" "0" "Date")
;;; (command "_.TEXT" "31.4054,1.6132" "0.065" "0" "Scale")
;;; ;;;
;;; ;;; Revision bar text
;;; ;;;
;;; (command "_.TEXT" "_MC" "32.9983,22.5578" "0.1" "0" "General Notes")
;;; (command "_.TEXT" "_MC" "31.5136,7.7034" "0.1" "0" "No.")
;;; (command "_.TEXT" "_MC" "32.9983,7.7034" "0.1" "0" "Revision/Issue")
;;; (command "_.TEXT" "_MC" "34.4338,7.7034" "0.1" "0" "Date")
;;; ;;;
;;; END_ITEM
;;;
;;; A generic 24 x 36 sheet with Title block and revision bar.
;;; All points are in paperspace units at a scale of 1 inch.
;;;
;;; NAME - Generic D size Sheet (24 x 36in)
;;; (command "_.ZOOM" "_W" "-0.5,-0.5" "36.5,24.5")
;;; (command "_.PLINE" "0,2" "0,0" "2,0" "")
;;; (command "_.PLINE" "0,22" "0,24" "2,24" "")
;;; (command "_.PLINE" "34,24" "36,24" "36,22" "")
;;; (command "_.PLINE" "34,0" "36,0" "36,2" "")
;;; ;;; Outer border line
;;; (command "_.PLINE" "1.5,1.25" "33.75,1.25" "33.75,22.75" "1.5,22.75" "_C")
;;; ;;;
;;; ;;; Title block
;;; ;;;
;;; ;;; Outer border line
;;; (command "_.PLINE" "33.875,1.25" "35.5,1.25" "35.5,22.75" "33.875,22.75" "_C
")
;;; ;;;
;;; (command "_.LINE" "33.875,2.5693" "35.5,2.5693" "")
;;; (command "_.LINE" "33.875,2.9443" "35.5,2.9443" "")
;;; (command "_.LINE" "33.875,3.3193" "35.5,3.3193" "")
;;; (command "_.LINE" "33.875,3.6943" "35.5,3.6943" "")
;;; (command "_.LINE" "33.875,4.0693" "35.5,4.0693" "")
;;; (command "_.LINE" "33.875,20.5" "35.5,20.5" "")
;;; (command "_.LINE" "33.875,20.75" "35.5,20.75" "")
;;; (command "_.LINE" "33.875,21" "35.5,21" "")
;;; (command "_.LINE" "33.875,21.25" "35.5,21.25" "")
;;; (command "_.LINE" "33.875,21.5" "35.5,21.5" "")
;;; (command "_.LINE" "33.875,21.75" "35.5,21.75" "")
;;; (command "_.LINE" "33.875,22" "35.5,22" "")
;;; (command "_.LINE" "33.875,22.375" "35.5,22.375" "")
;;; ;;;
;;; (command "_.LINE" "35.125,20.5" "35.125,22.375" "")
;;; ;;;
;;; END_ITEM
;;; END_DATA
;;;
;;; MVIEWS
;;; None, 0, 0
;;; Single, 1, 1, PLAN
;;; Std. Engineering, 2, 2, FRONT, PLAN, RIGHT, ISO
;;; Array of Viewports
;;; END_MVIEWS
;;;
;;; VPSETNAME - Single
;;; (command "._mview" ll_crn ur_crn)
;;; END_ITEM
;;; VPSETNAME - Std. Engineering
;;; END_ITEM
;;; VPSETNAME - Array of Viewports
;;; END_ITEM
;;;
;;; END_DATA
;;;
;(princ "MVSETUP loaded.")
(princ)
;;; ;
;;; OBJ-PROPS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates how VLISP interacts with the properties ;
;;; manager - changes propagated via selection sets and reactors ;
;;;--------------------------------------------------------------------;
(command "_.properties")
(setq message
(strcat
"Observe the property manager's state right now.\n"
"Type \"change-OPM\" at the command-line to see a
change to Model Space propagate to the OPM\n"
)
)
(princ message)

(defun C:change-OPM ()
(vl-load-com)
(setq *ModelSpace*
(vla-get-ModelSpace
(setq activeDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq
(setq myObj
(vla-AddMtext
*ModelSpace*
(vlax-3d-point '(3 6 0))
7
"While this MTEXT is selected,
\\P\\Plook at Properties Manager
\\PDo you see this entity's properties displayed?
\\P\\PWatch Properties change again:
\\PHit ESC to de-select this entity"
)
)
(vla-ZoomAll (vlax-get-acad-object))
(vla-update myObj)
; make a pickfirst selection set out of
new MTEXT object
(sssetfirst nil (ssget "L"))

(princ "\n Notice the new entity is selected\n


and the manager has changed to display the properties of the new mtext\n
Next...")
(initget 1 "Y N")
(if (equal "Y"
(getkword
"Attach an object reactor to this new mtext? [Y/N] "
)
)
(attach-reactor myObj)
)
)
(defun attach-reactor (obj)
(vl-load-reactors)
(setq entityReactor
(vlr-object-reactor
(list obj)
nil
'((:vlr-modified . chain-reaction))
)
)
(princ
(strcat "\n New reactor object: "
"entityReactor"
"\n It's '(<event> . <callback function>) is rigged as:\n\t"
)
)
(princ (vlr-reactions entityReactor))
(princ "\nNow changes to this mtext entity will trigger an event notification.
")
(princ)
)
(defun chain-reaction (notifier-object reactor-object param-list)
(princ "\nYou've modified the MTEXT's properties\n")
úoEw
)ï´6×
Û,[Uñ±¡
z²'X£9}
 üæ@Æ
uslÇ_x
Ý3w¶D
µîÈ éC)/2½a 
Û² >"3g
×`Ú
ÍMHv+{¼`
:Úo6ÔuHfVÝø*
ð ì¼&<iñ'Íx
åmÑ<5á> üi½7¥w'uÎøº=¢Ù
f<W0i
áóO‾‾âI¤
!+9ÿ T1ùæ7_ñL
Að& Ä )hQç
¸SQ£Z âYDøBÙ)
tuH [ÁÒûì‾ÿ
³ *G#TȶÈøbyÏè¢pR9(QÏh
~÷c>z ! _f.þ ¸F
U
#4ê% Xp5°¾
ÃK Ý%I4fß
\³‾Yq Ä D ¿ æ^
(®ù!ûw
Bs¥Á ý¥ ÀÍbÛ‾Ñð®-V ,õï .,±ìØ
R#è©h£sƧæQ§-³ïË
T°h7ê«:¤2ûö!Èîß?GüQø
eÐP $cÀ2 ÀðÅàK|q£'fô$ » ©¾
²W‾άXèøcæÝ¿m;
 NOuO×ß?¤ £êõªnÁ£ÎN¡BeHì&Î/Ó
G6Lí DN ¢ ¥Ëhé—héNøõ'ت`R Õ,P| =í yvO LbÜJ\ (
WX<
X\ï
Gûv1Vú
-+Yc
Øt õ-lzSÏ
6é\Ñ

Ø!¿-¬m
ÎÑØÎè
Ñ)»(ÓÔðä9´Î
Î@m@mñ
æA;÷fc]Çôì
x ã«ÈC.ïV}]m_Ï
àW!CÈ®2b
W ¹½pÛoÔV—K¤[éBòì
"Ø R5
%{ïÜ
Ú¬MËQ0;WÅçßnij
zvÝÛ —p®ñD;$³—
öd:é ÉQ ) [`ò
G]etÚ
39a—J¾¹
*JöÄégH
ûÄ*ä)Ì¢
5i ùgC#ìb2½
ü¾%¥. /~I¾ùOøä÷ðÉe
¼ ~F {"Å*û¼ó
ç
o}× ÿË ¸²ÇWçUø ? p ©(/ Øãª9j;,Dø@æ¤Ì Å ¨#(6± ÎÖ¹m´6|Ý < ¿µ Z Ä'd'hÌWÍ ý>  3Zað»ÇáÂ4aY+í1ï
øÖí!ûwö¡‾Q}V }Fgº¥sõ=BØCkºúX£/FTȲÃ
ô ‾²S FsðÃP É +SÔbá« ܱ u]Âê îfá`ç lfÓl d\ # |  ÕöP t¡}bFºnu¦ "û¿`;'º
iâ òá/|«ü
ì Ìöôá"ê ¾rûTgýKj
`=<}ùS
Éi þė[òþ
ü{ï`E ÜÀ.@|âp
ý2íJ#Ý¢ð‾è^ëvãí$ ä¦Ó¹ ĨQpÂ8Ä h;ÏCL â ¢ ¨ÌPŬ̳ jzõÏ»ûIº?Ü‾鮵
£K¡Gªt^;¿ ¸=1ü ùSì(1ÑqÔà ý C0i&tþ î$©?ÆÂ<JÒ Kd & $üÂÈ©% aqDÃó<³0ÅÎÀß  A I Å GN]a¶r©K+"_
éök9² âÛ0ñ)y' prñé˲lÉ" Èsñ3. +Á$Ñü íGõ¾°ÎÖz#OXã&ðÕBÿò'G¶µÐü°} §RXÜ
$L =_ 7ØÿIرÐy¢Z2Ê£ Îâ
¡ £ `Ç&% d£?EâÖÃà)É ,
ͱk
,ö©0
HçŹR¡
ÑZKWe¬ÚÂ'ü
ôD8'/¿
òF%½*@±̈e{â
G}!L[6
 % ±ÅÏlqä
N jGUæ <ÍÉ%ì!Âp$
g¨Èr.L¸ÈF/
/]Ù? ÙÏQì´¿ë
åº|]
?-:2
—Ã8bE
B¶Ós*.U°&ÎØxÎ
yçÜ=Ç ] PÁ"lé
ËZÐKá
{æJÂsH
Ï\Ñ# '#Äp
ØõG  —
æ È §L4XÜx"¸ 'L ÓñJ',M8 ]°«,%òÀ.§ÙæÚs ]'ì Ö 8´zO©ÕIÏc¹+my©/Ý~ ¤V‾r°Rõ/o mîé9íqÂ Û — Qåø% )
ç‾qRji
 kìH5>,³4Ø
QÄK¶`
N@øì/¨¡dÎ
,abDxð»ýÉÈBl<
=°{è2¥0a¥
Èûà Y¢¥nÇ
Ǫ ÔHÀ3^c§
Ðçvª
Ê ÀÉìsß»ÁÁôdðF
û þ Yðé
[ªÀg
v k{÷Qo'¨-ÁSK0-\
ÎÜ¥+wåÊ v ]9rÄL@ûkà
B ÙµzúóV=wä
¾~+γ
 ùh,Þ!Ì
½1 Q?KÝ
8¾-SÆn !¡¥ &
ñAB¼ ©]þCþøoØ
! «SìÄgàð$Å~ ¹ÀûÕp-&ÅÉ Á*5rJ Gë
ìZù5
Àã´ÈQJ
³®3o
w ¹}»
±Ë,ö#
äÕÎË }«
=púúõMn¥
ÃëÒ©m 8ÔÀ¡XL
 9¿ 1ªÝ ø²n°
"K$«öEöð
Cì+«ÐئllK
{ ÷G XÎ*dK+à
»h ^Ï} ³ØÅ
î¡Ü_ÁS#
åØ1Û'wä]³
i4 Dª9+Ä>ïC#M£cCk
=òÙ( V;ê°ËdYV3ÖÈäÇ <O
‾óÅ]  i|{on÷`ÇÌNâÈ]:_TÎyt« ;;;
;;; OBJEX.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains a reactor test. ;
;;; In this test three circles of the same radius ;
;;; will be created and will have different colors ;
;;; Try to change one circle and the others will ;
;;; change their radius. ;
;;; ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: PREPARE-FOR-OBJEX-TST ;
;;; ;
;;; Description: This function makes 3 circles with equal radius ;
;;; in model space. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: ;
;;; (prepare-for-OBJEX-TST) ;
;;; Note: This function creates the global variables: ;
;;; [ ac1 ac2 ac3 acadapp acaddoc acadmodel ] ;
;;; They are allowed to be global for the ;
;;; perusal of their values. ;
;;;--------------------------------------------------------------------;
(defun prepare-for-OBJEX-TST ()
(setq acadApp (vlax-get-acad-object))
(setq acadDoc (vla-get-ActiveDocument acadApp))
(setq acadModel (vla-get-ModelSpace acadDoc))
;;; Create 3 cirles
(setq ac1 (vla-AddCircle acadModel (vlax-3d-point '(10.0 10.0 0.0)) 10.0))
(vla-put-Color ac1 1)
(setq ac2 (vla-AddCircle acadModel (vlax-3d-point '(5.0 5.0 0.0)) 5.0))
(vla-put-Color ac2 2)
(setq ac3 (vla-AddCircle acadModel (vlax-3d-point '(3.0 3.0 0.0)) 3.0))
(vla-put-Color ac3 3)
(command "_.ZOOM" "_EXTENTS")
(command "_regen")
)
;;; define some helpers
;;;--------------------------------------------------------------------;
;;; Function: MAKE-THE-SAME-RADIUS ;
;;; ;
;;; Description: This function makes the 3 circles have the same ;
;;; radius. ;
;;; ;
;;; Arguments: ;
;;; obj1 = a valid vla circle object. ;
;;; obj2 = a valid vla circle object. ;
;;; ;
;;; Returned Value: a valid vla circle object. ;
;;; ;
;;; Usage: ;
;;; (make-the-same-radius ;
;;; vla-circle-object1 ;
;;; vla-circle-object2 ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun make-the-same-radius (obj1 obj2)
(if (and
obj2
(vlax-write-enabled-p obj2) ;; test if object can be modified
(vlax-read-enabled-p obj1) ;; test if object can be read
)
(VLA-PUT-RADIUS obj2 (vla-get-radius obj1))
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-SAME-RADIUS-REACTION ;
;;; ;
;;; Description: This function is a call back function invoked ;
;;; from a reactor. ;
;;; ;
;;; Required Functions: ;
;;; make-the-same-radius ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: ;
;;; (make-same-radius-reaction ;
;;; notifier ;
;;; reactor ;
;;; arg-list ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun make-same-radius-reaction (notifier reactor arg-list)
(make-the-same-radius notifier (VLR-Data reactor))
)
;;;--------------------------------------------------------------------;
;;; Function: C:OBJEX-TST ;
;;; ;
;;; Description: This function aids in the creation of a circle ;
;;; object which will contain reactors for: ;
;;; COPY, MIRROR or ARRAY ;
;;; ;
;;; Required Functions: ;
;;; create-same-copy-reactor ;
;;; add-circle ;
;;; reactor-make-same-radius-color ;
;;; ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid reactor object such as: ;
;;; #<VLR-Object-reactor> ;
;;; ;
;;; Usage: (C:OBJEX-TST) or OBJEX-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:OBJEX-TST ()
(prepare-for-OBJEX-TST)
(setq r1
(VLR-Object-reactor
(list ac1)
ac2
'((:vlr-modified . make-same-radius-reaction))
)
)
(setq r2
(VLR-Object-reactor
(list ac2)
ac3
'((:vlr-modified . make-same-radius-reaction))
)
)
(setq r3
(VLR-Object-reactor
(list ac3)
ac1
'((:vlr-modified . make-same-radius-reaction))
)
)
(vla-put-Color ac1 acRed) ;touch of the circles to fire reactors the first ti
me
)

;;;;;;; now take a look at ACAD console


;;;;;;; change radius of the ac1 (red one)
;;;; both ac2 and ac3 will change there radii

;;To remove reactor


;;(vlr-remove r1)
;;(vlr-remove r2)
;;(vlr-remove r3)
;;;;; try ACAD again
;;; Now All circles radii independent again
;;; You can restore contraints by adding reactors back
;;(vlr-add r1)
;;(vlr-add r2)
;;(vlr-add r3)

;;;;;;;;;;;;;;;;;;;;; make them persistent!


;;(vlr-pers r1)
;;(vlr-pers r2)
;;(vlr-pers r3)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; to trace all events coming to circles
;|
(setq rr
(VLR-Object-reactor
(list ac1 ac2 ac3)
nil
nil
))
(defun vlr-full-trace (reactor)
(foreach name (VLR-Reaction-Names reactor)
(VLR-Reaction-Set reactor name 'VLR-trace-reaction)))
(vlr-full-trace rr)
|;
;;;--------------------------------------------------------------------;
;;; Function: C:OBJEX-INFO ;
;;; ;
;;; Description: This function displays a help file in the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:OBJEX-INFO) or OBJEX-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:OBJEX-INFO ()
(textscr)
(princ "\nIn this test three circles of the same radius")
(princ "\nwill be created and will have different colors ")
(princ "\nTry to change one circle and the others will ")
(princ "\nchange their radius.")
)

;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "OBJEX-TST" "OBJEX-INFO")
*REACT-TEST-COMMANDS-INFO*))
;;EOF¸5¶
27ÃY}vØL(\MÛN
‾¦Î Á =  Xo89
ϗÏöZ]IM;sg£^ t]> RÛNU 5÷/ ÓÕ 5õ:He¾õ êü 7ô :_YíÁÖ®oúk Ñ#0D°êc  qúb@^¢»}²9?çUãÛs
} $6ªKi¤ó8Eæñë;g Ñõ úGGÂÔ = nîÑ%y).É:±Ï{4¾ÖÑl"s &—óágÒþÕ Y Á` @ A¾¸q ¤ÓÐFÆë>¹<v¼^5áäÜE ÉÉÈ
ô¢ñ@
ßZR
Ö}~l"±P
G I ^²äªó¥q
Ö3ûM 
O á î5_5
4 Å"©¥4y}
anq±^
E>ÀTýÆ
&v+mÉ
@ÇäÑ
ë küæú+[Ó¬6°
8ó0SM©Ã6Yg3Ã9Ì4Î|
oØ¡| ©ÆÎ
¶DõáÏËÚÎyþâ
câQU¿Õ
¨É U
¢x¡&þ{h{
¼¥Ô¶ß
Q g ª«
Jm~I—
a¢Jt]dçSþê
¬m¿ETµ a¢
* (@å
ÐÏ
kª³ïpWTìÓ£
S7 6^7 µ(°Óÿ-i9ìs
ß ëô Q w fÓG
ÎÉ&s®j9m SÍõ'K û-‾Ñ» W N ¿v VÓ ì ìÒÜ Q9ð—ñ ð~Ó©a< × ?¶Ù!õ½Q¡æ&ë¥ ô [úd
Ë©D d pÉ0AçpÉ ýê.)øV»/
äѶßäËÊÃ
0Ág_å 1Þy_öfÕ²5H¿å¼>Y
ÍÏ4Æ1âç^cÅp´¶õ
~çpOÚ׳
 5ß"Ð ¶x¸Õ
ç¹ äJu]Ó
 c b.6pù[nGÎiz%
,G ^©XØ¥`
ι®Ñ kåÀß
ÞÑ÷
Ñ  ÀÝUú¡ÓÑ F#ì%1Ón n °ù Pi§ïe ð(:L%
3ÁXgÅ Ô¹¤§ÿ _.= ãFÿ*} k øuÜÍ`OY`Éa碶e—2¶eXrf O ")êÁ ,vÏr i «Äâã÷ÿ× ¼ËÑ£þ x÷Ò¨DZc¿ ø É| ¹¼
wÕö6l  »—M0 
y0X{È
þ-yª8 JÙÏpY1
ó£¦8 üµ>¾) ØMÆ8 X qxõ §ß â æíç /U²\¼Ó—
IéÎ:ñÓ]? ÁÆu À )pRrå
‾§ HYr? UïB? §4
>L
_̼¾,
¾èp^V¤/ÆBE 2á& þ $ ¿ eú£zg *î Û Fçid?å>3ð ½ÍÌ ÁÒCn v Ý>{ ªìÙô}ðï¼ØU(Ú?:DF: [ ßÔtÀÉoÝi â PÝÄ
.Èoàé§âÀ@
1°¸2ïÃ
* òB&Aò;K±PÕ'
T; kµ«ËSý joK6Eä
"4ñø zsÈXÎ
p ¶LNxü}Ì
8) ©ÊaõÜYï'Ë
½ÝÌÌEy
ÁÚCn¸¶§á1yÌu'
‾ (V¬Ó Vóåzmn]þ
À <E= %*'Ó
3N Ö¢éÚOpwÑ
þñ©n‾'0PçêÒýÖ¨)¡
ã©iÛ í\Ôg9b)Å/
±EE*×êw[
M5ú
bö4ÅÅ
÷ò!æ2QÅ
i÷'sH«c!F/dâB
~Z2ö4]Èä|ÀG
;8_+\AZÄ
U¡ªºªÔ.g
GðpCèDÕöȪ,
Ò(FR^ì
LBv¢/¨7
r^[º~o#ó`
j®ùÿ#i^ÿUÁÐÂ
âÑ Ú¤óµ1
ÏC®ÏþvæÁPí17TÛß°É6Ñ
)j;;
]g¼ æÒ-Èï üý{<ö 7 o¡g~o¦~)¿TäÓ6 àbùi #ó ÐY- ë
;; Overkill.lsp - Overlaping object checker/fixer.
;;
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;|

Overlaping vector checker/fixer.


The idea is to find overlapping objects and:
1. remove the un-needed/hidden objects.
2. modify partially overlapping objects such that they no longer overlap.
Supported objects will include:
LINES, POLYLINES, LWPOLYLINES, ARCS, and CIRCLES.
All objects will be broken down into simple line and arc representations
nd placed in a master list.
The master list will contain sublists of the form:
((type gen-data) otherData ename)
Line data Example:
(0 (m b) (p1 p2) ename)
- Type is 0 for a line.
- The general data consists of 'm' and 'b' which are the
slope and y-intersection respectively. The 'm' and 'b'
elements are found in the equation of a line: y=mx+b
- The specific data for a line is the two endpoints.
- Finally an ename
NOTE: If the line is vertical (undefined slope) then 'm' will be nil
and 'b' will actually be the x-axis intersection value.
i.e. (nil 1.0) is the equation of the line x=1.0
Arc Data Example:
(1 (cent radius) (startAng endAng) ename)
- Type is 1 for an arc (includes circles)
- General data is center point and radius
- specific data is comprised of start and end angles respectively.
- ename
Using the (type gen-data) element of each sublist we can m-assoc to
extract a list of all objects that have the potential to overlap.
From here we can loop through the set checking each object against
the others to determine which objects overlap with others.
compare
object1 and object2
... and object3
... and object4
... and object5
If object1 completely contains object2 then delete object2
If object1 partially overlaps with object2 modify object2

acet-ss-remove-dups
0 type
8 layer
6 linetype
62 color
370 lineweight
390 plotstyle

|;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun c:overkill ( / lst )
(acet-error-init
(list '("cmdecho" 0)
T
)
)
(if (setq lst (acet-overkill-ui nil))
(acet-overkill2 lst)
);if
(acet-error-restore)
);defun c:overkill

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun c:-overkill ( / lst )
(acet-error-init
(list '("cmdecho" 0)
T
)
)
(if (setq lst (acet-overkill-ui T)) ;force command line
(acet-overkill2 lst)
);if
(acet-error-restore)
);defun c:-overkill
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;If the cmdline arg is true then command will be command line line driven.
;
(defun acet-overkill-ui ( cmdline / ss lst )
(if (and (setq ss (ssget "_:l"))
(setq ss (car (acet-ss-filter (list ss nil T))))
);and
(progn
(princ "\n")
(if (or cmdline
(= 4 (logand 4 (getvar "cmdactive")))
(= 0 (getvar "cmddia"))
);or
(setq lst (acet-overkill-ui-cmd))
(setq lst (acet-overkill-ui-dlg))
);if
(if lst
(setq lst (cons ss lst))
);if
);progn then
);if
);defun acet-overkill-ui

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-ui-cmd ( / ans )
(setq ans T)
(while ans
(acet-overkill-print-modes)
(initget "Ignore Fuzz Plines parTial Endtoend") ;; force non-negative entry 4+
128
(setq ans (getkword "\nEnter an option to change [Ignore/Fuzz/Plines/parTial/E
ndtoend] <done>: "))
(cond
((= ans "Ignore") (acet-overkill-ui-cmd-ignore))
((= ans "Fuzz") (acet-overkill-ui-cmd-fuz))
((= ans "Plines") (acet-overkill-ui-cmd-plines))
((= ans "parTial") (acet-overkill-ui-cmd-partial))
((= ans "Endtoend") (acet-overkill-ui-cmd-endtoend))
);cond close
);while
(list
(max (acet-overkill-fuz-get) 1.0e-08)
(acet-overkill-ignore-get)
(acet-overkill-no-plines-get)
(acet-overkill-no-partial-get)
(acet-overkill-no-endtoend-get)
);list
);defun acet-overkill-ui-cmd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;prompts for fuz value and returns the fuz as a floating point number.
;
(defun acet-overkill-ui-cmd-fuz ( / def fuz ans )
(setq def (acet-overkill-fuz-get))
(if (not def)
(setq def 0.000001)
);if
(initget 4) ;; no negative fuz
(setq ans (getdist
(acet-str-format "\nSpecify Fuzz for numeric comparisons <%1>: "
(acet-rtos2 def)
)
);getdist
);setq
(if (not ans)
(setq ans def)
);if
(acet-overkill-fuz-set ans)
ans
);defun acet-overkill-ui-cmd-fuz
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;prompts for properties to ignore and returns the ignore list (list of common gr
oup codes to ignore
;during object comparisons)
;
(defun acet-overkill-ui-cmd-ignore ( / def fuz ans lst a x anslst lst2 lst3 n ig
nore )

(setq ignore (acet-overkill-ignore-get))


(acet-overkill-print-ignore)
(setq lst '((8 "LAYER")
(6 "LTYPE")
(62 "COLOR")
(370 "LWEIGHT")
(390 "PLOTSTYLE")
)
);setq
;; build a list of strings
(foreach x lst
(setq lst2 (cons (cadr x) lst2));setq then
);foreach
(setq lst2 (cons "." lst2)
lst2 (reverse lst2)
) ;add a dot as valid entry (used to specify none)
(princ "\nSpecify properties to ignore when comparing objects... ")
(setq ans (acet-ui-m-get-names
(list nil ;; no spaces
"\n[layer,ltype,color,lweight,plotstyle, * (for all)] or \".\"
for none <default>: "
lst2 ;; valid entries
);list
);acet-ui-m-get-names
);setq
(if ans
(progn
;; now convert back to a list of group codes and save it.
(setq lst (mapcar 'reverse lst)
lst2 nil
);setq
(foreach x ans
(if (setq a (assoc x lst))
(setq lst2 (cons (cadr a) lst2));setq then
);if
);foreach
(setq lst2 (reverse lst2))
(acet-overkill-ignore-set lst2)
);progn then
);if
(acet-overkill-ignore-get)
);defun acet-overkill-ui-cmd-ignore
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-ui-cmd-plines (/ def ans a )
(setq def (acet-overkill-no-plines-get))
(if (= def 1)
(setq def "No")
(setq def "Yes")
);if
(initget "Yes No")
(setq ans (getkword (acet-str-format "\nOptimize segments within plines <%1>: "
def)))
(if (not ans)
(setq ans def)
);if
(if (= ans "No")
(progn
(acet-overkill-no-plines-set T)
(setq a T)
);progn
(acet-overkill-no-plines-set nil)
);if
a
);defun acet-overkill-ui-cmd-plines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-ui-cmd-partial (/ def ans a )
(setq def (acet-overkill-no-partial-get))
(if (= def 1)
(setq def "No")
(setq def "Yes")
);if
(initget "Yes No")
(setq ans (getkword (acet-str-format "\nCombine co-linear objects that partiall
y overlap <%1>: " def)))
(if (not ans)
(setq ans def)
);if
(if (= ans "No")
(progn
(acet-overkill-no-partial-set T)
(setq a T)
);progn
(acet-overkill-no-partial-set nil)
);if
a
);defun acet-overkill-ui-cmd-partial
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-ui-cmd-endtoend (/ def ans a )
(setq def (acet-overkill-no-endtoend-get))
(if (= def 1)
(setq def "No")
(setq def "Yes")
);if
(initget "Yes No")
(setq ans (getkword (acet-str-format "\nCombine co-linear objects when aligned
end to end <%1>: " def)))
(if (not ans)
(setq ans def)
);if
(if (= ans "No")
(progn
(acet-overkill-no-endtoend-set T)
(setq a T)
);progn
(acet-overkill-no-endtoend-set nil)
);if
a
);defun acet-overkill-ui-cmd-endtoend

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-print-ignore ( / ignore lst a x )
(setq ignore (acet-overkill-ignore-get))
(setq lst '((8 "Layer")
(6 "Linetype")
(62 "Color")
(370 "Lineweight")
(390 "Plotstyle")
)
);setq
(if ignore
(princ "\nIGNORE=")
(princ "\nIGNORE=none")
);if
(foreach x ignore
(if a
(princ ",")
);if
(if (setq a (assoc x lst))
(princ (cadr a))
);if
);foreach
);defun acet-overkill-print-ignore
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-print-modes ( / fuz ignore no-plines no-partial no-endtoend
x a lst )
(setq fuz (acet-overkill-fuz-get)
no-plines (acet-overkill-no-plines-get)
no-partial (acet-overkill-no-partial-get)
no-endtoend (acet-overkill-no-endtoend-get)
);setq
(acet-overkill-print-ignore)
(princ "\n")
(princ (strcat "Fuzz=" (acet-rtos2 fuz)))
(if (not no-plines) ;; "aint got no back-eyed peas neither!"
(princ ", Optimize PLINES=Y")
(princ ", Optimize PLINES=N")
);if
(if (not no-partial)
(princ ", combine PARTIAL overlap=Y")
(princ ", combine PARTIAL overlap=N")
);if
(if (not no-endtoend)
(princ ", combine ENDTOEND=Y")
(princ ", combine ENDTOEND=N")
);if
);defun acet-overkill-print-modes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;
;
(defun acet-overkill-ui-dlg ( / ignore checkit lst flag iv fuz )

(setq ignore (acet-overkill-ignore-get))


(if (> (setq iv (load_dialog "overkill"));setq
0
);test
(progn
(if (new_dialog "overkill" iv)
(progn
;; local function validates and returns the list of group codes to ig
nore and the fuz
;; if no errors are found.
(defun checkit ( / ignore fuz lst no-plines no-partial no-endtoend)
(if (= (get_tile "layer") "1")
(setq ignore (cons 8 ignore))
);if
(if (= (get_tile "linetype") "1")
(setq ignore (cons 6 ignore))
);if
(if (= (get_tile "color") "1")
(setq ignore (cons 62 ignore))
);if
(if (= (get_tile "lineweight") "1")
(setq ignore (cons 370 ignore))
)
(if (= (get_tile "plotstyle") "1")
(setq ignore (cons 390 ignore))
)
(if (= (get_tile "plines") "0")
(setq no-plines T)
)
(if (= (get_tile "partial") "0")
(setq no-partial T)
)
(if (= (get_tile "endtoend") "0")
(setq no-endtoend T)
)
(setq fuz (get_tile "fuz"))
(if (or (not (distof fuz))
(< (distof fuz) 0.0)
);or
(set_tile "error" "Invalid. Fuzz value must be numeric and non-n
egative.")
(setq lst (list (distof fuz)
ignore
no-plines
no-partial
no-endtoend
);list
);setq else
);if
lst
);defun checkit
;; initialize the tiles
(if (member 8 ignore)
(set_tile "layer" "1")
(set_tile "layer" "0")
);if
(if (member 6 ignore)
(set_tile "linetype" "1")
(set_tile "linetype" "0")
);if
(if (member 62 ignore)
(set_tile "color" "1")
(set_tile "color" "0")
);if
(if (member 370 ignore)
(set_tile "lineweight" "1")
(set_tile "lineweight" "0")
);if
(if (member 390 ignore)
(set_tile "plotstyle" "1")
(set_tile "plotstyle" "0")
);if
(set_tile "fuz" (acet-rtos2 (acet-overkill-fuz-get)))
(if (acet-overkill-no-plines-get)
(set_tile "plines" "0")
(set_tile "plines" "1")
);if
(if (acet-overkill-no-partial-get)
(set_tile "partial" "0")
(set_tile "partial" "1")
);if
(if (acet-overkill-no-endtoend-get)
(set_tile "endtoend" "0")
(set_tile "endtoend" "1")
);if
(action_tile "accept" "(if (setq lst (checkit)) (done_dialog 1))")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(acet-help \"OVERKILL\")")

(setq flag (start_dialog));setq


(if (= flag 1)
(progn
(acet-overkill-fuz-set (nth 0 lst))
(acet-overkill-ignore-set (nth 1 lst))
(acet-overkill-no-plines-set (nth 2 lst))
(acet-overkill-no-partial-set (nth 3 lst))
(acet-overkill-no-endtoend-set (nth 4 lst))
(setq lst (list (max (nth 0 lst) 1.0e-08) ;min uz value of 1.0e-
08
(nth 1 lst)
(nth 2 lst)
(nth 3 lst)
(nth 4 lst)
);list
);setq
);progn then
);if
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load
(if (= flag 1)
(acet-acad-refresh) ;force AutoCAD to refresh it's window.
);if
lst
);defun acet-overkill-ui-dlg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Returns a list of group codes that corispond to properties that overkill will i
gnore
;when comparing objects.
;
(defun acet-overkill-ignore-get ( / lst )
(setq lst (acet-getvar (list "ACET-OVERKILL-IGNORE" 6))) ;; 2+4=look in current
profile then in fixed profile
(if (and lst
(/= lst "")
);and
(setq lst (acet-str-to-list "," lst)
lst (mapcar 'atoi lst)
);setq
(setq lst nil)
);if
lst
);defun acet-overkill-ignore-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a list of group codes that corispond to properties that overkill will ign
ore
;and saves the data in the current profile as well as the fixed profile.
;
(defun acet-overkill-ignore-set ( ignore / gcode a )
(setq a "")
(foreach gcode ignore
(setq a (strcat a "," (itoa gcode)))
);foreach
(if (/= a "")
(setq a (substr a 2))
);if
(acet-setvar (list "ACET-OVERKILL-IGNORE" a 6)) ;; 2+4=place it in current and
fixed profiles
);defun acet-overkill-ignore-set
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;; default get and set functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-fuz-get ( / fuz )
(setq fuz (acet-getvar '("ACET-OVERKILL-FUZZ" 1)))
(if (not fuz)
(setq fuz 0.000001)
);if
fuz
);defun acet-overkill-fuz-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-fuz-set ( fuz / )
(acet-setvar (list "ACET-OVERKILL-FUZZ" fuz 1))
);defun acet-overkill-fuz-set

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-plines-get ( / no-pline )
(setq no-pline (acet-getvar '("ACET-OVERKILL-NO-PLINES")))
(if (/= no-pline 1)
(setq no-pline nil)
);if
no-pline
);defun acet-overkill-no-plines-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-plines-set ( no-pline / )
(if no-pline
(acet-setvar (list "ACET-OVERKILL-NO-PLINES" 1 3))
(acet-setvar (list "ACET-OVERKILL-NO-PLINES" 0 3))
);if
);defun acet-overkill-no-plines-set

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-partial-get ( / no-partial )
(setq no-partial (acet-getvar '("ACET-OVERKILL-NO-PARTIAL")))
(if (/= no-partial 1)
(setq no-partial nil)
);if
no-partial
);defun acet-overkill-no-partial-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-partial-set ( no-partial / )
(if no-partial
(acet-setvar (list "ACET-OVERKILL-NO-PARTIAL" 1 3))
(acet-setvar (list "ACET-OVERKILL-NO-PARTIAL" 0 3))
);if
);defun acet-overkill-no-partial-set
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-endtoend-get ( / no-endtoend )
(setq no-endtoend (acet-getvar '("ACET-OVERKILL-NO-ENDTOEND")))
(if (/= no-endtoend 1)
(setq no-endtoend nil)
);if
no-endtoend
);defun acet-overkill-no-endtoend-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-no-endtoend-set ( no-endtoend / )
(if no-endtoend
(acet-setvar (list "ACET-OVERKILL-NO-ENDTOEND" 1 3))
(acet-setvar (list "ACET-OVERKILL-NO-ENDTOEND" 0 3))
);if
);defun acet-overkill-no-endtoend-set
;;;functions below are maintained for backward compatibility...
(defun acet-overkill (alst)
(acet-overkill2 alst)
)
(defun acet-overkill-resolve-lines ( lst ss2 fuz no-partial no-endtoend / )
(acet-overkill-resolve-arcs2 lst ss2 fuz no-partial no-endtoend)
)
(defun acet-overkill-resolve-arcs ( lst ss2 fuz no-partial no-endtoend / )
(acet-overkill-resolve-arcs2 lst ss2 fuz no-partial no-endtoend)
)
(defun acet-overkill-line-data ( e1 fuz genprops / )
(acet-overkill-line-data2 e1 fuz genprops)
)
(defun acet-overkill-gen-prop-get ( e1 genprops / )
(acet-overkill-gen-prop-get2 e1 genprops)
)
(defun acet-rtos (val)
(acet-rtos2 val)
)
(defun acet-overkill-ss->primitives ( ss fuz ignore )
(acet-overkill-ss->primitives2 ss fuz ignore)
)

(acet-autoload2 '("OVERKILLSUP.LSP" (acet-overkill2 alst)))


(acet-autoload2 '("OVERKILLSUP.LSP" (acet-overkill-gen-prop-get2 e1 genprops
)))
(acet-autoload2 '("OVERKILLSUP.LSP" (acet-overkill-line-data2 e1 fuz genprop
s)))
(acet-autoload2 '("OVERKILLSUP.LSP" (acet-overkill-resolve-arcs2 lst ss2 fuz
no-partial no-endtoend)))
(acet-autoload2 '("OVERKILLSUP.LSP" (acet-overkill-ss->primitives2 ss fuz ig
nore)))
(acet-autoload2 '("OVERKILLSUP.LSP" (acet-rtos2 val)))
(princ)
0æ"; ±ñ± >þÈív³,+ËË‾}çN á¬[fffJJJrrrFF À\b4ænÞ
w&$$DEE¥¥¥åçç;
Ùì+ ÎW:;á )v }VØMf5 b4ZÃw¿—uÅJ7ü ]N){}]½ °RnjýÖõK .\—P£A© v9B& ¶ T ¡#m V  Å °ô
_
çáàhÒ&
ÙÖI ²ì`ØÒÒB3´E`ÏÌÊJOOß´i
[+h]& gM|U =Jè*+DX1ÂÈêõz8
èVÐ[6$&ÆÅÇÃI
ÍÛó ¥o®MøsYÙ
Æãq{»»zd6
. Ãíö °Ãn
~ö(Þepðäù¡!P «jxö{î
Ô¬Fó—gç°¦* áZ,;ÉÀ(ÈÒl ½,Ó ¹$}Id|$Ú P¡°Ô« ü<¤Y£Y¼iñ Ëñò -N æ:¹²Ñf#9®57§ú[ßLZ´0^¹a«óL
ô÷÷Ã÷ ÷ l6; mímmí &—µÕ_â¿àg¤¡Áìõ6s f H8¦ÒjWÙg =&v! ?\¾51Ém³ïp{` n »d±2nÆÙæLmN]ѲbÁ4oiÐ[ Ï
z£Âv©Ñn—ðݰ
©) ¥Æö&o;M9 Xº] ®2 1ÑE ¶æT
Ç_C»
?xòäÉë7®O~6
ak é]ÌúÈ ~¤%ûÎíѱѳ <æpÅ¡
ö Y vK£ 5ãõx{zzöìÙÓÛÛ×ÛÛû ¿8ÐÛÛ¿ ÿk{÷îíèèhiÙ[þ rû/ ÝY^!¦ ¤Z=^
'øó>Ý.ÕnµÃÆ kå ]βÁrÝÙ ¸KqÑW¢W^]{9vã 6O L'ÃP
¿1[ yr ]*4M³ ÄIë ìkã ¼\|úúèUÕ+ ÿ4öGÛÖ‾«//s×Õ67yZalU ì.Õ'/Âsà7ÛÚÚ
2Ç uüÝß½{úôéÁÁÁ'Nôõõww÷À¹&p ÷FköÀ£ðL áUÝÝÝ èð¡ÃG=z~,ûöíÛÙ¾ÓåtΠÒÑTöYd ` Ïé{ yöÀÇ À—LÚC
{½ÀÆÂq®_p¿ÒK ï,StrØí Ûàö¿M,ø °0à áÙ ©RÙg¥D :µ¾ÞRÙg¥Dö,µ¾ÞÙcÕúzKe RÙg¥TöY) }VJe Ù 9R,Ëâ8^
¦2
q*
CL
W
!¸b 5bgô Øè" .äCù2çØ ‾^nÛennÅ)N1F>aÀ§ > Se||*{1 àÄøÁY= p» m!Ĩì*{øzüøѽ{w/^ü`9g%. æ$
{)gh²KÚ ÿ2Ê 5
àÒöÒHèÄÌ!ö;wnÿáÌ;¿øe Ŧ#¨b 9ã§Vgb°  ûØ Á9C ¥ãaú9Ui$ ¨ì*ûÌêóÏ'ÞÕÑÑH z .¡CÀ%ì pìÆ@dØF)x0»ì 
Kýÿüû® F +çÁÅHØNyvcHÔ ô s> ^ çT¡mê4¼Ï£²«ìJõèÑ£áá Ï ßãÝ
&Ä £Ân
ÈîN - sÅT 9©Î'ìÜò Ý 'fN°?|øà N
ô; ¡g#vj¦aW <8o^"÷±O—Ïçd 7×A¤àÛm Ũì*»RÝ¿ ÿرÝ==Ç ÑtñWÅ<Ø\
îc÷ -Ý.éçAàõÖ\1*»Ê.[0à Ýؽ v8ÊY¶Tü˳KÁ}ì ÿ 5 pVÏÇ×^ ø ìþÑeÊeÏ íy ÛfÈvk.¤Þ S'äÙgÿôÓ¿]¼øa
?—HöDAà|äÁ-9µ Ùb }öwÞ>¸ Ó嬤H <û ñ¿Zpß5T\äÊÐ`ðs  ]e©»wï|ñÅ úû Ý®JW9¦í&|caÅd 9>pÑ\ \læ
Ypá¶ïic7!c£|n
» OÈpîçSgÉå#\ ×Üü×ÈÍk¾§
³k}àYÕÛ3«ëù¨ì³ÈþÙĨ
Ý Â3GùÛ Î þýñ¶Ö
Éñ /±ð±Ëá+
üíÉ11K"jÏ
㗠\ðPÐ
4ì@ÿË~}-—
þÀ —ÆFo¤a
Þº>>z
¾¢+Zÿ©B&à
 Ä %Kb
ã#âý—Fþ
Hä) rylÏÜøþ45Ú=
ÿ\ õ ø ¿ 7äÇz xÿx üù}
~| `ãïë —Õó: ÃTöt|6õÿ| ¤ =äaçýàÑG(R<9á88àåë ZÛì ý»Õ
Þ» 1§Á±w
ãä¸`¸Îð²V~ZÀz
æì Áo¦JåA?
K",²H
G`d_ÀÿÅp±
ýS³XË>|?û
n>£Ú´ùb@RGÁ{^¼*a×
ð 0ñ? } ±(R0 Ô8x d-lpÃm(8 N ÇÁQóô° ±rù¬ —í}âÿξÉ^? x
NÇ<
´c²-]û ç
3Á9¹2 ‾zæa×:èØû
ùìo±\öµSgÙ_¥
fÿWggâ‾c.
Åg²/ wÊÃe× 
_^NQöå&lí
û"eÂH@m û¤v
 ÀgÜ'µÛÀò
ÚIð ëÜïE6]
§ ùàtÌSÁ+
§ c Î K× tý¨
TÉ OÊy×<l[ûè CvÔül³ bö7«)ξf¥³‾
î¶L—à}¨Ùõ÷
Ô£®yжöâsN
©ó ì+ æ Kj°Ü
ú6û¿(;¶¶r
gy|È£àeð¤
¤Î+Þ' ¥à«X.û
üIÍw¼N,©í¶,\;
ps¼‾~±E¬ x?ÆïÅhp¿ëùÙਹW
n7t»àö$Á%£*Bmý^ ÜiNÁsEµjï
ÛsCpÒ|"\
g¿ âà#©ô$
çå¡rÒÒ÷ÚÆ
õõö¹ýÍB~®£ìÞW@³
0|à~Ûì ½} }Ųr
/Á§Ð5'VÀ
Hâ/4&û+Ë)âö
Ï‾^ Ò£p
ïHï ÍOé/BRÓà.BRÓàNËr Ú6‾ÕD£23.¨È\ çÊíL ù
ÍQp-LÇ, ²0lö¥ÞM1z 3ÇB^3ìÄ å
Yn"HóÝn ÇpÝáPm`;IM ÛHRÛB4³®¡Ú5 U mr¼ñ O><ÉwÐ
xòѽ¿£Ùå£xÚR÷ZÚ.{ÎIö }Ð G£çAÍý#°Íþ Ù_µ.¥ç
³ ±ÖLü0Ãé ÇOóR:Àe8T ÚnÅhj« 5
+©ÍN ¢WTûÐàê [0 Ua&%;;
;; OverkillSup.lsp
;;
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;; over-kill - delete overlaping and un-needed entities
;; Takes single list of arguments:
;; ss - selection set
;; fuz - for numeric comparisons
;; ignore - (optional) list of group codes specifying which common group
codes to ignore
;; when comparing entities.
;; no-plines - (optional) flag - T means do NOT optimize segments within pli
nes.
;; no-partial - (optional) flag - T means do NOT combine parallel segments th
at partially overlap
;; no-endtoend - (optional) flag - T means do NOT combine parallel segments th
at are end to end.
;;
(defun acet-overkill2 ( alst / lst ss fuz ignore no-plines no-partial no-EndtoEn
d
ss2 n na plst na2 vlst j k
)
; (acet-autoload '("pljoin.lsp" "(acet-pljoin ss st fuz)"))

;; extract the arguments from the arg list


(setq lst '(ss fuz ignore no-plines no-partial no-EndtoEnd))
(setq n 0)
(repeat (min (length alst) (length lst))
(set (nth n lst) (nth n alst))
(setq n (+ n 1));setq
);repeat
(setq lst nil)

(acet-sysvar-set
'("highlight" 0
"ucsicon" 0
"pickstyle" 0
"osmode" 0
)
)
(if (not no-plines)
(progn
;; Break plines down to individual objects and re-assemble what's left ove
r later
(setq plst (acet-plines-explode ss)
ss (car plst) ;; new selection set with plines
removed and new objects added
plst (cadr plst) ;; data used to re-build the pli
nes later
);setq
);progn then ok to optimize plines
);if
;; Delete the perfect matches first
(setq ss2 (acet-ss-remove-dups ss fuz ignore)
ss (car ss2)
ss2 (cadr ss2)
);setq
(if ss2
(progn
;(command "_.erase" ss2 "")
(princ (acet-str-format "\n%1 duplicate(s) deleted.\n" (itoa (sslength ss2
))))
);progn then
(setq ss2 (ssadd));setq else create an empty selection set
);if
(if (not (and no-partial ; don't do overlappers and don't do endtoend mea
ns exact
no-endtoend ; dups only so we're done if both of these are t
rue
)
);not
(progn
(setq vlst (acet-overkill-ss->primitives2 ss 0.0000001 ignore)
j 0
);setq then ok to combine at least some parallel segments
);progn then
);if
(acet-ui-progress-init "Optimizing objects" (length vlst))
(setq n 1)
(foreach lst vlst
(if (> (length lst) 2)
(progn
(if (= 0 (car (car lst)))
(setq k (acet-overkill-resolve-lines2 lst ss2 fuz no-partial no-endt
oend)); lines
(setq k (acet-overkill-resolve-arcs2 lst ss2 fuz no-partial no-endto
end)); arcs
);if
(setq ss2 (cadr k)
k (car k)
j (+ j k)
);setq
(princ " ")
(princ "\r")
(princ (acet-str-format "%1 object(s) deleted." (itoa j)))
);progn then more than one object in the list
);if
(acet-ui-progress-safe n)
(setq n (+ n 1));setq
);foreach list of potential over-lapers
(acet-ui-progress-done)
(setq na (entlast))
(if (and ss2
(> (sslength ss2) 0)
);and
(acet-ss-entdel ss2) ;then delete this stuff before pline re-build
);if
(if plst
(acet-plines-rebuild plst)
);if
(if (and ss2
(> (sslength ss2) 0)
);and
(progn
(acet-ss-entdel ss2) ;; bring it back and the
n use erase
(acet-safe-command T T (list "_.erase" ss2 "")) ;; so that can be oops'd
back
);progn then
(acet-ss-clear-prev)
);if
(acet-sysvar-restore)
(princ "\n")
ss2
);defun acet-overkill

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;; check the provided list potential over-lappers and resolve any that are found
.
;;
;;
;; Arrange each line so points are drawn left to right (or bottom to top for ver
tical)
;; Sort the list
;; Modify the first element to stretch past any overlapping objects and delete t
he overlappers.
;; If an element's lowest point is not less that the highest point so far then m
ake that element
;; the new stretcher element.
;;
(defun acet-overkill-resolve-lines2 ( lst ss2 fuz no-partial no-endtoend /
index m m2 n x na na2 p1 p2 p3 p4 mod j a b
e1
)
(setq a (car lst)
lst (cdr lst)
m (nth 1 a) ;; xy slope
m2 (nth 3 a) ;; yz slope
);setq
;; if the lines are not vertical then set index x else set it to y
(cond
(m (setq index 0)) ;; slope is defined in xy plane so use x coord
(m2 (setq index 1)) ;; slope is defined in yz plane so use y coord
(T (setq index 2)) ;; the lines is parallel to the z axis so use the z coor
d.
);cond close
;(print a)
;(print lst)
;(print index)
;(getstring "hey")
;; Get the lines in a left to right configuration
;; then sort the list of lines from left to right
;;
(setq lst (mapcar '(lambda ( x / a b )
(if (< (nth index (car x))
(nth index (cadr x))
)
(setq a (car x)
b (cadr x)
);setq then
(setq b (car x)
a (cadr x)
);setq else
);if
(list a b (caddr x))
)
lst
);mapcar
lst (vl-sort lst
'(lambda (a b)
(< (nth index (car a)) (nth index (car b)))
)
);vl-sort
x (car lst)
p1 (car x)
p2 (cadr x)
na (caddr x)
j 0
);setq
(setq n 1)
(repeat (- (length lst) 1)
(setq x (nth n lst)
p3 (car x)
p4 (cadr x)
na2 (caddr x)
);setq
(cond
((equal (nth index p3) (nth index p2) fuz)
(if (not no-endtoend)
(progn
(if (> (nth index p4) (nth index p2))
(setq p2 p4
mod T
);setq then partial overlap
);if
(setq ss2 (ssadd na2 ss2))
;(entdel na2)
(setq j (+ j 1))
);progn then ok to combine endtoend
);if
);cond #1 end to end
((< (nth index p3) (nth index p2))
(if (not no-partial)
(progn
(if (> (nth index p4) (nth index p2))
(setq p2 p4
mod T
);setq then partial overlap
);if
(setq ss2 (ssadd na2 ss2))
;(entdel na2)
(setq j (+ j 1))
);progn then ok to combine partially overlaping objects
);if
);cond #2 overlap-age
(T
(if mod
(progn
(setq e1 (entget na)
e1 (subst (cons 10 p1) (assoc 10 e1) e1)
e1 (subst (cons 11 p2) (assoc 11 e1) e1)
);setq
(entmod e1)
);progn then modify the first ent before moving on to the next non-overla
per
);if
(setq p1 p3
p2 p4
na na2
);setq
(setq mod nil)
);cond #3 no overlap
);cond close
(setq n (+ n 1))
);repeat
(if mod
(progn
(setq e1 (entget na)
e1 (subst (cons 10 p1) (assoc 10 e1) e1)
e1 (subst (cons 11 p2) (assoc 11 e1) e1)
);setq
(entmod e1)
);progn then modify
);if

;; Return the number of objects deleted and the update selection set
(list j ss2)
);defun acet-overkill-resolve-lines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;;check the potential over-lappers and resolve any that are found.
;;
;;Arrange each arc angles so that start angle is always less than end angle
;;Sort the list by start angle
;;Modify the first element to stretch past any overlapping objects and delete th
e overlappers.
;;If an element's lowest angle is not less than or equal to the highest point so
far then
;;make that element the new stretcher element.
;;
(defun acet-overkill-resolve-arcs2 ( lst ss2 fuz no-partial no-endtoend /
index slope n x na na2 a b a2 b2 mod j e1
)
(setq lst (cdr lst)
lst (mapcar '(lambda ( x / a b )
(setq a (acet-angle-format (nth 2 x))
b (acet-angle-format (nth 3 x))
)
(if (<= b a)
(setq b (+ b pi pi))
);if
(list (nth 0 x) (nth 1 x) a b (nth 4 x))
)
lst
);mapcar
lst (vl-sort lst
'(lambda (a b)
(< (nth 2 a) (nth 2 b))
)
);vl-sort
x (car lst)
a (nth 2 x) ;start angle
b (nth 3 x) ;end angle
na (nth 4 x)
j 0
);setq
(setq n 1)
(repeat (- (length lst) 1)
(setq x (nth n lst)
a2 (nth 2 x)
b2 (nth 3 x)
na2 (nth 4 x)
);setq
(cond
((equal a2 b 0.00000001)
(if (not no-endtoend)
(progn
(if (> b2 b)
(setq b b2
mod T
);setq then
);if
(setq ss2 (ssadd na2 ss2))
;(entdel na2)
(setq j (+ j 1))
);progn ok to combine end to end
);if
);cond #1 end to end
((< a2 b)
(if (not no-partial)
(progn
(if (> b2 b)
(setq b b2
mod T
);setq then
);if
(setq ss2 (ssadd na2 ss2))
;(entdel na2)
(setq j (+ j 1))
);progn then ok to combine partial overlap
);if
);cond #2 overlap
(T
(if mod
(progn
(setq e1 (entget na))
(if (acet-angle-equal a b 0.00000001)
(progn
(setq e1 (subst '(0 . "CIRCLE") (assoc 0 e1) e1)
e1 (vl-remove (assoc 50 e1) e1)
e1 (vl-remove (assoc 51 e1) e1)
);setq
(while (assoc 100 e1)
(setq e1 (vl-remove (assoc 100 e1) e1));setq
);while
(entmake e1)
(entdel na)
(setq na (entlast))
);progn then change it to a circle by entmaking a new circle and
deleting the arc
(progn
(setq e1 (subst (cons 50 a) (assoc 50 e1) e1)
e1 (subst (cons 51 b) (assoc 51 e1) e1)
);setq
(entmod e1)
);progn else just entmod the arc
);if
);progn then modify the first ent before moving on to the next non-ove
rlaper
);if
(setq a a2
b b2
na na2
);setq
(setq mod nil)
);cond #3 no overlap
);cond close
(setq n (+ n 1))
);repeat
(if mod
(progn
(setq e1 (entget na))
(if (acet-angle-equal a b 0.00000001)
(progn
(setq e1 (subst '(0 . "CIRCLE") (assoc 0 e1) e1)
e1 (vl-remove (assoc 50 e1) e1)
e1 (vl-remove (assoc 51 e1) e1)
);setq
(while (assoc 100 e1)
(setq e1 (vl-remove (assoc 100 e1) e1));setq
);while
(entmake e1)
(entdel na)
(setq na (entlast))
);progn then change it to a circle by entmaking a new circle and delet
ing the arc
(progn
(setq e1 (subst (cons 50 a) (assoc 50 e1) e1)
e1 (subst (cons 51 b) (assoc 51 e1) e1)
);setq
(entmod e1)
);progn else just entmod the arc
);if
);progn then modify the first ent before moving on to the next non-overlape
r
);if

;; Return the number of objects deleted and the update selection set
(list j ss2)
);defun acet-overkill-resolve-arcs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-overkill-line-data2 ( e1 fuz genprops / p1 p2 dx dy dz m b m2 b2 xv
th )
(setq p1 (cdr (assoc 10 e1))
p2 (cdr (assoc 11 e1))
dx (- (car p2) (car p1))
dy (- (cadr p2) (cadr p1))
dz (- (caddr p2) (caddr p1))
);setq
;; first get the slope and y intercept in the xy plane.
(if (and (/= dx 0.0)
(setq m (/ dy dx)) ;slope
(< (abs m) 1.0e+010)
);and
(progn
(setq b (- (cadr p1) ;y-intercept -> b=y-m*x
(* m (car p1))
)
);setq
);progn then
(setq m nil ;undefined slope
b (car p1) ;x-intercept
);setq else
);if
;; Now get the slope and z intercept in a different plane
(if (and m
(equal m 0.0 0.00000001)
);and
(progn
;; then use the xz plane because the slope is undefined in the yz
(if (and (/= dx 0.0)
(setq m2 (/ dz dx)) ;slope
(< (abs m2) 1.0e+010)
);and
(setq b2 (- (caddr p1) ;z-intercept -> b2=z-m2*x
(* m2 (car p1))
)
);setq then
(setq m2 nil ;undefined slope
b2 (car p1) ;z-intercept
);setq else
);if
);progn then use xz plane
(progn
;; else use yz plane
(if (and (/= dy 0.0)
(setq m2 (/ dz dy)) ;slope
(< (abs m2) 1.0e+010)
);and
(setq b2 (- (caddr p1) ;z-intercept -> b2=z-m2*y
(* m2 (cadr p1))
)
);setq then
(setq m2 nil ;undefined slope
b2 (cadr p1) ;z-intercept
);setq else
);if
);progn else use yz plane
);if
(if m
(setq m (acet-calc-round m 0.00000001)) ;; xy plane slope
);if
(if m2
(setq m2 (acet-calc-round m2 0.00000001)) ;; yz slope
);if
(setq b (acet-calc-round b fuz) ;; y intercept
b2 (acet-calc-round b2 fuz) ;; z intercept
);setq
(if (setq th (cdr (assoc 39 e1)))
(setq xv (cdr (assoc 210 e1))
xv (mapcar '(lambda (x) (acet-calc-round x 0.00000001)) xv)
);setq then it has thickness so we need to bring the extrusion vector along
for the ride
);if
(if xv
(list 0 m b m2 b2
xv
(acet-overkill-gen-prop-get2 e1 genprops) ;; general data
);list
(list 0 m b m2 b2
(acet-overkill-gen-prop-get2 e1 genprops) ;; general data
);list
);if
);defun acet-overkill-line-data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes an elist and a list of group codes and returns a list of dotted pairs for
that entity.
;
(defun acet-overkill-gen-prop-get2 ( e1 genprops / a lst )
(foreach gcode genprops
(if (not (setq a (assoc gcode e1)))
(setq a (list gcode))
);if
(setq lst (cons a lst))
);foreach
lst
);defun acet-overkill-gen-prop-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;similar to ai_utils version except more precision is allowed for small floating
point numbers
(defun acet-rtos2 (val / a b units old_dimzin)
(setq units (getvar "lunits"))
;; No fiddling if units are Architectural or Fractional
(if (or (= units 4) (= units 5))
(rtos val)
;; Otherwise work off trailing zeros
(progn
(setq old_dimzin (getvar "dimzin"))
;; Turn off bit 8
(setvar "dimzin" (logand old_dimzin (~ 8)))
(setq a (rtos val))
;; Turn on bit 8
(setvar "dimzin" (logior old_dimzin 8))
(setq b (rtos val units 15))
;; Restore dimzin
(setvar "dimzin" old_dimzin)
;; Fuzz factor used in equality check.
(if (equal (distof a) (distof b) 0.00000000000001) a b)
)
)
);defun acet-rtos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;; Build a master list is a list of sub-lists that contain data about potential
overlapping objects.
;; For example: a line sublist will contain a general data sublist as the first
element (for assoc
;; purposes) and real-data sublists for individual lines that match that general
data will follow.
;; Each element in this sublist is a potential overlapper with other elements in
the same sublist.
;;
;; Takes:
;; ss- a selection set
;; fuz- a fuz value used for rounding reals
;; props - list that contains groups codes for additional properties to include
in the
;; general data sublists. This gives control over whether objects with d
iffering
;; layers should or should not be removed. Or color or linetype ...etc.
;;
(defun acet-overkill-ss->primitives2 ( ss fuz ignore /
flt lst gcode genprops n na e1 tp a b gen
c d xv
vlst tmp alst lst2 lst3 j len k
)
(acet-ss-clear-prev)
(command "_.select" ss)
(while (wcmatch (getvar "cmdnames") "*SELECT*") (command ""))
(setq flt '((-4 . "<OR")
(0 . "LINE") (0 . "ARC") (0 . "CIRCLE") (0 . "LWPOLYLINE")
(-4 . "<AND")
(0 . "POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 88) (-4 . "NOT>") ;8 16 64 not 3dpo
ly mesh or pface mesh
(-4 . "AND>")
(-4 . "OR>")
)
ss (ssget "_p" flt)
);setq
(if (not ss)
(setq ss (ssadd))
);if

;; build a general props list of group codes the does not include any gcs from
the ignore list
;; layer 8
;; linetype 6
;; thickness 39
;; color 62
;; lweight 370
;; plotstyle 390
(setq lst '(8 6 39 62 370 390));setq ;; general properties
(foreach gcode lst
(if (not (member gcode ignore))
(setq genprops (cons gcode genprops))
);if
);foreach
(setq lst nil)
(setq len (sslength ss)
k (/ len 5)
j 1
)
(acet-ui-progress-init "Gathering line, arc and circle data " len)
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
lst nil
);setq
(cond
((and (setq e1 (entget na)
tp (cdr (assoc 0 e1))
);setq
(= tp "LINE")
);and
(setq a (cdr (assoc 10 e1))
b (cdr (assoc 11 e1))
lst (list a b na)
gen (acet-overkill-line-data2 e1 fuz genprops)
);setq
);cond #1
((or (= tp "ARC")
(= tp "CIRCLE")
);or
(setq a (cdr (assoc 50 e1))
b (cdr (assoc 51 e1))
c (cdr (assoc 10 e1)) ;; center
d (cdr (assoc 40 e1)) ;; radius
c (list (acet-calc-round (car c) fuz)
(acet-calc-round (cadr c) fuz)
(acet-calc-round (caddr c) fuz)
);list
d (acet-calc-round d fuz)
xv (cdr (assoc 210 e1))
xv (list (acet-calc-round (car xv) 0.00000001)
(acet-calc-round (cadr xv) 0.00000001)
(acet-calc-round (caddr xv) 0.00000001)
);list
gen (list 1 ;; arc type
c ;; center
d ;; radius
xv ;; extrusion vec
tor (slightly rounded)
(acet-overkill-gen-prop-get2 e1 genprops) ;; general props
);list
);setq
(if (not a)
(setq a 0.0
b (+ pi pi)
);setq then circle
);if
(setq lst (list (cdr (assoc 10 e1)) ;; real center
(cdr (assoc 40 e1)) ;; real radius
a ;; start angle
b ;; end angle
na
);list
);setq
);cond #2
);cond close
(if (= j k)
(progn
(acet-ui-progress-safe (fix (* 0.5 n)))
(setq j 1)
);progn then
(setq j (+ j 1))
);if
(if lst
(setq vlst (cons (list gen lst);list
vlst
);cons
);setq then
);if
(setq n (+ n 1));setq
);repeat
(setq j (/ len 2));setq
(acet-ui-progress-safe j)
;;The approach:
;; -split in two: lines and arcs
;; for lines:
;; -sort by y-intercept
;; for arcs:
;; - sort by radius
;; -lines...
;; - Use a while loop to group the lines with identical y-intercept
;; - Then foreach group use acet-list-group-by-assoc to split into
;; truly unique groups.
;; Assemble the main list along the way using cons for length of 1
;; and append for greater length.
;; - arcs...
;; Handle arcs in same as lines but use radius instead of y-int.
;;

(setq vlst (vl-sort vlst


'(lambda ( a b )
(> (car (car a)) (car (car b))) ;0 or 1 (line or arc res
pectively)
)
)
);setq
(while (and (setq a (car vlst))
(= (car (car a)) 1)
);and
(setq alst (cons a alst)
vlst (cdr vlst)
);setq
);while

(setq j (+ j (fix (* 0.05 len))))


(acet-ui-progress-safe j)
(setq vlst (vl-sort vlst ;; sort the line list
'(lambda ( a b )
(setq a (car a)
b (car b)
)
(< (nth 2 a) (nth 2 b)) ;0 slope y-int
)
)
);setq
(setq j (+ j (fix (* 0.2 len))))
(acet-ui-progress-safe j)
(setq alst (vl-sort alst ;; sort the arc list
'(lambda ( a b )
(setq a (car a)
b (car b)
)
(< (nth 2 a) (nth 2 b)) ;1 center radius
)
)
);setq
(setq j (+ j (fix (* 0.1 len))))
(acet-ui-progress-safe j)
(while (setq lst (car vlst)) ;; group by items that have save
y-int
(setq vlst (cdr vlst)
a (nth 2 (car lst)) ;y-int
lst2 (list lst)
);setq
(while (and (setq b (car vlst))
(equal a
(nth 2 (car b))
);equal
);and
(setq vlst (cdr vlst)
lst2 (cons b lst2)
);setq
);while
(setq lst3 (cons lst2 lst3));setq
);while

(setq j (+ j (fix (* 0.05 len))))


(acet-ui-progress-safe j)
(setq vlst nil
lst2 nil
);setq
(foreach lst lst3 ;; for each group of equal y-int
, group by identical car
(setq lst2 (acet-list-group-by-assoc lst))
(if (equal 1 (length lst2))
(setq vlst (cons (car lst2) vlst))
(setq vlst (append lst2 vlst))
);if
);foreach
(setq lst3 nil)
(while (setq lst (car alst))
(setq alst (cdr alst)
a (nth 2 (car lst)) ;radius
lst2 (list lst)
);setq
(while (and (setq b (car alst))
(equal a
(nth 2 (car b))
);equal
);and
(setq alst (cdr alst)
lst2 (cons b lst2)
);setq
);while
(setq lst3 (cons lst2 lst3));setq
);while
(setq j (+ j (fix (* 0.05 len))))
(acet-ui-progress-safe j)
(setq alst nil
lst2 nil
);setq
(foreach lst lst3
(setq lst2 (acet-list-group-by-assoc lst))
(if (equal 1 (length lst2))
(setq alst (cons (car lst2) alst))
(setq alst (append lst2 alst))
);if
);foreach
(acet-ui-progress-done)
(append vlst alst)
);defun acet-overkill-ss->primitives

(princ)
® \ Çs FÖ8ÑY3Ò& ìý
<åÀ‾àaF,¹×Ý+
ÒYì;_?XÙÏ‾}ªmÿ aØàÞ{;
¾ç îù0—ødp7
N û{Ø1
¼MÁn`?ö¾éozä 6¬à .½u¼kJÞ~²Pt{¥UÒÎ 1 ‾µT.‾U«Û]kÓ[úØqm^0p yv^p ¶ï&±SÏ
ý[ð
üxÐHø§N9ÏÁhÁß
ï{h ÿvö ¶±½uýîê n¢}òIãÄ` ZÕl5(ìÃî
°ÃÎÇÞ)ª
RÓùjþz]Í ?Ø©? ø{;üjÆko®j=ÆëAí-xmÞÄ U «ÇäøäZa;$§ª !v
Ùc#aLFtR\
+î*+.*) ÆJ §^c ®³èÉÌf\$( á ÍÕäÄ & -). Éð}ê¬ ¢ÎÑ×ÿ´3 ò+!T ß? ‾øSýC첧ßL ÉÃZÝ ¢ Ûu7 /|RߨZ
95O7týÜ k ñÑ7®Å  _2FÔ7A1º(x`þ ñ ÷7?ón¿×ø¸îÉxGY ]ÉWÔ?^Ѫ-ãòÎú>73!öðO £E <à ûúZeÒE—F3i
ÑÚê
±S2ÄNÉ
(;3
<‾°°0333+äÀ
ø]kkkÎÓ#
SÈ!¿¥âìB
;% ì ¿há
v.
K&½ìA
Ud¤¢ÌNõQGñ¬V+tö²Ûl6ðAð)³Él6
‾?wÇ-ærïr
ØÉCìAv!Zx
,|xËå
'OØ)
øà67'—ðN!
ùÒÒÒ
b§daMµ :hÂ*a]m
!vJ
±³©c
Ø)
LF£b¢I¥]]]
§d
8 D"Ä!vJ
¬®®.//¿Ç»
ÿ?)
 ÀØ)
Ѩ7Ø0
b§d
ºº:Q£¨UÒ*i
ø!z=
!vJ
³/9Cc1Y©)©Å
@Ø)yÇ
bèy
§d}|\:ÿ
=ÿr
âÖn³
âû—þ.´?8ÄNÉ
sÍfs8
xF|2+
à û÷ïK$
_ÁT ¦¦&Ä
{>Zx@Ø)

½
rþ(
»4î
N1+1Ⱦ´ò
 Ýáp
|67«ÅÑ]®%ï
³×‾_
F\Å»v¼pW
y»
öÜðkg4
í¥u: À×v
edäÅÔô igµ3
a ά~î
Á°i4zÛ2
 Fc Ù_ol¶¶6—6_‾
]Öé µzmuÀ/{—
_iuóCC ï n»opÃkµÚééi#ñ 2=5{¦Ö ì ëË0ç Ïz©þÁÁØíØÿÙ/Óæ
¶ >:ÝúãèüÕkâÓém,v
ÿÿ? ̍J%wÆN 1ÁqbÔÎÏï®®î®‾k7ßJ
±‾6»ö}gGÉ|¿§ÕL<1Ô\ëÍS
È W‾¿¼}GxÕ¾°
 Ëäà ¾ÿð
Jü¿}ûöÍ 7~í—Å
&m¤e³YX^áØë3
I£/ùru \ÂÍñ2£ãó׿%O>V¢Ñêùyõì¬ryYùü¹ ÎÏ‾@û»ÿ& u´ÿÁAõîõö ó 'Çï ? |`
ðý µ—ë5L³Õª7 "A\GCíÇïÏ ûOì÷?ò''9̧O@ Ì ÑW‾®Ö´Ãqõù
CyÿîåÝ»wÐÒáWD#Q /° ¹ ídò¥2¦TÌé ëhÔ[ ^HV´£Î û
tÛO§ Nÿ:=[áâôôìã
$|d¡ý*z ßvzz ÿº
ë&Ô9h?>>>ùprvz
ká`Tx «*´Ð aí
»è<x/; 
Ö Le0éT2EÄa=@+Ê
ØÀÚQ£ðú ì[@5ØÈår q¡màáßed06?ð Ø<p¾
æ>¹%°
d|
ÖN
g`]
lÙoBí
/¬ó°?
8Â@‾obÞ
Ö~E{äHh,ÀÉû
ÃÚ#/;ØÂÆÚÁ
ÒÀ»¡öE
î ´Úãóù<8
_IÜÿc¨vÜ|¶
Å P{ÄÓ ŽTh2Ð4Ö5þò`íÛ;ØK.E¼-I> f; 0û
³ß`íé0ûM¨ý
:NÞ
Ö ³ßozÚ¬3ÉØ×
½f¿ÁÚ ÁÚ3aö
aö p'sPûA
`íµgÃì7¡ö
0ûM¨ý $Ô~µ$`í¹0û ¡ö kÿf¿ÁÚ£aö¬ý*Ì~ µ ûúåßė A µÇb_1ÉD HÆ d HÜ$7 Ä
¾¹  y ÙÖ Î¤1$ËÉ © ¤Æ5Û,ÙâhQæe V¸Ë´ê
ßnÔéBº #ç©T2_ IFU TøO y nT3¥\äÇc!Á`í)" ©u(ZR N « * b±RªÞÞµ MU¢8¦Y½+W ¹J:UÎçJ¥bµV‾—:ª"wMC D
Cæ, —%ú®
ñ|!w[»mC[çy]
Íñl: N'SÉx
l  b:-ºÓl×ok¨Ú Ôò:âkÏÍC3 "ël½J öÒnJ¼.Ð,YkÜréX }0 JÔ
o v&µÆ‾»Æøf¬=M$0ùl¦ ÏAYçÓÉl& ËfË \¹ -æÓ¹, &â@jN6 Îç2ðnî½ëA`íÅ|f.dK
¬½oÉOÇ~
F ËÅÜ
0}äáüÁ)¬RØ3ùM¤1X;Ói<
":Á/bË
ñ Ñ3%Û ¹ ¶È—%(rïx¿
]ãl¶¸r‾«,a‾#?+Ý
^ ̦ܵaO§î kÚ ¬ÆÏÆÄã } ;òc ûÚÐ u =Yè("©«¬eðý 2êÎÄr&ö½3g² õÏ0
Sçù ¦± 6 Ëwì ø¦À aíªÿ± ÿ ¹ö /|w6^æû&ÆK,Ë á-wh-¥§ H)|Gß8ðÏ#$ 4
¾×WÐ{ß}ÀÁÌ ë,äò üÇøÚwÓ; tùþ(ëÚç v§ot5A( ë(l[ HQô HAì°\CÚ²BÛ]yE»ë¬c?°Mû#ñ¼Ú7 |܍ããqíëx—ÀÈY
| 2 ;;; ;
;;; PIPE.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains a demonstration of a path based on a ;
;;; polyline. ;
;;; ;
;;; Creates a path - polyline and a base curve - circle. ;
;;; ;
;;; The 3d figure will be created as an extrusion of the circle ;
;;; along the polyline (they are colored red). When you change the ;
;;; path or the circle the 3d figure will be updated. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: GET-VECTOR-ALONG ;
;;; ;
;;; Description: This function performs a subtraction of the ;
;;; startPoint and EndPoint of a vla line object. ;
;;; ;
;;; Arguments: ;
;;; line = a valid vla line object. ;
;;; ;
;;; Returned Value: A vector list. ;
;;; ;
;;; Usage: ;
;;; (get-vector-along vla-line-Object ) ;
;;;--------------------------------------------------------------------;
(defun get-vector-along (line / from to)
(setq from (vla-get-startPoint line)
to (vla-get-EndPoint line)
)
(mapcar '- to from)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-PIPE ;
;;; ;
;;; Description: This function extrudes a circle in the direction ;
;;; of a path line. Note: Line and circle can not be ;
;;; coplanar. ;
;;; ;
;;; Required Functions: ;
;;; get-model-space ;
;;; ;
;;; Arguments: ;
;;; line = a valid vla line object. ;
;;; circle = a valid vla circle object. ;
;;; ;
;;; Returned Value: A list of a vla 3d Solid Object. Such as: ;
;;; (#<VLA-OBJECT IAcad3DSolid 02d23f2c>) ;
;;; ;
;;; Usage: ;
;;; (make-pipe vla-line-Object vla-circle-object) ;
;;;--------------------------------------------------------------------;
(defun make-pipe
(line circle / mSpace region-list normal-vector exrude-list)
(vla-move circle
(vlax-3d-point (vlax-curve-getstartPoint circle))
(vlax-3d-point (vlax-curve-getstartPoint line))
)
(setvar "ISOLINES" 25)
(setq circleAa (vlax-make-safearray vlax-vbObject '(0 . 0)))
(vlax-safearray-put-element circleAa 0 circle)
(setq circleA (vlax-make-variant circleAa (logior vlax-vbarray vlax-vbObject)))

(setq mSpace (get-model-space))


(setq region-list (vlax-safearray->list
(vlax-variant-value
(vla-AddRegion mSpace circleA)
)
)
)
(setq exrude-list (mapcar
(function
(lambda (region)
(vla-AddExtrudedSolidAlongPath mSpace region line)
)
)
region-list
)
)
(foreach region region-list
(if (not (vlax-erased-p region))
(vla-Erase region)
)
)
exrude-list
)
;;;--------------------------------------------------------------------;
;;; Function: PROPERTY-CHANGED-P ;
;;; ;
;;; Description: This function serves as a predicate. Testing for ;
;;; the integrity of the data retreived from the ;
;;; object to be the same as the supplied property. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a valid vla object. ;
;;; property = a property list to compare. ;
;;; ;
;;; Returned Value: T if the property has changed. Nil otherwise. ;
;;; ;
;;; Usage: ;
;;; (property-changed-p vla-line-Object prop-List) ;
;;;--------------------------------------------------------------------;
(defun property-changed-p (vla-obj property)
(and (eq 'VLA-OBJECT (type vla-obj))
(vlax-read-enabled-p vla-obj)
(vlax-property-available-p vla-obj property)
(not (equal (vlax-get vla-obj property)
(vlax-ldata-get vla-obj property)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-PIPE-CIRCLE ;
;;; ;
;;; Description: This function will be called inside a ;
;;; :vlr-modified event. ;
;;; ;
;;; Required Functions: ;
;;; reactor-pipe-line ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (reactor-pipe-circle notifier reactor arg-list) ;
;;;--------------------------------------------------------------------;
(defun reactor-pipe-circle (notifier reactor arg-list)
(reactor-pipe-line
(vlax-ldata-get notifier "line")
reactor
arg-list
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-PIPE-LINE ;
;;; ;
;;; Description: This function will be called inside a ;
;;; :vlr-modified event and is invoked by ;
;;; reactor-pipe-circle reactor call back. Its ;
;;; purpose is to modify the reactor which ;
;;; was invoked. ;
;;; ;
;;; Required Functions: ;
;;; property-changed-p ;
;;; change-pipe-list ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (reactor-pipe-line notifier reactor arg-list) ;
;;;--------------------------------------------------------------------;
(defun reactor-pipe-line (notifier reactor arg-list)
(if (or t
(property-changed-p notifier "StartPoint")
(property-changed-p notifier "EndPoint")
)
;; (change-pipe notifier)
;|{|;
(progn
(if (null *editor-pipe-updating-reactor*)
(setq *editor-pipe-updating-reactor* (VLR-Editor-reactor))
)
(if (not (VLR-added-p *editor-pipe-updating-reactor*))
(vlr-add *editor-pipe-updating-reactor*)
)
(VLR-Data-Set
*editor-pipe-updating-reactor*
(cons notifier (VLR-Data *editor-pipe-updating-reactor*))
)
(vlr-reaction-set
*editor-pipe-updating-reactor*
:vlr-commandEnded
(function change-pipe-list)
)
)
;|}|;
)
)
;;;--------------------------------------------------------------------;
;;; Function: CHANGE-PIPE-LIST ;
;;; ;
;;; Description: This function will be called inside a ;
;;; :vlr-modified event and is invoked by ;
;;; reactor-pipe-circle reactor call back. Its ;
;;; purpose is to modify the reactor which ;
;;; was invoked. ;
;;; ;
;;; Required Functions: ;
;;; change-pipe ;
;;; ;
;;; Arguments: ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (change-pipe-list reactor arg-list) ;
;;;--------------------------------------------------------------------;
(defun change-pipe-list (reactor arg-list)
(foreach pipe (VLR-Data reactor)
(change-pipe pipe)
)
(VLR-Data-Set reactor nil)
)
;;;--------------------------------------------------------------------;
;;; Function: CHANGE-PIPE ;
;;; ;
;;; Description: This function will modify the pipe created ;
;;; from the path line. ;
;;; ;
;;; Required Functions: ;
;;; make-pipe ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a valid vla object. ;
;;; ;
;;; Returned Value: A valid vla object. ;
;;; ;
;;; Usage: ;
;;; (change-pipe vla-obj) ;
;;;--------------------------------------------------------------------;
(defun change-pipe (vla-obj)
(if (and vla-obj (not (vlax-erased-p vla-obj)))
(progn
(foreach extrudion (vlax-ldata-get vla-obj "extrude-list")
(if (not (vlax-erased-p extrudion))
(vla-Erase extrudion)
)
)
(if (not (vlax-erased-p vla-obj))
(vlax-ldata-put
vla-obj
"extrude-list"
(make-pipe vla-obj (vlax-ldata-get vla-obj "circle"))
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-PIPE-REACTOR ;
;;; ;
;;; Description: This function will modify the pipe created ;
;;; from the path line. ;
;;; ;
;;; Required Functions: ;
;;; change-pipe ;
;;; reactor-pipe-line ;
;;; reactor-pipe-circle ;
;;; ;
;;; Arguments: ;
;;; line = a valid vla line object. ;
;;; circle = a valid vla circle object. ;
;;; ;
;;; Returned Value: A valid vlr object reactor ;
;;; ;
;;; Usage: ;
;;; (make-pipe-reactor ;
;;; vla-line-object vla-circle-Object) ;
;;;--------------------------------------------------------------------;
(defun make-pipe-reactor (line circle)
(vlax-ldata-put line "circle" circle)
(vlax-ldata-put circle "line" line)
(change-pipe line)
(list
(VLR-Object-reactor
(list line)
nil
(list (cons :vlr-modified (function reactor-pipe-line)))
)
(VLR-Object-reactor
(list circle)
nil
(list (cons :vlr-modified (function reactor-pipe-circle)))
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-PIPE-BASE ;
;;; ;
;;; Description: This function is responsible for building an ;
;;; ActiveX circle object for the pipe base. ;
;;; ;
;;; Note: It's possible use (entsel). ;
;;; ;
;;; Required Functions: ;
;;; get-model-space ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid vla circle object. ;
;;; ;
;;; Usage: ;
;;; (get-pipe-base) ;
;;;--------------------------------------------------------------------;
(defun get-pipe-base (/ obj)
(setq obj (VLA-addCIRCLE
(get-model-space)
(vlax-3d-point '(5.0 5.0 0.0))
5
)
)
(vla-put-Normal obj (vlax-3d-point '(0.0 0.0 1.0)))
(vla-put-Color obj acred)
obj
)
;;;--------------------------------------------------------------------;
;;; Function: GET-PIPE-EXTRUDE ;
;;; ;
;;; Description: This function is responsible for building an ;
;;; ActiveX object for the pipe extrusion. ;
;;; ;
;;; Note: It's possible use (entsel). ;
;;; ;
;;; Required Functions: ;
;;; get-model-space ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid vla polyline object. ;
;;; ;
;;; Usage: ;
;;; (get-pipe-extrude) ;
;;;--------------------------------------------------------------------;
(defun get-pipe-extrude (/ obj Points ptlstlen PointDataA PointData)
(setq Points (mapcar 'float '(0 0 0 0 10 0 -7 23 0 -10 30 0)))
(setq ptlstlen (length Points))
(setq PointDataA (vlax-make-safearray vlax-vbDouble (cons 0 (1- ptlstlen))))
(vlax-safearray-fill PointDataA Points)
(setq PointData (vlax-make-variant PointDataA (logior vlax-vbarray vlax-vbDouble
)))
(setq obj (vla-Addpolyline
(get-model-space)
;; all points need to be reals
PointData
)
)
;;; all normals need to be reals
(vla-put-Normal obj (vlax-3d-point '(0.0 1.0 0.0)))
(vla-put-Color obj acred)
obj
)

;;;--------------------------------------------------------------------;
;;; Function: C:PIPE-TST ;
;;; ;
;;; Description: This function aids in the creation of a circle ;
;;; object and a path which will create a "smart" ;
;;; pipe able to be modified. ;
;;; ;
;;; Required Functions: ;
;;; get-pipe-extrude ;
;;; get-pipe-base ;
;;; make-pipe-reactor ;
;;; ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid vla object reactor. ;
;;; ;
;;; Usage: (C:PIPE-TST) or PIPE-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:PIPE-TST (/ line circle)
(setq line (get-pipe-extrude))
(setq circle (get-pipe-base))
(if (and line circle)
(make-pipe-reactor line circle)
)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: C:PIPE-INFO ;
;;; ;
;;; Description: This function displays a help file in the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:COPYSELF-INFO) or COPYSELF-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:PIPE-INFO ()
(textscr)
(princ "\nThis file contains a demonstration of a path based on a polyline."
)
(princ "\nCreates a path - polyline and a base curve - circle. ")
(princ "\n")
(princ "\nThe 3d figure will be created as an extrusion of the circle ")
(princ "\nalong the polyline (they are colored red). When you change the ")
(princ "\npath or the circle the 3d figure will be updated.")
(princ)
)
;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "PIPE-TST" "PIPE-INFO")
*REACT-TEST-COMMANDS-INFO*
)
)
 WdExE 6\H` ì á¼É [3Ò=» ¹°OòZH2 À%s+ ËæKV]Qt¡ Öþ<ºOb öu ?' vkBÚÍØÛ¦¨Ý @ 6ºþUñ ´ 9o¢¼qPòÄ
öNÁÉY 9£ÚMQ»
Ò¨Ù5zDí&$\m.¹hn!
jû *þCÎ ,{J
ÇÁx[ û¬'θv
h öÌTûei îÒcës¦ Á&ù OÝñÏÕ® ¡Ó¬ 6º í s'ï Ò m2R=hSó(bNkP¢9\ÈM¢¹
í¼#F[#´Ù Õè³¢6n &!s# ç´Ð ¹¥(Ú Z àºàTûåió´±8ù4¢ ]ê—næçgh 7"ç}ÚÐörÞmû&m RfãfõvæUvR k¤ Ògn.
©Y=OÍ$ðôì« ¸OÆ àI¡á$jw²¨g8K}åsïùÛ>¤[ñË>íz
RiWB  ]RhÜñ¼k7çÜ¢ì Y[4c §Í ËÍ¢þfvõfFW #pÙ|ZÏÊ S0á ÿüTûåigÜ*ð_ }ä³ Ú_ v kÁ2 [ß ö Z:‾ ¡~mÖ
äȱÚû®Ô
4_,µ Pû¡Âs3¹ëHìØaFâ}Ë
i èÒáe y 0Úg¶½¦0W¥òꪴº
òl\ûØuþÈ =àÓæð\Q>ļ
+r v×
Ô¡Pëüu RZ) Z PÏeÕUÔýæBϨÕ-t]J\_ 6×GÜ
(ï‾ZoÄ jWÏ<LâÝ> BX;Ïj»3îôÒf$}k¼7©í¦TvJ µ¥Ô
ÍYíoÃg «[L`Þ _j/µG ÷Æhü\_µ~? ϦµOCÄ)«]<öCùC/Äi;SÌ lm£ÉFÏí Â-CF»®ó×tnRí 2rUL²ÚcæU¼6 ³4 ªÚ
÷ãlí#?Äjï»3ûîáh#í
Çû—t
öä«Ðþ0Ó ß§Aï
i!VûÀñµá`£+²k
]»C{ß
u£;ÒÛ÷fv]é]t°
uÌÐí«i=¤ÆA*¥
nè õu}U
ûfÏ
Ú^F[VY
ï¶Za´áA
\ WXm
8m&)
n7²Ú^
gO8ß
ã¦Ì
´°>ÞB
nÔs©½pÚ_
ªºÖ{©½ <ÑÍ õý NÓ
ÚtgÔ|Þiía7Çiï:
ö5Ò.ñ´£è
; Ķ}«Ú
ÎixZ;wàÍìÁ
®9Ú6 Ä`C3
Úq
=HÜe £¬T ²òª¨ü
ãk^]S6×DNá ¥öRûNù ý8轡 íÚ´öQÂÚ¹ií®5Þ±ÄÚæhËn Ú_ÕÁkFÛÚE )-ѧEÊ @ 4  ÆÌe8 9«]_9¾í; ùÚè`3Wä
íêº
? Ûód÷<é
Òy ÐVcmsFjLI
º"û D Ón "M¸"
["ýÖ+]ò¥&ýØ¥ÅñpÆüns
C¨®
hLûx®6Ì
ìKíÅÓ
  <Hâ
óë|FÛ
P»+jgIa/(,Y©9-5&Å£
àbãþ2è
m " KSõó b}R¤K½ yvIùùÐ\J0ñ^ @Íh‾ ì §¬ý@gÜO Þw4Õ> 7çhü Ò Þõ¤—]©m'ì.h[6`´A»n
3£ —_Eã)«]E¥³¨´åä;;;
;;; PLJOINSUP.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
(if (not #acet-pljoin-prec)
(setq #acet-pljoin-prec 0.0000001)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin2 ( ss st fuzz / flt )
(setq flt '((-4 . "<OR")
(0 . "LINE")
(0 . "ARC")
(-4 . "<AND")
(0 . "*POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 89) (-4 . "NOT>") ;1 8 16 64
(-4 . "AND>")
(-4 . "OR>")
)
);setq
(if (and (setq ss (acet-pljoin-do-ss-pre-work2 ss flt)) ;convert lines/arcs/heav
y plines ..etc.
;to lighweight plines
(setq ss (acet-pljoin-1st-pass2 ss flt)) ;initial pass with pedit
command
);and
(acet-pljoin-2nd-pass2 ss fuzz st flt) ;where the work is..
);if
);defun acet-pljoin

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Try to join as many as possible before performing the
;hashing.
;
(defun acet-pljoin-1st-pass2 ( ss flt / na )
(acet-spinner)
(setq na (entlast))
(command "_.pedit" (ssname ss 0) "_j" ss "" "_x")
(command "_.select" ss)
(if (not (equal na (entlast)))
(command (entlast) "")
(command "")
);if
(setq ss (acet-ss-ssget-filter ss flt));setq
(if (and ss
(<= (sslength ss) 1)
);and
(setq ss nil)
);if
(setq ss (acet-pljoin-ss-flt2 ss flt))
ss
);defun acet-pljoin-1st-pass

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-2nd-pass2 ( ss fuzz st flt / g lst lst3 len x lst2 lst4 n a
tmpe1 tmpe2 tmpna tmpna2 flst
)
;;(print "acet-pljoin-2nd-pass")
;;(print "")
;;create a couple of temporary entities for intersection checking
(setq tmpe1 (list
'(0 . "LWPOLYLINE") '(100 . "AcDbEntity")
'(60 . 1)
'(62 . 1)
'(100 . "AcDbPolyline")
'(90 . 2) '(70 . 0) '(43 . 0.0) '(38 . 0.0) '(39 . 0.0)
'(10 0.0 0.0) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(10 1.0 1.0)
'(40 . 0.0) '(41 . 0.0) '(42 . 0.0)
(cons 210 (acet-geom-cross-product (getvar "ucsxdir") (getvar "uc
sydir"))) ;;(210 0.0 0.0 1.0)
)
tmpe2 tmpe1
);setq
(entmake tmpe1)
(setq tmpna (entlast)
tmpe1 (entget tmpna)
);setq
(entmake tmpe2)
(setq tmpna2 (entlast)
tmpe2 (entget tmpna2)
);setq
(if (equal fuzz 0.0)
(setq fuzz #acet-pljoin-prec)
);if
;Pljoin checks distances between neighboring points of differing objects
;to find the closest candidates for joining. The performance problem is
;largely one of minimizing the number of distance calculations that occur.
;Here's the approach... Points are placed into a grid where each point
;is checked against other points that fall within neighboring grid points.
;This operation is similar to drawing in AutoCAD with snap turned on.
;Picked points snap to the nearest grid point.
;
;
(setq g (* 2.01 fuzz) ;grid size
lst (acet-pljoin-round2 ss g) ;round points to the grid
;lst - sub-lists (roundedpoint originalpoin
t 0/1 ename)
len (length lst)
x (/ len 8)
);setq
(if (< len 2000) ;for performance reasons if the list is greater than 2000
;point the split the operation into 8 separate chunks
;so they can be processed independantly.
(setq len 0
lst4 lst
lst nil
);setq
);if

(setq n 0)
(repeat len
(setq a (nth n lst)
lst2 (cons a lst2)
);setq
(if (equal n (* x (/ n x)))
(progn
(setq lst2 (acet-pljoin-get-matched-pairs2 lst2 ;list of point data lists
lst3 ;entname map
fuzz ;fuzz distance
g ;grid size
st ;mode
tmpe1 ;temp ent
tmpe2 ;temp ent2
flst ;pairs that failed a join
attempt
)
lst3 (cadr lst2)
flst (caddr lst2)
lst2 (car lst2)
);setq
(if lst2
(setq lst4 (append lst4 lst2)
lst2 nil
);setq
);if
);progn then
);if
(setq n (+ n 1))
);repeat
(if lst2
(setq lst2 (acet-pljoin-get-matched-pairs2 lst2 ;list of point data lists
lst3 ;entname map
fuzz ;fuzz distance
g ;grid size
st ;mode
tmpe1 ;temp ent
tmpe2 ;temp ent2
flst ;pairs that failed a join at
tempt
)
lst3 (cadr lst2)
flst (caddr lst2)
lst2 (car lst2)
);setq
);if
(if lst2
(setq lst4 (append lst4 lst2));setq
);if
(setq lst nil
lst2 nil
);setq
(while lst4
(setq lst4 (acet-pljoin-get-matched-pairs2 lst4 ;list of point data lists
lst3 ;entname map
fuzz ;fuzz distance
g ;grid size
st ;mode
tmpe1 ;temp ent
tmpe2 ;temp ent2
flst ;pairs that failed a join atte
mpt
)
lst3 (cadr lst4)
flst (caddr lst4)
lst4 (car lst4)
);setq
);while
(entdel tmpna)
(entdel tmpna2)

);defun acet-pljoin-2nd-pass
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-get-matched-pairs2 ( lst lst5 fuzz g st tmpe1 tmpe2 flst /
na na2 p1 p2 n j a b c d lst2 lst3
id id2 ulst x flst flag flag2 ulst2 flst2
nskip
)

;(print "acet-pljoin-get-matched-pairs")
;(print "")
(setq n 0) ;;;create a list of sublist pairs in lst2 i.e. ((0 4) (
2 5)...)
(repeat (length lst) ;;;also create list of non-candidate indexs in lst3
(cond
((setq j (acet-pljoin-get-closest2 (nth n lst) lst fuzz g flst))
(setq j (list (nth n lst) j) ;the point and it's closest candidate
lst2 (cons j lst2)
);setq then add this closest match pair
);cond #1
(T
(setq lst3 (cons n lst3)) ;non-candidates
);cond #2
);cond close
(if (equal n (* 20 (/ n 20)))
(acet-spinner)
);if
(setq n (+ n 1))
);repeat
;Loop through lst2 and look for pairs that point back at each other. i.e. (p1 p2
...) (p2 p1 ...)
;attempt the join. Track the success of the joins in ulst and the failures in fl
st.

(setq nskip 0)
(setq n 0)
(repeat (length lst2)
(setq x (nth n lst2) ;a sublist with the a point and it's 5 closest point
buddies.
id (car x)
id2 (cadr x)
);setq

(if (and (not (member id ulst)) ;both are points not used yet
(not (member id2 ulst))
(not (member (list id id2) flst)) ;have not already tried this
pair and failed
(setq b (assoc id2 lst2))
(equal id (cadr b)) ;closest pairs point at each
other
(setq na (last id) ;get some of the data out of
id and id2
na2 (last id2)
p1 (cadr id) ;the real points
p2 (cadr id2)
);setq
(progn ;get the proper entity names
from the ename map lst5
(while (setq c (assoc na lst5)) (setq na (cadr c)));while
(while (setq c (assoc na2 lst5)) (setq na2 (cadr c)));while
T
);progn
na ;both entities still exist?
na2

; (/= 1 (logand 1 (cdr (assoc 70 (entget na)))))


; (/= 1 (logand 1 (cdr (assoc 70 (entget na2)))))
);and
(progn
;then attempt a join
(setq flag nil
lst5 (acet-pljoin-do-join2 fuzz st na p1 na2 p2 lst5 tmpe1 tmpe2)
flag (cadr lst5) ;join success?
lst5 (car lst5)
);setq return updated entname map and success flag
(if flag
(setq ulst (cons id ulst) ;Then the join succeeded.
ulst (cons id2 ulst) ;mark the two as used by adding the them
to ulst
);setq the success
(setq flst (cons (list id id2) flst)
flst (cons (list id2 id) flst)
);setq else join failed so mark as such in flst
);if
);progn then
(progn
(setq nskip (+ nskip 1));setq
;(print '(not (member id ulst)))
;(print (not (member id ulst)))
;(print '(not (member id2 ulst)))
;(print (not (member id2 ulst)))
;(print '(not (member (list id id2) flst)))
;(print (not (member (list id id2) flst)))
;(print '(setq b (assoc id2 lst2)))
;(print (setq b (assoc id2 lst2)))
;(print '(equal id (cadr b)))
;(print (equal id (cadr b)))
;(print 'na)
;(print na)
;(print 'na2)
;(print na2)
;
;(d-point (cadr id) "1")
;(d-point (cadr id2) "2")
;(princ "\ndecided not to try it.")
;(getstring "")
;(entdel (entlast))
;(entdel (entlast))
);progn else
);if
(setq n (+ n 1))
);repeat
(if (equal nskip n)
(setq lst nil);then all were skipped so the job is finished.
);if
(setq lst2 nil);setq ;;;remove the used and non-candidate point data from lst
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq
(if (and (not (member n lst3)) ;not a non-candidate
(not (member a ulst)) ;not used
);and
(setq lst2 (cons a lst2))
);if
(setq n (+ n 1))
);repeat
(list lst2 lst5 flst)
);defun acet-pljoin-get-matched-pairs

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-get-closest2 ( p1 lst fuzz g flst / a b c d x1 x2 x3 y1 y2 y3
n j
lst2 lst3 len2 len3 clst
)
;(print "acet-pljoin-get-closest")
;(print "")
(setq b (cadr p1) ;the real point
a (car p1) ;the grid point
);setq
;determine the grid points to examine.
(cond
((equal fuzz 0.0 #acet-pljoin-prec)
(setq lst2 (list (list (car a) (cadr a))
);list
);setq else
);cond #2
(T
(if (<= (car a) (car b))
(setq x1 (car a)
x2 (acet-calc-round (+ (car a) g) g)
);setq
(setq x1 (acet-calc-round (- (car a) g) g)
x2 (car a)
);setq
);if
(if (<= (cadr a) (cadr b))
(setq y1 (cadr a)
y2 (acet-calc-round (+ (cadr a) g) g)
);setq
(setq y1 (acet-calc-round (- (cadr a) g) g)
y2 (cadr a)
);setq
);if
(setq lst2 (list (list x1 y1)
(list x2 y1)
(list x2 y2)
(list x1 y2)
);list
);setq
);cond #3
);cond close
(setq d (* fuzz 2.0)
len2 (length lst2)
);setq
;;loop through the grid points and check each of the points that fall on each gr
id point
(setq n 0)
(while (< n len2)
(setq lst3 (acet-list-m-assoc (nth n lst2) lst) ;get a list of assoc point based
on grid point
len3 (length lst3)
);setq
(setq j 0)
(while (< j len3) ;loop through the current list of grid
points
;and find the closest point
(setq a (nth j lst3))
(if (and
;@rk 4:13 PM 9/7/98
;removed
;;;(not (equal (last a) (last p1))) ;not same entity name
;and changed to ...
(not (equal a p1))
(setq c (distance (cadr p1) (cadr a))) ;distance between real origina
l points
(<= c fuzz) ;less than or equal to fuzz
(< c d)
(not (member (list p1 a) flst))
);and
(progn
(setq d c
clst a
);setq
(if (equal c 0.0 #acet-pljoin-prec)
(setq n len2
j len3
);setq then jump out of the loop
);if
);progn then
);if
(setq j (+ j 1))
);while
(setq n (+ n 1))
);while
clst
);defun acet-pljoin-get-closest

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-do-join2 ( fuzz st na p1 na2 p2 lst3 tmpe1 tmpe2 / x b e1 e2
flag closed )
(if (or (equal st "Add")
(equal 0.0 (distance p1 p2) #acet-pljoin-prec)
(and (setq p1 (acet-pljoin-fillet-with-fuzz2 fuzz na p1 tmpe1 na2 p2 tmp
e2)
p2 (cadr p1)
p1 (car p1)
);setq
(equal st "Both")
);and
(and (equal p1 p2)
(equal st "Fillet")
);and
);or
(progn
(setq flag T) ;then set the success flag
(if (not (equal p1 p2)) ;;avoid the distance calc. (not (equal 0.0 (distanc
e p1 p2)))
(progn
(command "_.pline" p1 p2 "")
(command "_.pedit" na "_j" na (entlast) "" "_x")
(if (equal 1 (logand 1 (cdr (assoc 70 (entget na)))))
(progn
(if (setq b (assoc na lst3))
(setq lst3 (subst (list na nil) b lst3));setq then subst
(setq lst3 (cons (list na nil) lst3));setq else add
);if
(setq na nil)
);progn then
);if
);progn then
);if
(cond
((not na)
na
);cond #1
((and (equal na na2)
(<= (length (acet-geom-vertex-list na)) 2);then it's a single segmen
t polyline so don't change it
);and
;then make the ename inactive by pointing it to nil in the ename map list
(if (setq b (assoc na2 lst3))
(setq lst3 (subst (list na2 nil) b lst3));then subst
(setq lst3 (cons (list na2 nil) lst3));setq else add
);if
);cond #2
(T
(acet-spinner)
(command "_.pedit" na "_j" na na2 "" "_x")
;The na2 is gone now so update the ename map list so that na2 points at n
a
(if (setq b (assoc na2 lst3))
(setq lst3 (subst (list na2 na) b lst3));then subst
(setq lst3 (cons (list na2 na) lst3));setq else add
);if
(if (or (equal na na2)
(equal 1 (logand 1 (cdr (assoc 70 (entget na)))))
);or
(progn
;then na is closed now so update ename map so that it points to nil.
(if (setq b (assoc na lst3))
(setq lst3 (subst (list na nil) b lst3));then subst
(setq lst3 (cons (list na nil) lst3));setq else add
);if
(setq na nil)
);progn then
);if
);cond #3
);cond close
);progn then add
(progn
;(print '(equal 0.0 (distance p1 p2)))
;(print (equal 0.0 (distance p1 p2)))
;(print "skipping")
);progn else
);if
(list lst3 flag) ;return the entity name map and a flag of success or failure fo
r join.
);defun acet-pljoin-do-join
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Returns a list of sub-list of the form (roundedpoint originalpoint 0/1 ename)
;where 0 mean start point and 1 means end point of the object.
;
(defun acet-pljoin-round2 ( ss g / lst na a b c d n )
;;(princ "\nCreating data grid of points...")
;;(print "acet-pljoin-round")
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
a (acet-pljoin-get-epoints2 na)
b (cadr a)
a (car a)
);setq
(if (and a b)
(setq c (list (acet-calc-round (car a) g)
(acet-calc-round (cadr a) g)
);list
d (list (acet-calc-round (car b) g)
(acet-calc-round (cadr b) g)
);list
lst (cons (list c a 0 na) lst)
lst (cons (list d b 1 na) lst)
);setq then
);if
(if (equal n (* (/ n 10) 10)) ;update the spinner once every ten objects
(acet-spinner)
);if
(setq n (+ n 1));setq
);repeat
;(princ "Done.")
lst
);defun acet-pljoin-round

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-get-epoints2 ( na / e1 a b z v )
;(print "acet-pljoin-get-epoints")
;(print "")

(if (and (setq e1 (entget na))


(setq e1 (acet-lwpline-remove-duplicate-pnts2 e1))
);and
(progn
(setq z (cdr (assoc 38 e1)));setq
(if (not z) (setq z 0.0))
(setq v (cdr (assoc 210 e1))
a (cdr (assoc 10 e1))
a (list (car a) (cadr a) z)
a (trans a v 1)
e1 (reverse e1)
b (cdr (assoc 10 e1))
b (list (car b) (cadr b) z)
b (trans b v 1)
);setq
(setq a (list a b))
);progn then
);if;
;(print "done epoints")
a
);defun acet-pljoin-get-epoints
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Takes an entity list of lwpolylines and modifies the object
;removing neighboring duplicate points. If no duplicated points
;are found then the object will not be passed to (entmod ).
;Returns the new elist when done.
(defun acet-lwpline-remove-duplicate-pnts2 ( e1 / a n lst e2)
(setq n 0)
(repeat (length e1)
(setq a (nth n e1));setq
(cond
((not (equal 10 (car a)))
(setq e2 (cons a e2))
);cond #1
((not (equal (car lst) a))
(setq lst (cons a lst)
e2 (cons a e2)
);setq
);cond #2
);cond close
(setq n (+ n 1));setq
);repeat
(setq e2 (reverse e2))
(if (and e2
(not (equal e1 e2))
lst
);and
(progn
(if (equal 1 (length lst))
(progn
(entdel (cdr (assoc -1 e1)))
(setq e2 nil)
);progn then single vertex polyline so delete it.
(progn
(setq e2 (subst (cons 90 (length lst)) (assoc 90 e2) e2)
);setq
(entmod e2)
);progn else
);if
);progn then
);if
e2
);defun acet-lwpline-make-remove-duplicate-pnts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-fillet-with-fuzz2 ( fuzz na p1 tmpe1 na2 p2 tmpe2 /
e1 e2 p1a p2a lst flag flag2 n a
tmpna tmpna2 x y v
)
;(print "acet-pljoin-fillet-with-fuzz")
;(print "")

(setq tmpna (cdr (assoc -1 tmpe1)) ;get the temp entitiy names out of the ent l
ists
tmpna2 (cdr (assoc -1 tmpe2))
lst (acet-pljoin-mod-tmp2 na p1 tmpe1) ;make the temp ent look like the
begining or ending segment
e1 (car lst) ;the modified temp ent list
flag (cadr lst) ;0 or 1 start or end
p1a (caddr lst) ;segment info sub-list (p1 p2 bul
ge) where p2 is always the endpoint
lst (acet-pljoin-mod-tmp2 na2 p2 tmpe2)
e2 (car lst)
flag2 (cadr lst) ;0 or 1 start or end
p2a (caddr lst) ;segment info sub-list (p1 p2 b
ulge) ;in entity ucs
lst (acet-geom-intersectwith tmpna tmpna2 3) ;get the intersection list
v (cdr (assoc 210 e1))
lst (acet-geom-m-trans lst 0 v) ;trans to entity coord system
);setq

(if lst
(progn
(setq x (acet-pljoin-get-best-int2 p1a lst)) ;get the best inter
section
(setq y (acet-pljoin-get-best-int2 p2a lst)) ;get the best inter
section
;put the best intersections in the list x
(cond
((and x y)
(setq x (list x y))
);cond #1
;;(x (setq x (list x))) ;commented because both objects must pass the best
intersect test
;;(y (setq x (list y)))
(T (setq x nil))
);cond
(if (and x
(setq x (acet-geom-m-trans x v 1))
(setq x (acet-pljoin-get-closest-int2 p1 p2 x))
(<= (distance p1 x) fuzz)
(<= (distance p2 x) fuzz)
);and
(progn
(acet-pljoin-fillet-mod-epoint2 e1 flag x)
(if (equal na na2)
(setq e2 (entget na))
);if
(acet-pljoin-fillet-mod-epoint2 e2 flag2 x)
(setq lst (list x x))
);progn then
(setq lst (list p1 p2))
);if
);progn then
(setq lst (list p1 p2))
);if
lst
);defun acet-pljoin-fillet-with-fuzz
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes:
; a - segment info sub-list (p1 p2 bulge) where p2 is always the endpoint
; lst - list of intersections
;returns the best candidate
;
(defun acet-pljoin-get-best-int2 ( a lst / p1 p2 a1 a2 n j b c d nb )
;(print "acet-pljoin-get-best-int")
;(print "")
(setq p1 (car a) ;the iner segement
p2 (cadr a) ;the end point (first or last)
b (caddr a) ;the bulge
);setq
(if (equal b 0.0)
(setq a1 (angle p1 p2)) ;line segment so get the angle
(setq a1 (caddr (acet-geom-pline-arc-info p1 p2 b))) ;arc segment, so get de
lta angle from arc_info
);if
(setq n 0)
(repeat (length lst)
(setq a (nth n lst))
(if (equal b 0.0)
(progn
;the it's a line segment
(if (and (or (equal (angle p1 a) a1 #acet-pljoin-prec) (eq
ual (abs (- (angle p1 a) a1))
(* 2.0 pi)
#acet-pljoin-prec
)
);or
(or (not d)
(< (setq c (distance p2 a)) d)
);or
);and
(progn
(setq d c
j n
);setq
);progn then
);if
);progn then line segment
(progn
(if (equal p1 a #acet-pljoin-prec)
(progn
(setq a2 (* pi 2.0
(/ (abs a1) a1)
);mult
);setq then make it 360 degrees and preserve the sign.
);progn then
(progn
(setq nb (acet-pljoin-calc-new-bulge2 p1 b p2 a)
a2 (acet-geom-pline-arc-info p1 a nb)
a2 (caddr a2) ;delta angle
);setq
);progn else
);if
(setq c (abs (- (abs a2)
(abs a1)
)
)
);setq
(if (and (>= (* a2 a1) 0.0) ;same sign delta angle
(or (not d)
(< c d)
);or
);and
(progn
(setq d c
j n
);setq
);progn then
);if
);progn else
);if
(setq n (+ n 1));setq
);repeat
(if j
(setq d (nth j lst))
(setq d nil)
);if
;;;for debuging only
;(d-point p1 "1")
;(d-point p2 "2")
;(if d (d-point d "3"));if
;(print 'p1)
;(print p1)
;(print 'lst)
;(print lst)
;(print d)
;(if d
; (progn
; (getstring "\n\nit thinks this is COOL")
; );progn then
; (getstring "\n\nit thinks this SUCKs")
;);if
;(entdel (entlast))
;(entdel (entlast))
;(if d (entdel (entlast)));if

d
);defun acet-pljoin-get-best-int
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-get-closest-int2 ( p1 p2 lst / n a j d )
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
a (+ (distance a p1) (distance a p2))
);setq
(if (or (not d)
(< a d)
);or
(setq d a
j n
);setq
);if
(setq n (+ n 1));setq
);repeat
(if j
(setq a (nth j lst))
(setq a nil)
);if
a
);defun acet-pljoin-get-closest-int

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-fillet-mod-epoint2 ( e1 flag x / p1 p2 a b e2 blg n v)
;(print "acet-pljoin-fillet-mod-epoint")
;(print "")
(setq v (cdr (assoc 210 e1))
x (trans x 1 v)
;x (trans x 1 (cdr (assoc -1 e1)))
x (list (car x) (cadr x))
);setq
(if (equal flag 1)
(setq e1 (reverse e1))
);if
(setq n 0)
(while (and e1
(not p2)
);and
(setq a (car e1)
e1 (cdr e1)
e2 (cons a e2)
);setq
(cond
((equal 10 (car a))
(if (not p1)
(setq p1 n)
(setq p2 n)
);if
);cond #1
((and p1
(equal 42 (car a))
);and
(setq b n)
);cond #2
);cond close
(setq n (+ n 1))
);while
(setq e2 (reverse e2))
(if (equal 0.0 (cdr (nth b e2)))
(setq e2 (acet-list-put-nth (cons 10 x) e2 p1));setq then line segment
(progn
(if (equal flag 0)
(setq blg (acet-pljoin-calc-new-bulge2 (cdr (nth p2 e2))
(* -1.0 (cdr (nth b e2)))
(cdr (nth p1 e2))
x
)
e2 (acet-list-put-nth (cons 42 (* -1.0 blg)) e2 b)
e2 (acet-list-put-nth (cons 10 x) e2 p1)
);setq then
(setq blg (acet-pljoin-calc-new-bulge2 (cdr (nth p2 e2))
(cdr (nth b e2))
(cdr (nth p1 e2))
x
)
e2 (acet-list-put-nth (cons 42 blg) e2 b)
e2 (acet-list-put-nth (cons 10 x) e2 p1)
);setq then
);if
);progn else arc segment
);if
(setq e1 (append e2 e1))
(if (equal flag 1)
(setq e1 (reverse e1))
);if
(entmod e1)

);defun acet-pljoin-fillet-mod-epoint
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Make the temporary ent match the segment of interest to get ready to
;use the intersectwith method.
;Takes an entity name and a point that is on one end of the entity
;and a entity list of a single segment lwpolyline
;modifies the single segment polyline such that it matches the
;first or last segment (depending on the p1 provided) of the
;polyline 'na'
;
(defun acet-pljoin-mod-tmp2 ( na p1 tmpe1 / e1 e2 a b z p2 flag v )
(setq e1 (entget na)
v (cdr (assoc 210 e1))
p1 (trans p1 1 v)
p1 (list (car p1) (cadr p1))
tmpe1 (subst (assoc 38 e1) (assoc 38 tmpe1) tmpe1)
tmpe1 (subst (assoc 39 e1) (assoc 39 tmpe1) tmpe1)
tmpe1 (subst (assoc 210 e1) (assoc 210 tmpe1) tmpe1)
z (cdr (assoc 38 e1))
a (assoc 10 e1)
);setq
(if (equal (cdr a) p1 #acet-pljoin-prec)
(progn
(setq flag 0
tmpe1 (reverse tmpe1)
tmpe1 (subst a (assoc 10 tmpe1) tmpe1)
tmpe1 (reverse tmpe1)
e2 (cdr (member (assoc 10 e1) e1))
p2 (list (car p1) (cadr p1) z)
p1 (cdr (assoc 10 e2))
p1 (list (car p1) (cadr p1) z)
tmpe1 (subst (assoc 10 e2) (assoc 10 tmpe1) tmpe1)
b (* -1.0 (cdr (assoc 42 e2)))
tmpe1 (subst (cons 42 b)
(assoc 42 tmpe1)
tmpe1
)
);setq
);progn then
(progn
(setq flag 1
e2 (reverse e1)
tmpe1 (reverse tmpe1)
a (assoc 10 e2)
p2 (cdr a)
p2 (list (car p2) (cadr p2) z)
tmpe1 (subst a (assoc 10 tmpe1) tmpe1)
e2 (cdr (member a e2))
p1 (cdr (assoc 10 e2))
p1 (list (car p1) (cadr p1) z)
b (cdr (assoc 42 e2))
tmpe1 (reverse tmpe1)
tmpe1 (subst (cons 42 b) (assoc 42 tmpe1) tmpe1)
a (assoc 10 e2)
tmpe1 (subst (assoc 10 e2) (assoc 10 tmpe1) tmpe1)
);setq
);progn else
);if
(entmod tmpe1)
(list e1 flag (list p1 p2 b))
);defun acet-pljoin-mod-tmp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Calculates the new bulge formed by moving
;point p2 to p3 and still retaining the same radius and center point.
;
(defun acet-pljoin-calc-new-bulge2 ( p1 b p2 p3 / p4 x r a c b2 info )
(setq c (distance p1 p3))
(if (not (equal c 0.0))
(progn
(setq p4 (acet-geom-midpoint p1 p3)
info (acet-geom-pline-arc-info p1 p2 b)
r (cadr info);radius
x (car info) ;center point
a (- r
(distance x p4)
)
);setq
(setq b2 (/ (* 2.0 a) c)
b2 (* b2 (/ (abs b) b))
);setq
(setq info (acet-geom-pline-arc-info p1 p3 b2))
(if (not (equal x (car info) #acet-pljoin-prec))
(progn
(setq a (- (* r 2.0) a));setq
(setq b2 (/ (* 2.0 a) c)
b2 (* b2 (/ (abs b) b))
);setq
);progn then
);if
);progn then
(setq b2 0.0)
);if
b2
);defun acet-pljoin-calc-new-bulge

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;- explode all curve fitted and/or splined plines and re-join
;- convert all to light weight plines.
;- turn all arcs and lines into lightweight plines.
;- finally return a selection set of all plines.
(defun acet-pljoin-do-ss-pre-work2 ( ss flt / na ss2 ss3 n w)

(command "_.select" ss "")


(setq ss2 (ssget "_p" '((-4 . "&") (70 . 6)))) ;fit or splined
(command "_.select" ss "")
(setq ss3 (ssget "_p" '((-4 . "<OR") (0 . "LINE") (0 . "ARC") (-4 . "OR>")))) ;l
ines and arcs
(if ss2
(progn
(setq n 0)
(repeat (sslength ss2)
(setq na (ssname ss2 n)
w (acet-pljoin-get-width2 na)
);setq
(command "_.explode" na)
(while (wcmatch (getvar "cmdnames") "*EXPLODE*") (command ""))
(command "_.pedit" (entlast) "_y" "_j" "_p" "")
(if (not (equal w 0.0))
(command "_w" w)
);if
(command "_x")
(setq ss (ssdel na ss)
ss (ssadd (entlast) ss)
);setq
(setq n (+ n 1));setq
);repeat
);progn then
);if
(command "_.convertpoly" "_light" ss "")
(if ss3
(progn
(setq n 0)
(repeat (sslength ss3)
(setq na (ssname ss3 n));setq
(command "_.pedit" na "_y" "_x")
(setq ss (ssdel na ss)
ss (ssadd (entlast) ss)
);setq
(setq n (+ n 1));setq
);repeat
);progn then
);if
(if (equal 0 (sslength ss))
(setq ss nil)
);if
(setq ss (acet-pljoin-ss-flt2 ss flt))
ss
);defun acet-pljoin-do-ss-pre-work

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;return the with of the heavy polyline provided in 'na'
(defun acet-pljoin-get-width2 ( na / e1 a b)
(if (and (setq e1 (entget na))
(equal (cdr (assoc 0 e1)) "POLYLINE")
);and
(progn
(setq a (cdr (assoc 40 e1))
b (cdr (assoc 41 e1))
);setq
(while (and (equal a b)
(setq na (entnext na))
(setq e1 (entget na))
(not (equal (cdr (assoc 0 e1)) "SEQEND"))
);and
(setq a (cdr (assoc 40 e1))
b (cdr (assoc 41 e1))
);setq
);while
);progn then
(setq a 0.0)
);if
a
);defun acet-pljoin-get-width
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-ss-flt2 ( ss flt / n na e1 p1 p2 )
(if (and ss
(> (sslength ss) 0)
);and
(progn
(command "_.select" ss "")
(setq ss (ssget "_p" flt))
);progn then
(setq ss nil)
);if
ss
);defun acet-pljoin-ss-flt

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;prompt for a joinmode setting of "Fillet" or "Add"
(defun acet-pljoinmode2 ( / st )
(acet-pljoin-init-mode2)
(initget "Fillet Add Both _Fillet Add Both")
(setq st (getkword
(acet-str-format "\nEnter join type [Fillet/Add/Both] <%1>: " #acet-
pljoinmode)
);getkword
);setq
(if st
(progn
(setq #acet-pljoinmode st)
(acet-setvar (list "ACET-PLJOINMODE" #acet-pljoinmode 2))
);progn
);if
);defun acet-pljoinmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pljoin-init-mode2 ()
(if (not #acet-pljoinmode)
(setq #acet-pljoinmode (acet-getvar '("ACET-PLJOINMODE" 2)))
);if
(if (not #acet-pljoinmode)
(progn
(setq #acet-pljoinmode "Both")
(acet-setvar (list "ACET-PLJOINMODE" #acet-pljoinmode 2))
);progn then
);if
#acet-pljoinmode
);defun acet-pljoin-init-mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;prompt for fuzz distance and/or pljoinmode setting.
;return list... (fuzz pljoinmode)
;
(defun acet-pljoin-get-fuzz-and-mode2 ( / st fuzz )
(setq st (acet-pljoin-init-mode2))
(princ (acet-str-format "\n Join Type = %1" st))
(if (equal "Both" st)
(princ " (Fillet and Add) ")
);if
(if (not #acet-pljoin-fuzz)
(setq #acet-pljoin-fuzz 0.0)
);if
(if (assoc "OSMODE" (car acet:sysvar-list))
(setvar "OSMODE" (cadr (assoc "OSMODE" (car acet:sysvar-list))))
);if
(setq fuzz "")
(while (equal (type fuzz) 'STR)
(initget "Jointype _Jointype" 4)
(setq fuzz (getdist
(acet-str-format "\nEnter fuzz distance or [Jointype] <%1>: " (r
tos #acet-pljoin-fuzz))
);getdist
);setq
(cond
((not fuzz)
(setq fuzz #acet-pljoin-fuzz)
);cond #1
((equal "Jointype" fuzz)
(acet-pljoinmode2)
);cond #2
((equal (type fuzz) 'REAL)
(setq #acet-pljoin-fuzz fuzz)
);cond #3
);cond close
);while
(setvar "osmode" 0)
(list #acet-pljoin-fuzz #acet-pljoinmode)
);defun acet-pljoin-get-fuzz-and-mode
(princ)
<Ðnì H¸qxpÊñ§K p) S ò ¸C³ËÀ
Ù¤ÈJHÀµE
¢fQÔ$ õ¼° {®á k6Cêõ z- ^I/8Ì( | ìÉLöä }yf+ø̸ ¥ùaP  ìåÕOuÕú Sþ²ÞCɨ { ×´bÿ1æCqâ<% C ¤¥ ºù
³ êÏMfog JsÃwsÃå¨°Þ Y "4_)±ÕõÉGá Eøtb| ¸  dÌ×GÏñ 8lJ¢/©# ÿÅ×4qÜ !NÚ²è[ö çVö>âaÝOôÞ ÷4`Ìg
øb²Ëï t%
×Æ 9Ó_%ìï
]¾äÌ&æ oû»_®<_c¾‾
Ó°çpÈá ÏÒÁçG*,¨Í¨}
Ã.É#ISþ;;;

;;; PLT2DWG.LSP - Written by Randy Kintzley
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
;Reads a plt file (HPGL format only) and creates polylines in the current drawin
g
;from the plot file information.
; Each pen number is directly related to the color of the polyline that will be
created.
;i.e. pen 1 will create red polylines.
;
(defun c:plt2dwg ( / a n fna fh flag p1 pd ptcnt)
(acet-error-init
(list (list "cmdecho" 0
"regenmode" 1
"limcheck" 0
"clayer" nil
)
0 ;do not undo everything if cancel is pressed
);list
);acet-error-init

(setq fna (acet-ui-getfile "Enter the plot file" (acet-filename-ext-remove (getv


ar "dwgname")) "PLT" "Acet:plt2dwg" 1664));setq
(cond
((not fna) (princ))
((not (setq flag (acet-plt2dwg-file-is-hpgl fna)))
(acet-alert "\nThe selected plt file is not the proper HPGL format.")
)
(flag ;(= flag 1)
(acet-plt2dwg fna)
(command "_.zoom" "_e")
)
);cond close
(acet-error-restore)
);defun c:plt2dwg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-plt2dwg ( fna / fh n a b pd p1 ptcnt lst n lst2 na ss )
(setq fh (acet-file-open fna "r")
na (entlast)
);setq
(setq n 0);setq
(while (setq a (acet-plt2dwg-plt-read fh));setq
(setq a (acet-str-replace "PU" ";PU;" a)
a (acet-str-replace "PD" ";PD;" a)
lst2 (acet-str-to-list ";" a)
);setq
(foreach a lst2
(if (equal n (* 75 (/ n 75)))
(acet-spinner)
);if
(setq b (substr a 3)
a (substr a 1 2)
);setq

(if (= b "")
(setq b nil)
);if
(cond
((= a "")(princ));cond #1
((acet-str-equal a "PD")
(if (not (wcmatch (getvar "cmdnames") "*PLINE*"))
(progn
(acet-cmd-exit)
(command "_.pline")
);progn then
);if
(setq pd T
ptcnt 0
);setq
);cond #2
((and b
(acet-str-equal a "SP") ;;;set pen
);and
(if (and pd
(equal ptcnt 0)
p1
)
(command p1 p1 "")
);if
(acet-cmd-exit)
(if (not (tblobjname "layer" b))
(command "_.-layer" "_make" b "_color" b b "")
(command "_.-layer" "_thaw" b "_on" b "_set" b "")
);if
(princ (acet-str-format "\rImporting pen number: %1" b))
(setq pd nil)
);cond #3
((and b
(acet-str-equal a "CI")
);and
(if pd
(progn
(if (equal ptcnt 0)
(command p1 b)
(command b)
);if
);progn
);if
(command "_.circle" p1 b)
);cond #4
((and b
(acet-str-equal a "PA")
);and
(if pd
(progn
(if (equal ptcnt 0)
(command p1 b)
(command b)
);if
);progn
);if
(setq p1 b)
);cond #5
((and b
(acet-str-equal a "PR")
)
(if (and pd
(= ptcnt 0)
)
(command p1) ;;drop the first point
);if
(setq lst (acet-str-to-list "," b))
(setq n 0)
(repeat (/ (length lst) 2)
(setq a (list (atoi (nth n lst))
(atoi (nth (+ n 1) lst))
)
p1 (mapcar 'atoi (acet-str-to-list "," p1))
p1 (strcat (itoa (+ (car p1) (car a)))
","
(itoa (+ (cadr p1) (cadr a)))
)
);setq
(if pd
(progn
(command p1)
(setq ptcnt (+ ptcnt 1))
);progn then
);if
(setq n (+ n 2))
);repeat
);cond #6
((acet-str-equal a "PU")
(if (and pd
(equal ptcnt 0)
p1
)
(command p1 p1 "")
);if
(acet-cmd-exit)
(setq pd nil)
);cond #7
);cond close
);foreach
);while reading the file
(close fh)
(acet-cmd-exit)
(if (setq ss (acet-ss-new na))
(command "_.scale" ss "" "0,0" (/ 1.0 1020.0))
);if
(princ "\r
")
(princ)
);defun acet-plt2dwg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes a plt file name and returns
;- 1 if the file is in ABSOLUTE HPGL format.
;- 2 if the file is in RELATIVE HPGL format.
;
(defun acet-plt2dwg-file-is-hpgl (fna / a b n fh flag aplt rplt )
(setq aplt "\e.(;\e.I81;;17:\e.N;19:IN;SC;PU"
rplt "\e.(;\e.I81;;17:\e.N;19:IN;SC;PU"
);setq
(if (and (setq fna (findfile fna))
(setq fh (acet-file-open fna "r"))
);and
(progn
(setq b "")
(setq n 1)
(while (and (<= n 29)
(setq a (read-char fh))
(or (acet-str-equal (chr a) (substr aplt n 1))
(acet-str-equal (chr a) (substr rplt n 1))
);or
);and
(setq b (strcat b (chr a)));setq
(setq n (+ n 1))
);while
(cond
((acet-str-equal aplt b)
(setq flag 1) ;absolute
)
((acet-str-equal rplt b)
(setq flag 2) ;relative
)
);
(close fh)
);progn then
);if
flag
);defun acet-plt2dwg-file-is-hpgl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-plt2dwg-plt-read ( fh / a b c )
(while (and (setq a (read-char fh));setq ;;read past any leading semi-colons.
(setq a (chr a))
(equal a (chr 59))
);and
);while
(if a
(setq b a)
(setq b "")
);if
(while (and (setq a (read-char fh));setq
(setq a (chr a))
(not (equal a (chr 59)))
);and
(setq b (strcat b a));setq
);while
(if (equal b "")
(setq b nil);setq
);if
b
);defun acet-plt2dwg-plt-read

(princ)INDX( *(àèSî]p^í];§IÖôEË ÿÞmêÀ;§IÖôEË;§IÖôEË@ü? blackboard.lspî]pZí];§IÖôEË ÿÞmêÀ


BLACKB~1.LSP5^xdí]I ÖôEË ÿÞmêÀI ÖôEËI ÖôEËPO Mouse Reactor.lsp5^pZí]I ÖôEË ÿÞmêÀI ÖôEË
pMrOoUpSaEgRa~t1e..LlPsA^
pAp\^pí]
Zí`]í`íÖôEË
ÖôEË
 ÿÞmêÀ
 ÿÞmêÀ
`í`íÖôEË
ÖôEË
`í`íÖôEË
ÖôEË
x x
PROPAG~1.LSP;;; ;
;;; PROPAGATE.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;
;;;
;;; Propagate print-list sample
;;;
;;;
;;; Sample file supplied by: Perceptual Engineering Inc.
;;; web: www.perceptual-eng.com
;;; Author: Ralph Gimenez, Perceptual Engineering
(defun-q print-list (lst)
(foreach item lst
(prin1 item)
(terpri)
)
(princ)
)
(vl-propagate 'print-list) ;; propagate the function
;;; propagation does not ensure the function is
;;; available immediately upon creating a new document.
;;; Because any propagated value is not available until
;;; s::startup has been evaluated.ælcsÝ å ºXf³, <C¤åè/LA{UÎë R}N;Öâ Ø?T3*ÂzÅÕÊ÷MæXN.K É@Û=
×ELñQ²4BÝlu ìúG:¡,  ¬ùbÙy9NÔÍ
¹mÆ]<H\¡Eì8à'nVm½¬¹{—
Þ#9p ãSB è4L  ID g.ȱ4CW &xj¶q
I d ' "¨Á3ä<yÈ.¦) Äñ}JfUU.Ê 3 à. Åjôð\¬c WÄÌç%ô
;S;}i `lhÀ/¶Åo¾G)* Ãpü^áz BÊJéTA ¹ QyP/ 0bcÀL ò ðà '¾)Ê%¬ÀÄNaØ5>¡ã # b à?ÀµÅµ5m ºÇÉ
;; qquit.lsp - QQUIT command
;;
;; Copyright © 2000 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;;-------------------------------------------------------------------------
;;
;; DESCRIPTION
;; Implements the QQUIT command.
;;
;;-------------------------------------------------------------------------

;;
;; quick quit
;;
(defun C:QQUIT (/ item cur saveQuery)
;; save if requested
(defun saveQuery (item / titled writeable name reply)
(vl-load-com)
(setq titled (= 1 (vlax-variant-value (vla-getvariable item "DWGTITLED")))
writeable (= 1 (vlax-variant-value (vla-getvariable item "WRITESTAT"))
)
name (if titled
(vlax-get item "fullname")
(vlax-variant-value (vla-getvariable item "DWGNAME")) )
reply (acet-ui-message
(acet-str-format "Save changes to %1?" name)
"AutoCAD"
(+ Acet:YESNOCANCEL Acet:ICONWARNING) ) )
(cond
((= Acet:IDYES reply)
(cond
;; REFEDIT active ??
((/= "" (vlax-variant-value (vla-getvariable item "REFEDITNAME")))
(acet-ui-message "Cannot Save while REFEDIT active."
"AutoCAD - QQUIT"
Acet:ICONSTOP )
(exit)
)
((and titled writeable)
(vla-save item)
)
(T
(if (setq name (ACET-FILE-WRITEDIALOG "Save Drawing As" name "dwg" "
Acet:SaveAll" 1665))
(vla-saveas item (vlax-make-variant name))
(exit)
)
)
)
)
((= Acet:IDCANCEL reply)
(exit) )
)
)
;; only valid in MDI
(vl-load-com)
(if (= 0 (getvar "SDI"))
(progn
;; quiet
(acet-error-init '(("CMDECHO" 0)))
;; locate current doc
(setq cur (vla-get-activedocument (vlax-get-acad-object)))
;; for each doc
(vlax-for item (vla-get-documents (vlax-get-acad-object))
;; skip current doc
(if (not (equal cur item))
(progn
;; save if modified ??
(if (/= 0 (vlax-variant-value (vla-getvariable item "DBMOD")))
(saveQuery item) )
;; close without saving
(vla-close item (vlax-make-variant :vlax-false))
)
)
)
;; close current
(vla-sendcommand cur "_.QUIT ")
)
(command "_.QUIT")
)
(princ)
)

(vl-load-com)
(princ)
;;; ;
;;; R-INFO.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains functions which display information about the ;
;;; commands defined within the REAC-TST project file. ;
;;; ;
;;; For a description of the entire project and a listing of the ;
;;; AutoCAD commands defined within it, see the source code file ;
;;; REAC-TST.PRJ. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: REACT-TEST-INFO-TOPIC ;
;;; ;
;;; Description: This function displays a simple help file in ;
;;; the ACAD Command: prompt. ;
;;; ;
;;; Arguments: topic information in the form of a list of two ;
;;; strings. ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (react-test-info-topic TOPIC-INFO) ;
;;; or ;
;;; (react-test-info-topic ;
;;; (car *REACT-TEST-COMMANDS-INFO*)) ;
;;;--------------------------------------------------------------------;
(defun react-test-info-topic (topic-info)
(princ "\nTo test: ")
(princ (car topic-info))
(if (cdr topic-info)
(progn
(princ "\tFor information: ")
(princ (cadr topic-info))
(if (cddr topic-info)
(progn
(princ "\tTo stop: ")
(princ (caddr topic-info))
)
)
)
)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: C:REACT-TEST-INFO ;
;;; ;
;;; Description: This function displays all the simple help file ;
;;; from the global variable ;
;;; *REACT-TEST-COMMANDS-INFO* to the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:REACT-TEST-INFO) or C:REACT-TEST-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:REACT-TEST-INFO ()
(textscr)
(foreach topic *REACT-TEST-COMMANDS-INFO*
(react-test-info-topic topic)
)
(princ "\n\nInspect the *REACT-TEST-COMMANDS-INFO* global variable")
(princ "\nfor the complete list of example commands. The")
(princ "\nREACT-TEST-INFO command can be used from the command line.")
(princ)
)
`Ws8Ï× M}íN £r¤Ï'" [ u»Å × á/[ëÆ Â!‾1ì5uÇì°Ã¾<öï¿ø(5¹Pô îÛÚ ÎwLµ vº êñÏè@@èm«GMnCg´æÔH$ÒhI
cON Ýß|iG0óÁtoMç ÍÞìÙIkßÀ½µN%¶]Ü@¶ mâÌ¢+
ìid×æç¦2 ý;fBUA#3ÿ¸ÔªöÖU®|dRÌ.R_}¨%hU\Ûa Q;m ]vFvyØÚ;ì úØi;ìò°32´vØØagd ËNÛa ¡í°ÃÎȨ
m v Fæ5ìâkCE Y‾]vh{Z»<ì
¥ ³ÓvØåagdh;ì°32°ÃÎÈ( ¶Ã.;#CÛa Q;m ]vFvyØÚ;ì úØi;ìò°32´vØØagd ËNÛa ¡í°ÃÎȨ ¶Ã.;#»<ì
m v FF}ì´vyØÚ;ì úØi;ìò°32°ËÃÎÈÐvØagdÔÇNÛa ¡í°ÃÎÈÀ;#£\vÚ»<ì
m v FF}ì´vyØØåagdh;ì°32êc§í°ËÃÎÈÐvØagd` Q.;m ]vF ¶Ã;#£>vÚ»<ì
ìò°32´vØõ±ÓvØåagdh;ì°32êc§í°ËÃÎÈÀ.;#CÛa Q;m ]vF ¶Ã;#;ì rÙi;ìò°32´vØõ±ÓvØåagd` ¡í°ÃÎȨ
m v FF}ì´vyØÚ;ì
ì°32Êe§í°ËÃÎÈÐvØagdÔÇ®ÉÏ
E½ØaW úͽuBoééiq W åY
{Ägìjc¾Ä  4û * î µ a ]qì o nÑs
^ µÌ¨ÓÀ;ìÊ
ì2³=»¥Ì¤Ó õÚ ‾¸jÊÅOa ]5ì Ã4Öë,UE&]ÜXY ÀōãÄ ðÉ ÐcpX` 'ì¾ÿ6¼¾ú ¡²àX—{b8"~¡-ôìß ¶Ã®2öDÄÚ ôùD¾
endstream
20
endobj 0 obj<</Subtype/Image/Length 76/Filter/FlateDecode/ImageMask true/BitsPerComp
onent 1/Width 104/Height 795/Type/XObject>>stream
H AúìÖ¡
ï R¾ G¢Þ aÖ >s UÑV}À1Äû(O§¶w~mønF Ȳ)À¢—Î
21 0 obj<</Subtype/Image/Length 28146/Filter/F;;;
endobj
endstream
;
;;; R-INIT.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file initializes/re-initializes the global variables that ;
;;; are required for the REAC-TST project. This file should always ;
;;; be the first file loaded within the project. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model functions here
(if (car (atoms-family 1 '("vl-load-com"))) (vl-load-com))
;;; Load the AutoCAD 2000 reactor functions here
(if (car (atoms-family 1 '("vl-load-reactors"))) (vl-load-reactors))
(setq *REACT-TEST-COMMANDS-INFO* nil
*CURRENT-MODEL-SPACE* nil
*EDITOR-UPDATING-REACTOR* nil
*EDITOR-PIPE-UPDATING-REACTOR* nil
)
;;; ;
;;; RCTR.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE RCTR-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various examples that will enable you to: ;
;;; ;
;;; 1. Create circles with the same radii. ;
;;; 2. Are placed on a curve with equal spacing ;
;;; 3. And a reactor is attached to the arc (or more precise a curve), ;
;;; that will notify an event to re-space the circles ;
;;; according to the new shape of the curve. ;
;;;--------------------------------------------------------------------;
;;; Globals defined: ;
;;; ;
(setq *use-persistent-reactor* nil)
(setq *use-dialog* nil)
(setq *previous-radius* 1.0)
(setq *previous-circle-number* 2)
(setq *previous-color* 1)
;;;--------------------------------------------------------------------;
;;; Function: GET-DIST ;
;;; ;
;;; Description: This function prompts the user for a distance ;
;;; from known point. User input is curtailed via a ;
;;; call to initget whose sum of the bit values ;
;;; determine the behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; 32 Uses dashed lines when drawing ;
;;; rubber-band line or box. For those ;
;;; functions with which the user can ;
;;; specify a point by selecting a ;
;;; location on the graphics screen, ;
;;; this bit value causes the ;
;;; rubber-band line or box to be ;
;;; dashed instead of solid. ;
;;; (Some display drivers use a ;
;;; distinctive color instead of ;
;;; dashed lines.) ;
;;; If the system variable POPUPS ;
;;; is 0, AutoCAD ignores this bit. ;
;;; ;
;;; 64 Prohibits input of a Z ;
;;; coordinate to the getdist ;
;;; function; lets an application ;
;;; ensure that this function returns ;
;;; a 2D distance. ;
;;; ;
;;; Arguments: ;
;;; point = a list of three reals that denotes where the ;
;;; rubber-banding visual aid will commence. ;
;;; msg = a string value to print on the Command: prompt. ;
;;; ;
;;; Returned Value: a real number denoting a distance ;
;;; ;
;;; Usage: (get-dist '(0 0 0 ) "\nSelect a Point:") ;
;;;--------------------------------------------------------------------;
(defun get-dist (point msg)
(if (null msg) (setq msg ""))
(initget 103) ;(+ 1 2 4 32 64)
(if point
(getdist point msg)
(getdist msg)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-INTEGER ;
;;; ;
;;; Description: This function prompts the user for an integer ;
;;; value. ;
;;; User input is curtailed via a call to initget ;
;;; whose sum of the bit values determine the ;
;;; behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; ;
;;; Arguments: ;
;;; msg = a string value to print on the Command: prompt. ;
;;; ;
;;; Returned Value: an integer. ;
;;; ;
;;; Usage: (get-integer "\nEnter a Number:") ;
;;;--------------------------------------------------------------------;
(defun get-integer (msg / circl-number)
(initget 7) ;;(+ 1 2 4)
(setq circl-number (GETINT msg))
)
;;;--------------------------------------------------------------------;
;;; Function: GET-YES/NO ;
;;; ;
;;; Description: This function prompts the user for a response. ;
;;; Yes is default. ;
;;; User input is curtailed via a call to initget ;
;;; whose sum of the bit values determine the ;
;;; behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; ;
;;; Arguments: ;
;;; msg = a string value to print on the Command: prompt. ;
;;; ;
;;; Returned Value: T if Yes yes or a enter is selected. ;
;;; Nil otherwise. ;
;;; ;
;;; Usage: (get-Yes/No "\nDo you want to play a game?: ") ;
;;;--------------------------------------------------------------------;
(defun get-Yes/No (msg)
(initget "Yes No")
(setq ans (getkword (strcat msg " <[Yes]/No> ")))
(setq ans (or (null ans)
(= (ascii ans) 89 ;|Y|;)
(= (ascii ans) 121 ;|y|;)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-NO/YES ;
;;; ;
;;; Description: This function prompts the user for a response. ;
;;; No is default. ;
;;; User input is curtailed via a call to initget ;
;;; whose sum of the bit values determine the ;
;;; behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; ;
;;; Arguments: ;
;;; msg = a string value to print on the Command: prompt. ;
;;; ;
;;; Returned Value: T if No no or a enter is selected. ;
;;; Nil otherwise. ;
;;; ;
;;; Usage: (get-No/Yes "\nDo you want to play a game?: ") ;
;;;--------------------------------------------------------------------;
(defun get-No/Yes (msg)
(initget "Yes No")
(setq ans (getkword (strcat msg " <Yes/[No]> ")))
(setq ans (or (null ans)
(= (ascii ans) 78 ;|N|;)
(= (ascii ans) 110 ;|n|;)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-RADIUS-FROM-POINT ;
;;; ;
;;; Description: This function prompts the user for a radius from ;
;;; a known point. ;
;;; ;
;;; Required Functions: ;
;;; get-dist ;
;;; ;
;;; Arguments: ;
;;; point = a list of three reals that denotes where the ;
;;; rubber-banding visual aid will commence. ;
;;; ;
;;; Returned Value: a real number denoting a distance ;
;;; ;
;;; Usage: (get-radius-from-point '(0 0 0 )) ;
;;;--------------------------------------------------------------------;
(defun get-radius-from-point (point)
(if point
(get-dist point "\nRadius: ")
(get-dist nil "\nRadius: ")
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-RUN-RCTR-TST-PARAMETERS ;
;;; ;
;;; Description: This function sets a value of the global: ;
;;; *use-dialog*, calls the dialog for parameters if ;
;;; the user selected yes for "Use dialog? " ;
;;; If the user selected no, a command line ;
;;; interaction with the user commences to retreive ;
;;; neccesary information. ;
;;; ;
;;; Required Functions: ;
;;; call-GetParams-dlg ;
;;; prompt-run-rctr-tst-parameters ;
;;; get-model-space ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: T if user pressed Ok. ;
;;; Nil if the user pressed Cancel. ;
;;; ;
;;; Usage: (get-run-rctr-tst-parameters) ;
;;;--------------------------------------------------------------------;
(defun get-run-rctr-tst-parameters (/ ans)
(if (setq *use-dialog*
(if *use-dialog*
(get-Yes/No "Use dialog? ")
(not (get-No/Yes "Use dialog? "))
)
)
(call-GetParams-dlg)
(prompt-run-rctr-tst-parameters)
)
)
;;;--------------------------------------------------------------------;
;;; Function: CALL-GETPARAMS-DLG ;
;;; ;
;;; Description: This function seeds temporary global varibles ;
;;; from the global variables define previously. ;
;;; Then invokes the dialog function and restores ;
;;; the values from the user interaction to the ;
;;; main global variables. ;
;;; ;
;;; Required Functions: ;
;;; run-GetParams-dlg ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: T if user pressed Ok. ;
;;; Nil if the user pressed Cancel. ;
;;; ;
;;; Usage: (call-GetParams-dlg) ;
;;;--------------------------------------------------------------------;
(defun call-GetParams-dlg (/ ans)
(setq radius *previous-radius*
circle-number *previous-circle-number*
color *previous-color*
ans (run-GetParams-dlg)
)
(cond
((= ans 0) nil) ;OK button was pressed
(t
;; remember new values as new defaults
(setq *previous-radius* radius
*previous-color* color
*previous-circle-number* circle-number
)
ans
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: PROMPT-RUN-RCTR-TST-PARAMETERS ;
;;; ;
;;; Description: This function invokes a command line ;
;;; interaction with the user commences to retreive ;
;;; neccesary information. ;
;;; ;
;;; Required Functions: ;
;;; select-a-curve ;
;;; get-radius-from-point ;
;;; get-integer ;
;;; get-Yes/No ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: T if the user input was retreived. ;
;;; Nil if the user did not select a curve object, ;
;;; ;
;;; Usage: (prompt-run-rctr-tst-parameters) ;
;;;--------------------------------------------------------------------;
(defun prompt-run-rctr-tst-parameters ()
(if (setq aCurve (select-a-curve))
(progn
(setq radius (get-radius-from-point (vlax-curve-getStartPoint aCurve)))
(setq circle-number (get-integer "\nNumber of circles: "))
(setq color (get-integer "\nColor index: "))
(setq *use-persistent-reactor*
(if *use-persistent-reactor*
(get-Yes/No "Make reactor persistent? ")
(not (get-No/Yes "Make reactor persistent? "))
)
)
t
)
nil
)
)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-MODEL-SPACE ;
;;; ;
;;; Description: This function creates an ACAD model space object. ;
;;; Note: acadModel is global. ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a global vla model space object. ;
;;; ;
;;; Usage: (create-model-space) ;
;;;--------------------------------------------------------------------;
(defun create-model-space (/ acadApp acadDoc)
(and
(setq acadApp (vlax-get-acad-object))
(setq acadDoc (vla-get-ActiveDocument acadApp))
(setq acadModel(vla-get-ModelSpace acadDoc))
)
)
;;;--------------------------------------------------------------------;
;;; Function: SELECT-A-CURVE ;
;;; ;
;;; Description: This function prompts the user to select a ;
;;; curve object. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a val curve object. ;
;;; ;
;;; Usage: (select-a-curve) ;
;;;--------------------------------------------------------------------;
(defun select-a-curve (/ curve sel)
(if
(and
(setq sel (entsel "Please choose a curve: "))
(setq curve (vlax-ename->vla-object (car sel)))
(vlax-curve-getStartPoint curve) ;test on curve
)
curve
nil
)
)
;;;--------------------------------------------------------------------;
;;; Function: RCTR-TST ;
;;; ;
;;; Description: This function aids the user in: ;
;;; 1. Selecting a curve object. ;
;;; 2. Gather information for circle radius, color ;
;;; and quantity.
;
;;; 3. Asks for persistency for the curve reactor. ;
;;; ;
;;; Required Functions: ;
;;; get-run-rctr-tst-parameters ;
;;; create-model-space ;
;;; circles-tied-to-curve ;
;;; create-same-reactor ;
;;; make-same-radius ;
;;; save-property ;
;;; create-translate-curve-reactor ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a vlr object reactor. ;
;;; ;
;;; Usage: (rctr-tst) ;
;;;--------------------------------------------------------------------;
(defun C:rctr-tst (/ AcadModel radius
circle-number start
aCurve color reactors
circles-list
)
;;; Get parameters from user
;;; and prepare model space
(if (and (get-run-rctr-tst-parameters) (create-model-space))
(progn
;;; setup reactor to tie circles on line
(setq
reactors (cons
(circles-tied-to-curve aCurve radius circle-number)
reactors
)
)
;;; setup reactor to make circles have eq, radius
(setq circles-list (vlax-ldata-get aCurve "circles"))
(setq reactors (cons
(create-same-reactor
circles-list
(function make-same-radius)
; prevent name drop
)
reactors
)
)
;;; put color to circles and curve
(foreach circle circles-list
(vla-put-Color circle color)
(vla-Update circle)
(save-property circle "Center") ;prepare for the next step
)
(vla-put-Color aCurve color)
;;; setup reactor to make aCurve follow circles moves
(setq reactors
(cons (create-translate-curve-reactor circles-list aCurve)
reactors
)
)
;;; if needed make all reactors persistent
(if *use-persistent-reactor*
(foreach react reactors
(vlr-pers react)
)
); if pers
)
)
(vla-Update (vlax-get-acad-object))
(princ "\nRctr-Tst Finished.")
(princ)
)

;;; EOF
hÛÖï|#Å»)há
4Ðd
´[
 ÉmhÂhÕåA+X
 É
ÛÄxýß×_
h Éh É
/íh É
K×
½h¼ª£¹òv́ÉB»Ý
Fh É
ø2éú
h Éh Év³Ð ó y u
Ñú>
endstream
24
endobj0 obj<</Subtype/Image/Length 19/Filter/FlateDecode/BitsPerComponent 8/ColorSp
ace 516 0 R/Width 98/Height 1/Type/XObject>>stream
H
rE @  ¸[
endstream
25
endobj
0 obj<</Subtype/Image/Length 48/Filter/FlateDecode/ImageMask true/BitsPerComp
onent 1/Width 125/Height 365/Type/XObject>>stream
H ìÇ!@°oBÿßìÐ(jsK¦ÿ rwwwwwwwwww¿x-À2k6
e;;;
;;; REDIR.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
(defun c:redir ( / path1 path2 mode)
(acet-error-init
(list
(list "cmdecho" 0
"fontalt" (getvar "fontalt")
)
T
'(setq #redir_datalist nil)
);list
);acet-error-init
(if (and (not (acet-file-find-font (getvar "fontalt")))
(findfile "txt.shx")
);and
(setvar "fontalt" "txt.shx")
);if
(setq mode (bns_get_cur_redirmode))
(bns_princ_redirmode mode)
(princ "\nFind and replace directory names")
(setq path1 "?")
(while (or (equal path1 "?")
(equal path1 "")
);or
(setq path1 (getstring T "\nEnter old directory (use '*' for all), or ? <option
s>: ")
path1 (acet-str-space-trim path1)
path1 (acet-str-lr-trim "\"" path1)
path1 (xstrcase path1)
);setq
(cond
((equal path1 "*")
(setq path1 "*")
)
((equal path1 "?")
(textscr)
(bns_list_file_refs)
(setq path1 "?")
)
((equal "" path1)
(bns_get_redirmode nil)
)
((or (wcmatch path1 "*` ")
(wcmatch path1 "*`?*")
(wcmatch path1 "*<*")
(wcmatch path1 "*>*")
(wcmatch path1 "*|*")
);or
(princ "\n*Invalid*")
(if (or (wcmatch path1 "*` ")
(wcmatch path1 "*`?*")
);or
(princ (strcat " Wild cards are only partially supported for search and r
eplace."
"\n- Press return to set object type options."
"\n- Enter \"*\" to change all paths"
"\n- Enter \"?\" to list current file references by select
ed object types."
)
);princ
(princ " character")
);if
(setq path1 "")
)
);cond close
);while
(if (not (equal path1 ""))
(progn
(while (not (acet-filename-valid path2))
(setq path2 (getstring T
(acet-str-format "\nReplace \"%1\" with: " path1)
)
path2 (acet-str-space-trim path2)
path2 (acet-str-lr-trim "\"" path2)
path2 (xstrcase path2)
);setq
(if (not (acet-filename-valid path2))
(progn
(princ "\n*Invalid*")
(setq path2 nil)
);progn then
);if
);while
(bns_redir path1 path2)
);progn then
);if
(setq #redir_datalist nil)
(acet-error-restore)
);defun c:redir
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir ( path1 path2 / stlst xrflst ilst rtlst mode)
(acet-error-init
(list
(list "cmdecho" 0)
T
'(setq #redir_datalist nil)
);list
);acet-error-init
(setq mode (bns_get_cur_redirmode) ;possible bits in mode:
; 1 styles/shapes
; 2 xrefs
; 4 images
; 8 rtext
path1 (xstrcase path1)
);setq
(if (and (not (equal path1 ""))
(acet-filename-valid path2)
);and
(progn
(setq path1 (acet-str-replace "/" "\\" path1)
path2 (xstrcase path2)
path2 (acet-str-replace "/" "\\" path2)
);setq
(princ (acet-str-format "\nSearching for old dir: %1" path1))
(princ (acet-str-format "\nin order to replace it with: %1" path2))
(if (equal 2 (logand 2 mode)) ;redir paths to XREFS
(setq xrflst (bns_redir_xrefs path1 path2));setq then
);if

(if (equal 1 (logand 1 mode)) ;redir paths for SHAPE and FONTS in the style
table
(setq stlst (bns_redir_styles path1 path2));setq
);if
(if (equal 4 (logand 4 mode)) ;redir paths for IMAGES
(setq ilst (bns_redir_images path1 path2));setq then
);if
(if (equal 8 (logand 8 mode)) ;redir paths for RTEXT objects
(setq rtlst (bns_redir_rtext path1 path2));setq then
);if
(if stlst
(princ (acet-str-format "\n%1 style/shape records modified." (itoa (fi
x (car stlst)))))
);if
(if ilst
(princ (acet-str-format "\n%1 image references modified." (itoa (fix (
car ilst)))))
);if
(if xrflst
(princ (acet-str-format "\n%1 xrefs modified." (itoa (fix (car xrflst)
))))
);if
(if rtlst
(princ (acet-str-format "\n%1 rtext objects modified." (itoa (fix (car
rtlst)))))
);if
(if (and (not (equal (length (acet-table-name-list "block"))
(length (acet-table-name-list '("block" 4)))
);equal
);not
(or (and (car xrflst) (/= 0 (car xrflst)))
(and (car stlst) (/= 0 (car stlst)))
(and (car ilst) (/= 0 (car ilst)))
(and (car rtlst) (/= 0 (car rtlst)))
);or
);and
(princ "\nChanges to some externally referenced objects may be temporar
y.")
);if
);progn then
(progn
(if (not (acet-filename-valid path2))
(princ "\nInvalid new directory specification.")
(princ "\nOld directory not specified.")
);if
);progn else print an error.
);if
(setq #redir_datalist nil)
(acet-error-restore)
);defun bns_redir
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_xrefs ( path1 path2 / lst n na e1 a b c d j k slst fna)
;(print "bns_redir_xrefs")(print "")
(setq lst (acet-table-name-list "block")
j 0
k 0
);setq
(setq n 0)
(repeat (length lst)
(setq na (tblobjname "block" (nth n lst)));setq
(if (and na
(setq e1 (entget na))
(setq a (cdr (assoc 70 e1))
slst (list "XREF" (cdr (assoc 2 e1)))
);setq
(equal 4 (logand 4 a))
);and
(progn
(if (not (setq fna (cdr (assoc 3 e1))))
(setq fna (cdr (assoc 1 e1)));setq
);if
(setq b (xstrcase fna)
b (acet-str-replace "/" "\\" b)
);setq
(if (equal "" (acet-filename-extension b))
(setq b (strcat b ".DWG"))
);if
(setq c (bns_path_replace path1 path2 b));setq
(if (and (not (acet-str-equal b c))
(setq d (acet-file-find c))
);and
(progn
(princ (bns_redir_format
(list (car slst)
(cadr slst)
(strcat fna " ->")
c
)
)
);princ
(command "_.xref" "_p" (cdr (assoc 2 e1)) c)
(while (wcmatch (getvar "cmdnames") "*XREF*")
(command "")
);while
(setq j (+ j 1));setq
);progn
(progn
(if (not (acet-str-equal b c))
(princ (acet-str-format "\nCannot find xref: %1." c ))
);if
);progn else
);if
);progn then
);if
(setq n (+ n 1));setq
);repeat
(list j)
);defun bns_redir_xrefs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_styles ( path1 path2 / e1 lst n a
b c d j found str slst lst3 lst4
)
(acet-autoload '("bns_flt.lsp" "(bns_tbl_match tbl flt)"))
(setq lst (bns_tbl_match "style" '((-4 . "<NOT")
(-4 . "&") (70 . 1)
(-4 . "NOT>")
)
);bns_tbl_match
);setq
(setq j 0
n 0
);setq
(repeat (length lst)
(setq e1 (nth n lst)
str (cdr (assoc 2 e1))
);setq
(if (equal 16 (logand 16 (cdr (assoc 70 e1))))
(setq lst4 (append lst4 (list (cdr (assoc 2 e1))))
e1 nil
);setq then it's xref'd so let the bns_util.arx functions handle this one.
);if
(if (equal "" str)
(setq slst (list "SHAPE" str));setq then
(setq slst (list "STYLE" str));setq else
);if
(if (and (setq a (cdr (assoc 3 e1)))
(not (equal a ""))
);and
(progn
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
lst3 nil
c (bns_path_replace path1 path2 a)
);setq
(setq found T)
(if (and (not (acet-str-equal a c))
(setq found (acet-file-find-font c))
);and
(progn
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
(strcat (cdr (assoc 3 e1)) " ->")
c
)
);bns_redir_format
);list
);append
);setq
(princ (car lst3))
(setq j (+ j 1));setq
(setq e1 (subst (cons 3 c) (assoc 3 e1) e1));setq
);progn then
(progn
(if (and c
(not found)
);and
(princ (acet-str-format "\nCannot find font: %1" c))
);if
(setq c nil)
);progn else
);if
);progn then
);if
(if (and (not (equal str ""))
(setq b (cdr (assoc 4 e1)));setq
(not (equal b ""))
);and
(progn
(setq b (xstrcase b)
b (acet-str-replace "/" "\\" b)
d (bns_path_replace path1 path2 b)
);setq
(setq found T)
(if (and (not (acet-str-equal b d))
(acet-file-find-font d)
);and
(progn
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
(strcat (cdr (assoc 4 e1)) " ->")
d
)
)
);list
);append
);setq
(princ (cadr lst3))
(if (not c)
(setq j (+ j 1));setq
);if
(setq e1 (subst (cons 4 d) (assoc 4 e1) e1));setq
);progn then
(progn
(if (and d
(not found)
);and
(princ (acet-str-format "\nCannot find bigfont: %1" d))
);if
(setq d nil)
);progn else
);if
);progn then
);if
(if (and e1
(not (equal e1 (nth n lst)))
);and
(entmod e1)
);if
(setq n (+ n 1));setq
);repeat
(setq lst4 (bns_redir_styles2 path1 path2 lst4)
j (list (fix (+ j (car lst4)))
0
);list
);setq
j
);defun bns_redir_styles
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun bns_redir_images ( path1 path2 / owner lst lst2 lst3 k n na e1 a b j
found slst)
;(setq lst3 (bns_get_namedobjdict_all));setq
(if (assoc "IMAGES" #redir_datalist)
(setq lst3 (cdr (assoc "IMAGES" #redir_datalist)));setq
(setq lst3 (bns_get_namedobjdict_all)
#redir_datalist (append #redir_datalist
(list (append (list "IMAGES") lst3))
);append
);setq
);if
(setq j 0)
(setq k 0)
(repeat (length lst3)
(setq owner (nth k lst3)
lst (dictsearch (car owner) "ACAD_IMAGE_DICT")
lst2 (acet-list-m-assoc 3 lst)
lst (acet-list-m-assoc 350 lst)
);setq
(setq n 0)
(repeat (length lst)
(setq na (cdr (nth n lst)))
(setq
e1 (entget na)
a (cdr (assoc 1 e1)) ;filename
);setq
(if a
(progn
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
);setq
(if (equal "" (cadr owner))
(setq slst (list "IMAGE" (cdr (nth n lst2))));setq then its local
(setq slst (list "IMAGE"
(strcat (cadr owner) "|"
(cdr (nth n lst2))
);strcat
);list else list as xrefed
);setq
);if
(setq b (bns_path_replace path1 path2 a));setq else
);progn then
);if
(setq found T)
(if (and a
(not (acet-str-equal a b))
(setq found (acet-file-find-image b));setq
(setq e1 (subst (cons 1 b) (assoc 1 e1) e1));setq
(entmod e1)
);and
(progn
(princ (bns_redir_format
(list (car slst)
(cadr slst)
(strcat a " ->")
b
)
)
);princ
(setq j (+ j 1));setq
);progn then
(progn
(if (not found)
(princ (acet-str-format "\nCannot find image: %1" b))
);if
);progn
);if
(setq n (+ n 1));setq
);repeat
(setq k (+ k 1));setq
);repeat
(list j)
);defun bns_redir_images
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Returns a list of sublists
;((entityname ownerblockname) ...)
;
(defun bns_get_namedobjdict_all ( / lst a b c j n lst2 lst3 lst4)
(princ "\nSearching for nested image references...")
(setq lst (bns_tbl_match "block"
'(
(-4 . "<OR")
(-4 . "&") (70 . 4)
(-4 . "&") (70 . 16)
(-4 . "OR>")
) ; xref blocks
)
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
a (cdr (assoc 2 a));the block name
lst2 (append lst2 (list a))
);setq
(setq n (+ n 1));setq
);repeat
(setq lst lst2
lst2 nil
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq the block name
(if (not (member a lst4))
(setq lst2 (bns_blk_match a ;block name
'((0 . "IMAGE")) ;filter
nil ;internal use argument
nil ;T ; search nested block insert
s
)
lst2 (car lst2)
);setq then
(setq lst2 nil);setq else already searched this xref as nested under another
xref
);if
(setq j 0)
(repeat (length lst2)
(setq b (car (nth j lst2)) ;the image
c (cadr (nth j lst2)) ;the owner block
b (cdr (assoc 340 b)) ;the imagedef entname
)
(setq
b (entget b) ;the imagedef
b (cdr (assoc 330 b)) ;the owner dictionary entname
)
(setq
b (entget b) ;the owner dictionary
b (cdr (assoc 330 b)) ;the namedobjdict owner
);setq
(if (wcmatch c "*|*")
(setq c (car (acet-str-to-list "|" c)))
(setq c a)
);if
(setq b (list b c)) ;the namedobjdict and the block it came from
(if (not (member c lst4))
(setq lst4 (append lst4 (list c)));setq
);if
(if (equal (float (/ j 100)) (/ (float j) 100.0))
(acet-spinner)
);if
(if (not (assoc (car b) lst3))
(setq lst3 (append lst3 (list b)));setq then
);if
(setq j (+ j 1));setq
);repeat
(acet-spinner)
(setq n (+ n 1));setq
);repeat through the xrefd blocks
(if (not (assoc (namedobjdict) lst3))
(setq lst3 (append (list (list (namedobjdict) ""))
lst3
);append
);setq then add the local dictionary
);if
(princ "Done.")
(setq a "")
(repeat 80 (setq a (strcat a (chr 8))))
(princ a)
(princ (strcat " "))

lst3
);defun bns_get_namedobjdict_all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_get_rtext_list ( / a lst na ss n)
(princ "\nSearching for rtext objects...")
(setq
lst (bns_blktbl_match '((0 . "RTEXT")
(70 . 0)
)
);bns_blktbl_match
);setq
(setq ss (ssget "_x" '((0 . "RTEXT")
(70 . 0)
)
);ssget
);setq
(if (not ss)
(setq ss (ssadd))
);if
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n))
(setq lst (append lst (list (list na))));setq
(setq n (+ n 1));setq
);repeat
(setq a "")
(repeat 80 (setq a (strcat a (chr 8))))
(princ a)
(princ (strcat " "))
lst
);defun bns_redir_get_rtext_list
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_rtext ( path1 path2 / found lst str lst2 na e1 n a b c j k)
(if (assoc "RTEXT" #redir_datalist)
(setq lst (cdr (assoc "RTEXT" #redir_datalist)));setq
(setq lst (bns_redir_get_rtext_list)
#redir_datalist (append #redir_datalist
(list (append (list "RTEXT") lst))
);append
);setq
);if
(setq str (acet-layer-unlock-all)
lst2 (acet-table-name-list (list "block" 4 16));list of local block names
k 0
);setq
(setq j 0)
(setq n 0)
(repeat (length lst)
(setq c (nth n lst)
na (car c)
c (cadr c)
)
(setq
e1 (entget na)
a (cdr (assoc 1 e1))
);setq
(if a
(progn
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
b (bns_path_replace path1 path2 a)
);setq
(setq found T)
(if (and (not (equal (xstrcase b) (xstrcase a)))
(setq found (findfile b))
(entmod (subst (cons 1 b) (assoc 1 e1) e1));then modify it.
);and
(progn
(if c
(progn
(if (not (member c lst2))
(setq c (strcat "(xref/block " c ")")
k (+ k 1)
);setq
(setq c (strcat "(block " c ")"));setq
);if
);progn
(setq c "")
);if
(princ (bns_redir_format
(list "RTEXT"
c
(strcat (cdr (assoc 1 e1)) " ->")
b
)
)
);princ
(setq j (+ j 1))
);progn then
(progn
(if (not found)
(princ (acet-str-format "\nCannot find rtext file: %1" b))
);if
);progn
);if
);progn then
);if
(setq n (+ n 1));setq
);repeat
(if str
(command "_.-layer" "_lock" str "")
);if
(list j k)
);defun bns_redir_rtext
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_list_file_refs ( / str mode )
(setq str (getstring T "\nEnter file references to list <*>: "));setq
(if (or (not str)
(equal str "")
);or
(setq str "*")
);if
(setq mode (bns_get_cur_redirmode))
(princ "\n")
(bns_princ_redirmode mode)
(princ (bns_redir_format (list " TYPE" " NAME" " FILE")))
(princ "\n----------------------------------------------------------------------
----")
(if (equal 1 (logand 1 mode))
(progn
(bns_redir_list_style_file_refs str) ;the styles
(bns_redir_list_shape_file_refs str) ;the styles
(princ "\n")
);progn
);if
(if (equal 2 (logand 2 mode))
(progn
(bns_redir_list_table_file_refs "block" str) ;the xrefs
(princ "\n")
);progn
);if
(if (equal 4 (logand 4 mode)) ;the images
(progn
(bns_redir_list_images str)
(princ "\n")
);progn
);if
(if (equal 8 (logand 8 mode)) ;the RTEXT objects
(progn
(bns_redir_list_rtext str)
(princ "\n")
);progn
);if
);defun bns_list_file_refs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_list_style_file_refs ( wc / lst e1 n j a b str slst lst3
)
(setq lst (bns_tbl_match "style" '((-4 . "<NOT")
(-4 . "&") (70 . 1)
(-4 . "NOT>")
)
);bns_tbl_match
);setq
(setq j 0
n 0
);setq
(repeat (length lst)
(setq e1 (nth n lst)
str (cdr (assoc 2 e1))
);setq
(if (equal "" str)
(setq slst (list "SHAPE" str));setq then
(setq slst (list "STYLE" str));setq else
);if
(if (and (setq a (cdr (assoc 3 e1)))
(not (equal a ""))
);and
(progn
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
lst3 nil
);setq
;a-c reg font
;b-d big font
(if (wcmatch (xstrcase a) (xstrcase wc))
(progn
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
a
)
);bns_redir_format
);list
);append
);setq
(princ (last lst3))
);progn then
);if
);progn
);if
(if (and (not (equal str ""))
(setq b (cdr (assoc 4 e1)))
(not (equal b ""))
);and
(progn
(setq b (xstrcase b)
b (acet-str-replace "/" "\\" b)
);setq
(if (wcmatch (xstrcase b) (xstrcase wc))
(progn
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
b
)
)
);list
);append
);setq
(princ (last lst3))
);progn then
);if
);progn then
);if
(setq n (+ n 1));setq
);repeat

);defun bns_redir_list_style_file_refs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_list_rtext ( str / na e1 n a b lst lst2)

(if (assoc "RTEXT" #redir_datalist)


(setq lst (cdr (assoc "RTEXT" #redir_datalist)));setq
(setq lst (bns_redir_get_rtext_list)
#redir_datalist (append #redir_datalist
(list (append (list "RTEXT") lst))
);append
);setq
);if
(setq lst2 (acet-table-name-list (list "block" 4 16));list of local block names
);setq
(setq n 0)
(repeat (length lst)
(setq b (nth n lst)
na (car b)
b (cadr b)
)
(setq
e1 (entget na)
a (cdr (assoc 1 e1))
);setq
(if (and a
;(not (equal "$" (substr a 1 1)))
(wcmatch (xstrcase a) (xstrcase str))
);and
(progn
(if b
(progn
(if (not (member b lst2))
(setq b (strcat "(xref/block " b ")"));setq
(setq b (strcat "(block " b ")"));setq
);if
);progn
(setq b "")
);if
(princ (bns_redir_format
(list "RTEXT"
b
a
)
)
);princ
);progn then
);if
(setq n (+ n 1));setq
);repeat
);defun bns_redir_list_rtext

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_list_images ( wc / lst lst2 lst3 lst4 owner n j na e1 a slst)

(if (assoc "IMAGES" #redir_datalist)


(setq lst4 (cdr (assoc "IMAGES" #redir_datalist)));setq
(setq lst4 (bns_get_namedobjdict_all)
#redir_datalist (append #redir_datalist
(list (append (list "IMAGES") lst4))
);append
);setq
);if
(setq j 0)
(repeat (length lst4)
(setq wc (xstrcase wc)
owner (nth j lst4)
lst (dictsearch (car owner) "ACAD_IMAGE_DICT")
lst2 (acet-list-m-assoc 3 lst)
lst (acet-list-m-assoc 350 lst)
);setq
(setq n 0)
(repeat (length lst)
(setq na (cdr (nth n lst))
)
(setq
e1 (entget na)
a (cdr (assoc 1 e1))
a (xstrcase a)
a (acet-str-replace "/" "\\" a)
);setq
(if (equal "" (cadr owner))
(setq slst (list "IMAGE " (cdr (nth n lst2))));setq then
(setq slst (list "IMAGE "
(strcat (cadr owner) "|" (cdr (nth n lst2)))
)
);setq else
);if
(if (wcmatch (xstrcase (cdr (assoc 1 e1))) (xstrcase wc))
(setq lst3 (append lst3
(list (bns_redir_format
(list (car slst)
(cadr slst)
(cdr (assoc 1 e1))
)
)
)
);append
);setq then
);if
(setq n (+ n 1));setq
);repeat
(setq j (+ j 1));setq
);repeat
(if lst3
(setq lst3 (acad_strlsort lst3))
);if
(while lst3
(princ (car lst3))
(setq lst3 (cdr lst3));setq
);while
;(princ "\n")

);defun bns_redir_list_images
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_list_table_file_refs ( tbl wc / tbl2 a na e1 n lst lst3)
(if (not wc)
(setq wc "*")
);if
(setq tbl (xstrcase tbl)
wc (xstrcase wc)
lst (acet-table-name-list tbl)
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
na (tblobjname tbl a)
e1 (entget na)
a (cdr (assoc 3 e1))
)
(if (not a)
(setq a (cdr (assoc 1 e1)));setq then fix for xref group code change
);if
(if (and (equal tbl "STYLE")
(equal (cdr (assoc 2 e1)) "")
(equal 1 (cdr (assoc 70 e1)))
);and
(setq tbl2 "SHAPE")
(progn
(if (equal "BLOCK" (xstrcase tbl))
(setq tbl2 "XREF")
(setq tbl2 tbl)
);if
);progn else
);if
(if a
(progn
(if (and (not (equal a ""))
(wcmatch (xstrcase a) wc)
(or (and (equal "BLOCK" (xstrcase tbl))
;(cdr (assoc 1 e1))
(equal 4 (logand 4 (cdr (assoc 70 e1))))
);and
(equal "STYLE" (xstrcase tbl))
);or
);and
(setq lst3 (append lst3
(list (bns_redir_format
(list tbl2
(cdr (assoc 2 e1))
a
);list
);bns_redir_format
);list
);append
);setq then
);if
(if (and (equal tbl "STYLE")
(not (equal "" (cdr (assoc 4 e1))))
);and
(setq lst3 (append lst3
(list (bns_redir_format
(list tbl2
(cdr (assoc 2 e1))
(cdr (assoc 4 e1))
);list
);bns_redir_format
);list
);append
);setq then it's a style and we need to list the bigfont too.
);if
);progn then
);if
(setq n (+ n 1));setq
);repeat
(if lst3
(setq lst3 (acad_strlsort lst3))
);if
(while lst3
(princ (car lst3))
(setq lst3 (cdr lst3));setq
);while
;(princ "\n")
);defun bns_redir_list_table_file_refs

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:redirmode ( / ) ;dialog unless script or cmddia=0
(acet-error-init nil)
(bns_get_redirmode nil)
(acet-error-restore)
);defun c:redirmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:-redirmode ( / ) ;command line
(acet-error-init nil)
(bns_get_redirmode T)
(acet-error-restore)
);defun c:-redirmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_get_redirmode ( flag / mode)
(setq mode (bns_get_cur_redirmode))
(if (or flag
(equal 0 (getvar "cmddia"))
(equal 4 (logand 4 (getvar "cmdactive")))
);or
(bns_get_redirmode_cmd)
(bns_get_redirmode_dd)
);if
);defun bns_get_redirmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;bns_get_redirmode_cmd
;prompts for redirmode at the command line.
;sets the environment variable BNS_REDIRMODE
;The bns_redirmode variable controls the type of objects
;that the bns_redir function performs a search and replace on.
;it is a sum of the following:
;1 styles/shapes
;2 xrefs
;4 images
;8 rtext
;
(defun bns_get_redirmode_cmd ( / curmode mode lst lst2 a b n flag)
(setq curmode (bns_get_cur_redirmode)
mode curmode
);setq
(bns_princ_redirmode mode)
(setq lst (list '(1 "STYLES")
'(2 "XREFS")
'(4 "IMAGES")
'(8 "RTEXT")
);list
);setq
(while (not flag)
(setq a (getstring "\nReplace directories in Xrefs,Styles,Images,Rtext. <curren
t>: "))
(if (not (equal a ""))
(progn
(setq a (xstrcase a)
lst2 (acet-str-to-list "," a)
mode 0
flag nil
);setq
(while lst2 ;while parsing the input
(setq b (car lst2)
lst2 (cdr lst2)
);setq
(setq n 0)
(repeat (length lst) ;repeat through valid options looking for matches to
input
(setq a (nth n lst))
(if (and (not (equal b ""))
(wcmatch (cadr a) (strcat b "*"))
);and
(setq mode (+ mode (car a))
flag T
);setq
);if
(setq n (+ n 1));setq
);repeat
);while
);progn then
(setq flag T)
);if
(if (not flag)
(progn
(princ "*Invalid*")
(setq mode curmode)
);progn
(progn
(setenv "BNS_REDIRMODE" (itoa mode))
(bns_princ_redirmode mode)
);progn
);if
);while
mode
);defun bns_get_redirmode_cmd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;bns_get_redirmode_dd
;prompts for redirmode using a dcl dialog with check boxes.
;sets the environment variable BNS_REDIRMODE
;The bns_redirmode variable controls the type of objects
;that the bns_redir function performs a search and replace on.
;it is a sum of the following:
;1 styles/shapes
;2 xrefs
;4 images
;8 rtext
;
(defun bns_get_redirmode_dd ( / iv flag set_bit mode)
(setq mode (bns_get_cur_redirmode))
(if (> (setq iv (load_dialog "redir"));setq
0
);test
(progn
(if (new_dialog "redirmode" iv)
(progn
(if (equal 1 (logand 1 mode))
(set_tile "styles" "1")
(set_tile "styles" "0")
);if
(if (equal 2 (logand 2 mode))
(set_tile "xrefs" "1")
(set_tile "xrefs" "0")
);if
(if (equal 4 (logand 4 mode))
(set_tile "images" "1")
(set_tile "images" "0")
);if
(if (equal 8 (logand 8 mode))
(set_tile "rtext" "1")
(set_tile "rtext" "0")
);if
(defun set_bit ( a mode val / )
(if (and (equal "0" val)
(equal a (logand a mode))
);and
(setq mode (- mode a));subtract the bit
(progn
(if (equal "1" val)
(setq mode (logior a mode));setq then add the bit
);if
);progn else
);if
(if (<= mode 0) ;disable the OK button
(progn
(setq mode 0)
(set_tile "error" "Must select at least one option.")
(mode_tile "accept" 1)
);progn then
(progn
(set_tile "error" "")
(mode_tile "accept" 0)
);progn else
);if
mode
);defun set_bit
(action_tile "styles" "(setq mode (set_bit 1 mode $value))")
(action_tile "xrefs" "(setq mode (set_bit 2 mode $value))")
(action_tile "images" "(setq mode (set_bit 4 mode $value))")
(action_tile "rtext" "(setq mode (set_bit 8 mode $value))")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(acet-help \"REDIRMODE\")")
(setq flag (start_dialog));setq ;START_DIALOG MAKES THE BUTTONS ACTIV
E
(if (and (equal flag 1)
(> mode 0)
);and
(setenv "BNS_REDIRMODE" (itoa mode))
(setq mode (bns_get_cur_redirmode));setq else
);if
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load
(bns_princ_redirmode mode)
mode
);defun bns_get_redirmode_dd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Gets the current redirmode setting from the environment var "bns_redirmode"
;Returns an a bit sum integer. See header for bns_get_redirmode for more details
.
;
(defun bns_get_cur_redirmode ( / mode )
(if (not (setq mode (getenv "BNS_REDIRMODE")))
(progn
(setq mode (+ 1 2 4 8))
(setenv "BNS_REDIRMODE" (itoa mode))
);progn
(setq mode (atoi mode))
);if
mode
);defun bns_get_cur_redirmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_princ_redirmode ( mode / lst n a b )
(if (not mode)
(setq mode (bns_get_cur_redirmode))
);if
(setq lst (list '(1 "Styles")
'(2 "Xrefs")
'(4 "Images")
'(8 "Rtext")
);list
);setq
(setq b "")
(setq n 0)
(repeat (length lst)
(setq a (nth n lst));setq
(if (equal (car a) (logand (car a) mode))
(setq b (strcat b "," (cadr a)));setq
);if
(setq n (+ n 1));setq
);repeat
(if (equal (substr b 2) "")
(princ "\nCurrent REDIRMODE: None");then
(princ (acet-str-format "\nCurrent REDIRMODE: %1" (substr b 2)));else
);if
(substr b 2)
);defun bns_princ_redirmode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;
;following functions taken from bns_util
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_format ( lst / a b n j str)
(setq str " "
str (strcat str str str str str str str)
j (/ (strlen str) (length lst))
b ""
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
a (strcat a
(substr str
1
(max 0
(- j (strlen a))
);max
);substr
);strcat
b (strcat b " " a)
);setq
(setq n (+ n 1));setq
);repeat
(setq b (strcat "\n" (substr b 2)))
b
);defun bns_redir_format

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;handle shapes and xref'ed styles
;
(defun bns_redir_styles2 ( path1 path2 lst / app doc sty styob
a c j found str slst lst3
)
(vl-load-com)
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
sty (vla-get-textstyles doc)
);setq
(setq j 0);setq
(vlax-for styob sty
(setq a (vla-get-fontfile styob));setq
(if a
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
str (vla-get-name styob)
lst3 nil
c (bns_path_replace path1 path2 a)
);setq
);if
(setq found T)
(if (and a
(or (equal "" str)
(member str lst)
);or
(not (equal a c))
(setq found (acet-file-find-font c))
);and
(progn
(if (equal str "")
(setq slst (list "SHAPE" str));setq then
(setq slst (list "STYLE" str));setq then
);if
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
(strcat (vla-get-fontfile styob) " ->")
c
)
);bns_redir_format
);list
);append
);setq
);progn then
(progn
(if (and c
(not found)
);and
(princ (strcat "\nCannot find shape file: " c))
);if
(setq c nil)
);progn else
);if
(if c
(progn
(princ (car lst3))
(setq j (+ j 1));setq
(vla-put-fontfile styob c)
);progn then
);if
);vlax-for
(list j 0)
);defun bns_redir_styles2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_redir_list_shape_file_refs ( wc / app doc sty styob
a str slst lst3
)
(vl-load-com)
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
sty (vla-get-textstyles doc)
);setq
(vlax-for styob sty
(setq a (vla-get-fontfile styob));setq
(if a
(setq a (xstrcase a)
a (acet-str-replace "/" "\\" a)
str (vla-get-name styob)
lst3 nil
);setq
);if
;a-c reg font
(if (and a
(equal "" str)
(wcmatch (xstrcase a) (xstrcase wc))
);and
(progn
(setq slst (list "SHAPE" str));setq then
(setq lst3 (append lst3
(list
(bns_redir_format
(list (car slst)
(cadr slst)
a
)
);bns_redir_format
);list
);append
);setq
(princ (last lst3))
);progn then
);if
);vlax-for

);defun bns_redir_list_shape_file_refs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;old=path1
;new=path2
(defun bns_path_replace ( path1 path2 fna / a b)
(setq fna (xstrcase fna)
fna (acet-str-space-trim fna)
a (acet-filename-directory fna) ;drive/directory
b (acet-filename-path-remove fna) ;base filename
a (acet-str-replace "/" "\\" a)
);setq
(if (equal path1 "*")
(setq a path2);setq
(setq a (acet-str-replace path1 path2 a));setq
);if
(if (and (not (equal a ""))
(not (equal "\\" (substr a (strlen a) 1)))
(not (equal ":" (substr a (strlen a) 1)))
);and
(setq a (strcat a "\\"));setq then
);if
(setq fna (strcat a b));setq
fna
);defun bns_path_replace

(princ)
} ®6[¶§ÅŹlÝÉ ½pû5 ÁÏhEÈl ¤¡*ãZ êÈKw èF!ûäk ÕÌ| ® z ç
yÌ/ RI~ Î .£ _a ;ç: <{ó 2d=á_îtg ïÐ
=¦Jæ
ùñå
E¡Ì !l~
ªjóU÷
CéÝÊûf
ÿôå),Ånå¬ëRgèQU¡X]Un:Âô%
×f¸ MLd‾ë´O ó³rMX8ª>Å
SI E ÷æ %«
1LãÍëqENRÀË
ÀÕÀ
ų %"YFu¬ÃÁ³
 ÓeómI_Àd
lÔ}ʲ
É?º*z4µûhþ§o;
rù_îü;Shz4Je
Ù‾ ×ö ½|Ô ï®ç6ܹ
e½ÜvQãj³äe
é aø[ÿ52
´Í0KÀÞñÁr?ûðiÏT
¦¹¡úÃÃIg
s Oípû
?äãÃg,û}<:þÇ
wß W Ù;Î
)zL¹å%eZ÷¶ø£fX
ý }ù§ÌV3¥+ø ݱǬW Òú¥
£XÁ³ý
!É_îèRiÄ;ú«{Æßíf ÞŽ*RÒd¸ {ø\; º÷"ªQªx#m ØÖV ¾>- , Û c¹°fÀ Öu FQ+¡7qÖIv´*
-‾h¾¦
w*ºÏJEYB+Â
T ø@ªì'Ñ
gÆÅ~
2ÔJÔ|¿ ÊÒÙ´ëóÃ:b|ÝvÛ; V ?oºe ÿ¶# X°'«íÛñë7Òe ÀÓ<  6:& B
: [É
ñÕma—Ýî¡»
<Xæ\£ëM
?Ðw:
å EqHÛK
ÎW÷1D|Xse
 GCSêð%
èGé'o—
'Èÿ\Ä
৮hÔ°¢\Þbßé-nI
³JLÜÍ÷éâõ. 29Áþ?íÕ²Ü6
º ñI!=TÊ¢â=y÷ ï ü Ûo©½<y!BË_cüt¼ ªò×cf )©Ù2 —ÅáG Ü
û)¡`
 ǍÏÑó
brú4a
F¿»/
VëõÛám¿êF
tµc±C7I'sæî
!_< ]{kéØúýf½
)):ö_ ÐÎ‾m& 
SÓì
CÂ"gø
®<¬^ÓUí&tr-¸æo±zGuò
×7Ç@
I*´þûÍê
¦Ðji
#6Kåqk7wÝÆ.
=¤UñÐk
@;ë
è: e´.
°H[6þ¬
լΪÊÊ
'2o
«*'ÈRÕ1ô\
k'áÞE»s(ð
¦ìt-©$I©
ÀYÒ~d}c
ÍÂUõÌE
p- ¶
 ÞÜ«Ý X§
{*>¶
Ì-2C
D,ðM?÷û¤$¢
—>‾çÓ~_lâm´
2zmD( Þ&N6\Dg1&
Th½ýÉ˶&AéPDÅbÅ
=_=Á
ïb 
˺IĶT
 ° ø«}î
jgù3ÌÉ.'ýåa
 |y9ãnz}A
IJ÷C
 M;)È
—Îß
{¡jKØ˺8
cõ<ßï
oOsz
±ë ¢Ì [þ¤øª¼
3
ÒÍ_¶×KÊ@Ð{f
\í ùïâ
È$ºFkd%³õaöùë
< 5Jm
7tÙ<ó‾ß
9 /ö¾d
ÎR÷7½nn
Yò/'ß
è " S yK¾[TçM5ÉBÓ
ø5 — òñ9  .â¡;¤#
R³þ<½%B,ïÞôI)$
Ñó'C¡óéóã¦8C4µ[_,
GÑ»¼ T Ñïbl¨Ï¥
ólª]M6ÉØ)Wá
ª©:»"¶
%z½ý
Q°
.&iÏ
Æ ô»Çþ
\ Ä
«MElöÀ:=¦—íÐx «ã&Ù&b o
t^zÐkqÞyGÄÁùè~ü
öz»ÑAîü hV ä¾)^‾@
:îæ øx`§z¦Ç'ô
—ãúAAÔo
 ßÏÊk±
õ_ ¥gÇ3ÍûÎ ÇHQ¿
ó D,# ÈrµßÿL
Z)5È2J÷
Ä `ϲ^
× ØÞr
z
þøËp ®,QSÛvFçþ¿
ãO
Û @rÝ>,°Go 4×:ò&$ ÎfdM-§ 9ø1Ù$ kOO2!HLèI¼&4õÙXë b2< Ú$Ò »ÒV6VCnÊ2 
´¬ ×Õ¹8>tz i÷¼Áå¼îÑé~× Bm2 P=Ã0ÙuL5 óõõÏ ã5ñ¢±ißwû}2knÄ 0é¨%ë?ç
5 »ÇbäDÑ Ç »ª Ík¤$-D_@K µ?üNïr¨¼z Ó %Nc¦«'xðc !Pðø¬¸$¡ ûfÐ`
ç¬ W²H¨Èl} }þz`t /'  v ÊÇç¤g}¶Ì9c Ó
¢½ ²2´º t 3øAÃv
pi§\ &ÀE¹ ÛK Ý9j×$
ós nê[ <è
K  'õ
÷Õ1: æ ÝÁ¥ª-tÿ—Õñm5X²\ f{ëêÌƹ¬×Z!Ê]ztÊic~= ÄtuÖè‾Ñÿúÿ*WGíÔb¥£&‾óðW6 qæÂDÄY ˍìÍ
¢L§ÌJê,¬Ó 7'j J
P«ÂðÒ´Ô±çQ!í=@ë#x¾o c × Ýô%DÐ?O"á-Qj`Í  â êi¨²¥ªè¼\×j|ª VPY[ØçùËêü   Z ï Ë%º;3 Ìmüé{\;+º%r RÎ
KÒÒÖ
Ë æA -H ‾ PvkB#- ~ Ì/w &ͳn¼Þ=f ÿ ê±uXiû.× ÓdîÆ v_ !r Å vSÙ=fÁU~¥ Ù_ ÉeewzI%9 þIsjtìb#*åvô¤Ø
ª áP¼:ÿ¾+6q¡ rw÷oòbp!Ûâ\,2a#—2s jzÁ uú Ø »NØˤð±þ:eå®»;?¾Ä ¿' ;ù?, Î Bé º n y=ZL8!Bjñ×0!ë
P
ÆL>
L2ë¾LRM§?&fÁE
 ¿èÑ
HË æ«$
] tÑÀö}wÝÆà
ãî*Úf
v7=zÁW `clQZ
×ÿæêYT]'
KJRK°r ò À_íAùTº¬‾ æô /Ó³ê ü )¼È~\BsZäj  —ÄGéìRSR&[f ¿ Q"ûr¦
endstream
53
endobj
0 obj<</Subtype/Image/Length 56/Filter/FlateDecode/ImageMask true/BitsPerComp
onent 1/Width 125/Height 516/Type/XObject>>stream
H ìÇ1
°:Á¿ :ûÎ,0÷.Ù ¼u] »»»»»»»»»»»»»»»ï{>F(xýÐ
54 0 obj<</Subtype/Image/Length 11110/Filter/FlateDecode/BitsPerComponent 8;;;
endobj
endstream
;
;;; REGDUMP.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: ;
;;; Functions defined: ;
;;; registry-tree-dump ;
;;; dump-registered-apps ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates several registry-xxxx functions and how ;
;;; they can be used to create user defined registry functions. ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model functions here
(if (car (atoms-family 1 '("vl-load-com"))) (vl-load-com))
;;;--------------------------------------------------------------------;
;;; Function: REGISTRY-TREE-DUMP ;
;;; ;
;;; Description: This function dumps the registry contents for ;
;;; a specific key. ;
;;; ;
;;; Arguments: ;
;;; rkey = Registry Key Name ;
;;; indent = indent by a string value. ;
;;; This value can be nil. If nil it ;
;;; defaults to "" other this indent value is ;
;;; incremented internally as required. ;
;;; ;
;;; Returned Value: A consed list denoting: ;
;;; (Number-of-registry-decendants ;
;;; . Number-of-Keys) ;
;;; Note: This is used internally. ;
;;; ;
;;; Usage: (registry-tree-dump ;
;;; "HKEY_CURRENT_USER\\Software" "" ;
;;; ) ;
;;;--------------------------------------------------------------------;
;;;
;;;
(defun registry-tree-dump (rkey indent / vs ks)
(if (equal "\\" (substr rkey (strlen rkey)))
(setq rkey (substr rkey 1 (1- (strlen rkey))))
)
(or indent (setq indent ""))
(princ (strcat indent "Key: " rkey "\n"))
(if (setq vs (vl-registry-descendents rkey t)) ; value names
(progn
(princ indent)
(princ "- values:\n")
(foreach v (vl-sort vs '<)
(princ indent)
(princ (strcat
" "
(if (equal v "") "@" v)
": " ) )
(prin1 (vl-registry-read rkey v))
(terpri)
) )
(progn
(princ indent)
(princ "- no values\n")
)
)
(if (setq ks (vl-registry-descendents rkey)) ; subkey names
(progn
(princ indent)
(princ "- subkeys:\n")
(setq rkey (strcat rkey "\\")
indent (strcat indent " ") )
(foreach k (vl-sort ks '<)
(registry-tree-dump (strcat rkey k) indent)
) )
(progn
(princ indent)
(princ "- no subkeys\n")
)
)
(cons (length ks) (length vs))
)
;;;--------------------------------------------------------------------;
;;; Function: DUMP-REGISTERED-APPS ;
;;; ;
;;; Description: This function dumps the registry database ;
;;; subtree for every application that is registered ;
;;; to the current ACAD . ;
;;; ;
;;; Required Functions: ;
;;; registry-tree-dump ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (dump-registered-apps) ;
;;;--------------------------------------------------------------------;
(defun dump-registered-apps (/ AcadApp AppNames)
;; find registry key for current AutoCAD version
(setq AcadApp "HKEY_LOCAL_MACHINE\\Software\\Autodesk\\AutoCAD"
AcadApp (strcat AcadApp "\\"
(vl-registry-read AcadApp "CurVer") )
AcadApp (strcat AcadApp "\\"
(vl-registry-read AcadApp "CurVer")
"\\Applications" ) )
;; get list of registered applications
(setq AppNames (VL-SORT (vl-registry-descendents AcadApp) '<))
;; dump registry subtree for every application
(foreach app AppNames
(princ (strcat "\n=== " app " registry subtree dump\n"))
(setq app (vl-registry-read (strcat AcadApp "\\" app) "REGPATH"))
;; app starts with "\\\\" - Visual LISP does not like this
(setq app (substr app 3)) ;; So we remove some \\.
(registry-tree-dump app nil)
)
(length AppNames)
)
;;;--------------------------------------------------------------------;
;;; ;
;;; Note: ;
;;; To start this function cut and paste the function call below. ;
;;; (dump-registered-apps) ;
;;; ;
;;;--------------------------------------------------------------------;
;;; EOF
hgáG ÑÞë 9WË)} J¥úô¡ÄSÃ
àFq-xÒÌàÑ
ØMÍF Ê6‾KEvMÉÌ09
ZaгΦKE33ÜJEL|ö5µ#7dò$[6ËÜ}+ô:v^J{F£ ×rvÆÍÒ Ïc8 ÿE*SÁ ¡D&º~Ãp¢ H¾
jR
£ ùܵg#7ä
)ÄÓ PÚ¢4Âm»Eª©
ÒÞï÷@[ ‾ Ø3úA;
&I9 ¦¡ñI 
Ö"fz ²^‾
 y&Ç$©
Øà7Ö²^Li
=S£n:Oà¼'{D¦ ÏY8
¸ºÔd±^N¥o&@ ÀË
ñhhz²Iiæ³
¹ 1Ê ¼8bçrÉ6å
ad³GÔYº´%
NL1°µ l ÎäÆ2 Ci
ú -g]ÄXÒF¦—
®D(ß  4 ®)Ùr^%I
*ä  ¡ ¢ÓiC;JkbuzÊL²  äX‾fj G¬½Õj ÇCÆ ì ÌY D I(n hJÑy 9ëR©#ç å#ò
HKëìI
<@ õ? ÉÖÍ#[l
0)Å2 /Ρ—^Í
rû, L^H;¹B1)s 3|1¥9UÃ‾IL6 ºM11Äti
¥V*Ð:/ÌÆG³ ¥ ùD²Y0 & &´ô ~£] [ n[ 'P ù aÂf êC‾&&Y&=_«I÷Ð ùÐîãO@*n ©—zâLÞä3þ{=&Õ ^ ü¿Tþ
H§ºkt ²Ë 8
:KxÆgƪ_
»XgÎ0 É
íôj`FÑá6,ÌØ
u2¸PÂ@N }Óù:eûsû,ͦfÏ®
Å 2<e8 ÿ'Nz¾ 3¸
1 2Âz¡
æB$2íJd
(òÇ Yp[Y
 qc®b¢a
ó_BÈõ(íôçÛáÓ¹,
Ë4ô¨¦WAi í¨}(íäï{
Ì¥Æ- äg|æ
+àéÿÄàt)½ÊÉö
ÉÇ iδ >õ)
ò¼àvZ
.â~¤s
3j§
£y ýUÃoóQ[µ)z f³Qa³ÙäÃ¥íoo "2Úïï¦Ð7 üÙ f0)$3ð ßívkÇj«Ø°ª)N ñ k ÀÊÊ7 Gx4LÚ ‾~o ï—'£ô N¡
ü*8Ú
´ß
é÷Õ¹j8dW{`
v#í?
B»Ð,þæô¨±
Úí].nj5)K¢,hÌ*
vB»KÃ;È X?ÇjîsAe
 öGÁô$  wÆ¡ ÖÑ:}v°o²s°ÝM—ÖTð±³kc 觱O»r«Ï> ªÿ9Ú÷)} íÚü
5r(+
endstream
55
endobj
0 obj<</Subtype/Image/Length 22/Filter/FlateDecode/BitsPerComponent 8/ColorSp
ace 516 0 R/Width 120/Height 1/Type/XObject>>stream
H ú÷o( ÿÿ¡hÈ ì¼eF
endstream
56
endobj
0 obj<</Subtype/Image/Length 56/Filter/FlateDecode/ImageMask true/BitsPerComp
onent 1/Width 125/Height 516/Type/XObject>>stream
H ìÇ1
°:Á¿ :ûÎ,0÷.Ù ¼u] »»»»»»»»»»»»»»»ï{>F(xýÐ
endstream
57
endobj
0 obj<</Subtype/Image/Length 12731/Filter/FlateDecode/BitsPerComponent 8/Colo
rSpace 516 0 R/Mask 56 0 R/Width 125/Height 516/Type/XObject>>stream
H ì× SYð å¾PFåòBå¾äH@H r a¸B \ D qvtwfg<Ø)Gэ Úu¦\«¦f× n¿¡µ'èß«_QÍë×‾ßûôë_¿,/S [Y ¥ Ø óðÊ
û ]?,ï8räÏ« :qÜnV;- ÅùQ U[pötZj mf5[vâ¶é. ? o v Z´A—®(- >6cT¸ ¾*Ð| æú«>ÿ Fê²ê¶m éXMªÔ ÄâÂ<L
½mwÀ éh »¢¢ìW@t³ `/½\Àû´´5Wá:A E² >Ê jª«À©ìËvCíõ+Lãêk%h ª¡0jBß có¸26& {N9
µ ÀdhkªBn  w´Ü`./+)ÂðÐ AFEéTT2ì Îà¦'²Òq Ïç« "—MÏ<>©¸ ½
_@|qÇ ê ûº ús_ ÒjÇ-Ð'V{ nQ= ÛÓS p V ¡2ËÓÁ S p yÉÅ|ïÕ S¨ Ü´þm ¡ kå6±ãvS þcG 7*/ Ñ>
;; revert.lsp - REVERT command
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;;-------------------------------------------------------------------------
;;
;; DESCRIPTION
;; Implements the REVERT command.
;;
;;-------------------------------------------------------------------------

;;
;; revert to previous saved version of this drawing
;;
(defun C:REVERT (/ dwg reply sdiOpen)
;; special open for SDI mode
(defun sdiOpen (name force)
(vl-load-com)
(vla-sendcommand
(vla-get-activedocument
(vlax-get-acad-object))
(acet-str-format "(command \"_.OPEN\"%1)\n%2\n"
(if force " \"_Y\"" "")
name ) )
)
;; quiet
(acet-error-init '(("CMDECHO" 0)))
;; check for the necessary support code
(if (acet-reg-get (strcat "HKEY_LOCAL_MACHINE\\"
(acet-reg-prodkey)
"\\Applications\\acadvba\\commands" )
"VBASTMT" )
;; worth trying ??
(if (= 1 (getvar "DWGTITLED"))
(progn
;; pick file name
(setq dwg (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")))
;; drawing modified ??
(if (and (/= 0 (getvar "DBMOD"))
(= Acet:IDCANCEL
(acet-ui-message
(acet-str-format "Abandon changes to %1?" dwg)
"AutoCAD - REVERT"
(+ Acet:OKCANCEL
Acet:ICONWARNING
Acet:DEFBUTTON2 ) ) ) )
(exit)
)
;; SDI ??
(if (/= 0 (getvar "SDI"))
(sdiOpen dwg (/= 0 (getvar "DBMOD")))
(command "vbastmt" (acet-str-format
"ThisDrawing.Close(FALSE):AcadApplication.Documents.Open \"%1\""
dwg ) )
)
)
(acet-ui-message "Drawing has never been saved."
"AutoCAD - REVERT"
Acet:ICONSTOP )
)
(acet-ui-message "VBA support not installed."
"AutoCAD - REVERT"
Acet:ICONSTOP )
)
(acet-error-restore)
(princ)
)

(princ) ê Û f¨¿]§éúÊ7±òíÜÏß{ Ø# ]ÕÛÚßÝ<}Ê&µªc)ö 9kkcMÔûGMµtÞeÙL


ìTÛCag
o /Éò\3
[k6g1ÿç¹ÙpYoâÛÌÎ>¾Õ
£ÈAe÷:L3
2ølçì
à ØCéÖ6¦
ñ~d÷ÿ
´ÞYñ!Ú
º¿4}ï
j£ùü1c¿×iÞ
= ܽi[~àüÆHìÄNì\c_p[1
ζ v =¼=û|åƳÇó;ÊêòÂ
Á ÃUåEèWG=b'ö
Ã6
bç`|¤¬$
عb-'vî
¸Y)k`Ø
;;; ROLLS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains an example of object and editor reactors. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: NUM-OF-CIRCLES ;
;;; ;
;;; Description: This function calculates how many circles ;
;;; can be contained within a circle. ;
;;; ;
;;; Arguments: ;
;;; big-radius = a number denoting a radius. ;
;;; small-radius = a number denoting a radius. ;
;;; ;
;;; Returned Value: A number representing the number of circles. ;
;;; ;
;;; Usage: ;
;;; (num-of-circles 12 5) ;
;;;--------------------------------------------------------------------;
(defun num-of-circles (big-radius small-radius)
;; (fix (/ (* pi big-radius) small-radius)) ;; Voided
(fix
(/ pi
(atan
(/ small-radius
(sqrt
(- (* big-radius big-radius) (* small-radius small-radius))
)
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-M-CIRCLE-RADIUS ;
;;; ;
;;; Description: This function will be called inside a ;
;;; :vlr-modified event. It is responsible for ;
;;; recalculating the quantity of circles. ;
;;; ;
;;; Required Functions: ;
;;; num-of-circles ;
;;; make-circles-on-circle ;
;;; get-model-space ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vla circle object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (reactor-m-circle-radius notifier reactor arg-list) ;
;;;--------------------------------------------------------------------;
(defun reactor-m-circle-radius (notifier reactor arg-list
/ midle-circle circle1
circle2 m-new-rad c-new-rad
circle-list len num-circles
)
(if (and
(setq midle-circle (vlr-data reactor))
(vlax-write-enabled-p midle-circle)
(setq circle1 (vlax-ldata-get midle-circle "circle1"))
(setq circle2 (vlax-ldata-get midle-circle "circle2"))
(vlax-read-enabled-p circle1)
(vlax-read-enabled-p circle2)
)
(progn
(setq rad1 (vla-get-radius circle1)
rad2 (vla-get-radius circle2)
m-new-rad (/ (+ rad1 rad2) 2) ;midle circle radius
circle-list (vlax-ldata-get midle-circle "circles")
c-new-rad (/ (abs (- rad1 rad2)) 2) ;roll radius
len (length circle-list) ;current number of rolls
num-circles (num-of-circles m-new-rad c-new-rad)
;new number of rolls
)
(if (not (= (vla-get-radius midle-circle) m-new-rad))
(vla-put-radius midle-circle m-new-rad)
)
(if (not (= len num-circles)) ;change number of rolls
(progn
(foreach cl circle-list
(if (not (vlax-erased-p cl))
(vla-Erase cl)
)
)
(setq acadModel (get-model-space)
circle-list
(make-circles-on-circle
midle-circle
c-new-rad
num-circles
)
)
(vlax-ldata-put midle-circle "circles" circle-list)
)
)
(if (and circle-list
(not (= (vla-get-radius (car circle-list)) c-new-rad))
)
(foreach circle circle-list
(if (vlax-write-enabled-p circle)
(vla-put-radius circle c-new-rad)
)
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-ROLLS ;
;;; ;
;;; Description: This function is responsible for passing ;
;;; information to other procedures that display ;
;;; the circles on the screen. Furthermore, this ;
;;; function creates the neccesary reactor. ;
;;; ;
;;; Required Functions: ;
;;; num-of-circles ;
;;; circles-tied-to-curve ;
;;; create-same-reactor ;
;;; reactor-make-same-center ;
;;; reactor-m-circle-radius ;
;;; ;
;;; Arguments: ;
;;; circle1 = a valid vla circle object. ;
;;; circle2 = a valid vla circle object. ;
;;; ;
;;; Returned Value: A valid vlr object reactor ;
;;; ;
;;; Usage: ;
;;; (create-rolls vla-circle1 vla-circle2) ;
;;;--------------------------------------------------------------------;
(defun create-rolls (circle1 circle2 /
m-circle circles-list circle-reactor
rad num-circles acadModel
)
(setq acadModel (get-model-space)
m-circle (make-middle-circle circle1 circle2)
rad (/ (abs (- (vla-get-radius circle1) (vla-get-radius circl
e2)))
2
)
num-circles (num-of-circles (vla-get-radius m-circle) rad)
circle-reactor (circles-tied-to-curve m-circle rad num-circles)
circles-list (vlax-ldata-get m-circle "circles")
)
(list
(create-same-reactor
(list circle1 circle2 m-circle)
(function reactor-make-same-center)
)
(VLR-Object-reactor
(list circle1 circle2)
m-circle
(list
(cons :vlr-modified (function reactor-m-circle-radius))
)
)
circle-reactor
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-MIDDLE-CIRCLE ;
;;; ;
;;; Description: This function is responsible for creating ;
;;; a small circle between the two vla ;
;;; circle objects. ;
;;; ;
;;; Required Functions: ;
;;; load-line-types ;
;;; get-model-space ;
;;; ;
;;; Arguments: ;
;;; circle1 = a valid vla circle object. ;
;;; circle2 = a valid vla circle object. ;
;;; ;
;;; Returned Value: A valid vla circle object. ;
;;; ;
;;; Usage: ;
;;; (make-middle-circle vla-circle1 vla-circle2) ;
;;;--------------------------------------------------------------------;
(defun make-middle-circle (circle1 circle2 / middle-circle)
(setq middle-circle
(vla-AddCircle
(get-model-space)
(vla-get-center circle1)
(/ (+ (vla-get-radius circle1) (vla-get-radius circle2)) 2)
)
)
(if (load-line-types "Dashdot" "acad.lin")
(vla-put-Linetype middle-circle "Dashdot"))
(vlax-ldata-put middle-circle "circle1" circle1)
(vlax-ldata-put middle-circle "circle2" circle2)
(vla-put-Color circle1 acRed)
(vla-put-Color circle2 acRed)
middle-circle
)
;;;--------------------------------------------------------------------;
;;; Function: C:ROLLS-TST ;
;;; ;
;;; Description: This function will create 4 circles. One outer ;
;;; circle and three inner circles. ;
;;; ;
;;; Required Functions: ;
;;; get-model-space ;
;;; create-rolls ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid reactor object. ;
;;; ;
;;; Usage: (C:ROLLS-TST) or ROLLS-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:ROLLS-TST (/ center circle1 circle2 radius1 radius2 acadModel)
(initget 1)
(setq center (GETPOINT "\nSelect center"))
(initget 103) ;(+ 1 2 4 32 64)
(setq rad1 (GETDIST center "\nSelect first raduis"))
(initget 103) ;(+ 1 2 4 32 64)
(setq rad2 (GETDIST center "\nSelect second raduis"))
(terpri)
(setq acadModel (get-model-space)
circle1 (vla-AddCircle acadModel (vlax-3d-point center) rad1)
circle2 (vla-AddCircle acadModel (vlax-3d-point center) rad2)
)
(create-rolls circle1 circle2)
)

;;;--------------------------------------------------------------------;
;;; Function: C:ROLLS-INFO ;
;;; ;
;;; Description: This function displays a help file in the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:ROLLS-INFO) or ROLLS-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:ROLLS-INFO ()
(princ "\nTo run test call ROLLS-TST")
(princ "\nYou will be asked to select a center,")
(princ "\na radius of the first circle and the radius of the second circle.")
(princ "\nTwo circles (colored red) will be drawn.")
(princ "\nThe space between them will be filled with rolls (circles)")
(princ "\nEach time you change position of one of the red circles the")
(princ "\nscheme will also change.")
(princ "\nEach time you change radius of one of the red circles ")
(princ "\nthe optimal number of rolls will be recalculated and if needed")
(princ "\nchanged.")
(princ "\n")
(princ)
)

;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "ROLLS-TST" "ROLLS-INFO")
*REACT-TEST-COMMANDS-INFO*))
;; EOF
( é3¥¹'Ø[9 ²?º ? PNG> ~ °¶ °6}ï2 ¥% .æ‾²ÓÝSÑ.y ¤CÑ{÷øø hýÀnöþß KØÅQÇ ì{RÄN#Ó ùÈÂ*
À£ùM$
'° ì»ê°{h$
g/ tîþ
ª,¥ì5uc¸°
i/ æh`×iXdزã
í>=éQöÒEê±#°—Z`×;ûà
ì|Ø EF[ ¥ØÜÖm
ßї£
D¡0°««—¶G
`×)»æ
®6³©Ýl*\ä`
\cv°ó »QÙ¿
ì`çgØöúÎBȗ%/ØÁ®/öê¿T~µrö
ÁÎ'° O`; Àv> ì |;Øùv°ó
¿Wp
ûFz©Z&õreñßÙõ wo²Ô1ûRµLj>Ï Y|÷&G)ì ëHÕè _]z #ö_sÔ1û"R5ºàW om,½ÿu RØéâGªF<ÝXKØ5_ú Tv}1 Y* S
ûÖæ
j<ºªÓ«/3© J vr«ßî|<f§w5ñÒ
³ ^¬´i'—öñí.ö f§»êR¥M»[kw) ÞÔxÄK+ÌæúR¥M»[©O {ØO Ñ +mÚÛN}z—G)ìô. Æ#^Za² J ö—Ó ÞíSÇìiÔx;¹Ô
ûÇÃýºûðvïõ~¶pü×9¡² Uú¸UÙöצª»Èöèÿ ª´éÕÞÆÿØ/Óî´ ,
dÜÿÿ
´(
!¼]Áñr{sýÛÙÙ/¿ü
Ñíñjíþw7WvqÝ^
§ÛI»Û¬FìHBB
8w ‾³³³ÛÏ×±ðýæz
¥Õ8z>
bßw³ñ |p§b
!óe^Qö[n—
`LÅV8k°Ns©û¢Ó"ºj¡
u® uâ
0S>ÏñqÝW
³ "!ßþ(àâËO]
\V
ç¡Exðe´
ämí °þ´ß^ÛÅu÷7æ
¥ÝõÉ. >49
÷gÌoiIøx
BØGò¥}UÁ
ÄDö=XØwï»Á¾¿
_}$H|p§
\üyvëO¾..þk
Õú±×çoß
w N !èÚ73
Å ÿñ.äÎ
?àWo"B(
ÃÝ»
Z´£
c öd&Ü3
¿ âؾhȗ átAWG x]ôÓ¢í>Ï ]üÞÛXä^ bÙÉ́ e8 ÈI³ú+øx0 ¥®g8]ø8î\¼.ÞÓ" A°´{oíâ÷áå?íØ;
ßi Ú)QRç3
çÍÿü NÚáÐ.
!Ä ¿;å v¨Nòa
hþÍ üZ»ß{g
"íV^$å°Ô×_ÿÓ
{ ó «r{ ®F¢ØG
%b-¹OÈ
+/í~Ð ]
!‾¿þ§
÷îD,¨¥
] yCRäxR TùIJ#áûPÜ\°Ns©[ E4[( GÕÞ( jÄH
vîÞc `ÀËÇCºÂcïÔTB£-õµ ] F®»Ïoß¾%ÎñÃÝÝgóv[_0 ¹ÔÊ ²ºsñÞÚÅcxÍ ³)`ixíä| ßÔ ÑóØG ©}« _úß]\ ¿
ÚC Ï.èa ¤5± UtEÀ ] ݍ9ÇõØ®0 ú¼~r  yB 9 QÊ©`Ýí>» 6Ús
zþ ö§ ù ÿÒ WÑþþý;[àëòòC,Âet© SÓª i-¹Sy ¤`>q^ ýOi! '´HMñ¥¼ v×Ý ]Ü®Ûx4 ÞÆޡ痴
=ùJp ü ¥ )) ?Dc´HM  öÕmn!ÑRöÎÐ ØG4 óz9‾½|
¿¥^É
Ùð
átQVw.Î
¢A[Ul
CÆádÒOZ©N
÷ührAuܼ{£¤
D»"óßÓ¶±RÐ+kíðÆ8è D<@´HW bíØÆáàNG«+R ¥w´«IÆáh (Kx ò´(IÕ  v¼õ1zS ù ¢EÆ®v q8º
£±iQ.£Ö«9°Ö®2'c¨º&§õ-ÊeµF5 vìãp  ó åw´g5Æád3ZÝH+´( Óµ Ú± ÃÉe4CÇ1®R¢T! nÖ
Í ö Îp ¬ G'ÎZŢ õ" Ú± ÃÉçÒxtâ<¡EÐÞª[íù4Ãré¬ óD§Dj) iÕKÀz Ìh
G@Kç²z1oìPÈHK£Õ(¦Ýqp  ç`;ÊÅL»QD{© a ¼©=Ûn Ñ !㨠YÜå´WÓþ §j¥ ë´* hÇ qTÊ¥ ª r¾ÓªK{9Ï86xªVËù
XÚ+
Ýv
ªõêƱÁSµV)nkÇ
í2 M¥ ‾×ʽNqlÊÅ\½VêuêÀÒ^-2
XÚk%Ʊ© Í Zù¡ÛD{£Vf j¹Ð¨WºM`i‾WǦZ)6 ^í2 MZj6ªý^¬ßdJ
§@cCïsµ O´ÿðð ¼ «Àp«Y{¢v«6xh¢}ïe ï ´:E{¥ÝªokÇ áÄùÞ;Òi×ý`ÚÿAíÕN»1ìw kí2 8ß5µn§9tÑÞm7 ÐnÖ;ÆÞ;²«½
ÓGɍN
í2 ´:-ÚÕ>ì3
ýîd<Dû ßc8
¡ Æq¾7êõ:øδ
dJ4ög  Ú1d8 
G;  ƦF£á`6KûhÀpÒêß́gÓ1 ÚÇ£ÃVN Æ£á|6 öñ á+çÔh2Íg@´cÈp#0L & Ñ|> öÉ
í³é áèêoDó§Úç³)ÃÐÕ3z4 O 9°´Ï§
G@W )Nõåb¾\k Ï `¶:=Â÷åâXÚç
G0 3Z.;;; ;
;;; RSAME.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE RCTR-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various reactor utilities to make objects share ;
;;; equal propertise. All modification will be made after ;
;;; :vlr-modified notification has been received. ;
;;; ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: MAKE-SAME-PROPERTIES ;
;;; ;
;;; Description: This function is used to modify two ;
;;; vla objects to share the same properties. ;
;;; ;
;;; Arguments: ;
;;; obj1 = a valid vla object to be used as the source ;
;;; object to get properties from. ;
;;; obj2 = a valid vla object to be used as the target ;
;;; objects to place the properties from obj1. ;
;;; property-list = a list of properties to be modified. ;
;;; ;
;;; Returned Value: A vla object with updated properties. ;
;;; ;
;;; Usage: ;
;;; (make-same-properties ;
;;; obj1 ;
;;; obj2 ;
;;; property-list) ;
;;;--------------------------------------------------------------------;
(defun make-same-properties
(obj1 obj2 property-list / new-value)
(if (and
obj2
(eq 'VLA-OBJECT (type obj2))
(vlax-write-enabled-p obj2) ; test if object can be modified
(vlax-read-enabled-p obj1) ; test if object can be read
)
(foreach property property-list
(if
(and
;;(vlax-property-available-p obj1 property)
;;(vlax-property-available-p obj2 property)
(not ; don't modify if equal
(equal
(setq new-value (vlax-get obj1 property))
(vlax-get obj2 property)
)
)
)
(vlax-put obj2 property new-value)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-SAME-PROPERTIES-LIST ;
;;; ;
;;; Description: This function is used to modify a collection of ;
;;; vla objects to share the same properties. ;
;;; ;
;;; Required Functions: ;
;;; make-same-properties ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; Filled in by the reactor invoked. ;
;;; arg-list = a list of arguments. ;
;;; Filled in by the reactor invoked. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (make-same-properties-list ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun make-same-properties-list (notifier obj-list property-list)
(foreach obj obj-list
(make-same-properties notifier obj property-list)
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-SAME-RADIUS ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. It is responsible in modifying the ;
;;; radius of a circle. ;
;;; ;
;;; Required Functions: ;
;;; make-same-properties-list ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; Filled in by the reactor invoked. ;
;;; arg-list = a list of arguments. ;
;;; Filled in by the reactor invoked. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (make-same-radius ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun make-same-radius (notifier reactor arg-list)
(make-same-properties-list
notifier
(VLR-Data reactor)
'("Radius")
)
)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-SAME-REACTOR ;
;;; ;
;;; Description: This creates a duplicate modified event for a ;
;;; list of vla-objects. ;
;;; ;
;;; Arguments: ;
;;; obj-list a valid list of vla objects. ;
;;; reaction = a valid function to invoke as a call back. ;
;;; ;
;;; Returned Value: A vlr object reactor. ;
;;; such as: ;
;;; #<VLR-Object-reactor> ;
;;; ;
;;; Usage: Where ac1 and ac2 are valid vla-object and ;
;;; reaction is a function call back. ;
;;; (setq r ;
;;; (create-same-reactor (list ac1 ac2) ;
;;; 'reactor-save-center-color)) ;
;;;--------------------------------------------------------------------;
;;!! redefined in RUTILS.LSP
(defun create-same-reactor (obj-list reaction)
(VLR-Object-reactor
obj-list ;; owners
obj-list ;; user data - recivers
(list (cons :vlr-modified reaction))
)
)
;;EOFØí;ìv v ;Á» ` ÝN°Ãn'Øa—ì°Û vØí;ìv v ;Á» ` ÝN°Ãn'Øa— con¬'? =@öÀo:kÁ» ` ÝN°Ãn'Øa—ì°Ûɱ77
;; rtext.lsp - RText acquisition and editing
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions of the
;; License Agreement you accepted prior to installation of this software.
;; Please note that pursuant to the License Agreement for this software,
;; "[c]opying of this computer program or its documentation except as
;; permitted by this License is copyright infringement under the laws of
;; your country. If you copy this computer program without permission of
;; Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;; ----------------------------------------------------------------
;;
;; DESCRIPTION
;; RText creation and editing.
;;
;; ----------------------------------------------------------------
;;
;; RTEXT - insert RText object
;;
(defun C:RTEXT (/ fetch ans def tStyle tSize tRot done)
(defun fetch (mode / cont lay vc)
;; start from view center
(setq vc (getvar "VIEWCTR"))
;; pick text or file
(if (setq cont (if (= mode 0)
(acet-ui-getfile "Select text file"
(acet-filename-ext-remove (getvar "DWGNAME"))
"txt;*" "Acet:RText" 1664)
(AcetRText:pickText "") ) )
(progn
;; create object
(entmake (list '(0 . "RTEXT")
'(100 . "AcDbEntity")
'(100 . "RText")
(cons 10 (trans vc 1 0))
(cons 40 tSize)
(cons 7 tStyle)
(cons 50 tRot)
(cons 1 cont)
(cons 70 mode)
(cons 210 (acet-geom-cross-product (getvar "UCSXDIR")
(getvar "UCSYDIR") )
)
)
)
;; move to requested location
(setq lay (AcetRText:unlockLayer nil))
(princ "\nSpecify start point of RText: ")
(command "_.MOVE" (entlast) "" vc pause)
(while (wcmatch (getvar "CMDNAMES") "*MOVE*")
(command pause)
)
(AcetRText:modify (entlast) T)
(AcetRText:lockLayer lay)
)
)
)
(if (AcetRText:appload)
(progn
(acet-error-init '(("CMDECHO" 0 "LIMCHECK" 0 "ORTHOMODE" 0) T))
(setq tStyle (getvar "TEXTSTYLE")
tSize (getvar "TEXTSIZE")
tRot (AcetRText:defRotation nil)
def (getenv "AcetRText:type") )
(if (or (not def)
(and (/= "Diesel" def)
(/= "File" def) ) )
(setenv "AcetRText:type" (setq def "File"))
)
(while (not done)
(princ (acet-str-format "\nCurrent settings: Style=%1 Height=%2 Rotatio
n=%3\n"
tStyle
(ai_rtos tSize)
(angtos tRot) ) )
(initget "Style Height Rotation File Diesel _Style Height Rotation File
Diesel")
(setq ans (getkword (acet-str-format "Enter an option [Style/Height/Rota
tion/File/Diesel] <%1>: " def))
ans (if ans ans def) )
(cond
((= ans "Style")
(setq tStyle (AcetRText:pickStyle tStyle))
(setvar "TEXTSTYLE" tStyle)
)
((= ans "Height")
(setq tSize (AcetRText:pickHeight tSize))
(setvar "TEXTSIZE" tSize)
)
((= ans "Rotation")
(setq tRot (AcetRText:pickRotation tRot))
(AcetRText:defRotation tRot)
)
((= ans "File")
(fetch 0)
(setq done T)
(setq def "File")
)
((= ans "Diesel")
(fetch 1)
(setq done T)
(setq def "Diesel")
)
)
)
(setenv "AcetRText:type" def)
(acet-error-restore)
)
)
)

;;
;; RTEDIT - edit RText object
;;
(defun C:RTEDIT (/ ename)
(if (AcetRText:appload)
(progn
(acet-error-init '(("CMDECHO" 0) T (if ename (redraw ename 4))))
;; select one RText object, not on locked layer
(if (setq ename (acet-ui-single-select '((0 . "RTEXT")) nil))
(AcetRText:modify ename nil)
)
(acet-error-restore)
)
)
)

;;
;; RTEXTAPP - set RText editing app
;;
(defun C:RTEXTAPP (/ app new)
(if (AcetRText:appload)
(progn
(acet-error-init nil)
;; locate current value
(if (not (setq app (getenv "AcetRText:editor")))
(setq app "") )
;; pick new value
(setq new (getstring T (acet-str-format
"\nEnter RText editing application or . for system default <\"%1\"
>: "
app ) ) )
;; validate clear and default
(cond
((= new ".")
(setq new "") )
((= new "")
(setq new app) )
)
;; set new value
(setenv "AcetRText:editor" new)
(acet-error-restore)
)
)
(princ)
)

;; verify that required apps are loaded


(defun AcetRText:appload ()
(if (member nil (mapcar
'(lambda (x) (if (member x (arx)) T (arxload x nil)))
'("acetutil.arx" "rtext.arx") ) )
(alert (acet-str-format "Could not load required ObjectARX modules."))
T
)
)

;; modify RText object


(defun AcetRText:modify (ename setdef / ent lay tStyle tSize tRot ans done xv)
(if (not ename)
;; select one RText object, locked layer OK
(setq ename (acet-ui-single-select '((0 . "RTEXT")) T))
)
(if (and ename
(setq ent (entget ename)) )
(progn
(redraw ename 3)
(setq lay (AcetRText:unlockLayer (cdr (assoc 8 ent)))
xv (cdr (assoc 210 ent))
tStyle (cdr (assoc 7 ent))
tSize (cdr (assoc 40 ent))
tRot (acet-geom-angle-trans (cdr (assoc 50 ent)) xv 1)
)
(while (not done)
(princ (acet-str-format
"\nCurrent values: Style=%1 Height=%2 Rotation=%3\n"
tStyle (ai_rtos tSize) (angtos tRot) ) )
(initget "Style Height Rotation Edit _Style Height Rotation Edit")
(if (setq ans (getkword "Enter an option [Style/Height/Rotation/Edit]: "
))
(progn
(cond
((= ans "Style")
(setq tStyle (AcetRText:pickStyle tStyle))
(setq ent (subst (cons 7 tStyle) (assoc 7 ent) ent))
(redraw ename 4)
(entmod ent)
(entupd ename)
(princ " ")
(redraw ename 3)
(if setdef
(setvar "TEXTSTYLE" tStyle)
)
)
((= ans "Height")
(setq tSize (AcetRText:pickHeight tSize))
(setq ent (subst (cons 40 tSize) (assoc 40 ent) ent))
(redraw ename 4)
(entmod ent)
(entupd ename)
(princ " ")
(redraw ename 3)
(if setdef
(setvar "TEXTSIZE" tSize)
)
)
((= ans "Rotation")
(setq tRot (AcetRText:pickRotation tRot))
(setq ent (subst (cons 50 (acet-geom-angle-trans tRot 1 xv))
(assoc 50 ent)
ent ) )
(redraw ename 4)
(entmod ent)
(entupd ename)
(princ " ")
(redraw ename 3)
(if setdef
(AcetRText:defRotation tRot)
)
)
((= ans "Edit")
(AcetRText:edit ent)
(entupd ename)
(redraw ename 4)
(entupd ename)
(princ " ")
(redraw ename 3)
(setq ent (entget ename))
)
)
)
(setq done T)
)
)
(AcetRText:lockLayer lay)
(redraw ename 4)
)
(princ "\nNothing found")
)
)

;; edit given RText object


(defun AcetRText:edit (ent / cont dsl app mode)
(setq cont (cdr (assoc 1 ent))
mode (cdr (assoc 70 ent))
)
(if (and (/= 1 (logand 1 mode))
(not (findfile cont)) )
(progn
(alert (acet-str-format "Cannot find RText file: %1" cont))
(setq cont (acet-ui-getfile "Select text file" cont "txt;*" "Acet:RText" 1
664) )
(if (and cont
(findfile cont) )
(entmod (subst (cons 1 cont) (assoc 1 ent) ent))
)
)
(progn
(if (and (= 1 (logand 1 mode))
(setq dsl (AcetRText:pickText cont)) )
(entmod (subst (cons 1 dsl) (assoc 1 ent) ent))
(progn
(if (= 1 (logand 1 mode))
(setq dsl "")
)
)
)
)
)
(if (not dsl)
(progn
;; pick editing app
(if (or (not (setq app (getenv "AcetRText:editor")))
(= app "") )
(setq app (acet-filename-associated-app cont))
)
;; use Notepad if nothing else found
(if (not app)
(setq app "Notepad")
)
;; run editor
(if (/= -1 (acet-sys-spawn 1 app cont))
(entupd (cdr (assoc -1 ent)))
(princ (acet-str-format "\nEditor failure."))
)
)
)
(princ "\nUpdates may not be apparent until next regen.")
)

;; pick text height


(defun AcetRText:pickHeight (hgt / work a b)
(setq hgt (if hgt hgt (getvar "TEXTSIZE"))
work (ai_rtos hgt) )
(initget 6)
(setq work (getdist (acet-str-format "\nSpecify height <%1>: " work)))
(if work work hgt)
)

;; pick text style


(defun AcetRText:pickStyle (def / showStyles new done)
(defun showStyles (/ pat sty)
(setq pat (getstring T
(acet-str-format "\nEnter text style(s) to list <*>: ") )
pat (if (= "" pat) "*" (xstrcase pat)) )
(while (setq sty (tblnext "STYLE" (not sty)))
(if (and (not (wcmatch (cdr (assoc 2 sty)) "*|*"))
(wcmatch (cdr (assoc 2 sty)) pat) )
(progn
(princ (acet-str-format
"Style name: %1 Font files: %2\n"
(cdr (assoc 2 sty))
(cdr (assoc 3 sty)) ) )
(princ (acet-str-format
" Height: %1 Width factor: %2 Obliquing angle: %3\n"
(cdr (assoc 40 sty))
(cdr (assoc 41 sty))
(angtos (cdr (assoc 50 sty))) ) )
(princ (acet-str-format " Generation: %1\n\n"
(if (= 0 (cdr (assoc 70 sty)))
"Normal"
(acet-str-format "%1%2%3"
(if (/= 0 (logand 2 (cdr (assoc 71 sty))))
"Backwards " "")
(if (/= 0 (logand 4 (cdr (assoc 71 sty))))
"Upside-down " "")
(if (/= 0 (logand 4 (cdr (assoc 70 sty))))
"Vertical" "")
)
)
)
)
)
)
)
)
(if (and def
(setq def (xstrcase def))
(tblsearch "STYLE" def) )
(setq new def)
(setq new (getvar "tStyle")
def new )
)
(while (not done)
(setq new (getstring T (acet-str-format
"\nEnter name of text style or [?] <%1>: " new))
new (if (= "" new) def (xstrcase new)) )
(if (tblsearch "STYLE" new)
(setq done T)
(if (= new "?")
(showStyles)
(princ (acet-str-format "\nCannot find text style \"%1\"." new))
)
)
)
new
)

;; pick text rotation


(defun AcetRText:pickRotation (ang / def)
(setq def (if ang ang (AcetRText:defRotation nil))
ang (getangle (acet-str-format
"\nSpecify rotation angle of RText <%1>: " (angtos def)))
)
(if ang ang def)
)

;; get/set default Text rotation


(defun AcetRText:defRotation (ang / lay ent)
(setq ang (if ang (angtos ang (getvar "AUNITS") 8) "")
ent (entlast) )
;; unlock CLAYER if locked
(setq lay (AcetRText:unlockLayer nil))
;; insert dummy Text object to set internal default rotation
(command "_.TEXT" "0,0")
;; extra arg required if zero text height
(if (= 0.0 (cdr (assoc 40 (entget (tblobjname "STYLE" (getvar "TEXTSTYLE")))))
)
(command "") )
(command ang ".")
;; check rotation on Text object
(if (/= ent (entlast))
(progn
(setq ang (cdr (assoc 50 (entget (entlast)))))
(entdel (entlast))
)
(setq ang 0.0)
)
;; re-lock CLAYER if necessary
(AcetRText:lockLayer lay)
ang
)

;; unlock layer if locked, returns layer or nil


(defun AcetRText:unlockLayer (lay / lck)
;; use CLAYER if none given
(setq lay (if lay lay (getvar "CLAYER"))
lck (acet-layer-locked lay) )
(if lck
(progn
(command "_.-LAYER" "_UNLOCK" lay "")
lay
)
nil
)
)

;; lock layer if previously locked


(defun AcetRText:lockLayer (lay)
(if lay
(command "_.-LAYER" "_LOCK" lay "")
)
)

;; pick contents
(defun AcetRText:pickText (str / work)
(if (or (= 0 (getvar "CMDDIA"))
(= 4 (logand 4 (getvar "CMDACTIVE"))) )
(progn
(setq str "")
(while (/= work "")
(setq work (getstring T (acet-str-format "\nEnter RText: ")))
(if (/= work "")
(setq str (strcat str (if (< 0 (strlen str)) "\r\n" "") work))
)
)
str
)
(acet-ui-txted str "Edit RText")
)
)

(princ)
Ü VkN Ü:¹C æ$²ÃmÈ%O×cÀ.b Ø%j¡ [ I§Z¡#Ú
ýÔíÅß
cwµãéßÚ Ýs9
&ÛðX0nâ1Î?6ÔB°T²w
Î,î ð AY
NT]´,-®
r<$ÿ
ÏþÔ%i>R&nf;
(±Ö(,Î-äiQ¸+
BÛq8 õEy%'5DYr
jq
Gf=üØÐLL0
±H
¾JO¤gî{
 cNÕ}HZ
üzº 4>wÁ
ç³Ö¬ßÉh$×{½T Ôþf% û<7 ¤ ½£ê<Zs@mf-Éô$¬6µÂL &´µB
æ Ó¥Õ )û§ÃñR Ûüñ ÏJHgªWhʼΫ/°°\ñªR$ÇíJ 4Åð[!GÁâ- +rëÞ } 7tT":£elø 9/ ¾H
A  X üÿcN+¢1Æ‾@É 2k º
 Î÷Þkñ6^0Zj; #p0ÍË ,Ý<§d3&]3H6^_Ø%\Ø*uyÂÍ}V'A𠺸F¡¸-Kíî¢I⺣àïÐÖùCFF Öwg<p¡£
B J Î` ÖãH ý { b
endstream
74
endobj
0 obj<</Subtype/Image/Length 56/Filter/FlateDecode/ImageMask true/BitsPerComp
onent 1/Width 125/Height 573/Type/XObject>>stream
H ìÇ1
°:Á¿ :ûÎ,p×9Ù ¼u] »»»»»»»»»»»»»»»»»ï `Ïi/
endstream
75
endobj
0 obj<</Subtype/Image/Length 9453/Filter/FlateDecode/BitsPerComponent 8/Color
Space 516 0 R/Mask 74 0 R/Width 125/Height 573/Type/XObject>>stream
H ì [SGÆCvE6¡Õ
ÞDØ
(¨¨  *{$;?bØß®
@ö °/ÙIHPkV[EÚ~O??Û?ô{aìí%b
)Â.!vÉÿt¼ °v~DØ ¹ ;?"ì
9ó¼O v¹gÂÎ;açG
{æ7 3çF"T$+
°ó#ÂNØùEa)'ìü
9"æÒ°v~DØ
Ü ;?bئAR2EØ%
{e¹ &Øo—] ñàÁ\öhÐÞÅcÈc9[wB¶µÀ² Á 9/Ô w3z ½úä1f¹y½)â—K °ï1ìÇUPpÉ\2 [£~{Ï ° únTºoø\¼P Çi
4cù6ãÀâ > µ£Ï¬S Wø ;;; ;
;;; RTIE.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE RCTR-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various utilities ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: POINT-AT-DISTANCE-ON-CURVE ;
;;; ;
;;; Description: This function is used to modify a collection of ;
;;; vla objects to share the same properties. ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; proportion = a valid real number ;
;;; ;
;;; Returned Value: A point. ;
;;; ;
;;; Usage: ;
;;; (point-at-distance-on-curve ;
;;; vla-curve-object ;
;;; proportion) ;
;;;--------------------------------------------------------------------;
(defun point-at-distance-on-curve (aCurve proportion)
(vlax-curve-getPointAtDist
aCurve
(+
(* (- 1 proportion)
(vlax-curve-getDistAtParam
aCurve
(vlax-curve-getStartParam aCurve)
)
)
(* proportion
(vlax-curve-getDistAtParam
aCurve
(vlax-curve-getEndParam aCurve)
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-CIRCLES-ON-CURVE ;
;;; ;
;;; Description: Calculate position of circles on a curve ;
;;; with equal steps proportional to line length ;
;;; ;
;;; Required Functions: ;
;;; point-at-distance-on-curve ;
;;; make-a-circle ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; radius = a valid real number ;
;;; num-of-circles = an integer representing number of circles. ;
;;; ;
;;; Returned Value: A list of points. ;
;;; ;
;;; Usage: ;
;;; (make-circles-on-curve ;
;;; aCurve ;
;;; radius ;
;;; num-of-circles ;
;;; ) ;
;;; or ;
;;; (make-circles-on-curve vla-curve 1.0 5) ;
;;;--------------------------------------------------------------------;
(defun make-circles-on-curve (aCurve radius
num-of-circles /
res-circles proportion
ctrpt i
num-of-Intervals
)
(setq i 0
num-of-Intervals
(if (vlax-curve-isClosed aCurve)
num-of-circles
(1- num-of-circles)
)
num-of-circles (1- num-of-circles) ;we starts from 0
)
(if (= 0 num-of-Intervals)
(setq num-of-Intervals 1))
(while (<= i num-of-circles)
(setq
proportion (/ (float i) num-of-Intervals)
ctrpt (point-at-distance-on-curve aCurve proportion)
res-circles (cons
(make-a-circle ctrpt radius proportion)
res-circles
)
i (1+ i)
)
)
res-circles
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-A-CIRCLE ;
;;; ;
;;; Description: Calculate position of circles on a curve ;
;;; with equal steps proportional to line length ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; radius = a valid real number ;
;;; n-circles = an integer representing number of circles. ;
;;; ;
;;; Returned Value: A list of vla circle objects ;
;;; ;
;;; Usage: ;
;;; (make-a-circle ;
;;; vla-Curve-Object ;
;;; radiusOfCircles ;
;;; numberOfCircles ;
;;; ) ;
;;; or ;
;;; (make-a-circle pt1 1.0 5) ;
;;;--------------------------------------------------------------------;
;;; redefined in CTIE.LSP!!!
(defun make-a-circle (ctrpt radius proportion / new-circle)
(setq new-circle
(vla-AddCircle acadModel (vlax-3d-point ctrpt) radius)
)
(vlax-ldata-put new-circle "proportion" proportion)
new-circle
)
;;;--------------------------------------------------------------------;
;;; Function: UPDATE-POSITION-REACTION ;
;;; ;
;;; Description: This function updates the position of each ;
;;; circle associated with the reactor. ;
;;; ;
;;; Required Functions: ;
;;; update-position ;
;;; ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; reactor = a valid real number ;
;;; arg-list = an integer representing number of circles. ;
;;; ;
;;; Returned Value: A list of vla circle objects ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (update-position-reaction ;
;;; aCurve ;
;;; reactor ;
;;; arg-list ;
;;; ) ;
;;;--------------------------------------------------------------------;
;;; redefined in CTIE.LSP!!!
(defun update-position-reaction (aCurve reactor arg-list)
(foreach circle (vlax-ldata-get aCurve (vlr-data reactor))
(update-position aCurve circle)
)
)
;;;--------------------------------------------------------------------;
;;; Function: UPDATE-POSITION ;
;;; ;
;;; Description: This function updates the position of a circle ;
;;; according its proportion property and the ;
;;; the curve object. ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; aCircle = a valid vla circle object ;
;;; ;
;;; Returned Value: A list of vla circle object. ;
;;; ;
;;; Usage: ;
;;; (update-position ;
;;; aCurve ;
;;; aCircle ;
;;; ) ;
;;;--------------------------------------------------------------------;
;;; redefined in CTIE.LSP!!!
(defun update-position (aCurve aCircle / old-center new-center)
(if
(and aCircle
(vlax-write-enabled-p aCircle)
(not
(equal (setq old-center (vla-get-center aCircle))
(setq new-center
(point-at-distance-on-curve
aCurve
(vlax-ldata-get aCircle "proportion")
)
)
)
)
)
(vla-put-center aCircle (vlax-3d-point new-center))
)
)
;;;--------------------------------------------------------------------;
;;; Function: CIRCLES-TIED-TO-CURVE ;
;;; ;
;;; Description: Calculate position of circles on a curve ;
;;; with equal steps proportional to line length ;
;;; ;
;;; Required Functions: ;
;;; make-circles-on-circle ;
;;; ;
;;; Arguments: ;
;;; aCurve = a valid vla object arc Object. ;
;;; radius = a valid real number ;
;;; n-circles = an integer representing number of circles. ;
;;; ;
;;; Returned Value: A valid vlr object reactor object. ;
;;; ;
;;; Usage: ;
;;; (circles-tied-to-curve ;
;;; aCurve ;
;;; radius ;
;;; n-circles ;
;;; ) ;
;;;--------------------------------------------------------------------;
;;; redefined in CTIE.LSP!!!
(defun circles-tied-to-curve (aCurve radius circl-number)
(function update-position-reaction) ; prevent name drop
(setq circles-lst (make-circles-on-curve aCurve radius circl-number))
(vlax-ldata-put aCurve "circles" circles-lst)
(VLR-Object-reactor
(list aCurve)
"circles"
'((:vlr-modified . update-position-reaction))
)
)
;;EOFP‾Ýån, @¤õêÝ9ío— Þ o]§NõZ:U.ùh械LX*Þv¢ÐaÝh®ä $nÿã þ.TO£r ýx¶Û"¦øùLx0Ái < Ð B×s:x
Lèo4ðâÈë{] £*¢ E¶X
öMè{=r> úèï{= ëtÜ^ [l±üÊ ¸ï÷{ G,±ì à÷r~ùÃØú 2ácÁ-¶X
ÞMxjÂJú. $ö ¡ø ° È 1a³^ Ïò d ¾k  `¾Ùb1xÌ õJ
 Ç d A C  g¾g Âð ñ á( ¡gÐâpÖ Á¾
B C0 Ü0Ja°LXÑÀ§LÒÑ EìÈ|à[,Ï àáÀ $ÉóÏ ùo0! & =Mãq³o йÅ Á» M 7è  *¢Ø&l7! ù2ú
1!
¤ºßYåçdô:ÈÆ
l °oÐ&¶R
¾ñö2M%!¦-0
Q Ù$édľaH2ÄbBü"Ò
ö Lõ_Ä,K¹ñ¥‾{û&¤£ ¶0ÍFÀ¾!
¥ wq/á¼fa6MÉÆ ¾îX&ì6& 1O³Ø7àú(Úâ1È XM
\×á×(Æ ûíV
U&LÇXñë ÂÀqz6
HEàCiß X8k
z ïyÇðPJ
0J VáQ
±Nª
#=§ãQb
=(6Ç ]¥("{®
"çÓ1V<÷X$^̧Y6>
cÊ¿ïy6ºlc¹ p *67ÒÙz½
£á4Ïg¿ ©e ß ÃqªÊ
å Yö ®ë a Ó¹Ýq HŨà `Þµ'O.à×(ÿ óY¶\Ìð `)±
;;; RTRANS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE RCTR-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various reactor functions. ;
;;;--------------------------------------------------------------------;
;;;
;;; translation reactor utilities
;;;
;;;--------------------------------------------------------------------;
;;; Function: SAVE-PROPERTY ;
;;; ;
;;; Description: This function saves property in object extension ;
;;; dictionary the property name is saved in ;
;;; reactor's data ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a valid vla object. ;
;;; property = a string that denotes the item's property to ;
;;; save. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: ;
;;; (save-property ;
;;; vla-Object1 ;
;;; "Center") ;
;;;--------------------------------------------------------------------;
(defun save-property (vla-obj property)
(if (and (eq 'VLA-OBJECT (type vla-obj))
(vlax-read-enabled-p vla-obj)
;;(vlax-property-available-p vla-obj property)
)
(vlax-ldata-put
vla-obj
property
(vlax-get vla-obj property)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: SAVE-CENTER-REACTOR ;
;;; ;
;;; Description: This function saves the "Center" property ;
;;; of a vla object. ;
;;; ;
;;; Required Functions: ;
;;; save-property ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; such as: ;
;;; ;
;;; Usage: Should not be used alone and is intended to be ;
;;; be used within a reactor call back event. ;
;;; (save-center-reactor ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; PropertyString) ;
;;;--------------------------------------------------------------------;
(defun save-center-reactor (notifier reactor arg-list)
(save-property notifier "Center")
)
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-CENTER-REACTION ;
;;; ;
;;; Description: This function translates the "Center" property ;
;;; of a vla object. ;
;;; ;
;;; Required Functions: ;
;;; translate-vla-object ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (translate-center-reaction ;
;;; notifier ;
;;; arg-list) ;
;;;--------------------------------------------------------------------;
(defun translate-center-reaction
(notifier reactor arg-list / property from to)
(if (vlax-read-enabled-p notifier)
(progn
(setq from (vlax-ldata-get notifier "Center")
to (vlax-get notifier "Center")
)
(if
(not (equal from to))
(foreach obj (vlr-data reactor)
(translate-vla-object obj (subtract-vector to from))
)
)
)
)
)
;;; geometry utils
;;;--------------------------------------------------------------------;
;;; Function: ADD-VECTOR ;
;;; ;
;;; Description: This function returns the addition of ;
;;; two vectors. ;
;;; ;
;;; Arguments: ;
;;; v1 = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; v2 = a valid vector list such as: ;
;;; '( 2 2 2 ) ;
;;; ;
;;; Returned Value: A vector list with the subtraction performed ;
;;; from v1 and v2. ;
;;; (add-vector '(5 5 5 ) '(2 2 2)) ;
;;; Returns: ;
;;; (7 7 7) ;
;;; ;
;;; Usage: (add-vector '(5 5 5 ) '(2 2 2 )) ;
;;;--------------------------------------------------------------------;
(defun add-vector (v1 v2)
(vlax-3d-point (mapcar '+ v1 v2))
)
;;;--------------------------------------------------------------------;
;;; Function: SUBTRACT-VECTOR ;
;;; ;
;;; Description: This function returns the subtraction of two ;
;;; vectors. ;
;;; ;
;;; Arguments: ;
;;; v1 = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; v2 = a valid vector list such as: ;
;;; '( 1 1 1 ) ;
;;; ;
;;; Returned Value: A vector list with the subtraction performed ;
;;; from v1 and v2. ;
;;; (subtract-vector '(5 5 5 ) '(1 1 1)) ;
;;; Returns: ;
;;; (4 4 4) ;
;;; ;
;;; Usage: (subtract-vector '(5 5 5 ) '(1 1 1)) ;
;;;--------------------------------------------------------------------;
(defun subtract-vector (v1 v2)
(vlax-3d-point (mapcar '- v1 v2))
)
;;; matrix operations
;;;--------------------------------------------------------------------;
;;; Function: MAKE-TRANSLATION-MATRIX ;
;;; ;
;;; Description: This function converts a variant vector list ;
;;; (a list of three numbers) into a vector matrix. ;
;;; ;
;;; Required Functions: ;
;;; ;
;;; Example: A vector list '( 5 5 5 ) is passed to ;
;;; make-translation-matrix. The function then ;
;;; translates this value to a matrix list. ;
;;; using the following logic. ;
;;; ;
;;; make a translation matrix from ;
;;; 1,2 or 3 dim vector v represented as: ;
;;; list (x), (x y) or (x y z) ;
;;; ;
;;; ;
;;; Arguments: ;
;;; vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; or vector = a valid safearray variant vector list of doubles ;
;;; ;
;;; Returned Value: A matrix List such as: ;
;;; (make-translation-matrix '( 5 5 5 )) ;
;;; ;
;;; Returns List In As A Variant Array: ;
;;; ((1.0 0.0 0.0 5.0) ;
;;; (0.0 1.0 0.0 5.0) ;
;;; (0.0 0.0 1.0 5.0) ;
;;; (0.0 0.0 0.0 1.0) ;
;;; ) ;
;;; ;
;;; Usage: (make-translation-matrix '( 5 5 5 )) or ;
;;; (make-translation-matrix (vlax-3d-point '( 5 5 5 ))) ;
;;; ;
;;;--------------------------------------------------------------------;
(defun make-translation-matrix (vector / tm TransDataA TransData)
(if (> (vlax-variant-type vector) 8192)
(setq vector (vlax-safearray->list (vlax-variant-value vector)))
)
(setq tm
(list (list 1 0 0 (car vector))
(list 0 1 0 (cadr vector))
(list 0 0 1 (caddr vector))
'(0 0 0 1)
)
)
;; Convert to a Variant Array of Doubles here ->
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 3) (cons 0 3)))
(vlax-safearray-fill TransDataA tm)
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDoubl
e)))
)
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-VLA-OBJECT ;
;;; ;
;;; Description: This function translates the current ;
;;; transformation values of an object by a supplied ;
;;; vector list. This vector list is a list of three ;
;;; numbers which determine the new values for the ;
;;; existing transformation value. ;
;;; Translate-Vla-Object is similar to ;
;;; translate-object except this function performs ;
;;; error checking before passing the information ;
;;; to translate-object. ;
;;; ;
;;; Note: This function performs ;
;;; error checking. ;
;;; ;
;;; Required Functions: ;
;;; translate-object ;
;;; ;
;;; Example: A line beginning is anchored at 0,0,0. ;
;;; Its ending point is 1,0,0. The transformation ;
;;; value is '(5 5 5). Hence add 5 to the X value, 5 ;
;;; to the Y value and 5 to the Z value. The result ;
;;; will be: ;
;;; The beginning point will have 5,5,5 ;
;;; The ending point will have 6,5,5 ;
;;; ;
;;; The example above demonstrates a different method ;
;;; for moving an object. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a vla object that can contain ;
;;; transformation verctors. ;
;;; translation-vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; ;
;;; ;
;;; Returned Value: A vla object ;
;;; ;
;;; Usage: (translate-vla-object vla-Object '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun translate-vla-object (vla-obj translation-vector)
(if (and
vla-obj
(eq 'VLA-OBJECT (type vla-obj))
(vlax-write-enabled-p vla-obj) ; test if object can be modified
)
(translate-object vla-obj translation-vector)
)
)
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-OBJECT ;
;;; ;
;;; Description: This function translates the current ;
;;; transformation values of an object by a supplied ;
;;; vector list. This vector list is a list of three ;
;;; numbers which determine the new values for the ;
;;; existing transformation value. ;
;;; Translate-Object is similar to ;
;;; translate-vla-object except this function DOES ;
;;; NOT perform error checking before passing the ;
;;; information to make-translation-matrix. ;
;;; ;
;;; Note: This function DOES NOT performs ;
;;; error checking. ;
;;; ;
;;; Required Functions: ;
;;; translate-object ;
;;; ;
;;; Example: A line beginning is anchored at 0,0,0. ;
;;; Its ending point is 1,0,0. The transformation ;
;;; value is '(5 5 5). Hence add 5 to the X value, 5 ;
;;; to the Y value and 5 to the Z value. The result ;
;;; will be: ;
;;; The beginning point will have 5,5,5 ;
;;; The ending point will have 6,5,5 ;
;;; ;
;;; The example above demonstrates a different method ;
;;; for moving an object. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a vla object that can contain ;
;;; transformation vectors. ;
;;; translation-vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; ;
;;; ;
;;; Returned Value: A vla object ;
;;; ;
;;; Usage: (translate-object vla-Object '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun translate-object (obj translation-vector)
(vla-TransformBy
obj
(make-translation-matrix translation-vector)
)
)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-TRANSLATE-CURVE-REACTOR ;
;;; ;
;;; Description: This function creates a curve reactor. ;
;;; ;
;;; Required Functions: ;
;;; save-center-reactor ;
;;; translate-center-reaction ;
;;; ;
;;; Arguments: ;
;;; circles-list = a list of valid vla circles. ;
;;; reactor. ;
;;; curve = a list of valid vla objects which will ;
;;; receive notification. ;
;;; ;
;;; Returned Value: A vlr reactor object. ;
;;; ;
;;; Usage: Should not be used alone and is intended to be ;
;;; be used within a reactor call back event. ;
;;; (save-center-reactor ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; PropertyString) ;
;;;--------------------------------------------------------------------;
(defun create-translate-curve-reactor (circles-list curve)
(VLR-Object-reactor
circles-list ;;owners
(list curve) ;;recievers
(list (cons :vlr-objectClosed (function save-center-reactor))
(cons :vlr-modified (function translate-center-reaction))
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-RADIUS ;
;;; ;
;;; Description: This function prompts the user for a radius from ;
;;; a known point. User input is curtailed via a call ;
;;; to initget whose sum of the bit values determine ;
;;; the behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; 32 Uses dashed lines when drawing ;
;;; rubber-band line or box. For those ;
;;; functions with which the user can ;
;;; specify a point by selecting a ;
;;; location on the graphics screen, ;
;;; this bit value causes the ;
;;; rubber-band line or box to be ;
;;; dashed instead of solid. ;
;;; (Some display drivers use a ;
;;; distinctive color instead of ;
;;; dashed lines.) ;
;;; If the system variable POPUPS ;
;;; is 0, AutoCAD ignores this bit. ;
;;; ;
;;; 64 Prohibits input of a Z ;
;;; coordinate to the getdist ;
;;; function; lets an application ;
;;; ensure that this function returns ;
;;; a 2D distance. ;
;;; ;
;;; Arguments: ;
;;; point = a list of three reals that denotes where the ;
;;; rubber-banding visual aid will commence. ;
;;; ;
;;; Returned Value: a real number denoting a distance ;
;;; ;
;;; Usage: (get-radius '(0 0 0 )) ;
;;;--------------------------------------------------------------------;
(defun get-radius (point)
;| see above for the bit values used = (+ 1 2 4 32 64) |;
(if (eq (type point) 'VARIANT)
(if (> (vlax-variant-type point) 8192)
(setq point (vlax-safearray->list (vlax-variant-value point)))
)
)
(initget 103)
(getdist point "\nSelect radius: ")
)
;;EOF
¹Gª
¸¬ì}o¤nôÕ%Éô
± Ùj®]+=~º$ó^ðÔ>
RB Gùû µ÷ñ Úy [?_ ½%Pñ¿Ôá¨ý ^©ýÑn¼R³—¤ LÚ{x¥Ú_CñéÔ]n eÐû¤\ Û7¤Ä!øCÕEóçt¼G´:
;;; RTRANSL.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various reactor utilities ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-TRANSLATE-CENTER ;
;;; ;
;;; Description: This function is used within a :vlr-modified ;
;;; reactor event. ;
;;; ;
;;; Required Functions: ;
;;; subtract-vector ;
;;; translate-vla-circle ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the calling ;
;;; reactor. ;
;;; reactor = a valid vlr object reactor. Filled in by the ;
;;; calling reactor. ;
;;; arg-list = argument list filled in by the calling reactor. ;
;;; Filled in by the calling reactor. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: Intended to be called from a reactor call back. ;
;;; (reactor-translate-center notifier reactor arg-list) ;
;;;--------------------------------------------------------------------;
(defun reactor-translate-center
(notifier reactor arg-list
/ property from
to tr-vect transl-obj
)
(if (vlax-read-enabled-p notifier)
(progn
(setq from (vlax-ldata-get notifier "Center")
to (vlax-get notifier "Center")
tr-vect (subtract-vector to from)
)
(if
(and from
(not (equal from to))
)
(foreach obj (vlr-data reactor)
(translate-vla-circle obj tr-vect)
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-VLA-CIRCLE ;
;;; ;
;;; Description: This function is used as a move method for an ;
;;; object. ;
;;; ;
;;; Required Functions: ;
;;; add-vector ;
;;; ;
;;; Arguments: ;
;;; obj = a valid vla object. ;
;;; translation = a valid translation list as returned from ;
;;; add-vector. Such as (7 7 7) ;
;;; ;
;;; Returned Value: A valid vla object. ;
;;; ;
;;; Usage: ;
;;; (translate-vla-circle obj '( 7 7 7 ) ;
;;;--------------------------------------------------------------------;
(defun translate-vla-circle (obj translation / old-center new-center)
(if (and
obj
(eq 'VLA-OBJECT (type obj))
(vlax-write-enabled-p obj) ;; test if object can be modified
)
(progn
(setq old-center (vla-get-center obj)
new-center (add-vector old-center translation)
)
(vlax-ldata-put obj "Center" new-center)
;; It is important to store new-center before the object is moved.
;; Because after moving, this object will fire notifications to
;; its associated objects. Note: updating the new center position
;; property will not move other circles. Only the translation of
;; the first object will cause translations of all other objects.
(vla-move obj old-center (vlax-3d-point new-center))
)
)
)

;;;--------------------------------------------------------------------;
;;; Function: CREATE-TRANSLATE-REACTOR ;
;;; ;
;;; Description: This function is used as a reactor constructor. ;
;;; ;
;;; Required Functions: ;
;;; reactor-save-center ;
;;; reactor-translate-center ;
;;; save-object-properties ;
;;; ;
;;; Arguments: ;
;;; cla-lst = a list of vla circle objects. ;
;;; ;
;;; Returned Value: A valid vlr reactor object. ;
;;; ;
;;; Usage: ;
;;; (create-translate-reactor cla-lst ) ;
;;;--------------------------------------------------------------------;
(defun create-translate-reactor (cla-lst / reactor)
(function reactor-save-center)
(function reactor-translate-center)
(foreach obj cla-lst
(save-object-properties obj '("Center"))
)
(setq reactor
(VLR-Object-reactor
cla-lst ;; owners
cla-lst ;; recievers
(list
(cons :vlr-objectClosed 'reactor-save-center)
(cons :vlr-modified 'reactor-translate-center)
)
)
)
reactor
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-SQUARE-CL ;
;;; ;
;;; Description: This function creates 4 circles. ;
;;; ;
;;; Arguments: ;
;;; start-point = a valid 3d point (list of three reals) ;
;;; rad = a real number. ;
;;; ;
;;; Returned Value: A valid list of vla circle objects. ;
;;; ;
;;; Usage: ;
;;; (make-square-cl start-point rad) ;
;;;--------------------------------------------------------------------;
(defun make-square-cl
(start-point rad / acadApp acadDoc acadModel ac-lst pi2 i)
(setq acadApp (vlax-get-acad-object)
acadDoc (vla-get-ActiveDocument acadApp)
acadModel (vla-get-ModelSpace acadDoc)
pi2 (/ pi 2.0)
i 0
)
(while (< i 4)
(setq ac-lst (cons (vla-AddCircle acadModel (vlax-3d-point start-point)
rad) ac-lst)
i (1+ i)
start-point (polar start-point (* pi2 i) rad)
)
)
ac-lst
)

;;;--------------------------------------------------------------------;
;;; Function: C:RTRANSL-TST ;
;;; ;
;;; Description: This function prompts the user for the ;
;;; position of the first circle and creates ;
;;; 3 additional circles. The circle centers ;
;;; will form a square. ;
;;; ;
;;; Required Functions: ;
;;; create-translate-reactor ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A valid reactor object such as: ;
;;; #<VLR-Object-reactor> ;
;;; ;
;;; Usage: (C:RTRANSL-TST) or RTRANSL-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:RTRANSL-TST (/ pnt rad)
(initget 1)
(setq pnt (getpoint "\nSelect center of the first circle: "))
(initget 103) ;; (+ 1 2 4 32 64)
(setq rad (getdist pnt "\n Select radius: "))
(create-translate-reactor (make-square-cl pnt rad))
)
;;;--------------------------------------------------------------------;
;;; Function: C:RTRANSL-INFO ;
;;; ;
;;; Description: This function displays a help file in the ACAD ;
;;; Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:RTRANSL-INFO) or RTRANSL-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:RTRANSL-INFO ()
(princ
"\nFour circles will be created. These circles will be moved together"
)
(princ "\nif you move one of them.")
(princ
"\n(You will be asked to select center and radius of the circle.)"
)
(princ "\nFor test call RTRANSL-TST command")
(terpri)
(princ)
)

;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "RTRANSL-TST" "RTRANSL-INFO")
*REACT-TEST-COMMANDS-INFO*
)
)
;;EOF
ÿÏü
KkoÀ³uÚp
Åj¼M µ‾(
Éx øC Í`8 Ý~ h^z
?ÆÉGo5J1v
¤wxòUÚ8(ôÁPâNu—
t׶ Eë ų b ²Þ¹§ uÆ÷¡ öUg S>+ÀàÜ$pVn²$Ï]SÌ «ñ-8ä =ª
Lc$À§l³Ç¬>³¿®¡Oß ýäÚNf Ûôùi mv }ÄrDû ðÞ> '+P{¸ê:j»C³ þñìnÊ
ÝJQê
- 2Î&¬
nc¸ ¥fb2zlµKÆ
ìä½É>§[§Y96T|
Iê L
Á ÷zìYðÓ @íÞ«
' 2éÖIáív%g õî
f¹b@S?LIèl§¬Ùe
ö¢r¢çw?Ln
xüÚºr=Á/%wçߺ
µa géº ³®¨u
ÝΧðèàDµä
W¢KiíËÊåÔ¾³ªÈ
Ç© ÝÎ#%íÿ`
; 0yÿû¨ l³
¾zí
!¢EPßÐѽ1 ½Oì¥û ¥ Ä ÀöúßoU %J¶wç$Ù ªüxóyEô`®m ßè߶¿ýã q3\òLre¾:äúÍÒ 5O£°—2ó#Ò `ÊÐ_Yضùq:5u
Ùe?ÜÜ{  X  § °J ÝË<%ÔOai6éQW]ë Mg[Å$n×ëgÝ
5tÎò ã}Q n/ ÝY´Þ_énE²Ù] ‾ cñ³ÙvDÇtC¹® §§® 3ð= Å wÖ%v UØR½5?© d\(« å-å\°Óð9-*¼ ÀÝ(©YJ ©FmR7å
Ö{Õ¡t
i#ÍxËy¢¹
¦ë£z»õ¡
8ê bãy
Ï ¤ÊGݽh]y#§¡u¶Wýh«ì^ñe ³Ë¥î`¹°39¬ã lFíIëÍWï`F <vV ].¤' þÁ~Ieß pI\ö/H"Ï ×(
¹Ì£ >i÷.=ðµ uLHì¹ÕñÓ ämm »  Âµ ÐÅÚÛ î³ë{H;{Xd¬¡9(÷ s ä;;;
;;; RTUCS.LSP - Written by Randy Kintzley
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;[tab] toggle axis
;[r] restore
;[s] save current
;[d] delete
;[c] cycle
;[a] snap angle
;[o] origin
;[w] world
;[v] view
;[u] undo
;
;
(defun c:rtucs ( / snap p1 p2 vh lst lst2 lst3 lst4
flag flag2 da a b c pn pndn pr
)
(acet-error-init (list (list "cmdecho" 0
"ucsicon" 3
"modemacro" ""
"ucsfollow" 0
"osmode" 0
"gridmode" 0
);list
T
);list
);acet-error-init
(setq *error* (append (list (car *error*) (cadr *error*))
(list '(bns_rtucs_finish lst lst3 lst4)
'(acet-error-restore)
);list
);append
);setq
(setvar "ucsicon" 0)
(command "_.undo" "_m")
(setvar "ucsicon" 3)
(setq snap (acet-getvar (list "BNS_RTUCS_ASNAP" 2))) ;Look in the reg
(if (not snap)
(progn
(setq snap 15.0)
(acet-setvar (list "BNS_RTUCS_ASNAP" 15.0 2))
);progn then set up defaults
);if
(setq p1 (acet-geom-view-points)
p2 (trans (cadr p1) 1 2)
p1 (trans (car p1) 1 2)
p1 (list (car p1) (cadr p1) 0.0) ;lower left corner in display
coords.
p2 (list (car p2) (cadr p2) 0.0) ;upper right corner in displa
y coords.
vh (/ (- (cadr p2) (cadr p1)) ;view height divided by 2.0
2.0
)
lst (list "X" "Y" "Z") ;axis list, first element is
active axis
lst2 '( ;standard ucs list
((1.0 0.0 0.0) (0.0 1.0 0.0)) ; - top (parallel to World)
((1.0 0.0 0.0) (0.0 0.0 1.0)) ; - front
((0.0 1.0 0.0) (0.0 0.0 1.0)) ; - right
((-1.0 0.0 0.0) (0.0 0.0 1.0)) ; - back
((0.0 -1.0 0.0) (0.0 0.0 1.0)) ; - left
((-1.0 0.0 0.0) (0.0 1.0 0.0)) ; - bottom
)
lst3 (bns_rtucs_saved) ;saved ucs'
flag 0 ;pick flag 0=inactive or 1=active rotation
da 0.0 ;delta angle
);setq
(setvar "ucsicon" 3)
(bns_rtucs_display_status lst da flag)

(setq pr (strcat "\nPress TAB key to change axis or "


"\n[Save/Restore/Delete/Cycle/Angle/Origin/View/World/Undo] <Dr
ag to rotate>"
);strcat
);setq
(princ pr)
(while (not (equal (setq a (bns_rtucs_getinput))
" "
);equal
);not
(cond
;;;;-------streamed coord. ------------------
((and (equal (type a) 'LIST) ;its a
(or (equal (car a) 5) ;Streamed coord or
(equal (car a) 3) ;a picked coord
);or
(setq pn (cadr a)) ;Set the last known coord.
);and
(setq flag2 (acet-sys-lmouse-down));setq
(if (and flag2
(equal flag 0)
(equal 3 (car a))
);and
(progn
(setq pndn pn ;the pen down point
c (acet-ucs-get nil)
lst4 (cons (list "PICK-Rotate" c) lst4)
flag 1
);setq
);progn then set pen down at location
(progn
(if (not flag2) ;mouse is up
(progn
(setq da 0.0)
(if (not (equal flag 0)) ;if this is pick button up event
(bns_rtucs_display_status lst da flag) ;then display current th
e status.
);if
(setq flag 0);setq set pen up.
);progn else pen is up
);if
);progn else
);if
(if (equal flag 1) ;pen down
(progn
(setq da (bns_rtucs_calc_da vh ;view height
snap ;angle snap
(car lst) ;current axis (string)
pndn ;pen down
pn ;last pen location
da ;current delta angle
);bns_rtucs_calc_da
);setq
(bns_rtucs_display_status lst da flag) ;display current the status.
);progn then pen is down
);if
);cond #1
;;;;-------axis toggle ------------------
((equal a "\t") ;Toggle active axis
(setq lst (list (cadr lst) (caddr lst) (car lst))
da 0.0 ;reset delta angle
pndn pn ;set pen down point to last known point
);setq
(bns_rtucs_display_status lst da flag) ;display current the status.
;(princ pr)
);cond #2
;;;;-------Restore ------------------
((equal a "R") ;Restore a ucs
(setq flag 0) ;pen up
(if lst3
(progn
(setq c (acet-ucs-get nil))
(acet-ucs-set (cadr (car lst3)))
(princ (strcat "\nRestored UCS: " (car (car lst3)) "."))
(setq lst3 (append (cdr lst3) (list (car lst3))));setq
(setq lst4 (cons (list "RESTORE" c) lst4));setq ;log the event to undo cu
e
(bns_rtucs_display_status lst da flag) ;display current the status.
);progn then
(princ "\nNo saved UCS'.")
);if
(princ pr)
);cond #3
;;;;-------Delete ------------------
((equal a "D") ;Delete a saved ucs
(setq flag 0) ;pen up
(if lst3
(progn
(setq c (acet-ucs-get nil))
(setq a nil)
(while (and (setq a (xstrcase (getstring "\nDelete UCS: ")))
(not (equal a ""))
(not (assoc a lst3))
);and
(princ (strcat "\nUCS " a " not found."))
);while
(if (not (equal a ""))
(progn
(setq lst4 (cons (list "DELETE" c a lst3) lst4));setq log event to u
ndo cue
(setq lst3 (append (reverse (cdr (member (assoc a lst3) (reverse lst
3))))
(cdr (member (assoc a lst3) lst3))
);append remove the item from saved list
);setq
);progn then delete it.
);if
);progn then
(princ "\nNo saved UCS'.")
);if
(princ pr)
);cond #4
;;;;-------save ------------------
((equal a "S") ;Save current
(setq a nil
flag 0 ;pen up
);setq
(while (and (not (equal a ""))
(or (not a)
(not (snvalid a))
);or
);and
(setq a (getstring "\nSave current UCS as: "))
(if (and (not (equal a ""))
(not (snvalid a))
);and
(princ "\n*Invalid name*")
);if
);while
(if (and a
(not (equal a ""))
);and
(progn
(setq a (xstrcase a))
(if (or (not (assoc a lst3))
(equal "Yes"
(progn
(initget "Yes No")
(getkword (strcat "\nUCS " a " already exists. Replace i
t? <N> "))
);progn
);equal
);or
(progn
(setq c (acet-ucs-get nil)
a (xstrcase a)
);setq
(setq lst4 (cons (list "SAVE" ;the operation
c ;current ucs orientation
a ;the name to save it as
lst3 ;the saved list as it exists before sa
ving
);list
lst4 ;the undo que
);cons
);setq log the event to undo que
(if (not (assoc a lst3))
(setq lst3 (append lst3
(list (list a c))
);append
);setq then add the new ucs to the saved list
;or replace the old one with the new one.
(setq lst3 (subst (list a c) (assoc a lst3) lst3));setq
);if
(princ (strcat "\nUCS " a " saved."))
);progn then save it
);if
);progn then save it?
);if
(princ pr)
);cond #5
;;;;-------Cycle through top, front, right, back, left, bottom ---------------
---
((equal a "C") ;Cycle through standard orientations top, front,
right, back, left, bottom
(setq flag 0 ;pen up
c (acet-ucs-get nil)
b (append (list (getvar "ucsorg"))
(car lst2)
)
);setq
(while (equal (cdr b) (cdr c)) ;make sure we are not already lined up to the n
ext cycled ucs
(setq lst2 (append (cdr lst2) (list (car lst2)))
b (append (list (getvar "ucsorg"))
(car lst2)
)
);setq
);while
(acet-ucs-set b)
(setq lst2 (append (cdr lst2) (list (car lst2)))
lst4 (cons (list "CYCLE" c) lst4) ;log the event to undo cue
);setq
(bns_rtucs_display_status lst da flag) ;display current the status.
);cond #6
;;;;------- angle snap------------------
((equal a "A") ;Angle snap
(setq c (acet-ucs-get nil))
;;;Get the new angle snap value or accept a default.
(initget 4);dis-allow negative values.
(setq snap (getangle (strcat "\nEnter angle snap increment or 0 for off <"
(angtos (* snap (/ pi 180.0)))
">: "
)
);getangle
);setq
(if snap
(progn
(setq snap (* snap (/ 180.0 pi)));setq
(setq lst4 (cons (list "Angle-Snap" c
(acet-getvar (list "BNS_RTUCS_ASNAP" 2))
);list
lst4
);cons
);setq log the event to undo cue
(acet-setvar (list "BNS_RTUCS_ASNAP" snap 2)) ;set the new one
(if (equal flag 1) ;if the pen is down set cur ucs to proper location
(progn
;;;Snap the ucs to new value
(setq da (bns_rtucs_calc_da vh ;view height
snap ;angle snap
(car lst) ;current ax is (string)
pndn ;pen down
pn ;last pen location
da ;current delta angle
)
);setq
);progn then
);if
);progn then set new snap
(setq snap (acet-getvar (list "BNS_RTUCS_ASNAP" 2))) ;else get the or
iginal
);if
(bns_rtucs_display_status lst da flag) ;display current the status.
(princ pr)
);cond #7
;;;;------- set Origin ------------------
((equal a "O") ;set Origin
(if (setq a (assoc "OSMODE" (car acet-#-sysvar-list))) ;restore user's osnap
(setvar "osmode" (cadr a))
);if
(if (setq p1 (getpoint "\nPick new origin point: "))
(progn
(setq c (acet-ucs-get nil)
flag 0 ;pen up
);setq
(command "_.ucs" "_or" p1)
(setq lst4 (cons (list "ORIGIN" c) lst4));setq
);progn then
);if
(princ pr)
(setvar "osmode" 0) ;turn it back off.
(bns_rtucs_display_status lst da flag) ;display current the status.
);cond #8
;;;;------- World ------------------
((equal a "W") ;set World
(setq flag 0 ;pen up
c (acet-ucs-get nil)
);setq
(command "_.ucs" "_w")
(setq lst4 (cons (list "WORLD" c) lst4));setq
(bns_rtucs_display_status lst da flag) ;display current the status.
);cond #9

;;;;------- View ------------------


((equal a "V") ;set View
(setq flag 0 ;pen up
c (acet-ucs-get nil)
);setq
(command "_.ucs" "_view")
(setq lst4 (cons (list "VIEW" c) lst4));setq
(bns_rtucs_display_status lst da flag) ;display current the status.
);cond #10
;;;;------- Undo ------------------
((equal a "U")
(if lst4
(progn
(setq a (car lst4))
(cond
((equal (car a) "Angle-Snap")
(setq snap (last a))
(acet-setvar (list "BNS_RTUCS_ASNAP" snap 2))
(acet-ucs-set (cadr a))
);cond #1
((or (equal (car a) "SAVE") ;Need to special case SAVE and DELET
E
(equal (car a) "DELETE")
);or
(setq lst3 (last a)) ;retsore the previous saved list
);cond #2
(T
(acet-ucs-set (cadr a))
);cond #3
);cond close
(princ (strcat "\nUndo " (car a)))
(setq lst4 (cdr lst4)) ;pull the operation out of the cue
);progn then
(princ "\nNothing to undo.")
);if
(setq flag 0) ;bring the pen up.
(bns_rtucs_display_status lst da flag) ;display current the status.
(princ pr)
);cond #11
);cond close
(if (equal flag 0) ;if pen is up then set da to 0
(setq da 0.0)
);if

);while
(bns_rtucs_finish lst lst3 lst4)
(acet-error-restore)
);defun c:rtucs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rtucs_finish ( lst lst3 lst4 / a n e1 na )
(princ "\n")

(bns_rtucs_tmp_update 0 lst)
(setvar "ucsicon" 0)
(setq a (acet-ucs-get nil))
(command "_.undo" "_back")
(if (not (equal (getvar "cmdnames") "")) ;just in case code.
(command nil)
);if
(acet-ucs-set a)
;get ready to do the qued save and delete operations....
(setq lst4 (reverse lst4));setq
(setq n 0)
(repeat (length lst4)
(setq a (nth n lst4));setq
(cond
((equal (car a) "SAVE")
(if (assoc (caddr a) lst3)
(progn
(setq a (assoc (caddr a) lst3));setq
(if (setq na (tblobjname "ucs" (car a)))
(progn
(setq e1 (entget na)
e1 (subst (cons 10 (car (cadr a))) (assoc 10 e1) e1)
e1 (subst (cons 11 (cadr (cadr a))) (assoc 11 e1) e1)
e1 (subst (cons 12 (caddr (cadr a))) (assoc 12 e1) e1)
);setq
(entmod e1)
);progn then re-define it with entmod
(progn
(setq e1 (list '(0 . "UCS") '(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbUCSTableRecord")
(cons 2 (car a))
'(70 . 0)
(cons 10 (car (cadr a)))
(cons 11 (cadr (cadr a)))
(cons 12 (caddr (cadr a)))
);list
);setq
(entmake e1)
);progn else create it with entmake
);if
);progn then save it
);if
);cond #1
((equal (car a) "DELETE")
(if (and (caddr a)
(tblobjname "ucs" (caddr a))
);and
(command "_.ucs" "_d" (caddr a))
);if
);cond #2
);cond close
(setq n (+ n 1));setq
);repeat
);defun bns_rtucs_finish
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rtucs_calc_da ( vh snap axis pndn pn da / a p1 p2 p3 p4 p5 da2)
(setq p1 (trans '(0.0 0.0 0.0) 1 2)) ;setq trans 0,0 from current to display
(cond
((equal axis "X") (setq p2 (trans '(1.0 0.0 0.0) 1 2)))
((equal axis "Y") (setq p2 (trans '(0.0 1.0 0.0) 1 2)))
((equal axis "Z") (setq p2 (trans '(0.0 0.0 1.0) 1 2)))
);cond
(setq p1 (list (car p1) (cadr p1) 0.0)
p2 (list (car p2) (cadr p2) 0.0)
);setq
(if (equal p1 p2 0.000001)
(setq p2 (polar pndn 0 1.0)) ;then vector is directly into screen.
(setq p2 (polar pndn (angle p1 p2) 1.0));setq From last pick along current a
xis a distance of 1
);if
(setq p2 (list (car p2) (cadr p2) 0.0) ;Make sure 0 elevation
p3 (bns_rtucs_findpint pndn p2 pn) ;Get perp from pn to vector pndn-p2 (a
long cur axis)
p4 (angle pndn p2) ;Angle of cur axis with respect to dis
play coords.
p5 (angle pndn pn) ;Angle from last pick to streamed coor
d.
);setq
(if (< p4 0) ;make sure p4 is pos
(setq p4 (+ p4 (* 2.0 pi)))
);if
(if (< p5 0) ;make sure p5 is pos
(setq p5 (+ p5 (* 2.0 pi)))
);if
(if (< p5 p4) ;make sure p5 is greater than p4
(setq p5 (+ p5 (* 2.0 pi)))
);if
(if (and (>= (- p5 p4) 0) ;if angle change is less than 180 then set
dist a
(<= (- p5 p4) pi) ;to a neg
);and
(setq a (* -1.0 (distance pn p3)))
(setq a (distance pn p3)) ;else use pos value
);if
(setq a (/ (* 180.0 a) vh));setq ;where it should to be
(if (not (equal 0.0 snap))
(progn
(setq a (acet-calc-round a snap));setq
);progn then
);if
(setq da2 (- a da));setq where it should be minus where it is
(if (not (equal 0.0 da2))
(command "_.ucs" (strcat "_" axis) da2)
);if
a
);defun bns_rtucs_calc_da

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Returns a list of saved ucs'
(defun bns_rtucs_saved ( / lst n a b)

(setq lst (acet-table-name-list "ucs"))


(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
b (tblobjname "ucs" a)
b (entget b)
b (list (xstrcase a)
(list (cdr (assoc 10 b))
(cdr (assoc 11 b))
(cdr (assoc 12 b))
);list
);list
);setq
(setq lst (subst b a lst));setq
(setq n (+ n 1));setq
);repeat
lst
);defun bns_rtucs_saved
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rtucs_findpint ( p1 p2 p3 / m1 m2 p4 b1 b2 dx dy)

(cond
((equal 0.0
(- (car p2)
(car p1)
);minus
0.000001
);equal
(setq p4 (list (car p1) (cadr p3));list
);setq
);cond #1 then line is verticle
((equal 0.0
(- (cadr p2)
(cadr p1)
);minus
0.000001
);equal
(setq p4 (list (car p3) (cadr p1));list
);setq
);cond #2 then horizontal
(T
(progn
(setq dx (- (car p2)
(car p1)
);minus
dy (- (cadr p2)
(cadr p1)
);minus
m1 (/ dy dx)
m2 (* -1 (/ dx dy))
b1 (- (cadr p1)
(* (car p1)
m1
);multiply
);minus
b2 (- (cadr p3)
(* (car p3)
m2
);multiply
);minus
p4 (/ (- b1 b2)
(- m2 m1)
);div. the x coord.
p4 (list p4
(+ (* m2 p4) b2) ;the y coord.
);list
);setq
);progn
);cond #3
);cond close
(list (car p4) (cadr p4) 0.0)
);defun bns_rtucs_findpint
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rtucs_getinput ( / a b)
(setq a (grread 1 ;stream input
14 ;4=use pointer draw flag, 2 don't move the key cursor, 8 no
console erro message
0 ;draw flag 0=normal, 1=none, 2=select
)
b (cadr a)
a (car a)
);setq
(cond
((equal a 2)
(setq b (xstrcase (chr b)))
(if (equal b "\r")
(setq b " ")
);if
(princ (chr 8))
)
((equal a 11)
(setq b " ")
)
((or (equal a 3)
(equal a 5)
)
(setq b (trans b 1 2)
b (list (car b) (cadr b) 0.0)
b (list a b)
);setq
);or
);cond close
b
);defun bns_rtucs_getinput
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_rtucs_display_status ( lst da flag / a x y z fuz)
(bns_rtucs_tmp_update 1 lst)
(setq a (strcat "Current axis = " (car lst))
fuz 0.000001
);setq
(if (equal flag 1)
(setq a (strcat a " < "
(rtos da 2 (getvar "auprec"))
)
);setq
);if
(setq x (getvar "ucsxdir")
y (getvar "ucsydir")
z (acet-geom-cross-product x y)
);setq
(cond
((equal z '(0.0 0.0 1.0) fuz)
(if (and (equal x '(1.0 0.0 0.0) fuz)
(equal y '(0.0 1.0 0.0) fuz)
);and
(progn
(if (equal (getvar "ucsorg") '(0.0 0.0 0.0) fuz)
(setq a (strcat a " WORLD (Top)"));setq
(setq a (strcat a " Top"))
);if
);progn then either world or top
(setq a (strcat a " (Top)"));else parallel to top (indicated by parens)
);if
);cond 1
((equal z '(0.0 -1.0 0.0) fuz)
(if (and (equal x '(1.0 0.0 0.0) fuz)
(equal y '(0.0 0.0 1.0) fuz)
);and
(setq a (strcat a " Front")) ;then front
(setq a (strcat a " (Front)")) ;else parallel to front
);if
);cond 2
((equal z '(1.0 0.0 0.0) fuz)
(if (and (equal x '(0.0 1.0 0.0) fuz)
(equal y '(0.0 0.0 1.0) fuz)
);and
(setq a (strcat a " Right"))
(setq a (strcat a " (Right)")) ;parallel
);if
);cond 3
((equal z '(0.0 1.0 0.0) fuz)
(if (and (equal x '(-1.0 0.0 0.0) fuz)
(equal y '(0.0 0.0 1.0) fuz)
);and
(setq a (strcat a " Back"))
(setq a (strcat a " (Back)")) ;parallel
);if
);cond 4
((equal z '(-1.0 0.0 0.0) fuz)
(if (and (equal x '(0.0 -1.0 0.0) fuz)
(equal y '(0.0 0.0 1.0) fuz)
);and
(setq a (strcat a " Left"))
(setq a (strcat a " (Left)"))
);if
);cond 5
((equal z '(0.0 0.0 -1.0) fuz)
(if (and (equal x '(-1.0 0.0 0.0) fuz)
(equal y '(0.0 1.0 0.0) fuz)
);and
(setq a (strcat a " Bottom"))
(setq a (strcat a " (Bottom)"))
);if
);cond 6
);cond close
(setvar "modemacro" a)
);defun bns_rtucs_display_status
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun bns_rtucs_tmp_update ( flag xlst / d n lst lst2 lst3 )
(if #bns_rtucs_tmp
(progn
(setq lst #bns_rtucs_tmp)
(setq n 0)
(repeat (length lst)
(bns_rtucs_tmp_draw (nth n lst) ;list of points
0 ;color
0
)
(bns_rtucs_tmp_draw (nth n lst) ;list of points
0 ;color
0
)
(setq n (+ n 1));setq
);repeat
(setq #bns_rtucs_tmp nil)
);progn then un-draw the previous stuff
);if
(if (equal flag 1)
(progn
(setq d (* 0.15 (getvar "viewsize")));setq
(setq lst (list (trans '(0.0 0.0 0.0) 1 0)
(trans (list d 0.0 0.0) 1 0)
);list
lst2 (list (trans '(0.0 0.0 0.0) 1 0)
(trans (list 0.0 d 0.0) 1 0)
);list
lst3 (list (trans '(0.0 0.0 0.0) 1 0)
(trans (list 0.0 0.0 d) 1 0)
);list
);setq
(if (equal (car xlst) "X")
(bns_rtucs_tmp_draw lst 1 1)
(bns_rtucs_tmp_draw lst 1 0)
)
(if (equal (car xlst) "Y")
(bns_rtucs_tmp_draw lst2 2 1)
(bns_rtucs_tmp_draw lst2 2 0)
)
(if (equal (car xlst) "Z")
(bns_rtucs_tmp_draw lst3 3 1)
(bns_rtucs_tmp_draw lst3 3 0)
)
(setq #bns_rtucs_tmp (list lst lst2 lst3
);list
);setq
);progn then
);if

);defun bns_rtucs_tmp_update

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun bns_rtucs_tmp_draw ( lst c h / n a b)
(setq a (trans (car lst) 0 1))
(setq n 1)
(repeat (max 0 (- (length lst) 1))
(setq b (trans (nth n lst) 0 1));setq
(grdraw a b c h)
(setq a b)
(setq n (+ n 1));setq
);repeat
);defun bns_rtucs_tmp_draw
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-top ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(1.0 0.0 0.0) 0 1 T) (trans '(0.0 1.0 0.0) 0 1 T)
)
(acet-error-restore)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-front ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(1.0 0.0 0.0) 0 1 T) (trans '(0.0 0.0 1.0) 0 1 T)
)
(acet-error-restore)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-right ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(0.0 1.0 0.0) 0 1 T) (trans '(0.0 0.0 1.0) 0 1 T)
)
(acet-error-restore)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-back ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(-1.0 0.0 0.0) 0 1 T) (trans '(0.0 0.0 1.0) 0 1 T)
)
(acet-error-restore)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-left ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(0.0 -1.0 0.0) 0 1 T) (trans '(0.0 0.0 1.0) 0 1 T)
)
(acet-error-restore)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
(defun c:acetUcs-bottom ()
(acet-error-init '(("cmdecho" 0 "osmode" 0)))
(command "_.ucs" "_3p" "0,0,0"
(trans '(-1.0 0.0 0.0) 0 1 T) (trans '(0.0 1.0 0.0) 0 1 T)
)
(acet-error-restore)
)

:E½
(princ)
*×áRÏL æ²oÇ̺
ÇÐ;]öÔ[ííÛ
"èú #n±ÈWÔtá!ÛbÔvÚbcÇÁ
(åWL_ ÙVèÐÖ »>YÿnëøB® lÖü!
¥DÌH&© SÖfucÚO°®ë×7 j¿âê`q1uàâ'>Õhëå¾ o ó¥Ì ¹X§¸`wøU±ô6
RTmuâê9ªLP zÀEÓ ìªýÞ\ ¢øn) =ºÓ5_ç-þÄ¥9n±Õ¾Ê,êóklæ²j-¸Èx]¸©à\W{Y!«ªÈ[JBa,  ¨1Sí-È8 ÂpÉ
 y`8¢ë&ÈØ
ËA ¼L, ß´V3-
FÛ ÖËd¸Î
© ^<ê¬Üg5
óZXô§õ
½Å~ ÓõÕ
EÈ.9s¨7
Aò¶ñh]ݧÌK4R
. ê3ï@ Y&R
=¿ö¸ÝE
t \0>;R@ø§÷
à <×}ÂL
ؤÍÀéD
vÇ¥¹Ã(NàS-}
é ©F öChhÒra&ú
BÒ{NuèrÉã^5Üé
@KÍc x CÃ Áûb¤
8 .
«¿&
~ ©åý  `Å°xÞ /ÅSU[«Ä"òAcg_µýõgè´%àz#fÒ # öÀ¦ 0ÿßó—ckÙ ²öðÔ½Og*yHMÂéJÞòD£k{ªkúE鱪 ¬±¼Ê@4+ z
«7TU²u ¿ fÅbáQ
% m;$u ÚÄÜ- ÍÁ¼°"®Þ§<ã¼ÙeèË1 ë f`ß% é ú D°a ¤¨ÿ Bt ÌÃR |=ѧ ØgAÛAbÍ_[`¢ácé0ö Ú FÜ""6]±ô -ë
D4Bå>Q¡D ïÆ¥±
AOáûa Pêk—®"ý70á[å 7 /Ø) ÍN]ö êY(+CAi¦å`
—¡0Êã8v±aR|ì;ëP:kjÀ,V ð[{Ö ! ' > w'n¹ ~!¿^ 6  ÁT # wYm
îÚ ä: 0§ =îà/Jtk} aª ^'ÿTû è 'ÝgmV òÒ4Àñ,\? yM.ÆN£T "9íúì_ À ¢ÔôÄͱ,>¿:XJI`oÔê[ #RÇ
;;; RUTILS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; General Note: This file creates and uses global variables. Their ;
;;; definition and descriptions follow. ;
;;; ;
;;; ;
;;; Global Names Description ;
;;;---------------------------|----------------------------------------;
;;; *current-model-space* | Vla model space object identifier ;
;;; | value could be: ;
;;; | #<VLA-OBJECT IAcadModelSpace 027a34c0> ;
;;;---------------------------|----------------------------------------;
;;; *current-paper-space* | Vla model space object identifier ;
;;; | value could be: ;
;;; | #<VLA-OBJECT IAcadPaperSpace 03131e0c> ;
;;;---------------------------|----------------------------------------;
;;; This file contains useful utility functions for the REAC-TST ;
;;; project and can be useful for any project. ;
;;; ;
;;; For a description of the entire project and a listing of the ;
;;; AutoCAD commands defined within it, see the source code file ;
;;; REAC-TST.PRJ. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: _REACTOR-MAKE-SAME-PROPERTIES ;
;;; ;
;;; Description: This function is used to modify a collection of ;
;;; vla objects to share the same properties. ;
;;; ;
;;; Arguments: ;
;;; obj1 = a valid vla object To be used as the source ;
;;; object to get properties from. ;
;;; obj2 = a valid vla object to be used as the target ;
;;; objects to place the properties from obj1. ;
;;; property-list = a list of properties to be modified. ;
;;; ;
;;; Returned Value: A vla object with updated properties. ;
;;; ;
;;; Usage: ;
;;; (_reactor-make-same-properties ;
;;; obj1 ;
;;; obj2 ;
;;; property-list) ;
;;;--------------------------------------------------------------------;
(defun _reactor-make-same-properties
(obj1 obj2 property-list / new-value)
(if (and (eq 'VLA-OBJECT (type obj2))
(vlax-write-enabled-p obj2) ; test if object can be modified
(vlax-read-enabled-p obj1) ; test if object can be read
)
(foreach property property-list
(if (and (vlax-property-available-p obj1 property)
(vlax-property-available-p obj2 property)
(not ; don't modify if equal
(equal (setq new-value (vlax-get obj1 property))
(vlax-get obj2 property)
)
)
)
(vlax-put obj2 property new-value)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: _REACTOR-MAKE-SAME-PROPERTIES-LIST ;
;;; ;
;;; Description: This function is used to modify a collection of ;
;;; vla objects to share the same properties. ;
;;; ;
;;; Required Functions: ;
;;; _reactor-make-same-properties ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; obj-list = a valid list of vla objects to be modified with ;
;;; the same property list. ;
;;; property-list = a list of properties to be modified. ;
;;; ;
;;; Returned Value: A vla object ;
;;; ;
;;; Usage: ;
;;; (_reactor-make-same-properties-list ;
;;; notifier ;
;;; (vlr-data reactor) ;
;;; '("Center") ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun _reactor-make-same-properties-list
(notifier obj-list property-list)
(foreach obj obj-list
(_reactor-make-same-properties notifier obj property-list)
)
)

;;;--------------------------------------------------------------------;
;;; Function: REACTOR-MAKE-SAME-RADIUS ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. It is responsible in modifying the ;
;;; radius of a circle. ;
;;; ;
;;; Required Functions: ;
;;; _reactor-make-same-properties-list ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; Filled in by the reactor invoked. ;
;;; arg-list = a list of arguments. ;
;;; Filled in by the reactor invoked. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (reactor-make-same-radius ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun reactor-make-same-radius (notifier reactor arg-list)
(_reactor-make-same-properties-list
notifier
(vlr-data reactor)
'("Radius")
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-MAKE-SAME-CENTER ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. It is responsible in modifying the ;
;;; center of a circle. ;
;;; ;
;;; Required Functions: ;
;;; _reactor-make-same-properties-list ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; Filled in by the reactor invoked. ;
;;; arg-list = a list of arguments. ;
;;; Filled in by the reactor invoked. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (reactor-make-same-center ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun reactor-make-same-center (notifier reactor arg-list)
(_reactor-make-same-properties-list
notifier
(vlr-data reactor)
'("Center")
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-MAKE-SAME-RADIUS-COLOR ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. It is responsible in modifying the ;
;;; radius and color of a circle. ;
;;; ;
;;; Required Functions: ;
;;; _reactor-make-same-properties-list ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; Filled in by the reactor invoked. ;
;;; arg-list = a list of arguments. ;
;;; Filled in by the reactor invoked. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (reactor-make-same-radius-color ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun reactor-make-same-radius-color (notifier reactor arg-list)
(_reactor-make-same-properties-list
notifier
(vlr-data reactor)
'("Radius" "Color")
)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Object Property Utilities ;
;;;--------------------------------------------------------------------;
;;; Function: SAVE-OBJECT-PROPERTIES ;
;;; ;
;;; Description: Saves a property in the object extension ;
;;; dictionary. The property value is saved to the ;
;;; reactor data. ;
;;; ;
;;; Required Functions: ;
;;; save-object-properties ;
;;; ;
;;; Arguments: ;
;;; vla-object = a valid vla object. ;
;;; ;
;;; property-list = a list of properties to place in the ;
;;; objects dictionary. ;
;;; ;
;;; Returned Value: A vla object. ;
;;; ;
;;; Usage: ;
;;; (save-object-properties ;
;;; Vla-Object ;
;;; properties-list ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun save-object-properties (vla-obj property-list)
(if (and (eq 'VLA-OBJECT (type vla-obj))
(vlax-read-enabled-p vla-obj)
)
(foreach property property-list
(if (vlax-property-available-p vla-obj property)
(vlax-ldata-put
vla-obj
property
(vlax-get vla-obj property)
)
)
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-SAVE-CENTER ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. ;
;;; ;
;;; Required Functions: ;
;;; save-object-properties ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; (this argument is ignored) but must be supplied. ;
;;; arg-list = a list of arguments. ;
;;; (this argument is ignored) but must be supplied. ;
;;; ;
;;; Returned Value: A vlr object reactor. ;
;;; such as: ;
;;; #<VLR-XXXXXX-reactor> ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (reactor-save-center ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun reactor-save-center (notifier reactor arg-list)
(save-object-properties notifier '("Center"))
)
;;;--------------------------------------------------------------------;
;;; Function: REACTOR-SAVE-CENTER-COLOR ;
;;; ;
;;; Description: This function is used as a call back function to ;
;;; an event. ;
;;; ;
;;; Required Functions: ;
;;; save-object-properties ;
;;; ;
;;; Arguments: ;
;;; notifier = a valid vla object. Filled in by the reactor ;
;;; invoked. ;
;;; reactor = a valid reactor that triggered the call back. ;
;;; (this argument is ignored) but must be supplied. ;
;;; arg-list = a list of arguments. ;
;;; (this argument is ignored) but must be supplied. ;
;;; ;
;;; Returned Value: A vlr object reactor. ;
;;; such as: ;
;;; #<VLR-XXXXXX-reactor> ;
;;; ;
;;; Usage: Should not be used alone. ;
;;; ;
;;; (reactor-save-center-color ;
;;; Object-which-is-notifying ;
;;; Reactor-which-has-been-invoked ;
;;; Some-list ) ;
;;;--------------------------------------------------------------------;
(defun reactor-save-center-color (notifier reactor arg-list)
(save-object-properties notifier '("Center" "Color"))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Sometimes it is useful to place reactors into selected objects ;
;;; Here are some constructors to work with ;
;;;--------------------------------------------------------------------;
;;; Function: CREATE-SAME-REACTOR ;
;;; ;
;;; Description: This creates a duplicate modified event for a ;
;;; list of vla-objects. ;
;;; ;
;;; Arguments: ;
;;; obj-list a valid list of vla objects. ;
;;; reaction = a valid function to invoke as a call back. ;
;;; ;
;;; Returned Value: A vlr object reactor. ;
;;; such as: ;
;;; #<VLR-Object-reactor> ;
;;; ;
;;; Usage: Where ac1 and ac2 are valid vla-object and ;
;;; reaction is a function call back. ;
;;; (setq r ;
;;; (create-same-reactor (list ac1 ac2) ;
;;; 'reactor-save-center-color)) ;
;;;--------------------------------------------------------------------;
(defun create-same-reactor (obj-list reaction)
(vlr-object-reactor
obj-list
obj-list
(list (cons :vlr-modified reaction))
)
)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-SAFE-PROPERTY-REACTOR ;
;;; ;
;;; Description: This creates a duplicate objectclosed event for ;
;;; a vla-object. ;
;;; ;
;;; Arguments: ;
;;; obj = a valid vla object ;
;;; reaction = a valid function to invoke as a call back. ;
;;; ;
;;; Returned Value: A vlr object reactor. ;
;;; such as: ;
;;; #<VLR-Object-reactor> ;
;;; ;
;;; Usage: Where ac1 is a valid vla object and ;
;;; reaction is a function call back. ;
;;; (setq r ;
;;; (create-safe-property-reactor ac1 ;
;;; 'reactor-save-center-color)) ;
;;;--------------------------------------------------------------------;
(defun create-safe-property-reactor (obj reaction)
(vlr-object-reactor
obj
nil
(list (cons :vlr-objectclosed reaction))
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Selection Set Manipulations ;
;;;--------------------------------------------------------------------;
;;; Function: SSGET->VLA-LIST ;
;;; ;
;;; Description: This function converts a valid ACAD selction ;
;;; set to a list of vla-objects. ;
;;; ;
;;; Arguments: ;
;;; selection-list = a valid ACAD selection set returned by ;
;;; ssget. ;
;;; ;
;;; Returned Value: A list of all circles as vla-objects ;
;;; such as: ;
;;; ( ;
;;; #<VLA-OBJECT IAcadCircle 01b4211c> ;
;;; #<VLA-OBJECT IAcadCircle 01b42790> ;
;;; #<VLA-OBJECT IAcadCircle 01b429a0> ;
;;; ) ;
;;; ;
;;; Usage: (ssget->vla-list (ssget)) ;
;;;--------------------------------------------------------------------;
(defun ssget->vla-list (selection-set / index vla-list)
(setq index (if selection-set
(1- (sslength selection-set))
-1
)
)
(while (>= index 0)
(setq vla-list (cons (vlax-ename->vla-object (ssname selection-set index))
vla-list
)
index (1- index)
)
)
vla-list
)
;;;--------------------------------------------------------------------;
;;; Function: VLASEL ;
;;; ;
;;; Description: This function mimics the AutoLISP entsel function.;
;;; The difference is that the return value is a ;
;;; vla-object. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A the selected item as a vla-object ;
;;; such as: ;
;;; #<VLA-OBJECT IAcadCircle 01b42790> ;
;;; ;
;;; Usage: (vlasel) ;
;;;--------------------------------------------------------------------;
(defun vlasel (/ sel)
(if (setq sel (entsel))
(vlax-ename->vla-object (car sel))
)
)
;;;--------------------------------------------------------------------;
;;; Function: VLA-SEL ;
;;; ;
;;; Description: This function mimics the AutoLISP entsel function.;
;;; The difference is that the return value is a ;
;;; vla-object. ;
;;; ;
;;; Arguments: ;
;;; message = A string or nil. If nil the entsel ;
;;; function is called without arguments. ;
;;; If this argument not nil and is a string, the ;
;;; entsel function is passed the string value. ;
;;; ;
;;; Returned Value: A the selected item as a vla-object ;
;;; such as: ;
;;; #<VLA-OBJECT IAcadCircle 01b42790> ;
;;; ;
;;; Usage: (vla-sel "\nSelect an Object:") or (vla-sel nil) ;
;;;--------------------------------------------------------------------;
(defun vla-sel (message / sel)
(if (setq sel (if (equal (type message) 'STR)
(entsel message)
(entsel)
)
)
(vlax-ename->vla-object (car sel))
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Special Selection Set Utilities ;
;;;--------------------------------------------------------------------;
;;; Function: SELECT-VLA-CIRCLES ;
;;; ;
;;; Description: This function prompt the user to select objects ;
;;; from the ACAD screen and applies a filter to the ;
;;; selection set. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A list of all circles as vla-objects ;
;;; such as: ;
;;; ( ;
;;; #<VLA-OBJECT IAcadCircle 01b4211c> ;
;;; #<VLA-OBJECT IAcadCircle 01b42790> ;
;;; #<VLA-OBJECT IAcadCircle 01b429a0> ;
;;; ) ;
;;; ;
;;; Usage: (select-vla-circles) ;
;;;--------------------------------------------------------------------;
(defun select-vla-circles ()
(ssget->vla-list (ssget '((0 . "CIRCLE"))))
)
;;;--------------------------------------------------------------------;
;;; Function: SELECT-VLA-CIRCLES-ARC ;
;;; ;
;;; Description: This function prompt the user to select objects ;
;;; from the ACAD screen and applies a filter to the ;
;;; selection set. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A list of all circles or arcs as vla-objects ;
;;; such as: ;
;;; ( ;
;;; #<VLA-OBJECT IAcadCircle 01b4211c> ;
;;; #<VLA-OBJECT IAcadCircle 01b42790> ;
;;; #<VLA-OBJECT IAcadCircle 01b429a0> ;
;;; ) ;
;;; ;
;;; Usage: (select-vla-circles-arc) ;
;;;--------------------------------------------------------------------;
(defun select-vla-circles-arc ()
(ssget->vla-list
(ssget
'((-4 . "<OR") (0 . "CIRCLE") (0 . "ARC") (-4 . "OR>"))
)
)
)

;;;--------------------------------------------------------------------;
;;; Function: REMOVE-FROM-ALL-REACTORS ;
;;; ;
;;; Description: This function removes all associations with ;
;;; any object reactor that pertains to the object. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a valid vla object ;
;;; ;
;;; Returned Value: The last reactor which was modified. ;
;;; ;
;;; Usage: (remove-from-all-reactors my-vla-object ) ;
;;;--------------------------------------------------------------------;
(defun remove-from-all-reactors (vla-obj)
(foreach reactor (vlr-reactors :vlr-object-reactor)
(vlr-owner-remove reactor vla-obj)
)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Geometry Utilities ;
;;;--------------------------------------------------------------------;
;;; Function: ADD-VECTOR ;
;;; ;
;;; Description: This function returns the addition of ;
;;; two vectors. ;
;;; ;
;;; Arguments: ;
;;; v1 = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; v2 = a valid vector list such as: ;
;;; '( 2 2 2 ) ;
;;; ;
;;; Returned Value: A vector list with the subtraction performed ;
;;; from v1 and v2. ;
;;; (add-vector '(5 5 5 ) '(2 2 2)) ;
;;; Returns: ;
;;; (7 7 7) ;
;;; ;
;;; Usage: (add-vector '(5 5 5 ) '(2 2 2 )) ;
;;;--------------------------------------------------------------------;
(defun add-vector (v1 v2)
(if (eq (type v1) 'VARIANT)
(if (> (vlax-variant-type v1) 8192)
(setq v1 (vlax-safearray->list (vlax-variant-value v1)))
)
)
(if (eq (type v2) 'VARIANT)
(if (> (vlax-variant-type v2) 8192)
(setq v2 (vlax-safearray->list (vlax-variant-value v2)))
)
)
(mapcar '+ v1 v2))
;;;--------------------------------------------------------------------;
;;; Function: SUBTRACT-VECTOR ;
;;; ;
;;; Description: This function returns the subtraction of two ;
;;; vectors. ;
;;; ;
;;; Arguments: ;
;;; v1 = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; v2 = a valid vector list such as: ;
;;; '( 1 1 1 ) ;
;;; ;
;;; Returned Value: A vector list with the subtraction performed ;
;;; from v1 and v2. ;
;;; (subtract-vector '(5 5 5 ) '(1 1 1)) ;
;;; Returns: ;
;;; (4 4 4) ;
;;; ;
;;; Usage: (subtract-vector '(5 5 5 ) '(1 1 1)) ;
;;;--------------------------------------------------------------------;
(defun subtract-vector (v1 v2) (vlax-3d-point (mapcar '- v1 v2)))
;;;--------------------------------------------------------------------;
;;; Function: MULT-BY-SCALAR ;
;;; ;
;;; Description: This function returns the multiplication of ;
;;; a vector to a number. ;
;;; ;
;;; Required Functions: ;
;;; mult-by-scalar ;
;;; ;
;;; Arguments: ;
;;; vect = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; scalar = a valid number ;
;;; ;
;;; Returned Value: A vector list with the multiplication of the ;
;;; scalar argument with the supplied vector list. ;
;;; (mult-by-scalar '(5 5 5 ) 12) ;
;;; Returns: ;
;;; (60 60 60) ;
;;; ;
;;; Usage: (mult-by-scalar '(5 5 5 ) 12) ;
;;;--------------------------------------------------------------------;
(defun mult-by-scalar (vect scalar / sv TransDataA TransData)
(if (> (vlax-variant-type vect) 8192)
(setq vect (vlax-safearray->list (vlax-variant-value vect)))
)
(setq sv (if (null vect)
nil
(cons (* scalar (car vect))
(mult-by-scalar (cdr vect) scalar)
)
))
;; Convert to a Variant Array of Doubles here ->
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 3)))
(vlax-safearray-fill TransDataA sv)
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDoubl
e)))
)
;;;--------------------------------------------------------------------;
;;; Function: UNIT-VECTOR ;
;;; ;
;;; Description: This function returns the normal for the ;
;;; vector supplied. ;
;;; ;
;;; Required Functions: ;
;;; mult-by-scalar ;
;;; ;
;;; Arguments: ;
;;; vect = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; ;
;;; Returned Value: If the vector supplied is not '(0 0 0 ) ;
;;; A one unit vector is returned. Otherwise nil ;
;;; is returned. ;
;;; ;
;;; (unit-vector '( 5 5 5)) ;
;;; Returns: ;
;;; (0.57735 0.57735 0.57735) ;
;;; ;
;;; Usage: (unit-vector '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun unit-vector (vect / uv TransDataA TransData)
(if (> (vlax-variant-type vect) 8192)
(setq vect (vlax-safearray->list (vlax-variant-value vect)))
)
;;; test for (0 0 0 )
(setq uv (if (not (vl-every (function (lambda (x) (zerop x))) vect))
(mult-by-scalar vect (/ 1.0 (vector-norm vect)))
nil
))
;; Convert to a Variant Array of Doubles here ->
(if uv (progn
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 3)))
(vlax-safearray-fill TransDataA uv)
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDoubl
e)))
))
)
;;;--------------------------------------------------------------------;
;;; Function: VECTOR-NORM ;
;;; ;
;;; Description: This function returns the normal for the ;
;;; vector supplied. ;
;;; ;
;;; Required Functions: ;
;;; trace-vector ;
;;; ;
;;; Arguments: ;
;;; vect = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; ;
;;; Returned Value: A number representing the normal of the vector. ;
;;; ;
;;; Usage: (vector-norm '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun vector-norm (vect / nv TransDataA TransData)
(if (> (vlax-variant-type vect) 8192)
(setq vect (vlax-safearray->list (vlax-variant-value vect)))
)
(setq nv (sqrt (trace-vector (mapcar '* vect vect))))
;; Convert to a Variant Array of Doubles here ->
(if nv (progn
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 3)))
(vlax-safearray-fill TransDataA nv)
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDoubl
e)))
))
)

;;;--------------------------------------------------------------------;
;;; Function: TRACE-VECTOR ;
;;; ;
;;; Description: This function supplies the ;
;;; Sum of all the elements of a vector. ;
;;; ;
;;; Arguments: ;
;;; vect = a valid vector list such as: ;
;;; '( 5 5 5 ) ;
;;; ;
;;; Returned Value: A number representing the xxxxxx of the vector. ;
;;; ;
;;; Usage: (trace-vector '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun trace-vector (vect)
(if (> (vlax-variant-type vect) 8192)
(setq vect (vlax-safearray->list (vlax-variant-value vect)))
)
(if (null vect)
0
(+ (car vect) (trace-vector (cdr vect)))
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Matrix Operations ;
;;;--------------------------------------------------------------------;
;;; Function: CHECK-VECTOR-ELEM ;
;;; ;
;;; Description: This function check the integrity of the elem ;
;;; argument. This guarantees a number value for ;
;;; functions that require this check. ;
;;; ;
;;; Required Functions: ;
;;; check-vector-elem ;
;;; ;
;;; Arguments: ;
;;; elem = a valid number or nil ;
;;; ;
;;; Returned Value: A number. If the argument elem is nil. ;
;;; check-vector returns 0 otherwise it returns the ;
;;; argument. ;
;;; ;
;;; Usage: (check-vector-elem 0) ;
;;;--------------------------------------------------------------------;
(defun check-vector-elem (elem)
(if (null elem)
0
elem
)
)
;;;--------------------------------------------------------------------;
;;; Function: MAKE-TRANSLATION-MATRIX ;
;;; ;
;;; Description: This function converts a variant vector list ;
;;; (a list of three numbers) into a vector matrix. ;
;;; ;
;;; Required Functions: ;
;;; ;
;;; ;
;;; Example: A vector list '( 5 5 5 ) is passed to ;
;;; make-translation-matrix. The function then ;
;;; translates this value to a matrix list. ;
;;; using the following logic. ;
;;; ;
;;; make a translation matrix from ;
;;; 1,2 or 3 dim vector v represented as: ;
;;; list (x), (x y) or (x y z) ;
;;; ;
;;; ;
;;; Arguments: ;
;;; vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; or vector = a valid safearray variant vector list of doubles ;
;;; ;
;;; Returned Value: A matrix List such as: ;
;;; (make-translation-matrix '( 5 5 5 )) ;
;;; ;
;;; Returns List In A Variant Array: ;
;;; ((1.0 0.0 0.0 5.0) ;
;;; (0.0 1.0 0.0 5.0) ;
;;; (0.0 0.0 1.0 5.0) ;
;;; (0.0 0.0 0.0 1.0) ;
;;; ) ;
;;; ;
;;; Usage: (make-translation-matrix '( 5 5 5 )) or ;
;;; (make-translation-matrix (vlax-3d-point '( 5 5 5 ))) ;
;;; ;
;;;--------------------------------------------------------------------;
(defun make-translation-matrix (vector)
(if (> (vlax-variant-type vector) 8192)
(setq vector (vlax-safearray->list (vlax-variant-value vector)))
)
(setq tm (vlax-tmatrix
(list (list 1 0 0 (car vector))
(list 0 1 0 (check-vector-elem (cadr vector)))
(list 0 0 1 (check-vector-elem (caddr vector)))
'(0 0 0 1)
)
))
;; Convert to a Variant Array of Doubles here ->
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 3) (cons 0 3)))
(vlax-safearray-fill TransDataA tm)
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDoubl
e)))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Vla-Object Transformation Functions ;
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-VLA-OBJECT ;
;;; ;
;;; Description: This function translates the current ;
;;; transformation values of an object by a supplied ;
;;; vector list. This vector list is a list of three ;
;;; numbers which determine the new values for the ;
;;; existing transformation value. ;
;;; Translate-Vla-Object is similar to ;
;;; translate-object except this function performs ;
;;; error checking before passing the information ;
;;; to translate-object. ;
;;; ;
;;; Note: This function performs ;
;;; error checking. ;
;;; ;
;;; Required Functions: ;
;;; translate-object ;
;;; ;
;;; Example: A line beginning is anchored at 0,0,0. ;
;;; Its ending point is 1,0,0. The transformation ;
;;; value is '(5 5 5). Hence add 5 to the X value, 5 ;
;;; to the Y value and 5 to the Z value. The result ;
;;; will be: ;
;;; The beginning point will have 5,5,5 ;
;;; The ending point will have 6,5,5 ;
;;; ;
;;; The example above demonstrates a different method ;
;;; for moving an object. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a vla object that can contain ;
;;; transformation verctors. ;
;;; translation-vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; ;
;;; ;
;;; Returned Value: A vla object ;
;;; ;
;;; Usage: (translate-vla-object vla-Object '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun translate-vla-object (vla-obj translation-vector)
(if (and vla-obj ;; is the vla-object
;; argument not nil?
(eq 'VLA-OBJECT (type vla-obj)) ;; is it a vla-object?
(vlax-write-enabled-p vla-obj) ;; test if object
;; can be modified
)
(translate-object vla-obj translation-vector) ;; ok safe to
;; transform
;; the vectors.
)
)
;;;--------------------------------------------------------------------;
;;; Function: TRANSLATE-OBJECT ;
;;; ;
;;; Description: This function translates the current ;
;;; transformation values of an object by a supplied ;
;;; vector list. This vector list is a list of three ;
;;; numbers which determine the new values for the ;
;;; existing transformation value. ;
;;; Translate-Object is similar to ;
;;; translate-vla-object except this function DOES ;
;;; NOT perform error checking before passing the ;
;;; information to make-translation-matrix. ;
;;; ;
;;; Note: This function DOES NOT performs ;
;;; error checking. ;
;;; ;
;;; Required Functions: ;
;;; make-translation-matrix ;
;;; ;
;;; Example: A line beginning is anchored at 0,0,0. ;
;;; Its ending point is 1,0,0. The transformation ;
;;; value is '(5 5 5). Hence add 5 to the X value, 5 ;
;;; to the Y value and 5 to the Z value. The result ;
;;; will be: ;
;;; The beginning point will have 5,5,5 ;
;;; The ending point will have 6,5,5 ;
;;; ;
;;; The example above demonstrates a different method ;
;;; for moving an object. ;
;;; ;
;;; Arguments: ;
;;; vla-obj = a vla object that can contain ;
;;; transformation vectors. ;
;;; translation-vector = a valid vector list such as: ;
;;; '( 5 5 5) or '( 1.2 4.5 200.00) ;
;;; ;
;;; ;
;;; Returned Value: A vla object ;
;;; ;
;;; Usage: (translate-object vla-Object '( 5 5 5)) ;
;;;--------------------------------------------------------------------;
(defun translate-object (obj translation-vector)
(vla-transformby
obj
(make-translation-matrix translation-vector)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-MODEL-SPACE ;
;;; ;
;;; Description: This function test if the global variable ;
;;; *current-model-space* is set. If it is the ;
;;; current value of *current-model-space* is ;
;;; returned. Otherwise the value of the global ;
;;; variable *current-model-space* is created. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A vla model space object ;
;;; is returned such as: ;
;;; #<VLA-OBJECT IAcadModelSpace 027a34c0> ;
;;; ;
;;; Usage: (get-model-space) ;
;;;--------------------------------------------------------------------;
(defun get-model-space (/ tmp)
(cond (*current-model-space* *current-model-space*)
((and (setq tmp (vlax-get-acad-object))
(setq tmp (vla-get-activedocument tmp))
(setq tmp (vla-get-modelspace tmp))
)
(setq *current-model-space* tmp)
)
(t nil)
)
)
;;;--------------------------------------------------------------------;
;;; Function: GET-PAPER-SPACE ;
;;; ;
;;; Description: This function test if the global variable ;
;;; *current-paper-space* is set. If it is the ;
;;; current value of *current-paper-space* is ;
;;; returned. Otherwise the value of the global ;
;;; variable *current-paper-space* is created. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A vla paper space object ;
;;; is returned such as: ;
;;; #<VLA-OBJECT IAcadPaperSpace 03131e0c> ;
;;; ;
;;; Usage: (get-paper-space) ;
;;;--------------------------------------------------------------------;
(defun get-paper-space (/ tmp)
(cond (*current-paper-space* *current-paper-space*)
((and (setq tmp (vlax-get-acad-object))
(setq tmp (vla-get-activedocument tmp))
(setq tmp (vla-get-paperspace tmp))
)
(setq *current-paper-space* tmp)
)
(t nil)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Line Type Functions ;
;;;--------------------------------------------------------------------;
;;; Function: LOAD-LINE-TYPES ;
;;; ;
;;; Description: This searches a linetype collection object and ;
;;; determines if the linetype is present in the ;
;;; collection. ;
;;; ;
;;; Note that l-obj is a "local" variable within the ;
;;; scope of the vlax-for function because it is ;
;;; used within a "for" expression. ;
;;; ;
;;; Arguments: ;
;;; line-type = A string which denotes the linetype ;
;;; to search for in the line-type-collection ;
;;; argument. ;
;;; line-type-collection = a vla collection object which contains ;
;;; the current linetypes loaded in ACAD. ;
;;; ;
;;; Returned Value: If the linetype is found a vla linetype object ;
;;; is returned such as: ;
;;; #<VLA-OBJECT IAcadLineType 03fe0b00> ;
;;; If the linetype search fails this function ;
;;; returns nil. ;
;;; ;
;;; Usage: (load-line-types "CENTER" "acad.lin") ;
;;;--------------------------------------------------------------------;
(defun find-line-type (line-type line-type-collection / res)
(setq line-type (strcase line-type))
(vlax-for l-obj line-type-collection
(if (= (strcase (vla-get-name l-obj)) line-type)
(setq res l-obj)
)
)
res
)
;;;--------------------------------------------------------------------;
;;; Function: LOAD-LINE-TYPES ;
;;; ;
;;; Description: This function creates a specified umber of ;
;;; circles in model space. ;
;;; Required Functions: ;
;;; find-line-type ;
;;; ;
;;; Arguments: ;
;;; line-type = A string which denotes the linetype to load. ;
;;; file-name = A string which denotes the linetype file to ;
;;; which to load the requested linetype. ;
;;; ;
;;; Returned Value: A vla linetype object objects such as: ;
;;; #<VLA-OBJECT IAcadLineType 03fe0b00> ;
;;; ;
;;; Usage: (load-line-types "CENTER" "acad.lin") ;
;;;--------------------------------------------------------------------;
(defun load-line-types (line-type file-name / tmp res)
(if (and (setq tmp (vlax-get-acad-object))
(setq tmp (vla-get-activedocument tmp))
(setq tmp (vla-get-linetypes tmp)) ;; linetypes is the last
;; set and the current
;; linetype collection
)
(if (setq res (find-line-type line-type tmp))
res
(progn
;; load the linetype
(vla-load tmp line-type file-name)
;; since the vla-load function returns nil
;; we force the following function to test if
;; the load was successful. If success the
;; return the vla linetype object
(if (vla-item tmp line-type)
(vla-item tmp line-type)
;; Nothing was loaded so we return nil
nil
) ;; _test to see if the line was loaded
) ;; evaluate when the linetype is not loaded in acad
) ;; end if for check if linetype is loaded
nil
) ;; end if for various calls to ACAD
) ;;_end function
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Circle Functions ;
;;;--------------------------------------------------------------------;
;;; Function: GET-CENTER ;
;;; ;
;;; Description: This function prompts the user for a center point ;
;;; User input is curtailed via a call to initget ;
;;; whose sum of the bit values determine the ;
;;; behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a list of three reals denoting a point ;
;;; ;
;;; Usage: (get-center) ;
;;;--------------------------------------------------------------------;
(defun get-center ()
(initget 1)
(getpoint "\nSelect center")
)
;;;--------------------------------------------------------------------;
;;; Function: GET-RADIUS ;
;;; ;
;;; Description: This function prompts the user for a radius from ;
;;; a known point. User input is curtailed via a call ;
;;; to initget whose sum of the bit values determine ;
;;; the behavior of this function. ;
;;; ;
;;; Bit value Description ;
;;; ;
;;; 1 Prevents the user from responding ;
;;; to the request by entering ;
;;; only ENTER. ;
;;; ;
;;; 2 Prevents the user from responding ;
;;; to the request by entering zero. ;
;;; ;
;;; 4 Prevents the user from responding ;
;;; to the request by entering a ;
;;; negative value. ;
;;; ;
;;; 32 Uses dashed lines when drawing ;
;;; rubber-band line or box. For those ;
;;; functions with which the user can ;
;;; specify a point by selecting a ;
;;; location on the graphics screen, ;
;;; this bit value causes the ;
;;; rubber-band line or box to be ;
;;; dashed instead of solid. ;
;;; (Some display drivers use a ;
;;; distinctive color instead of ;
;;; dashed lines.) ;
;;; If the system variable POPUPS ;
;;; is 0, AutoCAD ignores this bit. ;
;;; ;
;;; 64 Prohibits input of a Z ;
;;; coordinate to the getdist ;
;;; function; lets an application ;
;;; ensure that this function returns ;
;;; a 2D distance. ;
;;; ;
;;; Arguments: ;
;;; point = a list of three reals that denotes where the ;
;;; rubber-banding visual aid will commence. ;
;;; ;
;;; Returned Value: a real number denoting a distance ;
;;; ;
;;; Usage: (get-radius '(0 0 0 )) ;
;;;--------------------------------------------------------------------;
(defun get-radius (point)
;| see above for the bit values used = (+ 1 2 4 32 64) |;
(if (eq (type point) 'VARIANT)
(if (> (vlax-variant-type point) 8192)
(setq point (vlax-safearray->list (vlax-variant-value point)))
)
)
(initget 103)
(getdist point "\nSelect radius: ")
)
;;;--------------------------------------------------------------------;
;;; Function: ADD-CIRCLE ;
;;; ;
;;; Description: This function creates a circle in model space. ;
;;; Required Functions: ;
;;; get-center ;
;;; get-radius ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: vla circle object such as: ;
;;; #<VLA-OBJECT IAcadCircle 03131694> ;
;;; ;
;;; Usage: (add-circle) ;
;;;--------------------------------------------------------------------;
(defun add-circle (/ center radius)
(setq center (vlax-3d-point (get-center))
radius (get-radius center)
)
(vla-addcircle (get-model-space) center radius)
)
;;;--------------------------------------------------------------------;
;;; Function: ADD-N-CIRCLE ;
;;; ;
;;; Description: This function creates a specified umber of ;
;;; circles in model space. ;
;;; Required Functions: ;
;;; add-circle ;
;;; ;
;;; Arguments: ;
;;; n = An integer value representing how many circles ;
;;; to place in model space. ;
;;; ;
;;; Returned Value: a list of n vla circle objects such as: ;
;;; ( ;
;;; #<VLA-OBJECT IAcadCircle 03133298> ;
;;; #<VLA-OBJECT IAcadCircle 03133e4c> ;
;;; #<VLA-OBJECT IAcadCircle 031333ac> ;
;;; #<VLA-OBJECT IAcadCircle 03130228> ;
;;; ) ;
;;; ;
;;; Usage: (add-n-circles 4) ;
;;;--------------------------------------------------------------------;
(defun add-n-circles (n / res-lst cl)
(while (> n 0)
(setq n (1- n)
cl (add-circle)
)
(if cl
(setq res-lst (cons cl res-lst))
)
)
res-lst
)
; ;; ;
;;; SAME-RCL.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; For a description of the entire project and a listing of the ;
;;; AutoCAD commands defined within it, see the source code file ;
;;; REAC-TST.PRJ. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: C:SAME-RCL-TST ;
;;; ;
;;; Description: This command demonstrates the ability to ;
;;; associate a reactor to 3 circles and once ;
;;; modified all share the same proprties. ;
;;; ;
;;; Required Functions: ;
;;; reactor-make-same-radius-color ;
;;; create-same-reactor ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:SAME-RCL-TST) or C:SAME-RCL-TST from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:SAME-RCL-TST (/ cla-lst reactor)
(function reactor-make-same-radius-color)
(setq cla-lst (add-n-circles 3))
(if (null cla-lst)
(princ "No circles added")
(progn
(foreach cla cla-lst
(vla-put-Color cla acRed)
)
(setq reactor (create-same-reactor
cla-lst
'reactor-make-same-radius-color
)
)
)
)
reactor
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: C:SAME-RCL-INFO ;
;;; ;
;;; Description: This function displays a simple help file ;
;;; in the ACAD Command: prompt. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;; Usage: (C:SAME-RCL-INFO) or C:SAME-RCL-INFO from ;
;;; the ACAD Command: prompt. ;
;;;--------------------------------------------------------------------;
(defun C:SAME-RCL-INFO ()
(terpri)
(princ
"\nExample of reactor for making circles with the same"
)
(princ "\nradius and color.")
(princ "\nThree circles will be created")
(princ
"\n(You will be asked to select center and radius of the circle.)"
)
(princ
"\nTry to change radius or color of one of them."
)
(princ
"\nYou will see that radius and color of all others changes too."
)
(princ "\nRun SAME-RCL-TST for test")
(terpri)
(princ)
)

;;;--------------------------------------------------------------------;
;;; Add the functions within this file to the global functions list ;
;;; to be used by the C:REACT-TEST-INFO function in R-INFO.LSP ;
;;;--------------------------------------------------------------------;
(setq *REACT-TEST-COMMANDS-INFO*
(cons (list "SAME-RCL-TST" "SAME-RCL-INFO")
*REACT-TEST-COMMANDS-INFO*
)
)
;;EOF
PÛ Úü1;´ØÅSB
:Õ<7êFÃòéVo!—tyãÖ|Z]Âk Dͦ ëÔZóûþp ¾ ÏXÙ o Øàµà"8 áЦµõ{V÷ HÜKãè  ó å³ÍÆO¿ÂVFççwØÊ!ý¸¾ «íþAJ
ó ÈK
®õg D©r
ÛúR p;o'
G,yÞ¡$Iq ø+¾~Aò
û'>?7°.é )ÀZg  «ê âÙ4U³6:/ß ´Ç &Ò@Ç` Áñ10§b<('ðBp îlãÅm‾´ ¡n,öÍ)ä
(FMC3^¸Áf
YÎÇ çss "¨ZÚlz^Á gïD5Õ é§õ 5\» ÞnêSä sÔUJñyP
X9(Â
¦|EO®zvü
¨. ZÄûØí«Óö
-±k
8ÇÃê4g4÷8ãv
´ü#ÌëR ¬ÇõÛë
3P5/ŨÛè}½
®VëæÚ "*ÉôJ
òT)´÷-MKÅßÇ
ÑÓv*9þÀÑÛe`a
R  pyaûçG\
ñK ÊäG7ÙÓy
ê¤g,
Kü —FO°®yÞ2Aþ¼¢>¬\c«`ãq
:¶NVæù ú¨4½¸6Åìpvà
ìPØÇ
´¡a DyÙ_ Å7R ä ôP#lo Cl óº;ã'µù kÝWúÛgÏ$ "qnk £±gù±Z9?ßÕ i Í7NX^ @*ÅÊ1ÍÓÔ«é `ýÚDÌ¡0Ïy 
` Iºp ýÉÖÿO^ZÙ¿+ÙÁ8C bm&Ù)îUzkåîmbDå½Ä( TÎt s8øDç 7
K ÙsRÞ`)á `néXú a©m-]
}1̧z\W»
]' ¸ÀÒª
Õ (ôút^¬¦ýæ
¡$Þ¡¤¸ÄÐÃwñùê1òA
ﺫ»;ôôÖeÚÄ
cÙÒN+1 6a×ü
Ð¥Ðê[ðú¢þZ_ëK´{
ÒÕöüíÜ$ï| ²y Ål;Ö××f f$*²(tܼ ¸eÞ :DX > ò Ò[èh®ª 0ÌÄ
§Ä + þ ¶õÏ;;;
;;; Copyright (C) 2002 by Autodesk, Inc.
;;;
;;; Permission to use, copy, modify, and distribute this software
;;; for any purpose and without fee is hereby granted, provided
;;; that the above copyright notice appears in all copies and
;;; that both that copyright notice and the limited warranty and
;;; restricted rights notice below appear in all supporting
;;; documentation.
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;;
;;; DESCRIPTION:
;;; Sample profile manipulation utilities. All functions return T on success an
d nil
;; on failure. See comments above each function for additional details.
;;;
;;; EXAMPLES:
;;;
;;; - Set active profile:
;;; (sample-profile-set-active "MyProfile")
;;;
;;; - Import a profile:
;;; (sample-profile-import "c:\\myExportedProfile.arg" "MyFavoriteProfile" T
)
;;;
;;; - Delete a profile:
;;; (sample-profile-delete "unwanted")
;;;
;;;
;;; - Import a profile, even if it already exists, and set it active.
;;;
;;; (sample-profile-import "c:\\CompanyProfile.arg" "MyProfile" T)
;;; (sample-profile-set-active "MyProfile")
;;;
;;;
;;; - Import a profile, if not already present, and set it active
;;;
;;; (if (not (sample-profile-exists "myProfile"))
;;; (progn
;;; (sample-profile-import "c:\\CompanyProfile.arg" "MyProfile" T)
;;; (sample-profile-set-active "MyProfile")
;;; )
;;; )
;;;
;;;
;;; - Import a profile and set it active when AutoCAD is first started.
;;; Place the following code in acaddoc.lsp with the desired ".arg" filename
;;; and profile name...
;;;
;;; (defun s::startup ()
;;; (if (not (vl-bb-ref ':sample-imported-profile)) ;; have we imported the
profile yet?
;;; (progn
;;;
;;; ;; Set a variable on the bulletin-board to indicate that we've be
en here before.
;;; (vl-bb-set ':sample-imported-profile T)
;;;
;;; ;; Import the profile and set it active
;;; (sample-profile-import "c:\\CompanyProfile.arg" "MyProfile" T)
;;; (sample-profile-set-active "MyProfile")
;;;
;;; );progn then
;;; );if
;;; );defun s::startup
;;;
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This helper function gets the profiles object.
;;
(defun sample-get-profiles-object ( / app pref profs )
(vl-load-com)
(and
(setq app (vlax-get-acad-object))
(setq pref (vla-get-preferences app))
(setq profs (vla-get-profiles pref))
)
profs
);defun sample-get-profiles-object
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Determine if a profile exists. Returns T if the specified profile name exists
, and nil if not.
;;
(defun sample-profile-exists ( name / profs )
(and name
(setq names (sample-profile-names))
(member (strcase name) (mapcar 'strcase names))
)
);defun sample-profile-exists
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Set the active profile.
;; NOTES:
;; - If the specified profile name is already active then the function returns
T and makes no additional
;; changes.
;;
;; - The specified profile must exist. (You can import a profile using the 'sa
mple-profile-import'
;; function.) If the specified profile does not exist, the function returns n
il.
;;
(defun sample-profile-set-Active ( name / profs )
(and
name
(setq profs (sample-get-profiles-object))
(or (equal (strcase name) (strcase (getvar "cprofile")))
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-activeProfile (lis
t profs name))))
)
);and
);defun sample-profile-set-Active
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Delete the specified profile. Fails if the specified profile is current.
;;
(defun sample-profile-delete ( name / profs )
(and
name
(setq profs (sample-get-profiles-object))
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-deleteprofile (list profs
name))))
)
);defun sample-profile-delete
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Copy profile.
;;
(defun acad-pref-profile-copy ( source target / profs )
(and
source
target
(setq profs (sample-get-profiles-object))
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-CopyProfile (list profs so
urce target))))
)
);defun sample-profile-copy
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Get a list of profile names
;;
(defun sample-profile-names ( / profs result )
(and
(setq profs (sample-get-profiles-object))
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-GetAllProfileNames (list p
rofs 'result))))
result
(setq result (vlax-safearray->list result))
)
result
);defun sample-profile-names
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Rename
;;
(defun sample-profile-rename ( oldName newName / profs )
(and
oldName
newName
(setq profs (sample-get-profiles-object))
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-RenameProfile (list profs
oldName newName))))
)
);defun sample-profile-rename
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Get a unique profile name. This function returns a unique profile name that i
s guaranteed
;; to not be present in the current list of profiles.
;;
(defun sample-get-unique-profile-name ( / names n name )
(setq names (sample-profile-names)
names (mapcar 'strcase names)
name "TempProfileName"
n 1
)
(while (member (strcase (setq name (strcat name (itoa n)))) names)
(setq n (+ n 1))
)
name
);defun sample-get-unique-profile-name
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Import
;; This function imports the specified .arg file and creates a new profile with
the provided profile name.
;; If the specified profile already exists, it will be overwritten.
;; If the 'bUsePathInfo' parameter is non-nil then path information will be impo
rted from the specified
;; file. Otherwise, path information will be ignored.
;;
;; NOTES:
;; This function does not set the active profile. If you import a new profile
;; it will not become active unless it matches the name of the existing active
profile.
;;
;; You can set the active profile by calling:
;; (sample-profile-set-active "ProfileName")
;;
(defun sample-profile-import ( filename profileName bUsePathInfo / sample-oldErr
or profs isCProfile tempProfile result )
;; Set up an error handler so, if something goes wrong, we can put things back
the way we found them
(setq sample-oldError *error*)
(defun *error* ( msg / )
(if (and profileName
tempProfile
(equal tempProfile (getvar "cprofile"))
)
(progn
;; Something went wrong so put things back the way they were.
(sample-profile-rename tempProfile profileName)
(sample-profile-set-active profileName)
(sample-profile-delete tempProfile)
);progn then
);if
(setq *error* sample-oldError)
(if msg
(*error* msg)
(princ)
)
);defun *error*
(if (and bUsePathInfo
(not (equal :vlax-false bUsePathInfo))
)
(setq bUsePathInfo :vlax-true)
(setq bUsePathInfo :vlax-false)
)
(if (and filename
(setq filename (findfile filename))
profileName
(setq profs (sample-get-profiles-object))
);and
(progn
;; We can't import directly to the current profile, so if the provided pro
file name matches
;; the current profile, we'll need to:
;; - rename the current profile to a unique name
;; - import
;; - set the new one current
;; - delete the old one with the temp name
(setq isCProfile (equal (strcase (getvar "cprofile")) (strcase profileName
)))
(if isCProfile
(progn
(setq tempProfile (sample-get-unique-profile-name))
(sample-profile-rename (getvar "cprofile") tempProfile)
);progn then
);if
;; Import
(setq result (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-ImportPro
file (list profs profileName filename bUsePathInfo)))))
(if isCProfile
(progn
;; Handle current profile case...
;; If the import was successful, then set the new profile active and
delete the original
;; else if something went wrong, then put the old profile back
(if (and result
(setq result (sample-profile-set-Active profileName)) ;; set
the newly imported profile active
);and
(sample-profile-delete tempProfile) ;; then delete the
old profile
(sample-profile-rename tempProfile profileName);; else rename the
original profile back to its old name
);if
);progn then
);if
);progn then
);if
(*error* nil) ;; quietly restore the original error handler
result
);defun sample-profile-import
(princ)
ºò
wjqÊíþ
] eÞ"ö
˾.4¢¶/½
£ê
; ßÒxBiÏ
=R±äð 
{àì\
-'ZÐìc^
ícw¬8
«Øì)
¿ Þ.
FÿÚ¾Fö2Q
´q ©§«SË
jZ]±¿ße
Ð ICì\mo (#`Ä3 «íA³£çÕ²| l Ø }CÙWZ@þ±¶7, Á Ë £Ý#C
hÉر
õnÍ© |7sÔ|n¿j~ |ª \¨âg©JEYÚÚRcÝÇ+l 6±oöæ3_ ¶W Ø }K±çͳ£{lº ÷g½ G[O Ø Ý?X]`aóx² [& Sæ&—(
Ð×Gþ âÞ=v= M I—k'Û Ëââ. æè Ä =qM
4¢¶;±‾ ]^ °Ef³± +2=v=îÿª«ð «S ëDEEfg\uÛtññqLµF^ qôÜÙ¤}{ÿÏ~ 85 åq F
:¢ Ü" 2È pË!` 3w19I ÌLYîjé.³"5  qgÊµÊ Õ n¿ÐK& C"G'é_חRÉËëÎëOw~ý^¼Ã¤V àòA;¢gZJ¢Ý¨D
 z¤ûVö
¾_zíÕÓûÿ}ûÌ; A ïÍ;±;ê
ZÜsºÎV
# r[ y³j\-
SÛ #|»o¨ÈìÂNµ
8ÖXû½Óªù&Ø _ZtaÉ®?
Ý; dLPökªJ!°§
uö òÂ~i ´«>
䮵}?È°_.åj4ÐÚL»IûéýÚ 7Oï#_A{HÞþÛ þùÇS|õé½gùþ<®ëÚÄ
Ò#®× COìÁþw/{}M {NwÀEfv
¾_zí?/þñìñq p§s— LÅÇw o Þ‾9,z4{@ìݵ£ â7ÿþùÏ? n0z~ùùÇmÙqv2Iã‾ + Ý]í¢Í« |p×öû«eyo3:;±3ì9Y©juI
-½]

±ûÞÙýf2À©
½x =)ñTVf
^ ( æ7p <t½
J ݨdúW]-âó#ÍS#¨Øö © eOOKÚºR
b Øà Ý‾Èx ÚÞÙ*"vªíÄÎqöC @z
.+.bFZ2M
vYw ˪a}<—]¥.Úõ5U¥¾wû
Lÿ0 #vb÷ ^Ùk$}Pv,
 ¹ºèyä
ïÍ¿}½2<Ð!é¬eZLÅÇw,i7Vµk  ¬ ;± {è& vVBìÄÎ)öæ
wßèka¾JNJp
RvN Ø ;!vbçNÂÊ>}Bݧ
¿¼X ?ÒpS¾`VCõÛo
ëÑ)¤aÍhÏÌÄ
i© 8TfúÙ
ç+®û?M
ñãä
áLf}
ÆqöÚ¸>o³£ExÇu+hçíľ÷,Îé
¬TÄiÕ\)Égè ÅKv½Û¦EmÄG,dÆ
¥å°¼ÝiÙ×Òr
;ñ¦§³73z}ãP
_)ÀGãíáökÕ
å ýÒ&iW}¤G\7®
û ¬Å{—£CÕÕ" ö DæòÑÝNìÁÀ^R "c6  J ÂË®ã[ Ü Ø èÙÍá[d =Pv¿Ú¾-;Ê2ZæÍ*'"âX}M _m'vb ö/ @k;öE ¹
;; saveall.lsp - SAVEALL command
;;
;; Copyright © 2000 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;;-------------------------------------------------------------------------
;;
;; DESCRIPTION
;; Implements the SAVEALL command.
;;
;;-------------------------------------------------------------------------

;;
;; save all open drawings
;;
(defun C:SAVEALL (/ dwg saveDwg)
;; save drawing
(defun saveDwg (dwg / titled writeable name)
(vl-load-com)
(setq titled (= 1 (vlax-variant-value (vla-getvariable dwg "DWGTITLED")))
writeable (= 1 (vlax-variant-value (vla-getvariable dwg "WRITESTAT")))
name (if titled
(vlax-get dwg "fullname")
(vlax-variant-value (vla-getvariable dwg "DWGNAME")) )
)
(cond
;; REFEDIT active ??
((/= "" (vlax-variant-value (vla-getvariable dwg "REFEDITNAME")))
(acet-ui-message
(acet-str-format "%1\nCannot Save while REFEDIT active." name)
"AutoCAD - SAVEALL"
Acet:ICONSTOP )
)
;; simple save if titled and writeable
((and titled writeable)
(vla-save dwg)
)
;; otherwise ask for name first
(T
(if (setq name (ACET-FILE-WRITEDIALOG "%1\nCannot Save while REFEDIT act
ive." name "dwg" "Acet:SaveAll" 1665))
(vla-saveas dwg (vlax-make-variant name)) )
)
)
)
;; quietly
(vl-load-com)
(acet-error-init '(("CMDECHO" 0)))
;; for each drawing
(vlax-for dwg (vla-get-documents (vlax-get-acad-object))
;; save if modified
(if (/= 0 (vlax-variant-value (vla-getvariable dwg "DBMOD")))
(saveDwg dwg) )
)
(acet-error-restore)
(princ)
)

(princ)ºlµ¸û(mÖê Gg7Ub= Øp%¢¥ 0y Üx;êÒ¹ÎcS l WZY Á—Ü^-µlM,.¬ v{Ý°õ 9iÕs6-


áÈXá´Bk=[.Yuå~×@Ac+ ´¥ pï pÚÙÖ°÷» q¶, ýÊ ìÜ
_ւ
 øc
ᡧw-
fo7V:?#^ýW_Fð-r
þ @ ïÆ/÷´Á¸ÎF¬ø
Äl¦J Ãõ#0=mµ1¿
ºmu_õ uKø õb?Y¶ÃylÄma‾cîÝìõauÍp;8øra"r ѾyÙ 0NÑÉbüö?¦ s‾+æ7b
Â3~g±òþõPÿU?Z
¶@ È:@À Wκð
^õ Öwÿñf'
D8XsH¶³,BM¸{-
t¶Ôtz 50bGì'ïö1EÈ. °+ 6X¡pa °³Ú zË1;| ú X {>jÇ ¬þüéVÓ¿ºyÔ
Øã°°»{¢¶kYtß>è¹µã#3@;
,7¾ð ? @:øã«ç\p²;lAUßtSs)x~}; -pî 3
éó5ÓÆ
ïw3܍^
v±_»Ø
Q<a‾ËÝm
x[|{¿äaðø°
¸ú¸Fèd*íHµ]À~ÿFøÆ%x«e
ï»h _t;<m
À*
ìqÐWÏ»°oòØá[+
0
VÃÕv@ ;ø#;b¨Ï
DØqؾ
Îv®dµk
gHú dhm
\Âq|s‾
]¨íAþ
úvpK¢¶'°ó[Üêõ>ø2
áMDÙD»
à—§ ö p[,ð
 ; C ¶5N
x>luvø
ݶ¡á
ðØÛ|I
!ë´á\
3ß u µßcöíÿ7vÆ
,ð_À~>jC ø5
". !&"
ê85ø@Ø'
ø ¬pâ7
véa.üÄí{t'ÖwÁísqþ`ëÇwâ¨9p
ñX&4 ( ø
úùØOÄ-à[Í8îf
ôØϹĬ`y§/ÑgýïûÞ'Ä,~-k ±&VÆ]èô
¤P¢ñ~í ] 6+ØYàH0  é¿âí5Ð@
kÂlH8ü
Àá./Ç= 0 {*`'É#ÂNØÕ#ÂNØÕ#ÂNØÕ#ÂNØÕ#ÂNØÕ#ÂNØÕ#® v ® $§(ÛÌvÅÝP;aW;aW;aW èï
S.u9ð wCmbØöÇHr;;;
;;; SEL-REAC.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; This file contains various Example how to select all reactors ;
;;; binded to the vla object ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; Function: SELECT-OBJECT-REACTORS ;
;;; ;
;;; Description: This function passes a vla object to ;
;;; select-object-reactors-id. And serves as a ;
;;; constructor. ;
;;; ;
;;; Required Functions: ;
;;; select-object-reactors-id ;
;;; ;
;;; Arguments: ;
;;; vla_object = a valid vla object. ;
;;; ;
;;; Returned Value: A list of vla objects. ;
;;; ;
;;; Usage: ;
;;; (select-object-reactors ;
;;; vla_object ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun select-object-reactors (vla_object)
(select-object-reactors-id
(vla-get-ObjectID vla_object)
(VLR-reactors :VLR-Object-Reactor)
)
)
;;;--------------------------------------------------------------------;
;;; Function: SELECT-OBJECT-REACTORS ;
;;; ;
;;; Description: This function passes a vla object to ;
;;; select-object-reactors-id. And serves as a ;
;;; constructor. ;
;;; ;
;;; Required Functions: ;
;;; select-object-reactors-id ;
;;; ;
;;; Arguments: ;
;;; objId = a valid vla object id. ;
;;; react-lst = a list of vlr reactors. ;
;;; ;
;;; Returned Value: A list of vla objects. ;
;;; ;
;;; Usage: ;
;;; (select-object-reactors-id ;
;;; objId ;
;;; react-lst ;
;;; ) ;
;;;--------------------------------------------------------------------;
(defun select-object-reactors-id (objId react-lst)
;; it is important to use object Id for checking object eqe.
;; because the same object may have many different vla-object
;; pointed to it but all of them have the same objectId.
(cond
((null react-lst) nil)
((member objId
(mapcar
(function vla-get-ObjectID)
(VLR-Owners (car react-lst))
)
)
(cons (car react-lst)
(select-object-reactors-id objId (cdr react-lst))
)
)
(t (select-object-reactors-id objId (cdr react-lst)))
)
^xu
)°õ9ü
W7xáÕ
^Ýà
:ïÕ
.Y9÷2ôRdz÷,ÿè
l®6¸?´oÇÞôÍÌÞi*3c
W—gáÝ BOÉ{hrxÿ
W7xáÕ í)öÄääW
l¼ / ¾¼ùÁ}‾nñåu
Ǻ1))iÜ:oÏZ¿fEä—
÷[,Éغiõ
Ëv9dn3axá
'—¹s_:^ xu
¹-ç
= ^ Ýà
]qÇW7xáÕ
7ÁKÞu« çg9í ©  Yòþ»îÃÙñö 7 w6óæe9
ýUê¼}µÙ ÏSVÙIÛ É{-l².øîۗ®³bó¾ýÖû\¶—ãð ÊÆ|òñR{£Wç½¼ø½wB— eöÐNÚÈ ^ x'â ±8</ï§kWf:—ØÁÊeKíS  ÙÁ
¿ThzGÎÞÉaÂïäxíuBÆ- 6À`Â +Í gÛÚû,_mvö þa6 I$‾yÚÛóÃ
Þ©ó¾ðÁ
^xu ^Ýà‾nð«
W7xãλ;-
¼ðê/¼ºM‾#åðþ
= ©Ù¿.x
r«Ç
7î—X"
÷3 ^Ýà
írÈÜfÂðÂ+
W7~9ÌD¼fðê
o /^¼ºÁ
Ýà ‾W7xáÕ
nð«¼ðê/¼ºÁ‾nð«¼ðê/¼ºÁ‾nð«¼ðê/¼ºÁ‾nð«¼
^xcðNôËÁ| ²ÊNÚÞMÆØCha uÁwß¾u  ÷í—Øç²½ ÿS6æ Ú½:ïåÅï½Z ,;° vÒFæ¸Ò¼1fïóINDX( $ü,(èxËÉËâQ
pÀM¿ôEË
ropulaÆtÉÐ:
e.arÉx#!P¿ôEË
âQpZkL#!P¿ôEË  x 
ÀM¿ôEËÆÉÐ: É#!P¿ôEË#!P¿ôEË  x 
PJ]/
ROPÉUwLN~1ÖôEË .ARXwBN^hÖôEË TkL`°í  ÖôEË
  redqid/r.lÉs`ípHÖôEË
^hVk`LwíNÖôEË
ÖôEËQ q d/
qquÉ
iwtN.lÖôEË
spJWwhNTkÖôEË LWC)ÒôEË
U ß:f/ Én¤+ÒôEËn¤+ÒôEËB
rseavveeÉrawtNl.l.ÖôEË
J]/ slpsäpQUwh^
NThkXÖôEË
Lk#L
!P¿ôEË
 ‾¡ÖôEË
@I9 Vª^Ï:
r²text.Él#s!P¿ôEË
pe/dcÉO^‾¡ÖôEË
h#T!P¿ôEË
kLwN ‾¡ÖôEË
Ð Æ  q@d/
ÖôEË 1:ÉswhNpR2ÖôEË
Tbelxkt.wlaNsrpÖôEË
xMKW^phZpTk4LiwN.ÒôEË
ÖôEËuÓf/
rtuÉ
cs.lÒôEË
spdc
sprhÉat‾¡ÖôEË
J]/ ch.dclV^‾¡ÖôEË
pZkL ‾¡ÖôEË
^ 
sprhatch.lspW^`PkL ‾¡ÖôEË :{^/ É ‾¡ÖôEË ‾¡ÖôEË0Ù! ss.lspÒ]pZkLÈÁ=ÖôEËĺÑZÁÈÁ=ÖôEËÈÁ=ÖôEËg 
structur.layåQhXkL#!P¿ôEË[Ñ: É#!P¿ôEË#!P¿ôEËð à sysvdlg.arxWhXkL
ã ÑôEË à _É
ã ÑôEË
ã ÑôEËÐ\Ä sysvdlg.datNWhXkL .ÒôEË
lg/ É . ÒôEË .ÒôEËç tblname.dclX^hXkL ‾¡ÖôE˲ e/ É ‾¡ÖôEË ‾¡ÖôEË Î  tblname.lspOWhTkL .Òô
lg/ É . ÒôEË .ÒôEËÝ tcase.dclY^hTkL ‾¡ÖôE˲ e/ É ‾¡ÖôEË ‾¡ÖôEË0/%  tcase.lspZ^pZkL ‾¡Ö
tcaseSup.lsp/_pZkLroFäôEË`§;× ÁroFäôEËroFäôE˦ 
template.prp[^hXkL¥¤ÖôEˤâ]/ É¥¤ÖôEË¥¤ÖôE û textfit.lsp\^pZkL¥¤ÖôEˤâ]/ É¥¤ÖôEË¥¤ÖôEË K  
textmask.lsp`^hRkL¥¤ÖôEË H¢e/ É¥¤ÖôEË¥¤ÖôEË Øtrex.lspla^hXkL¥¤ÖôEˤâ]/ É¥¤ÖôEË¥¤ÖôEË`åS tre
tscale.lspc^hVkL¥¤ÖôEˤâ]/ ¥ ¤ÖôEË¥¤ÖôEË0) 
txtexp.lspk^hXkL¼q¦ÖôEË H¢e/ ɼq¦ÖôE˼q¦ÖôEË ù vpscale.lspl^hVkL¼q¦ÖôEË H¢e/ ɼq¦ÖôE˼q¦ÖôE
vpsync.lspm^hTkL¼q¦ÖôEˤâ]/ ɼq¦ÖôE˼q¦ÖôEËP¡C  xdata.lspPWhTkL .ÒôEË uÓf/ É .ÒôEË . ÒôEË* 
yes_no.dclq^hVkL¼q¦ÖôEË :{^/ ɼq¦ÖôE˼q¦ÖôEË~ 
yes_no.lsp;;
;;;
;;; SHP2BLK.LSP
;;; Created 10/31/97 by Dominic Panholzer
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------

(defun c:shp2blk (/ grplst getgname acet-wmfin-loc ANS THAW0 DOIT FLTR GLST GDIC
T SHP ED NAM INS SCL ROT SPC
LAY CLR LTP CLAY LOOP PTS BLK ZM TMPFIL CUR_LOCKED SS CNT EN
T ENT_LOCKED 0_LOCKED VEC)

; --------------------- GROUP LIST FUNCTION ----------------------


; This function will return a list of all the group names in the
; drawing and their entity names in the form:
; ((<ename1> . <name1>) ... (<enamex> . <namex>))
; ----------------------------------------------------------------
(defun grplst (/ GRP ITM NAM ENT GLST)
(setq GRP (dictsearch (namedobjdict) "ACAD_GROUP"))
(while (setq ITM (car GRP)) ; While edata item is ava
ilable
(if (= (car ITM) 3) ; if the item is a group
name
(setq NAM (cdr ITM) ; get the name
GRP (cdr GRP) ; shorten the edata
ITM (car GRP) ; get the next item
ENT (cdr ITM) ; which is the ename
GRP (cdr GRP) ; shorten the edata
GLST ; store the ename and nam
e
(if GLST
(append GLST (list (cons ENT NAM)))
(list (cons ENT NAM))
)
)
(setq GRP (cdr GRP)) ; else shorten the edata
)
)
GLST ; return the list
)
; ------------------- GET GROUP NAME FUNCTION --------------------
; This function returns a list of all the group names in GLST
; where ENT is a member. The list has the same form as GLST
; ----------------------------------------------------------------
(defun getgname (ENT GLST / GDATA NAM NLST)
(if (and GLST (listp GLST))
(progn
(foreach GRP GLST
(setq GDATA (entget (car GRP)))
(foreach ITM GDATA ; step through the edata
(if (and
(= (car ITM) 340) ; if the item is a entity
name
(eq (setq NAM (cdr ITM)) ENT) ; and the ename being loo
ked for
)
(setq NLST ; store the ename and nam
e
(if NLST
(append NLST (list (cons (car GRP) (cdr GRP))))
(list (cons (car GRP) (cdr GRP)))
)
)
)
)
)
)
)
NLST
)

; -------------------- BONUS WMFIN FUNCTION ---------------------


; This function runs WMFIN on the file FIL, scales the resulting
; vectors, explodes the insert and removes the outside frame.
; It returns a selection set of the entities brought in. If the
; file cannot be found it returns nil
;
; Note that this routine assumes the current view size is the
; same as the one used while WMFOUT was invoked. If it is not
; the resulting entities will have a scale that is different
; than the original
;
; External Functions:
;
; VIEWPNTS --> AC_BONUS.LSP Returns upper left and lower right of scre
en
; PIXEL_UNIT --> AC_BONUS.LSP Size of pixel in drawing units
; MIDPNT --> AC_BONUS.LSP Returns midpoint between two points
; B_LAYER_LOCKED --> AC_BONUS.LSP Checks to see if layer is locked
; ----------------------------------------------------------------
(defun acet-wmfin-loc (FIL / VIEW UPLFT 0_LOCKED CUR_LOCKED BLK RETURN)
(if (/= (xstrcase (substr FIL (- (strlen FIL) 3) 4)) ".WMF")
(setq FIL (strcat FIL ".WMF"))
)
(if (findfile FIL)
(progn
(setq VIEW (acet-geom-view-points)
UPLFT (list (caar VIEW) (cadadr VIEW))
)
(if (acet-layer-locked "0") ; if layer 0 is locked
(progn
(command "_.layer" "_unl" "0" "") ; unlock it
(setq 0_LOCKED T)
)
)
(if (acet-layer-locked (getvar "clayer")) ; if current layer is
locked
(progn
(command "_.layer" "_unl" (getvar "clayer") "") ; unlock it
(setq CUR_LOCKED T)
)
)

(command "_.WMFIN" FIL UPLFT "2" "" "")


(setq BLK (cdr (assoc 2 (entget (entlast))))) ; Get name of temp wmfin
block
(command "_.EXPLODE" (entlast)) ; Explode wmfin block
(while (wcmatch (getvar "cmdnames") "*EXPLODE*") ; Verify explode comma
nd is complete
(command "")
)
(acet-table-purge "block" blk nil)

(setq RETURN (ssget "_p")) ; Gather all ents created


from explode
(command "_.erase" RETURN "_R" "_W"
(polar (car VIEW) (* 0.25 Pi) (* 1.414213 (acet-geom-pixel-unit
)))
(cadr VIEW)
""
)
(if CUR_LOCKED
(command "_.layer" "_lock" (getvar "clayer") "") ; relock current if n
eeded
)
(if 0_LOCKED
(command "_.layer" "_lock" "0" "") ; relock 0 if needed
)
)
)
RETURN
)
; ----------------------------------------------------------------
; MAIN PROGRAM
; ----------------------------------------------------------------
(acet-error-init
(list
(list "cmdecho" 0
"highlight" 1
"osmode" 0
"expert" 5
"limcheck" 0
"cecolor" "bylayer"
)
T
)
)

;(acet-autoload (list "getext.arx" "(getgeomextents EN)"))

(if (and
(= (logand 1 (cdr (assoc 70 (tblsearch "layer" "0")))) 1) ; if layer 0 i
s frozen
(not (= (logand 4 (getvar "cmdactive")) 4)) ; and no scrip
t is running,
)
(progn
(initget "Yes No" 128)
(setq ANS (getkword "\nSHP2BLK cannot run if Layer 0 is frozen. Would you
like to thaw it? <Y>: "))
(if (or (= ANS "Yes") (not ANS))
(progn
(command "_.layer" "_thaw" "0" "")
(setq THAW0 T
DOIT T
)
)
)
)
(setq DOIT T)
)
(if DOIT
(progn
(prompt "\nSelect shape entity to convert: ")
(Setq FLTR '((0 . "SHAPE")) ; Filter for shapes
GLST (grplst) ; Get all the groups in d
rawing
GDICT (if GLST
(dictsearch (namedobjdict) "ACAD_GROUP")
)
SHP (acet-ui-single-select FLTR T)
)
(if SHP
(progn
(setq ED (entget SHP) ; Get shape's entity data
NAM (cdr (assoc 2 ED)) ; Get shape's name
CLAY (getvar "clayer") ; Store current layer
LOOP T
)
(while LOOP
(setq BLK (getstring (strcat "\nEnter the name of the block to creat
e <" NAM ">: ")))
(if (= BLK "")
(setq BLK NAM)
)
(setq BLK (xstrcase BLK))
(cond
((not (snvalid BLK))
(princ "\nInvalid block name.")
)
((tblobjname "BLOCK" BLK)
(princ (strcat "\nBlock " BLK " already exists."))
(initget "Yes" 128)
(if (= (getkword "\nRedefine it? <N>") "Yes")
(setq LOOP nil)
)
)
(T
(setq LOOP nil)
)
)
)
(command "_.ucs" "_view"
"_.shape" NAM (getvar "viewctr") 1 0)
(setq SHP (entlast)
; PTS (getgeomextents SHP)
;replaced with new API call for 2000
PTS (acet-ent-geomextents SHP)
PTS (list (trans (car PTS) 0 1) (trans (cadr PTS) 0 1)) ; transl
ate from world to current ucs
INS (getvar "viewctr")
)
(if (setq ZM (acet-geom-zoom-for-select PTS)) ; If current view does n
ot contain
(progn ; shape inser
ted
(setq ZM
(list
(list (- (caar ZM) (acet-geom-pixel-unit)) ; increase zoom
area by
(- (cadar ZM) (acet-geom-pixel-unit)) ; one pixel wid
th to
(caddar ZM) ; sure nothing will be lo
st
)
(list (+ (caadr ZM) (acet-geom-pixel-unit))
(+ (cadadr ZM) (acet-geom-pixel-unit))
(caddr (cadr zm))
)
)
)
(command "_.zoom" "_w" (car ZM) (cadr ZM)) ; zoom to include shap
e objects
)
)
(setq TMPFIL (strcat (getvar "tempprefix") "bnsshp.wmf"))
(if (acet-layer-locked (getvar "clayer")) ; if current layer is
locked
(progn
(command "_.layer" "_unl" (getvar "clayer") "") ; unlock it
(setq CUR_LOCKED T)
)
)
(if (acet-layer-locked "0") ; if layer 0 is locke
d
(progn
(command "_.layer" "_unl" "0" "") ; unlock it
(setq 0_LOCKED T)
)
)
(command "_.chprop" SHP """_lt" "continuous" ""
"_.WMFOUT" TMPFIL SHP ""
"_.ERASE" SHP ""
)
(setq SHP (acet-wmfin-loc TMPFIL))
(command "_.chprop" SHP ""
"_c" "_byblock"
"_lt" "_byblock"
""
"_.block" BLK INS SHP ""
)
(if ZM (command "_.zoom" "_p")) ; Restore original view i
f needed
; find all shapes in drawing and replace them with the block insert
(setq FLTR (list (cons -4 "<AND")
(cons 0 "SHAPE")
(cons 2 NAM)
(cons -4 "AND>")
)
SS (ssget "_x" FLTR)
CNT 0
)
(While (and
SS
(setq ENT (ssname SS CNT)) ; step through each objec
t in set
)
(setq ED (entget ENT)
INS (assoc 10 ED) ; Get shape's insertion p
oint
SCL (cdr (assoc 40 ED)) ; Get shape's size
ROT (assoc 50 ED) ; Get shape's rotation
LAY (assoc 8 ED) ; Get shape's layer
CLR (assoc 62 ED) ; Get shape's color
LTP (assoc 6 ED) ; Get shape's linetype
SPC (assoc 67 ED) ; Get shape's space
VEC (assoc 210 ED) ; Get shape's extrusion v
ector
)
(if (acet-layer-locked (cdr LAY)) ; if shape's lay
er is locked
(progn
(command "_.layer" "_unl" (cdr LAY) "") ; unlock it
(setq ENT_LOCKED T)
)
)
(entdel ENT)
(entmake (list
(cons 0 "INSERT")
(cons 2 BLK)
INS
(cons 41 SCL)
(cons 42 SCL)
(cons 43 SCL)
ROT
LAY
(if CLR
CLR
(cons 62 256)
)
(if LTP
LTP
(cons 6 "BYLAYER")
)
(if SPC
SPC
(cons 67 0)
)
VEC
)
)
(if ENT_LOCKED
(progn
(command "_.layer" "_lock" (cdr LAY) "") ; relock if needed
(setq ENT_LOCKED nil)
)
)
(setq CNT (1+ CNT))
)

(if CUR_LOCKED (command "_.layer" "_lock" (getvar "clayer") "")) ; rel


ock current if needed
(if 0_LOCKED (command "_.layer" "_lock" "0" "")) ; rel
ock 0 if needed
(setvar "clayer" CLAY) ; Return the original lay
er current
(command "_.ucs" "_P")
(prompt (strcat "\nThe shape " NAM " has been replaced with block " BL
K "."))
)
)
(if THAW0
(progn
(command "_.layer" "_freeze" "0" "")
(prompt "\nLayer 0 has been refrozen.")
)
)
)
)
(acet-error-restore) ; Retsore values
(princ)
)

(princ)]y6çÃR‾ /ø,|cø¨¡W$%ûÙX_³rd{ÌoÕk è¼V lï‾l*eFg5ì'>±ó ¿ Ý¦Ê 39E" Ì8


‾%ÛÙ¹
—Ô}fGç se§ ³+_ Ù —<RR$‾*à »Cwgs"dTG[ X, 0ë y ú¦Q5*ô÷´â^XZ .¤Í[b'vÙ± t ]¨ C)*ãJÄkvNåæJ[ a
±sÊÀ¹=ù¹4iÑ_¿º3vfÔ1¿MÛß F
=Q¦ ydzý`|¥2Á  Ç¿d©WÈ ïÓ- Ûeg²³$±sÂ|—ô]TTËdyXÄÂsêXö M¡ {ß;ï,ͲÌÊâÌý\[²ó'¼ÚRqG¬«O <{c M=Ê;
,¹¹R«q¶
Za l1äøZ~ YdPÓ;;v¤¤¨ºòlÄk¹ß4
uµUR©ÿÛÙ~I,M uQ OðO¥GK üsãh ©y¹±w± _[ðZ ³zøÿ¥MØ Q
ò Øù Ý°§-2©mv´5ûþ°ÓÚNì<{vü
çä9 ¿Ýü ¶È|yúÄ H´ÐßÓÊ Ø =Û § ¹Èlb'öl±ó<
;çÝZ Ø b'vá Ø ]8!vbN Ø b'vá ØùÀîsï.9_< ‾‾EYæù£øê ÇaÒ¹¦ Cnç#Ê ; _Ø í ùq6- Ú;;f¿©uM ì ÀDk
ø¨¡W$%ûÙX_³rd;;;
;;; SPRHATCH.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------

;TFRAMES - Toggles Image and Wipeout frames on and off.


;
(defun c:tframes ( / e1 e2 status)
(acet-error-init
(list (list "cmdecho" 0);list
T
);list
);acet-error-init
(setq e1 (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"));setq
(setq e2 (dictsearch (namedobjdict) "ACAD_WIPEOUT_VARS"));setq
(if (or e1 e2)
(progn
(if (and e1
(equal (cdr (assoc 70 e1)) 1)
);and
(setq status "_OFF")
(progn
(if e1
(setq status "_ON")
(progn
(if (and e2
(equal (cdr (assoc 70 e2)) 1)
);and
(setq status "_OFF")
(progn
(if e2
(setq status "_ON")
);if
);progn
);if
);progn
);if
);progn
);if
(if status
(progn
(if (= status "_ON")
(command "_.imageframe" "1")
(command "_.imageframe" "0")
);if status
(command "_.wipeout" "_f" status)
(princ (acet-str-format "\nIMAGE/WIPEOUT frames are toggled %1." (sub
str status 2)))
);progn then
);if
);progn then
(princ "\nNo images or wipeouts in the current drawing.")
);if
(acet-error-restore)
);defun c:tframes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun c:Superhatch ( / flag lla htype ss lst2
)

(acet-error-init
(list (list "cmdecho" 0
"highlight" 0
"osmode" 0
"orthomode" 0
"plinetype" 1
"ucsicon" 0
"cecolor" nil
"celtype" nil
"regenmode" 1
"luprec" nil
"ucsfollow" 0
"limcheck" 0
"plinewid" 0
"pickstyle" 0
);list
T
);list
);acet-error-init
(sssetfirst nil nil)
(bns_sprhatch_init_overlap)

(acet-arxload-or-bust "acetutil.arx")
(acet-autoload (list "clipit.lsp" "(c_clipit a b)"))
(acet-autoload (list "clipit.lsp" "(wipeout_clipit a b)"))
(acet-autoload (list "ddins2.lsp" "(ddins2)"))
(acet-autoload (list "ai_utils.lsp" "(ai_rtos a)"))
(acet-autoload (list "ai_utils.lsp" "(ai_num a b c)"))

(reg_it2);ensure that sprhatch is registered as an xdata app

(setq flag (acet-viewport-next-pickable))


(if (and (not (equal 1 (getvar "cvport")))
(not (equal (car flag) (getvar "cvport")))
);and
(progn
(princ "\n That command may not be invoked in a perspective view ")
);progn then jump out of this command cuz perspective view is on.
(progn
(setq lla (acet-layer-unlock-all))
(setq htype (htype_info))
;make absolutely sure that these vars are set.
(setvar "cmdecho" 0)
(setvar "highlight" 0)
(setvar "osmode" 0)
(setvar "orthomode" 0)
(setvar "plinetype" 1)
(setvar "ucsicon" 0)
(setvar "regenmode" 1)
);progn else all is good
);if
(if (and htype
(setq ss (get_boundary_plines))
(car (setq lst2 (do_boundary_stuff #clipitres ss)))
);and
(progn

(sprhatch #sprhatch_type (car htype) (cadr htype) (caddr htype) lst2)


(cond
((equal #sprhatch_type "Image")
(princ "\nUse TFRAMES to toggle object frames on and off.")
);cond #1 image
((equal #sprhatch_type "Wipeout")
(princ "\nUse TFRAMES to toggle object frames on and off.")
);cond #2 Wipeout
);cond close
);progn then go for it
(progn
(if htype
(progn
(if (car htype)
(entdel (car htype))
);if
(if (not ss)
(progn
(acet-ss-clear-prev)
);progn then
);if
);progn then
);if
);progn else the boundary stuff failed to create polyline boundaries.
);if
(if lla
(progn
(command "_.-layer" "_lock" lla "")
(while (wcmatch (getvar "cmdnames") "*LAYER*") (command ""));while
);progn then re-lock the layers that were originally locked
);if
(acet-error-restore)
);defun c:superhatch
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun reg_it2 ( )
(if (not (tblsearch "appid" "BNS_SPRHATCH"))
(if (= (regapp "BNS_SPRHATCH") nil)
(princ "\nCan't register XDATA for BNS_SPRHATCH.")
);if
);if
);defun reg_it2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun htype_info ( / htype na flag flag2)
(while (not flag2)
(if (setq htype (dd_htype_info))
(progn
(setq na (cadr htype)
htype (car htype)
);setq
(cond
((or (equal htype "Block")
(equal htype "Xref")
);or
(setq flag (get_insert_info na htype));setq entname, rectang and xtlist
);cond #1
((equal htype "Image")
(setq flag (get_image_info na))
(if flag
(setq flag2 T)
);if
);cond #2
((equal htype "Wipeout")
(setq flag (list nil nil)
flag2 T
);setq
);cond #3
);cond
(if flag
(setq flag2 T);then the user did not create an image, block, or xref.
);if
);progn then
(setq flag2 T)
);if
);while
(if (car flag)
(progn
(acet-ss-visible (ssadd (car flag) (ssadd)) 1);then make it stealth
(princ)
);progn
);if
flag
);defun htype_info
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun dd_htype_info ( / str na luprec iv flag na2 a)
(setq luprec (getvar "luprec"))
(setvar "luprec" 8)
(setq flag -1)
(setq iv T)
(while (and iv
(equal flag -1)
);and
(if (> (setq iv (load_dialog "sprhatch"));setq
0
);test
(progn
(if (new_dialog "sprhatch" iv)
(progn
;get some defaults ready and initialize some tiles.
(if (not #sprhatch_type) (setq #sprhatch_type "Image"));if
(mode_tile (strcase #sprhatch_type T) 2)
(if #clipitres
(setq a (ai_rtos #clipitres))
(setq a (ai_rtos (acet-geom-pixel-unit)));setq
);if
(set_tile "clipitres" a)
(action_tile "clipitres" "(check_clipitres nil)")
(setq str "(if (check_clipitres T) (done_dialog 1))")
(action_tile "image"
(strcat "(setq #sprhatch_type \"Image\")" str);strcat
);action_tile
(action_tile "block"
(strcat "(setq #sprhatch_type \"Block\")" str)
);action_tile
(action_tile "xref"
(strcat "(setq #sprhatch_type \"Xref\")" str)
);action_tile
(action_tile "wipeout"
(strcat "(setq #sprhatch_type \"Wipeout\")" str)
);action_tile
(action_tile "select" "(if (check_clipitres T) (done_dialog -1))")
(action_tile "accept" str)
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(acet-help \"SUPERHATCH\")")
(setq flag (start_dialog));setq ;START_DIALOG MAKES THE BUTTONS ACTIV
E
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load
(if (equal flag -1)
(setq flag (sel_existing)
na (cadr flag)
flag (car flag)
);setq
);if
);while
(setvar "luprec" luprec)
(if (equal flag 1)
(setq flag (list #sprhatch_type na));setq
(setq flag nil)
);if
flag
);defun dd_htype_info
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun check_clipitres ( flag / a range errmsg)
(setq range 6) ; non zero & non negative
(setq errmsg "Value must be positive & nonzero.")
(setq a (ai_num (get_tile "clipitres") errmsg range))
(if (and flag
(not a)
);and
(mode_tile "clipitres" 2)
(progn
(if (and flag a)
(setq #clipitres a)
);if
);progn
);if
a
);defun check_clipitres

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun sel_existing ( / flag flt e1 bna na na2 e2)
(setq flt (list '(-4 . "<OR")
'(-4 . "<AND")
'(0 . "INSERT")
'(-4 . "<NOT")
'(2 . "` ")
'(-4 . "NOT>")
'(-4 . "AND>")
'(0 . "IMAGE")
'(0 . "WIPEOUT")
'(-4 . "OR>")
);list
);setq
(if (setq na (acet-ui-single-select flt nil))
(progn
(setq e1 (entget na '("*"))
e1 (acet-list-assoc-remove 330 e1)
e1 (acet-list-assoc-remove -1 e1)
e1 (acet-list-assoc-remove 5 e1)
);setq
(if (not (equal "INSERT" (cdr (assoc 0 e1))))
(entmake e1) ;then entmake a copy of the selected object
(progn
(entmake e1) ;entmake a copy of the selected insert
(if (equal 1 (cdr (assoc 66 e1)))
(progn
(setq na (entnext na)
e1 (entget na)
);setq
(while (and na
(not (wcmatch (cdr (assoc 0 e1)) "*END*"))
);and
(entmake e1)
(setq na (entnext na)
e1 (entget na)
);setq
);while
(entmake e1)
);progn then
);if
);progn else it's an insert
);if
(setq na (entlast)
e1 (entget na)
);setq
(cond
((equal "INSERT" (cdr (assoc 0 e1)))
(setq bna (cdr (assoc 2 e1))
na2 (tblobjname "block" bna)
e2 (entget na2)
);setq
(if (equal 4 (logand 4 (cdr (assoc 70 e2))))
(setq #sprhatch_type "Xref")
(setq #sprhatch_type "Block")
);if
(command "_.xclip" na "" "_d")
(while (wcmatch (getvar "cmdnames") "*XCLIP*") (command nil))
);cond #1
((equal "IMAGE" (cdr (assoc 0 e1)))
(setq #sprhatch_type "Image")
(command "_.imageclip" na "_d")
(while (wcmatch (getvar "cmdnames") "*IMAGECLIP*") (command nil))
);cond #2
((equal "WIPEOUT" (cdr (assoc 0 e1)))
(setq #sprhatch_type "Wipeout")
);cond #3
);cond close
;(setq flag (list 1 na na3))
(setq flag (list 1 na nil))
);progn then
(setq flag (list -1))
);if
flag
);defun sel_existing
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun get_insert_info ( na2 htype / na na3 fna bna blk lst2 xtlst
uflag zflag ans vpna vplocked
)

(setq na3 na2


na (entlast)
);setq
(setvar_rt)
(setq ans "No")
(while (equal ans "No")
(setq ans nil);setq
(if (equal htype "Block")
(progn
(if (not na2)
(progn
(ddins2)
(while (wcmatch (getvar "cmdnames") "*INSERT*")
(command pause)
);while
(if (not (equal na (entlast)))
(setq na2 (entlast));setq
(setq na2 nil);setq
);if
);progn
);if
);progn
(progn
(if (not na2)
(progn
(command "_.xattach" "~")
(setvar "cmdecho" 1)
(if (wcmatch (getvar "cmdnames") "*XATTACH*")
(princ "\nSpecify insertion point or [Scale/X/Y/Z/Rotate/PSc
ale/PX/PY/PZ/PRotate]: ")
);if
(while (wcmatch (getvar "cmdnames") "*XATTACH*") (command pause)
);while
(setvar "cmdecho" 0)
(if (not (equal na (entlast)))
(progn
(setq na2 (entlast));setq
;(setq #sprhatch_xref fna)
);progn then
(setq na2 nil)
);if
);progn
);if
);progn else
);if
(if na2
(progn
(setq uflag T)
(acet-ucs-cmd (list "_ob" na2))
(setq xtlst (getblkextents na2));setq
(if (not xtlst)
(progn
(princ "\nCould not obtain object extents. Possibly due to RAY or XLI
NE object.")
(setq ans "No")
(entdel na2)
(setq na2 nil)
);progn then reject this insert.
);if
);progn then
);if
(if (and (not na3)
na2
);and
(progn
(if (setq vpna (acet-currentviewport-ename))
(setq vplocked (acet-viewport-lock-set vpna nil))
);if
(if (setq zflag (acet-geom-zoom-for-select xtlst))
(command "_.zoom" "_w" (car zflag) (cadr zflag))
);if
(if uflag
(progn
(acet-ucs-cmd (list "_p"))
(setq uflag nil)
);progn then
);if
(initget "Yes No _Yes No")
(setq ans (getkword
(acet-str-format "\nIs the placement of this %1 acceptable? {Ye
s/No] <Yes>: " (xstrcase htype))
);getkword
);setq
(if (equal ans "No")
(progn
(entdel na2)
(setq na2 nil)
);progn then
);if
(if zflag (command "_.zoom" "_p"))
(if vplocked
(acet-viewport-lock-set vpna T)
);if
);progn then
);if
(if uflag
(progn
(acet-ucs-cmd (list "_p"))
(setq uflag nil)
);progn then
);if
);while
(setvar "osmode" 0)
(if na2
(setq lst2 (get_insert_rectang na2 htype xtlst)
xtlst (cadr lst2)
lst2 (car lst2)
);setq then got an insert
);if
(if lst2
(list na2 lst2 xtlst)
nil
);if
);defun get_insert_info
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;function resets cecolor and osmode back to original settings
(defun setvar_rt ()
(if (assoc "CECOLOR" (car acet:sysvar-list))
(setvar "cecolor" (cadr (assoc "CECOLOR" (car acet:sysvar-list))))
);if
(if (assoc "CELTYPE" (car acet:sysvar-list))
(setvar "CELTYPE" (cadr (assoc "CELTYPE" (car acet:sysvar-list))))
);if
(if (assoc "OSMODE" (car acet:sysvar-list))
(setvar "osmode" (cadr (assoc "OSMODE" (car acet:sysvar-list))))
);if
);defun setvar_rt
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun get_insert_rectang ( na htype xtlst / e1 deflst na2 na3 na4 p1 p2
xtlst2 lst2 n a lst zflag vpna vplocked
)
(redraw na 3)
(setvar "osmode" 0)
(setvar "celtype" "continuous")
(setq e1 (entget na))
(acet-ucs-cmd (list "_ob" na))
(if (setq deflst (getxdata_defpnts na))
(progn
(setq deflst (append deflst (list (car deflst)))
deflst (scale_pnts_xyz deflst
'(0.0 0.0 0.0)
(cdr (assoc 41 e1))
(cdr (assoc 42 e1))
(cdr (assoc 43 e1))
);scale_pnts_xyz
);setq
);progn then use a default rectang from a previous time.
(setq deflst xtlst);setq else use extents of the insert.
);if
(if (setq vpna (acet-currentviewport-ename))
(setq vplocked (acet-viewport-lock-set vpna nil))
);if
(if (setq zflag (acet-geom-zoom-for-select deflst))
(command "_.zoom" "_w" (car zflag) (cadr zflag))
);if
(command "_.rectang" "_f" 0.0 "_w" (* 1.0 (acet-geom-pixel-unit)) "_th" 0.0 nil
)
(princ
(acet-str-format "\nSelect a window around the %1 to define column and row til
e distances." (strcase htype T))
);princ
(setq p1 T)
(while p1
(setq na2 nil
na3 nil
);setq
(setvar "osmode" 0) (setvar "cecolor" "6") (setvar "celtype" "continuous")
(command "_.rectang" (car deflst) (caddr deflst));Draw a magenta rectang for v
isual def.
(setq na4 (entlast))
(setvar_rt)
(initget "Extents _Extents")
(setq p1 (getpoint
(acet-str-format "\nSpecify %1 [Extents] First corner <mage
nta rectang>: " (strcase htype T))
);getpoint
);setq
(setvar "osmode" 0) (setvar "cecolor" "6") (setvar "celtype" "continuous")
(if (and p1
(equal (type p1) 'LIST)
);and
(progn
(setq na3 (entlast))
(command "_.rectang" p1)
(setvar_rt)
(while (wcmatch (getvar "cmdnames") "*RECTANG*")
(princ "Other corner: ")
(command pause)
);while
(setvar "osmode" 0) (setvar "cecolor" "6") (setvar "celtype" "continuous"
)
(setq na2 (entlast))
);progn then
(progn
(if (equal p1 "Extents")
(setq deflst xtlst);setq
);if
);progn
);if
(if (and (not (equal na3 na2))
p1
);and
(progn
(entdel na2)
(setq p2 (getvar "lastpoint")
p1 (acet-geom-list-extents (list p1 p2))
p2 (cadr p1)
p1 (car p1)
lst2 (list (list (car p1) (cadr p1) (getvar "elevation"))
(list (car p2) (cadr p1) (getvar "elevation"))
(list (car p2) (cadr p2) (getvar "elevation"))
(list (car p1) (cadr p2) (getvar "elevation"))
(list (car p1) (cadr p1) (getvar "elevation"))
);list
lst2 (plst_round lst2 0.00001) ;to avoid possible osnap round off
error
xtlst2 (plst_round xtlst 0.00001) ;if user snaps to magenta rectang
);setq
(if (and (>= (car (car xtlst2)) (car (car lst2)))
(>= (cadr (car xtlst2)) (cadr (car lst2)))
(<= (car (car xtlst2)) (car (caddr lst2)))
(<= (cadr (car xtlst2)) (cadr (caddr lst2)))
(>= (car (caddr xtlst2)) (car (car lst2)))
(>= (cadr (caddr xtlst2)) (cadr (car lst2)))
(<= (car (caddr xtlst2)) (car (caddr lst2)))
(<= (cadr (caddr xtlst2)) (cadr (caddr lst2)))
);and
(progn
(setq deflst lst2);setq else
);progn then
(progn
(setq lst2 nil)
(princ
(acet-str-format "\n*Invalid* Window must fully contain the %1."
(strcase htype T))
);princ
);progn else
);if
);progn then got a rectang
(setq lst2 deflst);setq else use default
);if
(if (and lst2
(or (equal (car (car lst2)) (car (caddr lst2)) 0.0001)
(equal (cadr (car lst2)) (cadr (caddr lst2)) 0.0001)
);or
);and
(progn
(princ "\n*Invalid* Selected window has no area with respect to the curre
nt ucs.")
(setq p1 T)
);progn then
);if
(if (and p1
lst2
);and
(setq deflst lst2)
);if
(entdel na4)
);while selected rectang is invalid or has not been accepted.
(setvar_rt) (setvar "osmode" 0)
(set_insert_defs lst2 na)
(setq lst2 (acet-geom-m-trans lst2 1 0)
xtlst (acet-geom-m-trans xtlst 1 0)
);setq
(acet-ucs-cmd (list "_p"))
(setq lst2 (acet-geom-m-trans lst2 0 1)
;lst2 (plst_round lst2 0.000001) ;@Rk removed 6:28 PM 9/24/97
xtlst (acet-geom-m-trans xtlst 0 1)
;xtlst (plst_round xtlst 0.000001) ;@Rk removed 6:28 PM 9/24/97
);setq
(setq n 0)
(repeat (length xtlst)
(setq a (nth n xtlst)
a (list (car a)
(cadr a)
;(getvar "elevation") ;@Rk removed 6:28 PM 9/24/97
);list
lst (append lst (list a))
);setq
(setq n (+ n 1))
);repeat
(setq xtlst lst
lst nil
);setq
(setq n 0)
(repeat (length lst2)
(setq a (nth n lst2)
a (list (car a) (cadr a) (getvar "elevation"))
lst (append lst (list a))
);setq
(setq n (+ n 1))
);repeat
(setq lst2 lst)
(redraw na 4)
(if zflag
(command "_.zoom" "_p")
);if
(if vplocked
(acet-viewport-lock-set vpna T) ;re-lock the viewport
);if
(command "_.rectang" "_f" 0.0 "_w" 0.0 "_th" 0.0 nil)
(list lst2 xtlst)
);defun get_insert_rectang
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun set_insert_defs ( lst na / e1 a b c)
(setq e1 (entget na)
a (/ 1.0 (cdr (assoc 41 e1)))
b (/ 1.0 (cdr (assoc 42 e1)))
c (/ 1.0 (cdr (assoc 43 e1)))
lst (scale_pnts_xyz lst
'(0.0 0.0 0.0)
a b c
);scale_pnts_xyz
);setq
(setxdata_defpnts na
lst
);setxdata_defpnts
);defun set_insert_defs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun getxdata_defpnts ( na / e1 x lst )
(setq e1 (entget na '("BNS_SPRHATCH")));setq
(if (setq x (cadr (assoc -3 e1)));setq
(progn
(setq x (cdr x))
(while x
(setq lst (append lst (list (cdr (car x))))
x (cdr x)
);setq
);while
);progn then
);if
lst
);defun getxdata_defpnts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun setxdata_defpnts ( na lst / e1 x )
(reg_it2)
(setq e1 (entget na)
x (list -3
(list "BNS_SPRHATCH"
;(cons 1001 "SPRHATCH_DEFPNTS")
(cons 1010 (car lst))
(cons 1010 (cadr lst))
(cons 1010 (caddr lst))
(cons 1010 (cadddr lst))
);list
);list
);setq
(if (assoc -3 e1)
(setq e1 (subst x (assoc -3 e1) e1));setq then
(setq e1 (append e1 (list x)));setq else
);if
(entmod e1)
);defun setxdata_defpnts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun scale_pnts_xyz ( lst bspnt a b c / lst2 n p1)
(setq n 0)
(repeat (length lst)
(setq p1 (nth n lst)
p1 (list (* a (car p1))
(* b (cadr p1))
(* c (caddr p1))
);list
lst2 (append lst2 (list p1))
);setq
(setq n (+ n 1));setq
);repeat
lst2
);defun scale_and_rotate_pnts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun plst_round ( lst rnd / n a b lst2)

(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
b nil
);setq
(while a
(setq b (append b (list (acet-calc-round (car a) rnd)))
a (cdr a)
);setq
);while
(setq lst2 (append lst2 (list b)))
(setq n (+ n 1));setq
);repeat
lst2
);defun plst_round
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;getblkextents takes an entity name of a block insert.
;returns a list of two points. (lower left and upper right corners)
(defun getblkextents ( na / shift bspnt a b d e1 e2 na2 na3 lst p1 p2)

(defun shift ( e1 bspnt a d / a2 p1 p2)


(if (setq a2 (cdr (assoc 50 e1)))
(setq a2 (- a2 a));setq
);if
(if (setq p1 (cdr (assoc 10 e1)))
(setq p1 (acet-geom-point-rotate p1 bspnt (* -1.0 a))
p1 (list (- (car p1) (car d))
(- (cadr p1) (cadr d))
(- (caddr p1) (caddr d))
);list
);setq
);if
(if (setq p2 (cdr (assoc 11 e1)))
(setq p2 (acet-geom-point-rotate p2 bspnt (* -1.0 a))
p2 (list (- (car p2) (car d))
(- (cadr p2) (cadr d))
(- (caddr p2) (caddr d))
);list
);setq
);if
(setq e1 (subst (cons 50 a2) (assoc 50 e1) e1)
e1 (subst (cons 10 p1) (assoc 10 e1) e1)
e1 (subst (cons 11 p2) (assoc 11 e1) e1)
e1 (subst '(210 0.0 0.0 1.0) (assoc 210 e1) e1)
);setq
e1
);defun shift
;;(entmake nil)
(entmake)
;;(entmake nil)
(entmake)
(setq na3 (entlast)
e1 (entget na)
b (cdr (assoc 2 e1))
a (cdr (assoc 50 e1))
d (cdr (assoc 10 e1))
bspnt d
e1 (shift e1 bspnt a d)
);setq
(if (assoc 60 e1)
(setq e1 (subst (cons 60 1) (assoc 60 e1) e1));setq
(setq e1 (append e1 (list (cons 60 1))));setq else
);if
(entmake e1)
(if (equal 1 (cdr (assoc 66 e1)))
(progn
(setq na2 (entnext na)
e2 (entget na2)
e2 (shift e2 bspnt a d)
);setq
(while (and na2
(not (wcmatch (cdr (assoc 0 e2)) "*END*"))
);and
(entmake e2)
(setq na2 (entnext na2)
e2 (entget na2)
e2 (shift e2 bspnt a d)
);setq
);while
(entmake (entget na2))
);progn then the insert has attributes
);if
(if (not (equal na3 (entlast)))
(progn
(setq lst (acet-ent-geomextents (entlast)));setq
(entdel (entlast))
(if (and lst
(setq b (entget (tblobjname "block" b)))
(assoc 3 b)
(not (equal (cdr (assoc 3 b)) ""))
;(equal 4 (logand 4 (cdr (assoc 70 b))))
);and
(progn
(setq b (cdr (assoc 10 b))
b (list (- (car b)) (- (cadr b)) (- (caddr b)))
);setq
(setq lst (list (acet-geom-vector-add (car lst) b)
(acet-geom-vector-add (cadr lst) b)
);list
);setq
);progn then adjust for insbase
);if
(if lst
(progn
(setq p1 (car lst)
p2 (cadr lst)
lst (list p1
(list (car p2) (cadr p1) (caddr p1))
(list (car p2) (cadr p2) (caddr p1))
(list (car p1) (cadr p2) (caddr p1))
p1
);list
);setq
(acet-ucs-cmd (list "_ob" na))
(setq lst (acet-geom-m-trans lst 1 0));setq
(acet-ucs-cmd (list "_p"))
(setq lst (acet-geom-m-trans lst 0 1));setq
);progn then
);if
);progn
);if
lst
);defun getblkextents
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun get_image_info ( na / zflag ans lst2 e1 a b p1 p2 p3 p4 vpna vplocked)
(if na
(setq lst2 (acet-geom-image-bounds na))
(progn
(setvar_rt)
(setq ans "No")
(while (equal ans "No")
(setq ans nil);setq
(setq na (entlast))
(command "_.imageattach" "~")
(setvar "cmdecho" 1)
(if (wcmatch (getvar "cmdnames") "*IMAGE*")
(princ "\nInsertion point <0,0>: ")
);if
(while (wcmatch (getvar "cmdnames") "*IMAGE*")
(command pause)
);while
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(if (not (equal na (entlast)))
(progn
(if (setq vpna (acet-currentviewport-ename))
(setq vplocked (acet-viewport-lock-set vpna nil))
);if
(setq na (entlast));setq
(setq lst2 (acet-geom-image-bounds na))
(if (setq zflag (acet-geom-zoom-for-select lst2))
(command "_.zoom" "_w" (car zflag) (cadr zflag))
);if
(initget "Yes No _Yes No")
(setq ans (getkword "\nIs the placement of this IMAGE acceptable? [Ye
s/No] <Yes>: "))
(if (equal ans "No")
(progn
(entdel na)
(setq lst2 nil)
);progn
);if
(if zflag (command "_.zoom" "_p"))
(if vplocked
(acet-viewport-lock-set vpna T)
);if
);progn then got an image
);if
);while
);progn else
);if
(if lst2
(progn
(if (not (equal 0.0 #bns_image_overlap))
(setq e1 (entget na) ;we are going to adjust by 2 percent of an image
pixel.
a (trans (cdr (assoc 11 e1)) 0 1 T)
b (trans (cdr (assoc 12 e1)) 0 1 T)
;a (acet-geom-vector-scale a 0.01)
;b (acet-geom-vector-scale b 0.01)
a (acet-geom-unit-vector '(0.0 0.0 0.0) a)
b (acet-geom-unit-vector '(0.0 0.0 0.0) b)
a (acet-geom-vector-scale a #bns_image_overlap)
b (acet-geom-vector-scale b #bns_image_overlap)
p1 (car lst2)
p2 (cadr lst2)
p3 (caddr lst2)
p4 (cadddr lst2)
p1 (acet-geom-vector-add p1 a)
p1 (acet-geom-vector-add p1 b)
p2 (acet-geom-vector-add p2 (acet-geom-vector-scale a -1.0))
p2 (acet-geom-vector-add p2 b)
p3 (acet-geom-vector-add p3 (acet-geom-vector-scale a -1.0))
p3 (acet-geom-vector-add p3 (acet-geom-vector-scale b -1.0))
p4 (acet-geom-vector-add p4 a)
p4 (acet-geom-vector-add p4 (acet-geom-vector-scale b -1.0))
lst2 (list p1 p2 p3 p4 p1)
);setq then
);if
(list na lst2)
);progn then
nil
);if
);defun get_image_info
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_sprhatch_init_overlap ()
(if (not #bns_image_overlap)
(progn
(setq #bns_image_overlap (acet-getvar '("BNS_SPRHATCH_IMAGEOVERLAP"))
);setq get it from dwg or reg
(if (not #bns_image_overlap)
(progn
(setq #bns_image_overlap 0.0)
(acet-setvar '("BNS_SPRHATCH_IMAGEOVERLAP" 0.0 3));dwg and the regist
ry
);progn then
);if
);progn then
);if
);defun bns_sprhatch_init_overlap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:imageoverlap ( / a)
(acet-error-init (list nil nil))
(bns_sprhatch_init_overlap)

(setq a (getdist
(acet-str-format "\nEnter overlap distance for image tiling in superha
tch <%1>: " (ai_rtos #bns_image_overlap))
);getdist
);setq
(if a
(progn
(setq #bns_image_overlap (abs a))
(acet-setvar '("BNS_SPRHATCH_IMAGEOVERLAP" #bns_image_overlap 3));dwg and t
he registry
);progn then
);if
(acet-error-restore)
);defun c:imageoverlap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bns_adjust_for_pixel_roundoff ( e1 lst / na )
(if (not #bns_image_overlap)
(setq #bns_image_overlap 0.0)
);if
(if (not (equal 0.0 #bns_image_overlap))
(progn
(acet-lwpline-make (list (list (cons 60 1))
lst
)
);acet-lwpline-make-make
(setq na (entlast))
(command "_.offset"
#bns_image_overlap
na
(polar (car (acet-geom-list-extents lst)) pi 1.0)
;(polar (car lst)
; 0
; (* 2.0 (distance (getvar "extmin") (getvar "extmax")))
;)
""
);command
(while (not (equal "" (getvar "cmdnames"))) (command nil));while
(entdel na)
(setq na (entlast));setq
(acet-ss-visible (ssadd na (ssadd)) 1)
(setq lst (acet-geom-vertex-list na))
(entdel na)
);progn then
);if
lst
);defun bns_adjust_for_pixel_roundoff

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun sprhatch ( htype na2 rlst xtlst lst2 / lst p1 p2 p3 xt1 xt2 x1 zflag ss2
lst3 n lst4 lst5 ss3 j na3 e2 vpna
vplocked
);local variables
(setq lst (car lst2) ;list of boundary loops
p1 (cadr lst2) ;max min points
p2 (cadr p1)
p1 (car p1)
p3 (list (car p2) (cadr p1))
xt1 p1
xt2 p2
lst2 rlst
x1 (car lst2) ;p1
);setq
(if na2
(setq e2 (entget na2));setq
);if
(if (setq vpna (acet-currentviewport-ename))
(setq vplocked (acet-viewport-lock-set vpna nil))
);if
(if (setq zflag (acet-geom-zoom-for-select (list xt1 xt2)));setq
(command "_.zoom" (car zflag) (cadr zflag))
);if
(if (not (equal "Wipeout" htype))
(progn
(setq ss2 (ssadd na2 (ssadd))
lst3 (do_tile_stuff lst lst2 xtlst (* (distance p1 p2) 2.0))
);setq
(setq n 0);setq
(repeat (length lst)
(setq lst2 (nth n lst)
lst4 (nth n lst3)
lst5 (cadr lst4)
lst4 (car lst4)
ss3 (ssadd)
);setq
(if (equal htype "Image")
(setq lst2 (bns_adjust_for_pixel_roundoff e2 lst2))
);if
(setq j 0) ;repeat through the ones that will need to be clippe
d
(repeat (length lst4)
(command "_.copy" na2 "" x1 (nth j lst4));command
(setq na3 (entlast))
(cond
((equal htype "Image")
(if (c_clipit na3 lst2)
(progn
(setq ss2 (ssadd na3 ss2))
(while (setq na3 (entnext na3))
(setq ss2 (ssadd na3 ss2))
);while
);progn then
(entdel na3)
);if
(acet-spinner)
);cond #1
((or (equal htype "Xref") (equal htype "Block"))
(setq ss3 (ssadd na3 ss3) ;the xclip selection set
ss2 (ssadd na3 ss2) ;the ss_visible selection set for use at the
end
);setq
);cond #2
);cond close
(setq j (+ j 1));setq
);repeat
(setq j 0)
(repeat (length lst5)
(command "_.copy" na2 "" x1 (nth j lst5));command
(setq ss2 (ssadd (entlast) ss2))
(if (and (equal htype "Image")
(equal j (* 2 (/ j 2)))
);and
(acet-spinner)
);if
(setq j (+ j 1));setq
);repeat
(if (and lst4
(or (equal htype "Block")
(equal htype "Xref")
);or
);and
(progn
(c_clipit ss3 lst2);then xref or block
);progn
(acet-spinner)
);if
(setq n (+ n 1));setq
);repeat
);progn then image block or xref
(progn
(setq ss2 (ssadd))
(setq n 0);setq
(repeat (length lst)
(setq lst2 (nth n lst));setq
(wipeout_clipit nil lst2)
(setq ss2 (ssadd (entlast) ss2));setq
;(acet-spinner)
(setq n (+ n 1));setq
);repeat
);progn else
);if
(if zflag (command "_.zoom" "_p"));if
(if vplocked
(acet-viewport-lock-set vpna T) ;re-lock the viewport
);if
(princ "\nPreparing hatch objects for display...")
(if (and na2 ss2)
(progn
(setq ss2 (ssdel na2 ss2))
(entdel na2)
(acet-ss-visible ss2 0)
);progn
);if
(if (and ss2
(> (sslength ss2) 0)
);and
(progn
;(setq lst (acet-table-name-list "block"))
;(setq n 0)
;(setq j 0)
;(repeat (length lst)
;(setq a (nth n lst))
;(if (and (> (strlen a) 8)
; (equal (substr a 1 8) "SPRHATCH")
; (numberp (read (substr a 9)))
; (> (read (substr a 9)) j)
; );and
; (setq j (read (substr a 9)));setq
;);if
;(setq n (+ n 1));setq
;);repeat
;(setq j (+ j 1)
; a (strcat "SPRHATCH" (itoa j))
;);setq
;(command "_.block" a "0,0,0" ss2 "")
;(command "_.insert" a "0,0,0" "1" "1" "0")
(acet-group-make-anon (list ss2) "Superhatch")
);progn
);if
(princ "\nDone.")
);defun sprhatch

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;- do_tile_stuff
; - do_tile_stuff2
;
;
(defun do_tile_stuff ( lst lst3 xtlst dst / offset dx dy rot a b n lst2)
(setq dx (distance (car lst3) (cadr lst3))
dy (distance (cadr lst3) (caddr lst3))
);setq
(if xtlst
(setq offset (list (- (car (car xtlst)) (car (car lst3)))
(- (cadr (car xtlst)) (cadr (car lst3)))
0.0
);list
offset (acet-geom-point-rotate offset
'(0.0 0.0 0.0)
(* -1.0 (angle (car lst3) (cadr lst3)))
);acet-geom-point-rotate
);setq
(setq offset '(0.0 0.0 0.0))
);if
(if (< (+ (abs dx) (abs dy)) (* 0.04 dst))
(progn
(princ "\nThe hatch object is very small in relation to the boundary data."
)
(princ "\nThe operation may take a while to complete.")
(initget "Yes No _Yes No")
(setq b (getkword "\nAre you sure you want to do this? [Yes/No] <Yes>:"))
(if (equal b "No")
(progn
(princ "\nAborting hatch...")
(exit)
);progn then
);if
);progn
);if
(setq rot (angle (car lst3) (cadr lst3))
;lst3 nil
);setq
(setq n 0)
(repeat (length lst)
(setq a (nth n lst))
(setq lst2 (append lst2
(list (do_tile_stuff2 a dx dy rot dst (car lst3) xtlst offset
)
);list
);append
);setq
(acet-spinner)
(setq n (+ n 1));setq
);repeat
lst2
);defun do_tile_stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun do_tile_stuff2 ( lst dx dy rot dst bspnt xtlst offset /
p1 p2 p3 p4 x y a b c d n j lst2 lst3 lst4 lst5
indx flag dx2 dy2
)
(if (not (equal (car lst) (last lst) 0.0001))
(setq lst (append lst (list (car lst))));setq
);if ;'(0.0 0.0 0.0)
(setq lst (rotate_pnts lst bspnt (* -1.0 rot))
p1 (acet-geom-list-extents lst)
p2 (cadr p1)
p1 (car p1)
p3 p1
p4 p2
p1 (list (- (car p1) (car bspnt))
(- (cadr p1) (cadr bspnt))
(getvar "elevation")
);list
p2 (list (- (car p2) (car bspnt))
(- (cadr p2) (cadr bspnt))
(getvar "elevation")
);list
a (+ (acet-calc-round (car p1) dx) (car bspnt))
b (+ (acet-calc-round (cadr p1) dy) (cadr bspnt))
c (+ (acet-calc-round (car p2) dx) (car bspnt))
d (+ (acet-calc-round (cadr p2) dy) (cadr bspnt))
);setq
(if xtlst
(setq dx2 (distance (car xtlst) (cadr xtlst))
dy2 (distance (cadr xtlst) (caddr xtlst))
);setq
(setq dx2 dx
dy2 dy
);setq
);if
(if (> a (car p3)) (setq a (- a dx)));if
(if (> b (cadr p3)) (setq b (- b dy)));if
(if (< c (car p4)) (setq c (+ c dx)));if
(if (< d (cadr p4)) (setq d (+ d dy)));if
(setq p1 (list a b 0.0)
p2 (list c d 0.0)
);setq
(setq n 0)
(repeat (fix (acet-calc-round (/ (- d b) dy) 1))
(setq y (+ b (* n dy)));setq
(setq lst2 nil)
(setq j 0)
(repeat (fix (acet-calc-round (/ (- c a) dx) 1))
(setq x (+ a (* j dx)));setq
(setq lst2 (append lst2 (list (list x y 0.0))));setq
(setq j (+ j 1))
);repeat the columns of this row
(setq lst3 (append lst3 (list lst2)));setq
(setq n (+ n 1))
);repeat the rows
(setq n 0)
(repeat (length lst3)
(setq lst2 (nth n lst3))

(setq j 0)
(repeat (length lst2)
(setq a (nth j lst2)
a (acet-geom-vector-add a offset)
b (polar a 0 dx2) ;rk use the dx of the xtlst here
c (polar b (/ pi 2.0) dy2) ;rk use the dy of the xtlst here
d (polar a (/ pi 2.0) dy2)
indx (list n j)
flag (member indx lst4)
);setq
(if (and (not flag)
;(= n 0)
);and
(progn
(if (setq x (poly_inters a b lst))
(setq lst4 (append lst4 (list indx))
flag T
);setq then ON the boundary
);if
);progn then
);if
(if (and (not flag)
;(= j 0)
(poly_inters a d lst)
);and
(setq lst4 (append lst4 (list indx))
flag T
);setq then ON the boundary
);if
(if (setq x (poly_inters b c lst))
(progn
(if (not flag)
(setq lst4 (append lst4 (list indx))
flag T
);setq then ON the boundary
);if
;(if (and (< (+ j 1) (length lst2))
; (not (member (list n (+ j 1)) lst4))
; );and
; (setq lst4 (append lst4 (list (list n (+ j 1)))));setq then ON the bo
undary
;);if
);progn
);if
(if (poly_inters c d lst)
(progn
(if (not flag)
(setq lst4 (append lst4 (list indx))
flag T
);setq then ON the boundary
);if
;(if (and (< (+ n 1) (length lst3))
; (not (member (list (+ n 1) j) lst4))
; );and
; (setq lst4 (append lst4 (list (list (+ n 1) j))));setq then ON the bo
undary
;);if
);progn
);if
(if (and (not flag)
(or (acet-geom-point-inside a lst dst) ;check to see if any of the po
ints are inside.
;(acet-geom-point-inside b lst dst)
;(acet-geom-point-inside c lst dst) ;double check in case 'a' is
directly ON the bounds
;(acet-geom-point-inside d lst dst)
);or
);and
(progn
(setq lst5 (append lst5 (list indx)));setq then totally inside the boundar
y
(setq flag T) ;rk added 8-21
);progn
(progn
(if (and (not flag)
(acet-geom-point-inside (car lst) (list a b c d a) (+ dst dx dy))
);and
(setq lst4 (append lst4 (list indx))
flag T
);setq
);if
);progn else
);if
(setq j (+ j 1));setq
);repeat
(acet-spinner)
(setq n (+ n 1));setq
);repeat
(setq lst nil)
(setq n 0)
(repeat (length lst4)
(setq a (nth n lst4)
b (cadr a)
a (car a)
a (nth a lst3)
a (nth b a)
a (acet-geom-point-rotate a bspnt rot)
lst (append lst (list a));base point for rectang that intersects the bound
ary
);setq
(setq n (+ n 1));setq
);repeat
(setq lst2 nil)
(setq n 0)
(repeat (length lst5)
(setq a (nth n lst5)
b (cadr a)
a (car a)
a (nth a lst3)
a (nth b a)
a (acet-geom-point-rotate a bspnt rot)
lst2 (append lst2 (list a));base point for a rectang that is within the bo
undary
);setq
(setq n (+ n 1));setq
);repeat
(list lst lst2);boundary intersecters and those totally within the boundary.
);defun do_tile_stuff2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes two points p1 and p2 and a list of points in lst.
;returns true if the segment formed by p1 and p2 intersects any of the
;segements formed by the points in lst
;
(defun poly_inters ( p1 p2 lst / len a b n flag)
(setq len (length lst))
(setq a (car lst))
(if a
(setq p1 (list (car p1) (cadr p1) (caddr a))
p2 (list (car p2) (cadr p2) (caddr a))
);setq
);if
(setq n 1)
(while (< n len)
(setq b (nth n lst));setq
(if (setq flag (inters p1 p2 a b))
(setq n len)
);if
(setq a b)
(setq n (+ n 1));setq
);while
flag
);defun poly_inters
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;returns a list comprised of sub-lists of the form:
;(boundary island1 island2 island3...)
;where each element is a list of points along the entity.
;
; - organize_islands
; - organize_islands2
;
(defun organize_islands ( ss clipitres / a b c n j lst lst2 lst3 ss2 na )
(setq lst (organize_islands2 ss clipitres))
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
b (nth 2 a)
ss2 (nth 1 a)
);setq
(if (and ss2
(equal b (* 2 (/ b 2)))
);and
(progn
(setq lst3 (list (nth 3 a)));setq
(setq j 0)
(repeat (sslength ss2)
(setq na (ssname ss2 j)
c (assoc na lst)
c (nth 3 c)
lst3 (append lst3 (list c))
);setq
(setq j (+ j 1));setq
);repeat
(setq lst2 (append lst2 (list lst3)));setq
);progn then it has islands
(progn
(if (equal b (* 2 (/ b 2)))
(setq b (list (nth 3 a))
lst2 (append lst2 (list b))
);setq then a boundary edge with no islands
);if
);progn else no islands
);if
(acet-spinner)
(setq n (+ n 1));setq
);repeat
lst2
);defun organize_islands
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes a selection set of polylines and returns a list that contains
; sub-lists, each of the form
;'(entname
; sel_set_of_islands (nil if not islands are found)
; nesting_index (even means outer edge/odd means it's an island)
; list of points along the ent
; )
;
;
;
(defun organize_islands2 ( ss clipitres / lst ss2 ss3 ss4 ss5 ss6 n j na a b c)
(setq lst (find_islands ss clipitres)
ss2 (nth 1 lst) ;polylines that contain islands
ss3 (nth 2 lst) ;polylines with no islands
ss4 (nth 3 lst) ;polylines that are islands
lst (car lst)
);setq

(setq n 0)
(repeat (sslength ss4)
(setq na (ssname ss4 n));setq
(setq j 0)
(repeat (length lst)
(setq a (nth j lst)
ss5 (cadr a)
);setq
(if (and ss5
(ssmemb na ss5)
);and
(setq a (assoc na lst)
b (list (nth 0 a)
(nth 1 a)
(+ (nth 2 a) 1) ;increment the nesting number
(nth 3 a)
);list
lst (subst b a lst)
);setq
);if
(setq j (+ j 1));setq
);repeat
(setq n (+ n 1));setq
);repeat
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
c (nth 2 a)
);setq
(if (and (setq ss5 (nth 1 a))
(equal c (* 2 (/ c 2)))
);and
(progn
(setq ss6 (ssadd))
(setq j 0)
(repeat (sslength ss5)
(setq na (ssname ss5 j)
b (assoc na lst)
);setq
(if (equal (nth 2 b) (+ (nth 2 a) 1));odd and one greater than
(setq ss6 (ssadd na ss6));setq then a valid island for this one
);if
(setq j (+ j 1));setq
);repeat
(setq b (list (nth 0 a) ss6 (nth 2 a) (nth 3 a))
lst (subst b a lst)
);setq
);progn then it's an outer edge with islands because it is even and has as a
n island ss
);if
(setq n (+ n 1));setq
);repeat
lst
);defun organize_islands2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;separate into three groups:
;1. polylines that contain islands
;2. polylines that do NOT contain islands.
;3. polylines that ARE islands
;
(defun find_islands ( ss clipitres / ss2 ss3 ss4 ss5 a na n lst lst2)
(if (not clipitres)
(setq a (acet-geom-pixel-unit));setq
(setq a clipitres);setq
);if
(setq ss2 (ssadd) ;polylines that contain islands
ss3 (ssadd) ;polylines that do NOT contain islands.
ss4 (ssadd) ;polylines that ARE islands
ss (remove_duplicated_plines ss)
);setq
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
lst2 (acet-geom-object-point-list na a)
lst2 (acet-list-remove-adjacent-dups lst2)
);setq
;(setq lst3 (append lst3 (list lst2)));setq
(setq ss5 (wp_select lst2 ss));setq
(if (and ss5
(> (sslength ss5) 0)
);and
(progn
(setq ss2 (ssadd na ss2))
(command "_.select" ss4 ss5 "")
(setq ss4 (ssget "_p"))
);progn then islands were found within na
(progn
(setq ss3 (ssadd na ss3));no islands
);progn else
);if
(setq lst2 (list na ss5 0 lst2)
lst (append lst (list lst2))
);setq
(setq n (+ n 1));setq
);repeat
(list lst ss2 ss3 ss4)
);defun find_islands
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun remove_duplicated_plines ( ss / pre_sel2 na lst lst2 n ss2)
;local function
(defun pre_sel2 ( lst / lst2 n a)
(setq n 0)
(repeat (length lst)
(setq a (nth n lst)
a (list (acet-calc-round (car a) 0.00001)
(acet-calc-round (cadr a) 0.00001)
);list
);setq
(setq lst2 (append lst2 (list a)));setq
(setq n (+ n 1));setq
);repeat
lst2
);defun pre_sel2
(setq ss2 (ssadd))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
;lst (acet-geom-vertex-list na)
lst (acet-geom-object-point-list na nil)
lst (pre_sel2 lst)
);setq
(if (not (member lst lst2))
(setq ss2 (ssadd na ss2)
lst2 (append lst2 (list lst))
);setq
);if
(setq n (+ n 1));setq
);repeat
ss2
);defun remove_duplicated_plines

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun wp_select ( lst ss / na ss2 ss3 n)
(if (setq ss2 (ssget "_wp" lst '((0 . "*POLYLINE"))));setq
(progn
(if (> (sslength ss) (sslength ss2))
(setq ss3 ss2
ss2 ss
ss ss3
);setq
);if
(setq ss3 (ssadd))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n))
(if (ssmemb na ss2)
(setq ss3 (ssadd na ss3))
);if
(setq n (+ n 1));setq
);repeat
(if (equal (sslength ss3) 0)
(setq ss3 nil)
);if
);progn then
);if
ss3
);defun wp_select
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ave_y ( lst / n a)
(setq a 0)
(setq n 0)
(repeat (length lst)
(setq a (+ a (cadr (nth n lst))));setq
(setq n (+ n 1));setq
);repeat
(/ a (float (length lst)))
);defun ave_y
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun rotate_pnts ( lst p1 ang / a n lst2)
(setq n 0);setq
(repeat (length lst)
(setq a (nth n lst)
a (acet-geom-point-rotate a p1 ang)
lst2 (append lst2 (list a))
);setq
(setq n (+ n 1));setq
);repeat
lst2
);defun rotate_pnts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun screen_sel ( flag / p1 p2 ss)
(setq p1 (acet-geom-view-points)
p2 (cadr p1)
p1 (car p1)
);setq
(if flag
(setq ss (ssget "_c" p1 p2 '((-4 . "<OR")
(0 . "ELLIPSE")
(0 . "TEXT")
(0 . "ATTDEF")
(0 . "MTEXT")
(-4 . "OR>")
)
);ssget
);setq
(setq ss (ssget "_c" p1 p2));setq else
);if
ss
);defun screen_sel
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;creates polyline rectangles around text objects in ss
;and creates polyline ellipses in place of ellipses.
;Returns a list of 2 elements
;each element will be a selection set or nil
;i.e. '(ellipse_ss, polyline_ss)
;
(defun pre_boundary ( ss ss3 ss4 / ss5 a p1 lst j na na2 e1 n
);args and locals
(setq na2 (entlast))
(if (not ss3) (setq ss3 (ssadd)))
(if (not ss4) (setq ss4 (ssadd)))
(setq ss5 (ssadd))
(if ss
(progn
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(cond
((equal "ELLIPSE" (cdr (assoc 0 e1)))
(acet-ucs-cmd (list "_ob" na))
(setq ss3 (ssadd na ss3)
ss5 (ssadd na ss5)
lst (acet-geom-object-point-list na #clipitres) ;using a glob
al here
);setq
(command "._pline")
(setq j 0);setq
(repeat (length lst)
(setq a (nth j lst))
(command (nth j lst))
(setq j (+ j 1));setq
);repeat
(command "")
(acet-ucs-cmd (list "_p"))
);cond #1
((equal "MTEXT" (cdr (assoc 0 e1)))
(acet-ucs-to-object na)
(setq p1 (acet-geom-object-point-list na nil));setq
(command "_.pline" (car p1) (cadr p1) (caddr p1) (nth 3 p1) "_cl")
(acet-ucs-cmd (list "_p"))
);cond #2
((or (equal "TEXT" (cdr (assoc 0 e1)))
(equal "ATTDEF" (cdr (assoc 0 e1)))
);or
(acet-ucs-cmd (list "_ob" na))
(setq p1 (acet-geom-object-point-list na nil));setq
(command "_.pline" (car p1) (cadr p1) (caddr p1) (nth 3 p1) "_cl")
(acet-ucs-cmd (list "_p"))
);cond #3
);cond close
(setq n (+ n 1));setq
);repeat
(if (not na2)
(setq na2 (entnext))
);if
(while (setq na2 (entnext na2))
(setq ss4 (ssadd na2 ss4))
);while
;(setq ss4 (acet-ss-new na2))
(if (and ss5
(> (sslength ss5) 0)
);and
(acet-ss-visible ss5 1)
);if
);progn then
);if
(list ss3 ss4)
);defun pre_boundary
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
;
(defun get_boundary_plines ( / underscore na a ss ss2 ss3 ss4)
;local function that adds an underscore to string provided as argument
(defun underscore ( a /)
(if (and a
(equal 'STR (type a))
(not (equal "_" (substr a 1 1)))
);and
(setq a (strcat "_" a))
);if
a
);defun underscore
(princ "\nSelecting visible objects for boundary detection...")
(setq ss (screen_sel T))
(if ss
(setq ss3 (pre_boundary ss ss3 ss4)
ss4 (cadr ss3)
ss3 (car ss3)
);setq
);if
(princ "Done.\n")
(command "_.-boundary" "_a" "_o" "_p" "_x" "")
(if (not (setq na (entlast)))
(setq na (entnext))
);if
(if (cadr (assoc "HIGHLIGHT" (car acet:sysvar-list)))
(setvar "highlight" (cadr (assoc "HIGHLIGHT" (car acet:sysvar-list))))
(setvar "highlight" 1)
);if
(setq a T)
(command "_.-boundary")
(while (and a
(wcmatch (getvar "cmdnames") "*BOUNDARY*")
);and
(initget "Advanced _Advanced")
(setq a (getpoint "\nSpecify an option [Advanced options] <Internal point>: "));
setq
(if (equal a "Advanced")
(progn
(command "_A")
(while (not (equal a "_x"))
(initget "Boundary Island eXit _Boundary Island eXit")
(setq a (getkword "\nEnter an option [Boundary set/Island detection/eXit]
<eXit>: "))
(if (or (equal a "eXit")
(not a)
);or
(setq a "_x")
(setq a (underscore a))
);if
(command a)
(cond
((equal a "_Boundary")
(progn
;;(princ "\nSpecify candidate set for boundary")
(initget "New Everything _New Everything")
(setq a (getkword "\nSpecify candidate set for boundary [New/Everything
] <Everything>: "))
(if (not a)
(setq a "_Everything")
(setq a (underscore a))
);if
(command "_n" "" "_x" "");get out of the boundary command
(if (equal a "_New")
(progn
(setq ss2 (ssget));setq
(princ "\nProccessing objects for boundary detection...")
(if ss2
(progn
;(command "_n" "" "_x" "")
(setq ss3 (pre_boundary ss2 ss3 ss4)
ss4 (cadr ss3)
ss3 (car ss3)
);setq
(command "_.-boundary" "_A" "_B" a ss2 "")
);progn
(progn
(princ "\nNothing found.")
(command "_.-boundary" "_A")
);progn else
);if
);progn
(progn
(if (equal a "_Everything")
(progn
(princ "\nSelecting everything visible...")
(setq ss2 (screen_sel T))
(if ss2
(progn
;(command "_n" "" "_x" "")
(setq ss3 (pre_boundary ss2 ss3 ss4));setq
(setq ss4 (cadr ss3)
ss3 (car ss3)
);setq
);progn then
;(princ "\nNothing found")
);if
(princ "\nAnalyzing the selected data...")
(command "_.-boundary" "_A" "_B" a)
);progn then
);if
);progn
);if
(princ "Done.")
);progn
);cond #1 Boundary
((equal a "_Island")
(progn
(initget "Yes No _Yes No")
(setq a (getkword "\nDo you want island detection? [Yes/No] <Yes>: "))
(if (not a)
(setq a "_y")
(setq a (underscore a))
);if
(command a)
(if (equal a "_No")
(progn
(initget "Nearest +X -X +Y -Y Angle _Nearest +X -X +Y -Y Angle")
(setq a (getkword "\nEnter an option [Nearest/+X/-X/+Y/-Y/Angle] <
Nearest>: "))
(if (not a)
(setq a "_Nearest")
(setq a (underscore a))
);if
(command a)
);progn
);if
);progn
);cond #2
);cond close
);while
);progn then
(progn
(cond
((and a
(equal 'LIST (type a))
);and
(command a)
(princ "\n")
(if (acet-str-m-find " SELECTED" (xstrcase (getvar "lastprompt")))
(progn
(initget "Yes No _Yes No")
(setq a (getkword "\nDo you really want to do this? [Yes/No] <No> ")
)
(if (equal "Yes" a)
(command "_y")
(command "_n")
);if
);progn then
);if
);cond #1
((not a)
(command "")
);cond #2
);cond close
);progn
);if
);while

(while (wcmatch (getvar "cmdnames") "*BOUNDARY*")


(princ (strcat "\n*Unable to create polyline boundary*"
"\nBoundary detection in this command does not support certain"
"\nobject types. See help on \"Superhatch\" for details."
);strcat
);princ
(command nil)
);while
(if (and ss3
(> (sslength ss3) 0)
)
(acet-ss-visible ss3 0) ;turn ellipses back on
);if
(if (and ss4
(> (sslength ss4) 0)
)
(command "_.erase" ss4 "")
);if
(if (not na)
(setq na (entnext))
);if
(if (and (setq ss (acet-ss-new na))
(> (sslength ss) 0)
);and
(progn
(command "_.select" ss "")
(setq ss (ssget "_p" '((0 . "*POLYLINE"))))
(if (not ss)
(progn
(setq ss nil)
(princ "\nUnable to create polyline boundary.")
);progn
);if
);progn then
(setq ss nil)
);if
(setvar "highlight" 0)
ss
);defun get_boundary_plines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun do_boundary_stuff ( clipitres ss / a x n lst lst2 lst3)
(if (and ss
(> (sslength ss) 0)
);and
(progn
(setq lst (organize_islands ss clipitres));setq
(command "_.erase" ss "")
(setq n 0)
(repeat (length lst)
(setq a (nth n lst))
(acet-spinner)
(if (> (length a) 1)
(setq a (scan_islands a)
lst3 (cadr a)
a (car a)
x (acet-geom-list-extents (append x lst3))
);setq
(setq x (acet-geom-list-extents (append x (car a))));setq
);if
(setq lst2 (append lst2 a));setq
(setq n (+ n 1));setq
);repeat
);progn then
(princ "\nNo boundary information found.")
);if
(list lst2 x)
);defun do_boundary_stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun scan_islands ( lst / n a b lst2 lst3 lst4 lst5 mnmx flag)
(setq n 0)
(repeat (length lst)
(setq lst2 (nth n lst))
(if (equal (car lst2) (last lst2))
(setq lst2 (cdr lst2))
);if
(setq b (acet-geom-list-extents lst2)
a (car (car b))
a (assoc a lst2)
a (vl-position a lst2)
lst3 lst2
);setq
(repeat a
(setq lst3 (append (cdr lst3) (list (car lst3))));setq
);repeat
(setq lst3 (append lst3 (list (car lst3)))
lst (subst lst3 (nth n lst) lst)
lst4 (append lst4 (list b))
lst5 (append lst5 (find_activity_points lst3))
mnmx (acet-geom-list-extents (append mnmx b))
);setq
(setq n (+ n 1));setq
);repeat
(setq lst5 (acet-list-isort lst5 0));setq

;- lst is a list of lists. Each is a closed loop of bounding points. The


; first element of each is the coord with the minimum x value.
;- lst4 is a list of sublists that corrispond to the extents of each loop in lst
.
;- lst5 is a single list of points that contains all activity points
; sorted with respect to x.;

(setq lst2 nil);setq


(setq a (car lst5));setq
(setq n 1);setq
(repeat (- (length lst5) 1)
(setq b (nth n lst5));setq
(setq lst2 (append lst2
(list (cross_segs n a b lst lst4))
);append
);setq
(setq a b);setq
(acet-spinner)
(setq n (+ n 1));setq
);repeat a and b are delta x segements;

(setq lst3 nil


lst4 nil
lst5 nil
flag T
);setq
(while flag
(setq lst4 nil
flag nil
);setq
(setq n 0)
(while (< n (length lst2))
(setq lst3 (nth n lst2)
a (car lst3)
b (cadr lst3)
);setq
(if (and a b)
(progn
(if (not flag)
(progn
(if (not lst4)
(setq lst4 (list a b)
lst3 (cdr (cdr lst3))
);setq
(progn
(if (equal (last (car lst4)) (car a) 0.0001)
(setq lst4 (list (append (car lst4) a)
(append (cadr lst4) b)
);list
lst3 (cdr (cdr lst3))
);setq then
(setq lst4 (append (reverse (car lst4)) (cadr lst4))
lst5 (append lst5 (list lst4))
lst4 nil
flag T
);setq
);if
);progn else
);if
);progn then
);if
(setq lst3 (reverse lst3)
lst2 (subst lst3 (nth n lst2) lst2)
);setq
);progn then
);if
(setq n (+ n 1));setq
);while
(if lst4
(setq lst4 (append (reverse (car lst4)) (cadr lst4))
lst5 (append lst5 (list lst4))
lst4 nil
flag T
);setq
);if
);while
;(setq n 0)
;(repeat (length lst5)
;(pline (list (cons 62 (+ n 1))
; (acet-list-remove-adjacent-dups (nth n lst5))
; );list
;);pline
;(setq n (+ n 1));setq
;);repeat
(list lst5 mnmx)
);defun scan_islands
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Takes: lower and upper x bounding points and
; a list of point lists that form boundary loops.
;Returns: a list of sub lists.
;each sub-list is a list of coords that form
;a the portion of a boundary loop that passes between
;the lower and upper x bounds specified in the first two args.
;
(defun cross_segs ( j x1 x2 lst lst2 / lst3 a b n )
(setq n 0);setq
(repeat (length lst2)
(setq a (nth n lst2)
b (cadr a)
a (car a)
);setq
(if (or (and (>= (car a) (car x1))
(<= (car a) (car x2))
);and then a is between x1 and x2
(and (>= (car b) (car x1))
(<= (car b) (car x2))
);and then b is between x1 and x2
(and (>= (car x1) (car a))
(<= (car x1) (car b))
);and then x1 is between a and b, so x2 must be also
);or
(progn
(setq a (cross_segs3 x1 x2 (nth n lst) a b)
lst3 (append lst3 a)
);setq
);progn then there is an intersection somewhere
);if
(setq n (+ n 1));setq
);repeat
(if lst3
(progn
(setq lst3 (acet-list-isort lst3 0)
lst2 nil
);setq
(setq n 0)
(repeat (length lst3)
(setq a (nth n lst3)
lst2 (append lst2 (cdr a))
);setq
(setq n (+ n 1));setq
);repeat
(setq lst3 lst2
lst2 nil
);setq
);progn
);if
lst3
);defun cross_segs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun cross_segs3 ( x1 x2 lst y1 y2 /
point_in vec2
x1 x2 x3 x4 a b c d flag flag2 pnt lst2 lst3 tmp cnd n j
)
(defun point_in ( a x1 x2 / flag)
(cond
((and (> (car a) (car x1))
(< (car a) (car x2))
);and
(setq flag 0);setq
);
);cond
flag
);defun point_in
(defun vec2 ( lst / )
(while (and lst
(equal (car (car lst)) (car (cadr lst)) 0.0001)
);and
(setq lst (cdr lst))
);while
(setq lst (reverse lst))
(while (and lst
(equal (car (car lst)) (car (cadr lst)) 0.0001)
);and
(setq lst (cdr lst))
);while
(setq lst (reverse lst))
lst
);defun vec2
(setq x1 (list (car x1) (cadr y1) 0.0)
x3 (list (car x1) (cadr y2) 0.0)
x2 (list (car x2) (cadr y1) 0.0)
x4 (list (car x2) (cadr y2) 0.0)
a (car lst)
flag (point_in a x1 x2)
);setq
(setq n 1)
(while (< n (length lst))
(setq b (nth n lst)
flag2 (point_in b x1 x2)
c (inters a b x1 x3)
d (inters a b x2 x4)
pnt nil
);setq
(if (and (not lst2)
(or flag
(equal (car a) (car x1) 0.0001)
(equal (car a) (car x2) 0.0001)
);or
);and
(setq lst2 (list a))
);if
(if (and c d)
(progn
(if (< (distance a c) (distance a d))
(setq pnt (list c d))
(setq pnt (list d c))
);if
);progn then
(progn
(if (and c
(not (equal c (last lst2) 0.0001))
);and
(setq pnt (list c)
cnd 1
);setq then
(progn
(if (and d
(not (equal d (last lst2) 0.0001))
);and
(setq pnt (list d)
cnd 2
);setq then
);if
);progn else
);if
(if (and (not (member b pnt))
flag2
);and
(setq pnt (append pnt (list b))
cnd 3
)
);if
);progn else
);if

(setq j 0)
(repeat (length pnt)
(setq tmp (nth j pnt))
(if (not (equal tmp (last lst2) 0.0001))
(setq lst2 (append lst2 (list tmp)))
);if
(setq j (+ j 1));setq
);repeat
(if (and (not flag2)
lst2
(setq lst2 (vec2 lst2))
(> (length lst2) 1)
);and
(progn
(if (< (car (last lst2)) (car (car lst2)))
(setq lst2 (reverse lst2))
);if
(setq lst2 (list (+ (cadr (car (acet-geom-list-extents lst2))) (ave_y lst2)
) ;
lst2
);list
lst3 (append lst3 (list lst2))
lst2 nil
);setq
);progn then
);if
(setq flag flag2
a b
);setq
(setq n (+ n 1));setq
);while
(if (and lst2
(setq lst2 (vec2 lst2))
(> (length lst2) 1)
);and
(progn
(if (< (car (last lst2)) (car (car lst2)))
(setq lst2 (reverse lst2))
);if
(setq lst2 (list (+ (cadr (car (acet-geom-list-extents lst2))) (ave_y lst2
)) ;
lst2
);list
lst3 (append lst3 (list lst2))
lst2 nil
);setq
);progn then
);if
lst3
);defun cross_segs3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun find_activity_points ( lst / dx n a b c lst2)
(setq a (car lst)
lst2 (list a)
dx 1.0
);setq
(setq n 1)
(repeat (- (length lst) 1)
(setq b (nth n lst)
c (- (car b) (car a))
);setq
(if (not (equal c 0.0))
(progn
(if (not (equal (/ dx c)
(/ (abs dx) (abs c))
);equal
);not
(setq lst2 (append lst2 (list a)));setq
);if
(setq dx c);setq
);progn then the change in x is not 0
);if
(setq a b);setq
(setq n (+ n 1));setq
);repeat
(acet-list-isort lst2 0)
);defun find_activity_points
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;takes a default block name and prompts the user to enter a block name.
;A block name is returned.
;
(defun get_blockname ( bna / a b c d)
(setq a (xstrcase bna))
(if (equal "*" (substr a 1 1))
(setq a (substr a 2))
);if
(if (not (equal a ""))
(setq b (acet-str-format "\nSpecify block name <%1>: " a ));setq then
(setq b "\nSpecify block name: ");setq else
);if
(setq c (getstring T b))
(if (equal c "~")
(progn
(if (setq d (ACET-FILE-READDIALOG b a "dwg;dwt" "Acet:SuperHatch" 1664));se
tq
(setq c (acet-filename-path-remove (acet-filename-ext-remove d)));setq
(exit)
);if
);progn
(progn
(if (or (not c)
(equal c "")
);or
(setq c bna)
);if
);progn
);if
(setq c (acet-str-space-trim (xstrcase c)))
(if (and (not d)
(not (member c (acet-table-name-list "block")))
);and
(progn
(if (equal c (acet-filename-ext-remove c))
(setq c (strcat c ".dwg"))
);if
(if (not (findfile c))
(progn
(setq c (strcat (acet-filename-ext-remove c) ".dwt"))
(if (not (findfile c))
(progn
(alert "Cannot find that block!")
(setq c (get_blockname bna))
);progn
);if
);progn then try to find a template
);if
);progn then not in the block table
(progn
(if d
(setq c d)
);if
);progn else
);if
c
);defun get_blockname

(acet-autoload2 '("Clipit.lsp" (c_clipit na lst)))


(acet-autoload2 '("Clipit.lsp" (wipeout_clipit na lst)))
(acet-autoload2 '("Ddins2.lsp" (ddins2)))
(princ) c«õ%dÿH`¾Ip-%½G á [ûa:Gt ¦ðª*z¨+q¨ÿn d }Ç:= U`ä½Jð EU ±x¾Ú*/Àý&-SWZ ¤Àwµ#Þ8Ùd9¡
ùñK#Óؗ<qîXç7J ÝüÄÒ ¦¶mÅwÁc14.#£)| =÷KøüARÿ¸ñØ} â 1 f g« ¹Â2 IQ~G¼ãÄ Î  —ú H8Ï1BàÝ¿à ª
¥e KÑþG¼'¤ uÍm ÝO#jÛÌ  iQ` ¹ ¸¬ 2ê,  »qï)éIh Ë c ÂU‾Ê
Á Ãe¹®¢¢³
!~ ºNÊã ðå DHÀ YBñØ9ròâÐæíqØW4KÑY $ ;ê:)= &ç_ *=Ë5 Æ @x E‾÷U[%egé ¤ Ü ¸NL_Â:GN $¡Sdb,
Èݨë¤<
= ï _¿| lש©z6HDa 1^ÓIØ4©´ôÉ£L\yþ¸÷ ÜJø,Ù¶e ½ » vÑÈØ^ùÍU³i2iéÁ‾ §þ¨÷¤ô$ìÚ] ¦¢*ĸù&áZH
[
áíñæz½]çugéQ Ì ,ºî`]§‾‾ w öí¡½º¬/—¥9 Z ¸ÚU÷.Ò p¹©dZ»Ú‾o%¼= ÒÒ§LHA ãÞ1X ‾P? [Ç@ m ¸Þ×
X6e‾¶ BZz4 SæѨw ª1³'lû¶Í Ø|K ýrSîwÕájýæÐnÖÙëüN |"åYÂ+Ý û[ü 8rQ÷ú'$| ìw5FòHÁy(Ç@l¬ó
;;;
;;; SSX.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;; DESCRIPTION
;;; SSX.LSP
;;;
;;; "(SSX)" - Easy SSGET filter routine.
;;;
;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
;;; to create a "previous" selection set or type "(SSX)" in response to
;;; any "Select objects:" prompt. You may use the functions "(A)" to add
;;; entities and "(R)" to remove entities from a selection set during
;;; object selection. More than one filter criteria can be used at a
;;; time.
;;;
;;; SSX returns a selection set either exactly like a selected
;;; entity or, by adjusting the filter list, similar to it.
;;;
;;; The initial prompt is this:
;;;
;;; Command: ssx
;;; Select object/<None>: (RETURN)
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
;;;
;;; Pressing RETURN at the initial prompt gives you a null selection
;;; mechanism just as (ssx) did in Release 10, but you may select an
;;; entity if you desire. If you do so, then the list of valid types
;;; allowed by (ssget "x") are presented on the command line.
;;;
;;; Select object/<None>: (a LINE selected)
;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
;;;
;;; At this point any of these filters may be removed by selecting the
;;; option keyword, then pressing RETURN.
;;;
;;; >>Layer name to add/<RETURN to remove>: (RETURN)
;;;
;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
;;;
;;; If an item exists in the filter list and you elect to add a new item,
;;; the old value is overwritten by the new value, as you can have only
;;; one of each type in a single (ssget "x") call.
;;;
;;;--------------------------------------------------------------------------;
;;;
;;; Find the dotted pairs that are valid filters for ssget
;;; in entity named "ent".
;;;
;;; ssx_fe == SSX_Find_Entity
;;;
(defun ssx_fe (/ data fltr ent)
(setq ent (car (entsel "\nSelect object <None>: ")))
(if ent
(progn
(setq data (entget ent))
(foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
(if (assoc x data)
(setq fltr
(cons (assoc x data) fltr)
)
)
)
(reverse fltr)
)
)
)
;;;
;;; Remove "element" from "alist".
;;;
;;; ssx_re == SSX_Remove_Element
;;;
(defun ssx_re (element alist)
(append
(reverse (cdr (member element (reverse alist))))
(cdr (member element alist))
)
)
;;;
;;; INTERNAL ERROR HANDLER
;;;
(defun ssx_er (s) ; If an error (such as CTRL-C) occurs
; while this command is active...
(if (/= s "Function cancelled")
(princ (acet-str-format "\nError: %1" s))
)
(if olderr (setq *error* olderr)) ; Restore old *error* handler
(princ)
)
;;;
;;; Get the filtered sel-set.
;;;
;;;
(defun ssx (/ olderr fltr)
(gc) ; close any sel-sets
(setq olderr *error*
*error* ssx_er
)
(setq fltr (ssx_fe))
(ssx_gf fltr)
)
;;;
;;; Build the filter list up by picking, selecting an item to add,
;;; or remove an item from the list by selecting it and pressing RETURN.
;;;
;;; ssx_gf == SSX_Get_Filters
;;;
(defun ssx_gf (f1 / t1 t2 t3 f1 f2)
(while
(progn
(cond (f1 (prompt "\nCurrent filter: ") (prin1 f1)))
(initget
"Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
(setq t1 (getkword
"\nEnter filter option [Block name/Color/Entity/Flag/LAyer/LType/Pick/St
yle/Thickness/Vector]: "))
)
(setq t2
(cond
((eq t1 "Block") 2) ((eq t1 "Color") 62)
((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
((eq t1 "LType") 6) ((eq t1 "Style") 7)
((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
((eq t1 "Vector") 210)
(T t1)
)
)
(setq t3
(cond
((= t2 2) (getstring "\n>>Enter block name to add <RETURN to remove>:
"))
((= t2 62) (initget 4 "?")
(cond
((or (eq (setq t3 (getint
"\n>>Enter color number to add [?] <RETURN to remove>: ")) "?")
(> t3 256))
(ssx_pc) ; Print color values.
nil
)
(T
t3 ; Return t3.
)
)
)
((= t2 0) (getstring "\n>>Enter entity type to add <RETURN to remove>:
"))
((= t2 8) (getstring "\n>>Enter layer name to add <RETURN to remove>: "
))
((= t2 6) (getstring "\n>>Enter linetype name to add <RETURN to remove>
: "))
((= t2 7)
(getstring "\n>>Enter text style name to add <RETURN to remove>: ")
)
((= t2 39) (getreal "\n>>Enter thickness to add <RETURN to remove>: "
))
((= t2 66) (if (assoc 66 f1) nil 1))
((= t2 210)
(getpoint "\n>>Specify extrusion Vector to add <RETURN to remove>: ")
)
(T nil)
)
)
(cond
((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
((and f1 (assoc t2 f1)) ; already in the list
(if (and t3 (/= t3 ""))
;; Replace with a new value...
(setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
;; Remove it from filter list...
(setq f1 (ssx_re (assoc t2 f1) f1))
)
)
((and t3 (/= t3 ""))
(setq f1 (cons (cons t2 t3) f1))
)
(T nil)
)
)
(if f1 (setq f2 (ssget "_x" f1)))
(setq *error* olderr)
(if (and f1 f2)
(progn
(princ (acet-str-format "\n%1 found. " (itoa (sslength f2))))
f2
)
(progn (princ "\n0 found.") (prin1))
)
)
;;;
;;; Print the standard color assignments.
;;;
;;;
(defun ssx_pc ()
(if textpage (textpage) (textscr))
(princ "\n ")
(princ "\n Color number | Standard meaning ")
(princ "\n ________________|____________________")
(princ "\n | ")
(princ "\n 0 | <BYBLOCK> ")
(princ "\n 1 | Red ")
(princ "\n 2 | Yellow ")
(princ "\n 3 | Green ")
(princ "\n 4 | Cyan ")
(princ "\n 5 | Blue ")
(princ "\n 6 | Magenta ")
(princ "\n 7 | White ")
(princ "\n 8...255 | -Varies- ")
(princ "\n 256 | <BYLAYER> ")
(princ "\n \n\n\n")
)
;;;
;;; C: function definition.
;;;
(defun c:ssx ()
(ssx)
(princ)
)
(princ "\n\tType \"ssx\" at a Command: prompt or ")
(princ "\n\t(ssx) at any object selection prompt. ")

(princ)
 Oö9ôÌÍh0k57ÖpÕ×Vc|'GvÏÞêËÒüxr ?ÕÓ£ð A3øw+/7Ç»¿ Uð D òÌÙÚ, É
0[§¢
ý æüòõ!~
=i çn=;&Ã$
ý `a/*Ìoo©cÉ
SÉ\»tÚ!ü4ûµlËR©¤÷
 S¶7> È2
Ï*7çÙ@ êhwU"
¡2oAâ!Dô½í@
< Aê2nÚ
lûó,^ÊKUñwÀ.
¥‾ª^gÜV¦D²
izÁá̳.
N9öÆúWÑo¹¡®
]Q^V̽åSϺ¬¨ æUù
¹lç ã²½¨0‾µ
ÓÍ
zprDżýÊΩ±~8
ßÛÁÎ LLÅÁÞß«ôì‾áTêénc{ c2 °ßõ Ê°óOÒ1Í[v¶¢?{²GêÁÎþo ×Ý¢ ä°³ÇRU@ÆÁ~ ªHv ¾ {pxwgræª $ì ä'
ÿäÈ Úµ;aO/va "ì ]8"ì ]8"ì ]8"ì ]8"ì ]8"ì ]8 Æô9 óã"Þ5ÿQò9qëÜïÔi Ðc6jϼ d×:ó®w´Õä¹wVN ì
VzA¥%2Ek}ÈïL;®»À
6$ ä¾úþpßÍ}ç
ºmÐ ÛV'‾*/+ö
ó¹ç¸d {ó{æZ-vp¾
¶àçÿÙ/󧦲,IV[ep
y ÅD¾Ñõyìk;
¥p\ F[eÑ
ÅN±o
ÄR[eìÌ
ÔÜpT
Ê-̹N}"Úí ôTÍ3=%kB
4®þù Ù7²²»TuWÍüGó
9yS
B‾_a¥â÷ÇÁ
î_×MOcà<}|—¾Ú
V ß û ñܾÍõ\Ʊ
¿×?Â Ò b±»#ãb£V~ÅZ
v2)dG2 ÿ¬
|4dÐóüû{$í_U
`Ç? ó;þÍw
o—nݲøà^Ä
í»±ìß
»êæÁºÜ®Ù
çxÊ¡
©«+óñÉ
U#ÂCÑæp6
ÃÜ^iàaú©¤
d 7½(«(»
;ñyÒÑ
ÈX8s*  í¼
þã+xÂt
û åQñÔñ ö ××/4ÍÍy
Ø~Rdòó²æ.ð«Åþ§Ôà <±1Q+Çã < á»v®û¡ ²ãú RßÆþI¶»Õg°#—³.¥oÝò³|y¶{@;Û°ÿæߥõþÚÚ¾¶ØÙPÛWx¤. ýqÉM¸¶
ÙTUñàeU±Ç"mªå&M
Úþüɽ U«pØ+Ø  p¾º°E»ö Â]a!+Á¶åw8NÚÉcM/Ê(v b§ØW =!~O}uqD ³È£ñº®üÒ S(þ +½ åpŸ}ú5‾âAFZ
°Ã Cä°¸|ñtc- À é¹ùÝ F>—¾º$:* 9S0è¡ãñÊ-ÌyUã =Y җn ¨(» veyì»Fa¡!u¼¢ ¤‾á {Iÿ ë`ÐØÿSû
;Év¦¶Sìû:Õv bßèØɽþç^;OJ
.'
{ÎÕs<?/«¡¦Ôe
ïjs]±ÃZue~dD:s:
^ ÃÙÌ\
ý ? Lçöé\JÞCÐE'l>.¹u=ëì
/ ; žû*¾ªåþ&v‾E´Pdx÷ mjUØ xLI?ôõ>ÔR×áÿùÜsgR?ù w%3 Ï®d ØÙ /+2TûFÅN±û (v Ý D±Sìþ# b_sÕñ
3>ÈËÂÊ: á ~\  b§Øý;Ú¨í»£#H©/¼wµaQlLSÿq(¼®+G Æéd¦3(h;‾âÁù³'ÈkVfzãb
v< 㶶7ò¹W2Ó ÎæÒ l¬ÅN±ÿNìKo27¿» Ø @  Í£éEYÎÕsø)?/«¡ÆÉÿÇe /:ÉT>º{6=% óôñ]X«| —% vò>¨cßÄï
'E°;,Z*Oj
æ=¹ÿ²ªØ]
»UKåIQì^Ä>nÓQyR
áÖW .ÂþÓ«ÇØõ¾ a H²;d`ö9‾|S
^H êÊüЫÎlR½
Á ÷ c¼Ï`ÿL¶{
±üïשÿþ2É
{ìîÈ¥wÚcG
-`÷~¬ Rêf£Ê:¦
ì»ïaw-2~x
r~ùàøõÃ8
avZÛ)vcÇ+ùÕí
äØÇ  ×»Ï_ }
*A{k{[ Í¢ t½îÒÄB t|U¨3f£RÐÑÞÜüF©Ôj 5jï ` r}U v Ũ
³AóØ'Æ|UHxë
:Z} ¿
Z"Øg&;*
ß(FY=í
T ;—A6h
 @À
µâ®Îöö6ìnZÎ
û¸ÉW
F,pH¶Èµµª
»
ªb1©;
+ Cêho³-ÖÅ>iÙfå¨L
!cË
u!ØÑ-b <_E
(v/b¦'ÌxeÆÀ
,`ï 7°ÏÌaoc°
ùªPg¬&ËOî
¨SØÖÚ
º»D
»{gfq
ݍQ Ød´Jìºn±¨££`»jÅØõ=Ýb¡P
¸k¾ÑÝ50ÐËx2á0" [§a b I{{»
)ôZÚDì°#FéD
²©gD"&l
SOOW N_
ª÷³62@¥
ÆA F [Í:¤¢PØ1n3| µ;l´Gä2b
$ãøÜdPÃ
Â,fmÌ ´ t çb LÊ83;e ñ ÉÕíåo±ï`»
»Û S°A; <¸a® Ò« û LÖ×+A%Áö—3 hã. Í Ê d{?ëÐi(Ú Vd J)
:¬fýèÈ b—1Ìa3¢="$Öe}â.Ѥc 1þ~Æ>fÔÀ N£Àø¹Yp J¦ÆÍ8cHCÚÛÓÜ ûã ×AY¿«ÛË ÞÂD â ¢jÐ+Ù ¹Ç  ´
**R‾z®8×>¼µã+ÀW«ä B Í¢W  D (ø  64Øß-îB W;ÂlÒÀ*ÞÜ,NÚ ü Á 4¤Ò
sAf S ÃæÐ` «ÛË Þ Û§KÔ )þÏ~ n§ kaôý
;; tblname.lsp - table name functions
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;; Use, duplication, or disclosure by the U.S. Government is subject to
;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;; (Rights in Technical Data and Computer Software), as applicable.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;acet-ui-table-name-get -
;Prompts for a name of a symbol table record with a dialog or at the command lin
e.
; i.e layer name block name ...etc.
;Takes a list containing of a variable number of arguments...
;
; title - title for dialog/command prompt
;
; default - default value
;
; tblname - name of symbol table (i.e. layer block ...etc.)
;
; flags - Sum of the following.
; 0 - must select existing name
; 1 - allow entry of a new name
; 2 - dis-allow externally referenced records (apply only to symbol ta
ble names)
; 4 - Allow only items that match the ssget style filter provided in f
lt
; Note: If this flag is set then flag 1 will be ignored and users
will
; not be allowed to enter a new or non existant name.
; 8 - dis-allow object selection option (Pick button or "=" at command
line).
; 16 - allow "bylayer" and "byblock" entries (where applicable).
; Note: This flag applies only when used with one of the following
tables:
; "ltype" "acad_plotstylename"
; 32 - Multiple select flag.
; Notes: Should selection be allowed?
; Should the edit box be enabled?
; Default value will be ignored when this flag is set.
;
; flt - a list of sub-lists that contain ssget-style filters.
; Each sub-list is in the form: (filterlist "message") ...
; where 'filterlist' is an ssget filter and 'message' is what gets
; displayed if the user selects an item that does not match the coorispond
ing
; filter.
;
; helpfile - optional help file
;
; helptopic - string specifies help topic to display when help button on dialog
is pressed.
;
(defun acet-ui-table-name-get ( alst / a )
(acet-arxload-or-bust "acetutil.arx")
(acet-arxload-or-bust "acapp.arx")
;(acet-autoload '("acetflt.lsp" "(bns_tbl_match tblname flt)"))
;(acet-autoload '("acetflt.lsp" "(bns_filter_match elist flt)"))

(if (or (= 0 (getvar "cmddia"))


(= 4 (logand 4 (getvar "cmdactive")))
);or
(setq a (acet-ui-table-name-get-cmd alst))
(setq a (acet-ui-table-name-get-dlg alst))
);if
a
);defun acet-ui-table-name-get
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
(defun acet-ui-table-name-get-dlg ( alst / title def tblname flags flt helpfile
helptopic
selected-names list-pick check-name c
heck-names
iv n lst a b names msg lst2 ans flag
helpstr
)
;---------------------Local function-------------------
(defun selected-names ( lst / nlst n names )
(setq nlst (get_tile "name_list")
nlst (acet-str-to-list " " nlst)
nlst (mapcar 'atoi nlst)
);setq
(foreach n nlst
(setq names (cons (nth n lst) names));setq
);foreach
(setq names (reverse names))
);defun selected-names

;---------------------Local function-------------------
(defun list-pick ( val reason lst flags / names )
(set_tile "error" "")
(setq names (selected-names lst))
(if (/= 32 (logand 32 flags))
(progn ;; single select
(set_tile "name" (car names))
(if (equal reason 4) ;; double click
(done_dialog 1) ;; then dismiss the dialog
);if
);progn then single select
);if
names
);defun list-pick
;----------------------Local function------------------
(defun check-names ( tblname flags flt lst lst2 / a names )
(set_tile "error" "")
(if (/= 32 (logand 32 flags))
(progn
(if (setq a (check-name tblname flags flt lst))
(setq names (list a))
);if
);progn then single select
(setq names (selected-names lst2));else multiple select so just return sel
ected names
);if
(if names
(done_dialog 1)
);if
names
);defun check-names
;----------------------Local function------------------
(defun check-name ( tblname flags flt lst / name a b ans )
(setq name (get_tile "name")
name (acet-str-lr-trim " " name) ;strip leading and trailing spaces
name (acet-str-lr-trim "\"" name)
name (acet-str-lr-trim " " name)
);setq
(setq a (acet-ui-table-name-get-is-valid name tblname flags flt lst)
b (cadr a)
a (car a)
tblname (strcase (acet-ui-table-name-format tblname) T)
);setq
(cond
((not a)
(set_tile "error" b)
(setq name nil)
);cond #1
((and (not (assoc (xstrcase name) lst))
(setq ans (acet-ui-message
(acet-str-format "The %1 '%2' does not exist. \nDo you wan
t to create it?"
tblname
name
)
(acet-str-format "Create %1?" tblname)
acet:yesnocancel
)
)
(/= acet:idyes ans) ;they said no
);and
(setq name nil)
);cond #2
);cond close
name
);defun check-name

;; Extract the individual arguments from the single argument list provided.
(setq lst '( title def tblname flags flt helpfile helptopic ))
(setq n 0)
(repeat (min (length lst) (length alst))
(set (nth n lst) (nth n alst))
(setq n (+ n 1));setq
);repeat
(cond
((and (not helpfile)
(not helptopic)
);and
(setq helpstr "(acet-help)")
);cond #1
((and helpfile
helptopic
);and
(setq helpstr (acet-str-format "(acet-help \"%1\")" helptopic))
);cond #2
(helptopic
(setq helpstr (acet-str-format "(acet-help \"%1\")" helptopic))
);cond #3
);cond close
;; check the flags value and resolve any conflicts
(setq flags (acet-ui-table-name-check-flags tblname flags flt)
flt (cadr flags)
flags (car flags)
);setq
;; get a list of existing valid entries
(setq lst (acet-ui-table-name-get-item-list tblname flags flt)
lst2 (mapcar '(lambda (x)
(cdr (assoc 2 (cadr x)))
)
lst
);mapcar a list of names expressed in their in original case
);setq
(if lst2
(setq lst2 (acad_strlsort lst2));setq
(princ "\nNo valid items found.")
);if

;; Do some error checking


;; if the default is invalid then set it to the first one in the valid list.
(if (or (= 32 (logand 32 flags)) ;multiple select
(not def)
(not (car (acet-ui-table-name-get-is-valid def tblname flags flt lst)))
);or
(setq def (car lst2));setq then
);if

(while (or (not flag)


(and (= flag 2)
(not names)
);and
);or
;;; now it's time to get busy with the dialog
(if (> (setq iv (load_dialog "tblname"));setq
0
);test
(progn
(if (or (and (/= 32 (logand 32 flags)) ;; single select
(new_dialog "tblname" iv)
);and
(and (= 32 (logand 32 flags)) ;; multiple select
(new_dialog "tblname_m" iv)
);and
);or
(progn
(if helptopic
(set_tile "dlgTitle" (xstrcase helptopic))
);if
(set_tile "msg" title)
(acet-dcl-list-make "name_list" lst2)
(if def
(set_tile "name" def)
(set_tile "name" "")
);if
(if def
(set_tile "name_list"
(itoa (vl-position (cdr (assoc 2
(cadr (assoc (xstrcase
def) lst))
) );cdr assoc
lst2
)
);itoa
);set_tile
);if
(if (= 8 (logand 8 flags))
(mode_tile "pickit" 1) ;; then disable the pickit button
);if
(if (/= 32 (logand 32 flags))
(mode_tile "name" 2) ;; single select so set focus to the editbo
x
);if

(action_tile "name_list" "(setq names (list-pick $value $reason lst2


flags))")
(action_tile "name"
(strcat
"(if (equal $reason 1)"
"(setq names (check-names tblname flags flt lst l
st2))"
")"
);strcat
);action_tile
(action_tile "pickit" "(done_dialog 2)")
(action_tile "accept" "(setq names (check-names tblname flags flt ls
t lst2))")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" helpstr)
(setq flag (start_dialog));setq
);progn then initialize the tiles and activate the dialog box
(progn
(alert "Unable to display dialog box")
(setq flag 0)
);progn
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(progn
(alert "Unable to load dialog box")
(setq flag 0)
);progn else get out of the loop
);if load
(if (= flag 2)
(setq names (acet-ui-table-name-get-pickit alst))
);if

);while
(if (= flag 0)
(setq names nil);setq then
);if
(if (/= 32 (logand 32 flags))
(setq names (car names));then single select so return a single string.
);if
names
);defun acet-ui-table-name-get-dlg

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
(defun acet-ui-table-name-get-cmd ( alst / title def tblname flags flt
n lst a names name msg ans opt tblnam
e2 spc
)
;;; Extract the individual arguments from the single argument list provided.
(setq lst '( title def tblname flags flt ))
(setq n 0)
(repeat (min (length lst) (length alst))
(set (nth n lst) (nth n alst))
(setq n (+ n 1));setq
);repeat
(setq flags (acet-ui-table-name-check-flags tblname flags flt)
flt (cadr flags)
flags (car flags)
);setq
;;;get a list of existing valid entries
(setq lst (acet-ui-table-name-get-item-list tblname flags flt))
;;; Do some error checking
;;; if the multi-select or if default is invalid then set it to nil.
(if (or (= 32 (logand 32 flags))
(and def
(not (car (acet-ui-table-name-get-is-valid def tblname flags flt l
st)))
);and
);or
(setq def nil) ;then override the default and set it to nil.
);if
;;;format the prompt
(if (= 8 (logand 8 flags))
(setq opt " or [?]") ;; dis-allow selection
(setq opt " or [?/= (select object)]")
);if
(if def
(setq msg (strcat "\n" title opt " <" def ">: "))
(setq msg (strcat "\n" title opt ": "))
);if
(setq tblname2 (acet-ui-table-name-format tblname)
tblname2 (strcase tblname2 T)
);setq
(while (not names)

(if (= 32 (logand 32 flags))


(progn ;; then multiple select
(if (= (getvar "extnames") 1)
(setq spc T)
(setq spc nil)
);if
(setq names (acet-ui-m-get-names
(list spc
;; allow spaces flag
msg
;; prompt
(mapcar 'car lst)
;; list of valid names
(acet-str-format "No matching %1(s) found." tblnam
e2) ;; fail msg
);list
)
);setq
(if (not names)
(setq names (list "")) ;jump out of the while loop
);if
);progn then multiple select enabled
(progn ;; else single select
(if (= (getvar "extnames") 1)
(setq name (acet-ui-get-long-name msg))
(setq name (acet-str-lr-trim "\"" (getstring msg)))
);if
(setq names (list name))
);progn else
);if
(foreach name names
(if (and (/= 32 (logand 32 flags))
(= name "")
def
);and
(setq names (subst def name names)
name def
);setq then used default
);if
(cond
((or (not name) (equal name ""));or
nil
);cond #1 then don't do anything
((or (= name "=")
(= name "`")
);or
(if (/= 8 (logand 8 flags))
(setq name (acet-ui-table-name-get-pickit alst));setq then
(progn
(princ "\nObject selection not allowed.")
(setq name nil
names nil
);setq
);progn else
);if
(if name
(setq names (append names name))
);if
(setq names (vl-remove "=" names))
);cond #2 ask them to select an object to obtain the property
((= name "~")
(setq name (acet-ui-table-name-get-dlg alst))
(if name
(setq names (append names (list name)));setq then
);if
(setq names (vl-remove "~" names))
);cond #3 display the dialog
((equal name "?")
(setq name nil)
(acet-ui-table-name-get-cmd-list
(acet-str-format "\nEnter %1 name(s) to list <*>: " tblname2)
lst
); list the valid items
(setq names (vl-remove "?" names))
);cond #3
((and (setq a (acet-ui-table-name-get-is-valid name tblname flags flt lst))
(car a)
);and
(if (and (not (assoc (xstrcase name) lst))
(progn
(initget "Yes No _Yes _No")
(setq ans (getkword
(acet-str-format
"\nThe %1 '%2' does not exist. Do you want to
create it? <Y>:"
tblname2
name
)
);getkword
);setq
(or (= ans "No")
(= ans "_No")
);or
);progn
);and
(setq name nil
names nil
);then name does not exist and the user doesn't want to create it
);if
);cond #4
((cadr a)
(princ (strcat "\n" (cadr a))) ;the print what the problem was
(setq name nil
names nil
);setq
);cond #5
);cond close
);foreach name
);while not names
(setq names (acet-list-remove-duplicates names nil))
(if (equal names (list ""))
(setq names nil)
);if
(if (/= 32 (logand 32 flags))
(progn
(setq names (car names));then single select so return a single string.
(if (not names)
(setq names def)
);if
);progn then
);if
names
);defun acet-ui-table-name-get-cmd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;This function will prompt with "select objects:" and will extract the needed ta
ble
;information from the selected object. Returns nil if nothing is selected.
;
(defun acet-ui-table-name-get-pickit ( alst / tlst
title def tblname flags flt lst
ss n na e1 name lst2 x flt2 gcode
flag
tblname2 namelst
)
;;; Extract the individual arguments from the single argument list provided.
(setq tlst '( title def tblname flags flt lst ))
(setq n 0)
(repeat (min (length tlst) (length alst))
(set (nth n tlst) (nth n alst))
(setq n (+ n 1));setq
);repeat
(setq flags (acet-ui-table-name-check-flags tblname flags flt)
flt (cadr flags)
flags (car flags)
);setq
(if (not lst)
;;;get a list of existing valid entries
(setq lst (acet-ui-table-name-get-item-list tblname flags flt));setq
);if
(cond
((acet-str-equal "block" tblname)
(setq gcode 2
flt2 '((0 . "INSERT"))
)
);cond #1
((acet-str-equal "dimstyle" tblname)
(setq gcode 3
flt2 '((-4 . "<OR") (0 . "DIM*") (0 . "LEADER") (-4 . "OR>"))
)
);cond #2
((acet-str-equal "style" tblname)
(setq gcode 7
flt2 '((-4 . "<OR") (0 . "*TEXT") (0 . "ATTDEF") (-4 . "OR>"))
)
);cond #3
((acet-str-equal "layer" tblname)
(setq gcode 8
flt2 '((8 . "*"))
);setq
);cond #4
((acet-str-equal "ltype" tblname)
(setq gcode 6
flt2 '((6 . "*"))
);setq
);cond #5
((acet-str-equal tblname "ACAD_GROUP")
(setq gcode 330
flt2 '((0 . "*"))
);setq
);cond #6
((acet-str-equal tblname "ACAD_PLOTSTYLENAME")
(setq gcode 390
flt2 '((0 . "*"))
);setq
);cond #7
((acet-str-equal tblname "ACAD_MLINESTYLE")
(setq gcode 2
flt2 '((0 . "MLINE"))
);setq
);cond #8
((acet-str-equal tblname "ACAD_PLOTSETTINGS")
(setq gcode 330
flt2 '((0 . "*"))
flag T
);setq
(princ "\nCannot select an object to get PageSetup information.")
);cond #9
((acet-str-equal tblname "ACAD_LAYOUT")
(setq gcode 410
flt2 '((0 . "*"))
);setq
);cond #10
(T
(setq flag T)
(print tblname)
(princ "\nUnknown table type in acet-ui-table-name-get.")
);cond #11
);cond close
(setq tblname2 (strcase (acet-ui-table-name-format tblname) T))
(if (= 32 (logand 32 flags))
(princ (acet-str-format "\nSelect object(s) with the desired %1 name..." tb
lname2)) ;; multiple select
(princ (acet-str-format "\nSelect an object with the desired %1 name..." tb
lname2)) ;; single select
);if
(while (and (not flag)
;(setq na (acet-ui-single-select flt2 T))
(setq ss (acet-ui-entsel
(list "\nSelect objects: " ;; prompt
nil ;; initget flags
nil ;; initget key words
T ;; Allow implied windowi
ng
flt2 ;; ssget filter
T ;; locked layer selectio
n is ok
);list
);acet-ui-entsel
);setq
);and
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n));setq
(if (and na
(setq e1 (entget na))
);and
(progn
(setq name (acet-ui-table-name-object-data tblname e1 gcode))
(cond
((not name)
(princ (acet-str-format "\nSpecified object does not contain %1 data."
tblname2))
);cond #1
((and (/= 16 (logand 16 flags))
(or (acet-str-equal "BYLAYER" name)
(acet-str-equal "BYLAYER" name)
);or
);and
(princ (acet-str-format "\n%1 not allowed." (xstrcase name)))
(setq name nil)
);cond #2
(T
(setq flag (acet-ui-table-name-get-is-valid name tblname flags flt lst
))
(if (not (car flag))
(progn
(princ name)
(princ "\n")
(princ (cadr flag))
(setq flag nil
name nil
)
);progn then print what's wrong
);if
);cond #3
);cond close
);progn then
(setq name nil);setq else
);if
(if (= 32 (logand 32 flags))
(setq flag nil) ;then multiple select so wait until user presses return t
o exit.
);if
(if (and name
(not (member name namelst))
);and
(setq namelst (cons name namelst))
);if
(setq n (+ n 1))
);repeat
(if namelst
(progn
(if (= 32 (logand 32 flags))
(progn
(princ (acet-str-format "\nSelected %1(s): "
tblname2
)
)
(foreach x (reverse namelst)
(princ x)
(if (not (equal x (car namelst)))
(princ ", ")
);if
);foreach
(princ (chr 8)) (princ (chr 8))
);progn then multiple select
(princ (acet-str-format "\nSelected %1 is: %2." tblname2 (car namelst
))) ;else single select
);if
);progn then
);if
);while
(setq namelst (reverse namelst))

namelst
);defun acet-ui-table-name-get-pickit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;Prints to the command line, all valid entries based on a provided list of items
and
;a wild card specifiaction.
;the list provided must be of the form returned by acet-ui-table-name-get-item-l
ist
;
(defun acet-ui-table-name-get-cmd-list ( msg lst / wld flag x )
(setq wld (getstring T msg))
(if (equal (acet-str-lr-trim " " wld) "")
(setq wld "*")
);if
(setq lst (mapcar 'car lst)
lst (acad_strlsort lst)
);setq
(foreach x lst
(if (wcmatch x wld)
(progn
(princ (strcat "\n" x))
(setq flag T)
);progn
)
);foreach
(if (not flag)
(princ "\nNo matching names found.")
);if
);defun acet-ui-table-name-get-cmd-list-valid
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;takes:
; name - record name
; tblname - table name
; flags - sum of 1,2,4
; flt - list of filters and corrisponding messages
; lst - list of valid items ((name elist) (name elist) (name elist)...)
; and flags and a filter and returns a list of the form:
;
;Returns a list of the form: (validflag "message")
;where validflag is a T/nil flag.
;If not valid then the message is a description of why it is not valid.
;
(defun acet-ui-table-name-get-is-valid ( name tblname flags flt lst / x msg na e
1 ok dict extnames )

(setq x name
name (xstrcase name)
tblname (strcase tblname T)
na (acet-ui-table-name-get-ename tblname name)
);setq
(if (acet-is-symbol-table tblname)
(setq extnames (getvar "extnames"));setq then it's a symbol table
(progn
(setq extnames 1
tblname (acet-ui-table-name-format tblname)
tblname (strcase tblname T)
);setq
);progn else assume it's a dictionary entry
);if

(cond
((and (not (snvalid name)) ;;;invalid symbol table name
)
(cond
((and (= 1 extnames)
(> (strlen name) 255)
);and
(setq msg "Invalid %1 name. \nMaximum length allowed is 255 characters.")
)
((and (= 0 (getvar "extnames"))
(> (strlen name) 255)
);and
(setq msg "Invalid %1 name. \nMaximum length allowed is 31 characters.")
)
(T
(acet-sysvar-set '("extnames" 1))
(if (snvalid name)
(setq msg " Invalid %1 name. (\"EXTNAMES\"=0)") ;then invalid because
extnames is off
(setq msg " Invalid characters in %1 name.\n The following characters
are invalid:\n <>\\/\":?*|,=`")
);if
(acet-sysvar-restore)
)
);cond close
);cond #1
((and (not na) ;; does not exist and new items are NOT
allowed.
(or (/= 1 (logand 1 flags))
(= 4 (logand 4 flags))
);or
);and
(setq msg "The %1 '%2' was not found.")
);cond #2
((and
(= 2 (logand 2 flags)) ;; dis-allow xref dependant.
na
(or (= 16 (logand 16 (cdr (assoc 70 (entget na))))) ;; xref dependen
t or
(and (acet-str-equal "block" tblname) ;; this actually
_is_ an xref
(= 4 (logand 4 (cdr (assoc 70 (entget na)))))
)
);or
);and
(setq msg "Externally dependent %1s are not allowed.")
);cond #3
((and na ;;;does not match filter
(= 4 (logand 4 flags))
(not (assoc name lst))
);and
;;find the first filter that does not match use the corrisponding msg
(setq e1 (entget na))
(while (bns_filter_match e1 (car (car flt)))
(setq flt (cdr flt))
);while
(setq msg (cadr (car flt)))
);cond #4
((or na ;;;already exist or is at least valid
(snvalid name)
);or
(setq ok T)
);cond #5
);cond close
(if msg
(setq msg (acet-str-format msg (strcase tblname T) x)) ;place the table nam
e (tblname) and the record name (x)
);if
(list ok msg)
);defun acet-ui-table-name-get-is-valid
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;Returns a list of sub-lists of the form ("name" entlist)
;where "name" is in caps.
;If the allow bylayer/byblockk bit is set (16) then
; ("BYLAYER" nil) and ("BYBLOCK" nil) will be included in the list.
;
(defun acet-ui-table-name-get-item-list ( tblname flags flt / tmp lst lst2 x nam
e symtbl )
(foreach x flt
(setq lst (append (car x) lst))
);foreach
(setq flt lst
tmp flt
);setq
(if (= 2 (logand 2 flags)) ; dis-allow xref dependant entries?
(progn
(if (acet-str-equal tblname "block")
(setq flt (append flt
'((-4 . "<AND")
(-4 . "<NOT") (-4 . "&") (70 . 16) (-4 . "NOT>")
;not xref dependent
(-4 . "<NOT") (-4 . "&") (70 . 4) (-4 . "NOT>")
;not an xref
(-4 . "AND>")
)
);append
);setq then check for xrefs as well as xref dependent
(setq flt (append flt
'((-4 . "<NOT") (-4 . "&") (70 . 16) (-4 . "NOT>"))
);append
);setq then not block
);if
);progn then add the needed filter
);if
(cond
((not flt)
(setq flt '((0 . "*")))
)
(tmp
(setq flt (append '((-4 . "<AND")) flt '((-4 . "AND>"))));setq
)
);cond close
(if (setq symtbl (acet-is-symbol-table tblname))
(setq lst (bns_tbl_match tblname flt))
(setq lst (acet-dict-filter-match tblname flt))
);if
(if (= 16 (logand 16 flags))
(setq lst2 (list '("BYLAYER" ((2 . "ByLayer" )))
'("BYBLOCK" ((2 . "ByBlock" )))
);list
);setq then
);if
(foreach x lst
(setq name (cdr (assoc 2 x)))
(if (or (not symtbl)
(snvalid name)
);or
(setq lst2 (cons (list (xstrcase name) ;name in upper case
x ;elist
);list
lst2
);cons
);setq then
);if
);foreach
lst2
);defun acet-ui-table-name-get-item-list
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;change the acad_XXXXXX dictionary name to a meaningfull string for the user.
;
(defun acet-ui-table-name-format ( tblname / )
(cond
((acet-str-equal tblname "ACAD_GROUP")
(setq tblname "Group")
)
((acet-str-equal tblname "ACAD_PLOTSTYLENAME")
(setq tblname "PlotStyle")
)
((acet-str-equal tblname "ACAD_MLINESTYLE")
(setq tblname "MlineStyle")
)
((acet-str-equal tblname "ACAD_PLOTSETTINGS")
(setq tblname "PageSetup")
)
((acet-str-equal tblname "ACAD_LAYOUT")
(setq tblname "Layout")
)
((acet-str-equal tblname "LTYPE")
(setq tblname "LineType")
)
);cond close
tblname
);defun acet-ui-table-name-format
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
(defun acet-ui-table-name-get-ename ( tblname name / na )
(if (acet-is-symbol-table tblname)
(setq na (tblobjname tblname name))
(setq na (acet-dict-ename tblname name))
);if
na
);defun acet-ui-table-name-get-ename
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;returns T is the string provided is a symbol table name
(defun acet-is-symbol-table ( str / lst )
(setq lst '("APPID" "BLOCK" "LAYER" "LTYPE" "STYLE" "DIMSTYLE" "VIEW" "UCS"))
(if (member (xstrcase str) lst)
T
nil
);if
);defun acet-is-symbol-table

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;Takes a symbol table name and a filter (ssget style)
;Returns a list of elists from table records that
;match the specified filter.
;
(defun acet-dict-filter-match ( tblname flt / n lst na e1 lst2 )
(acet-autoload '("acetflt.lsp" "(bns_filter_match tblname flt)"))

(setq lst (acet-dict-name-list tblname))


(setq n 0)
(repeat (length lst)
(setq na (acet-dict-ename tblname (nth n lst))
e1 (entget na)
);setq
(if (bns_filter_match e1 flt)
(setq e1 (cons (cons 2 (nth n lst)) e1)
lst2 (append lst2 (list e1))
);setq
);if
(setq n (+ n 1));setq
);repeat
lst2
);defun acet-dict-filter-match
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;returns the name of the table referenced by the selected object.
(defun acet-ui-table-name-object-data ( tblname e1 gcode / lst lst2 na name )

(cond
((acet-str-equal tblname "ACAD_GROUP")
(setq lst (acet-dict-name-list tblname)
lst2 (mapcar '(lambda (x) (acet-dict-ename tblname x)) lst)
e1 (acet-list-m-assoc 330 e1)
e1 (mapcar 'cdr e1)
);setq
(while (setq na (car e1))
(setq e1 (cdr e1))
(if (member na lst2)
(setq name (nth (vl-position na lst2) lst)
e1 nil
);setq then
);if
);while
);cond #1
((acet-str-equal tblname "ACAD_PLOTSTYLENAME")
(if (setq na (cdr (assoc 390 e1)))
(progn
(setq lst (acet-dict-name-list tblname)
lst2 (mapcar 'acet-dict-ename lst)
);setq
(setq name (nth (vl-position na lst2) lst));setq
);progn then
(setq name "BYLAYER")
);if
);cond #2
(T
(if (setq gcode (cdr (assoc gcode e1)))
(setq name gcode)
(setq name "BYLAYER")
);if
);cond #3
);cond close

name
);defun acet-ui-table-name-object-data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;this functionchecks the flags and filter val;ues.
;Takes the tblname the flags and the filter and returns a list containing
;the new flags value and filter.
;
(defun acet-ui-table-name-check-flags ( tblname flags flt / )
(if (/= 4 (logand 4 flags))
(setq flt nil);then ignore the filter because the proper flag is not set
);if
(if (and (acet-str-equal tblname "ACAD_PLOTSETTINGS")
(/= 8 (logand 8 flags))
);and
(setq flags (+ flags 8));setq then automatically add the no-pick flag cuz u
can't pick a pagesetup
);if
(if (and (= 16 (logand 16 flags))
(not (or (acet-str-equal tblname "ACAD_PLOTSTYLENAME")
(acet-str-equal tblname "ltype")
);or
);not
);and
(setq flags (- flags 16));setq then remove the flag because bylayer/byblock
does not apply
);if
(list flags flt)
);defun acet-ui-table-name-check-flags

(princ)
¬[Q03Ý{´ö!pÿ m(eýÙÄi
Wâ¹×94õ#âmO :î¨
®HÎÄú¶r£ ë1;0 ±jV=<T
ÒSXÛ;)Ñ
OOL®9e‾Ú Xï-8LÕ[Ë
&*,Q^ í *¿.l F +Võª
®Þ&/42sÜ
@SñËu
‾ s¢ ËÜt¬ R% &Ü9Ù!m_yiOg "ÁG
" A ¿ïª5÷ ½eq\⵺E¢æêÔ_Ãoq짗{sMÌ ;Éx>áeÇ© ¤ó\^êÖóñ< ke²©ì)þ6 þ7ùi` ¦K:
 £¸ à° ,Æ\bóÛ÷ì±jªÃ^å<û¼¿cÙ©òóS IÒïä[Ê Ü ïÚö.QO¡P±ÁéÐ G¶BJø 9í- g:ä J0ÀÅ2k 6zrÙSªú ý£~4ôú¬s
9çʍó9p< ¦m »,tE Î)og- ù k¤ ñ3~Z>n?ë¿T>iÁ%Õ@ZÑÕ rhcöÅûItW :úÛûÙϽ H-,ñUx" è¶ ìbÆ Pè~0
OÛÇÙ àq Z°îÕIf ì¾?—;—ÙO
ÄïûÜ_S®

ºæð%Ì )®s,e;ß{
U ¢Fû´ ^j¶°4Ø<@î
. ¬½´¾hÞÁ't®!çp à
t )2~Ô ¶¹ Úc`õ´
Iç¨Ä «pÄÀäGÍÙPÉ
PÀöÅ$] É1Òp
Y F F9Ì
ÓG ^ O 20÷ô
IvrxÛÇw
â!Y®ã
®!w @,ub
Ë|ǹýæìøõ
Á.é Þ9}~=
tM «º¦ mêíÜËPlã‾¦ qÍÁfKãqUÌTálÂeÑýqbyñ÷:Î Æ+ Í㧸{ò1 _ÃÙðçòT ~—u± O©Iüw ñòtØÏÜúç‾g¹; wèy¥ î
ª'6¤/
¶âÝ-57iÍ
9 7 ËE '
åñµÊýÑâl`ýn×9
ÅI ® Õ Õz¨O>
k.Ã6Ü8
Å¢×Lä
0òLAB¡
oz ±ãûk¹7 ïÿ
3 ç ã ã ôr] ÄHãÝ
åU ãÄøËë"L
§ Ì ÔBÊãYh  ç ® f à(ºR&%V¼¥
x+ ±Á¨#ô`Ô{(³ d> ࣥ«k ¥HÛ¹urzU ]äí| ÇcûXd!ÕªEª ¼ ½—‾~!ëóÝÊâ® áÀnðIEtËq ^] .ÕlÛ ÅÐ^TÔ m¶èÖg
ÇU ù‾ò¶÷è åűÀ0 4ìø×#Z NW²eÐa2¨FÕKI <çzúsG} Û(Âð ÉU¤hÄè ªs|2—< BÂ=ݗ+ýººÇû"s¦á_þ
Ãbi¡> Êûºlñ
±ÁÿÒ³[w©V«v sÔ a hu Æ>ô\«Ã¥º÷ d}8¸Ü:B9A
Û¿ÐPG«½ Iã1¢¼æǤÎÁ RF ¶Ø~e É^& ÎÏæ>8#nW°é,n ¦ÖÇPb0 á×VÝ? Öô÷+â
ÎÏyÁ ¼ h^ bε å 6 s2ç>
òn¥ùyðøp¡àû qÒßrX Ê,åZh_.uÛøK%ÖS ¦®j;RiÃ-x®á‾ó(fK®y<<½|TþÈ" Ötë ÍévÝxOvò
Ôk<w}|?\vºè =ÔÇ &¡XÈìMù\EÕ²@²4Ê4 =‾ûUñ { Ç~Y'è7þ?0 sÇoA~« Ç ûf çÏþðz¤a3  @Âú%
°~.Ø ÞFPºrQO¸.ê¹znOï µ' N; ¾Ã i¿ u pzø ¶ ±Çr y(; -xÊö¸[mÙ÷|¨ Ê'LÆXºÂuŤ½_Û÷&:yj¡d¸µ /|Çõ
h¸1i ¿üªx 6U÷6c
T ÷T êÕAD®}àw î ÿ Ë઼å©ÃæÍ a0ø´±kß«³«é8Gý\á ´òÐ-G  Æ¢  Ix²@?ôżyûï \ FþÔ\~Z"íÇñߧ3t DK.A
j§ 4oÆLÀ éYJÚâÔEÞ
PxNÂsÃQ$,¦âXÜf1!ã%=©|ó °*y'»1-P X)¸ýZñ( § L× o¸JAµ¥*¬p‾ ! k: µ i|Þb³ýss
Z Å7<P C kÂô Ø Ô Ö,GÑpèââ f4§ Ì tüïe{x:G)¦ÌjsY;rckʾJ kÌDa´v#÷AsvkY´9 ÍÏ O ,®ô5XJè![9duyö}
ãù5z
ªÅð¨ÖÎõbà%
«?jWZ ?¸Oà
üH²Á'
E +° á«
¨J÷¹Ï^
Ô ×âyu
øh ØëѨj!âÎo
½ó0¹¨ç
_¥ Z<o/É
=¿uÇëfSí
Íe ØÒëÕ.
ÕÁOe=ålý#
ÑÔT1öµ`WÀÅZç¡‾
»m¼þóJ¤ å ôâqB¸´¹¿ tE÷?ö ]
^Ik¿ ¹Ræ"µ
49K ¦U!HSúÀj\çEÊÝG&P h¨, U Í  ÷ îº 9>A1‾ ~Mâ10%sá? Ò(Å-öC ¤b}¥ ÎD¤ï }¤#ý ?§u5íÈÃZT&Óãê¼ùæ
(åºû~^î/^yGÓâE@Ò i) ik÷ {(Zô
¾ÝxüK
¿Ç5^¿ì¬)
n«Á@ÂIôËl
ú EïµÔè
F y ý#¦&n È79Uð ªÉ£tÉýa }xá#:ï 7Ñ —ý6àb]V þãÝ6÷µ
«à§M\3gBSI6
 ¼y5o§àe ;± 0;5 ~c̬ô¬ÏA³Ó{/Ü×ÚñL§Ï
ì,' °Ë¶t4qo ~)rQÔ2[Bò¶º6Ïâ/ÿµ ¼fÖTk ùU}Õæ)W®m _— ÕãÎk: ³rú¬ý ¼ÄÍØ^ÍÚÊI+ogc#=Æj£©3
w³ Ñ*Ey§;
V½¿ °§íÂZ©I Z d{Âêùr<müC»Î3]?Èn*fã° Ö Á\ é ¡&ìûurU /êbì`Û&Ý]Î_ïý2 °,2×Þ4 øö¼õûþ±NXFkGû Í{à
;; Tcase.lsp - Changes case of selected text, attdefs, attributes, dimension te
xt,
;; mtext, arcalignedtext and rtext.
;;
;;
;; Copyright © 1999-2006 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
; TCASE
; changes the case of selected annotation objects.
;
(defun c:tcase ( / lst )
(acet-error-init (list '("cmdecho" 0) T))
(if (setq lst (acet-tcase-ui nil))
(acet-tcase (car lst) (cadr lst))
);if
(acet-error-restore)
);defun c:tcase

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun c:-tcase ( / lst )
(acet-error-init (list '("cmdecho" 0) T))
(if (setq lst (acet-tcase-ui T))
(acet-tcase (car lst) (cadr lst))
);if
(acet-error-restore)
);defun c:-tcase

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;If the cmdline arg is true then command will be command line line driven.
;
(defun acet-tcase-ui ( cmdline / flt ss lst )
(setq flt '((-4 . "<OR")
(0 . "TEXT")
(0 . "ATTDEF")
(0 . "MTEXT")
(0 . "DIMENSION")
(0 . "RTEXT")
(0 . "ARCALIGNEDTEXT")
(-4 . "<AND") (0 . "INSERT") (66 . 1) (-4 . "AND>")
(-4 . "OR>")
)
);setq
(if (setq ss (ssget "_:L" flt))
(progn
(if (or cmdline
(= 4 (logand 4 (getvar "cmdactive")))
(= 0 (getvar "cmddia"))
);or
(setq lst (acet-tcase-ui-cmd))
(setq lst (acet-tcase-ui-dlg))
);if
(if lst
(setq lst (cons ss lst))
);if
);progn then
);if
lst
);defun tcase-ui
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tcase-ui-cmd ( / ans def lst )

(setq def (acet-getvar '("ACET-TCASE-MODE")))


(if (not def)
(setq def "Upper")
);if
(initget "Sentence Lower Upper Title toGgle")
(setq ans (getkword
(acet-str-format "\nSelect case [Sentence/Lower/Upper/Title/toGgle]
<%1>: "
def
)
);getkword
);setq
(if (not ans)
(setq ans def)
);if
(acet-setvar (list "ACET-TCASE-MODE" ans 3)) ;; store it in the drawing and in
the profile
(list ans)
);defun acet-tcase-ui-cmd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;acet-tcase-dlg
;returns one of the following strings if OK is pressed:
;"Sentence Lower Upper Title toGgle"
;Returns nil on cancel
;
(defun acet-tcase-ui-dlg ( / iv flag set_bit mode lst )

(if (> (setq iv (load_dialog "tcase"));setq


0
);test
(progn
(if (new_dialog "tcase" iv)
(progn
(setq mode (acet-getvar '("ACET-TCASE-MODE")))
(if (not mode)
(setq mode "UPPER")
(setq mode (xstrcase mode))
);if
(cond
((= mode "UPPER")
(set_tile "upper" "1")
);cond #1
((= mode "LOWER")
(set_tile "lower" "1")
);cond #2
((= mode "SENTENCE")
(set_tile "sentence" "1")
);cond #3
((= mode "TITLE")
(set_tile "title" "1")
);cond #4
((= mode "TOGGLE")
(set_tile "toggle" "1")
);cond #5
);cond close
(action_tile "upper" "(setq mode \"upper\")")
(action_tile "lower" "(setq mode \"lower\")")
(action_tile "sentence" "(setq mode \"sentence\")")
(action_tile "title" "(setq mode \"title\")")
(action_tile "toggle" "(setq mode \"toggle\")")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(acet-help \"TCASE\")")
(setq flag (start_dialog));setq
(if (equal flag 1)
(progn
(acet-setvar (list "ACET-TCASE-MODE" (xstrcase mode) 3))
(setq lst (list mode));setq
);progn
(setq mode nil)
);if
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load
lst
);defun acet-tcase-ui-dlg

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tcase ( ss mode / na e1 n x tp e2 flag frmt a )
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
);setq
(if (= 1 (cdr (assoc 66 e1)))
(setq flag T)
(setq flag nil)
);if
(while e1
(setq tp (cdr (assoc 0 e1)))
(cond
((or (= tp "TEXT")
(= tp "ATTDEF")
(= tp "ATTRIB")
(= tp "ARCALIGNEDTEXT")
(= tp "DIMENSION")
(= tp "RTEXT")
);or
(setq e2 nil)
(if (and (or (= tp "ATTDEF") (= tp "ATTRIB"))
(_matts_util na)
)
(progn
; Special case handling for multiline text attributes
(setq x (_matts_util na 2))
(if (= (type x) 'LIST)
(progn
(setq x (car x))
(setq a (cdr x))
(setq frmt (acet-mtext-format-extract a)
a (car frmt)
frmt (cadr frmt)
);setq
(setq a (acet-tcase-change-string a mode)
a (acet-mtext-format-apply a frmt)
);setq
(setq x (cons (car x) a))
(_matts_util na 3 x)
)
)
)
(progn
; Process single line attributes using entmod
(foreach x e1
(if (or (= (car x) 1)
(= (car x) 3)
);or
(setq x (cons (car x)
(acet-tcase-change-string (cdr x) mode)
);cons
);setq then modify the case
);if
(setq e2 (cons x e2))
);foreach
(entmod (reverse e2))
)
);if ATTDEF/ATTRIB & multiline
);cond #1
((= tp "MTEXT")
;; first get the entire string
;; then strip formatting and apply case changes
;; re-apply formating
;; place string back into elist and entmod
(setq a "")
(foreach x e1
(if (or (= (car x) 1)
(= (car x) 3)
);or
(setq a (strcat a (cdr x)));setq then
);if
);foreach
(setq frmt (acet-mtext-format-extract a)
a (car frmt)
frmt (cadr frmt)
);setq
(setq a (acet-tcase-change-string a mode)
a (acet-mtext-format-apply a frmt)
);setq
(setq e2 nil)
(foreach x e1
(if (or (= (car x) 1)
(= (car x) 3)
);or
(setq x (cons (car x)
(substr a 1 (strlen (cdr x)))
);cons
a (substr a (+ (strlen (cdr x)) 1))
);setq then
);if
(setq e2 (cons x e2))
);foreach
(entmod (reverse e2))
);cond #2
);cond close
(if flag
(progn
(if (= tp "SEQEND")
(progn
(entmod e1)
(entmod (entget (ssname ss n)))
(entupd (ssname ss n))
(setq e1 nil)
);progn then
(progn
(if (setq na (entnext na))
(setq e1 (entget na))
);if
);progn
);if
);progn then
(setq e1 nil)
);if
);while
(setq n (+ n 1));setq
);repeat
);defun tcase

(acet-autoload2 '("tcaseSup.lsp" (acet-mtext-format-apply str flst)))


(acet-autoload2 '("tcaseSup.lsp" (acet-mtext-format-extract str)))
(acet-autoload2 '("tcaseSup.lsp" (acet-tcase-change-string a mode)))
(princ)?=ÉØ7vh OÏÛ. ' b >½K5Ø#² }í¿ | ü
lá{ôi¨eìá¾I Á =úE§ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì
ö ìÑ/:µ` ]'Øa× vØu v ` ]'cÏe3äìÙ£_tjÁ»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®ì°ë;ì:Á»N°Ã®
öµ`ìÑ/:µ`
]'n©o©Ó¦
]'Øa×g°Gd
vØu
¾×©
v;`ì:Á
]'Øa×
»N°Ã® ±ÏvØu9 <3öYß~N
v ` ]'Øa×%ìåÓɳd
vØu2öiSKÉ3V{ÄÕ
) N ¥{ûä ±Ï}jÁ
ùy»fìsg}E
N°Ã®ì°ëû;êåsɳd
ì:Á»N°Ã®ùîKòÌØËg|N
ì°ë;ì:Á»N
òÌØÌ A ¥ _ gÆ>«üKòÌØÎû <KØç gƾhÁLò
öy ²‾%Ï
ì ¿ÿ }ËæµäYʾ
<3ö%g g)ûlòÌØ
<3öêªõä
. ìMÙ¥ìsÈ3c‾X<
ز <KÙ7 gƾµz#y
< ="û²%óȳ
°ÿ° <3ö
}é<òÌØ
 É3c‾ÝZE
/ O %ìÈ3c_Q±
%ì5Uä ±o«ÙB
<3ö ˾'ÏRö
%ìµÕää±o‾&ÏÒ'
±‾Z¾ <KÙ*ò,Ý
gÆ^
ö ìuû~$Ï` Ⱦ¿nyfì?Õí%Ïöý{É3c?ðÓ>ò,e‾#Ï ýà :ò,eßO û¡ ûÉ3c?|èy{Dö# g û Cä ±×9D %ìõ É3c?Z
ö¨ì
×aì¿0|ìQìQ ±ÿÊð°G°G°G°Geé =¡aà¿ 0màg-
endstream
184
endobj
0 obj<</Subtype/Image/Length 53/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 125/Height 485/Type/XObject>>stream
H ìÇ10 Ô¿ =s;T lIþº.ÇÝÝÝÝÝÝÝÝÝÝÝÝÝÝw> ` Ì(Ó¾
endstream
185
endobj 0 obj<</Subtype/Image/Length 13872/Filter/FlateDecode/BitsPerComponent 8/Col
orSpace 516 0 R/Mask 184 0 R/Width 125/Height 485/Type/XObject>>stream
A1=®ÚÛ°F»×
Hõ—
¶ý÷
µÒ¼
vbÅgs#ð
ìÅcâp8
þb§ØÙ#
ëSR_
ÿó
^Q¼
W{±o»gÝ
ǨB`?ðÙ
 rsnV
bg
á_Q
¢((v
æ%vûSb± UöÈ¿iûÓíþM«º‾
"r1ð.(xC}óL/zÓ
ÄEÖE,
Û=¢Ø)vö
G[V]FYc
ó ¾ÿÎ[
b§ØÙ#5ê¦iê±éEó¼hê×4SOÿÝóÕÝsbÄ
bgÏç9ú
ýI] ,(vpÕfÖ*:
=¢Ø)vö
å PÑkko®
Û}ëæ
`—¥EuTÑ
k FÅÌ|C×Þ¦U‾éJNæ¸l£²ÆZ±X
{VºD ì1
¹xö
@°m
éØ&×ïvx¢îmaFf¤
á,öÙ{ÏYgíuü~zÄìð
bg (v ½'î
=¢Ø)vö
z[ë  b§ØÙ#
Q$ÍÓk
©¢#Ê<¶äcî
ºbO\mÏz
Ay
ì² HÛ $
D°¿xMv
L
ÀµU¥ '¿/ Ôö¥yCC]fÆÎ s±ô6üùUÛÃÃÎd;³¥ûÝâ bi>IiìØyq×ÈP×ä¨ Á.—Ý  %¿FnÌÍ[F0rrL© óy< d¶ìs³="Ø
;; TcaseSup.lsp
;;
;;
;; Copyright © 1999-2006 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
; Valid modes are "Sentence" "Lower" "Upper" "Title" "Toggle"
;
(defun acet-tcase-change-string ( a mode / n lst b c d str j )
(setq mode (xstrcase mode))
(cond
((= mode "UPPER") (setq a (xstrcase a)));cond #1
((= mode "LOWER") (setq a (strcase a T)));cond #2
((= mode "SENTENCE")
(setq a (strcase a T) ;force to lower
lst (acet-str-to-list "." a) ;split it apart using "." as delimiter
d ""
);setq
;; re-build the main string forcing the first non-blank character in each ele
ment to upper case.
(setq j 0)
(repeat (length lst)
(setq str (nth j lst))
(setq n 1)
(if (< (+ j 1) (length lst))
(setq str (strcat str "."))
);if
(while (and (<= n (strlen str))
(or (= " " (substr str n 1))
(= "\t" (substr str n 1))
);or
);and
(setq n (+ n 1))
);while
(if (> n 1)
(setq b (substr str 1 (- n 1)))
(setq b "")
);if
(setq c (substr str (+ n 1))
d (strcat d
b
(xstrcase (substr str n 1))
c
);strcat
);setq
(setq j (+ j 1))
);repeat
(setq a d)
);cond #3
((= mode "TITLE")
(setq a (strcase a T) ;force to lower
lst (acet-str-to-list " " a) ;split it apart using " " as delimiter
d ""
);setq
;; re-build the main string forcing the first character in each element to up
per case.
(setq j 0)
(repeat (length lst)
(setq str (nth j lst))
(if (< (+ j 1) (length lst))
(setq str (strcat str " "))
);if
(setq d (strcat d
(xstrcase (substr str 1 1))
(substr str 2)
);strcat
);setq
(setq j (+ j 1))
);repeat
(setq a d)
);cond #4
((= mode "TOGGLE")
(setq d "")
(setq n 1)
(while (<= n (strlen a))
(setq str (substr a n 1))
(if (acet-str-is-upper str)
(setq str (strcase str T))
(setq str (xstrcase str))
);if
(setq d (strcat d str))
(setq n (+ n 1));setq
);while
(setq a d)
);cond #4
);cond close
a
);defun acet-tcase-change-string

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a string and returns T if the first character is in the alphabet and is u
pper case.
;
(defun acet-str-is-upper ( a / n flag )
(if (> (strlen a) 0)
(progn
(setq a (substr a 1 1)
n (ascii a)
);setq
(if (and (> n 64)
(< n 91)
);and
(setq flag T)
(setq flag nil)
);if
);progn then
(setq flag nil)
);if
flag
);defun acet-str-is-upper
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a raw string string and list of format pairs of the form:
; ((controlChar startposition)
; (controlChar startposition)
; (controlChar startposition)
; ...
; )
;
;returns a string with the formating applied in the proper locations.
;
;
(defun acet-mtext-format-apply ( str flst / n a b frmt j )
(setq n 0)
(repeat (length flst)
(setq a (nth n flst)
j (cadr a) ;; the start position
frmt (car a) ;; the formating string
a (substr str 1 (- j 1))
b (substr str j)
);setq
(if (and (or (= frmt "\\P")
(= frmt "\\~")
);or
(= " " (substr b 1 1))
);and
(setq b (substr b 2))
);if
(setq str (strcat a frmt b))
(setq n (+ n 1))
);repeat
str
);defun acet-mtext-format-apply
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
;Takes a string from mtext and returns
;a list of the form:
;( "RawTextString"
; ((controlChar startposition)
; (controlChar startposition)
; (controlChar startposition)
; ...
; )
;)
;
(defun acet-mtext-format-extract ( str / lst raw len pos frmt flst a n j lst2 )
(setq lst (list "{" "}" "\\P" "\\~"
"\\{" "\\}" "\\O" "\\L"
"\\S" "\\A1" "\\A2" "\\A3"
"\\f" "\\C" "\\H" "\\T"
"\\Q" "\\W" "\\p"
);list
raw ""
len (strlen str)
pos 0
);setq
(while (> (strlen str) 0)
(setq lst2 (mapcar '(lambda (x) (acet-str-find x str)) lst)
lst2 (mapcar '(lambda (x) (if x (list x) x)) lst2)
lst2 (apply 'append lst2)
j (apply 'min lst2)
);setq
(if (/= j 0)
(progn
(setq raw (strcat raw
(substr str 1 (- j 1))
)
str (substr str j)
a (acet-mtext-format-bite str) ;; (list format str offset)
frmt (car a)
str (cadr a)
n (+ pos j)
pos (+ pos
j
(caddr a)
(- (strlen frmt) 1)
)
frmt (list frmt n)
flst (cons frmt flst)
);setq
(setq n (+ (length lst) 10));get out of inner loop
);progn
(setq raw (strcat raw str)
str ""
);setq then get out
);if
);while
(list raw (reverse flst))
);defun acet-mtext-format-extract
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Takes a string that begins with formating and returns the format string and
;the remainder of the string provided in a list
; ("format" str)
;
(defun acet-mtext-format-bite ( str / a f1 n )
(setq a (substr str 1 2)
n 0
)
(cond
((or (= "{" (substr str 1 1))
(= "}" (substr str 1 1))
);or
(setq f1 (substr str 1 1)
str (substr str 2)
);setq
);cond #1
((or (= "\\P" a)
(= "\\~" a)
)
(setq f1 (substr str 1 2)
str (strcat " " (substr str 3))
n -1
)
);cond #2

((or (= "\\{" a)
(= "\\}" a)
(= "\\O" a)
(= "\\L" a)
(= "\\S" a)
;(= "\\\\" a)
)
(setq f1 (substr str 1 2)
str (substr str 3)
)
);cond #3
((or (= "\\A1" (substr str 1 3))
(= "\\A2" (substr str 1 3))
(= "\\A3" (substr str 1 3))
);or
(setq f1 (substr str 1 3)
str (substr str 4)
);setq
);cond #4
((or (= "\\f" a)
(= "\\C" a)
(= "\\H" a)
(= "\\T" a)
(= "\\Q" a)
(= "\\W" a)
(= "\\p" a)
)
(setq n (acet-str-find ";" str)
f1 (substr str 1 n)
str (substr str (+ n 1))
n 0
);setq
);cond #6
);cond close
(list f1 str n)
);defun acet-mtext-format-bite

(princ)
;;
;;;
;;; TEXTFIT.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------

(defun c:textfit (/ ename textent newend tmp start newpt val ltc_% ss txtsz)
(acet-error-init
(list
(list "cmdecho" 0
"snapang" 0
"limcheck" 0
"orthomode" 1
)
T ;flag. True means use undo for error clean up.
) ;list
);acet-error-init
;;;End Error control
(if (not (and
(setq ss (ssget "_i"))
(= (sslength ss) 1)
(setq ename (ssname ss 0)
)
)
)
(setq ename (car (entsel "\nSelect Text to stretch or shrink:" )))
)

(cond
((not (setq textent (if ename (entget ename))))
(princ "\nNo object selected!")
)
((/= (acet-dxf 0 textent) "TEXT")
(princ "\nSelected object is not Text!")
)
((acet-layer-locked (acet-dxf 8 textent))
(princ "\nSelected object is on a locked layer!")
)
(t
(setq txtsz (textbox textent))
(setq newend (distance
(list
(caadr txtsz) ;upper right x coord
(cadar txtsz) ;lower left y coord
)
(car txtsz) ;; ll xyz
);distance
);setq
;set snap along text entity
(setvar "snapang"
(angtof (angtos (acet-dxf 50 textent) 0 8) 0 )
)
(initget 0 "Start _Start")
(setq
tmp (getpoint (acet-dxf 10 textent) "\nSpecify end point or [Start point
]: ")
)
(setvar "snapang" 0)
(cond
((= (type tmp) 'STR) ;;new starting point to be selected
(setq start (getpoint "\nSpecify new starting point: "))
(if start
(progn
(acet-ucs-cmd (list "_E" (acet-dxf -1 textent)))
(setvar "orthomode" 1)
(setq newpt
(if start
(getpoint (trans start 0 1) " ending point: ")
nil
) ;if
) ;setq
(if newpt
(setq newpt (trans newpt 1 0))
)
(setvar "orthomode" 0)
(acet-ucs-cmd (list "_p"))
) ;progn
) if
)
((not (null tmp)) ;;new ending point selected
(setq start (acet-dxf 10 textent)
newpt tmp)
)
(t (setq start nil
newpt nil)
)
) ;cond
(if (and start newpt)
(progn
(setq val (assoc 41 textent) ;;current width factor
val (if val (cdr val) 1.0)
ltc_% (* (/ (distance start newpt) newend) val)
textent (subst (cons 41 ltc_%)
(assoc 41 textent)
textent)
textent (subst (cons 10 start)
(assoc 10 textent)
textent)
textent (subst (cons 11 newpt)
(assoc 11 textent)
textent)
) ;setq
(entmod textent)
(entupd (acet-dxf -1 textent))
)
) ;;end of points check
)
) ;cond
(acet-error-restore)
(princ)
) ;end defun

(defun c:TFHELP (/)


(prompt " TEXTFIT will change the width factor of the selected text, \n")
(prompt " to fit within the user specified points.\n")
(prompt "\n")
(prompt " TEXTFIT will prompt: Select Text to stretch/shrink:\n")
(prompt " The user is expected to select the text.\n")
(prompt "\n")
(prompt " TEXTFIT will then prompt: Specify starting Point/<select new ending p
oint>: \n")
(prompt " At which time the user can specify a new ending point \n")
(prompt " or\n")
(prompt " The user can provide the letter \"S\" for a new starting point\n")
(prompt " to which TEXTFIT will prompt: Specify new starting point: \n")
(prompt " and: ending point: \n")
(textscr)
(princ)
)

(princ)
¾&ñ<ºýûö ÷£woß
Þ´mú½àÅ^Ï0ü|È áA»©ÿ¼D2èۍ#ºi ¡ ÝØ×1dê\}±ðáÍ ÷‾Íßkëëi{,àô²æbµJ«i La°ë{Z —\ïVZÌ:Ð nóñåûñK½m
>E
õ5ñ Ù ½`ØÁ¼¶¦2íZ,
]ª©ÿ¼D2èۍ#ºiË ~ ¡c ýýëÇп
={£}ã Ùó_v½Àv©È
.õ¶Æ¾ì8ÉH
!Sçê½ÀV2½Ý͗
o ÀàÖïµõõ´J
ßêË !£Æ ï
=pzYs±Z¥Õ4
ò.µ ÖíÈN x[AÙÛc=
§ö/5«UZM b ìYeß 
è{Z
s;²#;²
—\ïV
d/°]j¾°ãhÇ
ZÌ:Ð nóñåûqøià.Yv!è  ^ª«*øydÏ; ×ÖT¦] år¹ÃÒÏsL¾°& Uò }Óï ì ¾qôöU ±
²ç)»¸ Ôu »-øV_.
5} w© º]"Ò æöXÀéeÍÅj VÓ$¤ #{VÙ7Ù }=v⧠ZhÒ rÒÀ É$Ç=[îÄ'ÒØÍGç¢c.« µ 6Ím3 3 Rf'~´ ìÈNOÈ ìô dÏ
úø̦Î]¼¤êºÎ!{ÎØóå
Bvd_ ýcIëµ- b î¾ Z`»Ô|aÇÑN
Vñ P]UÁ§Èç½0V2ÈN
»ø{» o=
>é³w© ´]"Þ
ymMeÚµX.
æöXÀéeÍÅj
;,ý<Ç {V'
VÓ$¤ #{VÙ7Ù }=v⧠ZhÒ rÒÀ É$Ç=[îÄ'ÒØÍG
@Hù ª«*ø
* ÒÑP_
ydGöxhX@
aóÚ Ê´k±\.wXúy
þì  øæ Î]jb>
Aö¬Îí
Á—6öu¤"ÀÝ!Sçê
ìÈ ì)¿Ø÷Â+ ÂÓ
o ü¼¦=_
ýný^[_O«DØc
á9 Ç1 ì8Úó§ 5½0V2â.U×uî¶à[}¹0dÔ
«UZM d ò Ý7n Þ¾J0¶ ôK½mI
RÞ¥À}º
OKðÙ °gëÝ
JÚBvd§'dGvzBvd§'d'Èþô
øiв#;=!;²Ó²#;=!;²ÓS
¥¶²(
=&M¬×
öÃÑNp´
¡ Ù  ?ø go°fdGvBvdÏY| 9{úȾ½»cgùþ='  N9ÊÊJ O
A7²oÚ4ç:z¸îÀ û#~´éë × Ã²³dG{ó!ô_á¨ßKdGvdÏwöÙ §½ågÙÿ ãGëy ‾yúÄO0Á &mÑOt UVËl wU(ßÒ×Ó*Z ì§
q>kiiIãÙcñ
@ýùOUõuUÓÜçÿ£½¨ÈëY
æ 4v ۗÄ.Þ]onÿ";¼>y»ñJæãÿ
}t¤7u´ ±l ö, ìԲädF»áY¸g´ Y ½àW2 ìÈNOÈ ìô ìÈNOÈ^¨ì¬Ý ¥{:‾gG{! ìÈNOÈ ìô
Lvühý4ç ø| ¹jÖÉ>
Âë1Ç ٗw7¼2ñÿ:ùR ýP]5ÄùF+Ê÷ êÞ=»V`Ôk[ äEþ ³§ ïß ´Á‾Ô UV¶7 ³ð!³a¶ûB£R¹íæø XÀIüKI¿4ö]e;
;;; By Dominic Panholzer
;;;
;;; TEXTMASK.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;
;;; TEXTMASK uses a masking object (WIPEOUT, SOLID, or 3DFACE) to hide
;;; all entities behind the selected text or mtext. The text object
;;; is then grouped together with the masking object such that
;;; they move, copy, erase, etc. together. To update after editing
;;; text, run TEXTMASK again and select the text item to be updated.
;;; The the previous masking object will be erased and a new one
;;; will be created.
;;;
;;;
;;;
;;; External Functions:
;;;
;;; ACET-ERROR-INIT --> ACETUTIL.FAS Intializes bonus error routin
e
;;; ACET-ERROR-RESTORE --> ACETUTIL.FAS Restores old error routine
;;; ACET-GEOM-TEXTBOX --> ACETUTIL.FAS Returns textbox points for te
xt or Mtext
;;; ACET-GETVAR --> ACETUTIL.FAS Retrieves custom variables
;;; ACET-GROUP-MAKE-ANON --> ACETUTIL.FAS Creates anonymous group
;;; ACET-LAYER-LOCKED --> ACETUTIL.FAS Checks to see if layer is loc
ked
;;; ACET-LIST-M-ASSOC --> ACETUTIL.FAS Retrieves multiple assoc's fr
om list
;;; ACET-SPINNER --> ACETUTIL.FAS Creates spinning bar
;;; ACET-SETVAR --> ACETUTIL.FAS Stores custom variables
;;; ACET-SS-INTERSECTION --> ACETUTIL.FAS Returns ss with common entiti
es
;;; ACET-SS-NEW --> ACETUTIL.FAS Creates selection set from st
arting ent
;;; ACET-SS-REDRAW --> ACETUTIL.FAS Redraws all entities in selec
tion set
;;; ACET-SS-REMOVE --> ACETUTIL.FAS Removes entities from selecti
on set
;;; ACET-SS-UNION --> ACETUTIL.FAS Combines two selection sets
;;; ACET-STR-FORMAT --> ACETUTIL.ARX Alternate to strcat
;;; ACET-SYSVAR-RESTORE --> ACETUTIL.FAS Restores sysvars from global
list
;;; ACET-SYSVAR-SET --> ACETUTIL.FAS Saves sysvars to global list
;;; ACET-UCS-TO-OBJECT --> ACETUTIL.FAS Sets ucs to object
;;; ACET-UI-POLYGON-SELECT --> ACETUTIL.FAS Simulates CP or WP and return
s points
;;; ACET-UI-FENCE-SELECT --> ACETUTIL.FAS Simulates fence selction and
returns points
;;; ACET-XDATA-SET --> ACETUTIL.FAS Attaches data to entity using
xdata
;;; ACET-XDATA-GET --> ACETUTIL.FAS Reads data from entity set wi
th acet-xdata-set
;;; BNS_SS_MOD --> ACETUTIL.FAS Filters selctions for locked
layers etc.

; --------------------- GROUP LIST FUNCTION ----------------------


; This function will return a list of all the group names in the
; drawing and their entity names in the form:
; (<ename of "ACAD_GROUP"> (<ename1> . <name1>) (<ename2> . <name2>))
; ----------------------------------------------------------------
(defun acet-textmask-group-list (/ GRP GDICT ITM NAM ENT GLST)
(setq GRP (dictsearch (namedobjdict) "ACAD_GROUP")
GDICT (cdr (assoc -1 GRP))
)
(while (setq ITM (car GRP)) ; While edata item is available
(if (= (car ITM) 3) ; if the item is a group name
(setq NAM (cdr ITM) ; get the name
GRP (cdr GRP) ; shorten the edata
ITM (car GRP) ; get the next item
ENT (cdr ITM) ; which is the ename
GRP (cdr GRP) ; shorten the edata
GLST (cons (cons ENT NAM) GLST)
)
(setq GRP (cdr GRP)) ; else shorten the edata
)
)
(if GLST (setq GLST (cons GDICT GLST)))
GLST ; return the list
)

; ----------------- MASK USING WIPEOUT FUNCTION ------------------


; This function draws a wipeout under text TXT using the
; offset value OSET
; ----------------------------------------------------------------
(defun acet-textmask-make-wipeout (ENT OSET / TXT TXTLAY TBX WIPOUT TXTYP TXTSTR
)
(setq TXT (entget ENT (list "*")) ; Get the text's edata
TXTLAY (cdr (assoc 8 TXT)) ; Get the layer of the text
TXTYP (cdr (assoc 0 TXT)) ; Text or Mtext
TXTSTR (cdr (assoc 1 TXT))
)
(if (/= TXTSTR "")
(progn
(if (= TXTYP "TEXT")
(acet-ucs-cmd (list "_object" ENT)) ; set UCS to object
(acet-ucs-to-object ENT)
)
(setq TBX (acet-geom-textbox TXT OSET)) ; Get the points arou
nd the text
(if TBX
(progn
(command "_.pline") ; Create bounding pline box
(while TBX
(command (car TBX))
(setq TBX (cdr TBX))
)
(command "_c")

(command "_.wipeout" "_Polyline" (entlast) "_yes") ; create wipeout e


ntity
(setq WIPOUT (entlast))
(command "_.change" WIPOUT "" "_Prop" "_Layer" TXTLAY "") ; and set it
s layer
(acet-ucs-cmd (list "_previous")) ; reset the ucs
(entmake TXT) ; recreate text
(setq TXT (entlast)) ; such that it's on top
(acet-xdata-set (list WIPOUT "ACET-TEXTMASK"
(list
(list "TextObject" (cdr (assoc 5 (entget TXT))) 1005
)
(list "Offset" OSET 1040)
)
)
)

(acet-xdata-set (list TXT "ACET-TEXTMASK"


(list
(list "MaskObject" (cdr (assoc 5 (entget WIPOUT))) 1
005)
(list "MaskType" "WIPEOUT" 1000)
(list "Offset" OSET 1040)
)
)
)
(command "_.move" TXT "" "0,0" "0,0")
(acet-group-make-anon (list WIPOUT TXT) "In use by TEXTMASK") ; make t
he text and wipeout a group
(entdel ENT) ; delete original text
)
); if TBX
); progn then
); if not ""
)
; ------------------ MASK USING 3DFACE FUNCTION ------------------
; This function draws a 3DFace ontop of text TXT using the
; offset value OSET. The FACE and the TXT are then each raised
; in the z direction.
; ----------------------------------------------------------------
(defun acet-textmask-make-3dface (ENT OSET / TXT TXTLAY TBX FACE MOVDIST)
(setq TXT (entget ENT (list "*")) ; Get the text's edata
TXTLAY (cdr (assoc 8 TXT)) ; Get the layer of the text
)
(setq TBX (acet-geom-textbox TXT OSET)) ; Get the points arou
nd the text

(if TBX
(progn
(command "_.3dface") ; Create a 3DFace with invi
sible edges
(while TBX
(command "_i" (car TBX))
(setq TBX (cdr TBX))
)
(command "")
(setq FACE (entlast))
(command "_.change" FACE "" "_Prop" "_Layer" TXTLAY "") ; and set its laye
r
(setq MOVDIST (* 0.01 (cdr (assoc 40 TXT))))
(acet-xdata-set (list FACE "ACET-TEXTMASK"
(list
(list "TextObject" (cdr (assoc 5 TXT)) 1005)
(list "Offset" OSET 1040)
(list "ZOffset" MOVDIST 1040)
)
)
)
(acet-xdata-set (list ENT "ACET-TEXTMASK"
(list
(list "MaskObject" (cdr (assoc 5 (entget FACE))) 1005)
(list "MaskType" "3DFACE" 1000)
(list "Offset" OSET 1040)
(list "ZOffset" MOVDIST 1040)
)
)
)
(command "_.move" ENT FACE "" "0,0" (strcat "0,0," (rtos MOVDIST 2 8)))
(command "_.move" ENT "" "0,0" (strcat "0,0," (rtos MOVDIST 2 8)))
(acet-group-make-anon (list FACE ENT) "In use by TEXTMASK") ; make the tex
t and 3DFace a group
);progn then
)
)
; ------------------- MASK USING SOLID FUNCTION ------------------
; This function draws a solid ontop of text TXT using the
; offset value OSET. The solid and the TXT are then each raised
; in the z direction.
; ----------------------------------------------------------------
(defun acet-textmask-make-solid (ENT OSET / TXT TXTLAY TBX SOL MCOLOR TXTYP TXTS
TR)
(setq TXT (entget ENT (list "*")) ; Get the text's edata
TXTLAY (cdr (assoc 8 TXT)) ; Get the layer of the text
TXTYP (cdr (assoc 0 TXT)) ; Text or Mtext
TXTSTR (cdr (assoc 1 TXT))
)

(if (/= TXTSTR "")


(progn
(if (= TXTYP "TEXT")
(acet-ucs-cmd (list "_object" ENT)) ; set UCS to object
(acet-ucs-to-object ENT)
)
(setq TBX (acet-geom-textbox TXT OSET)) ; Get the points arou
nd the text
(if TBX
(progn
(setq MCOLOR (acet-getvar (list "acet_textmask_maskcolor")))
(if (= MCOLOR 0) (setq MCOLOR "BYBLOCK"))
(if (= MCOLOR 256) (setq MCOLOR "BYLAYER"))
(command "_.solid") ; Create a solid
(command (car TBX))
(command (cadr TBX))
(command (cadddr TBX))
(command (caddr TBX))
(command "")
(setq SOL (entlast))
(command "_.change" SOL "" "_Prop" "_Layer" TXTLAY ) ; Set its layer
(command "_color" (if MCOLOR MCOLOR 8) "") ; and its color
(acet-ucs-cmd (list "_previous")) ; reset the ucs
(entmake TXT) ; recreate text
(setq TXT (entlast)) ; such that it's on top
(acet-xdata-set (list SOL "ACET-TEXTMASK"
(list
(list "TextObject" (cdr (assoc 5 (entget TXT))) 1005
)
(list "Offset" OSET 1040)
)
)
)
(acet-xdata-set (list TXT "ACET-TEXTMASK"
(list
(list "MaskObject" (cdr (assoc 5 (entget SOL))) 1005
)
(list "MaskType" "SOLID" 1000)
(list "MaskColor" "SOLID" 1000)
(list "Offset" OSET 1040)
)
)
)
(command "_.move" TXT "" "0,0" "0,0")
(acet-group-make-anon (list SOL TXT) "In use by TEXTMASK") ; make the
text and solid a group

(entdel ENT) ; delete original text


)
); if TBX
)
)
)
; -------------------- OPTION GETTING FUNCTION -------------------
; This function returns a list of currently set textmask options
; ----------------------------------------------------------------
(defun acet-textmask-get-options (/ OSET MTYPE MCOLOR)
(setq OSET (acet-getvar '("acet_textmask_offset"))
MTYPE (acet-getvar '("acet_textmask_masktype"))
MCOLOR (acet-getvar '("acet_textmask_maskcolor"))
)
(if (or (not OSET) (not (= (type OSET) 'REAL))) ; If no prior valid setting
(setq OSET 0.35) ; use 0.35 as default.
)
(if (or (not MTYPE) (not (member MTYPE '("Wipeout" "3dface" "Solid")))) ; If n
o prior valid setting
(setq MTYPE "Wipeout") ; use Wipeout
as default.
)
(if (or (not MCOLOR) (not (= (type MCOLOR) 'INT))) ; If no prior valid setting
(setq MCOLOR 8) ; use color 8 as default
)
(list OSET MTYPE MCOLOR)
)
; --------------------- TEXT UNMASK FUNCTION ---------------------
; This function takes an entity name and removes any existing
; masking from it. GLST is the global group list as returned
; by the acet-textmask-group-list function
; ----------------------------------------------------------------
(defun acet-textmask-unmask (ENT GLST / DOIT RLST GDAT GNAM ELST ENT2 ETYP RETUR
N GDICT ZDIST)
(setq GDICT (car GLST)
GLST (cdr GLST)
DOIT T
) ; Initialize the continue
flag
(if (setq RLST (mapcar 'cdr (acet-list-m-assoc 330 (entget ENT)))) ; Get all 3
30 codes in text
(foreach GRP RLST ; step through each
(and
DOIT
(setq GDAT (entget GRP)) ; get its etype
(= "GROUP" (cdr (assoc 0 GDAT))) ; if it is a group
(setq ELST (mapcar 'cdr (acet-list-m-assoc 340 GDAT))) ; get its members
(= (length ELST) 2) ; if there are two
(member ENT ELST) ; And the text is in the
list
(if (eq (car ELST) ENT) ; get the member which is
not
(setq ENT2 (cadr ELST)) ; the text.
(setq ENT2 (car ELST))
)
(setq ETYP (cdr (assoc 0 (entget ENT2)))) ; get the entity type
(or
(= ETYP "WIPEOUT") ; make sure it is a wipeo
ut
(= ETYP "3DFACE") ; or a 3dface
(= ETYP "SOLID") ; or a Solid
)
(setq GNAM (cdr (assoc GRP GLST)))
(dictremove GDICT GNAM) ; explode the group
(entdel ENT2) ; delete the mask
(setq DOIT nil
RETURN ETYP
)
(progn
(if (setq ZDIST (acet-xdata-get (list ENT "ACET-TEXTMASK" "ZOffset")))
(command "_.move" ENT "" "0,0" ".xy" "0,0" (- 0 (* 2 ZDIST)))
)
(acet-xdata-set (list ENT "ACET-TEXTMASK"
(list
(list "MaskObject" nil)
(list "MaskType" nil)
(list "Offset" nil)
(list "ZOffset" nil)
(list "MaskColor" nil)
)
)
)
)
)
)
)
RETURN
)
; ----------------------------------------------------------------
; ---------------------- TEXT UNMASK PROGRAM ---------------------
; ----------------------------------------------------------------
(defun c:textunmask (/ FLTR CNT NUM GLST SS ENT)
(acet-error-init
(list
(list "cmdecho" 0
"limcheck" 0
"pickstyle" 0
)
T ;flag. True means use undo for error clean up.
);list
);acet-error-init

(setq FLTR '( (-4 . "<OR") ; Filter for ssget.


(0 . "MTEXT")
(0 . "TEXT")
(-4 . "OR>")
)
CNT 0
NUM 0
GLST (acet-textmask-group-list) ; Get all the groups in dr
awing

)
(princ "\nSelect text or MText object from which mask is to be removed.")
(setq SS (ssget FLTR))
(if SS
(setq SS (car (bns_ss_mod SS 3 T))) ; Remove all that are not in curren
t space or on locked layer
)
(if SS
(progn
(princ "\nUnmasking text ")
(While (setq ENT (ssname SS CNT)) ; step through each object in set
(if (acet-textmask-unmask ENT GLST)
(setq NUM (1+ NUM))
)
(acet-spinner)
(setq CNT (1+ CNT))
)
(cond
((= NUM 0)
(princ "\rNo masked text objects selected.")
)
((= NUM 1)
(princ "\rRemoved mask from one text object.")
)
(T
(princ (acet-str-format "\rRemoved mask from %1 text objects." (itoa
NUM)))
)
)
)
(prompt "\nNothing selected.")
)
(acet-error-restore) ; Restore values
)

; ----------------------------------------------------------------
; ----------------------- TEXTMASK PROGRAM -----------------------
; ----------------------------------------------------------------
(defun c:textmask (/ acet-textmask-get-text CNT GLST OSET ENT LOCKED SSMASTER
TMOPTIONS MTYPE ELAST)
; --------------------- Error initialization ---------------------
(acet-error-init
(list
(list "cmdecho" 0
"plinewid" 0
"highlight" 0
"osmode" 0
"dimzin" 0
"cecolor" "bylayer"
"limcheck" 0
"pickstyle" 0
"ucsicon" (getvar "ucsicon")
)
T ;flag. True means use undo for error clean up.
'(progn
(if SSMASTER (acet-ss-redraw SSMASTER 4))
(acet-sysvar-set (list "cmdecho" 0));turn cmdecho off
(command "_.redraw");do redraw
(acet-sysvar-restore);re-set cmdecho back
(princ)
;(command "_.redraw")
)
);list
);acet-error-init
(sssetfirst nil nil)

; ------------------ GET TEXT FROM USER FUNCTION -----------------


; This function queries the user for the text to process
; and returns a selection set
; ----------------------------------------------------------------
(defun acet-textmask-get-text (/ TMOPTIONS OSET OSETSTR MTYPE MCOLOR SELMODE E
N SS
SSLIST SSMASTER SSPREV MSKLOOP FLTR LOOP UNDOFLAG
UNDOMODE PT1 ANS WIPOUT MCOLOR_NEW UNDOLOOP PTLST
)

(if (member "wipeout.arx" (arx))


(setq WIPOUT 1)
)
(setq FLTR '( (-4 . "<OR") ; Filter for ssget.
(0 . "MTEXT")
(0 . "TEXT")
(-4 . "OR>")
)
LOOP T
UNDOFLAG 0
SSPREV (ssget "_p" FLTR) ; get the previous select
ion set for use w/ P option
SELMODE "Add" ; Set initial selection a
dd/remove mode
UNDOMODE "Add" ; Set initial undo add/re
move mode
)
(while LOOP
(setvar "errno" 0)
(setq TMOPTIONS (acet-textmask-get-options) ; Get the currently set o
ptions
OSET (nth 0 TMOPTIONS) ; Get the offset factor
OSETSTR (rtos OSET 2) ; Get the offset factor i
n string form
MTYPE (nth 1 TMOPTIONS) ; Get the mask type (wipe
out, 3dface, or Solid)
MCOLOR (nth 2 TMOPTIONS) ; Get the mask color (use
d for solid option)
)
(initget "Masktype Offset Undo Window Crossing BOX ALL Previous Add Remove
WPolygon CPolygon Fence _Masktype Offset Undo Window Crossing BOX ALL Previous
Add Remove WPolygon CPolygon Fence")
(princ (acet-str-format "\nCurrent settings: Offset factor = %1, Mask type
= %2" OSETSTR MTYPE))
(if (= MTYPE "Solid")
(princ (acet-str-format ", Mask color = %1" (itoa MCOLOR)))
)
(if (= SELMODE "Add")
(setq EN (entsel "\nSelect text objects to mask or [Masktype/Offset]: ")
)
(setq EN (entsel "\nSelect text objects to remove or [Masktype/Offset]:
"))
)
(cond
;-- object selected --
((and (= (type EN) 'LIST) ; If an ob
ject was selected
(= (type (setq EN (car EN))) 'ENAME)
(member (cdr (assoc 0 (entget EN))) '("MTEXT" "TEXT")) ; and it i
s TEXT or MTEXT
)
(if (not (acet-layer-locked (cdr (assoc 8 (entget EN)))))
(if (= SELMODE "Add")
(progn
(princ "\n1 found") ; report it
(redraw EN 3) ; Highlight the object
(setq SS (ssadd EN)
SSLIST (cons SS SSLIST) ; Add it to the list of s
election sets
SSMASTER (if SSMASTER ; and add it to the maste
r selection set
(ssadd EN SSMASTER)
(ssadd EN)
)
)
)
(progn
(if (and SSMASTER (ssmemb EN SSMASTER)) ; If the object has been
selected
(progn
(princ "\n1 removed") ; report it
(redraw EN 4) ; Unhighlight the object
(setq SS (ssadd EN)) ; make a selset out of it
(setq SSLIST (cons SS SSLIST) ; Add it to the list of s
election sets
SSMASTER (ssdel EN SSMASTER) ; and remove it from the
master selection set
)
)
)
)
)
(princ "\nObject is on a locked layer.")
)
)
;-- nothing selected --
((= (getvar "errno") 7) ; If thin air was selecte
d
(setq PT1 (cadr (grread t))) ; grab the last point
(prompt "\nOther corner: ")
(command "_.move" "_box" PT1) ; use the move command to
get box selection
(setvar "cmdecho" 1)
(command pause)
(setvar "cmdecho" 0)
(command "")
(if (wcmatch (getvar "cmdnames") "*MOVE*") ; If something was select
ed
(progn
(command "0,0" "0,0") ; move it nowhere
(setq SS (ssget "_p" FLTR)) ; and filter the selectio
n for text objects
(if SS ; If text was selected
(if (= SELMODE "Add") ; If in add selection mod
e
(progn
(princ (acet-str-format "\n%1 found" (itoa (sslength SS))))
; report it
(setq SSLIST (cons SS SSLIST) ; Add it
to the list of selection sets
SSMASTER (acet-ss-union (list SSMASTER SS)); and add i
t to the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
(progn ; if in remove selectio
n mode
(if (and SSMASTER (setq SS (acet-ss-intersection SS SSMASTER
))) ; If selected items to be removed
(progn
; are in the master ss
(princ (acet-str-format "\n%1 removed" (itoa (sslength S
S)))) ; report it
(setq SSLIST (cons SS SSLIST) ; Ad
d it to the list of selection sets
SSMASTER (acet-ss-remove SS SSMASTER) ; and r
emove it from the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
)
)
)
)
)
)
)
;-- get offset value --
((= EN "Offset")
(princ (acet-str-format "\nMask offset currently set to %1" OSETSTR))
(initget 4)
; No negative values allowed
(setq ANS (getreal (acet-str-format "\nEnter offset factor relative to
text height <%1>: " OSETSTR)))
(if ANS
(acet-setvar (list "acet_textmask_offset" ANS 3)) ; If setvar functi
on exists use it
)
)
;-- get mask type --
((= EN "Masktype")
(setq MSKLOOP T)
(while MSKLOOP
(princ (acet-str-format "\nMask type currently set to %1" MTYPE))
(if (= WIPOUT 0)
(progn
(initget "3dface Solid _3dface Solid")
(setq ANS (getkword (acet-str-format "\nSpecify entity type to u
se for mask [3dface/Solid] <%1>: " MTYPE )))
)
(progn
(initget "Wipeout 3dface Solid _Wipeout 3dface Solid")
(setq ANS (getkword (acet-str-format "\nSpecify entity type to u
se for mask [Wipeout/3dface/Solid] <%1>: " MTYPE )))
)
)
(cond
((and (= ANS "Wipeout") (not WIPOUT))
(princ "\nLoading WIPEOUT for use with TEXTMASK...")
(setq WIPOUT 1)
(setq MSKLOOP nil)
(acet-setvar (list "acet_textmask_masktype" ANS 3)) ; Save the
mask type
)
((or (= ANS "Solid") (and (not ANS) (= MTYPE "Solid")))
(setq MCOLOR_NEW (acad_colordlg MCOLOR))
(if (and MCOLOR_NEW) ; If OK was sele
cted
(progn
(acet-setvar (list "acet_textmask_masktype" ANS 3)) ; Save
the mask type
(acet-setvar (list "acet_textmask_maskcolor" MCOLOR_NEW 3))
; and the color
)
)
(setq MSKLOOP nil)
)
((not ANS)
(setq MSKLOOP nil)
)
(T
(acet-setvar (list "acet_textmask_masktype" ANS 3)) ; If setvar
function exists use it
(setq MSKLOOP nil)
)
)
)
)
;-- switch Add/Remove mode --
((or (= EN "Add") (= EN "Remove"))
(if (/= SELMODE EN) ; If the selected mode is
not already current
(setq SSLIST (cons SELMODE SSLIST) ; uappend the undo list w
ith the current mode
SELMODE EN ; set the new selection m
ode current, and
UNDOMODE EN ; set the undo mode to th
e same
)
)
)
;-- do an undo --
((= EN "Undo")
(setq UNDOLOOP T)
(while UNDOLOOP ; start to loop
(cond
((not SSLIST) ; If there is no un
do list
(princ "\nAll selections have been undone.") ; report it
(setq UNDOLOOP nil) ; and break the loo
p
)
((equal (type (car SSLIST)) 'STR) ; If the current list ite
m is a mode
(setq UNDOMODE (car SSLIST) ; switch the undo mode
SSLIST (cdr SSLIST) ; and remove the item
)
)
((equal (type (car SSLIST)) 'PICKSET) ; If the current list ite
m is a selset
(if (= UNDOMODE "Add") ; and the undo mode is ad
d
(progn
(acet-ss-redraw (car SSLIST) 4) ; Unhi
ghlight the selection
(setq SSMASTER (acet-ss-remove (car SSLIST) SSMASTER) ; Remo
ve the set from the master list
SSLIST (cdr SSLIST) ; and s
horten the list
)
(acet-ss-redraw SSMASTER 3) ; rehighlight the master
selection
)
(progn ;
if the undo mode is remove
(setq SSMASTER (acet-ss-union (list (car SSLIST) SSMASTER))
; add the selset to the master list
SSLIST (cdr SSLIST) ;
and shorten the list
)
(acet-ss-redraw SSMASTER 3) ; rehighlight the master
selection
)
)
(setq SELMODE "Add" ; Set the selection mode
to add
UNDOLOOP nil ; and exit the undo loop
)
)
)
)
)
;-- get all --
((= EN "ALL")
(setq SS (ssget "_x" FLTR))
(if SS
(setq SS (car (bns_ss_mod SS 3 T))) ; Remove all that are not
in current space or on locked layer
(princ "\nNothing found")
)
(if SS ; If text was selected
(if (= SELMODE "Add") ; If in add selection mod
e
(progn
(princ (acet-str-format "\n%1 found" (itoa (sslength SS)) )) ;
report it
(setq SSLIST (cons SS SSLIST) ; Add it to
the list of selection sets
SSMASTER (acet-ss-union (list SSMASTER SS)); and add it to
the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
(progn ; if in remove selection
mode
(if (and SSMASTER (setq SS (acet-ss-intersection SS SSMASTER)))
; If selected items to be removed
(progn ; a
re in the master ss
(princ (acet-str-format "\n%1 removed" (itoa (sslength SS))
)) ; report it
(setq SSLIST (cons SS SSLIST) ; Add it
to the list of selection sets
SSMASTER (acet-ss-remove SS SSMASTER) ; and remov
e it from the master selection set
)
(acet-ss-redraw SS 4)
)
)
)
)
)
)
;-- do a window, box, or crossing --
((or (= EN "Window") (= EN "Crossing")(= EN "BOX"))
(command "_.move" (strcat "_" EN))
(princ "\nFirst corner: ")
(command pause)
(princ "Other corner: ")
(command pause "") ; use the move command to
get box selection
(if (wcmatch (getvar "cmdnames") "*MOVE*") ; If something was select
ed
(progn
(command "0,0" "0,0") ; move it nowhere
(setq SS (ssget "_p" FLTR)) ; and filter the selectio
n for text objects
(if SS ; If text was selected
(if (= SELMODE "Add") ; If in add selection mod
e
(progn
(princ (acet-str-format "\n%1 found" (itoa (sslength SS)) ))
; report it
(setq SSLIST (cons SS SSLIST) ; Add it
to the list of selection sets
SSMASTER (acet-ss-union (list SSMASTER SS)); and add i
t to the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
(progn ; if in remove selection
mode
(if (and SSMASTER (setq SS (acet-ss-intersection SS SSMASTER
))) ; If selected items to be removed
(progn
; are in the master ss
(princ (acet-str-format "\n%1 removed" (itoa (sslength S
S)) )) ; report it
(setq SSLIST (cons SS SSLIST) ; Ad
d it to the list of selection sets
SSMASTER (acet-ss-remove SS SSMASTER) ; and r
emove it from the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
)
)
)
(princ "\nNothing found")
)
)
(princ "\nNothing found")
)
)
;-- do fence or window/crossing poly --
((or (= EN "WPolygon") (= EN "CPolygon") (= EN "Fence"))
(if (= EN "Fence")
(setq EN (substr EN 1 1)
PTLST (acet-ui-fence-select)
)
(setq EN (substr EN 1 2)
PTLST (acet-ui-polygon-select (if (= EN "WP") 0 1))
)
)
(if (and PTLST (setq SS (ssget (strcat "_" EN) PTLST FLTR)))
(setq SS (car (bns_ss_mod SS 3 T))) ; Remove all that are not
in current space or on locked layer
(princ "\nNothing found")
)
(if SS
(if (= SELMODE "Add") ; If in add selection mod
e
(progn
(princ (acet-str-format "\n%1 found" (itoa (sslength SS)) )) ;
report it
(setq SSLIST (cons SS SSLIST) ; Add it to
the list of selection sets
SSMASTER (acet-ss-union (list SSMASTER SS)); and add it to
the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
(progn ; if in remove selection
mode
(if (and SSMASTER (setq SS (acet-ss-intersection SS SSMASTER)))
; If selected items to be removed
(progn ; a
re in the master ss
(princ (acet-str-format "\n%1 removed" (itoa (sslength SS))
)) ; report it
(setq SSLIST (cons SS SSLIST) ; Add it
to the list of selection sets
SSMASTER (acet-ss-remove SS SSMASTER) ; and remov
e it from the master selection set
)
(acet-ss-redraw SS 4)
)
)
)
)
)
)
;-- get previous --
((= EN "Previous")
(if (setq SS SSPREV) ; If text was in the prev
ious Selection set
(setq SS (car (bns_ss_mod SS 3 T))) ; Remove all that are not
in current space or on locked layer
(princ "\nNo text or Mtext in previous selection set.")
)
(if SS
(if (= SELMODE "Add") ; If in add selection mod
e
(progn
(princ (acet-str-format "\n%1 found" (itoa (sslength SS)) )) ;
report it
(setq SSLIST (cons SS SSLIST) ; Add it to
the list of selection sets
SSMASTER (acet-ss-union (list SSMASTER SS)) ; and add i
t to the master selection set
)
(acet-ss-redraw SSMASTER 3)
)
(progn ; if in remove selection
mode
(if (and SSMASTER (setq SS (acet-ss-intersection SS SSMASTER)))
; If selected items to be removed
(progn ; a
re in the master ss
(princ (acet-str-format "\n%1 removed" (itoa (sslength SS))
)) ; report it
(setq SSLIST (cons SS SSLIST) ; Add it
to the list of selection sets
SSMASTER (acet-ss-remove SS SSMASTER) ; and remov
e it from the master selection set
)
(acet-ss-redraw SS 4)
)
)
)
)
)
)
;-- exit --
((not EN)
(setq LOOP nil)
)
)
)
SSMASTER
)
; ----------------------------------------------------------------
; MAIN PROGRAM
; ----------------------------------------------------------------

; ------------------------ Get User input ------------------------


(setq SSMASTER (acet-textmask-get-text))
(setq CNT 0 ; Initilize the counter.
TMOPTIONS (acet-textmask-get-options) ; Get the currently set o
ptions
OSET (nth 0 TMOPTIONS) ; Get the offset factor
MTYPE (nth 1 TMOPTIONS) ; Get the mask type (wipe
out or 3dface)
GLST (acet-textmask-group-list) ; Get all the groups in d
rawing
)
; ---------------------- get text to mask ------------------------

(if SSMASTER
(progn
(acet-ss-redraw SSMASTER 4) ; Unhighlight everything
(if (= MTYPE "Wipeout")
(command "_.wipeout" "_frame" "_off") ; Turn off wipeout frames
)
(if (acet-layer-locked (getvar "clayer")) ; if current layer is lo
cked
(progn
(command "_.layer" "_unl" (getvar "clayer") "") ; unlock it
(setq LOCKED T)
)
)
(setvar "ucsicon" 0)
; ----------------- Step through each and mask -------------------
(princ (acet-str-format "\nMasking text with a %1 " MTYPE ))
(setq ELAST (entlast))
(While (setq ENT (ssname SSMASTER CNT)) ; step through each objec
t in set
(acet-textmask-unmask ENT GLST) ; remove any existing mas
ks

(cond
((= MTYPE "Wipeout")
(acet-textmask-make-wipeout ENT OSET)
)
((= MTYPE "3dface")
(acet-textmask-make-3dface ENT OSET)
)
((= MTYPE "Solid")
(acet-textmask-make-solid ENT OSET)
)
)
(if (not (= MTYPE "Wipeout")) ; Since wipeout is noisey
exclude
(acet-spinner) ; from spinner activity
)
(setq CNT (1+ CNT)) ; get the next text item
); while
(if LOCKED (command "_.layer" "_lock" (getvar "clayer") "")) : relock if n
eeded
(princ (acet-str-format "\r%1 text items have been masked with a %2." (ito
a CNT) MTYPE))
(setq SSMASTER (acet-ss-new ELAST)) ; Gather up all new enti
ties
(if SSMASTER (command "_.select" SSMASTER "")) ; and make them the curre
nt ss
);progn
(prompt "\nNothing selected.")
);if SSMASTER
(acet-error-restore) ; Restore values
)

(princ)oß¾-.[Íúc Éþë

FÃþd¼ù
/‾ÚQã1Àd?;
Ãd MG
ijìN'nµZ
I vñþìýõu1n
2ÍÐ
É0 Q)
ìÀ<&tûù
ïªN³ó³r¹
Á`ãꗶÃÇ
ùd6bÏQ³Ù
 Qî½X,
H ®jnµ7LößF n= ì½Në <± ½Û>!O ìý^|B 0ÙýÎ yÂdº'ä ì(û
C UN?qÜ—Kív Ôg á° Épл»+ L§# êa ð%J&ûB
,µ¢
=¶-¼ìø
'¹=ßïweÏA
³ÙÔ¡Çãa:
OLº x2
w$Ä]Ã
©%SA?I6
'jcÅ<ÏXö0Þ1
± >}lèv;
%×wló É#'³Éd2jµ¢n§3
f>TÂh
 ;;; 0 {½.KÃL
JmH í$þ9
wâ8ûßìM
"-à²ï ]Û|a²#²¡ßëÙÙçÉt6
~/]âì¤o8è§n s~6¬RÈ ³§Ì~ÏÄYڍ6 '
;;; TIMESTAMP.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: ;
;;; This exercise demonstrates the ability to create a command using ;
;;; the functions vlax-add-cmd and vlax-reg-app. ;
;;; With this exercise the novice can create commands without the use ;
;;; of prefixing a function with a c: . ;
;;; No demand-loading commands are associated with this exercise. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates adding an automatic plot time-stamp. ;
;;; By attaching a reactor to AutoCAD's internal PLOT command, a ;
;;; drawing can be time-stamped every time it is plotted. In this ;
;;; example, a TEXT entity will be created at the 0,0,0 coordinate ;
;;; and will show the time-stamp text. ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model and reactor functions here
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; Function: CREATE-TIMESTAMP ;
;;; ;
;;; Description: Creates a text object with the plot date. ;
;;; Used as a portion of a call back procedure within ;
;;; the timestamp-callback reactor function. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: A Vla Text Object ;
;;; ;
;;; Usage: (create-timestamp) ;
;;;--------------------------------------------------------------------;
(defun create-timestamp (/ acadapp acaddoc mspace)
(setq acadapp (vlax-get-acad-object)
acaddoc (vla-get-ActiveDocument acadapp)
mspace (vla-get-ModelSpace acaddoc)
)
;;; Add our TimeStamp Text here
(setq TextObj (vla-addText
mspace
"Plot date & time"
(vlax-3d-point '(0.0 0.0 0.0))
2.5
)
)
)
;;;--------------------------------------------------------------------;
;;; Function: UPDATE-TIMESTAMP ;
;;; ;
;;; Description: Creates a text object with the plot date. ;
;;; Used as a portion of a call back procedure within ;
;;; the timestamp-callback reactor function. ;
;;; ;
;;; Arguments: ;
;;; timestamp-object = A vla text object. ;
;;; ;
;;; Returned Value: The updated timestamp-object as a vla text object ;
;;; ;
;;; Usage: (update-timestamp vlaTextObject) ;
;;;--------------------------------------------------------------------;
(defun update-timestamp (timestamp-object / now)
(setq now (menucmd "M=$(edtime,$(getvar,date),D MON YY - HH:MM)"))
(cond ((or (not timestamp-object)
(vlax-erased-p timestamp-object)
)
(setq timestamp-object (create-timestamp))
)
)
(if (vlax-write-enabled-p timestamp-object)
(vla-put-TextString timestamp-object now)
)
timestamp-object
)
;;;--------------------------------------------------------------------;
;;; Function: TIMESTAMP-CALLBACK ;
;;; ;
;;; Description: Function which is invoked when the plot command ;
;;; is issued. ;
;;; ;
;;; Required Functions: ;
;;; retrieve-timestamp ;
;;; update-timestamp ;
;;; save-timestamp ;
;;; ;
;;; Arguments: ;
;;; ;
;;; calling-reactor = A vlr reactor object which is Automatically ;
;;; passed to this function from within ;
;;; Visual LISP ;
;;; when the PLOT command is issued. ;
;;; ;
;;; command-list = A list of uppercase strings which is ;
;;; Automatically passed to this function from ;
;;; within Visual LISP and contains a list of ;
;;; commands as a list. ;
;;; when the PLOT command is issued. ;
;;; ;
;;; Returned Value: The updated timestamp-object as a vla text object ;
;;; ;
;;; Usage: (update-timestamp vlaTextObject) ;
;;;--------------------------------------------------------------------;
(defun timestamp-callback (calling-reactor command-list / time-stamp)
;; Debuging princ's here
;;(princ calling-reactor)
;;(princ command-list)
(cond ((member "PLOT" command-list)
(setq time-stamp (retrieve-timestamp)
time-stamp (update-timestamp time-stamp)
)
(save-timestamp time-stamp)
)
)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: SAVE-TIMESTAMP ;
;;; ;
;;; Description: Saves user defined data associated with the custom;
;;; timestamp text object. ;
;;; ;
;;; Arguments: ;
;;; timestamp-object = A vla text object. ;
;;; ;
;;; Returned Value: a vla text object ;
;;; ;
;;; Usage: (save-timestamp vlaTextObject) ;
;;;--------------------------------------------------------------------;
(defun save-timestamp (timestamp-object)
(vlax-ldata-put "TIME-STAMP" "TEXT-OBJECT" timestamp-object)
)
;;;--------------------------------------------------------------------;
;;; Function: RETRIEVE-TIMESTAMP ;
;;; ;
;;; Description: Retrives the defined data associated with the ;
;;; custom timestamp text object. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a vla text object ;
;;; ;
;;; Usage: (retrieve-timestamp) ;
;;;--------------------------------------------------------------------;
(defun retrieve-timestamp ()
(vlax-ldata-get "TIME-STAMP" "TEXT-OBJECT")
)
;;;--------------------------------------------------------------------;
;;; Function: REGISTER-TIMESTAMP ;
;;; ;
;;; Description: Registers time stamp as a valid ACAD command ;
;;; without the need to define a c: function. ;
;;; Once REGISTER-TIMESTAMP is registered with ACAD ;
;;; It can be used without having to explicitly load ;
;;; during an ACAD startup. This function also ;
;;; guarantees the reactor is present and enabled. ;
;;; ;
;;; Required Functions: ;
;;; Initialize-TimeStamp-Reactor ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a user defined function ;
;;; such as: #<USUBR @0285f6f8 REGISTER-TIMESTAMP> ;
;;; ;
;;; Usage: (register-timestamp) ;
;;;--------------------------------------------------------------------;
(defun register-timestamp ()
(princ "\nRegistering: TimeStamp ")
;;; incase the reactor was removed
(Initialize-TimeStamp-Reactor)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: UNREGISTER-TIMESTAMP ;
;;; ;
;;; Description: Un-registers the time stamp as a valid ACAD ;
;;; command. In this case the user would have to ;
;;; explicidly call the UNREGISTER-TIMESTAMP command. ;
;;; This function also disables all reactors ;
;;; associated with the timestamp object. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: a user defined function ;
;;; such as: #<USUBR @0285f6f8 REGISTER-TIMESTAMP> ;
;;; ;
;;; Usage: (unregister-timestamp) ;
;;;--------------------------------------------------------------------;
;;; This function when called will change the timestamp
;;; from demand loading when acad starts.
;;;
(defun unregister-timestamp ()
(princ "Command has been Unregistered\n")
;;; Remove the reactors which have a value of "TimeStamp Reactor" as
;;; part of their data. We do this just in case there is more than one.
(if (EditorReactorList)
(foreach EditorReactor (EditorReactorList)
(if (eq (type EditorReactor) 'VLR-Editor-Reactor)
(progn
(princ (vlr-data EditorReactor))
(if (= "TimeStamp Reactor" (car (vlr-data EditorReactor)))
(progn
(princ "\nRemoving: ")
(princ EditorReactor)
(vlr-remove EditorReactor)
)
)
) ;end progn
)
)
(princ "\nNo EditorReactors in Drawing !")
)
(princ)
)
;;;--------------------------------------------------------------------;
;;; Function: EDITORREACTORLIST ;
;;; ;
;;; Description: This function scans all editor reactors. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: Returns a list of all editor reactors. ;
;;; Such as: ;
;;; (#<VLR-Editor-reactor> #<VLR-Editor-reactor>) ;
;;; ;
;;; Usage: (editorReactorList) ;
;;;--------------------------------------------------------------------;
;;; Returns a list of all editor reactors
;;;
(defun editorReactorList ()
(car (vlr-reactors :VLR-Editor-Reactor))
)
;;;--------------------------------------------------------------------;
;;; Function: REMOVE-TIMESTAMP-COMMANDS ;
;;; ;
;;; Description: This function removes all time stamp command ;
;;; created with vlax-add-cmd. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: Returns a list consisting of two elements. The ;
;;; first if present and T denotes the command ;
;;; "Register-TimeStamp" was removed succesfully. Nil ;
;;; is returned if the command was not present. The ;
;;; second if present and T denotes the command ;
;;; "UnRegister-TimeStamp" was removed succesfully. ;
;;; Nil is returned if the command was not present. ;
;;; Such as: ;
;;; (T T) ;
;;; ;
;;; Usage: (Remove-TimeStamp-Commands) ;
;;;--------------------------------------------------------------------;
(defun Remove-TimeStamp-Commands ()
(list
(vlax-remove-cmd "Register-TimeStamp")
(vlax-remove-cmd "UnRegister-TimeStamp")
)
)
;;;--------------------------------------------------------------------;
;;; Function: INITIALIZE-TIMESTAMP-REACTOR ;
;;; ;
;;; Description: This function creates a TimeStamp reactor which ;
;;; called when an ACAD command has been invoked. ;
;;; Furthermore, This function places a text value of ;
;;; "TimeStamp Reactor" within the reactor data to ;
;;; distinguish this editor reactor. ;
;;; ;
;;; Required Functions: ;
;;; timestamp-callback ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: Returns a vlr reactor object. ;
;;; Such as: ;
;;; #<VLR-Editor-reactor> ;
;;; ;
;;; Usage: (Initialize-TimeStamp-Reactor) ;
;;;--------------------------------------------------------------------;
;;; Initializes the reactor
(defun Initialize-TimeStamp-Reactor ()
(vlr-Editor-reactor
(list "TimeStamp Reactor") ; identify this as a timestamp reactor
'((:vlr-commandEnded . timestamp-callback))
)
)
;;; ----------------------------------------------------------------------
;;; Description and usage of this function:
;;;
;;; Events to be triggered upon Loading...
;;; 1. Just in case the commands "Register-TimeStamp" and
;;; "UnRegister-TimeStamp" are defined lets remove them.
;;; If a particular command does not exist the call to vlax-remove-cmd
;;; will return nil otherwise it returns T if the functions exist.
(setq removeResult (Remove-TimeStamp-Commands))

;;; 2. This will be evaluated at load time also.


;;; Place the register timestamp command name.
;;; In this fashion you will have defined a new
;;; command called "Register-TimeStamp"
;;; almost equivalent to "C:Register-TimeStamp"
(vlax-add-cmd
"Register-TimeStamp"
;; command name
(function register-timestamp)
;; function to excecute
)
;;; 3. This will be evaluated at load time also.
;;; Place the unregister timestamp command name.
;;; In this fashion you will have defined a new
;;; command called "UnRegister-TimeStamp"
;;; almost equivalent to "C:UnRegister-TimeStamp"
(vlax-add-cmd
"UnRegister-TimeStamp"
;; command nanme
(function unregister-timestamp)
;; function to excecute
)

;;; 4. This will be evaluated at load time also.


;;; Print a command usage for the user
(progn
(princ
"\nTime Stamp Loaded:\nTo start use Register-TimeStamp. \nTo disable use UnR
egister-TimeStamp."
)
(princ)
)

;;; EOF
C\}åàÿì
$¡ ŶKé }ýÉøKþÅ"®|Ðï;
JÑUA׺µÏÕòÄ-Rï
Rrm% ì,v\[
Ä  S  |di¼½½ýîÝ»÷m® çè¸X&a5 £"ZÇVp25 jm¢ZD%p Ð3 Q`A
ÂÁÂ‾9 ¦Ð
}l|¨§C È/§ ‾°gk?G0á øiäd }Pí¶¥Àx5ø(2÷ñãG °ÕÖê*ù® O ÃB`é ëh¦.YºLµ6 ðä] ù âÉ«©áß 0 $²' O& èé
^'`( ÒÇA%(i 9ú 9 &Ã4P9èÄ
ÈMHÇRzÒØE ,öð
—Ö ࣩÂîîÊ闶VW)ô,,J¥ Fý×AÎH ì ÛàU"`O²`=&¦ 9ú 9¤±) Ñ ¨ c' * P 3$B©³¥ O * ^{JEWŽ½] ð©
E¹ &ë #ÛS¦Æ¬t
L:ó(
üpD£â9HÏh²n
‾$ 3 ÄxFL¤
¬0LÐS¼Hê
CJÌ©fô ÒØK"
/E5ý¡s
n ÅÔNYK^9©ù$Æ
ÃÃ °×Öê*Å¡W
â=H> zÑ d¨.¿zà ¢E ú -Sít ö÷÷ÚÚJ¥ïW $ò]
Ê|
HIÆ4"LÁÅ>2©Ö:!Tu
Ì7V² ¾ b ËY2+â ¬+®Æ Cw1 ãȍ ¨± &¢êá]< m¼ ~ Fe(èIM iØ Öív Âa[»Véû%! ñ 1±¦Xw²^T
ÕÖMø
ìET`îås5
6ú‾ߍÆBI,
þ.f)t.
9"ÜrÄV0
‾,- ø¬¦
> ¿ ¼>9 §AÍ :Ü[ ïõ :m ®iøeUÇóI F  À—A uL3žXÎR¬Â  WÒyP _âÛ D
38>k ¾_ò  Teî ¢ »ÛdÝ ÕáCÿ¨.?*Óo|—' |Úìö«`Wú®5d ^‾ßÚ(*eqT ér çøv¤tbyä5Y7ÀE50ÙÓeA Pø¤Âz
Ö¶vz_ ¬Ì|1Í~¨Ô@µ»ý6IC¨WoH >mï α y _ñF <
 eY ¶¶ú‾Ý<à %8 Ë yQä1ø$1  É¡é¬ª è¹Í gøKcµ2) 0ð8 ± ímíwÜ9¡ÈbLÿtQ , ¢Ñ OY69Ü}¦ÖÙãy — —ú‾
|&ê6ir¸û,f9¶ ¢(Ò-ZýwÜl E ¥Òél>Ë©À¡ê î > y í ªª| VWi>+¦ ôËç9@(*e }7É î >ËòÛ Ø e F+u óÉl ýûó,ç*ð
v b  Â ,¢¢< [bæR/¨pO©ä© HíWQj E ìÜ ] 9hyAë¨=Lv
^y
j
n£D¿l¿
Ö%ÝÔ
YUý9I´e
T°ÓY¬}.á$¥¸ÿßóÿf
!Ë¢¹^î'
Ý)gûÿý.
³Kãã(ä
$±bùE
EUe @Æa aÆ-K6¶Û
(8¤Æt
&{¤ªÐiUd
ë<Icå
HÅÛ föæðm|v)M8h!K
o*- Îo ?çì Ï.£¡ê¶ÔC
yA‾* Ò(JBl¿
 X´ ÁyTeÆõ
ÇÇ* fâ¿Äg
 ÝóÓÓÓcÆF¬¹Ä>²®ºÔU©¹w
²4¦ Ê" < ] Ád `ÂnGD<
E-E—ß%¦z/ôJ Æ øÜ &ËØ `Ï»;0.a÷Ó7pvé8
É&t
æ ¥dXW
1û¡)ëJ»
÷.Ðè,õ&eì 4Yû¢ î´ãÆE|ÙD uóëY e  óT ` oæw;ñsréå8
ea¶ {¦»N= kib :yõtavë 3 <OYE©E;ÑÎ ³T3Ö.nà
COÜ)j³}
+ ¦`vq¬÷.Ð0
Ùö&¤Ï~/îÍjé#(õBçd
GpV S£«¹Tà pÐ(¤®m
=w«  î`BòdQ
ÌvGû¾hg
leÚ¡)ù½=TMíÌ¡0kç°D
AÇlè À ì  WöÜÔC
:ßÐ8â§É<Õ0ä
/á +2iÿìRS
W VJaluz
íkÛºm Tö§9
î]Hw `¢®Ì
:Bjý0Êzµ
 8h.U
öÕvF àBÌ LEQ~¶7@/fï»CëÎ Ó Ot½lçK b° yú¤|  S- < !9J 5íu {É, ¦Æ P a× Æ Ñ tÎ M ©[£¶A/ú
z CO\ý —ö{e—%«k ¹dB¬;À&"óæÊk ^ãhàºe o`á 4ÊÿéÈÑ È< ¹²®+oq HaËß Ï¥qpñá [°P^ ¸äÍá; \z{{i ÷9º Gp
ÿ9 —
endstream
209
endobj
0 obj<</CropBox[0 0 612 792]/Parent 502 0 R/Contents 211 0 R/Rotate 0/MediaB
ox[000obj<</XObject<</Im1991
210
endobj 612 792]/Resources 210213
0 R/Type/Page>>
0 R/Im1993 215 0 R/Im1994 216 0 R/Im2031 217 0
R/Im1636 212 0 R/Im1807 218 0 R/Im207 212 0 R/Im1650 220 0 R/Im210 222 0 R/Im218
223 0 R/Im196 225 0 R/Im1834 226 0 R/Im1756 227 0 R/Im1009 212 0 R/Im1987 214 0
R/Im1845 212 0 R/Im1012 228 0 R/Im1709 477 0 R>>/ColorSpace<</Cs6 516 0 R>>/Fon
t<</TT1 522 0 R/TT2 513 0 R/TT3 514 0 R/TT4 515 0 R/TT5 528 0 R/TT6 523 0 R/TT7
458 0 R/TT9 459 0 R;;;
;
;;; TMATRIX.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates the use of vla-TransformBy to modify ;
;;; AutoCAD drawing entities ;
;;;--------------------------------------------------------------------;
;;; Load the AutoCAD 2000 COM object model functions here
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; Function: none ;
;;; ;
;;; Description: a sample load and execute upon loading. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: Vla Object ;
;;; ;
;;; Usage: Load and evaluate ;
;;;--------------------------------------------------------------------;
;|
vla-TransformBy
Moves, scales, or rotates an object given a 4 x 4 transformation matrix.
The following table demonstrates the transformation matrix
configuration, where R = Rotation, and T = Translation:
'(
(R00 R01 R02 T0)
(R10 R11 R12 T1)
(R20 R21 R22 T2)
(0.0 0.0 0.0 1.0)
)
|;
(setq IAcadApplication (vlax-get-acad-object)
ActiveDocument (vla-get-ActiveDocument IAcadApplication)
ModelSpace (vla-get-ModelSpace ActiveDocument)
)
;Rotation Matrix: 90 Degrees about point 0,0,0
(setq ma1 '((0.000000 -1.000000 0.000000 0.000000)
(1.000000 0.000000 0.000000 0.000000)
(0.000000 0.000000 1.000000 0.000000)
(0.000000 0.000000 0.000000 1.000000)))
;Scaling Matrix: scale by 1.707107 about point 5,5,0
(setq ma2 '((1.707107 0.000000 0.000000 5.000000)
(0.000000 1.707107 0.000000 5.000000)
(0.000000 0.000000 1.707107 0.000000)
(0.000000 0.000000 0.000000 1.000000)))
;Translation Matrix: move an entity by 10,10,0
(setq ma3 '((1.000000 0.000000 0.000000 10.000000)
(0.000000 1.000000 0.000000 10.000000)
(0.000000 0.000000 1.000000 0.000000)
(0.000000 0.000000 0.000000 1.000000)))
;Scaling Matrix: scale by 10 at point 0,0,0
(setq ma4 '((10.000000 0.000000 0.000000 0.000000)
(0.000000 10.000000 0.000000 0.000000)
(0.000000 0.000000 10.000000 0.000000)
(0.000000 0.000000 0.000000 1.000000)))
;Scaling Matrix: scale by 10 at point 2,2
(setq ma5 '((10.000000 0.000000 0.000000 -18.000000)
(0.000000 10.000000 0.000000 -18.000000)
(0.000000 0.000000 10.000000 0.000000)
(0.000000 0.000000 0.000000 1.000000)))
;; New for AutoCAD 2000 - Create and Fill A Variant Array for the Transforms
(setq clr 0)
(foreach x (list 'ma1 'ma2 'ma3 'ma4 'ma5)
(progn
(setq translen (length (eval x)))
(setq TransDataA (vlax-make-safearray vlax-vbDouble (cons 0 (1- translen)) (
cons 0 (1- translen))))
(vlax-safearray-fill TransDataA (eval x))
(setq TransData (vlax-make-variant TransDataA (logior vlax-vbarray vlax-vbDo
uble)))
(setq line (vla-AddLine ModelSpace (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-p
oint '(10.0 10.0 0.0))))
(vla-TransformBy line TransData)
(vla-Put-Color line (setq clr (1+ clr)))
(vla-Update line)
)
)
Ü lï_Å ß(Êçµaf %kà.«¸ =³8 «¢®  ÊO~`1 s§+ ìéñ EïP «æ°'O?v,Å8-Z(] YÂDzÏéê Á j Cßçt£ßó O
éssô{
u»ò§`Eá$ mEwR
qϲ/unü
?oú:¼¬,b}
¼sÁ$ò
y)ÝáQËlûÿMWÓ÷[СýÎãæÿ¥
ºn)Q j)iW
BÇÏ
};£<N6×½n>¦åÿ´*I 
,U?íÙû ³ "ý¨—Qþ¼k¶'
xZýj2] ÉSMX
Fd.f§1kp?²# Þ /d?ä(ÆÛH0
ü í¸e(l@ ô°)á§J_W I Ï~v °© ù :²ÓÎÓyd]2±ö ` Ñ)^_Kèõ ¿ñen ¬SêuuY 
j¦¼
h -To±v#
f|W¸vôùX
NÑ(êQÿ¼³£ÔÍ{ 
NIÇq@N¨CQk'   ) —oÁA×ëß Ý§î pàÜMu\[£H´p-lÈ=âZ÷ôlônÝW -±OßVY¸h'*¦³]° Þ Úñ
 ËïUèQ[¹¸ ü "‾¡ æ8Â#\[nÃÕ ¢~+ý ]d~¾¿AöÖßÆæ Æ&"
ú7
}U7
Æ´él5)
ÓÏR k)Ûú#oû
vUýhÊPúT
/G Ôì¹Ø0imø¹.7çª9ø³£
1 ßQ.á¡;Î ¶¬4Á(ã<nO$ºFÇ
‾ÎnK ÅË6Í? ÝÚç
6 @ ÎËÁäÖ(Ã
4L"éÉìFÒ&ÿß
ñw MmçÝj
Mu* û¶òÛ eÄ¥º [ð©íçsÔpÄ.!Ül
i%'Ôй]m—å ÃJ»©¶Õa ¾¬@NUî¶\D(» lÈzL gø
 A2lÅ8D ¦ ØÑU@ ÄD Ë<ogæÙ¬ }ÑÚ Ââõ\ùÛ ?Rñ ¾î× ÇôTìÍ¥_Wðmi]ý [ l [&H— ñÙ* å ËÉg `d ` Ò^ù8Z þ
\rv
úÔ¼ ËSp9:oÏ qÿr:fîC!ãb\c1£cØÁ$} â/ð ÝàG~èj¾ b h ® ø°¶ôÙIU cÆ%I âûêPí!:úY9g£ B}:üsï: h(Lú 
mkÍ#ª êð²QF «s —ÍûÁ?+IC¬ç÷f?u/ >MP) Iø*à{ æZ PiÏý  ¿ÄâNür ï, þ*>~`ÏUD* Øq©.Í| [Á%Ó- >Ïh
;;; TOPLEVEL.LSP ;
;;; ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; General Note: THIS FILE IS A MEMBER OF THE REAC-TST PROJECT ;
;;;--------------------------------------------------------------------;
;;; General Note: The function call below is evaluated at load Time ;
;;; and displays the top level help messages ;
;;; associated with the project RCTR-TST.PRJ ;
;;;--------------------------------------------------------------------;
(C:REACT-TEST-INFO)
iG
]Ëý°Ötéxð!,<# È$FÞÝvÕÍeb©tz.Û
ïÁ*,
«P8×7kz¢Ç/½¢©1¥¹ vöÝ|M4rX ¬öÔ # ÝÒN]]Ü5ñ8Ù )h}9î eX TWïʧp y ¹HòI
A%¨;ûcTQèQ eS²C#{ r ].ïÞ è ÄA--I×b
¤w‾Ý
Ð2¾Cûd£zu»F
Ò ‾ °®
ÕmD.4
b$auÙÆ
ä ÐiLìÉó°bÂúMF°° VPS (%*¬ÅJ¸ú ® SA×°K1ù5¾?×èì>¡C x
°)
B(-C)ú²Í
ÍZ¶Yý½¾¼
wìñ8ë YÛ F °Fñ,
éþû =E` ¡*ðØk
Ií6@{ôø(Ê4q
¬{E {ï9çÊ
º½}L¿kK(
´Â Ú*b@×þMßeï
¸åm— %üó`Ö«®ÇqÛ
8~dñ&§À¾Ï‾
‾»Çú$%k28§ó
ø-ö¡@1
s |xA a ®¼h»â. «E «
;;; TREX.LSP - Written by Randy Kintzley
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;TREX
;Trim and Extend combined!
;Pick to trim and shift+pick to extend.
;
(defun c:trex ( / )
(acet-error-init
(list '("cmdecho" 0)
0 ;0 means place an undo begin and end mark but do not
;use undo to back up on an error event.
'(if ss (acet-ss-redraw ss 4)) ;; clear the redraw on any selected obje
cts
);list
)
(acet-trim-extend)
(acet-error-restore)
);defun c:trex
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-trim-extend ( / ss flt flag p1 errno lst n a u ulst endit )
(setq flt '((-4 . "<NOT")
(-4 . "<OR")
(0 . "INSERT")
(0 . "ATTDEF")
(0 . "DIMENSION")
(0 . "SOLID")
(0 . "3DSOLID")
(0 . "3DFACE")
(0 . "POINT")
(-4 . "<AND")
(0 . "POLYLINE")
(-4 . "&") (70 . 80) ;16 64 / 3dmesh and pface mesh.
(-4 . "AND>")
(0 . "TRACE")
(0 . "SHAPE")
(-4 . "OR>")
(-4 . "NOT>")
)
);setq
(acet-trex-print-modes)
(princ "\nSelect cutting/boundary edges or press enter for implied.")
(if (setq ss (ssget))
(progn
(setq ss (acet-ss-filter
(list ss
(list (list flt
"\n1 object was invalid as a cutting/boundary e
dge."
"\n%1 objects were invalid as cutting/boundary
edges."
);list
);list
T
);list
);acet-ss-filter
ss (car ss)
);setq
(if (not ss)
(setq endit T)
);if
);progn then
);if
(while (and (not endit)
(or
(progn
(acet-ss-redraw ss 3)
(initget "Fence Undo Project Edge")
(setvar "errno" 0)
(setq p1 (entsel "\nPick to trim or Shift+Pick to extend [Proje
ct/Edge/Undo]: "));setq
(acet-ss-redraw ss 4)
p1
);progn
(equal (setq errno (getvar "errno"))
7
);equal
);or
);and
(setq flag (acet-sys-shift-down))
(setq u 0)
(cond
((equal p1 "Undo")
(if ulst
(progn
(command "_.undo" (car ulst))
(setq ulst (cdr ulst))
);progn then
(princ "\nCommand has been completely undone.")
);if
(setq u nil)
);cond #1
((or (equal p1 "Project")
(equal p1 "Edge")
);or
(command "_.trim" "")
(setvar "cmdecho" 1)
(command (strcat "_" p1) pause)
(setvar "cmdecho" 0)
(acet-safe-command nil T (list "")) ;exit the trim command
(setq u (+ u 1))
);cond #2
((not (equal (getvar "errno") 7))
(if (equal (type p1) 'LIST)
(setq p1 (cadr p1))
);if
(if flag
(command "_.extend")
(command "_.trim")
);if
(if ss
(command ss)
);if
(command "")
(if (equal p1 "Fence")
(progn
(command nil)
(setq u (+ u 1));setq
(setq lst (acet-ui-fence-select))
(setq flag (acet-sys-shift-down))
(if lst
(progn
(if flag
(command "_.extend")
(command "_.trim")
);if
(if ss (command ss));if
(command "" "_F")
(setq n 0)
(repeat (length lst)
(if (setq a (nth n lst))
(command a)
);if
(setq n (+ n 1));setq
);repeat
(command "" "")
(setq u (+ u 1))
);progn then
);if
);progn then fence
(progn
(command p1 "")
(setq u (+ u 1))
);progn else point pick
);if
);cond #3
((equal (getvar "errno") 7)
(princ "\nYou missed! Try again...")
(setq u nil)
);cond #4
);cond close
(if (and u
(> u 0)
);and
(setq ulst (cons u ulst))
);if
);while
(acet-safe-command nil T (list "")) ;exit any active command

);defun acet-trim-extend
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;print the status of projmode and edgemode the same wy that trim and extend do.
(defun acet-trex-print-modes ( / a b )
(setq a (getvar "projmode")
b (getvar "edgemode")
);setq
(cond
((equal a 0) (setq a "Projmode = None"))
((equal a 1) (setq a "Projmode = UCS"))
((equal a 2) (setq a "Projmode = View"))
(T (setq a ""))
);cond close
(cond
((equal b 0) (setq b "Edgemode = No extend"))
((equal b 1) (setq b "Edgemode = Extend"))
(T (setq b ""))
);cond close
(setq a (strcat "\n(" a ", " b ")"))
(princ a)
);defun acet-trex-print-modes

MÒ~ù
(princ)«Ï塬Ú
SR¡ ÓI´ñ¡f
ÓÞÀè ÀèÚ`@!È
Ï zr¼ kß°º'4o'Ç» SÊLö§DU  §¨,ºÀ7lb°lÝK²P ¸ò°dQ   ë\À]Ò,,?ËçÙ
Q¾ÓPuA%4—ÂÔO«Â{üúá o|ÜáªãþsØt >í@/V; Ös4Ïøõ9¥d×¹*³ò¤Ëh@ª @
Å{|R}ªY×û—c[. ÿÒM0ceÆÔ@ q%5BDJzR¿Õnú
!ð:êØx4¹Ç
%¸ Pe4 e'ÏiÈÍ
[çd DVä
"Ü/²
xzØ}?
— É Ó¢¥ ô®YÀh ´
SlÚiÏxæÎÁ®ëª=ÔX7 ºÉ=9Z Ý Ò 9¢f>AMè´<?~õtRE }_®ª&d .¦ÕN*Oí¸k᪵.ñú1F"{ ÓÄ )Å;¿É¥[â¢_; ð è¥> 
)Þ7æzvcjb Wº<
®a- 6í àO—kúnÎAo8¤1×yÁ Bú]êêªÚ J¦ø ´cs3 ©ó î—ýLr"ÒÕ (×ü½ 4Åj1Ý®Zþ4M1Ra³ Ç°Äí¸ÖUA*¤ a =IéOÿ
wËÁ] ÃvÀþd{àM,`]m²¤ §_sú!á4Ìâð~ø
û ¬94ô3½ÞtóZ!Õ¢/µÄ9,Nb 5Âí{fÐ4¿×¸Ô3²òT צ}È¢(Àj*+PWÚ åx{Wö×Ãÿ
.\V
endstream
212
endobj
0 obj<</Subtype/Image/Length 49/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 125/Height 202/Type/XObject>>stream
H úÿ?8À äGù£üQþ( ?Êå òGù£üQþ( \> îÇ ®cì;
endstream
213
endobj0 obj<</Subtype/Image/Length 4486/Filter/FlateDecode/BitsPerComponent 8/Colo
rSpace 516 0 R/Mask 212 0 R/Width 125/Height 202/Type/XObject>>stream
H ì ùSSW %aÇ
nui]X\Xà H¬!Q¶!¬ãí8ãL§Öq`¤´Ógµ(¢ [EÖaSûßô$7¾ I@¤á òÎ o2/7ç wïwß;ïF£ÁÃnGK ¡tn_óvÓ Ú{nµ#t Úí¨
±¡ÔnGív è j Gí̵£væ ÚQ;s@í¨ 9 vÔÎP;Eó ²*©H^ ]!¬7¨µÛ]{¢ >æÄ õ?P» ö8 ö È \A ¸N vÔn+Ú 2q!ì M
;;;
;;; TREXBLK.LSP
;;; Copyright © 1999-2006 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
(defun find_pline_header ( na na2 / na3 na4)
(setq na3 (tblobjname "block" (cdr (assoc 2 (entget na)))));setq
(while (and na3
(not (equal na2 na3))
);and
(if (equal "POLYLINE" (cdr (assoc 0 (entget na3))))
(setq na4 na3);a polyline header that could be the one we need.
);if
(setq na3 (entnext na3))
);while
na4
);defun find_pline_header
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun extract_clone ( lst / flag flag2 bna bna2 bna3 lst lst3 j n na ss e1
bClonedMATTS blkRefName )
(setq na (car lst)
e1 (entget na)
lst3 (last lst);the ent family tree
j (- (length lst3) 1)
bClonedMATTS nil
);setq
(if (setq flag2 (car lst3))
(progn
(acet-ucs-set-z (cdr (assoc 210 (entget (car lst3)))))
);progn
);if
(if (equal "VERTEX" (cdr (assoc 0 e1)))
(setq na (find_pline_header (car lst3) na)
e1 (entget na)
);setq
);if
(if (> (length lst3) 0)
(progn
(if (not (assoc 60 e1)) ;set the invisibility flag
(setq e1 (append e1 (list (cons 60 1))));setq then
(setq e1 (subst (cons 60 1) (assoc 60 e1) e1));setq else
);if
);progn
);if
(setq e1 (rem_codes e1));setq
(if (equal "IMAGE" (cdr (assoc 0 e1)))
(image_make na e1) ; Make the nested ent the way it was
first drawn
(progn
; For multiline text attributes, clone the ATTDEF to the current space
; using _matts_util. Otherwise, just entmake e1 to clone the entity,
; as previously done for single line attributes and other entities.
(if (_matts_util na)
(progn
(if (equal (type lst3) 'LIST)
(setq blkRefName (car lst3))
(setq blkRefName nil)
)
(if (_matts_util na 4 blkRefName)
(setq bClonedMATTS T)
)
)
(entmake e1)
);if
);progn
);if
(if (equal '(66 . 1) (assoc 66 e1));just in case its some variety of polyline,
(progn ;then better finish the entmake job.
(setq na (entnext na)
e1 (entget na)
);setq
(if (not (equal "ATTRIB" (cdr (assoc 0 e1))))
(setq e1 (rem_codes e1));setq ;rk added if code around this
);if
(while (and na
(not (wcmatch (cdr (assoc 0 e1)) "*END*"))
);and
(entmake e1)
(setq na (entnext na)
e1 (entget na)
);setq
(if (not (equal "ATTRIB" (cdr (assoc 0 e1))))
(setq e1 (rem_codes e1));setq ;rk added if code around this
);if
);while
(entmake e1)
);progn then
);if
(if bClonedMATTS
(progn
; Add the multiline text attribute definition to the selection set
(setq ss (ssadd (entlast)))
);progn
(progn
;else process other entities by creating an anonymous block table record
; and reference (based on the selected reference), then explode the new
; reference and purge the block table record
(setq na (entlast)
ss nil
ss (ssadd)
ss (ssadd na ss)
);setq
(setq bna (acet-block-make-anon ss nil) ;define an anonymous block
bna2 bna ;save the name of the original for co
mparison later
bna3 "" ;a string for adding names of purge-a
bles
);setq
(setvar "cmdecho" 0)
(setvar "highlight" 0)
(if (> (length lst3) 0)
(command "_.erase" na "") ;and then remove the ent.
);if
(setq n 0);setq
(repeat (length lst3)
(setq e1 (entget (nth n lst3)) ;get the insert.
e1 (subst (cons 2 bna) (assoc 2 e1) e1) ; put in the name of th
e anonymous block
e1 (rem_codes e1) ;remove the entname and
the handle
e1 (subst (cons 66 0) (assoc 66 e1) e1)
);setq
(entmake e1) ;make the insert
(setq na (entlast));setq
(shift_xref_insbase na (nth n lst3))
(command "_.explode" na) ;explode it
(while (wcmatch (getvar "cmdnames") "*EXPLODE*")
(command "")
);while
(if (not (entget na))
(progn
(setq ss (acet-ss-new na));setq
(setq bna3 (strcat bna3 ",`" bna)) ;purge it out later
(if (not (equal n j))
(progn
(acet-ss-visible ss 1) ;Make the ents s
tealth.
(setq bna (acet-block-make-anon ss nil) ; Define t
he anonymous block
);setq ;such that it's non-n
ested.
);progn
);if
);progn then the explode operation was a success.
(progn
(setq ss nil
ss (ssadd)
ss (ssadd na ss)
);setq
(if (not flag)
(setq flag bna);then save the first non-exploded anonymous b
lock name
);if
(if (not (equal n j))
(setq bna (acet-block-make-anon ss nil)) ; Define a nes
ted anonymous block cuz we
);if ;couldn't explode the ins
ert of the last one
);progn else
);if
(if (not (equal n j)) ;if this isn't the last one
,
(command "_.erase" ss "") ;then remove the ents used
to create block.
(progn
; Else turn the stuff back
on cuz this is
(if (not flag) ;the last time through.
(progn
(acet-ss-visible ss 0);then
);progn
(progn
(setq na (tblobjname "block" flag)
e1 (entget na)
lst (list e1)
);setq
(while (setq na (entnext na))
(setq e1 (entget na)
e1 (subst (cons 60 0) (assoc 60 e1) e1)
lst (append lst (list e1))
);setq
);while
(while lst
(entmake (car lst))
(setq lst (cdr lst));setq
);while
(entmake '((0 . "ENDBLK")))
(command "_.move" ss "" "0,0" "0,0");Done for highlightin
g reasons.
);progn else need to redefine the first block
);if
);progn else make the ents visible again
);if
(setq n (+ n 1));setq
);repeat
(if flag2
(acet-ucs-cmd (list "_p"))
);if
(if (not (equal bna3 ""))
(progn
(setq bna3 (substr bna3 2)
bna3 (acet-str-to-list "," bna3)
);setq
(foreach x bna3
(acet-table-purge "block" x T)
)
);progn then
);if
);progn
);if
; return the selection set of the cloned entities
ss
);defun extract_clone
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun shift_xref_insbase ( ss na / bna p1 e1 e2 )

(if (and ss
na
(setq e1 (entget na));setq
(setq bna (cdr (assoc 2 e1)));setq
(setq e2 (entget (tblobjname "block" bna)))
(equal 4 (logand 4 (cdr (assoc 70 e2))))
(setq p1 (cdr (assoc 10 e2)))
(not (equal p1 '(0.0 0.0 0.0)))
);and
(command "_.move" ss "" "0,0,0" (acet-geom-vector-scale p1 -1.0))
);if
);defun shift_xref_insbase
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;Dictionary notes:
;na IMAGE
;na2 340 -> IMAGEDEF (missing in xref)
;na3 330 -> DICTIONARY1
;na4 330 -> DICTIONARY2 (3 AND 350)
;na5 "ACAD_IMAGE_DICT" 350 -> DICTIONARY1
;na6 "ACAD_IMAGE_VARS" 350 -> "RASTERVARIABLES"
;na7 DICTIONARY2
;na8 350 -> IMAGEDEF
;na9 330 -> IMAGEDEF_REACTOR
;na10 330 -> IMAGE
;na11 360 -> IMAGEDEF_REACTOR
;
; group {102 330 102}
; leader 340
; mline 340
; hatch 330
;
;mline has a mlstyle of group 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun image_make ( na e1 / na2 e2 na3 e3 na4 e4 p1 p2 ina ina2)
(setq p1 (acet-geom-image-bounds na)
p2 (trans
(cadr p1)
0 1)
p1 (trans
(car p1)
0 1)
na2 (cdr (assoc 340 e1))
e2 (entget na2) ;the imagedef
ina (cdr (assoc 1 e2)) ;the image name w/full path
na3 (cdr (assoc 330 e2)) ;owner dict
e3 (entget na3)
ina2 (cdr (assoc 3 (member (cons 350 na2) (reverse e3))));image name w/ou
t path
na4 (namedobjdict) ;current drawings' dictionary
e4 (dictsearch na4 "ACAD_IMAGE_DICT") ;image dict
);setq
(if (member (cons 3 ina2) e4)
(setq ina ina2);then use the short name instead.
);if
(setq na (entlast))
(command "_.-image" "_a" ina p1 p2 p2);command
(if (equal na (entlast))
(progn
(alert
(acet-str-format "Problem attaching image: %1\nThe file may not be on Au
toCAD's search path" ina )
);alert
(exit)
);progn
(progn
(setq e2 (entget (entlast))
e3 (append (list (assoc -1 e2)) e1)
e3 (subst (assoc 5 e2) (assoc 5 e1) e3)
e3 (subst (assoc 340 e2) (assoc 340 e1) e3)
e3 (subst (assoc 360 e2) (assoc 360 e1) e3)
);setq
(entmod e3)
(entupd (cdr (assoc -1 e3)))
(acet-ss-visible (ssadd (entlast) (ssadd)) 1)
);progn else
);if
);defun image_make
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun select_nested ( msg / errno_sel lst ss ss2 na e1 n a lst2)
;local function
(defun errno_sel ( msg / a)
(setvar "errno" 0)
(while (and (not (setq a (nentsel msg)))
(equal 7 (getvar "errno"))
);and
(setvar "errno" 0)
);while
a
);defun errno_sel
(setvar "cmdecho" 0)
(acet-ss-clear-prev)
(setvar "highlight" 1)
(command "_.select")
(while (setq lst (errno_sel msg))
(setq na (car lst)
e1 (entget na)
);setq
(if (and (not (equal (length lst) 4))
(not (equal "ATTRIB" (cdr (assoc 0 e1))))
);and
(progn
(if (equal "VERTEX" (cdr (assoc 0 e1)))
(command (cadr lst));then get the polyline header by directly selecti
ng
(setq ss nil
ss (ssadd)
ss (ssadd (car lst) ss)
);setq
);if
);progn then it's non-nested.
(progn
(command "")
(setq ss2 (ssget "_p"))
(if (and (equal "ATTRIB" (cdr (assoc 0 e1)))
(not (equal (length lst) 4))
);and
(progn
(setq lst (append lst
(list nil)
(list nil) ;;;(list (list (ssname (ssget "_p") 0))
)
);append
);setq
);progn then do special stuff for the attrib
);if
(setq ss (extract_clone lst))
(if (and ss
(> (sslength ss) 0)
);and
(setq lst2 (append lst2 (list ss)))
);if
(setvar "cmdecho" 0)
(acet-ss-clear-prev)
(setvar "highlight" 1)
(command "_.select")
(if (and ss2
(> (sslength ss2) 0)
);and
(command ss2)
);if
);progn else it's nested
);if
(if (and ss
(> (sslength ss) 0)
);and
(command ss)
);if
);while
(while (wcmatch (getvar "cmdnames") "*SELECT*") (command ""));while
(setq ss (ssget "_p"))
(setvar "cmdecho" 0)
(setvar "highlight" 0)
(acet-ss-clear-prev)
(command "_.select")
(setq n 0)
(repeat (length lst2)
(setq a (nth n lst2))
(command a)
(setq n (+ n 1));setq
);repeat
(command "")
(setq lst2 nil)
(setq ss2 (ssget "_p"));nested ents
(list ss ss2)
);defun select_nested

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun do_voodo ( msg do flt / flag la ss ss2 n cleanup emarker )
(acet-error-init (list (list "cmdecho" 0
"highlight" 1
"ucsicon" (getvar "ucsicon")
"osmode" 0
"ucsfollow" 0
"limcheck" 0
);list
0 ;T
'(cleanup ss2)
);list
);acet-error-init
;;;Local function
(defun cleanup ( ss2 / la )
(acet-sysvar-set '("cmdecho" 0))
(if (not ss2)
(setq ss2 (acet-ss-new emarker))
);if
(if (and ss2
(> (sslength ss2) 0)
(entget (ssname ss2 0))
);and
(progn
(if (setq la (acet-layer-locked (getvar "clayer"))) ;just in case of tran
sparent layer changes
(command "_.layer" "_unlock" (getvar "clayer") "")
);if
(acet-ss-entdel ss2)
(if la
(command "_.layer" "_lock" (getvar "clayer") "")
);if
);progn
);if
(if (and flag
(equal (type flag) 'STR)
);and
(command "_.-layer" "_lock" flag "")
);if
(acet-sysvar-restore)
);defun cleanup
(setq emarker (entlast)
la (getvar "clayer")
flag (acet-layer-unlock-all)
);setq
(setq ss (select_nested msg)
ss2 (cadr ss);nested only
ss (car ss) ;all.
);setq
(if (and ss
(> (sslength ss) 0)
(or (not flt)
(progn
(setq n (sslength ss))
(command "_.select" ss "")
(if (and (setq ss (ssget "_p" flt))
(not (equal n (sslength ss)))
);and
(princ (acet-str-format "\n%1 objects were invalid for %2" (i
toa (- n (sslength ss))) do))
);if
ss
);progn
);or
);and
(progn
(setvar "cmdecho" 0)
(setvar "highlight" 1)
(command (strcat "_." do) ss)
(setvar "cmdecho" 1)
(if (wcmatch (getvar "cmdnames")
(strcat "*" (xstrcase do) "*")
)
(command "")
);if
(while (wcmatch (getvar "cmdnames")
(strcat "*" (xstrcase do) "*")
)
(command pause)
);while
);progn
);if
(cleanup ss2)
(if (and ss2
(> (sslength ss2) 0)
);and
(progn
(if (not ss)
(princ (acet-str-format "\nNo valid objects selected for %1.\n" do ))
);if
);progn
);if
(if flag (command "_.-layer" "_lock" flag ""));if
(acet-error-restore)
(princ)
);defun do_voodo
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun rem_codes ( e1 / na2 na3 e2)
(setq e1 (acet-list-assoc-remove -1 e1)
e1 (acet-list-assoc-remove 5 e1)
e1 (acet-list-assoc-remove 102 e1)
e1 (acet-list-assoc-remove 67 e1)
e1 (remx_codes e1)
);setq
(if (not (assoc 62 e1))
(setq e1 (append e1 (list '(62 . 256))));setq then force bylayer
);if
(if (not (assoc 6 e1))
(setq e1 (append e1 (list '(6 . "BYLAYER"))));setq then force bylayer
);if
(cond
((equal "ATTRIB" (cdr (assoc 0 e1)))
(setq e1 (acet-list-assoc-remove 3 e1)
e1 (subst '(0 . "ATTDEF") '(0 . "ATTRIB") e1)
e1 (append e1 (list (cons 3 (cdr (assoc 1 e1)))))
e1 (acet-list-assoc-remove 100 e1)
);setq
)
((equal "HATCH" (cdr (assoc 0 e1)))
(setq e1 (subst '(71 . 0) (assoc 71 e1) e1)
e1 (subst '(97 . 0) (assoc 97 e1) e1)
e1 (acet-list-assoc-remove 330 e1)
);setq
)
((equal "MLINE" (cdr (assoc 0 e1)))
(setq e2 (dictsearch (namedobjdict) "ACAD_MLINESTYLE")
na2 (cdr (assoc -1 e2))
na3 (cdr (assoc 350 (member (assoc 3 e2) e2)))
e1 (subst (cons 340 na3) (assoc 340 e1) e1)
)
)
((equal "MTEXT" (cdr (assoc 0 e1)))
(setq e1 (acet-list-assoc-remove 50 e1))
)
);cond
e1
);defun rem_codes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun remx_codes ( e1 / lst a b c d n na2 e2)
;
(setq d (cdr (assoc 0 e1))
lst (list '(6 . "LTYPE")
'(7 . "STYLE")
'(8 . "LAYER")
);list
);setq
(if (or (equal "DIMENSION" d)
(equal "TOLERANCE" d)
(equal "LEADER" d)
);or
(setq lst (append lst (list '(3 . "DIMSTYLE"))));setq then deal with dimstyl
es
);if
(setq n 0);setq
(repeat (length lst)
(setq a (nth n lst)
b (cdr a)
a (car a)
c (cdr (assoc a e1))
);setq
(if (and c
(setq na2 (tblobjname b c))
(setq e2 (entget na2))
(equal 16 (logand 16 (cdr (assoc 70 e2))))
);and
(progn
;yank it out for now.
(if (equal "STYLE" b)
(setq e1 (subst (cons 7 (getvar "textstyle")) (assoc 7 e1) e1));setq
(setq e1 (acet-list-assoc-remove a e1))
);if
;(if (equal 32 (logand 32 (cdr (assoc 70 e2))))
; (progn
; ;bind it?
; );progn
; (setq e1 (rem_code a e1));yank it
;);if
);progn then xref dependant symbol table entry.
);if
(setq n (+ n 1));setq
);repeat
e1
);defun remx_code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:btrim ( / flt )
(setq flt '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (0 . "TOLERANCE")
(0 . "ARC") (0 . "CIRCLE") (0 . "LINE") (0 . "LWPOLYLINE")
(-4 . "<AND")
(0 . "POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>")
(-4 . "AND>")
(0 . "ELLIPSE") (0 . "SPLINE") (0 . "LEADER") (0 . "REGION")
(0 . "IMAGE") (0 . "HATCH") (0 . "MLINE")
(0 . "XLINE") (0 . "RAY")
(-4 . "OR>")
)
);setq
(do_voodo "\nSelect cutting edges: " "trim" flt)
);defun c:btrim
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:bextend ( / flt )
(setq flt '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (0 . "TOLERANCE")
(0 . "ARC") (0 . "CIRCLE") (0 . "LINE") (0 . "LWPOLYLINE")
(-4 . "<AND")
(0 . "POLYLINE")
(-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>")
(-4 . "AND>")
(0 . "ELLIPSE") (0 . "SPLINE") (0 . "LEADER") (0 . "REGION")
(0 . "IMAGE") (0 . "HATCH") (0 . "MLINE")
(0 . "XLINE") (0 . "RAY")
(-4 . "OR>")
)
);setq
(do_voodo "\nSelect edges for extend: " "extend" flt)
);defun c:bextend
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:ncopy ( / )
(do_voodo "\nSelect nested objects to copy:" "copy" nil)
);defun c:ncopy

endobj
231
(princ)
0 obj<</Length
t/ImageC]/ExtGState<</GS1
18276/Filter/FlateDecode>>stream
520 0 R>>>>
H ¬WÛ ÛÈ}×Wð
0½}ov,ÏÞ» $#$³~ 5 ±
]f%^ÿ}ªºyi Ý$Å -ÊbWu :Uuê Ë vÙBIBu&)ÑE&ãã Ëì¼]ü7;.~x÷À² ËâÍjñÃj?f«ç£ R Qø <+m" luXÐìþ®6øÏ×E¾Y
Ê#
*¿Fo
/ &/q´
lÓrê µDNË¥ °nXm£@V  `¨* ü=ñ ;y.
e
1.ĺ"à òg  Zk W?cñÑì )
¼üSº¢äQ& _zø~ æ S°º-0^V¼{Íbct7MÞrNÓõÏØ°W¦±{¸6
ò_¦ ¹]@Q -¤ö± PÒrè
U S±K H°y<vYPü¨ïõ6»Ô
'ϼإ6¤bÿ8%v¥  fº ;LsÄþóMÍS
µØ²>í JF
¸%:hc7?ÞT<
)S YB½ WM4ð Æ&àïÿ èý ¶ì `ð & îÜ¿eT | ; DóÎ0  (8v´4<ÝØÐVÍå 0 ¾r¼K ,³ P~©}t
.Q
z é[(ÉÛê DRý[SÊ%.
² ôTãÀÍ
Ãi×÷Ø¿
Ðç/$ ½W:tùøw
Õá»ÓöÌ»n\[lÄóèÆAc«
@Wú »'Z!³ûú<n2Pô
0ç ]Pép2¸YLo8´9¬6 ô@¬È ô ?¸ ?ùOSî
Je@Ö
Í8®°Sðx"ïe÷±
(Üü (î4üÿÞ
f$±tB
(jØ:,
¦CZvN¶
8LóRÁNËÁC
Üé iæ+\¦hKá& /dO mÄ,%â6
.A9¶òe@êû§;
=$
ÃÀ(HO®ë
# UU 4n@0æ÷ñÌ
ÂßTæ
Ìw‾Ü¡=Ô=¸
ÓSRw4³°Ãð¢
ï2oôáþ78õ
}k ¢Ä*kÇMqÿJþ×îq^Þ#B
~õ¾Ê}«rc0C
Js }?Ù‾Ùã
ù5¸°=(FÜð
H =*3
+Í?NDIÑ
((‾xâR¨0ü
¾~L -@ʵ â´p©<^wûíS© ÊA
ì|+÷ø < ïøoûÅCO9¢o#|N9<3ÐT§´—îDÔXb R; \[ «¨* ÏÊß*w «ò t.½÷§ýéÜ Ú¤ e
Ë&ÃpOïé׶Â5N;÷öMø Il ÀmG . ;H[eHbF %
ão¶ £MÖÑ0~gÍÿæZƬüÄß—çõ¾ôS) = / (nj/

ü~\û
ù}´q
¶KH5Ì
¥Ô»ípxâìxê&C>
ªÑ;ã
qÚ¸¹è¿ÜÜ
UÿT rùèá!Ëv
¼ —OaØÖÏÿc
<´Qå6R÷¤û©[
ÔE  ×O=¼
+Iþ´ü°zß²h
@$Õ*f£x—M
B2 ´ËÈyZ.
Í mhѳäz
Ø7z<
øónfU¢
&+ÓºD!ÛK~
R/vÖ‾‾»ãòV
öÒEÜh1¢xm3ßýß@3|£
%-[q;ó/ñÂÖÚYdñf ÒÉ t;. êm5öº
ìeà&¨P CÔAð pÃT7Øí4NÄ¢¬dê§õµÇT9¦¶Ê~'Ä:¦ ý Å5bNæV ¹ ðªá2ubà î÷ óv{$]-¤¤M çf
VUëÔKþ<V÷¸Ô‾;2ùë2 3Að ^ï?í.‾ûõ—.1a§ ¹½"¿0y‾_ w:?G åmp!y
p7~Í«w¥QÚ¹jqêH _ãÿ\ × íuÛN.h MGaÁbÐà'ÝJ´åØ_÷ÜY_ v# \_@£VëK) R¢oG=X J2ÂÊv&µÖ—Ĭzv¸»:Å ´j±
éuÐ
)NãïÌcq:@ù
ÀÆ7
4~
ÿóõtÜ
:ü8µ
ÄÂúêK§
¡å-‾Ûïµz
»uãàt=
Ì!ТÝHé
Ì*ß.¡Ì¡
aWíC@±Ó
tèXÙCî
òáj¦O
\Ú*°KÒÂ)¥ÔtÒFGÿ`à
g^Lú¾pÞ®/½
ÆH0lØ,¦k'î©ÆÑ

ÄY<{òH)pǨ½ü<µÈ4uµÒ
"  ëö%åÚîcÝw
ºyH ´Pµ>wíÉ
£ÆnN
Û\8
o6Í
ļn
TÛ*´p5»5
ðC+/Ì0Ü
ÿtf¬¥$6ß]¿9^¶ÄVÁã
iYßÌ
×væßÝÐ
`§;W¿&
|—S>æ[W²KMX~¼F
Ó%o
Í®C©
¸ÙúpX÷6
ExYTòÁ5Å8Iy
%ì*Ê/ï öa©
t ônÜ»
NãÓ²9º¼@¡p;ùµ£‾`¨Yk
Ò}ÏKÈÝqF9:ZxÂMP3
x£¹ o
äodL
Î0
Âz0;MH|7-ò
ÙKB»
UÎ
. ¦3ÌÌ
- Ó5é³3
õ!ÚÜ
ó§íëviP.?
 ¢x ³}H 
×ý—x º{T§Ùÿ _-½ ãFø¾¿¢ m VÄ7yY d ãl²-Û »Ýí *R ræ Ó<;;
;; tscale.lsp - text scaling utilities
;;
;;
;; Copyright © 1999 by Autodesk, Inc.
;;
;; Your use of this software is governed by the terms and conditions
;; of the License Agreement you accepted prior to installation of this
;; software. Please note that pursuant to the License Agreement for this
;; software, "[c]opying of this computer program or its documentation
;; except as permitted by this License is copyright infringement under
;; the laws of your country. If you copy this computer program without
;; permission of Autodesk, you are violating the law."
;;
;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;; UNINTERRUPTED OR ERROR FREE.
;;
;;
;; Description:
;;
;; Series of annotation scaling utilities that work with TEXT/MTEXT/ATTDEFS/ATTR
IBS.
;; Also includes an interference checker for annotation.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Find annotation objects that have obstructing or overlapping geometry and build
a
;selection set.
;
(defun c:tSpaceInvaders ( / flt ss ss2 ans lok )
(acet-error-init
(list (list "cmdecho" 0
"ucsicon" 0
"osmode" 0
"ucsfollow" 0
)
0
'(progn
(if na (redraw na 4))
(if (tblobjname "view" "acet-tspaceinvaders")
(progn
(acet-sysvar-set (list "cmdecho" 0))
;(command "_.view" "_r" "acet-tspaceinvaders")
(command "_.view" "_d" "acet-tspaceinvaders")
(acet-sysvar-restore)
);progn then delete the view
);if
);progn
);list
)
(setq flt '((-4 . "<OR")
(0 . "ATTDEF")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "RTEXT")
(-4 . "<AND")
(0 . "INSERT")
(66 . 1)
(-4 . "AND>")
(-4 . "OR>")
)
lok (acet-layer-unlock-all)
);setq
(if (and (not (and (= (getvar "viewmode") 1)
(princ "\n** Command not allowed in perspective view **")
);and
);not
(setq ss (ssget flt))
(setq ss (car (acet-ss-filter (list ss nil T))));setq filter out non-c
urrent space
(setq ss (acet-ss-annotation-filter ss))
);and
(progn
(if (setq ss2 (acet-tspaceinvaders ss))
(progn
(princ (acet-str-format "\n%1 text objects were found to have overlap
ping objects." (sslength ss2)))
(if (= (getvar "cmdnames") "")
(progn
(initget "Yes No")
(setq ans (getkword "\nStep through each one for visual verifica
tion? <N>: "))
(if (= "Yes" ans)
(setq ss2 (acet-tspaceinvaders-interact ss2))
);if
);progn then not transparent so allow interactive mode
);if
);progn then
(princ "\nNo text with overlapping objects found.")
);if
);progn then
);if
(if lok
(command "_.-layer" "_lock" lok "");then re-lock the layers we unlocked.
);if
(acet-error-restore)
(if ss2
(progn
(princ (acet-str-format "\n%1 objects were placed in the current selection
set."
(sslength ss2)
)
)
(sssetfirst ss2 ss2)
);progn then
);if
(princ)
);defun c:tSpaceInvaders
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun acet-tspaceinvaders ( ss / flt n na e1 lst lst2 ss2 ss3 j p1 p2 p3 getx )
(if (tblobjname "view" "acet-tspaceinvaders")
(command "_.view" "_d" "acet-tspaceinvaders")
);if
(command "_.view" "_s" "acet-tspaceinvaders")
;; sort the selction set to improve performance
(defun getx ( e1 ) (car (cdr (assoc 10 e1))));defun
(setq ss (acet-ss-sort ss 'getx))
(setq flt '((-4 . "<OR")
(0 . "ATTDEF")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "RTEXT")
(-4 . "<AND")
(0 . "INSERT")
(66 . 1)
(-4 . "AND>")
(-4 . "OR>")
)
ss3 (ssadd)
);setq

(acet-ui-progress-init "Searching for text with overlapping geometry..." (sslen


gth ss))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n)
e1 (entget na)
lst (acet-geom-textbox e1 0.0)
);setq
(acet-ui-progress-safe n)
(if (and lst
(not (equal (car lst) (cadr lst)))
(not (equal (car lst) (caddr lst)))
(not (equal (cadr lst) (caddr lst)))
);and
(progn
(setq lst2 (acet-geom-m-trans lst 1 0))
(acet-ucs-cmd (list "_3p" (car lst) (cadr lst) (caddr lst)))
(setq lst2 (acet-geom-m-trans lst2 0 1));setq
(acet-tspaceinvaders-get-text-on-screen e1)

(acet-ss-visible (ssadd na (ssadd)) 1) ;; make it invis


ible
(entupd na)
(setq ss2 (ssget "_c" (car lst2) (caddr lst2)));setq ;; get a selecti
on set of intruders
(acet-ss-visible (ssadd na (ssadd)) 0) ;; make is visib
le again
(entupd na)
);progn then
(setq ss2 nil)
);if
(if ss2
(setq ss3 (ssadd na ss3))
);if
(acet-ucs-cmd (list "_p"))
(setq n (+ n 1));setq
);repeat
(acet-ui-progress-done)
(command "_.view" "_r" "acet-tspaceinvaders")
(command "_.view" "_d" "acet-tspaceinvaders")
(if (= (sslength ss3) 0)
(setq ss3 nil)
);if
ss3
);defun acet-tspaceinvaders

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun acet-tspaceinvaders-interact ( ss / na e1 lst n vpna ans p1 p2 p3 j )
(if (tblobjname "view" "acet-tspaceinvaders")
(command "_.view" "_d" "acet-tspaceinvaders")
);if
(command "_.view" "_s" "acet-tspaceinvaders")

(setq vpna (acet-currentviewport-ename));setq


(if (acet-viewport-is-perspective vpna)
(princ "\nUnable to zoom to objects while in perspective view.")
(progn
(acet-ui-progress-init "Searching for text with overlapping geometry..." (
sslength ss))
(setq j 0)
(setq n 0)
(while (< n (sslength ss))
(acet-ui-progress-safe j)
(setq j (+ j 1))
(setq na (ssname ss n)
e1 (entget na)
lst (acet-geom-textbox e1 10.0)
lst (acet-geom-list-extents lst)
p1 (car lst)
p2 (cadr lst)
p3 (acet-geom-midpoint p1 p2)
p1 (acet-geom-point-scale p1 p3 2.5)
p2 (acet-geom-point-scale p2 p3 2.5)
);setq
(setq vpna (acet-currentviewport-ename));setq
(if (acet-viewport-is-perspective vpna)
(princ "\nUnable to zoom to objects while in perspective view.")
(progn
(command "_.zoom" p1 p2)
(redraw na 3)
(acet-blink-and-show-object (list na 2))
(initget "Yes No eXit")
(setq ans (getkword "\nInclude this one in the selection set? [eXit]
<Y>: "))
(cond
((= ans "No")
(setq ss (ssdel na ss)
n (- n 1)
);setq then
)
((= ans "eXit")
(setq n (sslength ss))
)
);cond close
(redraw na 4)
);progn then
);if
(setq n (+ n 1));setq
);while
(acet-ui-progress-done)
);progn else
);if
(command "_.view" "_r" "acet-tspaceinvaders")
(command "_.view" "_d" "acet-tspaceinvaders")

ss
);defun acet-tspaceinvaders-interact
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tspaceinvaders-get-text-on-screen ( e1 / lst h x a b )
(setq lst (acet-geom-textbox e1 0.0)
h (cdr (assoc 40 e1)) ;height
x 0.01
);setq
(if (or (acet-geom-zoom-for-select lst)
(< h (* x (getvar "viewsize")))
);or
(command "_.zoom" "_c"
(acet-geom-midpoint (car lst) (caddr lst))
(max (* 1.1 (distance (car lst) (caddr lst)))
(* (/ 1.0 x) h)
);max
);command
);if
);defun acet-tspaceinvaders-get-text-on-screen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun c:tscale ( / flt ss mode val base )
(acet-error-init '(("cmdecho" 0
"highlight" nil
)
1
)
);acet-error-init
(setq flt '((-4 . "<OR")
(0 . "ATTDEF")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "RTEXT")
(-4 . "<AND")
(0 . "INSERT")
(66 . 1)
(-4 . "AND>")
(-4 . "OR>")
)
);setq
(if (and (setq ss (ssget "_:L" flt))
(setq ss (car (acet-ss-filter (list ss nil T))));setq filter out non-c
urrent space
(setq ss (acet-ss-annotation-filter ss))
);and
(progn
(setq base (acet-tscale-ui-get-scalebase)
mode (acet-tscale-ui-get-mode)
);setq
(if (= mode 0)
(setq val (acet-tscale-ui-get-factor))
(setq val (acet-tscale-ui-get-height))
);if
(acet-tscale ss base mode val)
);progn then
);if
(acet-error-restore)
);defun c:tscale
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;pstscale - paper-space-text-scale
;
(defun c:psTscale ( / flt ss mode h base na e1 n setmode vh xd vs val id )
(acet-error-init '(("cmdecho" 0
"highlight" nil
)
1
)
);acet-error-init
(setq id "ACET-PSTSCALE")
(if (not (tblobjname "appid" id))
(regapp id)
);if
(setq flt '((-4 . "<OR")
(0 . "ATTDEF")
(0 . "TEXT")
(0 . "MTEXT")
(0 . "RTEXT")
(-4 . "<AND")
(0 . "INSERT")
(66 . 1)
(-4 . "AND>")
(-4 . "OR>")
)
);setq
(if (and (setq ss (ssget "_:L" flt))
(setq ss (car (acet-ss-filter (list ss nil T))));setq filter out non-c
urrent space
(setq ss (acet-ss-annotation-filter ss))
);and
(progn
(setq setmode (acet-pstscale-ui-get-mode)) ;; set or update - 1 or 0 respe
ctively
(if (= setmode 1)
(progn
(setq h (acet-pstscale-ui-get-height))
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n))
(acet-ps-scale-set-xdata na h id)
(setq n (+ n 1));setq
);repeat
);progn then set the paper space height value
);if
(setq base (acet-tscale-ui-get-scalebase))
(cond
((= (getvar "tilemode") 1)
(princ "\n** Update not allowed in Model Tab **")
);cond #1
((not (setq na (acet-currentviewport-ename)))
(princ "\nUnable to get current viewport.")
);cond #2
((acet-viewport-is-perspective na)
(princ "\n** Update cannot be performed in a perspective view **")
);cond #3
(T
(setq e1 (entget na '("ACAD"))
vs (cdr (assoc 41 e1)) ;; view size
xd (cdr (assoc -3 e1))
xd (cdr (assoc "ACAD" xd))
xd (acet-list-m-assoc 1040 xd)
vh (cdr (nth 1 xd)) ;; view height
val (/ vh vs)
);setq vh/vs=ps/ms
(acet-tscale ss base 2 val) ;pass a mode of 2 to indicate ps scaling.
);cond #4
);cond close
);progn then
);if
(acet-error-restore)
);defun c:psTscale

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-viewport-is-perspective ( na / e1 xd flag )
(if na
(setq e1 (entget na '("ACAD"))
xd (cdr (assoc -3 e1))
xd (cdr (assoc "ACAD" xd))
xd (cdr (member (assoc 1070 xd) xd)) ; Strip out Extended
data version #
xd (cdr (assoc 1070 xd)) ; and get the view mo
de
flag (= 1 (logand 1 xd)) ; Is the 1 bit set (per
spective)?
);setq then
);if
flag
);defun acet-viewport-is-perspective
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-ps-scale-set-xdata ( na scale appid / a e1 xd )
(setq e1 (entget na))
(if (not (equal (type scale) 'LIST))
(setq scale (list scale))
);if
(foreach a scale
(setq xd (cons (cons 1041 a) xd));setq
);foreach
(setq xd (list -3 (cons appid xd))) ;; the value will be scaled along with the
object
(setq e1 (append e1 (list xd)))
(entmod e1)
);defun acet-ps-scale-set-xdata
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-ps-scale-get-xdata ( na appid / e1 xd )
(setq appid (xstrcase appid)
e1 (entget na (list appid))
xd (cdr (assoc -3 e1))
xd (cdr (assoc appid xd))
xd (mapcar 'cdr xd)
);setq
xd
);defun acet-ps-scale-get-xdata

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tscale ( ss base mode val / na n j id )
(setq id "ACET-PSTSCALE")
(acet-ui-progress-init "Scaling text" (sslength ss))
(setq j 0)
(setq n 0)
(repeat (sslength ss)
(setq na (ssname ss n));setq
(acet-ui-progress-safe n)
(if (acet-tscale-ent na base mode val id)
(setq j (+ j 1));setq
);if
(setq n (+ n 1));setq
);repeat
(acet-safe-command T T (list "_.move" ss "" "0,0" "0,0")) ;; force an update (f
or attributes)
(acet-ui-progress-done)
j
);defun acet-tscale

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tscale-ent ( na base mode val id / e1 e2 n h ss2 psh )
(setq e1 (entget na (list id)))
(cond
((= mode 0) ;; scale
(setq h (cdr (assoc 40 e1))
h (* h val)
);setq
);cond #1
((= mode 1) ;; set explicit height
(setq h val);set final height
);cond #2
((= mode 2) ;; get ps height from xdata
(if (setq psh (car (acet-ps-scale-get-xdata na id)))
(setq h (* psh val));setq then (val=ps/ms)
(setq h (cdr (assoc 40 e1)));setq else
);if
);cond #3
);cond close
(cond
((= "Existing" base)
(setq e1 (subst (cons 40 h) (assoc 40 e1) e1)) ;; change the height
(setq e2 (entmod e1))
);cond #2
(T
(setq ss2 (ssadd na (ssadd)))
(acet-tjust ss2 base) ;; change the justificat
ion
(setq e2 (entget na)
e2 (subst (cons 40 h) (assoc 40 e2) e2) ;; change the height
);setq
(setq e2 (entmod e2))
(acet-tjust ss2 (acet-tjust-keyword e1)) ;; change the justificat
ion back
);cond #3
);cond close
e2
);defun acet-tscale-ent

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun acet-tscale-ui-get-scalebase ( / def ans id )
(setq id "ACET-TSCALE-SCALEBASE"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def "Existing")
);if
(princ "\nSpecify justification to use as base point for scaling...")
(initget "Existing Start Center Middle Right TL TC TR ML MC MR BL BC BR")
(setq ans (getkword
(acet-str-format "\n[Existing/Start/Center/Middle/Right/TL/TC/TR/M
L/MC/MR/BL/BC/BR] <%1>: "
def
);acet-str-format
);getkword
);setq
(if ans
(acet-setvar (list id ans 3))
(setq ans def)
);if
ans
);defun acet-tscale-ui-get-scalebase
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun acet-tscale-ui-get-mode ( / def ans id )
(setq id "ACET-TSCALE-BYHEIGHT"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def 0)
);if
(if (= def 0)
(setq ans "Scale")
(setq ans "Height")
);if
(initget "Scale Height")
(setq ans (getkword (acet-str-format "\nSpecify size change by [Scale (factor)
/Height] <%1>: " ans)))
(if ans
(progn
(if (= ans "Scale")
(setq def 0)
(setq def 1)
);if
(acet-setvar (list id def 3))
);progn then
);if
def
);defun acet-tscale-ui-get-mode

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tscale-ui-get-factor ( / def ans id )
(setq id "ACET-TSCALE-FACTOR"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def 1.0)
);if
(initget 6)
(setq ans (getdist (acet-str-format "\nScale factor <%1>: "
(rtos def 2 (getvar "luprec"))
)
)
);setq
(if ans
(acet-setvar (list id ans 3))
(setq ans def)
);if
ans
);defun acet-tscale-ui-get-factor

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-tscale-ui-get-height ( / def ans id )
(setq id "ACET-TSCALE-HEIGHT"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def (getvar "textsize"))
);if
(initget 6)
(setq ans (getdist (acet-str-format "\nFinal height <%1>: " def)))
(if ans
(acet-setvar (list id ans 3))
(setq ans def)
);if
ans
);defun acet-tscale-ui-get-height
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;returns 1 for set and 0 for update
;
(defun acet-pstscale-ui-get-mode ( / def ans id )
(setq id "ACET-PSTSCALE-SET"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def 1)
);if
(if (= def 1)
(setq ans "Set")
(setq ans "Update")
);if
(initget "Set Update")
(setq ans (getkword
(acet-str-format "\nUpdate or set paper space text height [Set/Upda
te] <%1>: " ans)
)
);setq
(if ans
(progn
(if (= ans "Set")
(setq def 1)
(setq def 0)
);if
(acet-setvar (list id def 2)) ;set this one in the reg only
);progn then
);if
def
);defun acet-pstscale-ui-get-mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun acet-pstscale-ui-get-height ( / def ans id )
(setq id "ACET-PSTSCALE-HEIGHT"
def (acet-getvar (list id))
);setq
(if (not def)
(setq def (getvar "textsize"))
);if
(initget 6)
(setq ans (getdist (acet-str-format "\nSpecify desired text height in paper sp
ace units <%1>: " def)))
(if ans
(acet-setvar (list id ans 3))
(setq ans def)
);if
ans
);defun acet-pstscale-ui-get-height

rnà¬ ó ´²]*
(princ) ð<Èh»BÏ
*éy5{3\
þ ¿ x4>]Fæ
lÎ 1tpè~9ÎËå
(%.×+®ªÖY b |v \NX â¢%uíPf4 ã Ô[~ñ.<ç3ÝEÖ <. ãßJzdÎ ±)Ñ ¶
DÕw¿
ðîî:oUýx
û¸û±Ñß4
ÞØ(í6qwù
$é´
m")‾â
(ÐËù,p¸
ÏÈö8
Ù»|\U/
¤>}F¶
`î_LRr
ÿ嗪~¼ñ±5ããý?
ù2F ¾Ké MT}]ìCíÿ¥ê
3 í ðe̪úfî
Ä×±±|Uÿ ÝÍç cÿER íë«úm±Ï´¿—" J
endstream
235
endobj 0 obj<</Subtype/Image/Length 56/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 99/Height 271/Type/XObject>>stream
)ßI
HCAì×1c {Û¥
ܪ¶êð¼ Kí¸þ´LÔ{ Q
endstream
236
endobj
0 obj<</Subtype/Image/Length 2483/Filter/FlateDecode/BitsPerComponent 8/Colo
rSpace 516 0 R/Mask 235 0 R/Width 99/Height 271/Type/XObject>>stream
H ì×YlT×Çñ ÐViûÒ R©M .J£FÚ 4J)4q
 ¶ Ê ÄĬP[ Ô¨ º@U DyéC4 ÷±g<3 }ß÷Ï> } ö?>3æz ɗñïè«ÑÜcö sÏ=#`ÜÝ8òÚv´`PZ
ªûàÏÏö¾{NpálÏrîN Þì}ï/ Ó={ºn[òÿY>‾(@
P Ï  (>¨ÅA}}ÇþÝ vn[¿kûÖë¿ÜòæÉ ¡ uíèÚ×ö¹Ï>pßìÑòôÚ w.ù‾( @íÛõÒ/Ú_xûÇÞ;'xçÏ'Ý §{^Á÷QP ûÓ ß >H
P â  xuäÕm[[gNìË-@Ý+¨%_ó< P ;;
;;;
;;; By Dominic Panholzer
;;;
;;; TXTEXP.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;;
;;; External Functions:
;;;
;;; ACET-ERROR-INIT --> ACETUTIL.FAS Intializes bonus error rout
ine
;;; ACET-ERROR-RESTORE --> ACETUTIL.FAS Restores old error routine
;;; ACET-GEOM-ZOOM-FOR-SELECT --> ACETUTIL.FAS Zoom boundry to include poi
nts given
;;; ACET-LAYER-LOCKED --> ACETUTIL.FAS Checks to see if layer is l
ocked
;;; ACET-GEOM-PIXEL-UNIT --> ACETUTIL.FAS Size of pixel in drawing un
its
;;; ACET-GEOM-TEXTBOX --> ACETUTIL.FAS Returns the textbox for any
text
;;; ACET-GEOM-MIDPOINT --> ACETUTIL.FAS Returns midpoint between tw
o points
;;; ACET-GEOM-VIEW-POINTS --> ACETUTIL.FAS Returns corner points of sc
reen or viewport
;;; ACET-STR-FORMAT --> ACETUTIL.ARX String builder
;;; ACET-WMFIN --> ACETUTIL.FAS Brings in WMF file
;;;
(defun c:txtexp (/ grplst getgname blknm FLTR GLST GDICT SS VIEW UPLFT TMPFIL TB
X
TMPFIL CNT PT1 PT2 ENT TXT TXTYP PTLST ZM LOCKED GNAM vpna vp
locked)
(acet-error-init
(list
(list "cmdecho" 0
"highlight" 1
"osmode" 0
"Mirrtext" 1
"limcheck" 0
)
T
)
)
; --------------------- GROUP LIST FUNCTION ----------------------
; This function will return a list of all the group names in the
; drawing and their entity names in the form:
; ((<ename1> . <name1>) ... (<enamex> . <namex>))
; ----------------------------------------------------------------
(defun acet-txtexp-grplst (/ GRP ITM NAM ENT GLST)
(setq GRP (dictsearch (namedobjdict) "ACAD_GROUP"))
(while (setq ITM (car GRP)) ; While edata item is available
(if (= (car ITM) 3) ; if the item is a group name
(setq NAM (cdr ITM) ; get the name
GRP (cdr GRP) ; shorten the edata
ITM (car GRP) ; get the next item
ENT (cdr ITM) ; which is the ename
GRP (cdr GRP) ; shorten the edata
GLST ; store the ename and name
(if GLST
(append GLST (list (cons ENT NAM)))
(list (cons ENT NAM))
)
)
(setq GRP (cdr GRP)) ; else shorten the edata
)
)
GLST ; return the list
)
; ------------------- GET GROUP NAME FUNCTION --------------------
; This function returns a list of all the group names in GLST
; where ENT is a member. The list has the same form as GLST
; ----------------------------------------------------------------
(defun acet-txtexp-getgname (ENT GLST / GRP GDATA NAM NLST)
(if (and GLST (listp GLST))
(progn
(foreach GRP GLST
(setq GDATA (entget (car GRP)))
(foreach ITM GDATA ; step through the edata
(if (and
(= (car ITM) 340) ; if the item is a entity name
(eq (setq NAM (cdr ITM)) ENT) ; and the ename being looked for
)
(setq NLST ; store the ename and name
(if NLST
(append NLST (list (cons (car GRP) (cdr GRP))))
(list (cons (car GRP) (cdr GRP)))
)
)
)
)
)
)
)
NLST
)
; ----------------------------------------------------------------
; MAIN PROGRAM
; ----------------------------------------------------------------
(if (and ; Are we in plan view?
(equal (car (getvar "viewdir")) 0 0.00001)
(equal (cadr (getvar "viewdir")) 0 0.00001)
(> (caddr (getvar "viewdir")) 0)
)
(progn
(prompt "\nSelect text to be EXPLODED: ")
(Setq FLTR '((-4 . "<AND")
(-4 . "<OR") ; filter for mtext and
text
(0 . "MTEXT")
(0 . "TEXT")
(-4 . "OR>")
(-4 . "<NOT")
(102 . "{ACAD_REACTORS") ; and not leader text
(-4 . "NOT>")
(-4 . "AND>")
)
GLST (acet-txtexp-grplst) ; Get all
the groups in drawing
GDICT (if GLST
(dictsearch (namedobjdict) "ACAD_GROUP")
)
SS (ssget FLTR)
CNT 0
)
;; filter out the locked layers
(if SS
(setq SS (car (bns_ss_mod SS 1 T)))
) ;if
;; if we have anything left
(if SS
(progn
(setq CNT 0) ; Reset counter
(while (setq ENT (ssname SS CNT)) ; step through each objec
t in set
(and
GLST ; if groups are present i
n the drawing
(setq GNAM (acet-txtexp-getgname ENT GLST)) ; and the tex
t item is in one or more
(foreach GRP GNAM ; step through those grou
ps
(command "_.-group" "_r" ; and remove the text ite
m
(cdr GRP) ENT ""
)
)
)
(setq TBX (acet-geom-textbox (entget ENT) 0)) ; get textbox points
(setq TBX (mapcar '(lambda (x)
(trans x 1 0) ; convert the points to W
CS
)
TBX
)
)
(setq PTLST (append PTLST TBX)) ; Build list of bounding
box
; points for text items s
elected
(setq CNT (1+ CNT)) ; get the next text item
); while

(setq PTLST (mapcar '(lambda (x)


(trans x 0 1) ; convert all the points
) ; to the current ucs
PTLST
)
)
(if (setq ZM (acet-geom-zoom-for-select PTLST)) ; If current
view does not contain
(progn ; all bounding box points
(setq ZM
(list
(list (- (caar ZM) (acet-geom-pixel-unit)) ; increase zoom
area by
(- (cadar ZM) (acet-geom-pixel-unit)) ; one pixel wid
th to
(caddar ZM) ; sure nothing will be lo
st
)
(list (+ (caadr ZM) (acet-geom-pixel-unit))
(+ (cadadr ZM) (acet-geom-pixel-unit))
(caddr (cadr zm))
)
)
)
(if (setq vpna (acet-currentviewport-ename))
(setq vplocked (acet-viewport-lock-set vpna nil))
);if
(command "_.zoom" "_w" (car ZM) (cadr ZM)) ; zoom to include text
objects
)
)
(setq VIEW (acet-geom-view-points)
TMPFIL (strcat (getvar "tempprefix") "txtexp.wmf")
PT1 (acet-geom-midpoint (car view) (cadr view))
PT2 (list (car PT1) (cadadr VIEW))
)
(if (acet-layer-locked (getvar "clayer")) ; if current layer is
locked
(progn
(command "_.layer" "_unl" (getvar "clayer") "") ; unlock it
(setq LOCKED T)
)
)
(command "_.mirror" SS "" PT1 PT2 "_y"
"_.WMFOUT" TMPFIL SS "")
(if (findfile tmpfil) ; Does WMF file exist?
(progn
(command "_.ERASE" SS "") ; erase the orignal te
xt
(setq ss (acet-wmfin TMPFIL)) ; insert the WMF file
(command "_.mirror" ss "" PT1 PT2 "_y")
) ;progn
) ;if

(if LOCKED
(command "_.layer" "_lock" (getvar "clayer") "") ; relock if needed
) ;if
(if ZM (command "_.zoom" "_p")) ; Restore original view i
f needed
(if vplocked
(acet-viewport-lock-set vpna T) ;re-lock the viewport if needed.
);if
(prompt (acet-str-format "\n%1 text object(s) have been exploded to li
nes." CNT))
(prompt "\nThe line objects have been placed on layer 0.")
)
)
)
(prompt "\nView needs to be in plan (0 0 1).")
);if equal
(acet-error-restore) ; Retsore values
(princ)
)

(princ);ÌÃp¸ ð‾ó =±%Õ{_wõòÅ/ Úöë?îe¿ÿ¾>Ç5æ ìpê`H


©vYh6È
,ý¦±þÂÂì¿9Û
o/ ß[Ò
kWja
È>aè
÷ô—Ùæ±
¢íít ²ã%ì#
0 çïêeInn.ì<zô
z½ ùºïJM?|
4 Ф%Vd`+**DvdÏXö]
ìÈ öèµ=Ì^üU § bÏ0c×ÿþâ
gIuYß QRVræ
xúö£¥¦
ð1Xdö
ý%ÅE»Îë ÷Ãà3¼oçèS{Ù
¬qäVAÁaxäóóA'³³L!{VÙ9dÒ`Òdç ó NhAvdN Ù dGváÙ ]8AvÙ øÚ 'ÈÎ!ûí® tÙ9d×(Z0 à üìØ£ ï-<8X ý3Ùç
Ou0
Ë(ç½Fÿ
gÛöéHõÈ
Rí²Ðl
IV. Ù ½^Û
&ûB
]dGvá
ùìg\êµ
Ù!°ì
]8Avd
¾{F1ÈNìYÈnì
Ù dGvá
ÍÕHìD V ÔaÕo¿ÞÐS=ì
Ù,ËÉ®â
]8AvdNRÇn7
Ä:¡]
pRóvsõ¡g
7=v}Âî6
þ áìN3
é Þ6IrYd
bq~xQ¨‾=Ç&JmwÛ
=*{mÍY H$ iø|uUø[%ÅE
=2é83U¹¬tRØOHJKK¿ìR¶B4
7Ë:>x´ð»Z)zP
e7ÈÇ
²g8;.©±Ù?»ÈÄl Ãìp öN'6 ééÛ ýóÙ£? %våÍæ¡~ÅËçOg F¢£ =
¨ý+s¡ 
ì<ÍAkû¬]ßØP
ë /\[÷-t«ÚÔ
æ ó8ÙÙ"ã4S ^±8?¬]_{
© BÁÙ I b' RvÉñ ªÊrø©Õäc Ùw³ ö1Z
ÀUÃ|
ïÙ o<ïnüJ`Ùã[tìe7
Ô±c¢Ù ]8AvdN Ù T÷í:R½ åi¨å¼×]ú'}»ËX «çOÃ[jÅɲ ìÚ*NI¬ÚÅyS ¾¥"{TöÚ ³ H{dÒ+pfZ«rY餰
²gûýKªÛÆ8LÃç««Âß*).IxF¬ã G °;¡ ¥ ðÑ.õLë XdøË>=IBCr©¦:R/ ÝÀô¨ ø£GÕæ±½ÇtZè»T7ìùþ»¸#âüüê³ Nþݤ
<Åâüð¢P_{
;;; TYPELIB.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file shows how to import type library files and how to use ;
;;; them. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First of all we have to init the ActiveX interface. ;
;;;--------------------------------------------------------------------;
(vl-load-com)

;;;--------------------------------------------------------------------;
;;; Import the Microsoft WinWord type library. You have to replace ;
;;; the path with the path to your WinWord type library file. ;
;;; Import the type library only if it is not already loaded. ;
;;;--------------------------------------------------------------------;
(if (equal nil mswc-wd100Words) ; check for a WinWord constant
(vlax-import-type-library
:tlb-filename "c:/program files/Microsoft Office/msword8.olb"
:methods-prefix "mswm-"
:properties-prefix "mswp-"
:constants-prefix "mswc-"
) ;_ end of vlax-import-type-library
) ;_ end of if
;;;--------------------------------------------------------------------;
;;; After importing the type library file you can use the Apropos ;
;;; Window to see the added VisualLisp functions. ;
;;; Go to the "View" menu, select "Apropos Windows..." and enter ;
;;; "mswm-" in the edit box to get a list of all WinWord methods. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the AutoCAD application object. This variable, named ;
;;; *AcadApp* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *AcadApp*
(vlax-get-acad-object)
) ;_ end of setq

;;;--------------------------------------------------------------------;
;;; This is the main function. It will iterate the model space and ;
;;; collect all Text entities. Then it gets the text strings and adds ;
;;; them to a newly created Microsoft WinWord document. ;
;;;--------------------------------------------------------------------;
(defun c:ExtractText ( / msw docs doc ent pgs pg range
text varTextpos arrayTextpos textinfo)
; Get the Microsoft WinWord application object
(setq msw (vlax-get-object "Word.Application.8"))
(if (equal nil msw)
(progn
; WinWord is not running. Start it.
(setq msw (vlax-create-object "Word.Application.8"))
(vla-put-visible msw 1)
)
)
(if (/= nil msw)
(progn
;; Get the WinWord's document collection object.
;; The Application object of WinWord is accessed by the
;; vla-get-xxx functions. For some ActiveX properties and methods
;; there is no generated VisualLisp function. In this case you have
;; to use the vlax-get-property / vlax-put-property and
;; vlax-invoke-method functions.
;; Example: For the CommandBars property of the WinWord application
;; object there is no VisualLisp function, but you can get this
;; object the following way:
;; (setq ComBars (vlax-get-property msw "CommandBars"))
(setq docs (vla-get-documents msw))
; Add a new document
(setq doc (mswm-add docs))
; Get the paragraphs of the document (to do some formatting)
(setq pgs (mswp-get-paragraphs doc))
; Now iterate the AutoCAD model space and export
; every text entity to WinWord.
(vlax-for ent *ModelSpace*
(if (equal (vla-get-ObjectName ent) "AcDbText")
(progn
; Get some information from the text entity
(setq text (vla-get-TextString ent)
textpos (vla-get-InsertionPoint ent)
arrayTextpos (vlax-variant-value textpos)
textinfo (strcat
(rtos (vlax-safearray-get-element arrayTextpos 0) 2
2)
", "
(rtos (vlax-safearray-get-element arrayTextpos 1) 2
2)
", "
(rtos (vlax-safearray-get-element arrayTextpos 2) 2
2)
)
) ;_ end of setq
; Print some info (with formatting)
; 1) Get the last paragraph
(setq pg (mswp-get-last pgs))
; 2) Get a range object
(setq range (mswp-get-range pg))
; 3) Do some formatting
(mswp-put-bold range 1)
(mswp-put-underline range mswc-wdUnderlineSingle)
; 4) Show the info text
(mswm-InsertAfter range (strcat "AcDbText at position " textinfo "\n
"))
; Now show the text string (from the ACAD text entity)
(setq pg (mswp-get-last pgs))
(setq range (mswp-get-range pg))
(mswp-put-bold range 0)
(mswp-put-underline range mswc-wdUnderlineNone)
(mswm-InsertAfter range (strcat text "\n\n"))
) ;_ end of progn
) ;_ end of if AcDbText
) ;_ end of vlax-for
) ;_ end of progn
(princ "\nNo Microsoft WinWord found.\n")
) ;_ end of if (/= nil msw)
(princ)
)

;;; Display a message to let the user know the command name
(princ "\nType ExtractText to export all text entities to Microsoft WinWord.\n")
1UØR&
â4!¨
(princ)»2O»|Ï¡6
 KgÎõ»|÷
a;ÐnW<µthcÓ$%
\¦ãÁÈ´¼ØH^s
Ï$Z ³ïïgßÝßó
dÿr® &1sK2àØ9
 Ñ D÷µ6ÛS.ó
v3Ü ^p
Eþ3?$P¥®È¼^
 +D
LËFO*.}A
R¡º,1|h?ÃÑ
Öy±Ï«ÓÙß
þÜ/õÿ
Eä¨
gèçøþ
õUGÜ ¾<
ÁL1DIpÿ‾Ù
¡XÍ:
ÌRúOókÞü
Oŗ| K#`iDÂQ
ai~  ÉÑ*
Ð Ð
zI *ÉÃÌHÿ—8ÌTù©ìÐTyû( ¦RÂ+ ÐÔÃFB2ý ¤Ò¹+— ä
±
,#)hæ,")P T NÚ gä0Ü Ôö1Øú‾;7E³E$UCØ& Á÷¥¾ ê|ÌûÁH 96z-d" ©IE¶m¿ ' z 9<QúgÎq:ºé^ÀæÌþ §
ñ \ÃÍnçÇg x ¹Ú:|fÂ‾òÇm %)÷ÉU¤üÚK®ØXÛ
½¸ ó?-Îe@ )'DéµÅ³j³¨Â` FöB°¹£ñ§q)  `ðp#e Í ® Øûye
ãÖÕ[
YzuN
¡c^¾A‾
ò S´8¬@
Ýpë5òá
. Ï'"k2
H 8 YgyxTÆLRÏ
¶ã@êâÞùÛÑAãÀÛÌyÛì<¼}Ü
è \´ çÎd ² m Ñb@4ÐC
µ  gÞNÛeL
k^ ù¡Ú.ô!ö2
% ¢Ý ,è7(È(êpÎÈ{ Pá\¹Ã6*|S<û³ ¾"‾Û ¬
3‾»ón{XAí. ÷_ ê´EâVHl _б¨KÜÆ
IªÂJ/±WeÊ3[
ÊX(rKMî»sWøÝÁ<S¸;-÷QW
Ò úÁ¸-7ýí
êñ)Tèñ¼t /ÔØ}»³
¡¸ bþ Å(?CkÓN
óô÷
}Ý©Öuè 
úÝ+G£Ê
\¸Ù®kõ
K( ÖÒçÔîþ
ø& úTÏk@,tÜhÛ @fõ F¸(2 ³Ý.£ÿ¶Í KfÁà *h/Ü-r| Ï©i % ¼
ÄÉ8
£ÚøÚspæúÜÛì
°ø½° RæUµ=¬ýO¾"¹º—ÎÜ¥BOÁît rjD«+  HÑ! h $W_ ˨E ©Z
k´Ñ¼ Êýâ÷ : 2 ²§'WGä¼Ýûy¸öÄ -êµ9.ë]èx.Æædh Áý Í 4R Ñ^ïÐ ø×Ú ‾ùRóO ÊÜk#K£³îèÄdj‾°ØÎ âAM×E ª
»çэݮÿæÛõ¦º|ýðE&;¥À
¬¥Â-ι°3¸
íDÛ
b9%
»/f
ÈY¦úé=|g°Sì
`K(*öÁ
h®Q
ÇæN9Îj¹8
pº&¼
¿ü8¨_é8Ñ>
ø
:@r
qd~bX&<
kÇÜ
)n
¥ÅíÎNn|á
4 Âä
õjp8S
/—Ùâ×àøS
É Ø¬û}O
ç` é¼ö
¸=ðâ
GO õ´¿tsäú
u%Lj« ±Yݾèxaí
~¾Þ
î- ïp&
±n´zÒâG
` æý—Fd
3Ûu
<|ù¤
3ÐÐ̀¹¿Çt
‾ã9füNº²ß
Gm9yÊóò]
yJ
-/V\KZ¿^¢Òk£Q£~¾ â°
E ‾G1O‾]
¸.×èya¥<h[84
òE@ZO\ã
Ù)#'
úíÌ«¼
V©Sµík^<Ü
öôµ
¶×H
^¢\H ð ¹ wi+j »8O~¬ ÛÁ¶ U‾õ¤ý`© òÏ\C®± ¡% | Ð|.Ñc
Êó
E{½
kèªYÖ
X×±)}¸Ý<ôS§V
¿ àó ¸q¿%
n`®À7Aò 
ú`áXI!'h"R>zA^t;þâ1PÀl î ÿ&ICÈP ¶þ»ón{XÕBø¤¹ £ír±k Ø| ;þF ¹V$§jS| mHÓM 9
6øy\H²ú/½ùQ#Çák Øz.» çÃÞ »)Ëk $.ZÇ´ aü|Êg
U4 {ø}E
7TIÄß \=rgì
Ú©b/ x ®`O  RUhºlêª;;; ;
;;; UTILS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; state of the application at the end of Lesson 4. Use this file ;
;;; to check your work, or to start off Lesson 5 with the code as it ;
;;; appears in the tutorial. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First step is to load ActiveX functionality. If ActiveX support ;
;;; already exists in document (can occur when Bonus tools have been ;
;;; loaded into AutoCAD), nothing happens.
;;;--------------------------------------------------------------------;
(vl-load-com)

;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; Function: Degrees->Radians ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts a number representing an ;
;;; angular measurement in degrees, into its radian ;
;;; equivalent. There is no error checking done on the ;
;;; numberOfDegrees parameter -- it is always expected ;
;;; to be a valid number. ;
;;;--------------------------------------------------------------------;
(defun Degrees->Radians (numberOfDegrees)
(* pi (/ numberOfDegrees 180.0))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: 3dPoint->2dPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; 3D point (a list of three integers or reals), and ;
;;; converts it into a 2D point (a list of two reals). ;
;;; There is no error checking done on the 3dpt ;
;;; parameter -- it is always expected to be a valid ;
;;; point. ;
;;;--------------------------------------------------------------------;
;;; Work to do: Add some kind of parameter checking so that this ;
;;; function won't crash a program if it is passed a ;
;;; null value, or some other kind of data type than a ;
;;; 3D point. ;
;;;--------------------------------------------------------------------;
(defun 3dPoint->2dPoint (3dpt)
(list (float(car 3dpt)) (float(cadr 3dpt)))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: list->variantArray ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; list of double values, e.g. a list of 2D points: ;
;;; '(p1.X p1.Y p2.X p2.Y p3.X p3.Y p4.X p4.Y). ;
;;; The list is converted into an ActiveX ;
;;; variant based on a safearray. ;
;;; No error checking is performed on the parameter -- ;
;;; it is assumed to consist of a list of doubles. ;
;;;------------------------------------------------------------------- ;
(defun gp:list->variantArray (ptsList / arraySpace sArray)
; allocate space for an array of 2d poin
ts stored as doubles
(setq arraySpace
(vlax-make-safearray
vlax-vbdouble ; element type
(cons 0
(- (length ptsList) 1)
) ; array dimension
)
)
(setq sArray (vlax-safearray-fill arraySpace ptsList))
; return array variant
(vlax-make-variant sArray)
)x 
Û Pt÷½»]]~È\è | âÍ ÄÿÍ#S¾E A>Ï\B0 ìs Á\^\ ¼¸%Ø + ²y¥©¾Ý®É¶J³aè= C.Óö` ¾ ´R ßq Á`rv
FÇÕd¹f÷‾ \ ÖGq 524Åeù\è> W 9® e+.\Ù8¨Ú h(  ãLûaiÜh¹0Þ !× 
Q7*!¸°‾Ú;« ÕØv?Ç & Þsû ( ó8:8û7´¡qêq½çãÆ\ ÿIZ o¨~4>;;;
;;; UTILS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; state of the application at the end of Lesson 4. Use this file ;
;;; to check your work, or to start off Lesson 5 with the code as it ;
;;; appears in the tutorial. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First step is to load ActiveX functionality. If ActiveX support ;
;;; already exists in document (can occur when Bonus tools have been ;
;;; loaded into AutoCAD), nothing happens. ;
;;;--------------------------------------------------------------------;
(vl-load-com)

;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; Function: Degrees->Radians ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts a number representing an ;
;;; angular measurement in degrees, into its radian ;
;;; equivalent. There is no error checking done on the ;
;;; numberOfDegrees parameter -- it is always expected ;
;;; to be a valid number. ;
;;;--------------------------------------------------------------------;
(defun Degrees->Radians (numberOfDegrees)
(* pi (/ numberOfDegrees 180.0))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: 3dPoint->2dPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; 3D point (a list of three integers or reals), and ;
;;; converts it into a 2D point (a list of two reals). ;
;;; There is no error checking done on the 3dpt ;
;;; parameter -- it is always expected to be a valid ;
;;; point. ;
;;;--------------------------------------------------------------------;
;;; Work to do: Add some kind of parameter checking so that this ;
;;; function won't crash a program if it is passed a ;
;;; null value, or some other kind of data type than a ;
;;; 3D point. ;
;;;--------------------------------------------------------------------;
(defun 3dPoint->2dPoint (3dpt)
(list (float(car 3dpt)) (float(cadr 3dpt)))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: list->variantArray ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; list of double values, e.g. a list of 2D points: ;
;;; '(p1.X p1.Y p2.X p2.Y p3.X p3.Y p4.X p4.Y). ;
;;; The list is converted into an ActiveX ;
;;; variant based on a safearray. ;
;;; No error checking is performed on the parameter -- ;
;;; it is assumed to consist of a list of doubles. ;
;;;------------------------------------------------------------------- ;
(defun gp:list->variantArray (ptsList / arraySpace sArray)
; allocate space for an array of 2d poin
ts stored as doubles
(setq arraySpace
(vlax-make-safearray
vlax-vbdouble ; element type
(cons 0
(- (length ptsList) 1)
) ; array dimension
)
)
(setq sArray (vlax-safearray-fill arraySpace ptsList))
; return array variant
(vlax-make-variant sArray)
)ñÙ
«ëÜ.ZN"½
@? MÞéúZ¶
_¬0 L)ÑòÖV
sCÁ(²uA
îÄép v<
ç .à;c
J_ Õ¥üÊ
á?qä<RlÁ1 0 ÿÒ $1>Ià¨L((gÿ
ÐK2RÝg   F ç¦À±² ìgç,3Ù¶;àZÜ J2¦ © ^±»9U s` L.][®IË´½r_Y ² öãépª\"PÕïÝåô)"g÷
×;ã]Ä;º pÿô—òª— ¿?U©[ Ki ;»¦¿ßO:Ðnÿ l ?çö êE;ÞÛk h Ù}5®eH#<Ôâ£Ãd I¶ ^îTöÌH ±Î¡ «ô Õí
Æ { p !×Äá}
\ܶoÀµiôü¶Ïa/Y£Æ0 < ¾Èæ4üµ BBËíBâà ÷þÔ4Yåø¡;ð" `> sìe Êó½ Q±\aØ v£áТóÊÌ Ð^£wÙVn?ºJà)èu
_Ó c1 zL î[Þìí÷ÝÓSÓ *Ó;;;
;;; UTILS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; state of the application at the end of Lesson 6. Use this file ;
;;; to check your work, or to start off Lesson 7 with the code as it ;
;;; appears in the tutorial. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; First step is to load ActiveX functionality. If ActiveX support ;
;;; already exists in document (can occur when Bonus tools have been ;
;;; loaded into AutoCAD), nothing happens. ;
;;;--------------------------------------------------------------------;
(progn
(vl-load-com)
(vl-load-reactors)
)
;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq

;;;--------------------------------------------------------------------;
;;; Function: Degrees->Radians ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts a number representing an ;
;;; angular measurement in degrees, into its radian ;
;;; equivalent. There is no error checking done on the ;
;;; numberOfDegrees parameter -- it is always expected ;
;;; to be a valid number. ;
;;;--------------------------------------------------------------------;
(defun Degrees->Radians (numberOfDegrees)
(* pi (/ numberOfDegrees 180.0))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: 3dPoint->2dPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; 3D point (a list of three integers or reals), and ;
;;; converts it into a 2D point (a list of two reals). ;
;;; There is no error checking done on the 3dpt ;
;;; parameter -- it is always expected to be a valid ;
;;; point. ;
;;;--------------------------------------------------------------------;
;;; Work to do: Add some kind of parameter checking so that this ;
;;; function won't crash a program if it is passed a ;
;;; null value, or some other kind of data type than a ;
;;; 3D point. ;
;;;--------------------------------------------------------------------;
(defun 3dPoint->2dPoint (3dpt)
(list (float(car 3dpt)) (float(cadr 3dpt)))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: list->variantArray ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; list of double values, e.g. a list of 2D points: ;
;;; '(p1.X p1.Y p2.X p2.Y p3.X p3.Y p4.X p4.Y). ;
;;; The list is converted into an ActiveX ;
;;; variant based on a safearray. ;
;;; No error checking is performed on the parameter -- ;
;;; it is assumed to consist of a list of doubles. ;
;;;------------------------------------------------------------------- ;
(defun gp:list->variantArray (ptsList / arraySpace sArray)
; allocate space for an array of 2d poin
ts stored as doubles
(setq arraySpace
(vlax-make-safearray
vlax-vbdouble ; element type
(cons 0
(- (length ptsList) 1)
) ; array dimension
)
)
(setq sArray (vlax-safearray-fill arraySpace ptsList))
; return array variant
(vlax-make-variant sArray)
)
;;;--------------------------------------------------------------------;
;;; Function: CleanReactors ;
;;;--------------------------------------------------------------------;
;;; Description: This is a general utility function used for cleaning ;
;;; up reactors. It can be used during debugging, as ;
;;; well as cleaning up any open reactors before a ;
;;; drawing is closed. ;
;;;--------------------------------------------------------------------;
(defun CleanReactors ()
(setq *commandReactor* nil ; clear the variable
*DrawingReactor* nil ; clear the variable
)
(mapcar 'vlr-remove-all
'(:VLR-AcDb-reactor :VLR-Editor-reactor
:VLR-Linker-reactor :VLR-Object-reactor
;; new reactors
;; New for AutoCAD 2000
:VLR-Command-Reactor :VLR-DeepClone-Reactor
:VLR-DocManager-Reactor :VLR-DWG-Reactor
:VLR-DXF-Reactor :VLR-Editor-reactor
:VLR-Insert-Reactor :VLR-Linker-Reactor
:VLR-Lisp-Reactor :VLR-Miscellaneous-Reactor
:VLR-Mouse-Reactor :VLR-Object-Reactor
:VLR-SysVar-Reactor :VLR-Toolbar-Reactor
:VLR-Undo-Reactor :VLR-Wblock-Reactor
:VLR-Window-Reactor :VLR-XREF-Reactor
)
) ;_ end of mapcar
) ;_ end of defun
lÛoí9N‾&U71yt E ^¡óaw´okN oOñ Ò¬p[ÿ6 f—ÛøÎoÎí;  `R xÃøbÏÙyJAF Q9#3‾õØAè´¢»F'ë n!1èA ظ PÔ
=ã$è
¡}Éh
øÜ Æ,FX¨©
̾#Õìcöù
ß´BUU
ÐÁG5EèÐ2Û¾S¨
úw 
Ý£Ï4Ú
x"ÊÌ2åiÑÝ¡åxm
Tâé
eÉöï(j÷sG?U'Iûþ
½03E%
#6t¡êIü‾ËõÔ
0ÙùñÐ ò0c8¼
û×îݧ X
þPqÎ(ØÛ.¸¹í!=IÍÐå
ZçE bgh
 Ù½,jFmØWÁnwÍÓæº
‾ Ö á´F¤P
g ýëQò«ð9߶wXkòó×Ýæ1î÷8X
î\ ºHóÕÔ|Ú¨Á" ¥ë
 ç
'> f( »ªX³qüzi  @ [ ämôÖ‾=û4é êGbÌåöÁá.
§æ¤_oâ Cµë& Onëª@M8£üÒ`;àÐH 4é¼ R
Æ‾ S?¨LØa  ]&úVìõ¨Pp . @ÙÎ J !DóKI£ ¶`fJ2b !öÙ+ÓìØÙ]9=Hj « `zY) P÷Îúùçu³k/?üÑ2fi«uâÙe
ãöô[ø=
ßú Ãó®9û—0
ï ï I+gCiû
Ðv.Ø7ï c%´Ö
MÀ¢É¡rv á—õ
gé;Sôð]¦o~Ô
eÒ_—w÷Ø%òçæƤjp¿ó͍
èF,[¦³cùn ûD7Ûã÷ï}
ç}x«`]
 ¿¾rùÇÚ©§ÍùâÓ>°P
& 4 ä\Á È d"Û°V<l SsØ6Ql$8 Öº*&Q
isÝ>ßÝëBçM(
'a ªr- U u« ? « X^} HÝëd‾iÍ 4 ç0äþó`zÓ 74|_ Ð"¨Ø( ÈÀ
%Õ qÎü:£_RÍ-3Ññ¤  Ìgl L Q9 ô µ\3îàçÄoâ^z[¹ßüÕƵ` d4|ÅrÝl 0 °E+D |¹`tÅü²¨4brh\
CðJ¾¼r5 à]÷ÓxPÐÔ CB | IÆ^HêÀj Úw ÌM Hm8èàâç ¦JÁebÎl§®û pC DýÔß
ç quP9®`l8Yjr×trëϪâ—YMàc;ZOÇ («ÆtBȪ Fؽ{¸ùüG(jmÌÞ9=—ßf N)¶jË vv> óÉ2QËBó[².Óü¡¹Dü bÑ éR
yi|%#«\!("B&I ¢\'qÏN!LMVe ¦ LT
êû¸X0 sh$ C Xu `ý ùªéq9¢÷ù<JÁ «þ& ÀI ]`÷° Ãfò
µU9
¡ êÉHUB
oþ}^uó£ÙÝ
ÀÎãù» ÛFìÎØ
6Ç>ä` d±
r´q¸¬7P:
]‾ª^½çÇÂWNBï®váM¤©_
6ÀÆËÄG§2ÏÑúDZÏk
õ²H¼å´ssX×
áù°;'Î$Hê
ÀPÂh
çýT ÕãG{I‾:
Ò!(5ji"87 ÆQHÈ ^-¼Éþ
Ô"oÔ¬
ÚÎýG´HôйÂðèàÖ
bd pùr  ¡Ý)¤°½
V ÿº[S
Q×yXy
ñàzD.@Gr¦ôÀ!µÃ
¸ÙàÇy°qH R÷XÛsOϱ¬5
æ?Íów[Ï!Ö¶©ÒÚf4
ºîNOÇÃy
‾ j;S
DR
y6 ãÙF¡Tk
ÒÔÆ,£dS$T!`Ò¤7=͵açËEB±—5=ÝÇ~ iIO ÎKÕY-½á-^¡!CÒ —¶], ½t#zyÏ ¨7@duXoDY t6:"^4¿NK ¨tsÅÞbê KS
ø= ) ¡â
ÉüH¶ZÝÓîW]W^'`æ[Ò> D|®>á\ ´O3«1 Æ —H «¥²ÄÁ ¦z9ßÊ a¦µá =i -äè ¡
l=Dm±µ º ïôèkâ¿Ú‾ï6¸æÓ¿ÏGè¿ ë °TÓ7ðÆ 1]ݾ ÕÅû +Á ÷¿àØOøö¹ X|AU ß~ßw
:çµ¥UïÄëÆA©üY
õT
Ç»mQXvÅé
ë«HöC¥'q²$9
Ýà>
 ]¤ß¬ì
é£ÒØ3ô¿ö
jpD
©i¦È
Ç_Øl‾
êigÊX
E¾fóm
÷íx÷a
Ë}r¼qùÔ)°®
oFè~tÜ
¨ ëÓq—¶«®Y'YR
ê+[o±ØF±
®Þ—½ò]XñÞ
vìøƍ
ʦ ©"*k
:ÛÀ
&k- 0aç
ü]QRf»ë+tû[vBê
Lá¼ u¸ä/
 ¢õ¥Xf
z¾—ÔÖx<4—Ýá
‾»Xýþë
,í ªxÉêÝé$£
¥^ y½¬&Í[ç¸ÊJ
)h 3 ß ÒAj±æØùP
ªøªû|½?Ç
¬ðEÓ¬d丿B`H5Ü

Dö í¼¿=Füd + «z~¿÷Å Ó ¬I<ßèõ b§[¶ ¢HUæ® 2 ômªBàmVå» <M à <ôòúlsºQ ÈaÚ.® —çÍÖÎjO ªÕqÍ¢=;'Ù ÒV_
gpath7.prjcGWpZFWWC)ÒôEË 7¿æmêÀWC)ÒôEËWC)ÒôEË   
gpdialog.dcl^hVFWó‾\ÖôEË 7¿æmêÀó‾\ÖôEËó‾\ÖôEËPëC 
gpdraw.lsp ^hVFWÊ ÖôEË 7¿æmêÀÊ ÖôEËÊ ÖôEË0¨/ 
gpmain.lsp#^hVFW2+ ÖôEË 7¿æmêÀ2+ ÖôEË2+ ÖôEËP-O 
gppoly.lsp%^hXFW2+ ÖôEË 7¿æmêÀ2+ ÖôEË2+ ÖôEË`åR gpreact.lsph^hTFW¼q¦ÖôEË 7¿æmêÀ¼q¦ÖôE˼q¦Öô
;;; UTILS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file is from the Garden Path tutorial, and represents the ;
;;; final state of the application at the end of Lesson 7. Use this ;
;;; file to check your work. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First step is to load ActiveX functionality. If ActiveX support ;
;;; already exists in document (can occur when Bonus tools have been ;
;;; loaded into AutoCAD), nothing happens. ;
;;;--------------------------------------------------------------------;
(progn
(vl-load-com)
(vl-load-reactors)
)
;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
) ;_ end of vla-get-ModelSpace
) ;_ end of setq

;;;--------------------------------------------------------------------;
;;; Function: Degrees->Radians ;
;;;--------------------------------------------------------------------;
;;; Description: This function converts a number representing an ;
;;; angular measurement in degrees, into its radian ;
;;; equivalent. There is no error checking done on the ;
;;; numberOfDegrees parameter -- it is always expected ;
;;; to be a valid number. ;
;;;--------------------------------------------------------------------;
(defun Degrees->Radians (numberOfDegrees)
(* pi (/ numberOfDegrees 180.0))
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: 3dPoint->2dPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; 3D point (a list of three integers or reals), and ;
;;; converts it into a 2D point (a list of two reals). ;
;;; There is no error checking done on the 3dpt ;
;;; parameter -- it is always expected to be a valid ;
;;; point. ;
;;;--------------------------------------------------------------------;
;;; Work to do: Add some kind of parameter checking so that this ;
;;; function won't crash a program if it is passed a ;
;;; null value, or some other kind of data type than a ;
;;; 3D point. ;
;;;--------------------------------------------------------------------;
(defun 3dPoint->2dPoint (3dpt)
(list (float(car 3dpt)) (float(cadr 3dpt)))
) ;_ end of defun
;;;--------------------------------------------------------------------;
;;; Function: list->variantArray ;
;;;--------------------------------------------------------------------;
;;; Description: This function takes one parameter representing a ;
;;; list of double values, e.g. a list of 2D points: ;
;;; '(p1.X p1.Y p2.X p2.Y p3.X p3.Y p4.X p4.Y). ;
;;; The list is converted into an ActiveX ;
;;; variant based on a safearray. ;
;;; No error checking is performed on the parameter -- ;
;;; it is assumed to consist of a list of doubles. ;
;;;------------------------------------------------------------------- ;
(defun gp:list->variantArray (ptsList / arraySpace sArray)
; allocate space for an array of 2d poin
ts stored as doubles
(setq arraySpace
(vlax-make-safearray
vlax-vbdouble ; element type
(cons 0
(- (length ptsList) 1)
) ; array dimension
)
)
(setq sArray (vlax-safearray-fill arraySpace ptsList))
; return array variant
(vlax-make-variant sArray)
)

;;;--------------------------------------------------------------------;
;;; Function: xyzList->ListOfPoints ;
;;;--------------------------------------------------------------------;
;;; Description: This function extracts and formats 3D point lists ;
;;; from one big list of reals, in the form: ;
;;; (x y z x y z x y z ...) ;
;;; This is the format of the data returned by the ;
;;; vla-get-coordinates function when applied to a ;
;;; standard polyline object. ;
;;;--------------------------------------------------------------------;
;;; The return value will be a list in the format: ;
;;; ((x y z) (x y z) (x y z) ... ) ;
;;;--------------------------------------------------------------------;
(defun xyzList->ListOfPoints (coordList / ptlist)
(while coordList
(setq ptlist (append ptlist
(list (list (car coordList) (cadr coordList) (caddr coo
rdList)))
) ;_ end of append
coordList (cdddr coordList)
) ;_ end of setq
) ;_ end of while
ptlist
;;; (setq ptlist ptlist)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: xyList->ListOfPoints ;
;;;--------------------------------------------------------------------;
;;; Description: This function extracts and formats 2D point lists ;
;;; from one big list of reals, in the form: ;
;;; (x y x y x y ...) ;
;;; This is the format of the data returned by the ;
;;; vla-get-coordinates function when applied to a ;
;;; lightweight polyline object. ;
;;;--------------------------------------------------------------------;
;;; The return value will be a list in the format: ;
;;; ((x y) (x y) (x y) ... ) ;
;;;--------------------------------------------------------------------;
(defun xyList->ListOfPoints (coordList / ptlist)
(while coordList
(setq ptlist (append ptlist
(list (list (car coordList) (cadr coordList)))
) ;_ end of append
coordList (cddr coordList)
) ;_ end of setq
) ;_ end of while
ptlist
;;; (setq ptlist ptlist)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: CleanReactors ;
;;;--------------------------------------------------------------------;
;;; Description: This is a general utility function used for cleaning ;
;;; up reactors. It can be used during debugging, as ;
;;; well as cleaning up any open reactors before a ;
;;; drawing is closed. ;
;;;--------------------------------------------------------------------;
(defun CleanReactors ()
(setq *commandReactor* nil ; clear the variable
*DrawingReactor* nil ; clear the variable
)
(mapcar 'vlr-remove-all
'(:VLR-AcDb-reactor :VLR-Editor-reactor
:VLR-Linker-reactor :VLR-Object-reactor
:VLR-Command-Reactor :VLR-DeepClone-Reactor
:VLR-DocManager-Reactor :VLR-DWG-Reactor
:VLR-DXF-Reactor :VLR-Editor-reactor
:VLR-Insert-Reactor :VLR-Linker-Reactor
:VLR-Lisp-Reactor :VLR-Miscellaneous-Reactor
:VLR-Mouse-Reactor :VLR-Object-Reactor
:VLR-SysVar-Reactor :VLR-Toolbar-Reactor
:VLR-Undo-Reactor :VLR-Wblock-Reactor
:VLR-Window-Reactor :VLR-XREF-Reactor
)
) ;_ end of mapcar
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: square ;
;;;--------------------------------------------------------------------;
;;; Description: This function returns the square of a number ;
;;; example: (square 7) returns 49 ;
;;;--------------------------------------------------------------------;
(defun square (aNumber)
(* aNumber aNumber)
) ;_ end of defun

;;;--------------------------------------------------------------------;
;;; Function: getPerp-Distance-and-Angle ;
;;;--------------------------------------------------------------------;
;;; Description: This function returns a list with the distance and ;
;;; perpendicular angle to user pt3, and is determined ;
;;; by supplied points pt1 pt2. Pt3 is "user input" ;
;;; and need not be at right angles. This allows us to ;
;;; solve for cases where ortho mode is off. ;
;;; Example usage: ;
;;; (setq Data (getPerp-Distance-and-Angle pt1 pt2 pt3) ) ;
;;;--------------------------------------------------------------------;
;;; Arguments: ;
;;; pt1 seed point ;
;;; pt2 seed point ;
;;; Note: pt1 and pt2 denote a "line" segment ;
;;; pt3 "user point" (point to solve for) ;
;;;--------------------------------------------------------------------;
(defun getPerp-Distance-and-Angle (linept1 linept2 userpt3 / dist:pt1->pt2
dist:pt1->pt3 dist:pt2->pt3
dist:pt2->ToPerpPt)
(setq dist:pt1->pt2 (distance linept1 linept2)
dist:pt1->pt3 (distance linept1 userpt3)
dist:pt2->pt3 (distance linept2 userpt3)
dist:pt2->ToPerpPt (/ (- (+ (SQUARE dist:pt2->pt3)
(SQUARE dist:pt1->pt2))
(SQUARE dist:pt1->pt3))
(* 2.0 dist:pt1->pt2))
) ;_ end of setq
;; return a list of the point perpendicular from userpt3
;; on line segment between linept1 and linept2, as well
;; as the angle & distance between userpt3 and perpPt
(list
(setq perpPt(polar linept2 (angle linept2 linept1) dist:pt2->ToPerpPt))
(distance userpt3 perpPt)
(angle userpt3 perpPt)
) ;_ end of list
) ;_end of defun

;;;--------------------------------------------------------------------;
;;; Function: midPoint ;
;;;--------------------------------------------------------------------;
;;; Description: This function returns the point at the middle ;
;;; between two give points ;
;;;--------------------------------------------------------------------;
(defun midPoint (pt1 pt2)
(polar pt1 (angle pt1 pt2) (/ (distance pt1 pt2) 2.00))
) ;_ end of defun
;|«Visual LISP© Format Options»
(72 2 40 1 nil "end of " 60 9 0 0 0 T T nil T)
;*** DO NOT add text below the comment! ***|;
êJ^Ô5¹Ñ$÷ozý~
¦/haäúm ld"P",£Àvm
ÌðvRC m³h¦,Înoû
L—Zè ® JI²
".y*ãÐMß\¨ª"ÖM ©çQ`!ÛÔÎ åbû
EæÛ0º
½ð ý´`*N9ýùl¢©ÒËq[WGÇÒ±Ì@X CÇsdº^á¬$I3ËÔ Y´ÊãJ7²©ý}×Ä 8´K_—Ló%àÄÙ ëõ®'¨9.çÿhx{sO oY '$q
É`¹ùzëÎã»V
 ÌNWnnnÄùta¨ý~
ºç Yâ:á|Öè6
¾Mlt+Ç^ ¦¾(cÒÐ 46«l½L Y § õ2#ÏQi } ij iì¡ÒÃ7,[Çã ¦ò .cQ$Ôu×1ýr\a<¦ n³Ù2 I
 r Ây¨áÅñh4
nè*o  K #ò³7Ö‾?ßy x 6Û þ ke n w+&e ¼ {CK `³ÎÖ«ÔsmÛZ¬ò <Ú¬Ò(ô b^ªmQqriì ¾b ¹èL§bòG grÌAÕ²
Þb\L§ k "ß-a Y¿äOgö4L ¢ÂGWßæ)Iâx\öô, ñ ¢©©ÖÕ1
\v#¾ gay» ïÙ cB
ðd/óØ÷j(Ë Ûu &!Q ÈËÓ0K 0xòçHÜbÄ9ö«zrY/Á ÌËwíù|@2Ô° ²Ä—l^ISÛ W°2
}Gå~9
¾âß»YçûÝz³^ú¾Ëê
º Eßf³i1Ä
¢«eÂ
Ñ(WÇß0
"ªþøÀ
ù ¦r[Â~]i
K"¿°Ö©Êe²
F¶zË$Hl{
¦fkUlUVõ>o
¥¬Xnë§ðkm¾Ý,Ñz
µ0¦76 ϹÕ2%TÈt«¸
°k | IX¾eYQ$Y
pHóö[b WJ tf¹ÙûìqHrB¾´
E1⢩k c:ؤ àDd(R
5îå Å1
Ø'0 ùAÑ ³Êñg»Y-óW\ÂKâW £ U# ,J çIç ja\‾ À,Ï8 òý ¾(v+8`?K  S §|kðg—]‾VÝ»ôßUc||x@,7à e?ì7U±[
Wqx{:î÷ûmUsÑy50é°ß!ò¼; }UsÑyµ6õñ¸GÔ ûû»ã eÍEçUc|zzDw§#:üÑ<p äצ¬¹è¼ Tý hãòSUsÑyµ0Vÿ
vùm
;;; ;
;;; VLA-TST.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;; Load the AutoCAD 2000 COM object model functions here
(vl-load-com)
;;;--------------------------------------------------------------------;
;;; General Note: The command function c:vla-tst requires a function ;
;;; named get-utime located in file al-tst.lsp ;
;;; ****** THIS FILE IS A MEMBER OF THE VLA-TST PROJECT. ******** ;
;;;--------------------------------------------------------------------;
;;; This file demonstrates adding 2000 circles using ActiveX ;
;;; Automation. Each circle's visible property is then modified ;
;;; to visible and then invisible. Then each circle is erased ;
;;; individually. An elapsed timer is displayed after the creation ;
;;; and deletion of the circles created. ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: VLA-TST ;
;;; ;
;;; Description: This function creates 2000 circles with ;
;;; equidistant offsets using ActiveX Automation. ;
;;; Each circle's visible property is then modified ;
;;; to visible and then invisible. Then each circle ;
;;; is erased individually. ;
;;; ;
;;; Arguments: None ;
;;; ;
;;; Returned Value: last erased vla object ;
;;; ;
;;; Usage: (vla-tst) ;
;;; ;
;;;--------------------------------------------------------------------;
(defun vvla-tst (/ acadApp acadDoc mSpace i plObj offs
nPoint lwh2 lwh j saPntLst plen pntlist varPntLst ent
)
(Setq acadApp (vlax-get-acad-object)
acadDoc (vla-get-ActiveDocument acadApp)
mSpace (vla-get-ModelSpace acadDoc)
offs (car (getvar "snapunit"))
)
(setq lwh2 (/ (setq lwh 5.0) 2.0))
(princ "Creating 2000 LWPolylines.\n")
;; Create 2000 Polylines in Model space
(setq i 0)
(setq saPntLst (vlax-make-safearray vlax-vbDouble '(0 . 7)))
(while (< i 2000)
(setq plen (length
(setq pntlist
(list (* -1.0 lwh2) (* -1.0 lwh2)
lwh2 (* -1.0 lwh2)
lwh2 lwh2
(* -1.0 lwh2) lwh2
)
)
))
(setq j 0)
(while (< j plen)
(vlax-safearray-put-element saPntLst j (nth j pntlist))
(setq j (1+ j))
)
(setq varPntLst (vlax-make-variant saPntLst (logior vlax-vbArray vlax-vbDoubl
e)))
;; creates an LightWeightPolyline object in model space
(setq plObj (vla-AddLightWeightPolyline mSpace varPntLst))
(vla-Put-Closed plObj acTrue)
(vla-Update plObj)
(setq lwh2 (/ (setq lwh (+ lwh offs)) 2.0))
(setq i (1+ i))
)
(princ "Changing 2000 LWPolylines to Red Color.\n")
;; Change color
(vlax-for ent mSpace
(vla-put-Color ent 1)
(vla-Update ent)
)
(princ "Erasing 2000 LWPolylines.\n")
;; Erase all objects
(vlax-for ent mSpace
(vla-Erase ent)
)
)
;;;--------------------------------------------------------------------;
;;; Function: C:VLA-TST ;
;;; ;
;;; Description: This keeps track of the elapsed time from the ;
;;; creation of 2000 circles to their erasure. ;
;;; ;
;;; Arguments: None ;
;;; ;
;;; Returned Value: none ;
;;; Elapsed time in seconds from when the drawing was ;
;;; opened. ;
;;; ;
;;; Usage: (C:VLA-TST) or VLA-TST from the Command: prompt. ;
;;; ;
;;;--------------------------------------------------------------------;
(defun c:vla-tst (/ t0 t1 cmde blipm osm asm)
;;; Drawing Limits, Zoom, OSMODE, and VIEWRES may all significantly affect
;;; the times it takes for these functions to return.
(command "VIEWRES" "Y" "1000")
(command "LIMITS" "-750,-750" "750,750")
(command "ZOOM" "W" "-750,-750" "750,750")
(setq t0 (get-utime))
(setq cmde (getvar "CMDECHO"))
(setq blipm (getvar "BLIPMODE"))
(setq osm (getvar "OSMODE"))
(setq asm (getvar "AUTOSNAP"))
(setq plm (getvar "PLINETYPE"))
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setvar "OSMODE" 0)
(setvar "AUTOSNAP" 0)
(setvar "PLINETYPE" 2)
;; Testing function place
(vvla-tst)
(setvar "CMDECHO" cmde)
(setvar "BLIPMODE" blipm)
(setvar "OSMODE" osm)
(setvar "AUTOSNAP" asm)
(setvar "PLINETYPE" plm)
(setq t1 (get-utime))
(princ "\n; Time (secs): ")
(princ (- t1 t0))
(terpri)
(princ)
)
(princ "\n; To test: AL-TST, VLA-TST, (c:al-tst), or (c:vla-tst)\n")
(princ)
;;; EOF
¤ë: ¬ 32 —xØ ±^ Õb Ñ qvbHö}7 Ci# %¨x#Ʊ Ï 0ÀC$íÆCl_ä© ÈS6kTn7¡×Ça±È \ÊÓð ~xlþ èÓ× c-m5
y  _ùwæ¨Áõ¦äYáû>¿´ßG ó«eqñ½ í× Õ)¬¸%òê¨ g 2ü§Äü í ®×TBl¿ùóº J í Ý|ê bûííM Û ÿþ|ÛA%Äö»»ÏTBl¿ÿ
bbb#
endstream
273
endobj
0 obj<</CropBox[0 0 612 792]/Parent 503 0 R/Contents 275 0 R/Rotate 0/MediaB
ox[000obj<</XObject<</Im1938
274
endobj 612 792]/Resources 274276
0 R/Type/Page>>
0 R/Im1999 277 0 R/Im1413 279 0 R/Im1940 280 0
R/Im1941 281 0 R/Im2054 282 0 R/Im1052 284 0 R/Im1302 285 0 R/Im1306 286 0 R/Im1
307 287 0 R/Im310 277 0 R/Im1453 289 0 R/Im1456 277 0 R/Im1072 277 0 R/Im1709 47
7 0 R>>/ColorSpace<</Cs6 516 0 R>>/Font<</TT1 522 0 R/TT2 513 0 R/TT3 514 0 R/TT
4 515 0 R/TT5 528 0 R/TT6 523 0 R/TT9 459 0 R>>/ProcSet[/PDF/Text/ImageC]/ExtGSt
ate<</GS1
275
endobj
0 obj<</Length
520 0 R>>>>
14732/Filter/FlateDecode>>stream
AH Ín—
¼WÛr=À¿—küÏó"__Ý~YüãvñïÄÖ
Ç}ÇWì[ UÁxî *¦9*ËVD ó Ò
rÁ.³I¨@9î
 3üûtïì
æ^QJÅß½Åo>
f{w9å²»}9}út÷—
AÂl¶4Ëg6ÙBIBu&)Ñ6
 Bü×G ]ßdÞüÍõ/ðÆ[øëKF
ñ qÂev(ÿÉv ÞÜ°ìá¸øñvñÃí-ü
WÙ3xÌÞe?Ñìn
¦-kõ\ÏØ´~@ç7©sN . :5íÒ;Ê?üá57ÿgê Zl Ø ´¼ 3½+g ó|ÿ5ñ® &Bz fås±WV§Kï?§Þ$Lz n¥sÛMA
o%<Úu|л²ÄÎF^3ÐØÒûo©wÐ# X§ _g/íU ¦ã¥k°ÚeKÀÔæ¾ Ê !0ëñI ¿ õõ¼§Ù )
<ûÚïa8
ÁÌfJãCù¿®{Bµ¦oTGÃum6Ö¢46áîyÜhâ%átå£qt ÑÅ
¬=0è
å$  *& õ!

5 YÂVˤ«~º
÷±OãÊO©
× FnðÚÚLp
h`4hb5
&Àp ùi
¢Â9|#vóS
ìæ÷#Ú è V1 Âü Ýìã
ájì
¤ *{Ï
Úà0Û
`Ì\@]\âÍ
)æC {ùÚá
í¨s«;§u
´OÏÕÎ-QnA.mµ#;Ì Õ4«ÆiJwÑ[;®%LÍZpGq é Ü
Uðñ
âþ üoéë¼
Ïûßf0£H<µÒ
@NX~-G3“
PÎ:Ô Ør^L£0z&  i7 ý 9¸À*òEG£ÖÚàu¾ãÅè!z×^FÖÎ?f(g\ çIòÇ´AÔÃÛ}C~,ªÀ_Þ Ïª £Ðý
ÃyÆ%_µ×Ë øoK\õç' /i } y£7׿À[oá‾/@~®²gð ½Ë>~¢ÙÝBih¶Ì(вlܪ¾>áW;ä¶zÆÿõ´¸¹ 9üEc
Î fÇðyÖ´1pߨDÓÇ# =¸Õز°úví\ù ¦5Åñ=Ñ4©ªëBu RU峫æñI
g²"ÔÎÓëæåx*êÛp ] lðH"Ü ¨ðG^sf7ÃgÔ çø;UªD_»R`gµ ¬µÚ©pIe-Æ©¤B 4`Å=8oFj G~ ꬄ ]qXÕKR
ÃÅTi ~f
¦ R¬Â9   h J ¦ j c1ý0Sh¨)¦KH¥ ôe½ ? 4 @Øá©Ñ3$ÈE !¥=å¨Q³:8 +¼ o¢
*¬x
MF`3íx
¬]`z2 mª WJÉ;Åî.Í 
ã¢
ÅÃf¿K-)À6ÏèÀ äÃðH Ú9 uR#ÓqäNìÓðb *îoeª¿oöß i®N»®æºÒ‾Ìíî®Ú/çÖå¢qUß omTáGÀû,Mß 6 B Èñë^2Â@
 Ý;¢#cjRSÜ
ï ] !Ów)¸B
3 *«'B + § þV—¸ 6Þ"y?æ «»+I$0 Ì‾÷»SñßÓէۗØ°Ø0¡:w|:=ýÅ À]8 1º.*Û°f Ò {¤+çíIXØ  G7¼¸ ¦
F=¨l ì¸Q‾`ß r®ê*g ì ¿ >ÍviÂxö þR\" kKXò ø°Þs6µZ~ Ói³{h ^[Z 5áó- LºC9 4¤ä
Ö;® 2f¬Ü(«` =ÿ<$6¼ñN@;ß<< ÝÀ ÛÕx|K[ n ø^Aïå» cY¶ÐÊJ<Ê'v µ ÐGu, xÃh¢å ®0 ü§  lGgÅ¡p
l³q #!Y q—é j`Õh ùmhI6-¾¢Âð Á ê3 'ð ° å/ ä
L õ%?=¦w#-±NnÜѧýC³h
7à¶uéì
¾Ì`Iq¼90û
u+‾ƧtHæÊM($=²f°iÎ
CTÛ ÔfÒð} üUͤ#âO
¦çÝR
~ëò¿£AðÄzSì
Ê Ha Ãê©òT¿$p
' %Ô × s£BOFeáU
[ón1êµ9rÙ
7Ç´ÄÒ û`«9îק ×qÖuð6 aè@×ÏS<i-. ¸´ ³óãÿ Í ÐgE *ÕgDOpdá9¥´
Ù!Û¼èÅÆ77#5 j&ºà |_Vñ Ô±2!-^` X ¶Ø«‾â!DZ t¸  &Q;;;
;;; VLX_FILE.LSP
;;;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;
;;;
;;; This VLX application demonstrates that variables can be exchanged
;;; between application and document namespaces and between application
;;; namespace and session blackboard.
(vl-load-com)
(vl-doc-export 'import_objs)
(defun C:import_objs ()
(setq thisDoc (vla-get-ActiveDocument (setq app (vlax-get-acad-object)))
docs (vla-get-documents app)
thisDocName (vla-get-name thisDoc)
thisDocBlocks (vla-get-blocks thisDoc)
thisMS (vla-get-modelspace thisDoc)
)

(setq exclude_docs (list thisDocName))


; Retrieve and increment counter from active document's namespace.
; Counter reflects number of times this function has been invoked.
(setq import_objs_cntr (vl-doc-set 'mdi-vlx-cntr
(1+ (vl-doc-ref 'mdi-vlx-cntr))))

(while (equal "Y" (progn


(initget 0 "Y N")
(getkword "\nImport a transfer set into active document? [
Y|N] ")
)
)
; prompt user to identify an open document
(setq message (strcat "\nCurrently in drawing "
thisDocName
".\nXREF in drawing from open document:"
)
)
(setq
chosenDoc (vla-item docs
(choose_item docs message exclude_docs)
)
chosenName (vla-get-name chosenDoc)
chosenFile (strcat "trans" (itoa import_objs_cntr) chosenName)
chosenSelSet (vla-item (vla-get-SelectionSets chosenDoc)
"mdi-vlx"
)
)
(terpri)
(princ chosenFile)
(vla-wblock chosenDoc chosenFile chosenSelSet)
;clear chosenSelSet for next loop pass
(princ
(strcat "\n" (vla-get-fullname chosenDoc) " is selected\n")
)
(setq exclude_docs (cons chosenName exclude_docs))
(setq InsertPt
(vlax-3d-point (getpoint "\nChoose insertion point.\n"))
)
(setq importBlock
(vla-InsertBlock
thisMS
InsertPt
chosenfile
1
1
1
0
)
)
(vl-file-delete chosenFile)
(vla-regen thisDoc acActiveViewport)
(vla-ZoomAll (vlax-get-acad-object))
)
)
(defun choose_item
(collection msg excludeGrp / obj index keywds curName)
;|
Allows user to identify an item in a collection, excluding members of "exclude
Grp".
excludeGrp is a list of names which might coincide with the names of items
in the ActiveX "collection". The user is prompted to select one number from a
menu of acceptable
collection items. The index of the item is then returned.
|;
(if (or (not (listp excludeGrp))
; collection not a vla-object
)
(quit)
)
(terpri)
(princ msg)
(terpri)
(setq index 0
keywds ""
)
(terpri)
(vlax-for obj collection
(if (not (member (setq curName (vla-get-name obj))
excludeGrp
)
)
(progn
(princ (strcat "[" (itoa index) "] " curName))
(terpri)
(setq keywds (strcat keywds (itoa index) " "))
)
)
(setq index (1+ index))
)
(initget 1 keywds)
(atoi (getkword "\nEnter number for an open :"))
)

 *vÜwã ©tçÒµ£/ýT ÖXó¸s # =ï


¢^ÊíáSlÕ"ø&8¬^c³,y.H"Ø<¤ /°îLCÌ õx7)ÊÌ]}v§ 4:ñ ½ }Oîq²^ÈQ}mu½Ô®<3Þ¿O«~&)T.Â)âë)ݽ
ÊË.N>Á~áî>b
ÈèE
ï c#aV!× <å vËg²¥ñl
ð Flh7øëð×
c# uÛ6Ç
ÿ co$tÂV
àÕÇ¿À
j»hf¸¢}]o
þó ÀÿO{Õô¶
PEãóW$Ñ»~1'i
ÝѶìo6v
0»tòâdÁé÷{wÞ{c
Ã8 H 0Xöâä X´¬¬><
Þ[L ^Uoþý¼î&¥fwS¤4Y
 ³Ï|å( c$Àú %+q;×
E Ul¾
[ iP§PéB Ú Îy—V 3Ó ¶rG@Ö#Ü[ oåoþ‾)Ðø-øîªËî;ÞS £Ûè3ÕÀ|s» Ùí]æÞïîö¢>àê[fØ5{Å+g³û/E6 Y¢å
»p½.º(]
4 Ó(üj zø¢9Ë-/ Kè¾pw11À ´Ïç&q7k«
ì#ÆáFui
þzD°V(rÕ<
¤ x¥
4H ÏôCUØÖ %²^f
`Üê vêÇ? KüÒh~ ø  ï ȗ¹²öhËÙf±ªöí2²\Zöcî'¤.áÓr¶/{5®ÃNaóg j( *ô¾Ý满Û
Wº> IÓçpuùºÜ³aJjÈ 3JmÀ$31'ÀlæX ¹b ¨ «äª yÆF÷Gâëàªjc[Z
 ýæËïËy$ºYN4é‾ æ? ¶¢¶¿)CL`$ÿE=3Ò~SXÏ×Ó Q<Hðú ÛóvÇÑ  qßjÔ²wyJè Þ©c<îö? ¶ûHÏqÚï« ÉÆ¿LR¥:
Õ7¥é 8líô ^3ÀÂAVE³Q ÑÆ"®Ëö 2§ã É ¢ÓªM ÆÑ"FÀ²ÅàjÈÀÉ YH}ÿÝ«^È 8Û ùä<q{ñ}¶z eÍ b® z ^ «
: ^³P8Dà Òú O ÷0Ø‾ká×N5"² T~KÙ8 ÿ°[ Ya)¥î§ûvÿ;{Þ.SôsÁdi ¤ò_Þfßô4¼B)3":úÈÿ?Ç Q ý¹KùûÝd*
¡ ìÅ«IècÿÝQÛEp$ j½ ££ ô `£°Á¹Í P<ÓÜ
á1ó¢w³CpcZ:wU¢ÓP"!+ B÷7 YØD"kg6©\Ãøá\鳍 ô {UÍÃ) èîã)6©F¸¨VÐI9¡'ÜhV Áêâ´Á iödØåÈͬ 6Ê
sB{^´¨,Já;Ð ª Uà*ÚH8Ò
?Ã L ÙÉ^¸°\woë`k! ½ Ëà‾Ý7»
þô¶íJ n¡ÈTóÍí^f—w {½»ÛOû «o ¡Ýìo }Ìî¿Ù|$d L ,¹l=ÂâwWæ£  u} »Z îN R ê2×W5caÈ ÄxL;q
4¿¨YõG ¾Yg ÁíÈ2`* « -fËÍ>rMD¿²n‾2GÕ÷jצ°!hÅ/§ ÙÏÞÛÅØ${ K—ÛëøÄ ‾á £ùxqBFÙ×Jv¡ZêÔ%Ô¹ ‾ */hzÆÅ
ýG Êi,ºÎÂi â¦^Cî~ÔoA k¼ì\ãô G˧8<öϳ ª æ tnc/Y,ú g»Cº‾Ï@ hk szz;;;
;;; VPSCALE.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
; find the scale of a viewport relative to paper space
; Carl Bethea 11 April 91
;
; Paul Vine 20 April 1999 Ported to 2000.
;
;--- paper -------------------------------------------------
; returns T if in paper space
(defun paper ()
(> 2 (getvar "cvport")(getvar "tilemode")) ; port=1 & tile=0
)
;
;--- getx --------------------------------------------------
; return <nth> dotted pair of the extended entity data
; from an entity association list <data>
;
(defun getx (n data)
(nth n (cdadr (assoc -3 data)))
)
;
;
;
;--- c:vpscale ----------------------------------------------
; get the xp scale factor of a pspace viewport
;
(defun c:vpscale (/ ent data cvsize cvhgt units vpna flag)
(cond
((not (equal 0 (getvar "tilemode")))
(princ "\n Command not allowed unless TILEMODE is set to 0 ")
)
((and (/= 1 (getvar "cvport"))
(setq vpna (acet-currentviewport-ename))
(equal 1 (logand 1 (cdr (assoc 90 (entget vpna)))))
)
(princ "\n Command not allowed in perspective view ")
)
(T
(acet-error-init
(list
(list "cmdecho" 0
"luprec" (getvar "luprec")
"dimzin" 8
)
T ;flag. True means use undo for error clean up.
);list
);acet-error-init

(if (paper)
;(setq ent (car (entsel "\nSelect edge of viewport: ")))
;;Added the following code to replace the above line. Irregularly shaped
floating viewports actuall
;;consist fo two entities (a pline and a viewport) with reactors on each
other to point to each other
;;so a simple (entsel) returned a pline instead of a viewport. Had to uis
e the built-in filtering
;;capability of 'acet-ui-single-select' to get around this problem.
(progn
(while (not flag)
(princ "\nSelect edge of viewport.")
(setq ent (acet-ui-single-select '((0 . "viewport")) T )) ;setq
(if (and ent
(= 1 (logand 1 (cdr (assoc 90 (entget ent)))))
)
(progn
(princ "\nViewports with perspective view on are not allowed.")
(setq flag nil)
);progn
(setq flag T)
);if
);while
);progn
(setq ent (acet-currentviewport-ename))
)
(cond
((and
ent
(setq data (entget ent '("ACAD")))
(= "VIEWPORT" (acet-dxf 0 DATA))
);and
(setq cvhgt (acet-dxf 41 DATA) ; viewport height
cvsize (cdr (getx 6 data)) ; viewsize from extended data
)
(prompt "\nPS:MS == ")
(cond
((< cvsize cvhgt)
(princ (rtos (/ cvhgt cvsize) 2))
(princ ":1")
)
(T (princ "1:")
(princ (rtos (/ cvsize cvhgt) 2))
)
);cond
(setq units (getvar "lunits"))
(setvar "luprec" 8)
(cond
((= units 4)
(prompt (strcat "\nViewport Scale: " (rtos (/ 12 (/ cvsize cvhgt))
) " = 1'-0\""))
)
((= units 3)
(prompt (strcat "\nViewport Scale: 1\" = " (rtos (/ cvsize cvhgt))
))
)
)
)
(T (prompt " no viewport found."))
);cond
(acet-error-restore) ; Retsore values
)
);cond close
(princ)
);c:vpscale

(princ)^nöä¸ì± ‾ í`?(vü7¿)¢Áoéëð:
´çTfÆåKç¼v
}ëƵ йè ûҨǮ/È?
èhzzÜy2ã¸Óª®
u@E; =ãD:?G¨Zë©
ø-ÿ .p '»hÉJ&,;qù' s³23ÈÊëà Lí Ä;å2
}×Ð+¥ý
²''' ~ýÔm
k¿£öüEé´ÇÓ
~ ´—, =ãúÑf<ýÔìÌW
Ó:ÿ F o÷
W qp}ú
$ØÁeöO6Û
䤤²9E #5n ×ÒEµ]M¾Ï _b?` }ËÎ V2ÆÝ ZÕH ª*Ëø °eJåÙS$ íO¶øÊE
v Ý`Öµ¤¤l,ÿ$ d Ri|
Þg
ÔXpI°Ç~¢VdBØ‾
ì1È ]LáÙMZvÍÖf$`
`´8Ú;ïk;;ØÙ [Û©lª
ØÁÎNÀvuvv°³
![mõm²
° rììªï
gOøy»QRàu
ÓG£VÎ^Úr²³
ܶ ¿Ðä¸~¤¿óHjJEùµ)—ùxú±
Võä¸nË i pÛty¹Ù ow*®
üóS.Ó
kû §  ù*s³ýÆ
0¶Ék©KÚ®&
üNî
ó¼vR«7(*ËBÇ0 ðÏ¥SYÇO a§ÔHØ ¹ I«  ¤Oîû7ýïÜ.¡ ý VycÕÆsénÖ÷Jé 'uwyL]«‾ ä/çR'Ïf âû¬ ÕÐÓ ¸ å
cÜO
Ô~ÐØÆ_%j{\°×>¸Mÿhºé÷K èï~ØiIG{:SË ßurRRÙ ¢ÀfÑ]@R®\8z$ÕbîðØõ® ä 'Ùù"ã±ø¾}ÄþóÎ/2`g }Ó®2¶¥¦¤T~
jÙ
¼=òísmÔöÁõ
oàýk
Ê òaÙÿvq
|>0¸¾
@ä Mg§
X]òE
¶O ÍÚ®b¶
¹µ7
SËÅ÷½]ö;Ø£Æ.x‾D
¨}l9ÙYvKïËù1¬Û?
¨c ã ]dÙÎ
° °e-';Ëné}9?öî×ÞMö¡õ7
¼ oA-©`eóa÷: Õ DØ»¥g ½ 5vEó ½EÞTÕÕVï´ª ü~ì` ÁD
%Åù
m°O¹LIò°¹Ýc7
í Èçì`g'<{äE8
ý°Ù ÜÐ+MCÄH©ý
sÁO-Ó
ë ¾'t°3ÈÞÑò(Þ£
ì`ûƵòr³Ã®ÕÌxúhMõbväé¤9.Ø÷ü
ÈÙëàÀv±°c%v° ý0Øz×W«5V©Úê¿÷>
K¾³ö&°¸`ÛdW
y 6m£ì</f~'Gg
"bgÇ[*ØÙbçCø%Åù
;Øã ½nÎ?I
¦ÏÞX
ÇÿòûåÎÖzYã}°
{Üø ?ÿ Ó(¤Oî
=6vÙAÿý×|~5?
W> µÿë§w´6ö:ûþó—5³¾µùñG
ê vAØiÌk{¤ ÿÓ[¿« ~OêîÜÑd÷:
ö)
ÙgN%lÛ$
³Þ+ÑÇiÕÌzû
dN-££ñÂNý
?L°î1i|Àìì~ì
±‾Óì`g'`
-ùçOïþ°¾x
;;;ØÙ EÆçàtÝÍII
ØÁÎNÀvvvA󪻥~§1x;ñÅÞÝÞ@ÙiÝ.oª¢üæÕÓ?þîU
°³° ììì`g'` ݤU Ñ ¢ Ç þhv >^)¸

²¥ £]ðn°
~ÅÝÞZ° :ãÔ®{
ììì`g'`
Q ;;;ØÙ ØÁÎNÀvvv°³°Çû¤Mç°ªOf¤ Ï9MÝ6 à=eÀvvv°³ =aÛvñÂY:êspf]KJ $¸¿âæ
°2
ÅÂ¥§¥ÎO
«? 1ææf
0Ç(z¸Q ªòÆήêæ²
SÃh,Í Ãö@ìg
= è²=(ñ/2û±
%À[ö Ñää$ñ|ÇÃz
?g ½ì« üGÂX a;;
×
;;;
;;; VPSYNC.LSP
;;; Created 10/16/97 by Dominic Panholzer
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------

(defun c:vpsync (/ is_perspective align_vp FLAG IN_MSPACE ANS VPM CNT DCNT VP_EL
ST VP_HLST EN LOOP SS)

; --------------- PERSPECTIVE CHECKING FUNCTION ------------------


; This function checks if a viewport is oin perspective view.
; It returns T if the vp is in perspective view else nil.
; ----------------------------------------------------------------
(defun is_perspective (VP)
(setq VP (entget VP '("ACAD")) ; Get viewport edata
VP (cdr (car (cdr (assoc -3 VP)))) ; and its xdata
VP (cdr (member (assoc 1070 VP) VP)) ; Strip out Extended data
version #
VP (cdr (assoc 1070 VP)) ; and get the view mode
)
(equal 1 (logand 1 VP)) ; Is the 1 bit set (persp
ective)?
)
; ------------------- ALIGN VPORTS FUNCTION ----------------------
; This function takes a Master viewport entity name MVP and a
; list of viewport entities to be aligned to the master VP.
; ----------------------------------------------------------------
(defun align_vp (VPM VP_ELST / PT1 PT2 VPM# VDIR PMS1 PMS2 CNT vplock na vp )
(setq PT1 '(0 0) ; set abitrary PS points
for alignment
PT2 '(1 1)
VPM# (cdr (assoc 69 (entget VPM))) ; get the master VP's num
ber
)
(command "_.mspace") ; Get into MS
(setvar "cvport" VPM#) ; Set the master VP curre
nt
(setq VDIR (getvar "viewdir")) ; get the view direction
(setq PMS1 (trans PT1 3 2) ; translate PT1 from PS t
o Display
PMS1 (trans PMS1 2 0) ; and then from display t
o current ucs
PMS2 (trans PT2 3 2) ; Do the same for PT2
PMS2 (trans PMS2 2 0)
CNT 0
)
(foreach na VP_ELST ; Go through the list of
slave VPs
(setq VP (cdr (assoc 69 (entget na)))) ; get its number
(setvar "cvport" VP) ; set it current
(setq vplock (acet-viewport-lock-set na nil)) ; unlock the viewport if
needed
(if (not (equal vdir
(getvar "viewdir")
0.000001
) );not equal
(command "_.vpoint" (trans VDIR 0 1 T)) ; change the view directi
on if needed
);if
(alignspace PMS1 PMS2 PT1 PT2) ; align the points
(if vplock
(acet-viewport-lock-set na T)
);if
);foreach
);defun
; ----------------------------------------------------------------
; MAIN PROGRAM
; ----------------------------------------------------------------
(acet-error-init
(list (list "cmdecho" 0
"regenmode" 1
);list
T
);list
);acet-error-init

(acet-autoload (list "aspace.lsp" "(alignspace PT1 PT2 PT3 PT4)")) ; Autoload


alignspace
(cond
((not (equal 0 (getvar "tilemode")))
(princ "\n Command not allowed unless TILEMODE is set to 0 ")
);cond #1
((and (setq FLAG (acet-viewport-next-pickable)) ; If there i
s at least one
(car FLAG) ; non-perspective VP
);and
(if (> (getvar "cvport") 1) ; If MS is active
(progn
(setq IN_MSPACE (getvar "cvport")) ; save the current VP
(command "._pspace") ; and switch to PS
)
)
;(setq ANS (car (entsel "\nSelect master viewport: "))
;;Added the following code to replace the above line. Irregularly shaped f
loating viewports actuall
;;consist fo two entities (a pline and a viewport) with reactors on each
other to point to each other
;;so a simple (entsel) returned a pline instead of a viewport. Had to uis
e the built-in filtering
;;capability of 'acet-ui-single-select' to get around this problem.
(setq ANS (acet-ui-single-select '((0 . "viewport")) T ) ;setq
LOOP T
)
(while LOOP
(cond
((not ANS)
(setq LOOP nil)
)
((not (= "VIEWPORT" (cdr (assoc 0 (entget ANS))))) ; If selection is no
t a VP
(prompt "\nInvalid selection. Try again.") ; re-prompt the user
)
((is_perspective ANS)
(prompt "\n Command may not be invoked on a viewport with perspectiv
e view ")
)
((= 0 (cdr (assoc 68 (entget ANS))))
(prompt "\n Command may not be invoked on a viewport which is turned
off ")
)
(T
(setq VPM ANS
LOOP nil
)
(redraw VPM 3) ; Highlight the Master VP
)
)
(if LOOP
(setq ANS (car (entsel "\nSelect master viewport: ")))
)
)
(if VPM
(progn
(prompt "\nSelect viewports to be aligned to master viewport.")
(setq SS (ssget (list '(-4 . "<AND")
'(0 . "VIEWPORT")
; Must be a viewport
(cons 410 (getvar "ctab"))
'(-4 . "<NOT") '(68 . 0) '(-4 . "NOT>")
;and not be turned off
'(-4 . "<NOT") '(-4 . "&") '(90 . 1) '(-4 . "NOT>
") ;and not perspective
'(-4 . "AND>")
)
)
)
(if SS ; If a valid selection wa
s made
(progn
(setq CNT 0
DCNT 0
)
(while (setq EN (ssname SS CNT)) ; step through each viewp
ort
(if (is_perspective EN) ; check to see if it is i
n perspective
(setq DCNT (1+ DCNT)) ; if so, increment the re
moved counter
(setq VP_ELST (append (list EN) VP_ELST) ; else
add the VP to the list
VP_HLST (cons (cdr (assoc 5 (entget EN))) VP_HLST) ; and
save its handle for storage
)
)
(setq CNT (1+ CNT))
)
(if (< 0 DCNT)
(progn
(prompt (strcat "\n" (itoa (sslength SS)) " viewport(s) selecte
d."))
(prompt (strcat "\n" (itoa DCNT) " perspective view viewport(s)
removed from selection."))
)
)
)
)
(redraw VPM 4) ; If no valid selection,
Unhighlight Master VP
)
)
(if (and VPM VP_ELST) ; If both Masetr VP and '
slave' VP(s) exist
(progn
(align_vp VPM VP_ELST) ; align them
(setq VP_ELST (list VPM VP_ELST))
)
)
(if IN_MSPACE ; If MS was originally ac
tive
(setvar "cvport" IN_MSPACE) ; return back to the orig
inal VP
(command "_.pspace") ; else goto PS
)
);cond #2
((cadr flag) ; If no no-perspective VP
available
(princ (cadr flag)) ; display error message
);cond #3
);cond close
(acet-error-restore)
(princ)
)

(acet-autoload2 '("aspace.lsp" (alignspace p1 p2 p3 p4)))


(princ)¤ ÿLêý^ûß² ù z´O;G -1ÊlâÝ\ ¨3 B¢þ I°Ä] ÆË ¿º%Ø ö åh6vS  h ì£` è J°;e$Ñ! `?"öI8LtH
VÍç/ ÅÂÀéÒòN îÀ. ù|¾PPâW.½¡ýNËG ` M¼= ÚÕí´L£Ù2 Ë ô»Ä÷ Í§éÝnXÛT—cFä÷éùÁôv"½]\ëömÎ[ZwvëºV«
{Ý6áð
0.àsÿÔ>
Á,ÕVÛ¬EëBFäÊvL
; }Úg
6µ À`Ã ë:ôÖ$vëW
³Ç à ±` }×æ
÷´£X,
Ðúï) n'"±»C
3 b2|»
`7Ífí9öZ Ôõ= ¬ Qè Áª ÜM
»âþ ]Ó´çØ{ÕjE°ã
¦ a×5 ÃѾ; ½ ;»d×âÄÒ aÇjÕª
{d¡B
*Ù4"Ûá
& @j>¥&Á>ßÉvæ
Hâ¥ë:>H®Ãh[ó bÚ(k5**÷Ò¨Úg#»×
(¬_©òEño—ÍØÔÇ `'eE
— sOO6:ùQ
Q ¼ Lxod¡ÊOzFTU
¥ØÂtÐB ä» ècÇN 9B ]Ó5 eµ³Ñr>ö\r¸Êdµg¿Øá< 1ý'ÑB 8v r^,ÐøX£ Õ *5Ä GÑ|¶àn4fS6 1 QàF' 6 ÍîúC
¢W>û
¨"Ê ²0
-ØMí
ƪä/`ç@&êtÚdÔÕbì{
ä $-A 1îb§µ >±)FÙìÌcüJ
rÏU'5)÷,Ú©áô
Í£|vV—¨K®
Ü x5 mq 9Qq¡ |r¸îy
²à:pf!HÏ
î p{ÔÄqìÇl
Õ¦#Ê£ DmÃ
Öþ b,
 Êá±À$Ü âGþ3¨ôäßä ÅØ ¼ý
nÞoíéñï»R¤ÁÀæD7{ ö`¿^ND¬qªëxä ¡ªØ$?- biSÞ§U:Þ/ªe :³ ¶ Ï£]ìMõ_ÒS»Üw~ý~w £vÎ ; CÄb NYÜì
ß UGg سu&ôÝ4öÃæò 6¾¤Ýªvg5Ð]´5«Üã¾y«>qí !Ю}
hÇ¢ÝÜÌÂ.Ò Õà  '¨ ïÊ apÊ
½á`÷V} Ú½'eí£rí. Ni?¹x iÀí0ãXÞ ÃÂùE!í÷Òî±oBüûéð¦7hïjÒ À)‾ëvy)næ$
îoUöäÍ#@Úo×¾iGðg x'&x]6ë6Þ U¾çbr jó,Â_ýÚ k o =¡ àû i âÐ׬
øòîöÚýÚ ´ÛÔz«á 1y,Ñ U Âò~rÙ REcýÚ ´[Ô S¾ 4 ±PäYÌÖ
½ 0ð| ð" öP¿ö¸£vØË 0Õ£Ñîn^{° $Â{ ¢ÌM Cûx«ú.®F0C —´ñ½àÚq§Ý¾a} E~à¹ø*  ü ßwYdÖo ÛÚñ]a/ 4O±¼
Ú ;¨8á¸s^+f r—â £ u 5wtñ üº µ³]¹p"]²®ö"Ï +F&$çà Ñ&f^Ð.Î v¥¥}tPõ Úõ
íͳץÄ{«ª¢µÔ
n¾oø*í:
äÍëßE;
?@¿«ïÔUU×"
Óù úûg8"ÓÝ
ÿ¾¤uããÍ ªlwUå¸v0
v |ÐaÉ°½ ý®FT*S'8Ó¹
¤9  <§ºsU3sãâ
);«sËàÚû'¢ªÊº*«Á3
öÇjV ßl¤*ËæGÝüàôã}Ú%_zÖ4 ç\<h
(µ[dñJ]{á¾´ÏÕå\»|
¥vYµÚ*ôµë êXê+x lñòræ
v¥´‾ÐÞ/¡í³9¾QÛñs]
F¦6íö¹ºüßѾhû
ÅqeÚx|¸
µÿ+ñû¥e&^
w«z å  Gï{à9ÃÍ æëQó£&å ª Û  ×]cç V» y>×CfÆ i
Äb óñ‾iàÚ???
Òn%¸ö××ß
Òn%H» ,2I¸ö—×WÂ$¤Ý¦ö—WÂ$¤
9vãÆ
vÒ¾
¸öþd
:íF ´[ Òn%¸ö?
3´ÿ.Q
´o®ýýí
> 0 i'íÛ¡ÕþþF
v«Ú) i —¤ÝJ
´ v+Áµÿ¥0
öíÀµ |¼¤&ÝJ
!íVµS
v+Aڍi—¤ÝJ v+ñ£Û l(~PØ ÿÌìy
endstream
280
endobj
0 obj<</Subtype/Image/Length 21/Filter/FlateDecode/BitsPerComponent 8/ColorS
pace 516 0 R/Width 96/Height 1/Type/XObject>>stream
H ú÷o  ÿÿl U Ò
endstream
281
endobj
0 obj<</Subtype/Image/Length 9463/Filter/FlateDecode/BitsPe;;
;;;
;;; XDATA.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;; DESCRIPTION
;;;
;;; XDATA
;;;
;;; Program that attaches extended data types to a selected entity.
;;;
;;; After selecting an entity and entering an application name for the
;;; extended data, the following types of extended data are prompted for:
;;;
;;; 1) An ASCII string up to 255 bytes long (group code 1000).
;;; 2) A layer name (group code 1003).
;;; 3) An entity handle (group code 1005).
;;; 4) 3 real numbers (group code 1010).
;;; 5) A 3D World space position (group code 1011).
;;; 6) A 3D World space displacement (group code 1012).
;;; 7) A 3D World space direction (group code 1013).
;;; 8) A real number (group code 1040).
;;; 9) A distance (group code 1041).
;;; 10) A scale factor (group code 1042).
;;; 11) A 16-bit integer (group code 1070).
;;; 12) A 32-bit signed long integer (group code 1071).
;;;
;;; Numbers 5, 6, 7, 9 and 10 are "transformable" data types, and
;;; are either moved, scaled, rotated or mirrored along with the parent
;;; entity, or possibly some combination of these, depending on the
;;; group code and the nature of the operation on the parent entity.
;;;
;;; Binary data chunks (group code 1004) are not supported.
;;;
;;;
;;; XDLIST
;;;
;;; Program that lists the Xdata associated with an application for the
;;; selected entity.
;;;
;;; For a complete description of extended data types see the "AutoCAD
;;; Reference Manual."
;;;---------------------------------------------------------------------------;
;;; Internal error handling.
;;;---------------------------------------------------------------------------;
(defun xdataerr(s)
(if (/= s "Function cancelled")
(princ (acet-str-format "\nError: %1" s))
)
(setq *error* olderr)
(if ename (redraw ename 4)) ; de-highlight entity
(princ)
)

;;;---------------------------------------------------------------------------;
;;; Get user input.
;;;---------------------------------------------------------------------------;
(defun getinput (/ cont esel )
;; Forces selection of an entity and sets ename to the name of the
;; selected entity.
(while
(not (setq esel (entsel)))
)
(if (= which 1) ; If XDATA() is happening...
(progn
(setq ename (car esel)) ; Get entity info...
(redraw ename 3) ; ...highlight entity
(setq elist (entget ename (list "*"))) ; ...including xdata for all
; registered applications.
;; Force the entry of a registered application name (group code 1001).

(setq cont T)
(while cont
(setq rname (xstrcase (getstring "\nEnter application name: ")))
(if (/= rname "")
(setq cont nil)
)
)
)
)
(if (= which 2) ; If XDPRINT() is happening...
(progn
(setq ename (car esel)) ; Get entity info
(redraw ename 3) ; ...highlight entity
(setq rname (xstrcase (getstring "\nEnter application name <*>: ")))
(if (= rname "") ; If null input, get all.
(setq rname "*")
)
(setq elist (entget ename (list rname)))
)
)
)
;;;---------------------------------------------------------------------------;
;;; Get user values for extended entity data and build XD_LIST.
;;;---------------------------------------------------------------------------;
(defun getdata (/ xd_type input )
(setq xflag 0)
;; Check whether the selected entity has some extended data already.
(if (assoc -3 elist)
(progn
(setq size_old (xdsize (assoc -3 elist)))
(princ
(acet-str-format"\nObject has %1 bytes of Xdata - new Xdata will be appe
nded.\n" (itoa size_old))
)
;(princ "\nObject has ")
;(princ size_old )
;(princ " bytes of Xdata - new Xdata will be appended.\n")
)
)
(setq xd_list (list '(1002 . "}"))) ; Initialize list of xdata for this app.
(setq xd_type T) ; Initialize loop terminator.
(while (not (or (eq xd_type "EXit") (eq xd_type "Xit") (eq xd_type nil)))
(setq hand (getvar "handles"))
(initget ; Initialize keyword list.
"STring LAyer 3Real Position DISPlacement Handle DIRection Real DISTance S
Cale Integer LOng EXit Xit _STring LAyer 3Real Position DISPlacement Handle DIRe
ction Real DISTance SCale Integer LOng EXit Xit"
)
(setq xd_type (getkword
"\nEnter an option [3Real/DIR/DISP/DIST/Hand/Int/LAyer/LOng/Pos/Real/SCal
e/STr/eXit] <eXit>: ")
)
;; Add sub-list to xdata list.
(cond
((eq xd_type "3Real")
(if (/= (setq input (getpoint "\nSpecify 3 real numbers: ")) nil)
(setq xd_list (cons (cons 1010 input) xd_list))
)
)
((eq xd_type "DIRection")
(if (/= (setq input (getpoint "\nSpecify 3D World space direction: ")) n
il)
(setq xd_list (cons (cons 1013 input) xd_list))
)
)
((eq xd_type "DISPlacement")
(if (/= (setq input (getpoint "\nSpecify 3D World space displacement: ")
) nil)
(setq xd_list (cons (cons 1012 input) xd_list))
)
)
((eq xd_type "DISTance")
(if (/= (setq input (getdist "\nSpecify distance: ")) nil)
(setq xd_list (cons (cons 1041 input) xd_list))
)
)
((eq xd_type "Handle")
(if (or ( = (setq hand (getstring "\nEnter database handle: ")) "0")
(handent hand)
)
(setq xd_list (cons (cons 1005 hand) xd_list))
(if (/= hand "")
(princ "\nInvalid handle - handle must exist or have a 0 value.")
)
)
)
;; Values entered greater than 32767 cause AutoLISP to issue an
;; error message stating "Value must be between -32767 and 32767. "
;; Values less than 0 are trapped out by the (initget). Though the
;; message may be confusing, the values are always correct. This is
;; an AutoLISP limitation.
((eq xd_type "Integer")
(initget 4)
(if (/= (setq input (getint "\nEnter 16-bit integer: ")) nil)
(setq xd_list (cons (cons 1070 input) xd_list))
)
)
((eq xd_type "LAyer")
(setq input (getstring "\nEnter layer name: "))
(if (tblsearch "layer" input)
(setq xd_list (cons (cons 1003 input) xd_list))
(if (/= input "")
(princ "\nInvalid layer name - layer must exist.")
)
)
)
((eq xd_type "LOng")
(if (/= (setq input (getint "\nEnter 32-bit signed long integer: ")) nil
)
(setq xd_list (cons (cons 1071 input) xd_list))
)
)
((eq xd_type "Position")
(if (/= (setq input (getpoint "\nSpecify 3D World space position: ")) ni
l)
(setq xd_list (cons (cons 1011 input) xd_list))
)
)
((eq xd_type "Real")
(if (/= (setq input (getreal "\nEnter real number: ")) nil)
(setq xd_list (cons (cons 1040 input) xd_list))
)
)
((eq xd_type "SCale")
(if (/= (setq input (getreal "\nEnter scale factor: ")) nil)
(setq xd_list (cons (cons 1042 input) xd_list))
)
)
((eq xd_type "STring")
(setq xd_list (cons (cons 1000 (getstring T
"\nEnter ASCII string: ")) xd_list))
)
(t)
)
)
;; Was any xdata entered besides a registered application name ??
(setq xflag (length xd_list))
;; Append opening brace to front of xdata list.
(setq xd_list (cons '(1002 . "{") xd_list))
;; Append application name to front of xdata list.

(setq xd_list (cons rname xd_list))


;; Append -3 group code to front of list containing xdata list.
(setq xd_list (list -3 xd_list))
;; Find the total size of the new xdata.
(setq size_new (xdsize xd_list))
)

;-----------------------------------------------------------------------------;
; XDATA
;-----------------------------------------------------------------------------;
(defun c:xdata (/ all elist ename old olderr new rname size_new xd_list
xd_list1 xd_list2 xd_list3 xd_ent regflag hand xflag
size_old which)

(setq olderr *error* ; Use special error handling function.


*error* xdataerr)
(setq which 1) ; Flag for (getinput)
(setq regflag 0) ; Regapp flag.
(getinput) ; Prompt for user input
(redraw ename 4) ; De-highlight entity

(if (regapp rname) ; Register the application name.


(princ (acet-str-format "\n%1 new application.\n" rname ))
(princ (acet-str-format "\nApplication %1 already registered.\n" rname ))
)
;; Prompt for user values for xdata and build xdata list XD_LIST.
(getdata)
;; The extended data list is now added to the entity data. This is a
;; little more involved if the entity already has extended data. A check
;; of available Xdata space must be made too.
(if (< size_new (xdroom ename)) ; If there is room for more...
(progn
(if (assoc -3 elist) ; and contains xdata already...
(progn
(setq xd_list (cdr xd_list)) ; New xdata.
(setq xd_ent (cdr (assoc -3 elist))) ; Old xdata.
;; Find old xdata with same regapp
(if (setq old (cddr (assoc rname xd_ent)))
(progn
(setq regflag 1)
(setq new (cdr (reverse (cddr (assoc rname xd_list)))))
(setq all (append new old)) ; Join old and new xdata with
; same application name.
(setq xd_list1 (cons (cons 1002 "{") all)) ; Add open curly
(setq xd_list2 (cons rname xd_list1)) ; Add regapp
;; Substitute back into existing xdata list.
(setq xd_list3 (subst xd_list2 (assoc rname xd_ent)
(assoc -3 elist)))
)
(progn ; This is a new regapp...
(setq xd_list (append xd_ent xd_list)) ; Joins xdata.
(setq xd_list3 (cons -3 xd_list))
)
)
(setq elist (subst xd_list3 (assoc -3 elist) elist)) ; Joins entity
)
(setq elist (cons xd_list elist)) ; No xdata yet.
)
)
(princ "\nInsufficient Xdata space available on object- no new Xdata appende
d.")
)
;; Finally update the entity in the database to contain the new xdata.
(if (entmod elist)
(if (and (= 1 regflag) (<= xflag 1)) ; old application name
(princ "\nNo xdata appended.")
(princ "\nNew xdata appended.")
)
)
(setq *error* olderr) ; Reset the error function.
(redraw ename 4) ; Dehighlight entity.
(prin1)
)
;;;---------------------------------------------------------------------------;
;;; XDLIST
;;;---------------------------------------------------------------------------;
(defun C:XDLIST (/ linecount xd_list app_list app_sub_list xd_code
xd_data rname elist ename olderr which)
(setq olderr *error* ; Redefine error handler.
*error* xdataerr)
(setq which 2) ; Flag for (getinput)
(getinput) ; Get user input.
(redraw ename 4) ; De-highlight entity.
;; See if there's any xdata in the selected entity associated with the
;; application name.
(if (not (setq xd_list (assoc -3 elist)))
(progn
(princ "\nNo Xdata associated with Application Name(s).")
)
(setq xd_list (cdr xd_list)) ; Strip -3 from xd_list
)
(setq linecount 0) ; # of lines printed
(while xd_list ; There's any xdata left...
(setq app_list (car xd_list))
(textscr)
(princ "\n\n* Registered Application Name: ")
(princ (car app_list))
(setq app_list (cdr app_list)) ; Strip app name
(while app_list
(setq app_sub_list (car app_list)) ; Get sub list
(setq xd_code (car app_sub_list)) ; Get group code
(setq xd_data (cdr app_sub_list)) ; Get data
;; Conditions for all group codes.
;; Prints 'em all except binary chunks.
(cond
((= 1000 xd_code)
(princ "\n* Code 1000, ASCII string: ")
(princ xd_data)
)
((= 1001 xd_code)
(princ "\n* Code 1001, Registered application name: ")
(princ xd_data)
)
((= 1002 xd_code)
(princ "\n* Code 1002, Starting or ending brace: ")
(princ xd_data)
)
((= 1003 xd_code)
(princ "\n* Code 1003, Layer name: ")
(princ xd_data)
)
((= 1004 xd_code)
(princ "\n* Code 1004, Binary data not printed.")
)
((= 1005 xd_code)
(princ "\n* Code 1005, Database handle: ")
(princ xd_data)
)
((= 1010 xd_code)
(princ "\n* Code 1010, 3 real numbers: ")
(princ (strcat "("
(rtos (car xd_data)) " "
(rtos (cadr xd_data)) " "
(rtos (caddr xd_data)) ")"))
)
((= 1011 xd_code)
(princ "\n* Code 1011, 3D World space position: ")
(princ (strcat "("
(rtos (car xd_data)) " "
(rtos (cadr xd_data)) " "
(rtos (caddr xd_data)) ")"))
)
((= 1012 xd_code)
(princ "\n* Code 1012, 3D World space displacement: ")
(princ (strcat "("
(rtos (car xd_data)) " "
(rtos (cadr xd_data)) " "
(rtos (caddr xd_data)) ")"))
)
((= 1013 xd_code)
(princ "\n* Code 1013, 3D World space direction: ")
(princ (strcat "("
(rtos (car xd_data)) " "
(rtos (cadr xd_data)) " "
(rtos (caddr xd_data)) ")"))
)
((= 1040 xd_code)
(princ "\n* Code 1040, Real number: ")
(princ (rtos xd_data))
)
((= 1041 xd_code)
(princ "\n* Code 1041, Distance: ")
(princ (rtos xd_data))
)
((= 1042 xd_code)
(princ "\n* Code 1042, Scale factor: ")
(princ (rtos xd_data))
)
((= 1070 xd_code)
(princ "\n* Code 1070, 16-bit integer: ")
(princ xd_data)
)
((= 1071 xd_code)
(princ "\n* Code 1071, 32-bit signed long integer: ")
(princ (rtos xd_data 2 0))
)
(t
(princ "\n* Unknown xdata code: ")
(princ xd_code)
(princ " *")
)
)
(setq app_list (cdr app_list))
(setq linecount (1+ linecount))
(if (>= linecount 20) ; Pause at 20 lines printed.
(progn
(getstring "\n-More-")
(setq linecount 0)
)
)
)
(setq xd_list (cdr xd_list)) ; Get next xdata list.
)

(princ
(acet-str-format "\n\nObject has %1 bytes of Xdata space available." (itoa (
xdroom ename)))
)
;(princ "\n\nObject has ")
;(princ (xdroom ename)) ; Figure how much room is left.
;(princ " bytes of Xdata space available.")
(setq *error* olderr) ; Reset the error function.
(prin1) ; Quiet exit.
)

(princ)
 líöî bd ~ì ¨ äø ÞK µ  9ÚÉ, ìê ìdWOd'»z";ÙÕÙ ](2bÓ±ú¢![»½û¢ÙÉ®äfÌþÌÈNv%Gv²«'² ]= ìê ì
gOMÜUW åýhd'» óÉ ®ÃöJ[ýåÖ: }NØý ìdWrd'»z";ÙÕÙÉ® &ØóSñ hN";ÙÕÙÉ® ÈNvõDv²«'² ]= ìsõã ùõ+UöÓ
àC
òB¶ ëtìXátݹuöìÙ
Ç Æþó‾ïÿýÏ¿Û×m nk_ ìï»
È.#ûÏîÆ :F\vl=ïÂ
Ìgã÷ 6l=ï
Ç ßÛÝÑÖÖv§óV¿×níÁ
<¾j»»n ;w®³ã ÝÚ ¥» Èöa ýá a÷ ²» ÏÆGX cëy× 1çèH O÷
ïrX¿ÿîëÇ Æ v y1²?Wvhÿãïß~óhÜféÁ±ÿ²_ÚmãJ~ÿ7Ø'±%7YV/Tc/EQÕÝN²IvïcÜ ÅU,Å b;Þ{.rþðÈf|
ìm©DYFSm×x®v g
MÉç2¿üòKöä¨^-ò Víæbô¬j9OK, ý±{vG*Q¶ÙÒ:5 «] 7u¥ Ïüúë‾Ô3õZ¡VÍs±vÚµ Ëqà[UhWÿ ľ¹i½Sw¾ _Ì üöÛo¹
ÏÕ.È óK ìï¿ÿ ?Í4ê%A^k×o/'ß®W ´Ä Ø_»«J% Lb¨
ÏÕ.Ïéð¡Z.fÿøã
-´÷\ݳµ Éoº á|
*~#W<,2z©^+j
2r áùåöj2èÛõZ
ÙÎ_úÍ$ïÒ×®ú
Xû abW;Êõå
BHÿ ᪾
ì F¥¹$
=èYÍFõýû÷ï
½çjR ríÿ¡5x®v
z Æåfu/µ§µ
g(,Ë¥Ó7oÞ
oÚ»fµ\xûömlÈïÓl
r'M¥L â CuÐwï®gw×ÓX
Ù§
û6Ðè%>ÁÞi×i¤«V-Ý{ð-
3 #Î ß5Ø8æ 
K%ÚñÉl O¢ 5 U°l cªD¥¾phëZ h‾G‾°  (üsHyneµVbG qÚûóÀÏ1J ç#B±%v1,
öy¬
ãf 3ÔÑiý
ÉÐ!agj±DRlÒ¨
B 6 ʲÔv
I,dfîzPÀGd0v
` , , x£®5ÒéØñs´ì [ ;é÷Ln ããÈÃ0°¹7öÓøìÍg Íó p±
Î& âZ*æ\@Üñ»
½IsûÖòÂÅÚqÈ[¶²Z«ïa?Éqðw þ  FñÃ*âVäÕl6 ÉG9 ¾
N6&c,
D¾§«ó¾ ¥
 m- ÇV¶Ùáø
½6 —p^xXÅ®Î
ññÆ>½Ê<
öÐÿ÷ag±
á&ÆóÔõfz?Mn¿÷àýãÁ2Û$»o
Óër® QÎgY Î »9~Ñi+$
m Çu4 Jy1ÛÓÓ
‾«( û¼Bk*ѽÏï(«ôm
M£ J§ CØËO  ¼e+«µZ ÿ ÅJ¹H EVJruC©°^v$ fè-¢ ü,Z[ij³<‾ ¢|»1öo=4ÊEª JߗÀNrS;
{í-° Ì — ˳  k0[¢ ã@íL y )À^{Øwh¸Äp °Xü£n¡±ÖÎqã—im GwØw ÌJ1á?' ¼J;#Ë¥am\½"
øØÃ|ãöyãhÞR =ì¥h7õ hÇ¡KWC©v]ãèð°T*ÐN/oaäÞ ÙV¹£-££«MòÖó Æ (" ½æ¹áªî±3 ñ =Èzcqð óvÖk <¹IX
ª
Ûô2ö¿
Á8ÔóQ½
;78—ÉÀ¹ßþÇC7òÀ
¤{ìpxyQñv®zMä7ß&ÿ~ A4 ³ ]LÆ *¢o¥^´v Ä5è‾Yo¢ ¨ Ó  é]Ì Ë³Á zû³+Æ.þ í¨]ìÂOÖãØÏgýë
9Bbv è
\¹Ól½Vù9 G -5³³Ú.óñ\ [ ò ×ʼþ¦ýLìÌmí  ÿZìÔ«Üo ϧ£þZì Y©D } üÎSÜ gH ¤ ÛT p!î ³éàóÇëÛ«)Ç ¢+
$±o
<¿Kõè®v
2Æ_g½3m6ű4î}¿k
nϳ6 ;;; º»ø²¾|º> Bû8ìJ%j8ÇN`‾v ¢Êj Lbª ï~ùóæï‾¾~¾½»9ûôáê‾/wüy{s&$±¿(ö w]×;Mð
;;; XDATA_VARIANTS.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;; This file shows how to use the new VARIANT and SAFEARRAY ;
;;; variables. ;
;;;--------------------------------------------------------------------;

;;;--------------------------------------------------------------------;
;;; First of all we have to init the ActiveX interface. ;
;;;--------------------------------------------------------------------;
(vl-load-com)

;;;--------------------------------------------------------------------;
;;; Register an application name for the XData. ;
;;;--------------------------------------------------------------------;
(regapp "VLAX_SAMPLE")
;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the Model Space portion of the active drawing. This ;
;;; variable, named *ModelSpace* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *ModelSpace*
(vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; For ActiveX functions, we need to define a global variable which ;
;;; "points" to the AutoCAD application object. This variable, named ;
;;; *AcadApp* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *AcadApp*
(vlax-get-acad-object)
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; For the ActiveX Getxxx functions, we need to define a global ;
;;; variable which "points" to the AutoCAD Utility object. This ;
;;; variable, named *AcadApp* will be created at load time. ;
;;;--------------------------------------------------------------------;
(setq *AcadUtility*
(vla-get-Utility (vla-get-ActiveDocument *AcadApp*))
) ;_ end of setq
;;;--------------------------------------------------------------------;
;;; This function builds a Lisp list from the two parameters. ;
;;; The first parameter is a safearray and contains shorts. These ;
;;; shorts are the DXF group codes. ;
;;; The second parameter is a safearray and contains variants. These ;
;;; variants contains the DXF values. ;
;;;--------------------------------------------------------------------;
(defun GetList (DxfTypes DxfValues / LispList Counter Code VarValue Value)
;; Get Array bounds
(if (/= DxfTypes nil)
(progn
(setq ListList nil)
;; Get the dimension of the safearray
(setq lBound (vlax-safearray-get-l-bound DxfValues 1)
uBound (vlax-safearray-get-u-bound DxfValues 1)
Counter lBound)
(while (<= Counter uBound)
(setq Code (vlax-safearray-get-element DxfTypes Counter)
VarValue (vlax-safearray-get-element DxfValues Counter)
Counter (1+ Counter))
;; VarValue contains the variant, but we need the Lisp value of it
(setq Value (vlax-variant-value VarValue))
;; Create the list
(setq LispList (append LispList (list (cons Code Value))))
) ;_ end of while
) ;_ end of progn
(setq LispList nil)
) ;_ end of if
LispList
) ;_ end of defun
;;;--------------------------------------------------------------------;
;;; This function builds two VARIANTS from the two parameters. ;
;;; The first parameter is a list specifying the DXF group codes, the ;
;;; second list specifies the DXF values. ;
;;; After converting the parameters into safearrays, this function ;
;;; creates two variants containing the arrays. ;
;;;--------------------------------------------------------------------;
(defun BuildArrays (DxfTypes dxfValues / ListLength Counter
Code VarValue
ArrayTypes ArrayValues
VarTypes VarValues Result)
;; Get length of the lists
(setq ListLength (1- (length DxfTypes)))
;; Create the safearrays for the dxf group code and value
(setq ArrayTypes (vlax-make-safearray vlax-vbInteger (cons 0 ListLength))
ArrayValues (vlax-make-safearray vlax-vbVariant (cons 0 ListLength)))
;; Set the array elements
(setq Counter 0)
(while (<= Counter ListLength)
(setq Code (nth Counter DxfTypes)
VarValue (vlax-make-variant (nth Counter DxfValues)))
(vlax-safearray-put-element ArrayTypes Counter Code)
(vlax-safearray-put-element ArrayValues Counter VarValue)
(setq counter (1+ counter))
) ;_ end of while
;; Create the two VARIANTs
(setq VarTypes (vlax-make-variant ArrayTypes)
VarValues (vlax-make-variant ArrayValues))
;; Create a (Lisp) list which contains the two safearrays and
;; return this list.
(setq Result (list VarTypes VarValues))
Result
) ;_ end of defun
;;;--------------------------------------------------------------------;
;;; This function uses the ActiveX function GetEntity to let the user ;
;;; select an entity. ;
;;;--------------------------------------------------------------------;
(defun VlaxSelectEntity (/ VlaxEntity ent)
(setq ent (car (entsel "\nSelect Entity: ")))
(setq VlaxEntity (vlax-ename->vla-object ent))
VlaxEntity
) ;_ end of defun

;;;********************************************************************;
;;; Function: C:GetXData The Main function ;
;;;--------------------------------------------------------------------;
;;; Description: This function lets the user select an entity. Then ;
;;; it extracts the XData of the selected entity using ;
;;; AutoCAD's ActiveX interface. ;
;;;********************************************************************;
(defun C:GetXData (/ VlaxEntity Point Types Values xdatas)
;; Let the user select an entity.
(setq VlaxEntity (VlaxSelectEntity))
(if (/= VlaxEntity nil)
(progn
;; Get the XData
(vla-getXData VlaxEntity '"" 'Types 'Values)
;; Types is a safearray which contains the DXF group codes
;; and Values is a safearray which contains the data values.
;; Types contains shorts and Values contains Variants.
;; Let us extract the information
(setq xdatas (GetList Types Values))
;; Now print the 'normal' Lisp list
(princ "\nXData attached to the selected entity:\n")
(print xdatas)
(princ "\n")
) ;_ end of progn
) ;_ end of if
(princ) ; exit quietly
) ;_ end of defun

;;;********************************************************************;
;;; Function: C:SetXData The Main function ;
;;;--------------------------------------------------------------------;
;;; Description: This function lets the user select an entity. ;
;;; Then it attaches an XData string to the entity using ;
;;; AutoCAD's ActiveX interface. ;
;;;********************************************************************;
(defun C:SetXData (/ VlaxEntity String DxfTypes DxfValues)
;; Let the user select an entity
(setq VlaxEntity (VlaxSelectEntity))
(if (/= VlaxEntity nil)
(progn
;; Get the string to attach
(setq String (getstring T "Enter XData string: "))
(if (/= String nil)
(progn
;; Create two safearrays for the ActiveX method SetXData
(setq xdatas (BuildArrays '(1001 1000) (list "VLAX_SAMPLE" String)))
;; Extract the two variants from the returned (Lisp) list
(setq DxfTypes (nth 0 xdatas)
DxfValues (nth 1 xdatas))
;; Set the Xdata
(vla-setXData VlaxEntity DxfTypes DxfValues)
(princ "\nXData attached to the selected entity.\n")
(princ "\nUse 'GetXData' to get the XData.")
) ;_ end of progn
) ;_ end of if
) ;_ end of progn
) ;_ end of if
(princ) ; exit quietly
) ;_ end of defun

;;; Display a message to let the user know the command name
(princ "\nType SetXData to attach XData to an entity.")
(princ "\nType GetXData to show the XData attached to an entity.")
(princ): UÔHØ\Ð- QÉ|ǫ̃ L ZH( ÷vÞX3càùå—ø§Í FÚW¿q)~E¹â±kqϼù£Ç D£p }o Una "vTæ
0yêÁ2m, f(v| -|óÒ Y0 Ð'D± _.÷;`¿f
Øë þ) ì¿]õØ ×ì:¸ÐãËÈ
«{ñÈ!ÄD üì{- =êið&ÂNØùa'ìü °v~DØ ;?"ì vÂÎ;açG = ØMÓC¤H N{O{ÔÓàM °ó#ÂNØùa'ìü °v~DØ
;;; XLIST.LSP
;;; Copyright © 1999-2003 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;;; DESCRIPTION
;;;
;;; XLIST
;;; This routine lists certain properties of objects that are nested in
;;; a block or xref.
;;;
;;; (c:xlist) and (c:-xlist) call (XLIST) with a boolean kUseDialog turned on
;;; to use the dialog display or off for listing at the command line, respective
ly.
;;;
;;; (XLIST)
;;; This is the main function called from the command line. This function
;;; prompts the user to pick an object, determines if the selection is valid,
;;; and if it is, calls GetList(). After calling this function, it calls (Dis
playDialog)
;;; if kUseDialog is true or (DisplayList) if it is false.
;;;
;;; (GetList)
;;; This function take the object handle as an argument and parses out the ass
oc
;;; codes we are interested in, makes adjustments for the optional codes, conv
erts
;;; color numbers 1 through 8 back to their color names. It calls a "vertex"
a polyline
;;; and an "insert" a block.
;;;
;;; (DisplayDialog)
;;; It loads XLIST.DCL and sets the keys to the results from GetList() and
;;; invokes the appropriate dialog to display the results. I have defined thr
ee
;;; different dialogs depending on the type of object: a dialog to display blo
cks,
;;; one for text and one for everything else.
;;;
;;; (DisplayList)
;;; Invokes the text screen and displays the results in list format.
;;;
;;;---------------------------------------------------------------------------;
;;(defun xlist_err ( / )
(defun xlist_err (s)
(setq *error* old_err)
(command "_.undo" "_end")
(if old_cmd (acet-set-CmdEcho old_cmd)) ; restore CMDECHO
(princ)
;(princ "xlist_err was called.")
); exit quietly
(defun GetList ( / iNest eList )
(setq iNest (length (last ePick)))
;The next if statement handles block within blocks. iNest = 1 means no nesting.
Since (nentsel) goes all the
;way to the root AutoCAD object we have to traverse back up to the top level of
the nesting to get a block name.
(if (= iNest 1)
(setq eList (entget (car ePick))) ;then pull the list from the standard nent
sel call.
(setq eList (entget (nth (- iNest 2) (last ePick)))) ;else last last our wa
y back up to the top block definition
);end if

;Pull out the assoc codes.


(setq sLayer (cdr (assoc 8 eList))
sObjectType (cdr (assoc 0 eList))
sLineType (cdr (assoc 6 eList)) ; This is optional, we check for it
later.
sColor (cdr (assoc 62 eList))
sBlockname ""
sStyleName ""
); end setq

;Check for no linetype override, in which case it is bylayer.


(if (= sLineType nil) (setq sLineType "Bylayer")) ;Tidy up the optional
DXF codes for linetype

;If the object is a vertex, call a vertex a polyline


(if (= "VERTEX" sObjectType) (setq sObjectType "POLYLINE"))
;If the object is a block, call an insert a block and find out the block name
(if (= "INSERT" sObjectType)
(progn
(setq sObjectType "BLOCK"
sBlockname (cdr (assoc 2 eList))
)
);end progn
);end if
;If the object is text or mtext, find out the style name
(if (or (= "TEXT" sObjectType) (= "MTEXT" sObjectType))
(setq sStyleName (cdr (assoc 7 eList)))
);end if
; Sort out the colors and assign names to the first 8 plus bylayer and byblock
(cond ( (= nil sColor) (setq sColor "Bylayer"))
( (= 0 sColor) (setq sColor "Byblock"))
( (= 1 sColor) (setq sColor "Red"))
( (= 2 sColor) (setq sColor "Yellow"))
( (= 3 sColor) (setq sColor "Green"))
( (= 4 sColor) (setq sColor "Cyan"))
( (= 5 sColor) (setq sColor "Blue"))
( (= 6 sColor) (setq sColor "Magenta"))
( (= 7 sColor) (setq sColor "White"))
( (= 256 sColor) (setq sColor "Bylayer"))
(t (setq sColor (itoa sColor)))
);end cond
;(princ (strcat sLayer sColor sObjectType sLinetype sThickness sStylename sBlock
name)) ; for debugging purposes
); End GetList

;This fucntion displays the results in LIST form...


(defun DisplayList ( / )
(textscr)
(cond
((= "BLOCK" sObjectType)
(princ (acet-str-format "\n\tObject:\t%1\n\tBlock name:\t%2" sObjectTy
pe sBlockname )
);end princ
);end this condition
((or (= "TEXT" sObjectType) (= "MTEXT" sObjectType))
(princ (acet-str-format "\n\tObject:\t%1\n\tStyle name:\t%2" sObjectType
sStylename )
);end princ

);end this condition


( T
(princ (acet-str-format "\n\tObject:\t%1" sObjectType));end princ
);end this condition
); end cond
(princ (acet-str-format "\n\tLayer:\t\t%1\n\tColor:\t\t%2\n\tLinetype:\t%3" sL
ayer sColor sLinetype ) )
);end DisplayList

;This function displays the results in dialog form...


;Findfile for the dialog in case it isn't in the bonus/lisp/ directory
(defun DisplayDialog ( / sAcad sAcadPath sDlgNameAndPath dcl_id )
(setq sAcad (findfile "acad.exe"))
(setq sAcadPath (substr sAcad 1 (- (strlen sAcad) 8) ))

(if (< (setq dcl_id (load_dialog "xlist.dcl")) 0)


(progn
(if (not (setq sDlgNameAndPath (findfile "xlist.dcl")))
(progn
(alert "Can't locate dialog definition file XLIST.DCL.\nCheck your suppor
t directories.")
(exit)
);end progn
);end if
);end progn
);end if
;Load the dialog. If the object is a block, load the block dialog; if it is a t
ext entity, load the text dialog.
(cond
((= "BLOCK" sObjectType) (if (not (new_dialog "xlistblock" dcl_id)) (EXIT)))
((or (= "TEXT" sObjectType) (= "MTEXT" sObjectType))(if (not (new_dialog "
xlisttext" dcl_id)) (EXIT)))
( T (if (not (new_dialog "xlist" dcl_id)) (EXIT) ))
); end cond
(set_tile "sLayer" (strcase sLayer T))
(set_tile "sColor" sColor)
(set_tile "sObjectType" sObjectType )
(set_tile "sLineType" sLineType )
(set_tile "sBlockname" sBlockname)
(set_tile "sStyleName" sStyleName)
;If we can't starts the dialog, then bail.
(if (= (start_dialog) nil) (exit));
(unload_dialog dcl_id);
(princ)
); end DisplayDialog

(defun XLIST ( kUseDialog / sLayer sObjectType sLineType sColor sBlockname


sStyleName ePick old_cmd old_err)
;capture existing settings
(setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
old_err *error*
*error* xlist_err
)
(acet-set-CmdEcho 0) ;;;turn command echo off
(command "_.undo" "_be")
;The next while loop checks for null or invalid selection.
(while (or
(not (setq ePick (nentsel "\nSelect nested xref or block object to list: "))
)
(< (length ePick) 3)
);end or
(progn (princ "\nObject was invalid or was not selected."))
);end while
;Extract the information...
(GetList)

;If we are calling from "xlist" use the dialog, else display at command line...
(if kUseDialog (DisplayDialog) (DisplayList))
(setq *error* old_err)
(command "_.undo" "_end")
(acet-set-CmdEcho old_cmd) ;;;restore CMDECHO
; princ "normal exit called.")
(princ)
)
(defun c:-xlist ( / kUseDialog )
(setq kUseDialog nil)
(xlist kUseDialog)
)
(defun c:xlist ( / kUseDialog )
(setq kUseDialog T)
(xlist kUseDialog)
)

(princ)
%  õå¼= üÍ!óWb ÛqÝ÷Á ôÅÝ { WDæÞ®%hQìQ ` xø¥
)Áþøð 
)Åûã *¤»bÿ<ìO ª Rì ýó¨Åþô¨
)Å®Ø? û óó *¤NÄ.s=Û¿Fû+å Ë«nZN, =JQìQ ` yy=qñépïPÖMu®Æ°?ú ý©_ |ì®s9v¢á#Ê`oË3_ýÇ }Ô¢åô¢Ø£Å¥ö
endstream
285
endobj
0 obj<</Subtype/Image/Length 77/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 109/Height 897/Type/XObject>>stream
H ì×! A |ªå <Á öÜF¸ª}Ù :]*Æ^ è;E½Ññ«êÐ`veÈ
endstream
286
endobj
0 obj<</Subtype/Image/Length 22/Filter/FlateDecode/BitsPerComponent 8/ColorS
pace 516 0 R/Width 102/Height 1/Type/XObject>>stream
H ú÷þÿ¡Q@
0 /°
endstream
287
endobj
0 obj<</Subtype/Image/Length 15494/Filter/FlateDecode/BitsPerComponent 8/Col
orSpace 516 0 R/Mask 285 0 R/Width 109/Height 897/Type/XObject>>stream
H ì ëSSIÆS *ù >hé¢,ÈV9a÷â~áj9 ¸ @ 'á0 @$Ýr‾£ã u/㸠è>IË Ã9' pI:ä9õTªO÷ÛïÛýëî÷tÒi>Gù¬G|T±"Ãã
)S£Ï6¿no~Ýμx^[ ân$Æ2büykéËÇ4 3Ð17#1V å 1£<"ÆRbü÷»Gϗ Éñ' Òi?˾Öò  Q#1Ê#b$FyD Ä( å1£<"Æ
# uw¶o%fÕúÔ âëGýp w&(;
¬&Ö´¡þTìâ#1£)FcÉ3S ɼõuÁNz:íxÅ8Ñ ©]Î « ½ÉßèÑfcDD\],«Õjt "VoW ÚÝÔÏÁ0b¥ fÝ ©Ñ Ï O+KbAü Á|]
8ÅÆÕoþÓ%b<ÙÑqÐÐå` Ú´íúÕìAs¨ÅÜÅ7Èøµ*p¨ ù¡²0â7`^ö¶±ðõ =z¡‾in i ñdçFb<îÜ3 L ´ Õóµÿ{£.7jï ¨1]Ü|÷
÷w[,÷X jM);b G'
ãƪ ó NûVbö`lj¬—ä Û=@ zðÕóçêD=1£ Å ܍V«e籗µ¤bJ:p9úð _ QÓvý*^#!V£pUSs
5w n
F'ºX½]¸nØx0TcR2µ<ÖÜXg«EÙÞÚ @(`À( Î ;C½v# õuÁ`Þ?îq£ºUWÊäº36l`i:ª|êâªã'Æ Ñx¨ñà bîÆü O{bÔ Dm,
IG Q\xÒñ
1Üè±h¼¢R7*ñ45Ö'¢ÙÓA
Xwü¢lzý>* ùnòFW'´#ÆiomA
 ñ`ÔæF4Á ¢1
:[í øïPÀ/Ê( ^÷¥
³O ( k 29"îNÆX
 ë µsÀ¸)ðTVn$Æj
EÕX7otÀ1£<"Fb
ö£/ò0^QGÄH(Éè´¶#
ò  Q#1Ê#b$FyD
] >tô8 »ÄH
ÒbDk"êkj
¦ -
ç]ú«líéÖkÍÂ
þc ÔVb¶»³^ áQP¾=Ð
&è  29räAá\Á¦
s±æ _êÞ®
ãÃxùÒEL-ß²
íL,ìMF§K¼7  + £ñtþ\ j Ä ÜÕÇ=Ö ZSÐ ñDB Sj ½%S»§ ú N;`
ôE¡íúÕo3ÚY :[-ÊöÖ´bR >Üߍå ã¼ ÜãDÁåèÓ®jnÞè@M> h 6(jà5p¸ Ü%Æ ÀXÔ¡ÏßzþªÃøG ÜÔp -f0¦ãíITó ñ¾k
—÷DÔ×P
xE% ``ÚBË‾{:I
±À2îFULi»~µ0ç
FÔk7ƺÁ U?
FÝnÔ© x`¸¿Û¸¸2c\ß½
Fñµ2-ï' K q ¹Q7wm¬=s#(
0~Ì  Q Úܱ°÷ü¹:5
-b5Ô_¦ãPHä
`´—µmÄ([ÝnTÓT±
AwÕÀë
$FØp«¹Ñjµj
ÀXà£î1S0^1#tG
¦AKyá!ÆCb
¹|é¢
ѳNv
çûR,ÌÔ&b,#FøY
îJÃwð ß|Ñu W»dð
¦F >G>,M oG±Ñt{ erD { Þì-ZÎgkO—^k
ÿª%F8Ô× y;;; Copyright (C) 1996,1998 by Autodesk, Inc.
;;;
;;; Permission to use, copy, modify, and distribute this software
;;; for any purpose and without fee is hereby granted, provided
;;; that the above copyright notice appears in all copies and
;;; that both that copyright notice and the limited warranty and
;;; restricted rights notice below appear in all supporting
;;; documentation.
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
(defun c:asdk_lisp_create (/ xrec xname dict dname)
; create the Xrecord entity's data list
(setq xrec '((0 . "XRECORD")(100 . "AcDbXrecord")
(1 . "This is a test Xrecord list")
(10 1.0 2.0 0.0) (40 . 3.14159) (50 . 3.14159)
(62 . 1) (70 . 180))
)
; use entmakex to create the Xrecord with no owner
(setq xname (entmakex xrec))
; Within the named object dictionary, attempt to get the
; entity name of the dictionary associated with the key
; "ASDK_DICT". If it doesn't exist, create it.
(setq dname (cdr (assoc -1 (dictsearch (namedobjdict) "ASDK_DICT"))))
(if (not dname) (progn
(setq dict '((0 . "DICTIONARY")(100 . "AcDbDictionary")))
(setq dname (entmakex dict))
(dictadd (namedobjdict) "ASDK_DICT" dname))
)
; add the new Xrecord entity to the named object dictionary
(dictadd dname "XRECLISP" xname)
(princ)
)

(defun c:asdk_lisp_listxrec (/ xlist dname)


; find the dictionary associated with the key "ASDK_DICT"
(setq dname (cdr (assoc -1 (dictsearch (namedobjdict) "ASDK_DICT"))))
; find the Xrecord in the ASDK_DICT dictionary
(setq xlist (dictsearch dname "XRECLISP"))
; print out the Xrecord's data list
(princ xlist)
(princ)
)
 1 scRï YaL< ém?s!cÞ0 Y!ñì£e 7ë29Ç !#Õ ɨNÈHFuBF2ª2 Q ê YdtÛL 6dÌ
# !#ɨNÈHFuBF2ª2 Q d 18iû åç
¶ÛzÌ ágÖȨNv ±üüY M ô£µ¬ 7Vo}ö ÏVZ|
Á¾ dL #¦G1O=rØïµ ¦¨VX¸OÎ gNcDh]2
²üríE £tÓ,ZÐÕÄÌ Ã } Cgä¹PGmTóÙpFq`Ëͺù k!8\_S%[Û¶&62f —úÔØ Ûf ×PǨˢe \©ÅÐæ.ÁØÜX G^Èt P¡ßrËã
Â9'êL0îdn$ã^fÜùܸí«Qâ/<Â9òâæÖÜHF dT'd$£:!#Õ ɨNÈHFuBF2ª2 Q ä#ú3l7»m&¥BFÅ > ßkuÛ î ÃÚò;p
7oé¢ó
ËÖ±íßF2*Î
,1±µÓ¬,q¡d÷¡
ZÐ2 QÇ
2 {yMd$#
Q—R»
ɨe¼X±Á
LG 8'~uC¦»ÓßÌÜÈÂä¾£Ëëé][
qÏ2âïØãÙá_?>Jö>sÉ9F5CF2ª
!9Í( Ü B@2}k
Q ¸uKÌ/?Ï¿zâ
ê dT'd$£:!#
— ÕIÎ1¢?Ã
2Æî
?hÆ YÖÝ8«âüä(º 7¢0" ÈHm H ÔÈ R ®º ¹´A å~ïý~/-w¼m&ûW¨ãþûmÏpR¹  ÊsòIszú¼Ïû¾ óÞzÿZ  ;õv
;;; YES_NO.LSP
;;; Copyright © 1999 by Autodesk, Inc.
;;;
;;; Your use of this software is governed by the terms and conditions of the
;;; License Agreement you accepted prior to installation of this software.
;;; Please note that pursuant to the License Agreement for this software,
;;; "[c]opying of this computer program or its documentation except as
;;; permitted by this License is copyright infringement under the laws of
;;; your country. If you copy this computer program without permission of
;;; Autodesk, you are violating the law."
;;;
;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;; UNINTERRUPTED OR ERROR FREE.
;;;
;;; Use, duplication, or disclosure by the U.S. Government is subject to
;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;; (Rights in Technical Data and Computer Software), as applicable.
;;;
;;; ----------------------------------------------------------------
;BNS_GET_YES_NO
;Takes message and size arguments and asks the user to pick Yes or No.
;Returns 1 for yes and 0 for no.
;The first argument is a list of strings. The first item is the title
;string and the second string is the body of the message.
;(Include "\n" to force line feeds.)
;The second argument specifies the size of the dialog and is a list of
;two integers. i.e. (width height)
;
;Current valid sizes are as follows:
;60 15
;40 10
;20 5
;
(defun bns_get_yes_no ( lst size / lst2 n iv flag ttl msg)
(if (and lst
(> (setq iv (load_dialog "yes_no"));setq
0
);test
);and
(progn
(setq ttl (car lst)
msg (cadr lst)
size (strcat (itoa (car size)) "_" (itoa (cadr size)))
);setq
(if (new_dialog (strcat "bns_yes_no" size) iv)
(progn
(setq lst2 (acet-str-to-list "\n" msg))
(setq n 0)
(repeat (length lst2)
(set_tile (strcat "msg" (itoa n)) (nth n lst2))
(setq n (+ n 1));setq
);repeat
(set_tile "title" ttl)
(set_tile "msg" msg)
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq flag (start_dialog));setq ;START_DIALOG MAKES THE BUTTONS ACTIV
E
);progn then initialize the tiles and activate the dialog box
(alert "Unable to display dialog box")
);if new dialog
(unload_dialog iv);unload it when done
);progn then
(alert "Unable to load dialog box");else
);if load
flag
);defun bns_get_yes_no

(princ)
 0þ¿éã ׿DzM —ÚUZq ~ji
c 2 4 Û Q 4´e àll9¦hl±ú}ê&FÇ ¤~3j`$hO©¥+]Ih £¦"¶!I4 Û¬~ ºS FôâÐN!Çà N4~u>é1Z²$´x T '"dJT ñ
c ñkb|óG¬ *Rgìó±=°dw¦Deï
££©1Æ
óÙ`äj=°eÇL`d\,
2%*Ãøe1¾}óG¬!
 Q e0 ó 3°× 3%*ÃxW]]SºÓÀ\LÝ¡£º Ì ¤ G®®G# )Qw QõZjmy4Ç 5¹gjÂýb|k40tµ7
¨3×
Ï øÞ@O½4;×
Îgu mð¾&ó
^> Ïø˵ÁµO¾Ä
« O¶9Â-u§NT7BÏ
ýáKìön1Ú
Îgi1¡,¿Æ\n÷ì+aô
Ô ¶Øo%Jèµ0
¦¡õ§¡Äå <Zj¹
3# ,]:8Ø
bè"' ämå[
þüù À»»»ýns´Ús
ãÅlä Où—UÛ±-CZ
ÏïììÄ¿b
+Æ¿®JS?
Ëå$¡
Ë
cc ü¡±É³(´kÕr»Yí´ëëª×Ê|RLü! ¢3ìÿeЪ׫ Ï G¶òPÃÌ1¥ýýbõì ëÇÇ 'Ç Ø 9äÁH¿ó:7æóyÐÉB¼²Ø¦úåW 71úCË
K§ÇCWãz\úZÍ*÷
YSû¬K%I$Ù9Ïr>º<÷CÏÚä¹Q‾¬RR\ßáh WÎJ
C£×iPKãjÏêÀ¼^=Ãø 1¾}+ðl:ø|ÂØìù
FàY¦! EË´
Ç¿bÒO (a@+©VËtgÒ Á \>::;;;
;;; YINYANG.LSP ;
;;; ;
;;; Copyright 1987, 1988, 1990, 1992, 1994, 1996, 1997, 1998, 1999 ;
;;; by Autodesk, Inc. All Rights Reserved. ;
;;; ;
;;; You are hereby granted permission to use, copy and modify this ;
;;; software without charge, provided you do so exclusively for ;
;;; your own use or for use by others in your organization in the ;
;;; performance of their normal duties, and provided further that ;
;;; the above copyright notice appears in all copies and both that ;
;;; copyright notice and the limited warranty and restricted rights ;
;;; notice below appear in all supporting documentation. ;
;;; ;
;;; Incorporation of any part of this software into other software, ;
;;; except when such incorporation is exclusively for your own use ;
;;; or for use by others in your organization in the performance of ;
;;; their normal duties, is prohibited without the prior written ;
;;; consent of Autodesk, Inc. ;
;;; ;
;;; Copying, modification and distribution of this software or any ;
;;; part thereof in any form except as expressly provided herein is ;
;;; prohibited without the prior written consent of Autodesk, Inc. ;
;;; ;
;;; AUTODESK PROVIDES THIS SOFTWARE "AS IS" AND WITH ALL FAULTS. ;
;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;
;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, ;
;;; INC. DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE ;
;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;
;;; ;
;;; Restricted Rights for US Government Users. This software ;
;;; and Documentation are provided with RESTRICTED RIGHTS for US ;
;;; US Government users. Use, duplication, or disclosure by the ;
;;; Government is subject to restrictions as set forth in FAR ;
;;; 12.212 (Commercial Computer Software-Restricted Rights) and ;
;;; DFAR 227.7202 (Rights in Technical Data and Computer Software), ;
;;; as applicable. Manufacturer is Autodesk, Inc., 111 McInnis ;
;;; Parkway, San Rafael, California 94903. ;
;;; ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; This file is referenced from the Visual LISP documentation ;
;;;--------------------------------------------------------------------;
;;;--------------------------------------------------------------------;
;;; Function: YINYANG ;
;;; ;
;;; Description: Draws a Yin-Yang symbol. ;
;;; ;
;;; Arguments: none ;
;;; ;
;;; Returned Value: none ;
;;; ;
;;;Dislayed Values: A Yin-Yang symbol containing arcs and circles. ;
;;; ;
;;; Usage: (yinyang) ;
;;;--------------------------------------------------------------------;
(defun yinyang (/ origin radius i-radius half-r origin-x origin-y os)
(setq os (getvar "OSMODE")) ;; Save OSNAP mode
(setvar "OSMODE" 0) ;; Turn off OSNAP
(setq origin (getpoint "\nOrigin of inyn sign: "))
(setq radius (getdist "\nRadius of inyn sign: " origin))
(setq i-radius (getdist "\nRadius of internal circle: "
origin)
)
(if (> i-radius radius) (setq i-radius (/ radius 4)))
(setq half-r (/ radius 2))
(setq origin-x (car origin))
(setq origin-y (cadr origin))
(command "_.CIRCLE" origin radius)
(command "_.ARC"
"_C"
(list origin-x (+ origin-y half-r)) ;;center
(list origin-x (+ origin-y radius)) ;;start point
origin ;;end point
)
(command "_.ARC"
"_C"
(list origin-x (- origin-y half-r)) ;;center
(list origin-x (- origin-y radius)) ;;start point
origin ;;end point
)
(command "_.CIRCLE"
(list origin-x (+ origin-y half-r))
;;centre
i-radius
)
(command "_.CIRCLE"
(list origin-x (- origin-y half-r))
;;centre
i-radius
)
(setvar "OSMODE" os) ;; Restore OSNAP mode
(princ)
)
÷Øz[ÃÃ¥ûÓvO¹,¢/9
'íü@ÚI;? vÒΤ ´óií¡ ½µ±Ìí0
Q»E‾& e» Ù.z¼AÚI;?
O§\VEa6ÚámÜÞ#z´ë
vÒΤ ´ói'íü@ÚI;?
ÒNÚùa¹Úñ´«Z"
vÒΤ ´ói'íü@ÚI;?0í
 çL ÎUl×i
½&¤]Dí¢ÿèx
HÚ¹Ýïëp¤0Ë~ªK¨í
´ v~ í¤¡
w ÙÆu´TÂ ÈÌH ê× } v¼cYxzï
RïµôlÇ(hGò
JÃÂÂr²ÒÙ#ööÄ
n D"YEí
øÍ o\D»VS©ï
ÎZ6Ãû´Ù (¡ª¬`Ê
ß²y# ]ãÃ=
M EaÖýÚèè¨ô´Ý®!}Ò
ɳrí WfúhÇ/+>î
ù4S«J&
aÂE´f¸ÊÍÊ`
\m'í"j÷+2o{
Ê  tZ* É ©}þgÛ] U J9j;´Ëo
´¶ÄÄD£%"<©¶ªxÃÒ j—Ùþ~*çv~´~V Pd
òN¾û1
|
´ùí«¥uOøcG¸ ¨ ìlj vÒN öu
i'íüÀ´[ôj" vµã S" øioª?ª®-!ÖÒNÚù ´ v~ í¤ Þ §½®ºØÐYÿü§Û¿=»ÿêßßüñ|æáío êJT
ßyª+
\vËúøÛ—‾¾Áýí
÷ Zj«‾ Ïàc1î°ª*
¹UeÑ +. ÿÚÙV]_sdICª
òsdöÞe4ú~MÜξ¶æ
û »~ÿåa¿¥5ÈÑ.®]z5jåó§w¾»æÆ^øÙ ¢ wkU¿þ|ïÊy»( I;i'íËÕ v —«þóÃ4*ä
ĽBOØ ¹sñÇG×ÉõK£L{muqc]éì]Ìð }t÷ÞÅ´?ûñ¢}öÃ-ô´õi Ú Ó—WÆÞ¼ öùOwL:5Úëk÷§Ïc ª²‾‾]t¾y9.L¬|ãHû§
«îj‾Yâ©
9É ' ¿xzçæµ ´‾{í¾E
ªrù?^'íß(28ùc
=°õuàD
6Õêj÷+2
Î ¿0 ?ĺ Í ¾zbÖ7²ð‾µ§r<®ãKÔîWd0 ÅÐô¿WO0³VS)á$ ù <Û>`¨©(dÑjÔÇ0-6
ñÑÚ¿ÿn®È«Yí&]#
&2Ä9dd ü²}í´—5 O õ£¿Ù  W%ÛI;iW;l °¶á üòðÉý«¤}%µñ ô8@B&³ ïæ ð{7ÏU*ó ^Û'½ I&]ý y¹HÒÎ v
¤vV(éë
sí\AÚI;?øi¿zÖöøÎÔÌ´
ÐÑ lDN¾ñù Ï ÏÈ^!ÙÖXSH» Ú‾ µÁ iÒÁ ´ v~ í¤ H;içÒNÚù ´ v~ í¤ H ;içÒNÚù i—èÕËŬk°Y[Ü¿zî c [ô
Ç`÷
Çp/º
µááÒ®EµO
ÝÉ ®Ó
Τ [ícÃúòI;W¬ö
Á~íæÏ7 ZH.È?89jÚÝS[s9Ú5
Å?-5CÜ#& V ÿ*
³=N3zâs`—u}¾é³ Û<3^aê® J¥ÂÀÂüC Óã0Õ×(XK ,Ý@ ±)**-QQ V zÜnôiÂIØ÷»£(Êö,
ḩ9,,
}¢£"ûÍ q{ A§ñ á¨"wÊeaÑâß ] _7Ò¾µ/á$—Ù öK$aXÔ W
#
éeÛcãã¾
tÃ_ÌÉ ÚÏMô%Êâ—lÞ8rª
$ qYs³20 —µR)ÇM[S9Ë®¹$Ñ5H½
M ( F AÝì AÓ ÄÀI§9ëà¾
èÙí9Yé [ K*Aâ¡OÞW_þ-:Ên묩(B;ö
è¡ZD5Ô‾Ý´1fOÊÜ'&Äc»±ï,fìõ×¹
Crr ,pvhÐOû\0ö¹lG®â]x£`i×
ìªÃSa-S.ë é{°_ÎA
ôïh©ô8Ì¢;$í
Á×îv Ú Ë!MÓp
÷o#q ¥yh7tÖ¢}í«CSÝQ¼K«©ô auaaïH ON á/2é¤Þ ´ vÒ
Ú÷§íö+þ ìEa÷«ííB $ÌÐQ áì]zÊw ¼ì
<»  ±ììØ°aÂn<im FKDx¸±«nb<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.
8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="msvcr90.dll" hashalg="SHA1" hash="e0dcdcbfcb452747da530fae6b000d
47c8674671"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsi
g="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorith
m="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tr
ansforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"><
/dsig:DigestMethod><dsig:DigestValue>KSaO8M0iCtPF6YEr79P1dZsnomY=</dsig:DigestVa
lue></asmv2:hash></file> <file name="msvcp90.dll" hashalg="SHA1" hash="81efe890e
4ef2615c0bb4dda7b94bea177c86ebd"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-
com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><ds
ig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsi
g:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/20
00/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>ojDmTgpYMFRKJYkPcM6ckp
YkWUU=</dsig:DigestValue></asmv2:hash></file> <file name="msvcm90.dll" hashalg="
SHA1" hash="5470081b336abd7b82c6387567a661a729483b04"><asmv2:hash xmlns:asmv2="u
rn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTrans
forms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>t
Vogb8kezDre2mXShlIqpp8ErIg=</dsig:DigestValue></asmv2:hash></file>
</assembly>ÇrÐÐ Å eë sÁx`ïxÑ" I1 9CØ =wÂm kKÄK2 #Â~ob×AóÏ÷Åj ÷¶:a/nì$ wvÂ.vÂ.vÂ.ö ß w§Ç
ms=7KôåeòàÎlÞ3v¬¾a Ç.̳£¼]
¬æçª9ÁR4ØÓXö; °v¬²¾<ÇÏ`¦¡ ‾±m`_´L± ¦ §ðY×ÞÌrûØpoZÒkÓ6"ùÃ;ÄÞJ®}°Í`̍±ÿß}Ö¤f¦æÆÎ/Ma@äpKý´ [E£®
:¥R » ~ âõ4?Ó( _ö°v%~w¥ëßø0 º»ÚJeRø³i±
3±gf×ì
1r~ÆÜ]+))4t2ühÿvºßd2)Æ0g°ÜÂì(&:ìó® wY°ãÝß\—`À e*yé$,íoTV z uX!ļµ¼g2£ °ç{f A ?wÇ7D
;¤%Ö~ ½»³-Ó½öwÅW
±¿ÔdØcG.&ämä"ΫÜEûÍusì8A¼Xw
¢Á—
c{ëhç‾
ö±ò,ä}=9Ä~vuháFìÈ
-ÜH±X¼ï—³ÿ6ý
=—vÂ~ëÜ~ ý:
Ï¥\`ÿmnç>
júÎã8.Û°ÕţݱÞWkk[]ºEë
×i%ì;ÿ ºöJ=ØYÅEO<r—p @ !!Hí¨K
âÂÊ]ݽA%s
T¨ +uvÚ
qvÖét¦®»Ó
Âþu{ôgEÇ‾ºYëÒi
Ôî³*G@ < göºý—ØI÷#ÂNØ
§á°v[wûÓ

It8z÷+ó
¿ 'r¬²³¦%þ=T;
|ýÿȾï'Oø6K
|³v² X zü@õ Âj íྠs ^v³!ìåÐ G> ë¼ùúz f«ÊmùÙ©111Á Ï ?‾0_/ö@ÿÚòtóæÍSþwÿ U Ø!íaó
Cn\áÁ÷ßõÝY !Ý¿
}« ¹}<öß^*^½rù²¥±åçL£—xÜIf
ØðR µØ Fw0n÷V:Ûű 6m\CÅ +ì4 , ®8 ¨£ ½ W3wîÿ @ñÚµcK({èh§×Æõ« Ù Ñ äí \ ±b´OÀ:Úý½ Pv%:± 3Ù
û IfÌ
Hf
3 í}¼¹}òì?mnÿ¿ØgÁÜ
* vÕO [`; Àv> ìv|ùìæìTò
;Øùv°óà2 ¹=òH1—Óí¦m£ÿ
ì`çØÁÎ'°r O`
va¡s»
; Àv>Àv&ì4Ïì}o
v»ÙÑjÒN
¦¼Â|ß¿_\)ýãU
9ØÁÎ*° O`Ø;£À}
v>^ÓðÚõî[U
v»Ù Ûdõ«
vÙ®UÿÐq
ý¡<
v°Ooc&*/ë -O/mÆ{4³+Oø vÒ D'|*ý}AæëÅrZ w*E¹"Z ~T\ øJ¥ J?*.Ö JËÅW*m y ~8ø¾sGo øÖVLè /öé? A
Cà'Ú H¹jÚÿ Ë×+¦)ºd]J|Þ©O Xh'YiG üÛäjıÄWjvÆq5ùÑ®v:7Sf²8R¥#*&dKã Þ³+£]y Ý $æ[ñÕ?z ´ 9
bò@en3éÆÑ! G/1HÓ õ]Nðe±ûWð‾L{ ÷ùÙ©ÊØ ÿ¬´#´ì Ù86\acad\Program Files\Root\Tutorial\VisualLISP
am Files\Root\Tutorial\VisualLISP\Lesson3ÖïÍ« ÿÿÿÿj \Autodesk\AutoCAD_2010_English_Win_32bi
C90.CRT.manifestÖôïÍ« ÿÿÿÿk°\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Setup\Microso
anifestôäïÍ« ÿÿÿÿl \Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\PPClientAssembly.manif
_English_Win_32bit\x86\acad\Program Files\Root\sfxfe32.exe.manifest ïÍ« ÿÿÿÿn\\Autodesk\Aut
glish_Win_32bit\x86\support\CADManager\en-US\Windows\winsxs\Manifests\x86_Micros
oft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e.manifest  ï Í« ÿÿÿÿoZ\Autodesk\AutoC
h_Win_32bit\x86\support\CADManager\en-US\Windows\winsxs\ulCRTx86\x86_Microsoft.V
C90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e.manifest  ïÍ« ÿÿÿÿp\\Autodesk\AutoCAD_20
_32bit\x86\support\CADManager\en-US\Windows\winsxs\Manifests\x86_Microsoft.VC90.
MFC_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_405b0943.manifest  ïÍ« ÿÿÿÿqZ\Autodesk\AutoCAD_2010_E
it\x86\support\CADManager\en-US\Windows\winsxs\ulMFCx86\x86_Microsoft.VC90.MFC_1
fc8b3b9a1e18e3b_9.0.30729.1_x-ww_405b0943.manifest ¦ ïÍ« ÿÿÿÿrb\Autodesk\AutoCAD_2010_Englis
6\support\CADManager\en-US\Windows\winsxs\Manifests\x86_Microsoft.VC90.MFCLOC_1f
c8b3b9a1e18e3b_9.0.30729.1_x-ww_b0db7d03.manifest¦ªïÍ« ÿÿÿÿsf\Autodesk\AutoCAD_2010_English
\support\CADManager\en-US\Windows\winsxs\ulMFCLOCx86\x86_Microsoft.VC90.MFCLOC_1
fc8b3b9a1e18e3b_9.0.30729.1_x-ww_b0db7d03.manifestªïÍ« ÿÿÿÿtÐ\Autodesk\AutoCAD_2010_English
\acad\Program Files\Root\UserDataCache\Support\acad.mln*ïÍ« ÿÿÿÿuæ\Autodesk\AutoCAD_2010_En
bit\x86\acad\en-us\Acad\Program Files\Root\UserDataCache\Support\acad.mnl*ïÍ« ÿÿÿÿvØ\Autode
010_English_Win_32bit\x86\acad\Program Files\Root\UserDataCache\Support\acetmain
.mnlâïÍ« ÿÿÿÿw \ Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\en-us\Acad\UserDataCacheââ
sh_Win_32bit\x86\acad\en-us\Acad\UserDataCacheâòïÍ« ÿÿÿÿy®\Autodesk\AutoCAD_2010_English_Wi
d\en-us\Acad\UserDataCache\SupportòòïÍ«z®\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\
cad\UserDataCache\SupportòïÍ« ÿÿÿÿ{Ì\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\en-us
aCache\Support\AecArchXOE.mnlÂïÍ« ÿÿÿÿ|~\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\a
D_2010_English_Win_32bit\x86\acad\en-us\AcadLP.msiÒöïÍ« ÿÿÿÿ~²\Autodesk\AutoCAD_2010_Englis
86\support\CADManager\en-US\CADManager.msiöÔïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Win_32
tupRes\eval.msiÔÊïÍ« ÿÿÿÿ  \ Autodesk\AutoCAD_2010_English_Win_32bit\x86\SetupRes\eval.msiÊ.
_Win_32bit\x86\support\SAMreport-Lite\Java 2 Runtime Environment, SE v1.4.2_04.m
si.ïÍ« ÿ ÿÿÿ Ê\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramew
86ïÍ« Ê \Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramework\do
x86$ïÍ« ÿÿÿÿ à\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFrame
0\x86\msxml6.msi$ÂïÍ« ÿ ÿÿÿ ~ \Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\msxmlÂÂïÍ«
_Win_32bit\x86\support\msxmlÂØïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Win_32bit\x86\suppor
msiØàïÍ« ÿÿÿÿ  \ Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\msxml\msxml6_x64.msiàïÍ
32bit\x86\support\dotnetfx\wcu\dotNetFramework\dotNetFX20ïÍ« Â\Autodesk\AutoCAD_2010_Englis
it\x86\support\dotnetfx\wcu\dotNetFramework\dotNetFX20(ïÍ« ÿÿÿÿ ä\Autodesk\AutoCAD_2010_Eng
\x86\support\dotnetfx\wcu\dotNetFramework\dotNetFX20\Netfx20a_x86.msi((ïÍ« ÿÿÿÿ ä\Autodesk\
English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramework\dotNetFX30\Netfx30a_x
86.msi(ÊïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\NLM\en-USÊÊïÍ«  \ Aut
\x86\support\NLM\en-USÊÚïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\NLM\
AD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramework\dotNetFX30\RG
B9RAST_x86.msi(þïÍ« ÿÿÿÿ º\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\adr\en-US\Se
w2010.msiþðïÍ« ÿÿÿÿ ¬\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\VCRedist\2008\x86
2010_English_Win_32bit\x86\acad\en-us\acad.mstÎØïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Wi
d\SetupRes\deploy.mstØÎïÍ« ÿÿÿÿ  \Autodesk\AutoCAD_2010_English_Win_32bit\x86\SetupRes\depl
English_Win_32bit\x86\SetupRes\gpo.mstÈ
ïÍ« ÿÿÿÿ È\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramework

ïÍ« È\Autodesk\AutoCAD_2010_English_Win_32bit\x86\support\dotnetfx\wcu\dotNetFramework\dotN
x86
$ïÍ« ÿÿÿÿ à \Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Program Files\Common Files\Aut
AdDynHelp1.ocx$ïÍ« ÿÿÿÿ Ê\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Windows\System32
tem\comctl32.ocxïÍ« ÿÿÿÿ Ê\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Windows\System3
tem\comdlg32.ocxïÍ« ÿÿÿÿ Â\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Windows\Downloa
es\IDrop.ocxxïÍ« ÿÿÿÿ 4 \Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Program Files\Root
Folder\Autodesk Shared\AdLM\R1\cs-CZ\help\BRW\style\commons.css.oldxxïÍ« ÿÿÿÿ 4 \Autodesk\A
English_Win_32bit\x86\acad\Program Files\Root\Common Files Folder\Autodesk Share
d\AdLM\R1\cs-CZ\help\NLG\style\commons.css.oldxxïÍ« ÿÿÿÿ 4\Autodesk\AutoCAD_2010_English_Wi
acad\Program Files\Root\Common Files Folder\Autodesk Shared\AdLM\R1\cs-CZ\help\S
LG\style\commons.css.oldxxïÍ« ÿÿÿÿ 4\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Progr
t\Common Files Folder\Autodesk Shared\AdLM\R1\de-DE\help\BRW\style\commons.css.o
ldxxïÍ« ÿÿÿÿ¡4\Autodesk\AutoCAD_2010_English_Win_32bit\x86\acad\Program Files\Root\Common F
Autodesk Shared\AdLM\R1\de-DE\help\NLG\style\commons.css.oldxxïÍ« ÿÿÿÿ¢4\Autodesk\AutoCAD_2
Win_32bit\x86\acad\Program Files\Root\Common Files Folder\Autodesk Shared\AdLM\R
1\de-DE\help\SLG\style\commons.css.oldxxïÍ« ÿÿÿÿ£4\Autodesk\AutoCAD_2010_English_Win_32bit\
gram Files\Root\Com<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.
8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="msvcr90.dll" hashalg="SHA1" hash="e0dcdcbfcb452747da530fae6b000d
47c8674671"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsi
g="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorith
m="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tr
ansforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"><
/dsig:DigestMethod><dsig:DigestValue>KSaO8M0iCtPF6YEr79P1dZsnomY=</dsig:DigestVa
lue></asmv2:hash></file> <file name="msvcp90.dll" hashalg="SHA1" hash="81efe890e
4ef2615c0bb4dda7b94bea177c86ebd"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-
com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><ds
ig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsi
g:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/20
00/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>ojDmTgpYMFRKJYkPcM6ckp
YkWUU=</dsig:DigestValue></asmv2:hash></file> <file name="msvcm90.dll" hashalg="
SHA1" hash="5470081b336abd7b82c6387567a661a729483b04"><asmv2:hash xmlns:asmv2="u
rn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTrans
forms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>t
Vogb8kezDre2mXShlIqpp8ErIg=</dsig:DigestValue></asmv2:hash></file>
</assembly>
 JÜ~ +1I_aþÆEM å ´mX—Ùe
ÃhJ6øñ2 Ó[ã ¶¥N{¥I¸#*wÝNkqÕ)à!‾²i=p Ì}Ѩ5=ðíwʗ@ Ú v¹OùÆð ²58
 ÍO,¨×ð[ ¬¸vîü( L tAeQcTÆ oß  ;\¤®¨1K
ïä\xIáÛÙW Ë$.Z®xÎÚ»9ï µ vG ùã©7Ùq_s Q kÆöjÅεwÎÍ Ï ¸ ¼7ecÒ¶Ìkb6XÊ| MÛr %Æ£¸'- NU^çÕâ :¿ QN
Ùhèfr%ùaá¨Ïû¬ÉqZ
ÅÌ C\í1ÄO¾)
°<î ¾¨ë
T ¥^ÕB d A0l{{BGÆàÿ
ç£F+û
Ä4 \+x¨âU
óHJH%E$³
0->,ï¶ò@CIpj=ÖÐ
tÓ6Ç´²ÿ
ð8Üƍ û¨ß_)
óNW &
?Ñ2õ(e7dýÅ[V
²eo>Ûn ¦(å x©4V¾(gݳO%
JáN *ZÛ: 1©Ü
¬E4CäÝ%
à7¸ò÷å»a8ÌóZ8}
å¨Ïì¸Å Âm . v¾ïýH°°À
p 6b¼å ¦¬è£
 û
-(àËjm ÇÆð-¸§¶W _² õè G¾è»X s L µMKÍ,=ñ y /é$q Î 8
ðY>={ºû=Ù¸X 4SðÜ¥ü¨®XqÈ¿ l%ÞSS½ áÐ{—w Ý ç|èls ÷¡Ó-ty¥^§àãOkø 80  Ú"S ^mEã  ÎDjÀ´õ
ªã/îßf¸´óû(a+ip&ÖcÉc¹äô~wÙ
 flqñ
ÑRͱÈ
Qu BP ÷Ä8 ë¸‾¸#ÎÓÙp=
AN*¹ YÐ9Ü#Ehnªsë%p©
pÀJZx#B[H _<JõJS áÚÑÑ®¬
¬á A ¸ô
?Ý$xå?
Á̪ägrJ©öS>£
ظZù
áÿÌWÄ¢ òÈéÚ¦k½K
ý.qMH xX~JÝ#
ðÔ,ܪü¸Í
³qc
º6k°rI°£gÏܺ
f¨ÕG
Yß ä2 këÁ¸  «vÒ©}þ;
9W) ww¿â ÒÅ ?0 ÒÄ k ÀR6;byÙ|ì¸58Ù æf¨!Z 0íÝà=þ׺íï b { ¿GÕø5{ =iÝís
¼¢À¨Ã‾9rél'c¡gÛEÙ öÿ|\{Ú Úíò£² ê @í §^ & ¼e®u ÷ê* ¹ù S³tN áïÛIU {oÐÏ KtSíA°
þU D[ïâ[4 £¨¢Âß{\ºË Çx»(cÄ¡1ìî´9ÌØÃöÕÂ÷ã§FÌWÍ<ë,x¾8= oV%¼Âów u>Ýç« ê/—qT¥ó»YWy¸cOÓ »
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemb
lyIdentity name="PPClientAssembly" processorArchitecture="x86" type="win32" vers
ion="2008.1.17012.4817"></assemblyIdentity><dependency><dependentAssembly><assem
blyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" process
orArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></depe
ndentAssembly></dependency><dependency><dependentAssembly><assemblyIdentity type
="win32" name="Microsoft.VC90.MFC" version="9.0.21022.8" processorArchitecture="
x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></
dependency><file name="ProjectPointClient.dll" hashalg="SHA1"><comClass clsid="{
907F9836-6B47-43F2-853D-43DB01BC3CD5}" tlbid="{ACEB11CE-E061-4903-AED4-2FC116800
8A8}" description="PPFile Class" threadingModel="Apartment" progid="ProjectPoint
Client.PPFile"><progid>ProjectPointClient.PPFile.1</progid></comClass><comClass
clsid="{12ED1E87-AA15-48F9-844B-A4E47D0D0569}" tlbid="{ACEB11CE-E061-4903-AED4-2
FC1168008A8}" description="PPFolder Class" threadingModel="Apartment" progid="Pr
ojectPointClient.PPFolder"><progid>ProjectPointClient.PPFolder.1</progid></comCl
ass><comClass clsid="{CFDDB069-F046-4ADE-A2A2-09CC4ABB650E}" tlbid="{ACEB11CE-E0
61-4903-AED4-2FC1168008A8}" description="PPLink Class" threadingModel="Apartment
" progid="ProjectPointClient.PPLink"><progid>ProjectPointClient.PPLink.1</progid
></comClass><comClass clsid="{E6FED699-B021-425F-9B7C-E631551E2E41}" tlbid="{ACE
B11CE-E061-4903-AED4-2FC1168008A8}" description="PPProject Class" threadingModel
="Apartment" progid="ProjectPointClient.PPProject"><progid>ProjectPointClient.PP
Project.1</progid></comClass><comClass clsid="{8753FADF-A8C0-4F12-B49F-2E137012A
E6C}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" description="PPResourceColl
ection Class" threadingModel="Apartment" progid="ProjectPointClient.PPResourceCo
llection"><progid>ProjectPointClient.PPResourceCollection.1</progid></comClass><
comClass clsid="{6159C2A0-F4DE-4416-966B-C766BB8C8C60}" tlbid="{ACEB11CE-E061-49
03-AED4-2FC1168008A8}" description="PPScripting Class" threadingModel="Apartment
" progid="ProjectPointClient.PPScripting"><progid>ProjectPointClient.PPScripting
.1</progid></comClass><comClass clsid="{FA3D03AA-8649-4C3E-BC35-7C300B5B90DC}" t
lbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" description="PPScripting2 Class" t
hreadingModel="Apartment" progid="PPCOMAPI.PPScripting2"><progid>PPCOMAPI.PPScri
pting2.1</progid></comClass><comClass clsid="{6F11097F-B60D-48CC-9BB7-4DC7551710
7D}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" description="PPSession Class
" threadingModel="Apartment" progid="ProjectPointClient.PPSession"><progid>Proje
ctPointClient.PPSession.1</progid></comClass><comClass clsid="{D0C90C35-1ADD-40F
5-8B5D-90DE4E6DACB8}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" description
="PPSettings Class" threadingModel="Apartment" progid="ProjectPointClient.PPSett
ings"><progid>ProjectPointClient.PPSettings.1</progid></comClass><comClass clsid
="{609D182C-79AB-458D-A107-DF2368812FFB}" tlbid="{ACEB11CE-E061-4903-AED4-2FC116
8008A8}" description="PPSite Class" threadingModel="Apartment" progid="ProjectPo
intClient.PPSite"><progid>ProjectPointClient.PPSite.1</progid></comClass><comCla
ss clsid="{99798E83-5AA5-432D-886E-D9F29AD6B617}" tlbid="{ACEB11CE-E061-4903-AED
4-2FC1168008A8}" description="PPSiteURL Class" threadingModel="Apartment" progid
="ProjectPointClient.PPSiteURL"><progid>ProjectPointClient.PPSiteURL.1</progid><
/comClass><comClass clsid="{5D38618F-91BF-4051-A9F8-DD3603D9E506}" tlbid="{ACEB1
1CE-E061-4903-AED4-2FC1168008A8}" description="PPSiteURLCollection Class" thread
ingModel="Apartment" progid="ProjectPointClient.PPSiteURLCollection"><progid>Pro
jectPointClient.PPSiteURLCollection.1</progid></comClass><comClass clsid="{A5838
55C-1D59-4771-8872-4DDBE482811C}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}"
description="PPUserAgent Class" threadingModel="Apartment" progid="PPCOMAPI.PPU
serAgent"><progid>PPCOMAPI.PPUserAgent.1</progid></comClass><typelib tlbid="{ACE
B11CE-E061-4903-AED4-2FC1168008A8}" version="1.0" helpdir="" flags="HASDISKIMAGE
"></typelib></file><comInterfaceExternalProxyStub name="IPPSession" iid="{94A6B6
71-94E7-4480-A093-BA5C316DB44E}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}"
proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternal
ProxyStub><comInterfaceExternalProxyStub name="IPPResource" iid="{6EF58CEC-C353-
4EF6-AE2C-F9E61ED1B080}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStu
bClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStu
b><comInterfaceExternalProxyStub name="IPPResourceCollection" iid="{BFED919D-846
C-49F8-A436-B06A62F38752}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyS
tubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyS
tub><comInterfaceExternalProxyStub name="IPPFolder" iid="{74976B7F-68EE-43A8-B84
9-47EDCBB7621F}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStubClsid32
="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub><comIn
terfaceExternalProxyStub name="IPPFile" iid="{03E83083-6E37-491B-A1B6-EFE87FC630
5C}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStubClsid32="{00020424-
0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub><comInterfaceExter
nalProxyStub name="IPPProject" iid="{CC77A188-1A90-42BB-A056-D5244AE5340F}" tlbi
d="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStubClsid32="{00020424-0000-0000
-C000-000000000046}"></comInterfaceExternalProxyStub><comInterfaceExternalProxyS
tub name="IPPLink" iid="{F1D6C934-03AD-4342-8D52-A5584F6E1092}" tlbid="{ACEB11CE
-E061-4903-AED4-2FC1168008A8}" proxyStubClsid32="{00020424-0000-0000-C000-000000
000046}"></comInterfaceExternalProxyStub><comInterfaceExternalProxyStub name="IP
PSite" iid="{D30EE802-38DD-4CCB-8E52-76BAD8E73335}" tlbid="{ACEB11CE-E061-4903-A
ED4-2FC1168008A8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></c
omInterfaceExternalProxyStub><comInterfaceExternalProxyStub name="IPPScripting"
iid="{4E1484D3-C8A5-4259-9815-EB4395E4A7A0}" tlbid="{ACEB11CE-E061-4903-AED4-2FC
1168008A8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInter
faceExternalProxyStub><comInterfaceExternalProxyStub name="IPPSiteURLCollection"
iid="{4FA6CF3F-618D-403D-9ED1-FAE50FB93B63}" tlbid="{ACEB11CE-E061-4903-AED4-2F
C1168008A8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInte
rfaceExternalProxyStub><comInterfaceExternalProxyStub name="IPPSiteURL" iid="{60
52C81A-5AC1-4101-B226-C84DFF5DF698}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A
8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExte
rnalProxyStub><comInterfaceExternalProxyStub name="IPPSettings" iid="{1CEF73CD-9
07C-445F-A7E7-99E29F0FC570}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" prox
yStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProx
yStub><comInterfaceExternalProxyStub name="IPPUserAgent" iid="{B1935F3A-BB22-403
B-B080-D4ED24ED48E2}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStubCl
sid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub><
comInterfaceExternalProxyStub name="IPPScripting2" iid="{3CFCF52C-CB84-4F75-B602
-95CC49794AD3}" tlbid="{ACEB11CE-E061-4903-AED4-2FC1168008A8}" proxyStubClsid32=
"{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub></assem
bly>ð  & ì ¨ £DRPÜ~ µà « É
ìgZ ¬
uÐ|¦
2. »é ÓÈî
þQ} CJ>AJ®¤ ùõ¶Ö YC8 Ê'¤§  Ës"mR4è Yû10 sí « ðñÈ ev §r_^ÊoE?Ç «ñ³|º?«hs H*drÝàFÏ ÃÝ
Lk|£ªß( ñçß× ò¾'QüïÝúP´ ¦ C±D®qاÇÌ
ýy
N ¡%~nJß<B§0"
EC³ j|
Ù¼)
U ϳh;
C#z,ÊjeCôã®ß|ì
Ë¿ zäS4àÜ)ÄWM
µ ûTßæ5ðìR¤´1¼
Ûȼï‾à V\ö7;Xìŗ
Ó çËÕ/EÄò
ÎÁ|ñæ@h4
ÍKõ æ%#il%LH°Í
r¼« ùøÊÄÏ+¿
j6? ý!R^
ûT95ã*$:MYÑè.ØqtL;
±ÕOÝõêUÕ#ºà¦¬
videinit.fslXéQ`Na?: R¿ôEË´ 8×: É: R¿ôEË: R¿ôEËP  H  vl.arxtú_hRa?wØåäôEËÄ/ ÉwØ
vlinit.fslsQhTa?rÿ4¾ôE˨ Ú§: É*H¾ôEË*H¾ôEË` ^  v llib.dllesQhVa?*H¾ôEËúéJ¥: É*H¾ôEË*H¾ôEËP B 
vlreac.dllsQhTa?*H¾ôEËèÍÿ : É*H¾ôEË*H¾ôEË` ^  v lres.dlles6GhXa?8ª ôEË2§E ¦ Éä ñôEË7qù0¡I
 WSCommCntrAcCon.arx
Qxda?AiJ¾ôEËÊÁ : ÉAiJ¾ôEËAiJ¾ôEË   WSCommCntrI1.dllêQpZa?QãT¿ôEË4Y : ÉQãT¿ôEËQãT¿ôEË
 
WSCOMM~1.ARX
QpZa?AiJ¾ôEËÊÁ : ÉAiJ¾ôEËAiJ¾ôEË   
WpSZjCaO?MoM+O¾ôEË
Q ~1.DLLJÜ í È íS¾ôEË íS¾ôEËp xerces-c_2_8_AEC.dll
XERCES~1.DLL<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.
1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="msvcr90.dll" hashalg="SHA1" hash="9785b1c493deb5b2134dc4aef3719c
ee207001bc"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsi
g="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorith
m="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tr
ansforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"><
/dsig:DigestMethod><dsig:DigestValue>VF5ECUAHPV7EnUf+/UIXMPizPvs=</dsig:DigestVa
lue></asmv2:hash></file> <file name="msvcp90.dll" hashalg="SHA1" hash="0f6bbf7fe
4fb3fca2cb5b542eca1a1cad051f01c"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-
com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><ds
ig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsi
g:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/20
00/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>3Wg+StVMq2uhx7POnAkl2w
4dDmY=</dsig:DigestValue></asmv2:hash></file> <file name="msvcm90.dll" hashalg="
SHA1" hash="7f3290ab2b7444c2b4a9b1fedfdb16466d7a21bb"><asmv2:hash xmlns:asmv2="u
rn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTrans
forms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>/
YfRn7UQENzdMeoMHxTgdRMiObA=</dsig:DigestValue></asmv2:hash></file>
</assembly>bÊÜmCʸñÂnGP»\BmO k9¸u% [ S(r#« n ® à
¡ úZ6 À¾q& GA wôø_ ×3{âóé ¤ \ éq¡ÏñË 3 ßÛîØ^ú{HCe ÑåKmÇ , d, ßzMÑ ûðc{rtÞ&Á /ÍñÛÊ
åNª B ñ*fuÛ0s« ݤ Ýûé c`"h¡cbf 1иj¨ c´ò$‾kL8F9 r õÀ 1ú%/5‾ Æ0É-Åü0 8
endstream
299
endobj
0 obj<</Subtype/Image/Length 59/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 125/Height 661/Type/XObject>>stream
H ìÇ1
°:Á¿ :ûÎ,0÷.Ù ¼u] »»»»»»»»»»»»»»»»»»»û¶çcì|.
endstream
300
endobj
0 obj<</Subtype/Image/Length 27732/Filter/FlateDecode/BitsPerComponent 8/Col
orSpace 516 0 R/Mask 299 0 R/Width 125/Height 661/Type/XObject>>stream
H ì×ýWù𿍶ÜÚ»Ývï=—_îIæ)+Q
E5]+EQDL p ¤D f×ÌÇJ-ÓíÁÔUWÁî [ÏÞ½»—Ùôû>ïã90ÌøåÅÌ ¡  ±hªóA?O 9³ò /ã¤5ÊÎO @?g;`?9 ²?W~íd´5{=©"
éá«Ô*¹µ¥
ï,
!£¿4Z w S|A0Vý
Pú,gV×ìð\Ü
  Hnqi²sy0
òÁMT_D©8{
alØ%,
?ÎüDw
©M^¶4-¥
_F  ê ̽ï¢=¢Ù_7f½4ÔíÏvÓ¹y[ù̳õÈdþy$ø ?£¹0©OÛgw 7×
j1 qQ4ò:FsD×$F ú ²ø¦÷¢ N !±¬EoèÑJ ®dÃðµÔ¥µµ¶NZ#×îj³¥ú]Nï:_ XÂ
Îèi r990 ì¾ ÍâkuYGCQt ßñnÄ MZ«Y å¤` ¡ S(É×Ø ¤Yò|ø×öû_r$;  h½
ÖØé°í*¥å w Qf©ZÄ¿
¡¬ dõ½õ97Ó 8Ùüº AÓßT Â;O ]R7`çe§BWSY% z³É?ТàrøG±Óÿ*)ʪ*4=Ý÷2280 Ê @¬ ¥ É®d ¹ ý¸²Ç®º2-Þ

 msvcr90.dllERàÌ P ´ÁôEË_ ï8ñÈ ´ÁôEË ´ÁôEË0ð) Ex86_Microsoft.VC90.CRT_1fcb3b9a1e18e3b_9.0.3
29.1_x-ww_6f74963e.manifestERpZ P ´ÁôEË_ ï8ñÈ ´ÁôEË ´ÁôEË0ð) 
X86_MI~1.CATx^pZ PÓÒ¨ÖôEËÆ e9ñÈÓÒ¨ÖôEËÓÒ¨ÖôEËA 
X86_MI~1.MAN<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.
1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="msvcr90.dll" hashalg="SHA1" hash="9785b1c493deb5b2134dc4aef3719c
ee207001bc"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsi
g="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorith
m="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tr
ansforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"><
/dsig:DigestMethod><dsig:DigestValue>VF5ECUAHPV7EnUf+/UIXMPizPvs=</dsig:DigestVa
lue></asmv2:hash></file> <file name="msvcp90.dll" hashalg="SHA1" hash="0f6bbf7fe
4fb3fca2cb5b542eca1a1cad051f01c"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-
com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><ds
ig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsi
g:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/20
00/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>3Wg+StVMq2uhx7POnAkl2w
4dDmY=</dsig:DigestValue></asmv2:hash></file> <file name="msvcm90.dll" hashalg="
SHA1" hash="7f3290ab2b7444c2b4a9b1fedfdb16466d7a21bb"><asmv2:hash xmlns:asmv2="u
rn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTrans
forms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>/
YfRn7UQENzdMeoMHxTgdRMiObA=</dsig:DigestValue></asmv2:hash></file>
</assembly>
) ¹#ÃÆR°~Þ¹%s!gÆyÆ uQ‾b'« « *Ò¼û6 F »þiT—ç 3îJÓo©sì ý Óþ=M°ãÀÉa ýÂëÅä{+  # Ö rV´¦¢ß¼]ï‾÷
ÍÉDùª÷0
ñËC!zI
Þë^
 Îgp§û
;ÚZ‾m3‾×
?ºÜû=ߧè
R»vÉï`Ç öO²Ü¾Q¢Z¢
M-f®Ù
ooÚ*´¦øEF
ºܥA`úõ
cÿͱ~_%L
nsìÏús°cL
æØ?Esì
ÅÓ"D/‾ðÝ
ô¤¶w¢åÆ¿Çãf´
¢9öOÑ
s¿°[(
P[ì\µ
û§h´-Pð
ýS4Çþ)z
`m #fþÎÂ
xVdµ¸ 3Fl®l«
¹ÝÆÁÖä
FÜ ¢erÊ
xiþêᲧÝñèþ¡ u L‾"Ó2
³ìùz S¤0 6v n7ãt xiQB Îè«´÷¹Í à D0%tZI½^!zj³±# õsñ8 ÉlJ¥db Q©¼
Çó>
FÃû ÈZ öè¡
÷ Ôo}Â^/úNNs
\58$?¶P!Þ|
ÖCûÛxÔ»W9‾C B õ<srûp Ó+n¦Ùµ ?sÖ=^ Z©P±¾ ïÜÜ
î ÃÑàöºwà {4b
\g6§; Öí ø2ù¼ ×?-ni6Ôè-[!4Z BU ¿ÉÿäBk
( x µP½ÃÁÕë¼Íæ³£NjS§ã ' C eñzµ‾Ѭ A'm ýÅ^HfJA©TJr QiØr+²M $ ¾û:mÏU‾ ¿ [É F¦Xqøª ù¤?碤:
²å
jÌÆìÍé®Í´
ì.®ÖMø !ýkØ
µÃ ¡J[p¸,
¥êà<¿¥Ù|XØP ÖI»õ;ZøÔ>
;¦¥ À¸gg ªßfQûÄÛ/r©
&ØíÌr°t.°¡
G<¤Õè‾%â Ú q 5¿S¸*UQ É GvÓ»â«N÷vhµøk Îãø9Äd?vù
ZgEçOæö©þV@Î
‾cçN2q®
ÙÒ^,üWÒ¤
øþ÷óû BT±J¬Ó¹L°z²ûÚ«
6 #ݺß_ÿo³à=ðÛÿµà
Á/²$vº
M©B´e‾.³n
=Êߢ C÷H-[Ú
ë Ø¿øöïÅ.è
JLWÙ
RÀâr
Lj
ÝzØiÛ|ÕÛ
ëZr¾
»~ ì&Eا
¼HÀÎ
]³W¸égm6
§ÔAO>[ë~D
$ìÔFÈ
 ¼HÀÎýíÔBz
sìO
ì¼HÀÎ
'$³S*q,ë
¢§öj
Zç¡3ç»eå˺T
ì ¼HÀÎ
¹>9Sy)6ÀU
HN¹ì®½zW°ý]@"DÎ
æØ¡d;y&
?Ø_M3ì
&Tieù¨
Á—O¿S
óz¥ UU벍L¡Õë
Ä5Dõi
üòþ´sq{¶‾Ó(ÈVÑÏ
½½Ö^#
^6Ç/ì G,{[
q RXBzðü@
ózBGª1oì
ß½}
¤Î'à;q
¤©
¹'à& ¦4X×éöu÷a̱
ð\ xWÉn+K¤#ÓÊ6Æý>¹o×:ôú®YA*uÆØ5Uë?Î Ì × 1 ½Ggáê éz-8) ZÕÁÝdR ¬ Dñã¤{u5¬T
£Q åØûþcíè8`ÿ ` {ÇÅÓîhrw¼ï¶`àÇû@täx ýBÁ«Õ*!DGØâñ \ÎO +hÂïDË-a ÏïßÏçÝ Çq LæÌå"A¨goØß,ö Ã2 © ¶*
!zʹ¿
z7ÜöÌà2<?xml
¹bùþ2c
 êté°+¤Ç$8Xú~
YÍV¸ ®ç version="1.0"
Á
!pܪÑ ò encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.30729.
1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="mfc90.dll" hashalg="SHA1" hash="1dc479a8f9371fc3f54a703176de55d9
46aae71d"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig=
"http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm=
"urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tran
sforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></d
sig:DigestMethod><dsig:DigestValue>0WXaqWXjcX81VJWWuouEHpg2OfU=</dsig:DigestValu
e></asmv2:hash></file> <file name="mfc90u.dll" hashalg="SHA1" hash="5c00a82ffbb2
934ccb54d6e0c94a12734d5e5385"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com
:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:
Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:T
ransform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/
09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>XG0Wl2e9nPqC5R7byGIo7KErm
uc=</dsig:DigestValue></asmv2:hash></file> <file name="mfcm90.dll" hashalg="SHA1
" hash="8f0d334ce122521222663a7064d4bcd32b7d15ba"><asmv2:hash xmlns:asmv2="urn:s
chemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><ds
ig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransform
s.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="htt
p://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>irCaQ
CWY+Avrrqfm7r6zuHnZmhg=</dsig:DigestValue></asmv2:hash></file> <file name="mfcm9
0u.dll" hashalg="SHA1" hash="3a1be96ba4675255921547236f2cec0fe61b7159"><asmv2:ha
sh xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/
2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-micros
oft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:Digest
Method Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><d
sig:DigestValue>xcWYX90ErRADkL3rEMOboaGpWJQ=</dsig:DigestValue></asmv2:hash></fi
le>
</assembly>»ÜÅ=¥")HQ? ]ãË6¢Ûæ5@@H Ö>O¾¶¨ì
8äÉòÂ47s¼
)v eA@ ¨pcvÄ0¥^‾T±
9)3 —b  éÈ¡Dßæ>Å~bôF
Fî>¢ÖC ³bç
ð ^ ÁNÜÖp(õ¦
Å°cº Ï»"ÞàXµ\Þvû=
.jèú ØqM.«7×ãÝð
aþñë}hýx
)nóDÀ
ø LÓÛ¿
\Ó C¼ä¨3
] ± ï®ÖëõQ»Ý
écD2S%þ
jE¿ã²Î±=<~:
.ù&Ûü²ßØ
& þ÷Þl apôèËà %=¾º½÷® ð5V½»ÿ¥Úü'¹ cfâ½÷°ó ý½wôBv^$`çEv^$`çEv^$`çEv^$`çESì
{1VoÄw|»2@üdC"jAu'É»ö  ;÷Wþ° P,Q |u" TC8sé ö#Ç0ÜcõÒ ´Òe
½> ' ØyÑe2$BË2 ã¦rr°Ò z¿ÕíÒQ N|e"@©×GénÔµq¤ Ðá>9MUR¹! JèUM±Wz
fLA`ØÚõ
Ð¥/v½;R\í
§ ;¦}-xÅÞ¿0
T +Çݵ ËM±Ä°£^ûSé
P p Ä Í{öXã1¿v`x Åe?«_
´¿>G@+ZãF´qßpÃS«Ýõú¹
ê+XBä^ÍýV
½)ôo0ö
^¢5³=ÖùL—ÒÙs'ù¤WsÁÔ
A± Üíé¾D¢ V«¢ÍB0àu
2 ; r[:
r^løÏZg+fí"
s Pc2¹Ëe—Z½
JÝþLú
ál
mxÂ-vϬ£ îüù]qÜ=ÿo  + ÷îì¸ mëîñí ¡7iଠÄùÏèM ÚÃ]û®[
¨ è‾ >UþK )LÆkÕ°ú ÿ SJcØu‾×":
¿BÄþOÀ>xxÀ1‾±¿ Ç£Û &p¸ »Þd2¨O
H*cMu c~2¬ÜWCJ¹De¶á
³Ñçf¥ÇñÕ~ëG* 
Z Ùp¡5o6[l¬à&ôKÔÜb^¡]¶ÄÚÓæð çFü´{u @¹ør :Çn:£ÅÎ Ívþ ½]Ä.ö YBÈsçîB´BþÖ;<?xml version="1.0"
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.30729.
1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdent
ity>
<file name="mfc90.dll" hashalg="SHA1" hash="1dc479a8f9371fc3f54a703176de55d9
46aae71d"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig=
"http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm=
"urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Tran
sforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></d
sig:DigestMethod><dsig:DigestValue>0WXaqWXjcX81VJWWuouEHpg2OfU=</dsig:DigestValu
e></asmv2:hash></file> <file name="mfc90u.dll" hashalg="SHA1" hash="5c00a82ffbb2
934ccb54d6e0c94a12734d5e5385"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com
:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:
Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:T
ransform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/
09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>XG0Wl2e9nPqC5R7byGIo7KErm
uc=</dsig:DigestValue></asmv2:hash></file> <file name="mfcm90.dll" hashalg="SHA1
" hash="8f0d334ce122521222663a7064d4bcd32b7d15ba"><asmv2:hash xmlns:asmv2="urn:s
chemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><ds
ig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransform
s.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="htt
p://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>irCaQ
CWY+Avrrqfm7r6zuHnZmhg=</dsig:DigestValue></asmv2:hash></file> <file name="mfcm9
0u.dll" hashalg="SHA1" hash="3a1be96ba4675255921547236f2cec0fe61b7159"><asmv2:ha
sh xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/
2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-micros
oft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:Digest
Method Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><d
sig:DigestValue>xcWYX90ErRADkL3rEMOboaGpWJQ=</dsig:DigestValue></asmv2:hash></fi
le>
</assembly>³z—Þ‾
÷þc׿ôâ
ªÆ]¬$7M{Rçï&vË^
óV^;¢°Å
í Á" ¥
ò y¿Ûm
u ¾È 1Øu¹Ò
è?4V+UúÍf;
aڍ§¶à/?
¬$p(Qév.
û®lã8 r÷ÅÖh
! KìvªÒ
! 2Ìp:¾¿ri
ymAÍKØq
ÔpU
UºDv±;lZT
>³[\ÀÁÚ
rº"¹Ú¼
ÍïÏô{i§Öµù,xò5!
ui j¸ªöÙïÅ0Óé
1Rc
ó v ~ a
[Ñçð*Àϱø4ìßuû"@nÒ÷ F¹U Ø Ñg`w¨°¿3}öpVAå I+eU —Oi¿× ±C
ìÖT‾zj3
èº"¨ ¼è\éN'e—
íß 0åö~0 éuÓG Û«Za ºm¨\X_ ¹‾Ú6Í$UÎÇ  VDâæ /§åq;³°)0@ümìe ÕàÝPóc:qz ÌÈþdæ#²}1(J
gØ W4ì µ.ª'n1íÌд3i\»µèÀ}qO8Al
—(ÿ $«¶ësnÊ°\ã² = KEPi#w3åî`Èý Ñh j Jôåek20Ãɸ J ò ;nÎU³Ùr.×f¸N1X
#A b)¶ J m ¾ ÷g° ÀھŠ-sìð©Ù®Dý$®Q( rw£Ùp|?iD6$"íî~ªÃõ&
Ë ¿.>i TqÕ¹ )÷ÆÃI mE£ Nì eY® u}õ«½ùÑU åØÙ71Ìü.R î-°@(Wo ß=ÖÇ;=æ B E—ãSíØ| § î c¾ O7g ÇfÔ´Ò
ðGôtÄÞ
ûÂÙ0cÃ‾]
 ÊMNk¦×~ °Ë+3Ü`С3fÒ 'A
ì\©úd[cy?îö ;Iâ ÐX
7Ù:¾Ü
% h¶¹f—º¾Ôþó4nÄKaÄ©Ý]
øº\½}ñ< =kR1®VoR¥Ó)% ËqR¨2£jHqfQ®aþt+
Plàë*ÜOÄÏêWÎ u§HråéâÖ 0ú$ú&q9T/³= Àwòµ^4*òh[/ sÃÒå  àí Þ Òÿe
ÂEYz]-¢LrA LbA (Cæ 2 ¡ª2'Uûgô Ð$ö]Þ®ZêùÖ^ ví]û|©s(ïÜt\íî ?|ãÙ ë³7»lvû ß+×û-KË Ó;+Cö3í6«u
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.MFCLOC" version="9.0.307
29.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyId
entity>
<file name="MFC90CHS.DLL" hashalg="SHA1" hash="da22f3d12d7185f07d6821cfa6fa6
ed0353555ef"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:ds
ig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorit
hm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:T
ransforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1">
</dsig:DigestMethod><dsig:DigestValue>k5u9+uC+D6DMEZ+/HJw6zjSSkdk=</dsig:DigestV
alue></asmv2:hash></file> <file name="MFC90CHT.DLL" hashalg="SHA1" hash="ecc16be
a3970b6ad2103346c4331394e3ca301c6"><asmv2:hash xmlns:asmv2="urn:schemas-microsof
t-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><
dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></d
sig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/
2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>deXbFEeqL8wJNBdFQrji
ZTmStYE=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90DEU.DLL" hashal
g="SHA1" hash="a84f760040aa2a6986464eb53956dae27b44df25"><asmv2:hash xmlns:asmv2
="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsi
g#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTr
ansforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorit
hm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValu
e>XDRdz44H1ZGEtvutWQa9SY5xVWo=</dsig:DigestValue></asmv2:hash></file> <file name
="MFC90ENU.DLL" hashalg="SHA1" hash="8bd58097494ac346a62a039371ad12a8a7f545dd"><
asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www
.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schema
s-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsi
g:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestM
ethod><dsig:DigestValue>h2gbiWbNWzE5mo0GJLs5NeOkQqE=</dsig:DigestValue></asmv2:h
ash></file> <file name="MFC90ESN.DLL" hashalg="SHA1" hash="b7b24654d6496828feef9
57484ba5dcc21ca98a4"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform
Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform>
</dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsi
g#sha1"></dsig:DigestMethod><dsig:DigestValue>iwF1OkctskMGftSdz2Hsbqa/G3A=</dsig
:DigestValue></asmv2:hash></file> <file name="MFC90ESP.DLL" hashalg="SHA1" hash=
"7ae0eb13691d9e77edcaa90ecdb3d951470b1b7a"><asmv2:hash xmlns:asmv2="urn:schemas-
microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Tran
sforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Ident
ity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www
.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>eP7muexTkimu
rn3RTCCHtNgZNb0=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90FRA.DLL
" hashalg="SHA1" hash="be219813ec29dd6e87ace7a7c577774ed32f511c"><asmv2:hash xml
ns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/0
9/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-co
m:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:Di
gestValue>PZktC+VvgLIvohYoNCMkSkkNjXw=</dsig:DigestValue></asmv2:hash></file> <f
ile name="MFC90ITA.DLL" hashalg="SHA1" hash="c4a9dd6042dafe1ff481c3c5aa59f691640
350ca"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="ht
tp://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="ur
n:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transfo
rms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig
:DigestMethod><dsig:DigestValue>QsK0eouIonj5LUmMQUccpauTvU0=</dsig:DigestValue><
/asmv2:hash></file> <file name="MFC90JPN.DLL" hashalg="SHA1" hash="c809b467141fc
6f75e6d4ed690050920e1d2e40b"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:
asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:T
ransform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Tr
ansform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/0
9/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>Ph1wwGnDEJhUNkC/3hVGCMgJ/a
w=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90KOR.DLL" hashalg="SHA
1" hash="e0d0ac962eb1d6fcb884a0caf4f4c679d9a39416"><asmv2:hash xmlns:asmv2="urn:
schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><d
sig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransfor
ms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="ht
tp://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>d6lo
eglZGMPrx19kcI65qamuWv8=</dsig:DigestValue></asmv2:hash></file> <file name="MFC9
0RUS.DLL" hashalg="SHA1" hash="b4198bbec81a3c2210429a1704ceefcaaf6ac4af"><asmv2:
hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.or
g/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-micr
osoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:Dige
stMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>
<dsig:DigestValue>7PqIF+eCXgbvLlROqD8CIcee9SY=</dsig:DigestValue></asmv2:hash></
file>
</assembly>
c = ¦xw÷KdCÅý'Vo²ûh
`¤éF»Ùm²ï'Ù ½ Ï ýж
#É ¦kKOåŽÔö/ðý*VÙw á:2ºÙVµ»»»¦k] L2Ñí©6 Næ SÚ û H¤¶{Õ¶Çû%I Ì4H ¥Ë~lïz R"VQÞï> ´hu»ÿÄj\Óíé
7(ºÞG¿?ì÷mÝí ¶?[!¶Ía—ß}´óXe_D<#W 6î !×¾ ûÝ¡¡D³«Ó-2"ºMÉü ïob «³T Nw ÝA¶1 Æ:P¹ ¢—}zc³çVÌ
¶ò ÅMö«` ½¹ágñ ½mÚ¶í Ðv|¼6§Uöö_ ^w&ÄR qÁTk¾ëÔUIýûeïT§¬õ!äË8
¹&gº®¿*©Uöþ%Î9Ù½zöî ¶õ¿<—ûÞ?ñ# Úv¾¤JÐ‾^÷lË;,—o?y î³G«ì.f®< 5ÑjE8¨®s. 2-é9
c ç%  TßI õ>¤ZÖü±D+÷{Ó NiýÂ,Ø¥Ê*Ûûü ÷cÉ $× KÔ çG  Ð5 7ãvbÃ0Ôq¨Ézs2x =ó ü3 ¹$3 X  îÕi
Öôê  
!-òLbeA@ k%¬ qiå¿0Ý "
ÜIö^[
*kC¦* È¾hÔ
nyc0~Ø÷Ë
¢Co½MB£nd²
eCNu3¬ôie ë²ÊDÖ×a=tØÌO>8Û
rX l Ë<Vo¹@e ¤åBRm×k =¥À5D G,ÖiÀ1¨Ps"+

39 ü(¼ÍÂO) ÔHÎÝ gL¬£X~¾§Tç$[Ç Èât D©©x£Ïçí´ ¢«S   - ! ¬ ¬2ÿA ¸ÁMdhÄ¥L ÉëTêubEJ [#ÑÙ-VÄZÅ!
¢ ¹¡Étkù%«/~Ylw$äbNCvötO mãÓ¾_ÃY+D qS÷.£ h î¼ße0"»yby rJY¤ø8EȤ
wüJö
AƬd\
dÏ |
Õ^24±w¬Á
oÊN¦E ö "º
k—uòÕÓp)»
^Ë'ñ4!î8
,Y%ê 2奤"êz½!ûÙ«¼ D ÀÃàv½Æx!»» ý
fdw!;qeík2Æ
)4
36Ù©[
l fÁ Óô
Ú [ H|Áð>
± È9$C¢l
¶Þçqàðhß
T(¼ïÖGÆ
e_µÞ´ÇO
Ý:ro Ï$\ðéR
Ý e§ñ&Þå~Kv/öM‾dï{ë|
ÇKIkýZöWXeG[®ñ
^Ã¥Ë Ó-m%lÆ"WQ^8¦ yÞ¨³7îÍC
u* èÕfpÍu
‾"5"*4C#
¤£Jâ|/U
É{'²RÎvȼ!;d
ª']5SsÖÊEVËÐ
6ýdþ4Îä Û¢Î

$2
8âjë6
§n
â®V*è
2 Ò®×*û2Ôãf
$2NT<,:j§e%!Ñci
—5eÎKÄ×Ò9½+2ò½)©>
òKyZv
>pr¡ÁçÇ k oâùX¤HL
á¢z«¤Ø°¥OÀ
 ^ ºï»¿<?xml
å¶çxÎZversion="1.0"
nI» BÎì {±Oòencoding="UTF-8"
-. ìît_z¢LG $<aQÆy@Èh
standalone="yes"?
3ïÂ<Jpaeò
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC90.MFCLOC" version="9.0.307
29.1" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyId
entity>
<file name="MFC90CHS.DLL" hashalg="SHA1" hash="da22f3d12d7185f07d6821cfa6fa6
ed0353555ef"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:ds
ig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorit
hm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:T
ransforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1">
</dsig:DigestMethod><dsig:DigestValue>k5u9+uC+D6DMEZ+/HJw6zjSSkdk=</dsig:DigestV
alue></asmv2:hash></file> <file name="MFC90CHT.DLL" hashalg="SHA1" hash="ecc16be
a3970b6ad2103346c4331394e3ca301c6"><asmv2:hash xmlns:asmv2="urn:schemas-microsof
t-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><
dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></d
sig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/
2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>deXbFEeqL8wJNBdFQrji
ZTmStYE=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90DEU.DLL" hashal
g="SHA1" hash="a84f760040aa2a6986464eb53956dae27b44df25"><asmv2:hash xmlns:asmv2
="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsi
g#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTr
ansforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorit
hm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValu
e>XDRdz44H1ZGEtvutWQa9SY5xVWo=</dsig:DigestValue></asmv2:hash></file> <file name
="MFC90ENU.DLL" hashalg="SHA1" hash="8bd58097494ac346a62a039371ad12a8a7f545dd"><
asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www
.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schema
s-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsi
g:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestM
ethod><dsig:DigestValue>h2gbiWbNWzE5mo0GJLs5NeOkQqE=</dsig:DigestValue></asmv2:h
ash></file> <file name="MFC90ESN.DLL" hashalg="SHA1" hash="b7b24654d6496828feef9
57484ba5dcc21ca98a4"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform
Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform>
</dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsi
g#sha1"></dsig:DigestMethod><dsig:DigestValue>iwF1OkctskMGftSdz2Hsbqa/G3A=</dsig
:DigestValue></asmv2:hash></file> <file name="MFC90ESP.DLL" hashalg="SHA1" hash=
"7ae0eb13691d9e77edcaa90ecdb3d951470b1b7a"><asmv2:hash xmlns:asmv2="urn:schemas-
microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Tran
sforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Ident
ity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www
.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>eP7muexTkimu
rn3RTCCHtNgZNb0=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90FRA.DLL
" hashalg="SHA1" hash="be219813ec29dd6e87ace7a7c577774ed32f511c"><asmv2:hash xml
ns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/0
9/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-co
m:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:Di
gestValue>PZktC+VvgLIvohYoNCMkSkkNjXw=</dsig:DigestValue></asmv2:hash></file> <f
ile name="MFC90ITA.DLL" hashalg="SHA1" hash="c4a9dd6042dafe1ff481c3c5aa59f691640
350ca"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="ht
tp://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="ur
n:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transfo
rms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig
:DigestMethod><dsig:DigestValue>QsK0eouIonj5LUmMQUccpauTvU0=</dsig:DigestValue><
/asmv2:hash></file> <file name="MFC90JPN.DLL" hashalg="SHA1" hash="c809b467141fc
6f75e6d4ed690050920e1d2e40b"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:
asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:Transforms><dsig:T
ransform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Tr
ansform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/0
9/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>Ph1wwGnDEJhUNkC/3hVGCMgJ/a
w=</dsig:DigestValue></asmv2:hash></file> <file name="MFC90KOR.DLL" hashalg="SHA
1" hash="e0d0ac962eb1d6fcb884a0caf4f4c679d9a39416"><asmv2:hash xmlns:asmv2="urn:
schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><d
sig:Transforms><dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransfor
ms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="ht
tp://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>d6lo
eglZGMPrx19kcI65qamuWv8=</dsig:DigestValue></asmv2:hash></file> <file name="MFC9
0RUS.DLL" hashalg="SHA1" hash="b4198bbec81a3c2210429a1704ceefcaaf6ac4af"><asmv2:
hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.or
g/2000/09/xmldsig#"><dsig:Transforms><dsig:Transform Algorithm="urn:schemas-micr
osoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:Dige
stMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>
<dsig:DigestValue>7PqIF+eCXgbvLlROqD8CIcee9SY=</dsig:DigestValue></asmv2:hash></
file>
</assembly>
e´®JuÌ-ÈÒñÛ -,iB¤8ÍÓ¼jê
ÊzDõ:|E«
õ/µ~\‾
|ÈÂwúXTÇ¢$
,‾ÐÓN!;!ËðRë÷6òp֗m] ɺPêªhª ä yJÊ~¬ª öÝ .af5U ÃÒ¬l) ²~\(
Zu]
!ʲ óÛvç
uj*\ÊV7üZO
$ ? (ú®
¥ «m*ìsGã±-á
xZÌç¬1í
Ý ô¿®»\1µ
ç l¹j¸Ü
mÏàãy6ëp¢/àÕz
¸ _X¸®eEF\!òFëéÇJ
î ÜEÚÉê/¤=¼æÍXcåÉg¢f-
½ÖÒ àDQq!3í"VW×ÇO7¸(}ÎzúAéºSס«àñ 
¡zTã µ¡gðÓ *å wúv¸§:ú
Wß_ÈÒ°¾þv,úü û á?¨u¾ ¿ Eø}ý°» !ý>E ÖÒ uu³u=?=QPb¬  ¦ mqÁ Ϥ3z3Öì ëõ<
7p!}| ÿ´óIëçº.¤K#,æ³Öóåz ¬ ?jÑ Oî Ã^ÌWYO‾ÖÈB¾Ê 2ì—ë4Õ?a öök°Ë gù EOÊô>¸µÆ L ô_c>ý ÖËË3e²n2
 h)^
endstream
305
endobj
0 obj<</Subtype/Image/Length 37/BitsPerComponent 8/ColorSpace 516 0 R/Width
12/Height 1/Type/XObject>>stream
ÿÿþÿÿþÿÿþþþþþþþþþþþþþþþþþþþþþþþþþþþþ
endstream
306
endobj
0 obj<</Subtype/Image/Length 59/Filter/FlateDecode/ImageMask true/BitsPerCom
ponent 1/Width 125/Height 661/Type/XObject>>stream
H ìÇ1
°:Á¿ :ûÎ,0÷.Ù ¼u] »»»»»»»»»»»»»»»»»»»û¶çcì|.
endstream
307
endobj
0 obj<</Subtype/Image/Length 1819/Filter/FlateDecode/BitsPerComponent 8/Colo
rSpace 516 0 R/Mask 306 0 R/Width 125/Height 661/Type/XObject>>stream
H ìÐÉ® á«E]¸aÉB6,T¨ " Jºë Þ KÔ%j
 R
(£ 3Î3
(8 c°ù±§=²4ÿ»8Ï ï¾¼'O ùøGo± iÞ ÏoµMöÇ Ùæd ýèl²?xó[/ÙG^Ûöá—\¼û?ô?»éµ »x|óÁ>p~÷]¼vöÂÞ ù¡Ý{Ã¥{
=@.Ø -ØÒ>@ËS ÛÇ@@ðÍ« ;@ ÊS ó@@é >é ;@ ÊS ó@@é >é ; @:m ÓA@õI ôIO:@:m ÓA@õI ôIO:@{®GáJA@ F¾y
?@+ øæ <@ÍÌÌÌÌ
?@£
<@¢²ÃÔå
o^?@ä8
@£ ã8^;@Çq
o^ ÇqL?@ä8 ã8^;@ÇqÇqL?@êrû
¥:@ %¿Xò{?@êrû
¥:@ %¿Xò{?@,ùÅ _,:@5ñ¬h$ ?@,ùÅ _,:@5ñ¬h$ ?@S Û´9@®Gáz ?@S Û´9@®Gáz ?@à WÏ:9@ übÉ/ ?@æö*»@@Ë
×C@@d¨ì0ui=@¤p=
×C@@d¨ì0ui=@å
l@@;L]n ð5@ %¿Xòs@@;L]n
l@@¾y5ñ¬h6@tÚ@§K~±<@@ ©Ëíâ=@
ð5@ðÍ«%¿Xòs@@
9 @ ºÜþ-ØÃ?@
-x5@kâYÑHh@@
 |Ã8@Ï F¾@@-Ø |-x5@kâYÑHh@@wwwwwç4@
Ã8@Ï F¾@@°[°K8@#ß¼ @ @°[°K8@#ß¼ @ @L]n
×£p=Z@@wwwwwç4@
×£p=Z@@
¦. 4@ß¼ xVD@@é
xVD@@ >é 4 @QÙaêr@@é >é 4@QÙaêr@@ ÊS ë3@n ¡²Ã?@ ÊS ë3@n ¡²Ã?@ìQ¸ 4@{®GáJ?@ìQ¸ 4@
)@ZÑHÀ7g@@ Ûd¨
)@ZÑHÀ7g@@
t:&@
¦.‾@@V4
.‾@@Ú@§ðÍë$@þA
Ï F(@è´ÊÓN{@@
@@V4ðÏÍë$@þA
F(@è´ ÊN{@@
Ó@@¼»»»»[$@ìQ¸
ëQ¸'@7Ði @@
+A@¼»»»»[$@ìQ¸
ëQ¸'@7Ði @@Ú@§
+A@*;L]N%@í0u¹ýQA@*;L]N%@í0u¹ý
× $@ ã8 ãxB@¤p=
× $@ ã8 ãxB@<+ øf#@øæÕijªB@<+ øf#@øæÕijªB@lÁlÁv"@÷*; B@lÁlÁv"@÷*; B@2Tv :!@î2TvxB@2Tv :!@
×£p½@½ xV4jB@=
×£p½@½ xV4jB@ 6ÐiÝ@ 6ÐiUB@ 6ÐiÝ@ 6ÐiUB@é >é þ@e ©ËígB@é >é þ@e ©ËígB@è´ N@±äK~qB@è´ N@±äK~q
@rÇqgB@ZÑHÀ7‾
@r
<B@
t²A@!Ce
t²A@X
<B@æö
ÇqlÁgB@
Ïl*ÁÒ?G
;ð?tÚ@§
F©Ë
À|Ú@§
óê@À¾2¹ýA
y5
TvB@lÊ^B@
Á
A@!Ce
lÁÒ?G
|óê@©Ë
¾¹ýA
y5À2BTv
@Ê^B@
¡²ÃÔåÆ¿Æ
A@¶`
o^M<+
¶` Àq=
@7Ði NB@¡²ÃÔåÆ¿Æ
_,ùåA@ o^M<+@7Ði
_,ùåA@ÍÌÌÌÌÌä¿
NB@åK~±d@J ôIo^M<ÛA@ÍÌÌÌÌÌä¿
LB@åK~±d@J ôI o^M<ÛA@
LB@0 üb
×£ A@¶`¶` Àq=
tÚ
×£ A@«ªªªªª
À.Ø -ØJA@×£p=
-ØJA@Ú@§ ÀΫ gE A@«ªªªªªÀΫ gE A@ ôI ô ÀÑHÀ7‾¦A@ ôI ô ÀÑHÀ7‾¦A@*;L]nÀ*;LõA@*;L]nÀ*;LõA@þA Ê
ÀÑHÀ7‾A@×£p=
ÀÑHÀ7‾A@ÈPÙaêòÀÒ'}Ò'å@@ÈPÙaêòÀÒ'}Ò'å@@®GázÔÀÏ F¾É@@®GázÔÀÏ F¾É@@ ÊS [ À o^M´@@ ÊS [ À o^M
×£p="À<+ øV@@=
T<@X
×£p="À<+
T<@
#À±äÏ_,ùÅò&ÀtÚ@§
K~á=@
~á=@tÚ@§
Fâ'À+Q$À/—?ÈPi=@ øV@@}Ò'}Ò
øæ%<@X QÏ$À/—?ÈPi=@Ìí2TV%ÀÖij¢
Fâ'À+
"ÀyV4ðøæ%<@
@@}Ò'}Ò©Ëí
"ÀyV4
)ÀËSð<@Ìí2TV%ÀÖij¢
ðÛÿ;@
@@ ¡²ÃÔE#ÀÔ
©Ëí)ÀËS:m Ã?@
ð<@L]n¡²ÃÔE#ÀÔ
Ûÿ;@ÙaêrûÃ)Àµ
& ÀðÍ«:m Ã?@Çq
NgÅ<@L]n
èô;@}Ò'}Òg/À\
Çq&#ÀE#
ÀðÍ«ß¼J?
gÅ<
Âõ(
×£p=J7@ÑHÀ7‾0À
×£p=J7@Ø -Ø M0ÀÃõ(\ Ò6@Ø -Ø M0ÀÃõ(\ Ò6@a¶`¦0Àj 6ÐI6@a¶`¦0Àj 6ÐI6@*;L]nï0Àáz®Gá5@*;L]nï0Àáz®
¦0Àêrû
¥1@
¦0Àêrû
tÚà)@
¥1@+
tÚà)@òÛd%¿XÂ0ÀA§
¨,0À7Ði
øæ50ÀÇqÇq,1@+
6)@ Ûd¨,0À7Ði
øæ50ÀÇq6)@Çq
Çq,1@éÇq /À*;L]nÿ'@Çq
>é n0ÀÔ:m ³0@é
Çq /À*;L]nÿ'@;L]n
>é n0ÀÔ:m ³0@î2Tv
Ð.À¹ýA
0ÀE#Ê
ß¼:0@î2Tv
'@;L]n Ð.À¹ýA
0ÀE#ßʼ
×£p&@a¶`6.À=
×£p&@ñ¬h$à;-À %¿Xò+%@ñ¬h$à;-À %¿Xò+%@"""""",Àd¨ì0u9$@"""""",Àd¨ì0u9$@ËS Û?+Àu¹ýA J#@ËS Û?+À
%ÀhE#ß¼@ Ûd¨
%ÀhE#
¦.$ÀðÍ«
ß¼@ g @ #À&¿Xò ¥@#À&¿Xò ¥@q=
×£Ð!À 6ÐiÃ@q=
×£Ð!À
Àÿ Ce é6ÐiÃ
@1u¹ýA
@K~±äÀÿ
K!Àïîîîî.
Ce é@kâYÑHÀ
@K~±ä
À(}Ò'}
K!Àïîîîî.
@ kâYÑHÀ
@âYÑHÀW
À(}Ò'}
ÀÏ @F>Ï@âYÑHÀW
F¾ùÀâYÑHÀ7
ÀÏ @F>Ï@ÍÌÌÌÌÌ
F¾ùÀâYÑHÀ7
ÀV4ð@Ík
kâYÑHÀ
@ÍÌÌÌÌÌ
À ºÜþ
ÀV4ðÍk
Ã@@k
@ ¡²ÃÔåÒ?êrû
@bêrû
ð?u¹ýA @bêrû
ð?u¹ýA @\ Âõ(\û?33333ó@\ Âõ(\û?33333ó@*;L]n@ùÅ _,9@*;L]n@ùÅ _,9@±äK~1@m Ó:m@±äK~1@m Ó:m@ö(
@«ªªªªª@:m Óº
@«ªªªªª@Ò'}Ò'=@û
¦@Ò'}Ò'=@û
¦@´¢ o@ d¨ì05@´¢ o@ d¨ì05@XÏ F@V4ðÍk@XÏ F@V4ðÍk@áz®Gá@*;L]@áz®Gá@*;L]@ ¡²ÃÔå@4ðÍ« @ ¡²ÃÔå@
W@É/ übÉ@×£p=
W@h$à ×@áz®Gá@h$à ×@áz®Gá@*;L]n@ Âõ(\O@*;L]n@ Âõ(\O@¦.—?ÈP@UUUUU@¦.—?ÈP@UUUUU@¸ ëQ @¿Xò
#@Ùaêrû@,ùÅ _
"@
ô
#@Ùaêrû
)@À]n
Çq
|ójâò¿ùÅ
ójâò¿Ce
Ç1À¡r&@'
@ìQ¸
yV4
¶`ð¶k)@8‾&
`k#@'
_,y"@
©Ë
üÀÕåöÇMjüqÀÇ@'@cÉ/
¶`¶`k#@'
qö¿É/
ìQ¸ k)@8‾&
üâübi#@~±ä
ÀÕåö
 üMj@'@cÉ/
ìQ¸
À 6Ði
K~Àë#@ïîîîîn
æö
½üâ
)@ *[$@
À1u¹ýAæ'@
xV4è´@0ìQ¸
ÀN6Ði
Àæöë#@ïîîîîn
*)@
½ëQ¸
[$@ÅxV4
ÀèçÕij¢
´ @0NÀ>é
hE#
%¿XòK%@@ÈPÙaj
(@[°
ß>©#@
*@À[hE#
°©Ëí²
À¬ß*gE#
@@À2Tv
À>é
*%¿XòK%@@ÈPÙaj
@"""""b
>©#@
º *@ÄÔåö
©Ëí²
ÀÃõ(\
y@ ÛÀ2Tv
ÀdÇq
¨'@
u$À±äK~ñ*@êrû
u$ÀS Ûd+@®Gáz.%ÀS Ûd+@®Gáz.%Àò %¿X²+@ &Àò %¿X²+@ &À$à W +@ Âõ(\'À$à W +@ Âõ(\'À[°[p+@áz®G(À
2À¾y5ñ¬H(@×£p=
2À½ xV4)@*;L]n3À½ xV4)@*;L]n3À@ÈPÙa )@î2Tv 3À@ÈPÙa )@î2Tv 3Àų¢ *@[°[4Àų¢ *@[°[4ÀøæÕij
=À ¡²ÃÄ0@2Tv º
=ÀåK~±ô0@@ÈPÙaj=ÀåK~±ô0@@ÈPÙaj=À:m Ó1@½ xV4â=À:m Ó1@½ xV4â=À H1@æö*[>À H1@æö*[>ÀZÑH
AÀî2Tvx2@×£p=
AÀïîîîî3@ÇqÇq4AÀïîîîî3@ÇqÇq4AÀ:m Ó 3@ß¼ x^AÀ:m Ó 3@ß¼ x^AÀ ¡²ÃT4@33333KAÀ ¡²ÃT4@33333KAÀ¶
/AÀÄÔåöy5@×£p=
/AÀ¦.—?È
tÚAÀæö
tÚAÀÈPÙaêâ6@A§
AÀæö*[7@À7‾&
AÀΫ gEÓ7@p^M<+
*[7@À7‾&
6@é >éAÀΫ
AÀ¦.—?È
gEÓ7@p^M<+
6@é >éAAÀ ÀÈPÙaêâ6@A§
ðÍ« g8@õI ôIAÀðÍ« g8@õI ôIAÀyV4ðÝ8@<+ øAÀyV4ðÝ8@<+ øAÀ
tÚð<À¤p=
×Ó?@A§
tÚð<À ëQ¸5@@B
×Ó?@A§
tÚà5ÀÑHÀ7‾
tÚà5À1u¹ýA¦A@A§
A@ÿÊCe
Sw<À95ÀÑHÀ7‾
ëQ¸5@@BA@ÿ
ÊSw<ÀÕåö
Ce 95À2Tv
J@@ïîîîîþ;ÀÕåö
º A@ xV4ðJ4À2Tv
@@ïîîîîþ;À
º A@ xV4
©Ëíb@@÷
ð4À33333[A@î2Tvx4À33333[A@î
*;L;À ©Ëíb@@÷*;L;ÀÇqÇq
ý'À 6ÐiED@sû
ý'Àv ºÜþ8D@¹ýA Ê'Àv ºÜþ8D@¹ýA Ê'À¦.—?HD@*;L&À¦.—?HD@
*;L&ÀøæÕijJD@,ùÅ _,%Àêrû
=B@7Ði 2À -Ø - B@
¦þ1À -Ø - B@
¦þ1À‾&  ¼B@³ÃÔåö 1À‾&  ¼B@³ÃÔåö 1Àq=
×£øB@Ï F¾Y1Àq=
×£øB@Ï F¾Y1À øæÕ4C@V4ðÍ+1À øæÕ4C@V4ðÍ+1À/—?ÈPqC@{®Gá
1À/—?ÈPqC@{®Gá
1Àß¼ xV´C@z5ñ¬h´0Àß¼ xV´C@z5ñ¬h´0À ¡²ÃÔýC@QÙaêr;0À ¡²ÃÔýC@QÙaêr;0ÀðÍ« 'D@Ýþ Ce /ÀðÍ« 'D@Ýþ
À ÊS óC@0 übÉ/
ÀÆ _,ùD@¢²ÃÔåvÀÆ _,ùD@¢²ÃÔåvÀhE#ß,D@]n ¡²ÀhE#ß,D@]n ¡²ÀDDDDDtD@q=
×£ðÀDDDDDtD@q=
×£ðÀ¢²ÃÔå D@S Ûdÿ¿¢²ÃÔå D@S Ûdÿ¿@ÈPÙaÚD@Ùaêrû ÷¿@ÈPÙaÚD@Ùaêrû ÷¿v ºÜþðD@ÍÌÌÌÌÌò¿v ºÜþðD@ÍÌÌ
@^M<+qG@2Tv º\
@ F¾yG@5ñ¬h$`@ F¾yG@5ñ¬h$`@L]n éG@ÍÌÌÌÌL@L]n éG@ÍÌÌÌÌL@tÚ@§H@ øæÕÄ@tÚ@§H@ øæÕ
¦@«ªªªªJH@û
¦@±äK~qH@ójâYÑ @±äK~qH@ójâYÑ @ H@ÁlÁl@ H@ÁlÁl@¦.—?È H@$à WO@¦.—?È H@$à WO@^M<+ÉH
×£p=j!@¶`¶0I@
tÚ@&@?é
tÚ`%@Ði
tÚØC@ùÅ
tÚ`%@
´0@r
×£p=j!@ÈPÙaêRI@¾y5ñ¬h"@ÈPÙaêRI@¾y5ñ¬h"@G
tÚpG@
tÚ@&@Çqð¶Í«
`ÛE@UUUUUu)@à
d¶¨4G@A§
èG@A§
>éÇ%@
6øF@¬
_,Ç%@A§
G@'ÛgE#¡%@Ði
.@A§
.@Pú¤Oú¬C@sû
d¨4G@A§
 &@?é
WÏRE@u¹ýA
>é6øF@¬
G@'  **@à
&@A§ WÏRE@u¹ýA
gE#¡%@¿Xò %¾y5iI@!Ce
F@Á**@~±ä
lÁ,%@¿Xò
K©K#@G
E@:m Ó
% F@Á
¾y5iI@!Ce
:l+@~±ä
Á,%@KEºÜþ
@:m Ó
©K#@
CF@:ã8+@F¾ãpI@´¢
yÕ$@ÙD@
ºÜþo>$@
¦ CF@
.—ß+@
ã8
F¾yÕ
ãp
½/@Pú¤Oú¬C@sû
½/@ÈPÙaê C@¨ì0u¹=0@e ©ËíoB@]n ¡â5@¾y5ñ B@¾y5ñ¬h5@¾y5ñ B@¾y5ñ¬h5@,ùÅ _ B@[°[ð4@,ùÅ _ B@[°[
×£Ð2@ Ûd¨¼B@q=
×£Ð2@#ß¼ øB@¼»»»» 2@#ß¼ øB@¼»»»» 2@UUUUUEC@Ï F2@~±äK @@h$à 7?@Ìí2T @@ÄÔåö9?@é >é >&@À7‾& U
Ä0ÀÃõ(\
¦+À ©Ëí¢<@j
Z@@é >é
6Ði/À
¾8Àfffff¦-@¢²ÃÔåV8Àfffff¦-@¢²ÃÔåV8Àfffff¦-@¾y5ñ¬È7Àêrû
WÏ Æ;@"""""¢/À0 übÉÿ;@"""""¢/À0 übÉÿ;@¶`¶p0Àè´ Nx<@¶`¶p0Àè´ Nx<@ä8 ã81À&
.@¾y5ñ¬È7Àêrû
tÚ@77À
.@§ übÉ/ .@¤p=
×Ã6À¬ gE#0@û
æ6Àö(\ µ0@sû
tÚ@g/À¥Oú¤O
-8À F¾y 0@tÚ@§-8À*;L]n
&@ ëQ¸Å)Àµ Nè0@~±ä
t@ ëQ¸
K9ÅÀÍÌÌÌÌü0@
)Àò %¿X2@[°
-Ø[°
-(9À2Tv
@ZÑHÀ7‾Î?
º,1@ä8
gE#ß@ã8Î/À
ZÑHÀ7‾Î?.Ø
©Ëí'@§-ØÂ@*;L]ú?=
×£p}@ | ójú? ¦.—¿!@ o^M<
@É/

@à -Ø
WÏübj'@
- E@O
!@ýbÉ/
ëQ¸è´µ0À'ü 2ÀTv |z'@µ
CF@Öij¢
Nè´0Àÿ
(À!Ce
Ce ©CF@À7‾&
±E@8‾&  µ(À 6Ði F@5ñ¬h$à)ÀUUUUU F@áz®Gá)ÀÍÌÌÌÌ4G@Ìí2TÖ"À
×£p=Ê"À—?ÈPÙ @@G¾y5ñÀ5ñ¬h$ @@QÙaêrûÀtÚ@§åC@ú¤Oú¤À ã8 ãèC@è´ N¨Àµ Nè¬C@ùÅ _,9Àm Ó: C@à WÏ Àm
tÚ@G5À¤p=
×ËE@§
tÚ@G5À}Ò'}ÒF@ ëQ¸®4À}Ò'}ÒF@ ëQ¸®4Àz5ñ¬h<F@0 übÉÿ3Àz5ñ¬h<F@0 übÉÿ3À¾y5ñ¬@F@wwwww 3À¾y5ñ¬@F@w
×ËE@§
uH@ËS Ûß)Àsû
uH@ËS Ûß)À½ xV4zH@e ©Ëíï(À½ xV4zH@e ©Ëíï(À~±äK H@
¦î'ÀÉ/ übI@¦.—? /ÀÏ FîH@hE#ß<0ÀÏ FîH@hE#ß<0ÀXÏ FÚH@ Ó:mà0ÀXÏ FÚH@ Ó:mà0ÀS ÛdÀH@a¶`¦1ÀS ÛdÀ
×£p=J1ÀçÕij¢9F@ªËí2´0ÀçÕij¢9F@ªËí2´0Àè´
¦. .ÀÒ'}Ò'G@G
.ÀR¸ ë G@ ¾y5±-À ã8 ã¨H@ÞÝÝÝÝý'Àæö*ËH@þA
N F@®Gáz$0Àè´
Êó(Àæö*ËH@þA
N F@®Ê
Gáz$0À
ó(ÀIÀ7‾&îH@øæÕijâ)ÀIÀ7‾&îH@øæÕÄ
Ûd¨¼F@¹ýA Êî/À Ûd¨¼F@¹ýA
×Ã+À2Tv I@¤p=
×Ã+ÀcÉ/ üI@ d¨ì0µ,ÀcÉ/ üI@ d¨ì0µ,Àè´ N#I@Æ _,ù¥-Àè´ N#I@Æ _,ù¥-ÀËS Û?I@M<+ .ÀËS Û?I@M
Ä7ÀÍÌÌÌ̬G@Õåö
Ä7À[°
I@À7‾&
[°ÍG@tÚ@§
õ/Àu¹ýAZ8ÀÍÌÌÌ̬G@Õåö
*H@Yò %¿h5À d¨ì0
Z8À°[H°
@R¸
G@aëá5À
¶`¶8À°
d¨ì0
[°HG@a
@R¸¶ëá5ÀUUUUUýG@
`¶8À¶`¶`SG@hE#
2Tvß,9À¶`
Z6ÀUUUUUýG@
¶`SG@hE#2ßTv
,9À5ñ¬h$øF@
Z6ÀG¾y5éG
%@@IÀ7‾&®6@sû
â¿lÁ
%@@IÀ7‾&®6@Öij¢
lÁv @—?ÈPÙaº?
@tÚ@§ | ?@
ójây|ójâY6@Öij¢
@—?ÈPÙaº?| ?@
ójây|ójâY6@+
@ ã8 ã8Æ?bêrû
øæ%@@°
l!@ÞÝÝÝÝ
[° 6@+@ójâYÑH&@@ÈPÙaª
øæ%@@°[° 6@í0u¹ýa@@´¢
@8‾& -%@@ÈPÙaª
o7@í
@8
@\ Âõ(<&@ o^M<K.@ øæÕä)@ú¤Oú¤Ï,@  |S)@ú¤Oú¤Ï,@  |S)@ö(\  +@ ºÜþ ã)@ö(\  +@ ºÜþ ã)@
—.@i$à W ÀÞÝÝÝÝ}>@u¹ýA Êò?lÁlá>@ Ûd¨ìý?lÁlá>@ Ûd¨ìý?Ìí2T¶>@ øæÕÄò?2Tv = @Ãõ(\ ÀB ÊS§=@9
×£°À;L]n ð=@q=
×£°
¦.ÀG>@q=
¾y5ñ=@»Üþ CåÀG¾y5ñ=@»Üþ CåÀæö*k>@¶`¶`KÀæö*k>@¶`¶`KÀ
×£0
¦.À>@q=
À×£0
´9@ß¼
tª>ÀtÚ@§
ËS¡²ÃD>@
ÀXÛï=@Ϋ
ÏxV´>À=
Fâ>@Ò'}Ò'ý
tÚ@§
gEcÀËSÀÛï=@Ϋ
XÏ Fâ>@Ò'}Ò'ý
gEcÀ¸ ëQx=@
À ¡²ÃD>@
K~±äÀt¸
Ú@§ëQx=@K~±äÀ½ xV4B=@ WÏ À½ xV4B=@ WÏ ÀÖij¢ @=@øæ
1ÀÌí2T
×£p
1À¹ýA ;@ Ê| ;@|ójâYq1ÀÌí2T
<óÚ1Àfffff
@¨ì0u¹ ;@ÍÌÌÌÌ,1Àfffff
;@|ójâYq1ÀØ;@ÍÌÌÌÌ,1À¶`
-Ø ;@¢²ÃÔåæ1À±ä¶`+<@K~á>@
¡²Ã´0À¶`
6ÐiC/À°
¶`+<@
[°[?@hE#
¡²Ã´0ÀM<+
ß</À°[°[?@hE#
<@Ø ß</Ài$à
-Ø 0À
¦.?@1u¹ýA /À
A@X
¦.?@1u¹ýA
Ï F(À F¾/À
y Al@çÕij¢ñ(À
Álá>@2Tv º\/Àä8A@çÕij¢ñ(Àÿ
ã8 A@áz®Gq0ÀlÁ
Ce )A@Ϋ
lÁ A@&¿Xò
gEã)Àÿ0À|ójâY
Ce )A@ΫA@æögEã)À
*;$À ©Ëí*A@
xV4A@Ce®GázÔ*À
©Ë-%À ©Ëí*A@
xV4A@C
×Ã+À{®GáJA@¤p=
×Ã+Àé >é A@êrû
µ,Àé >é A@êrû
µ,À
'ÀΫ
'À |:óRA@
m Ó
gE{A@Ce
¾A@"""""Â+À
y5ñÌ%À
©Ë |óRA@
:m Ó¾y5ñÌ%À
A@"""""Â+Àa
 |CA@\¶`Âõ(<$À
nA@ ©ËíÒ*Àa
 |CA@\
¶`nÂõ(<$À
A@ ©ËíÒ*À Ó:m`A@Öij¢ à)À Ó:m`A@Öij¢ à)À4ð
×£p=ú@@ Ûd¨L#ÀýbÉ/ ¼?@»Üþ Ceú¿Ãõ(\ Ò?@É/ übÉï¿Ãõ(\ Ò?@É/ übÉï¿p^M<+ú?@ùÅ _,ùÍ¿p^M<+ú?@ùÅ _,
ù?.Ø -Ø"@@¶`¶`ú? B @Ϋ gEã@çÕij¢B@Ìí2Tö@çÕij¢B@Ìí2Tö@ÇqÇB@0 übÉ/
@ÇqÇB@0 übÉ/
@¤p=
×CB@ F¾y5@¤p=
@@‾&
×CB@
¦.B@ðFÍ«
¾y5ç@ [°
<B@[°
<B@øæÕijÒ?@
@ gE#
 | KB@øæÕijÒ?@
ïA@¬ gE#@ gE#
 |ïKB@j
A@¬ 6ÐY?@7Ði
gE#@ú¤Oú¤fB@j
B@¶`¶`6ÐY?@7Ði
@ î2Tv B@[°
fB@—?ÈPÙá>@
[°Å'@' *;LmB@—?ÈPÙá>@
¼B@Ùaêrû£'@è´*;LmB@
NSA@
D@í0u¹ý =@Oè´ D@í0u¹ý =@Oè´ D@´¢ o^>@¹ýA Ê D@´¢ o^>@¹ýA Ê D@Ãõ(\ â>@—?ÈPÙ D@Ãõ(\ â>@—?È
×£p=Z@@ ¦.—wA@
×£p=Z@@¶`¶hA@yV4ð@@¶`¶hA@yV4ð@@a¶`NA@9 ã8 Ã?@a¶`NA@9 ã8 Ã?@ÞÝÝÝÝA@K~±äK?@ÞÝÝÝÝA@K~±äK?@""""
¦;@Ï F¾éA@
¦;@UUUUUB@+ øæ :@UUUUUB@+ øæ :@ øæÕÄCB@wwwww:@ øæÕÄCB@wwwww:@ xV4 B@=
×£p}9@ xV4 B@=
×£p}9@áz®G B@2Tv º,9@áz®G B@2Tv º,9@ß¼ xV B@Ô:m ³8@ß¼ xV B@Ô:m ³8@@ÈPÙaâB@è´ N;8@@ÈPÙaâB@è´
×£pí1@u¹ýA ÚD@=
×£pí1@ gE#E@ýbÉ/ 1@ gE#E@ýbÉ/ 1@×£p=
/E@¾y5ñ,1@×£p=
/E@¾y5ñ,1@«ªªªªZE@ªËí2´0@«ªªªªZE@ªËí2´0@Öij¢ hE@QÙaêr;0@Öij¢ hE@QÙaêr;0@`,ùÅ _E@ ëQ¸ /@`,ùÅ
})@9 ã8 ËE@sû
})@³ÃÔåöF@ übÉ/6)@³ÃÔåöF@ übÉ/6)@ÁlÁDF@J ôI )@ÁlÁDF@J ôI )@Ø -Ø F@¤p=
×ã)@Ø -Ø F@¤p=
¤J@êrû
tÚ@G+@+
tÚ@G+@ÿ
×ã)@®Gáz¼F@!Ce
øæG@§
Ce éG@ ¦©K*@
 .—ß+@ÿ
®Gáz¼F@!Ce
Ce éG@ ¦©K*@`,ùÅ
 .—ß+@ä8 ã8&H@ýbÉ/
G @  | Ó*@`,ùÅ
ü+@ä8
G@ ã8&H@ýbÉ/
 |Ó*@)\ ÂõpG@³ÃÔåö
ü+@¦.—? H@µ
+@)\NèÂõpG@³ÃÔåö
´,@¦.—? H@µ
+@+
¤J@êrû
µ0@tÚ@§
µ0@;L]n øJ@Ház®ç0@;L]n øJ@Ház®ç0@Pú¤Oú4K@ÄÔåö 1@Pú¤Oú4K@ÄÔåö 1@ÿ Ce qK@d¨ì0uù0@ÿ Ce qK@d
¦1@*;L]n§K@û
¦1@ÇqÇéK@B ÊSç1@ÇqÇéK@B ÊSç1@®GázDL@é >é 2 @®GázDL@é >é 2@½ xV4bL@i$à W³2@½ xV4bL@i$à W³2@*
×£p=ÚL@ >é > 3@
tÚ@w4@
tÚ@w4@ffffffM@
×£p=ÚL@F¾>éyM>@§3@5ñ¬h$èL@
lÁlñ4@ffffffM@
4@5ñ¬h$èL@
lÁlñ4@4@ÊSF¾£M@j
yM@§ 6Ði5@ ÊS £M@j 6Ði5@è´ NËM@R¸ ëá5@è´ NËM@R¸ ëá5@
×£p L@@ÈPÙaê7@=
×£p L@@ÈPÙaê7@—?ÈPÙaL@êrû
U8@—?ÈPÙaL@êrû
U8@ÑHÀ7‾>L@&¿Xò µ8@ÑHÀ7‾>L@&¿Xò µ8@ ëQ¸.L@®Gáz.9@ ëQ¸.L@®Gáz.9@ F¾y%L@=
D@í0u¹ýñ9@sû
×£p 9@Ði 60A@ñ¬h$àÃA@/—?ÈPA@*;L]n A@/—?ÈPA@*;L]n A@XÏ FÚ@@J ôI |A@XÏ FÚ@@J ôI |A@L]n @@K~
D@¤p=
×c:@ÞÝÝÝÝ¥C@tÚ@§-:@°C@êrû
%:@Ø -Ø -C@Ï F.:@Yò %¿ÐB@Ï F.:@Yò %¿ÐB@ ¡²ÃÔ¥:@{®GáâB@ýbÉ/ ü:@¶`¶xB@ä8 ã8;@+ øæmB@ xV4<@
×»J@ªËí2T)@¦.—?ÈøJ@)\ ÂõH)@¦.—?ÈøJ@)\ ÂõH)@¤p=
tÚ(@@X
׳J@|ójâYñ(@1u¹ýA
tÚ@g=@hE#
tÚ@g=@e
¦..OC@
E@ïîîîîvC@
E@ïîîîîvC@E#
Ï_,ùÅRE@
FÒ>@$à
©Ëíÿ8@ÞÝÝÝÝí<@e
ßì8@§ W
Ûßd8@¶`
¨dC@
¼RE@2Tv
@@&¿Xò
¶`K?@|ójâY
©Ëíÿ8@ÞÝÝÝÝí<@kâYÑH
UC@|ójâÙ@@
º<C@Ce 9@"""""Ò>@|ójâY
©Ë%@@0 übÉ 9>@A§
@»Üþ
9@"""""Ò>@Ϋ
Cu<@kâYÑH9gEÃ8@M<+
@»Üþ Cu<@;L]nH>@Ϋ
9@ gE#gEÃ8@M<+
ÿ;@;L]n 9 @H>@g
 ;@Ði 69@û
;@ 9;@@xV4xV4
;@ 9@Ø9@Ø:@
¡²Ã -Ø9-Ø@ ¡²Ã :@ú¤Oú¤ÿ8@V4ðÍ:@ú¤Oú¤ÿ8@V4ðÍ:@`,ùÅ ÿ8@Ϋ gE£9@`,ùÅ ÿ8@Ϋ gE£9@*;L]nÿ8@¥
×£p-:@ ¦ .—ÿ5@=
×£p-:@ ¦ .—ÿ5@a¶`¦:@$à Wÿ5@a¶`¦:@$à Wÿ5@Oè´ ; @e ©Ëíÿ5@Oè´ ;@e ©Ëíÿ5@rÇq ;@`,ùÅ ÿ5@rÇq ;@`,ùÅ
×£p=z=@¿Xò %ÿ5@
×£p=z=@¿Xò
tÚ¦.×4@Çq
.×4@Ház
6@¥Oú¤Ob@@ Ó
@IÀ7‾&&@@A§Çqü4@
®w5@
%ÿ5@½ß:¼mx
6@¥Oú¤Ob@@ Ó
5xV4ò=@0
@ÇqÇqü4@übÉÿ5@½
ß¼:mx56@@ -Ø
xV4ò=@0
ëQ¸-X4@j
@@ú¤Oú¤ÿ5@
übÉÿ5@:m Ó
6Ði5@ -Ø
ëQ¸-X4@j
j>@Ði
@@ú¤Oú¤ÿ5@33333Û@@Ë
66@:m Ó
6Ði5@ ¾y5ñ
j>@Ði 6S6@í0u¹ýá>@Ë
Ûÿ5@33333Û@@Ë
S Ûÿ5@í0u
S Ûÿ5
4@`,ùÅ 5@¾y5ñ
4@`,ùÅ 5@wwwwwg3@ ©Ëíâ5@wwwwwg3@ ©Ëíâ5@ ÊS 3@B ÊS6@ ÊS 3@B ÊS6@´¢ on2@!Ce ©[6@´¢ on2@!Ce
¦n#@ | ójr:@
tZ$@\
´8@
¦n#@ |¡²ÃT
sÀÈPÙaêr8@
| ójr:@
Âõ( À?@¹ýA
?@Ú@§
tÚ@§
¦.—ÊN%@E#
#@
|sÀÈPÙaêr8@
Nèß´;¼ú?@¹ýA
@ ¦ .— #@
ÊN%@E#
øæÕij
Nè´;@Àßû¼ú?@—?ÈPÙA&@
øæÕ¤#@ WÏ;@@ @—?ÈPÙA&@
øæÕ¤#@ WÏ @;@@ÈPÙaÊ#@±ä
@R¸ ëñ&@.Ø -ØZ@@z5ñ¬h
K~<@@ÈPÙaÊ##
&8@ øæÕijÀû
&8@5ñ¬h$àÀÇqÇÁ7@5ñ¬h$àÀÇqÇÁ7@""""""À¦.—? 7@""""""À¦.—? 7@ÈPÙaêrÀ:m Ó:7@ÈPÙaêrÀ:m Ó:7@Ϋ gE
6@kâYÑHÀñ¿×£p=
6@{®Gázä¿ ¡²ÃD6@{®Gázä¿ ¡²ÃD6@ýbÉ/ ü²¿ Ó:mà5@ýbÉ/ ü²¿ Ó:mà5@ o^M<Ó?Ùaêrû£5@ o^M<Ó?Ùaêr
×£°Àî2Tvh=@q=
×£°Àî2Tvh=@À7‾& ÕÀ;L]n P=@À7‾& ÕÀ;L]n P=@*;L]n À[°[ð<@*;L]n À[°[ð<@¾y5ñL!ÀâYÑHÀ—<@¾y5ñlÀé
¥>@—?ÈPÙ¡Àêrû
¥>@Tv ºÜ~À 6Ðií>@Tv ºÜ~À 6Ðií>@m Ó:mÀ %¿XòK?@m Ó:mÀ %¿XòK?@33333³ À?é >éÃ?@33333³ À?é
@@ffffffù¿û
t¦7@.w.ÀõI
@lÁ
@
.W5@kâYÑH
1À¶l`Á¶õð4@ªËí2¤0À¢²ÃÔåV5@ªËí2¤0À¢²ÃÔåV5@Õåö
¿ôI
2Tv
(À!Ce
0@Z@@lÁ©»7@ Ó
0@»Üþ ClÁ-À
õ¿2¡²ÃÔ¥0@»Üþ
:Tv
m(Z@@wwwwwwù¿ZÑHÀ7
ÀªËí2D8@ Ó
C -À:m(¡²ÃÔ¥0@ß¼
ÀªËí2D8@ Ó
@@wwwwwwù¿ZÑHÀ7
*0À<+xV
:m(À!Ce
,À&¿Xò
øV5@Õåö
©»8@ Ó
@@DDDDDDú¿
0@ß¼ :*m
0À<+
(À!Ce
xV ,À&¿Xò
è´©»8@ Ó
NÓ@@DDDDDDú¿
øV5@Ház
0@ðÍ«
:m(®À3333339@ Ó
g/À7Ði
g¥+À
è´ N
NÓ@@
V5@H
è´!
½-@Ô:m Ó(Àsû
½-@cÉ/ üâ'ÀXÏ F¢-@  |ó&Àj 6ÐI/@{®Gá %À übÉ/ .@{®Gá %À übÉ/ .@è´ N$À'  ¼ .@è´ N$À'  ¼ .@åK~±$
¦îÀ ºÜþ /@
tÚ@g
¦îÀÀºÜþøæÕÄó4@
øæÕÄó4@§
/@Ï FþÀcÉ/
gE# Àü/6Ði
@Ï mFþ5@
ÀcÉ/
gE#üÀ/@ÿ
6ÐiCe
m5@UUUUUÕ
)ÀL]n À/ @ÿ_,ùÅâ5@UUUUUÕ
Ce )ÀL]n /À@ _,ùÅâ5@m Ó
6ÐiCÀ¬ gE#:/-
@À(}Ò'}¢6@m Ó
6ÐiCÀ¬ gE#/@1u
:-À
×£p=j/À+ øæµ*@
×£p=j/À+ øæµ*@±äK~10À?é >éS*@±äK~10À?é >éS*@Ýþ Ce§0À®GázT*@*;L].(À d¨ì0µ,@ | ójâ'Àáz®
Ý(@q/Àsû
tÚ@ç(@¿Xò
tÚ@ç(@
Ý(@¿XòWÏ%/0À§
%/0ˤ
¦0Àî2Tv¸(@ Ó :mà-À'  &@î2Tvø,Àe ©Ëí'@î2Tvø,Àe ©Ëí'@ ëQ¸¥+À
¦n'@ ëQ¸¥+À
¦n'@j 6ÐI+À|ójâYñ(@ xV4ð&ÀYò %¿x(@Ház® %À ¦ .—ÿ'@Ház® %À ¦.—ÿ'@ 6Ði$ÀCe ©ËM(@ 6Ði$ÀCe ©ËM(@
×£p&@ÇqÇñ À=
×£p
tÚ !@×£p=

&@ÏF¾FY¾YÀA§
ÀÌí2TÖ$@Ï F¾Y ÀÌí2TÖ$@‾&  D ÀV4ðÍK#@‾&  D ÀV4ðÍK#@À7‾& À d¨ì0uY"@À7‾& Àd¨ì0uY"@
7 À¶`¶`@×£p=
7 À¶`¶`@½ xV4R!ÀHáz®Ç@½ xV4R!ÀHáz®Ç@ùÅ _,¹"À?é >é@ùÅ _,¹"À?é >é@Oè´ .#À|ójâYÑ @Oè´ .#À|ójâY
×£%ÀÞÝÝÝÝ=!@q=
×£
tÚ&%À"""""
ÀÞÝÝÝÝ=!@ªËí2t%À2Tv
#@A§ >éó&À´¢ º\"@ªËí2t%À2Tv
#@?é oþ#@?é >éó&À´¢º\"@A§
oþ#@1u¹ýAæ'Àêrû
Õ#@1u¹ýAæ'Àêrû
Õ#@ %¿Xò+)Àu¹ýA J#@ %¿Xò+)Àu¹ýA J#@ xV4ð)À:m ÓZ"@ðÍ« gE%À Âõ(\@¥Oú¤OZ&À,ùÅ _,@¥Oú¤OZ&À,ùÅ _
×£¦.—
À«ªªªªJ#@É/
À#ß¼ X*@ %¿Xò
übIÀ*;L]Î$@ų¢ /Àä8 ã8.%@ų¢ /Àä8 ã8.%@Ìí2TöÀ\ Âõ(|$@Ìí2TöÀ\ Âõ(|$@?é >éÓÀ¾
À{®GáÚ*@ùÅ _,ùÑ?p^M<+ú-@è´ Nèè?e ©Ëíï-@è´ Nèè?e ©Ëíï-@ _,ùÅ ÷?lÁlÁ .@ _,ùÅ ÷?lÁlÁ .@XÏ F @¾
×.@#ß¼ ø@×£p=
×.@a¶`¶
@¾y5ñ
/@a¶`¶
@¾y5ñ
/@=
×£p=@ójâYÑ /@=
×£p=@ójâYÑ /@=
×£p=@¿Xò %?0@=
×£p=@¿Xò %?0@ÍÌÌÌÌÌ@ ¸0@ÍÌÌÌÌÌ@ ¸0@í0u¹ý@ gE#/1@í0u¹ý@ gE#/1@é >é þ@+ øæ¥1@é >é þ
@1u¹ýA3@]n ¡²
@1u¹ýA3@¿Xò %¿ @¦.—? 3@¿Xò %¿ @¦.—? 3@ÇqÇq@Öij¢ 4 @ÇqÇq@Öij¢ 4 @åK~±d@ÑHÀ7‾F4@åK~±d@ÑHÀ7‾F4
@ ºÜþ 33@ú¤Oú¤@è´ NK3@ú¤Oú¤@è´ NK3@Pú¤Oúä@ Nè´a3@Pú¤Oúä@ Nè´a3@rÇqÇ@ų¢ 3@rÇqÇ@ų¢ 3@(}
×£p=)@.Ø -Ø û?=
×£p=)@¬ gE# @2Tv º\(@¬ gE# @ 2Tv º\(@ >é >é@Õåö
'@ >é >é@Õåö
'@ ôI ôIû?âYÑHÀ×&@ ôI ôIû?âYÑHÀ×&@`,ùÅ _ð?*;L]n&@`,ùÅ _ð?*;L]n&@
×£p=
Ï?é >é & @
×£p=
Ï?é >é & @‾&  Ü*¿;L&@‾&  Ü ¿*;L&@‾&  ò¿õI ôIÿ%@‾&  ò ¿õI ôIÿ%@±äK~±ù¿ Ó:m&@±äK~±ù¿ Ó:m&@?é >é Àk
×£p=ì?)\ Âõh@ÿ Ce ©á?4ðÍ«I@ÿ Ce ©á?4ðÍ«I@ ºÜþ Cå?G¾y51@ ºÜþ Cå?G¾y51@ùÅ _,ùã?ú¤Oú¤@ùÅ _,ùã?
@æö*;ú?÷*;
@R¸ ëQú?áz®G!@R¸ ëQú?áz®G!@£ o^Mû?33333ó@£ o^Mû?33333ó@ ¦ .—?û?à WÏ
4
@tÚ@w4@S
tÚ@w4@?é
@ ïîîîîî
À7‾&
ëQ¸^@@ZÑHÀ7ï4@e
 tÚ@§
@ÛªËí2
dÈ/@§
>é /@~±ä
@‾& K©ËíO
@þ3@?é
ôI@Ùaêrû
ôi!@‾&
>é /@~±ä
5@e ©ËíO
 @{
Kþ3@®@GáZ"@‾&
Ùaêrû
WÏ f/@Æ
5@ð Í«
 _,ù
Ç@{
@3@
®èGáZ"@
´WÏNk5@
f/@ÆðÍ«_,ù
o^M<«
Ç @3@1u¹ýAF/@V4
è´ Nk5@8‾&  ð!@7Ði
Í3@1u¹ýAF/@V4
¦5@8‾&  ð!
@ä8 ã8N#@ o^M<«
@ä8
¦.—ã8N#@
@À7‾&
¦.— $@
@À7‾&
@é >é & $@
@|ójâÙ
@ß¼ |ójâÙ
xV´
@
×£p=j'@ß¼ xV´
@

@ö(\
×£p=j'@
@ÁlÂõ(@$à
Âõ(@
Á̦*@
.—?H
*@A§
¦.—?H
xV4
WOp@@<+
êrû øæ)@$à WO@<+ øæ)@R¸ ë @ übÉ/Ö*@R¸ ë @ übÉ/Ö*@«ªªªª*@}Ò'}Òg+@«ªªª
5*@ xV4p@êrû
5*@®GázT@i$à W³*@®GázT@i$à W³*@âYÑHÀ @ ¦.—_*@ Ûd¨ì@m Ó:M(@i$à W
@ÞÝÝÝÝý'@ øæÕÄS!@cÉ/ üâ)@ùÅ _,y"@ójâYѨ)@ùÅ _,y"@ójâYѨ)@³ÃÔåö #@}Ò'}Òç)@³ÃÔåö #@}Ò'}
×£p=ª*@e ©Ëí/'@
´(@DDDDDD-@IÀ7‾&þ'@DDDDDD-@IÀ7‾&þ'@ò
´(@0
×£p=ª*@
übÉÏ,@tÚ@§
ëQ¸(@9 ã8 C*@ ëQ¸(@9 ã8 C*@ú¤Oú¤)@
%¿XÒ,@¹ýA ÊÎ&@ò
H*@ú¤Oú¤)@
%¿XÒ,@¹ýAH*@ÊÎ&@
*@ðÍ«
¦.—+ @
+@sû
*@ðÍ« + @  | ó*@Ði 6
&@ ¦.— +@sû
)@{
&@À7‾&
®Gá:!@.Ø
Gá:!@Ø
+@ìQ¸
-Ø-Ø+%@À7‾&
(@ö(\ Âu
+ @ìQ¸
@.Ø -Ø
+%@0
(@ö(\
übÉÏ*@'
Âu @hE#
 <$@0
ß(@!Ce
übÉÏ*@'
©@hE# ß<$@¨ì0u¹ý)@?é
(@!Ce ©@J ôI >éó"@¨ì0u¹ý)@?é
'@ o^M<+@J ôI '@
>éó"@
o^
×£p=j6@¾y5ñì%@a¶`¶5@bêrû ,%@a¶`¶5@bêrû ,%@‾&  t5@ ÊS ;$@‾&  t5@ ÊS ;$@*;L]þ4@É/ übI#@*;L]þ4
!@L]n Á-@sû
!@p^M<+º,@sû
]"@p^M<+º,@sû
]"@u¹ýA ê+@£ o^M#@u¹ýA ê+@£ o^M#@ß¼ xVÔ,@¨ì0u¹ý#@ß¼ xVÔ,@¨ì0u¹ý#@ðÍ« Ç-@!Ce ©ë#@ðÍ« Ç-@!
×£ð5@ÿ Ce é@q=
×£ð5@ÿ Ce é@h$à w5@ _,ùÅ@h$à w5@ _,ùÅ@¿Xò %ÿ4@ Ûd¨¬@¿Xò %ÿ4@ Ûd¨¬@þA Ê 4@¤p=
×ã@þA Ê 4@¤p=
×ã@ñ¬h$à4@1u¹ýAÆ@ñ¬h$à4@1u¹ýAÆ@ WÏ 3@ªËí2 @ WÏ 3@ªËí2 @¨ì0u¹3@Öij¢ À@¨ì0u¹3@Öij¢ À@åK~±¤2
@)\ Âõ(2@n ¡²C
@@DDDDD´1@¬
%¿Xò;1@¾y5ñ¬
gE#
@ %¿Xò;1@¾y5ñ¬
@lÁlÁ¦0@d¨ì0u9
@lÁlÁ¦0@d¨ì0u9
@cÉ/ ü 0@ų¢ o@cÉ/ ü 0@ų¢ o@{®GáJ0@d¨ì0u9@µ Nè´.@É/ übI@ 6Ði#.@u¹ýA J@ 6Ði#.@u¹ýA J@\ Âõ(
×£@þA Ê3-@¤p=
×£@lÁla-@kâYÑHÀ@lÁla-@kâYÑHÀ@ xV4Ð-@L]n á@ xV4Ð-@L]n á@QÙaêr.@Ìí2Tö@QÙaêr.@Ìí2Tö@±äK~Ñ.@ß
@±äK~Ñ.@ß¼ xV4
@ øæÕÄó/@G¾y5q@ øæÕÄó/@G¾y5q@ 6Ði0@«ªªªªª@ójâYÑH9@ Âõ(\@À7‾& µ9@m Ó:@À7‾& µ9@m Ó:@
@*@bêrû
@¹ýA Ê)@lÁlA@¹ýA Ê)@lÁlA@è´ N(@u¹ýA J@è´ N(@u¹ýA J@!Ce ©+'@.Ø -Ø @!Ce ©+'@.Ø -Ø @¼»»»»;&@/—
ð?E#ß¼:&@bêrû
ð?É/ übI%@¶`¶`ð?É/ übI%@¶`¶`ð?M<+ X$@^M<+ ð?M<+ X$@^M<+ ð?:m Óf#@è´ Nñ?è´ N¨,@ÞÝÝÝÝ
tÚ@ç,@ÍÌÌÌÌÌò¿(}Ò'}Ò,@Ùaêrû
¦ô?§ þ¿(}Ò'}Ò,@Ùaêrû þ¿é >é ~+@{®GáúÀé >é ~+@{®GáúÀ¿Xò %ÿ)@(}Ò'}ÒÀ¿X
2À)\
tÚ@§Í?1u¹ýA¶1@à
tÚ@§Í?j
@ ôIÂõôIú?
ôIú?tÚ@§
2@'
6ÐÙ1@§
 |@ó1@kâYÑHÀò?
¨ì0u¹-2@
WÏ Î¿1u¹ýA¶1@à
ôI ôÉ|@ó1@kâYÑHÀò?
¨ì0u¹-2@
WÏ Î¿ |ôI
®óGázä1@Ìí2Tvæ?
ôÉ@tÚ@§
1@ZÑHÀ7‾æ¿ | ó®Gázä1@Ìí2Tvæ?j
1@ZÑHÀ7‾æ¿°[°;1@V4
6ÐÙ1@§ðÍ«ð¿°[°;1@V4ðÍ«ð¿i
À Âõ(\0@ o^M<
À¨ì0u¹]/@kâYÑHÀ¨ì0u¹]/@kâYÑHÀ°[°;.@z5ñ¬häÀ°[°;.@z5ñ¬häÀ 6ÐiÃ-@åK~±äÀ 6ÐiÃ-@åK~±äÀÇqÇÑ,@B ÊS
)@þA ÊSÀÍÌÌÌÌ
)@þA ÊSÀ ÊS (@Ìí2TöÀ1u¹ýA ;@1u¹ýAÆ@õI ôI<@ ôI ôÉ@õI ôI<@ ôI ôÉ@=
×£p<@øæÕijâ@=
×£p<@øæÕijâ@q=
×£`=@¤p=
×ã@q=
×£`=@¤p=
×ã@L]n ñ=@ÙaêrûC@L]n ñ=@ÙaêrûC@Ï F¾i>@ÇqÇq@Ï F¾i>@ÇqÇq@¦.—?Èà>@®Gáz
@¦.—?Èà>@®Gáz
tÚÀ>@
@A§
tj>@æö*©Ëí²
;ó?Ú@§
;ó?v @A§ºÜþð=@
o^ML?@@ÈPÙaê
ëQ¸ ã?v@ ºÜþð=@
o^ML?@@ÈPÙaê
ëQ¸ ã?DDDDDÔ=@´¢
@ÇqÇá>@ªËí2Tú?
o^Í?DDDDDÔ=@´¢
ÇqÇá>@ªËí2Tú?Ú@§
o^Í?é >é ®=@u¹ýA Êοé >
¦æ¿ Ó:m =@û
¦æ¿¸ ëQx=@¸ ëQ¸÷¿¸ ëQx=@¸ ëQ¸÷¿ o^M<+=@ÈPÙaêòÀ o^M<+=@ÈPÙaêòÀ[°[=@S Ûd¨À~±äK>=@:m Ó:
ÀZÑHÀ7O=@
t Nè´ÀZÑHÀ7O=@ Nè´À¨ì0u¹m=@fffffæÀ¨ì0u¹m=@fffffæÀ x=@"""""âÀ x=@"""""âÀQÙaê
t>@tÚ@§MÀÚ@§
>@
tÚ@ç"Àä8
tÚ@§MÀd¨ì0ui>@Ò'}Ò'}
ã8Î=@*;L]î(À¨ì0u¹Í=@Ùaêrûã)À¨ì0u¹Í=@Ùaêrûã)ÀÍÌÌÌÌ,=@±ä
Àd¨ì0ui>@Ò'}Ò'}ÀçÕij¢ >@Ði 6À±äK~ñ<@¾y5ñ¬h!À K~Ñ*ÀÍÌÌÌÌ,=@±ä
¦ .— <@æö*["ÀYò
K~Ñ*Àò
%¿x=@kâYÑ
%¿XÂ<@
×£ð(ÀG¾y5a<@q=
×£ð(ÀÏ F<@hE#ß¼(ÀÏ F<@hE#ß¼(À÷*;|;@*;Lý'À÷*;|;@*;Lý'À Ó:m°:@õI ôIÿ'À Ó:m°:@õI ôIÿ'ÀÁlÁ,:@¾y5ñ
g0@¦.—? À×£p=
)@QÙaêr;1À£
g0@
3À
)@QÙaêr;1À{
*;L]þ4@+
;L]þ4@£
¦.—? ÀÃõ(\ ®Gáú'@Ce
o^o^¢/@:m Ó
øæ 2À©Ë-1Àæö
zÀÃõ(\Y7@
*[-@»Üþ
¢/@:m Ó
| ó2À0CÕ6À
zübÉ8@yV4
À±äèK´~±.@Ü
N[-@
ð2dÇÀ0
¨ìp
qÇÑ6À
À±äK~±.@Ü
übÉ8@yV4
©Ëíb@@
ð2d|ÀS
¨ìp
ójâÙ:Àq=
ÛÀÄ8@¬
-Ø -X-@
gE#á1ÀS
¦.—? Û
ÀÄ-Ø
8@¬-X-@
gE#á1À8‾&
¦.—? À
×£@@i$à W :Àq=
×£@@i$à W :ÀkâYÑHÐ?@&¿Xò õ9ÀkâYÑHÐ?@&¿Xò õ9À«ªªªª
?@Öij¢ :À«ªªªª
?@Öij¢
tÊ:À
;ÀÃõ(\
tÊ:À
¦.w=@4
*;L]?@e
|ójâ>@Ú@§
ð@ Í«)6À
:Àß¼| ójâ>@Ú@§
@ ©Ëí?;À
x¦9ÀR¸
©Ëíò=@
*;L]?@e
ëÇ@q
@u¹ýA
Ç16À©Ëí?;ÀâYÑHÀ÷?@
*9ÀR¸ Çë@qÇ@u¹ýA
©Ëíò=@ 16Àj tÚ@§
*9ÀTv ¶ºÜþ?@ß¼
6Ði>@a `V6Àj 6Ði>@a
xV´8ÀTv ¶`VºÜþ?@ß¼
6À|ójâY1?@ xV´8À
o^M<[6˵
2Tv ê?@ùÅ
Nè¤:@ÈPÙ
_,98À
¦9À ¦.—Ï6@û
¦9ÀùÅ _,i6@hE#ß<:ÀùÅ _,i6@hE#ß<:À[°[ð5@j 6Щ:À[°[ð5@j 6Щ:ÀHáz®w5@ðÍ« gÕ:ÀHáz®w5@ðÍ« gÕ:Àú
×£2@ójâYÑØ<À¤p=
×£2@ójâYÑØ<À 6Ði-2@#ß¼ è<À 6Ði-2@#ß¼ è<Àz5ñ¬h´1@Ði 6À<Àz5ñ¬h´1@Ði 6À<ÀìQ¸ ;1@¹ýA Ê><ÀìQ¸ ;1
tÚ@/À
tÚ@
tÚ@/Àv
8=@
@ 8|@ójâ5ÀÔ
o^MxV4
ôI &ºÜþð=@A§
À§'ôi>@z5ñ¬hD/ÀtÚ@§
:Àæö
ˤ
m ³9@a
*û7@cÉ/
¶`Ö1Àü*(;L-:@ójâYÑè1À
Àæö*û7@cÉ/ ü(*À
;L-:@ójâYÑè1Àfffff¦:@~±ä
ëQ¸þ7@ò %¿Xò(À ëQ¸þ7@òK%¿Xò(À
2Àfffff¦:@~±ä
Ñ7@Ϋ gEK*2À
À°Ñ[7@Ϋ
°K;@þA
gE*ÊÀ¥Oú¤
£1À°
×£ðA@¾y5ñ¬¨-Àq=
t×£ðA@¾y5ñ¬¨-Àà
.Àà ¶WÏ`ëA@j
.À¶` êA@Ú@§6ÐW/À¶`ÏêA@Ú@§
¶`ëA@j 6Ð /À2Tv º¤A@Ø -Ø =0À2Tv º¤A@Ø -Ø =0Àn ¡²£A@ ¡²ÃÔµ0Àn ¡²£A@ ¡²
¦î(À¶`¶`»@@
¦î(À—?ÈPÙ©@@Ï Fþ'À—?ÈPÙ©@@Ï Fþ'À^M<+¡@@
¦'À^M<+¡@@
¦'À‾&  ¬@@ o^M&À‾&  ¬@@ o^M&ÀS ÛdØ@@ %¿Xò+%ÀS ÛdØ@@ %¿Xò+%ÀÝþ Ce—@@ ÊS ;$ÀÝþ Ce—@@ ÊS ;$
×£p>@[°[°¥-À=
×£p>@[°[°¥-À xV4P>@âYÑHÀ .À xV4P>@âYÑHÀ .Àæö*k>@m Ó: /Àæö*k>@m Ó: /ÀåK~±ä>@¶`¶0ÀåK~±ä>@¶`¶
×£p-1À»Üþ C}@@=
×£p-1À8‾&  @@åK~±¤1À8‾&  @@åK~±¤1À*;L]~@@
Ô?@QÙaêrûï¿tÚ@§
Ô?@QÙaêrûï¿fffff&@@
tÚð=@çÕij¢
¦2ÀA§ ÷¿Õåöj>@i$à
ð¿fffff&@@
Wñ¿Õåöðj¿"""""b@@¨ì0u¹ýï¿"""""b@@¨ì0u¹ýï¿Tv
>@i$à Wñ¿  |ã>@ >é >éï¿  | ã>@ >é >éï¿{
ºÜ®GáZ?@¢²ÃÔåöï¿{
@@ð¿Tv ºÜ @@ð¿2®Tv
GáZ?@¢²
Ú@@[
×Ó?@«ªªªªÊ!À¤p=
×Ó?@«ªªªªÊ!À
¦.?@@¼»»»»["À
×£p=b@@@ÈPÙaª"À(}Ò'}BB@=
×£p=À¸ ëQ B@¶`¶`À¸ ëQ B@¶`¶`À7Ði ÖB@ ëQ¸À7Ði ÖB@ ëQ¸Àd¨ì0uùB@}Ò'}Ò'Àd¨ì0uùB@}Ò'}Ò'À=
×£p5C@,ùÅ _lÀ=
×£p5C@,ùÅ _lÀ ëQ¸vC@øæÕijâÀ&¿Xò @@/—?ÈPù"À Ûd¨ì@@÷*;L#À33333{A@;L]n 'À |óRA@¾y5ñÌ%À |óRA@¾
tÚ
×£p=ú@@
9@B ÊSg5@Öij¢
g5@A§
Ûd¨L#À33333SA@
9@¿Xò %ï4@Öij¢
:m Ó&'ÀÃõ(\ 9 @¿Xò
:A@L]n
%ï4@ Ó(:ÀÃõ(\
m9@×£p=
:A@L]n (À -Ø -8A@ øæÕÄó(À -Ø -8A@ øæÕ
w4@ Ó:m9@×£p=
tÚ 8@ËS Ûÿ3@Ði
w4@A§ Ûÿ3@A§ 68@ðÍ« g 3@ä8 ã8.+@sû
tª1@Ë
½+@R¸S Ûÿ7@í0u¹ý!2@Ë
ëñ*@Ce ©Ëí,@R¸
Ûÿ7@Ú@§ S Ûÿ7@í0u¹ý!2@Ë
ëñ*@Ce ©Ëí,@K~±ä S Ûÿ7@d¨ì0u
+@)\ Âõ¨-@K~±ä
2@ËS Ûÿ7@d¨ì0u
+@)\ Âõ¨-@ Ó
2@0 übÉÿ7@Ü
:m ,@Ï dF¾¨ì3.@ Ó
@33333Ó7@'
:m ,@Ï F¾|./
×£p]/@4ðÍ«Y7@=
×£p]/@Öij¢ à6@ÈPÙaê2.@Öij¢ à6@ÈPÙaê2.@¥Oú¤Oj6@cÉ/ ü-@¥Oú¤Oj6@cÉ/ ü-@u¹ýA *6@9 ã8 Ã+@u¹ýA *6
×£p=j>@'  | À
×£p=j>@'
Àe ©Ëíï=@ | ¡²ÃT
Àà WÀÏr
z>@æö
Çqw=@*»Àà WÏz>@æö*»ÀtÚ@§Í>@¨ì0u¹}ÀtÚ@§Í>@¨ì0u¹}À/—?ÈPi>@£ o^M
×£p=ÊÀ¹ýA ÊÞ>@µ Nè4
@@èd¨ì0
@@ ´2TvN[?@
: tÚ@§
@ d¨ì0
@@ 2Tv :
@"""""b@@Õåö
tÚ@A@±äK~1@¥Oú¤O:A@±ä
§*@"""""b@@Õåö
K~1 *@Oè´ @@ÇqÇq@Oè´ @@ÇqÇq@è´ Nã@@ WÏ @ è´ Nã@@ WÏ @ §
@¥Oú¤O:A@±äK~1
@kâYÑH D@0
tÚ
@K~±ä
tÚ@ÇD@
¦.—ë¿
@½ xV4bD@
SA@
ðÂõ(\
Í«@K~±ä
D@³ÃÔåö
¶übÉ‾
`
ú¿¼»»»»ÛD@
¶S@A@
kâYÑH D@0
@?é
@]nó>é
¿ðÍ«
D¡rA@
@M<+
o^M<«
D@³ÃÔåö
übÉ‾
o^M<«
@?é@]n
ó¿§D@m Ó

ø@?é ¡rA@
>éD@M<+
:m@o^M<«
9 ã8@IÀ7‾&~A@Ce
D@Ï@*;LÝD@*;L]nÿ@
ø@ FÎC@""""""
©Ëí@*IÀ7‾&~A@Ce
;LÝD@*;L]nÿ@
©ËítÚ@§õD@A§
@´¢ o~A@Yò %¿X
@Ï FÎC@""""""
@Yò %¿pC@ -Ø -X
@Yò %¿pC@ -Ø -X
@n
@ų¢
tº @@¸¡²3C@³ÃÔåö
o^M<»F@bêrû
÷B@0 übÉ/@ų¢
ëQøF@Ú@§ ÷B@0 übÉ/@QÙaêr»B@Oè´ N@QÙaêr»B@Oè´ N@*;L]fB@ÁlÁì@*;L]fB@ÁlÁì@ÞÝÝÝÝB@»
!@ o^M<»F@bêrû
!@ d¨ì0uF@Õåöj!@ d¨ì0uF@Õåöj!@{®GáBF@ÍÌÌÌ̬!@{®GáBF@ÍÌÌÌ̬!@}Ò'}ÒçE@5ñ¬h$`"@}Ò'}ÒçE@5ñ¬h$`"
¦æD@¶`¶ &@
¦æD@¶`¶ &@½ xV4âD@Ði 6'@½ xV4âD@Ði 6'@$à WE@¹ýA ÊN(@$à WE@¹ýA ÊN(@ -Ø -hE@þA Êó(@ -Ø -hE@þ
×£p½
tÚ@§@¢²ÃÔå~A@÷
8‾& ¥A@§ *; @¢²ÃÔå~A@÷*; @ £ o^mA@Õåöj@£ o^mA@Õåöj@¸ ëQ@A@Q@¸ ëQ@A@Q@'  A@ÇqÇ1@'  A@Ç
×£p!@¦.—?A@q=
×£p!@ gE#A@ ÊS ["@ gE#A@ ÊS ["@Tv ºÜA@ xV4°#@Tv ºÜA@ xV4°#@q=
×£(A@*;L].%@q=
<B@
×£(A@
¦.—?È+@°
.—?È+@tÚ@§
*;L].%@°
[°C[B@
°{A@
2TvFº,@°
¾y&@°
[°[C°{B@
A@2Tv
F¾yº,@
&@ÈPÙaê
6Ði=B@è´
A@e N©Ëí'@ÈPÙaê
¨-@ 6Ði=B@è´
A@eN¨©Ëí'@
-@S Ûd-ØHB@°
-¨A@v
[° .@S
ºÜþÛ
(@dHB@°
-Ø [-¨A@v
° .@!
×£p=D@ðÍ« F @
tÚ@
×£p=B@®Gáz
D@S Û\F@Ï
B@—?ÈPÙÙD@§
D@|ójâY
F¾áC@Tv
B@®Gáz
ºÜE@D@|ójâYøæÕ¤B@—?ÈPÙÙD@§
B@Ï F¾aD@ÑHÀ7‾ B@Ï F¾aD@ÑHÀ7‾ B@*;L%D@M<+ xB@*;L%D@M<+
×£`B@G¾y5éC@q=
tÚpC@
×£`B@YB@Çq
B@A§
øæÕ¬C@
Çq4C@p^M<+rB@Çq
K~±äWB@ øæÕ¬C@ Çq4C@p^M<+rB@ Ó
K~±äWB@A§ :møB@ gE#gB@ Ó:møB@ gE#gB@¼»»»»»B@ÕåöRB@¼»»»»»B@Õåö
×£øB@:m Óv@@q=
×£øB@:m Óv@@¾y5ñ4C@Tv ºÜ @@h$à A@K~±äK?@wwwwwA@!Ce ©K?@¢²ÃÔå A@fffffV=@è´ NËA@¤p=
×C=@è´ NËA@¤p=
×C=@âYÑHÀ/B@)\ Âõh=@âYÑHÀ/B@)\ Âõh=@n ¡²kB@í0u¹ýá=@n ¡²kB@í0u¹ýá=@ß¼ xV¼B@$à Wÿ=@ß¼ xV¼B@
?@÷*;¼B@à WÏ
?@z5ñ¬h¼B@ ?@z5ñ¬h¼B@ ?@¤p=
×C@¤p=
×Ã?@¤p=
×C@¤p=
×Ã?@ÍÌÌÌÌ4C@÷*;Ü?@ÍÌÌÌÌ4C@÷*;Ü?@v ºÜþpC@j 6Ðù?@v ºÜþpC@j 6Ðù?@\ Âõ( C@2Tv Z@@\ Âõ( C@2Tv Z@
@@lÁ
@@4
¦¦C@ä8
ðÍ«éC@
lÁ&D@
ã8|F@ ¾óê?@lÁ
@4
yðÍ«éC@ lÁ&D@
F¾y| óê?@¶`¶`cD@;L]n °?@¶`¶`cD@;L]n °?@ú¤Oú¤ D@&¿Xò u?@ú¤Oú¤ D@&¿Xò u?@
ï@@:m ÓêC@×£p=
ï@@
>@ÈPÙaê
ttÚ=<@ÍÌÌÌ̬G@þA
<@î2TvèG@Ú@§
@;L]n
@z5ñ¬h4G@Ìí2T&=@z5ñ¬h4G@Ìí2T&=@Ði
Âõ(\/D@`,ùÅ
G@áz
pG@A§ ®Gá=@ÈPÙaê
Ê=A@@ÍÌÌÌ̬G@þA
Âõ(\/D@`,ùÅ
G@áz®Gá=@h$à
Ê=A@.Ø
@;L]n-ØbD@}Ò'}Ò'A@.Ø
pG@A§ÛxV4
6øF@
gG@S dh=@h$à
P=@Ði 6øF@
-ØbD@}Ò'}Ò'A@!Ce
gG@S xV4
ÛdPh=@S
=@S Û4¤G@*;L]n=@S
F@ ã8
© D@?é
ãh=@S>éKA@!Ce
Û4Û¤G@*;L]n=@Ði
F@ ã8©ãh=@
D@?é
Tv º´B@hE#ßTF@2Tv º´B@¸ ëQ F@)\ ÂõðB@¸ ëQ F@)\ ÂõðB@*;L=F@ F¾y-C@*;L=F@ F¾y-C@ïîîîî&F@:m ÓjC@
×£p¥C@`,ùÅ F@=
×£p¥C@µ Nè¼F@û
~C@µ Nè¼F@û
~C@¶`¶øF@4ðÍ«qC@¶`¶øF@4ðÍ«qC@2Tv º4G@ò %¿XrC@2Tv º4G@ò %¿XrC@¤p=
× G@yV4ð¥C@¤p=
× G@yV4ð¥C@ F¾yG@¸C@ F¾yG@¸C@ÇqÇéG@B ÊS×C@ÇqÇéG@B ÊS×C@Æ _,ù%H@æö*»C@Æ _,ù%H@æö*»C@åK~±H@
=K@2Tv º´B@êrû
=K@2Tv º´B@Ìí2T K@ùÅ _,ñB@Ìí2T K@ùÅ _,ñB@À7‾& K@ÙaêrûC@À7‾& K@ÙaêrûC@R¸ ëéK@1u¹ýAC@R¸ ëéK
C@¨ì0u¹%L@.Ø -Ø
C@ ôI ôaL@ øæÕÄ#C@ ôI ôaL@ øæÕÄ#C@7Ði L@þA Ê#C@7Ði L@þA Ê#C@<+ øæL@¾y5ñ¬ðB@<+ øæL
åB@$à WM@sû
´B@ų¢
´B@
åB@9K~±äã8
N@
‾M@tÚ@§
ÇSM@Çq
qÇ B@ÇKqÔB@9
~±äN@Çã8qÇSM@Çq
B@ÍÌÌÌÌDN@à
ÇqÔB@ų¢WÏ‾M@tÚ@§
RB@ÍÌÌÌÌDN@à WÏRB@î2Tv N@æö*SB@î2Tv N@æö*SB@~±äK N@h
×£ N@j 6Ðy?@q=
×£ N@j6Ði
tJ?@
tJ?@Ú@§
tâN@Ú@§ 6Ðy?@Ú@§
åN@ò %¿XÒ>@ 6ÐiåN@ò %¿XÒ>@Ùaêrû«N@
×£p=Z>@Ùaêrû«N@
tÚ@G:@IÀ7‾&ÖN@
×£p=Z>@
tÚ@G:@è´ NøN@§N@Yò ëQ¸¥%¿¸=@
9@ñ¬h$à R@#N@Yò ß¼ xB@^M<+
%¿¸=@ýbÉ/
mR@ 6ÐisB@^M<+
¼N@ß¼ xV$=@ýbÉ/
mR@ 6ÐisB@lÁ
¼N@ß¼ lxV$=@ÄÔåö
ÁNR@)\ ÂõpB@lÁ
ùN@bêrûlÁNR@)\
<@ÄÔåöÂõ
ù
¦ @@Ùaêrû{Q@
¦ @@ß¼ xV\Q@í0u¹ýY@@ß¼ xV\Q@í0u¹ýY@@ ©ËíRQ@Ï F@@ ©ËíRQ@Ï F@@ ¡²ÃÔ-Q@DDDDDÄ?@ ¡²ÃÔ-Q@DDDDDÄ
îA@UUUUUO@û
îA@j 6ÐéO@è´ NB@j 6ÐéO@è´ NB@<+ øP@J ôI B@<+ øP@J ôI B@,ùÅ _(P@J ôI <B@,ùÅ _(P@J
×£xB@ o^M<3P@q=
×£xB@ o^M<OP@ F¾y B@è´ N Q@åK~±Ä?@=
×£påP@û
F?@=
×£påP@û
F?@,ùÅ _¸P@{®GáJ?@,ùÅ _¸P@{®GáJ?@<+ ø P@ ©ËíÒ>@<+ ø P@ ©ËíÒ>@sû
P@Yò %¿X>@sû
R@P@Yò
xV4x%¿X>@ïîîîî
B@Ce>é©Ë>ÝQ@ÄÔåö
B@ P@åyKB@
~±Ô=@ïîîîî
>é >ÝQ@ÄÔåö
P@åyKB@Tv
~±Ô=@¦.—?ÈlP@Ìí2T¶=@¦.—?ÈlP@Ìí2T¶=@ÑHÀ7‾NP@
ºÜÞQ@ ëQ¸µB@Tv ºÜÞQ@ ëQ¸µB@lÁlÁÖQ@9 ã8ðÍ«
C@lÁl=@ÑHÀ7
ÁÖQ@9
-C@Pú¤Oú¨Q@êrû
-C@{
tÚðB@{
tÚðB@ö(\
®Gá®GáQ@A§
Â]Q@
Q@A§
×£p=ÂB@ö(\ Â]Q@
×£p=ÂB@Ùaêrû?Q@Ýþ Ce§B@Ùaêrû?Q@Ýþ Ce§B@ !Q@2Tv º B@ !Q@2Tv º B@K~±äÿP@q=
×£xB@K~±äÿP@q=
t^S@£
×£xB@ Fo^½A@
¾yåP@é |>é×R@fffff
B@ F¾@yåP@é
@±äK~©R@þA
>é B@ìQ¸
Êã?@±ä
ÇP@ñ¬h$à£B@ìQ¸
K~©R@þA Êã?@L]n
ÇP@ñ¬h$à£B@m Ó
©R@*;L?@L]n:©P@å
©R@*;L
K~±¬B@m Ó
?@rÇq R@
:©P@åK~±¬
×£p=ª>@rÇq R@
×£p=ª>@¾y5ñ¬lR@ñ¬h$à>@¾y5ñ¬lR@ñ¬h$à>@°[°OR@Ði 6 =@°[°OR@Ði 6 =@hE#ß,R@Ði 6ð<@hE#ß,R@Ði 6ð<@
Q@XÏ FÂ7@:m ÓNT@>@À7‾& mT@p^M<+Z>@À7‾& mT@p^M<+Z>@  | T@ d¨ì0%>@  | T@ d¨ì0%>@p^M<+ªT@—?ÈPÙ
×£ð<@8‾&  U@q=
D@
ä:@
×£ð<@
D@$à
¦.F¾übÉ/^U@ÍÌÌÌÌÌ:@wwwwwoR@/—?ÈPiC@|ójâYmR@
;@y©R@!Ce
;@?é
*;L]"U@µ
Wo^M@U@tÚ@§
R@¨ì0u¹
o^M°T@
>éÇT@ÈPÙaêr;@?é
©#D@
Nè´<@F¾*y©R@!Ce
;L]"U@µ
>éÇT@ÈPÙaêr;@
Nè´<@ übÉÇR@.Ø
©#D@0 übÉ/FU@³ÃÔåöw<@
tÚ@§åT@
-Ø:D@0
|óºC@|ójâYmR@
¦.—?x;@
übÉ/FU@³ÃÔåöw<@
übÉÇR@.Ø
tÚ@§åT@| -Ø:D@
¦óºC@$à
.—?x;@0
NèWübÉ/^U@
´åR@ò
übÉU@%¿XRD@
R@¨ì0u¹WNÏè´Q<@Ò'}Ò'1T@0
v;@0
NèübÉ
´åR@òU@ %¿X
WÏü
×£p)S@ ºÜþ [D@=
×£p)S@ ºÜþ [D@ß¼ xV@S@IÀ7‾& D@ß¼ xV@S@IÀ7‾& D@"""""^S@K~±ä D@"""""^S@K~±ä D@ Ó:m|S@ų¢ D@
 H@ìQ¸ ;@û
 H@ìQ¸ ;@çÕij¢aH@—?ÈPÙ<@çÕij¢aH@—?ÈPÙ<@î2Tv@H@ÿ Ce y<@ò %¿X"L@&¿Xò ¥9@tÚ@§ÝK@ F¾y¥9@tÚ@§Ý
e=@É/ übéG@êrû
e=@a
tÚð<@Ýþ
tÚð<@ ¶`übÉ/fI@A§
&H@CeôI
I@Ùaêrûs<@Ýþ
ôù=@a¶`&H@ Ce
ôI ôù=@7Ði
I@Ùaêrûs<@'
nH@2Tv
 ÌI@¸
Z>@7Ði
ëQØ;@'
nH@2TvÌI@¸
Z>@Tv
ëQØ;@³ÃÔåö
ºÜ H@¢²ÃÔå&>@Tv
J@é >é Î;@³ÃÔåö
ºÜ H@¢²ÃÔå&>@
J@é >é Î
×£pK@:m ÓÆ:@=
×£pK@
tÚ 9@ Âõ(\
:m ÓÆ:@
o^M<SM@A§
M@DDDDDd9@
Ûd¨üK@ËSÂõ(\
Û;@ M@DDDDDd9@
Ûd¨üK@ËS Û;@
è´ NËM@
ôI ôaL@~±ä
ß¼ xf9@Kè;´@ NËM@
ôI ôaL@~±ä
ß¼ xf9@Ði
K;@n6N@¬¡²gE#a9@Ði
L@fffff 6N:@n
@¬ gE#a9@
¡² L@
¦9@ùN@
¦9@2Tv º4O@ øæÕÄ39@2Tv º4O@ øæÕÄ39@|ójâYqO@ÁlÁ<9@|ójâYqO@ÁlÁ<9@¨ì0u¹O@#ß¼ 89@¨ì0u¹O@#
×£p=J9@ gE#P@
tÚ@OP@
×£p=J9@GÂõ(\_9@§
Âõ(\_9@£
¾y51P@XÏ o^mP@
FR9@Gt¾Ú@§]9@£
y51P@XÏ FR9@§
o^mP@tÚ@§]9@ 6Ði P@øæÕij 9@ 6Ði P@øæÕij 9@B ÊS‾P@\ Âõ(,9@B
×£
Q@i$à WÃ7@q=
×£
tÚàQ@¬
Q@i$à WÃ7@QÙaêr#Q@Õåö
gE#ñ4@A§ ÂõôQ@øæÕij
gE#ñ4@)\ J7@QÙaêr#Q@Õåö
5@)\ ÂõôQ@øæÕij
J7@@Q@lÁ
5@]nlÁö6@
¡R@@}Ò'}Ò§5@]n
Q@lÁlÁö6@XÏ FrQ@33333Ó6@X
¡R@}Ò'}Ò§5@m Ó
Ï :FrQ@33333Ó6@
1R@hE#ß5@m Ó:o^1
1R@,ùÅ _\3@êrû
1R@,ùÅ _\3@ 9R@ übÉ/ 2@ 9R@ übÉ/ 2@~±äK>R@sû
2@~±äK>R@sû
2@Ô:m GR@ d¨ì0¥1@Ô:m GR@ d¨ì0¥1@ËS ÛOR@ýbÉ/ ,1@ËS ÛOR@ýbÉ/ ,1@ìQ¸ SR@?é >é³0@ìQ¸ SR@?é >é³
ZR@'  < 0@û
tÚà)@`,ùÅ
'@yV4
tÚà)@r
'@ ZR@'
F¾yõR@
ðåR@
Ç <q 0@
*³;L
R@A§
t*ÇR@ö(\
;LmR@
Ú@§
&@ F¾yõR@
ôIÂu(@`,ùÅ
*ôI/@
;L&*@¤p=
;LmR@
ÇR@ö(\
ôI ôI/@
Âu(@Ce
Ï FzR@
©ËÑR@顲Ã>é.@þ'@Ce
Ï FzR@©ËÑR@é ¡²Ã .@wwwww
>é þ'@yV4
R@/—?ÈPy-@wwwww
ðåR@tÚ@§ R@/—?
×S@ Ûd¨ì$@¤p=
×tZ"@@ÈPÙaªS@Ú@§
tZ"@Ãõ(\
S@ Ûd¨ì$@""""" ¾S@!CeS@QÙaêr;$@"""""
©K#@Ãõ(\ ¾S@!Ce S@QÙaêr;$@
©K#@E#ß¼ÖS@Ô
_,ùÅ:m 
S@@ÈPÙaJ#@
$@E#ß¼ÖS@Ô _,ùÅ
:m S@@ÈPÙaJ#@yV4
$@ ð!S@Tv ºÜÞ!@yV4ð!S
×£p=öS@ä8 ã8.%@
×£p=öS@ä8 ã8.%@¾y5ñ¬ôS@ÈPÙaê²&@¾y5ñ¬ôS@ÈPÙaê²&@ ºÜþ ÷S@í0u¹ý(@ ºÜþ ÷S@í0u¹ý(@1u¹ýA
T@½ xV4ò(@1u¹ýA
T@ðÍ«
T@½ xV4ò(@
gÅ+@ÿè:´m Ó
gÅ+@ CeNT@µ
@}Ò'}Ò'*@
Nè´,@è´:m ÓNT@µ
T@}Ò'}Ò'*@E#
Nè´,@tÚ@§Tß@
¼¦T.—?¨-@
@XÏ F+@E#
tÚ@§ß¼TT@¦@X
.—?¨-@
Ï F+@ÿNCe
è´T@ùÅ _, .@ Nè´T@ùÅ _, .@E
¦2@e ©ËíïT@
¦2@h$à U@B ÊS 2@h$à U @B ÊS 2@q=
×£0U@ ¦ .—3@q=
×£0U@ ¦ .—3@Ø -Ø QU@M<+ 3@Ø -Ø QU@M<+ 3@~±äK^U@
×£p=ª3@wwwwwgD@×£p=
D@sû
%D@ ÊS {D@ qM@#ß¼ x4@®GázdM@¾y5ñ¬x4@ xV4øJ@ øæÕ48@Ìí2TîJ@ | ó:8@ ëQ¸NI@*;L]n:@QÙ
tÚ@ o^MXR@Ϋ
×£p="H@ ©Ëíâ=@Pú¤Oú
gEã@ËSH@í0u¹ýá=@
ÛWR@Ϋ gEãÇq@ÇÍÌÌÌÌhR@ÑHÀ7‾¦
éK@rÇq—:@:m Óê@K@hE#
è´ NhßR@
ì:@ðÍ«o^M<OR@lÁ
§@æö*OR@«ªªªªê
lÁä¿ o^M<OR@
@¶`¶`KR@yV4
Ï F¾ã¿:m Ó
ðM@ gE#
NR@ÑR
×£pý@áz®GmT@=
×£pý
tòJ@8‾&
DJ@î2TvXB@
DJ@î2TvXB@tÚ@§
tÚ@ H@@ übÉ/vT@¹ýA
¡²ÃÔ¥C@½
µB@<+
B@Ú@§
-Ø - øæJ@^M<+
xV4jH@¬
J@[°
ÊN@[°eB@
übÉ/vT@¹ýA
ñgE#iC@½
B@<+
-Ø - J@[°ÊN@[\°eB@
xV4jH@¬
øæJ@^M<+
Âõ(xT@®Gáz
ñgE#iC@*;L]noH@8‾&
B@o^M¼J@^M<+
Âõ(\ïJ@Ø
.@\ Âõ(xT@®Gáz
qB@
-Ø -C@o^M¼J@^M<+
- C@*;L]noH@8‾&
Âõ(\ïJ@Ø
.@n ¡²kT@çÕij¢
qB@Ú@§
-Ø -C@e
-C@j
@n©Ëí÷J@
6ÐyH@
¡²kT@çÕij¢
ã8 ãðB@
xC@@
ýC@÷*;¼J@êrû
ýC@{®GáÊJ@£ o^¥C@î2Tv F@Ãõ(\ Z@@=
×£p-F@*;L@@=
×£p-F@
tÚøF@*;L
6Ði
@@V4
?@UUUUU5G@i$à
@A§
ðÍCF@áz®G¡?@V4
Wó>@UUUUU5G@i$à
ðÍCF@áz®G¡?@`,ùÅ
Wó>@lÁ
F@ìQ¸
lqG@&¿Xò
K?@`,ùÅ
õ>@lÁlF@ìQ¸
qG@&¿Xò
K?@A§
õ>@4ðÍ«ÉG@Ãõ(\ Ò>@¦.—?È
¦þ?@UUUUUG@ Ûd¨|?@UUUUUG@ Ûd¨|?@Oè´ ¶G@ ôI ôI?@[°[øF@î2Tv0@@ ¡²Ã
G@ 6ÐiÃ?@ ¡²Ã
G@
R@ xV4
6ÐiÃ?@ýbÉ/
xB@
B@Ce>é©Ë>ÝQ@v
4G@ o^M<
ºÜþxB@
?@&¿Xò
>é >ÝQ@v
mR@ xV4
ºÜþxB@Tv
¸B@R¸ ëMR@J
ºÜÞQ@ôIëQ¸
´B@R¸
µB@TvëMR@J
ºÜÞQ@ôIëQ¸
´B@Ü
µB@lÁ
d¨ì0R@kâYÑH
lÁÖQ@9 ã8B@Ü
C @lÁ
d¨ì0R@
lÁÖQ
-C@Pú¤Oú¨Q@êrû
-C@{
tÚðB@{
tÚðB@ö(\
®Gá®GáQ@A§
Â]Q@
Q@A§
×£p=ÂB@ö(\ Â]Q@
×£p=ÂB@Ùaêrû?Q@Ýþ Ce§B@Ùaêrû?Q@Ýþ Ce§B@ !Q@2Tv º B@ !Q@2Tv º B@K~±äÿP@q=
×£xB@K~±äÿP@q=

×£xB@
¦.ç<@
.ç<@~±ä
R@ [Âõ(\ÿA@ÄÔåö
F¾°yåP@é
[¬Q@
K Q@ôI>éôi=@
©B@
R@[|°
ójâiB@
F[¾¬Q@
yåP@é
ôId¨ì0©R@B

ôi=@e
B@ìQ¸
©Ëí³Q@í0u¹ýá=@e
ÊSÇP@ñ¬h$à£B@ìQ¸
'B@ d¨ì0©R@B ©Ëí³Q@í0u¹ýá=@wwwww‾Q@V4
ÊSÇP@ñ¬h$à£B@m Ó
'B@£ o^ R@K~±äÿA@Ë
:©P@åSK~±¬B@m Ó
Û³Q@@ÈPÙaZ>@¿Xò
ðÍ[>@¹ýA:©P@å
ÊÖS@
K~±¬
®G
R@33333³A@×£p=
tZ@@yV4
tZ@@Ϋ
R@33333³A@é
ðgEÛQ@Ú@§
ÑQ@sû>é ZR@¼»»»»ÃA@é >é ZR@¼»»»»ÃA@ F¾y=R@*;L]n A@ F¾y=R@*;L]n A@!Ce ©3R@æö*KA@!Ce
@@yV4ðÑQ@sû
tÚ@w<@ÞÝÝÝÝ
tÚð<@ÞÝÝÝÝ
tÚ@w<@þA
tÚð<@
@@î2Tv¸Q@
tÚ@§Ê§S@A§
*S@§
;L]
S@*;L]nÿ;@þA
S@§?@î2Tv¸Q@Ê
*;L]
§S@*;L]nÿ;@
?@$à W³Q@Ûd_,ùÅÒ>@Tv
¨¸S@¥Oú¤Oê;@
ºÜÖQ@V4
Ûd¨¸S@¥Oú¤Oê;@'
ðÍ[@@ß¼ xÎQ@[°
 ä[S@û
°@@ß¼ xÎQ@[°[°@@ÁlÁ¸
 ;@'  ä S@û
 ;@cÉ/ üþS@~±äK;@cÉ/ üþS@~±äK;@{®GáT@=
×£p :@{®GáT@=
×£p :@êrû
1T@rÇq:@êrû
1T@rÇq:@ Âõ(\OT@K~±äÛ9@ Âõ(\OT@K~±äÛ9@m Ó:mT@¹ýA Ê~9@m Ó:mT@¹ýA Ê~9@ų¢ T@ xV4P9@ų¢ T@
"U@Ùaêrû³9@û
"U@Ùaêrû³9@5ñ¬h$HU@J ôI ¤9@5ñ¬h$HU@J ôI ¤9@¥Oú¤O^U@ 6Ði 9@°[° T@Ï Fn>@¦.—?¸T@ÿ Ce Y>@¦.—?¸
w?@¿Xò %OT@Üd¨ìà?@¿Xò %OT@Üd¨ìà?@ójâYÑ0T@j 6ÐA@@ójâYÑ0T@j 6ÐA@@ WÏ T @,ùÅ _D@@ WÏ T@,ùÅ _D@@
tÚèO@ªËí2|C@1u¹ýA¦O@[°
tÚèO@ªËí2|C@A§
1P@ò %¿XC@ÑHÀ7‾P@$à W7[C@ÑHÀ7‾
°¥C@1u¹ýA¦O@[°
P@$à W7C@A§
[°¥C@¾y5ñ¬pO@°[°ÓC@¾y5ñ¬pO@°[°ÓC@ øæÕÄ3O@é >é D@ øæÕ
 5@/—?ÈPV@û
 5@d¨ì0uEV@¦.—?Èð5@d¨ì0uEV@¦.—?Èð5@:m ÓvV@çÕij¢ñ5@:m ÓvV@çÕij¢ñ5@2Tv V@Üd¨ì6@2Tv V@Üd¨ì6
×£p7@¸ ëQ¤V@=
×£p7@)\ ÂõÈV@ų¢ Ï6@)\ ÂõÈV@ų¢ Ï6@q=
×£ðV@ d¨ì0U6@q=
×£ðV@
¦.W@½d¨ì0U6@
xV4Â4@ ºÜþ ûV@ójâYÑÈ5@ ºÜþ ûV@ójâYÑÈ5@i$à WW@³ÃÔåö'5@i$à WW@³ÃÔåö'5@
×£p=BW@õI ôI_4@
×£p=BW@õI ôI_4@áz®GaW@2Tv ú3@áz®GaW@2Tv ú3@Öij¢ xW@ xV4 3@Öij¢ xW@ xV4 3@@ÈPÙa W@Ø -Ø Í2@@È
×£p=6X@ójâYÑØ0@
×£p=6X@ójâYÑØ0@
¦ZX@ übÉ/ 0@
¦ZX@ übÉ/ 0@bêrû dX@*;L]0@bêrû dX@*;L]0@ gE#oX@Ce ©Ë .@ gE#oX@Ce ©Ë .@wwwwwsX@ÄÔåö¹-@wwwww
<Y@Çq
¦@.bêrû
Y@ä8
Çq @Y@
tÚ@§
ã8ºÜþ
)6Ði
@ #Y@K~±ä
@¦.—?ȨY@Æ
@ ºÜþ kY@@ _,ùE(@¦.—?ȨY@Æ
K~±ä
ºÜþ #Y@K~±ä
@ ºÜþ kY@
@èK´~±ä
_,ùE(@
NY@@ÍÌÌÌÌL
 tÚ@§
ÇqǹY@Çq
@è´ ÇNYq|'@
@ÍÌÌÌÌL
Ï F @Ï F¾ Y@S ÛÄ @Ï F¾ Y@S
Y@ ¡²ÃT@âYÑHÀY@Ce ©Ëm@âYÑHÀY@Ce ©Ëm@B ÊSY@£ o^M@B ÊSY@£ o^M@ ©Ëí&Y@Ï F¾¹@ ©Ëí&Y@Ï F¾¹@Yò
@&¿Xò EY@;L]n 
@Ï F¾UY@ñ¬h$à @ Ï F¾UY@ñ¬h$à @
¦nY@ o^M¼@
¦nY@ o^M¼@`,ùÅ Y@î2Tv@`,ùÅ Y@î2Tv@ðÍ« g©Y@XÏ Fÿ?ðÍ« g©Y@XÏ Fÿ?Ï FÖY@|ójâYÑø?Ï FÖY@|ójâY
×#%@ðÍ« ‾Z@¤p=
[×#%@ÞÝÝÝÝÍZ@8‾&
@ h%@tÚ@§
h%@ >é >[@ïîîîî
Í$@ÞÝÝÝÝÍZ@8‾&
&@ >é >[@ïîîîî
Í $@ïîîîîæZ@à
&@|ójâYA[@µ
WÏ*%@ïîîîîæZ@à
Nè´&@|ójâYA[@µ
WÏ*%@tÚ@§
Nè´&@wwwwwK[@Tv ºÜ>(@wwwwwK[
N[@]n ¡2,@û
l[@
tÚ´Z@O
N[@]n
ðÍ«è'5@±ä
'5@tÚ@§
´¡2,@
î4@A§
î4@kâYÑHØZ@Yò
K~}[@
|óF[@QÙaêrû,@
ã8 ãx4@±ä
%¿(5@kâYÑHØZ@Yò
K| ~}[@
óF[@QÙaêrû,@Ãõ(\
ã8 ãx4@
%¿(5@}Ò'}ÒÿZ@p^M<+
ëQ¸ [@Ãõ(\
>[@Pú¤OúÄ-@Ãõ(\
"5@ ëQ¸5@Ùaêrû
[@Ãõ(\
>[@Pú¤OúÄ-@Õåö
\@ö(\
"5@¤p=ÂU6@
2[@m Ó
lÁl \@G
:.@Õåö
¾y5 6@B
2[@
×‾[@q=
×£`5@¤p=
×‾[@q=
×£`5@Ï Fâ[@ö(\ Â 5@Ï Fâ[@ö(\ Â 5@$à Wû[@êrû
å5@$à Wû[@êrû
å5@L]n -\@ _,ùÅâ5@L]n -\@ _,ùÅâ5@ -Ø -T\@åK~±T6@ -Ø -T\@åK~±T6@QÙaêr_\@7@QÙaêr_\@7@Öij¢ x
ç7@ų¢ o]@×£p=
ç7@`,ùÅ s]@Ház®w8@`,ùÅ s]@Ház®w8@ÇqÇ¥]@lÁlÁ 8@ÇqÇ¥]@lÁlÁ 8@û
¶]@®Gáz9@û
¶]@®Gáz9@bêrû à]@B ÊSw9@bêrû à]@B ÊSw9@Öij¢ è]@A:@Öij¢ è]@A:@ZÑHÀ7^@ ¡²ÃÔ¥:@ZÑHÀ7^@ ¡²ÃÔ¥:
U^@ªËí2´>@sû
U^@ªËí2´>@U^@=
×£p}?@U^@=
×£p}?@³ÃÔåö;^@¶`¶À?@³ÃÔåö;^@¶`¶À?@4ðÍ« ^@<+ øæ?@4ðÍ« ^@<+ øæ?@#ß¼ <^@½ xV4â?@
;L]F_@ò %¿XC@*;L]F_@ò %¿XC@&¿Xò i_@¥Oú¤OC@&¿Xò i_@¥Oú¤OC@è´ N _@8‾& íB@è´ N _@8‾& í B@è´ N _

`@ o^M<D@

`@¦.?A@ÈPÙaêæ_@
.?A@è´
o^M<D@bêrû
N¼_@ :` m ÓvA@ÈPÙaêæ_@
@³ÃÔåö/D@bêrû :`m ÓvA@«ªªªª
@³ÃÔåö/D@ øæÕÄ-`@ ©ËíbD@ øæÕÄ-`@ ©ËíbD@ÄÔåö7`@‾&  D@ÄÔåö7`@
`@¼»»»»kA@«ªªªª
`@¼»»»»kA@^M<+
"`@
t ÐB@tÚ@§`@8‾&
ÐB@&¿Xò `@u¹ýA
 A@^M<+
C @&¿Xò
`@8‾&
` @u¹ýA
 A@:m Ó(`@ìQ¸
C@Ú@§ £A@:m Ó(`@ìQ¸ £A@¸ ëQ2`@ øæÕüA@¸ ëQ2`@ øæÕ
lE@
`@p^M<+JC@j
lE@ÁëQ¸
lÁ £`@tÚ@§
`@B Ê
6ÐW`@ò
SWE@ ëQ¸
%¿X*E@Ìí2Th`@
£`@B ÊSWE@0*;L]E@Ìí2Th`@
übÉ‾`@ *;L]E@Ò'}Ò'u`@ų¢ E@Ò'}Ò'u`@ų¢ E@ÁlÁ `@tÚ@§
¦fE@0 übÉ‾`@
¦fE@~±äK¼`@ójâYÑpE@~±äK¼`@ójâYÑpE@K~±äÉ`@õI ôI E@K~±äÉ`@õI ôI E@d¨ì0uÕ`@ ÊS £E@d¨ì0uÕ`@ ÊS
ï`@ øæÕÄóE@êrû
ï`@ øæÕÄóE@¿Xò %û`@7Ði .F@¿Xò %û`@7Ði .F@é >éa@5ñ¬h$XF@é >éa@5ñ¬h$XF@®Gáza@""""" F@®Gáz
la@:m Ó
tÚJ@Ãõ(\
@¥Oú¤O
òG@M<+
c@A§¡²Ã¬I@Ãõ(\
c@ la@:m ÓòG@c@
übÉ/za@Ô
¡²Ã¬I@E#
:m ßH¼ c@a
@ übÉ/za@Ô
¶` I@E#
:m ß¼ c@a
H@e ©Ëí¶` I@í0u¹ýc@m Ó
a@yV4ðMH@e ©Ëí:I@í0u¹ýc@m Ó
a@yV4ðMH@à WÏ:I
a@
×£pýC@à WÏv^@=
×£pýC@û
n^@IÀ7‾&¦C@û
C@
n^@IÀ7‾&¦C@¸
C@ìQ¸
ÇqÇ¥]@<+
s]@tÚ@§ëQ ^@ZÑHÀ7—C@¸
ø C@ÇqÇ¥]@<+ ëQ ^@ZÑHÀ7—C@Ce
ø C@4ðÍ«Ñ]@QÙaêrËC@4
©Ë¹^@Ï ðFÍ«Ñ]@QÙaêrËC@u¹ýA
ÎC@Ce ©Ë¹^@Ï FÎC@¢²ÃÔåÒ^@,ùÅ
ö]@¨ì0u¹ýC@u¹ýA
_äC@¢²ÃÔå
ö]@¨
×£p="^@³ÃÔåö/D@
×£p="^@³ÃÔåö/D@kâYÑH<^@:m Ó
B@¿Xò
t:V@ÍÌÌÌÌ
B@,ùÅ _<^@cÉ/
%#^@yV4
5@¾y5ñ4V@¨ì0u¹
ðüJB@,ùÅ _<^@cÉ/
5@Çbq
D@Ë
ÇüJB@°
áV@
S lÛ×]@#
Ál[a6@—?ÈPÙáV@ZÑHÀ7
°gß^@ìQ¸
¼ `A@ïîîîîÚ]@9
kB@°[°g^@ìQ¸
6@Yò
ã8 kB@M<+
£A@ïîîîîÚ]@9
%¿0W@fffffF(@q=
^@ o^MlB@M<+
ã8 £A@ÇqÇù]@^@F¾yÕA@
o^MlB@Çq
×£0W@n ¡²C(@*;L]n V@ Nè´ñ5@]n ¡ V@4ðÍ« 6@9 ã8 ‾V@ ©ËíÂ6@ Ûd¨ÈV@¾y5ñ,6@¹ýA Ê>W@ o^M
YW@ªËí24,@kâYÑHXW@333333,@çÕij¢mW@ øæÕÄ-@\ Âõ(lW@Æ _,ùÅ-@2Tv ªW@Æ _,ù50@33333 W@e ©Ëí0
¦)@L]n X@ÇqÇq|'@ Ó:m X@.Ø -Øâ&@ Ó:m X@.Ø -Øâ&@QÙaêr X@yV4ðí%@QÙaêr X@yV4ðí%@ójâYÑ X@bêrû
%@ójâYÑ X@bêrû
%@hE#ß X@@ÈPÙaê%@V4ðÍ?W@¬ gE#¡*@wwwww?W@ÍÌÌÌÌ
)@wwwww?W@ÍÌÌÌÌ
HW@è´
tú)@ójâYÑHW@fffffF(@tÚ@§
)@J
t @ \Ô:ôIm çX@Ú@§
Âõ(
NH4W@å
(@Y@<+
K~±D(@J
©Ëí"W@9
øF(@
ôIºÜþ
ã8 4W@å£Y@¿Xò
#%@¶`K¶~±D(@
`W@ %øæÕ$%@¥Oú¤OFW@
%¿Xò3W@
'@ ëQ¸ñ2X@Ði
Tv Ú)@6@ëQ¸
v%¿Xò3W@
¥ @IÀ7‾&bW@,ùÅ
ºÜþðX@û
2Tv Ú)@/—?ÈP-W@Ú@§
_l @IÀ7‾&bW@,ùÅ _l @Öij¢ l
¦@ übÉ/Z@ß¼ xÖ@ >é > Z@Ði 6Ð@÷*;ìY@yV4ðÍô?'  ìY@L]n ¡ö?Ìí2TÂY@À7‾& µ&@{®Gá¾Y@a¶`¶&@Üd¨ì
×s0@ ã8 ãd[@u¹ýA ú3@7Ði [@2Tv º
4@7Ði [@2Tv º
4@!Ce
tÚ>5@/—?ÈPU^@±ä
@÷*;©‾[@
[@ ã8
%¿Xòk3@!Ce
Kã(5@
~Ñ?@¿Xò
Âõ(\©‾[@
%O^@$à
^@5ñ¬h$
%¿Xòk3@L]n
W¿?@u¹ýA
>@õI ôI¢_@
¡[@¨ì0u¹Í2@L]n
^@A§[°[ÐB@âYÑHÀ _@
¡[@¨ì0u¹Í2@m Ó
¶`¶èB@¸ ëQ _@ZÑHÀ7?A@ìQ¸
:y[@/—?ÈPi2@m Ó
_@Tv:y[@/—?
ºÜ>A
Æ@@QÙaêrû_@d¨ì0uqA@hE#ß`@ pA@hE#ß`@ pA@yV4ð`@qA@/—?ÈPU^@L]n !9@÷*;t^@¿Xò %‾8@÷*;t
×£p=n^@ų¢ ?8@
×£p=n^@ų¢ ?8@K~±ä_^@ ©Ëí 7@K~±ä_^@ ©Ëí 7@ùÅ _,U^@{®Gá
7@ùÅ _,U^@{®Gá
7@ªËí2<^@õI ôI 6@ªËí2<^@õI ôI 6@<+ ø^@j 6й6@<+ ø^@j 6й6@e ©Ëí^@Ô:m  7@e ©Ëí^@Ô:m 
¦^@@µ Nè>`@
¦^@@0 übÉM`@tÚ@§u@@UUUUUÕ`@(}Ò'}ú@@@ÈPÙaÆ`@ú¤Oú¤§@@@ÈPÙaÆ`@ú¤Oú¤§@@h$à ‾`@¦.—?ȸ@@h$à ‾`
×£¨@@ ôI ô `@q=
×£¨@@2Tv `@Ház®ï@@2Tv `@Ház®ï@@—?ÈPÙ‾`@¶`¶`û@@—?ÈPÙ‾`@¶`¶`û@@Ìí2T¼`@°[°+A@Ìí2T¼`@°[°+A@&¿
A@Oè´ ªa@¼»»»»«D@áz®Ga@lÁlaD@áz®Ga@lÁlaD@h$à —a@ú¤Oú¤/D@h$à —a@ú¤Oú¤/D@(}Ò'}¾a@ ëQ¸ýC@(
íB@S Û a@êrû
íB@kâYÑH a@yV4ð B@kâYÑH a@yV4ð B@À7‾& a@è´ NkB@À7‾& a@è´ NkB@`,ùÅ a@M<+ B@`,ùÅ a@M<
tÚ@£`@u¹ýA
@h$à
tÚ@¿A@=
tÚ@¿A@,ùÅ
‾`@®Gáz
_¼`@§
ÊA@§
ÊA@,ùÅ
>A@µ _¼`@§
Nè¢`@1A@µ Nè¢`@1A@ ôI ô `@)A@ ôI ô `@)A@*;L]n}`@Õåöú@@*;L]n}`@Õåöú@@½ xV4
×£pÕ`@]n ¡ÒA@=
×£pÕ`@]n ¡ÒA@‾&  î`@33333ËA@‾&  î`@33333ËA@.Ø -Øa@Ház®B@.Ø -Øa@Ház®B@‾&  a@|ójâ9B@‾&  a @|ó
C@³ÃÔåöka@‾& 
t
tÚøD@
C@O
tÚøD@;L]n
E@å
@ðÍ«
è´K~±Üa@
xa@»Üþ
géa@Ú@§
øæÕa@A§
ëQ¸
a@µ
CeC@O
E@å
NèKè\E@
~±Üa@
´ xa@»Üþ
ëQ¸E@Ãõ(\
øæÕ a@µ
CeC@NèëQ¸|a@
Êa@
\E@t|Ú@§
 ó*E@Ãõ(\
Nèa@
´ C@NèëQ¸|a@
´©E@
Êa@tÚ@§
|ó*E@Pú¤Oú¶a@7Ði
Nè´a@C@ò
Nè´©E@«ªªªªªa@
%¿Xxa@ö(\
NE@Pú¤Oú¶a@7Ði
ÂíC@ò
o^M%¿Xxa@ö(\
E@«ªªªªªa@
NE@ÈPÙa
ÂíC
A@?é >é%`@J ôI
A@é
la@z5ñ¬hdA@#
>é 6`@u¹ýAß¼ xa@E#
Ú@@é ß>é¼ @@
6`@u¹ýA
¶`¶xa@Ãõ(\
Ú@@K~±ä@@1p`@e
a@,ùÅ
©Ëí§@@K~±ä
_ 1`@e ©Ëí§@@Ò'}Ò'!`@IÀ7‾&v@@áz®Gß`@¢²ÃÔ
A@¥Oú¤Ora@'  
A@ Ûd¨ªa@ÇqÇq F@q=
×£ªa@þA Ê F@S ÛRa@u¹ýA C @  | Ga@cÉ/ üC@û
R`@¤p=
×C@@(}Ò'}J`@d¨ì0u@@(}Ò'}J`@d¨ì0u@@ÕåöF`@ Y?@ÕåöF`@ Y?@R¸ ëW`@è´ N?@R¸ ëW`@è´ N?@é >
q`@ ÊS @ @ÁlÁ@`@  |C@@¹ýA Ê>`@Yò %¿ @@`@ Ûd¨d@@ 6Ði`@(}Ò'}R@@ÑHÀ7‾``@ Nè´ >@¥Oú¤O^`@í0u¹ý >@
×£p=2`@@ÈPÙaZ<@m Ó:`@ ©ËíÒ;@m Ó:`@ ©ËíÒ;@p^M<+`@yV4ðm;@
×£p=`@ WÏ ¦:@ | ój`@ übÉ/¦:@î2TvP_@«ªªªªº8@z5ñ¬hP_@`,ùÅ ¿8@m Ó:_@«ªªªªj8@Ði 6ì^@ Ó:mP8@L]n
—a@=
×£p5J@êrû
—a@=
Äa@Ò'}Ò'I@tÚ@§
Äa@Ò'}Ò'I@
×£p5J@¶`¶`—a@ÈPÙaêÚI@¶`
Áa@#ß¼ HI@
¶`—a@ÈPÙaêÚI@tÚ@§
Áa@#ß¼ HI@^M<+Åa@ %¿XòãH@^M<+Åa@ %¿XòãH@DDDDDÀa@³ÃÔåö H@DDDD
×H@þA ÊÅa@¤p=
×H@´¢ oÂa@ ã8 ãèG@´¢ oÂa@ ã8 ãèG@ðÍ« Áa@åK~± G@ðÍ« Áa@åK~± G@¦.—?ȼa@î2Tv G@¦.—?ȼa@î2Tv
×£péa@$à WGG@=
×£péa@$à WGG@ú¤Oú¤áa@ ëQ¸ G@ú¤Oú¤áa@ ëQ¸ G@{®GáÖa@Ház®—G@{®GáÖa@Ház®—G@M<+ Ôa@ øæÕ
ïa@&¿Xò I@êrû
ïa@&¿Xò I@ðÍ« géa@Ϋ gEãI@ðÍ« géa@Ϋ gEãI@=
×£pça@¤p=
×CJ@=
×£pça@¤p=
×CJ@è´ Nça@¦.—?¨J@Ház®¹a@¸ ëQ¨J@|ójâ¹a@wwwww§J@ðÍ« g b@åK~±¼F@(}Ò'} b@ WÏ F@(}Ò'} b@ WÏ F
×£p G@ >é >c@¨ì0u¹ G@K~±ä#c@S ÛdàG@ ºÜþ #c@{®GáâG@rÇqUc@{®Gá¢H@è´ NTc@Õåö²H@~±äKnc@í0u¹ý
I@UUUUU{c@×£p=
I@h$à c@®GázTI@v ºÜþZ@ÿ Ce )*@æö*óY@#ß¼ Ø)@i$à Ws]@yV4ð H@ ºÜþ S]@sû
MH@ ºÜþ S]@sû
t²@@¶`
t²@@À7‾&
MH@u¹ýA¶` ]@+
Z]@33333
¥]@Ú@§ øæu@@r
H@|ójâYý]@
ÇqÏ]@&¿Xò
|ójâY?@R¸
u@@ ¦.—×]@ªËí2\@@B
ë^@fffffö>@Ház
ÊS®sX@u¹ýA
]@ ¡²ÃÔu@@À7‾&
A@ß¼ xbX@
¥]@Ú@§
lÁlqA@ÞÝÝÝÝáV@2Tv º
@@ÞÝÝÝÝáV@¦.—?è?@×£p=
#Y@{®GárB@2Tv ºðX@^M<+iB@2Tv ºðX@^M<+iB@u¹ýA
Y@¶`¶ B@:m Ó"Y@*;L]ÎI@E#ß¼"Y@ ëQ¸nI@E#ß¼"Y@ ëQ¸nI@i$à WY@tÚ@§I@×£p=
?W@II@wwwww/W@ÄÔåöII@.Ø -Ø `@XÏ F F@?é >é `@J ôI DF@?é >é `@J ôI DF@ Ó:m `@ |ój F@ Ó:m `@ |
[@Ce ©ËuJ@ ¡²Ã
[@Ce ©ËuJ@ WÏ æZ@p^M<+ZJ@ WÏ æZ@p^M<+ZJ@M<+ ÄZ@ ÊS CJ@M<+ ÄZ@ ÊS CJ@¶`¶` Z@êrû
-J@¶`¶` Z@êrû
-J@÷*;|Z@Tv ºÜÞI@÷*;|Z@Tv ºÜÞI@DDDDDPZ@i$à WËI@DDDDDPZ@i$à WËI@ ¡²ÃÔZ@&¿Xò ½I@ ¡²ÃÔZ@&¿Xò ½
—-ÀM<+ P_@×£p=
—-À
tÚ@G,Àû
tÚ@G,ÀìQ¸
Ï F~_@ú¤Oú¤-À
ç_@§ Ï F~_@ú¤Oú¤-À|ójâY©_@&¿Xò E,À|ójâY©_@&¿Xò E,ÀÞÝÝÝÝÍ_@´¢ oÞ+ÀÞÝÝÝÝÍ_@´¢ oÞ
`@õI ôI-Àû
`@õI ôI-Àß¼ xV̀@—?ÈPÙ¡.Àß¼ xV̀@—?ÈPÙ¡.ÀΫ gE`@
×£p=ª-ÀΫ gE`@
×£p=ª-À¨ì0u¹%`@j 6Ði.À¨ì0u¹%`@j 6Ði.ÀDDDDD2`@~±äK.ÀDDDDD2`@~±äK.À®Gáz0`@
¦-À®Gáz0`@
¦-Àfffff2`@}Ò'}Ò',Àfffff2`@}Ò'}Ò',À.Ø -Ø>`@0 übÉ+À.Ø -Ø>`@0 übÉ+ÀB ÊSK`@¾y5ñ¬)ÀB ÊSK`@¾y5ñ
-À<+ ø°a@ Ûd¨
-ÀìQ¸ ‾a@ 6Ði}+ÀìQ¸ ‾a@ 6Ði}+À gE#³a@
×£p=ê)À gE#³a@
×£p=ê)À¸
tÚ&ÀÀéôI>éô×a@
ëQ¸a@
Äa@A§
lÁl&ÊÀS ôI
[(À¸ô×a@
ëQ¸a@lÁl&Àÿ
ÊS Ce
[(ÀÛa@
lÁlÇ¿a@
qÇ 'Àÿ
'ÀlÁCe
l¿a@Ûa@
 'Àé
ÇqÇ>é'ÀvÄa@A§
ºÜþâa@hE#ß\(Àv ºÜþâa@hE#ß\(À—?È
×#)À—?ÈPÙëa@¤p=
tÚ@_\@|ójâYQ
×#)À8‾&
tÚ(b@í0u¹ý¡.ÀÜ
ña@ @:m Ó
§¡²Ã´*À8‾&
d¨ìh]@V4
F\@ffffff
ðñÍ+
 a@@ ã8¡²Ã´*Àî2Tvöa@‾&
ã ]@¸ ëQ8@ ã8 ãD,Àî2Tvöa@‾&
]@¸ ëQ8@:m Ó¦ D,À$à
]@*;LÝ@:m Ó
Wb@¶`¦¶]@
*`,À$à
;LÝ@&¿Xò
Wb@¶`¥]@{
¶`,ÀÔ
®Gáº
:m @b&
@:m ÓF\@ffffff
tÚ@ü?
@v
tÚ@ü?´¢
ºÜþ,\@od¨ì0u
i[@Ë
[@A§@SvÛÿºÜþ,\@
? %¿XòÃ\@Ìí2T6
d¨ì0u@è´ @Nû[@4
,ùÅ _ \@=
ðÍ« @è´ Nû[@4ðÍ« @ ÊS ß[@£ o^Í@ ÊS ß[@£ o^
×£p½@,ùÅ _ \@=
×£p½@£ o^ \@`,ùÅ _@¾y5ñ¬ÜW@Yò %¿ @ d¨ì0ùW@ gE#ß@ d¨ì0ùW@ gE#ß@ªËí2(X@*;LÝ@ªËí2(X@ *;LÝ@ | ójZX
×£p½@ß¼ x~X@=
×£p½
¦.7@#
.7@Ùaêrû«X@
@‾&ß¼ ÐX@;L]n
X@Ãõ(\  @‾&  X@Ãõ(\ @Ùaêrû«X@
@#ß¼ ÐX@;L]n 
@½ xV4òX@ïîîîîî@½ xV4òX@ïîîîîî@
×£p=
Y@ Ó:m @
×£p=
Y@ Ó:m @B ÊS#Y@(}Ò'}R@B ÊS#Y@(}Ò'}R@ÇqÇq<Y@¶`¶`@ÇqÇq<Y@¶`¶`@=
×£pUY@7Ði 6þ?=
tò?J
×£pUY@7Ði
tò? ÛdôI¨ Y@×£p=
Y@tÚ@§
6þ?J ôI xY@rÇqÇø?J ôI xY@rÇqÇø?J ôI Y@tÚ@§
×ç? Ûd¨ Y@×£p=
×ç?ñ¬h$àÃY@¢²ÃÔåö×?ñ¬h$àÃY@¢²ÃÔåö×?
¦.ÓY@+ øæÕпe
øæÕп ©ËíëY@à WÏ î¿e ©ËíëY@à WÏ î¿»Üþ CZ@:m Ó:ó¿»Üþ CZ@:m Ó:ó¿XÏ FZ@E#ß¼ ù¿XÏ FZ@E
ÀOè´ vZ@m Ó:m
À ã8 ãtZ@h$à WÀ ã8 ãtZ@h$à WÀ |óvZ@d¨ì0uyÀ |óvZ@d¨ì0uyÀ o^MPZ@½ xV4À o^MPZ@½ xV4Àÿ Ce -
Z@ WÏ À î2Tv
Z@ WÏ À 0 übÉëY@ÑÀ0 übÉëY@ÑÀ´¢ oÒY@û
æÀ´¢ oÒY@û
æÀÍÌÌÌÌ°Y@i$à WSÀÍÌÌÌÌ°Y@i$à WSÀÏ F Y@[°[° ÀÏ F Y@[°[° ÀªËí2 Y@9 ã8 c
ÀªËí2 Y@9 ã8 c
À¤p=
×cY@Ï F> À¤p=
×cY@Ï F> Àm Ó:UY@ä8 ã8Àm Ó:UY@ä8 ã8À÷*;<Y@Ce ©ËíÀ÷*;<Y@Ce ©ËíÀªËí28Y@õI ôI ÿ¿ªËí28Y@
×ÇX@ >é >é×?¤p=
×ÇX@ >é >é×?]n ¡¾X@hE#ß¼ê?]n ¡¾X@hE#ß¼ê?[°[°±X@(}Ò'}Òø?[°[°±X@(}Ò'}Òø?¶`¶ X@K~±äÿ?¶`¶ X@K
@ >é >AX@ËS Û
@¿Xò %X@Ï F>@¿Xò %X@Ï F>@ö(\ ÂõW@&¿Xò ¥@ö(\ ÂõW@&¿Xò ¥@2Tv ºÜW@ùÅ _,9@2Tv ºÜW@ùÅ _,9@æö*ÏW@
¥X@wwwwwwú?sû
¥X@ýbÉ/ üù?ïîîîî¾X@rÇqÇû¿Öij¢ ÐX@Ìí2Tvù¿ÍÌÌÌÌxX@L]n ¡è?n ¡²SX@ übÉ/ ò?n ¡²SX@ übÉ/ ò?Ô:
¹Y@i$à Wé?sû
¹Y@i$à Wé?ìQ¸ Y@.Ø -Ø ò?ìQ¸ Y@.Ø -Ø ò?é >é Y@ øæÕÄø?é >é Y@ øæÕÄø?*;L]nY@êrû
ü?*;L]nY@êrû
ü? qY@^M<+ ÿ?#ß¼ d[@Æ _,ùÅÿ?i$à WK[@=
×£p=õ?i$à WK[@=
×£p=õ?Yò %¿8[@¾y5ñ¬hè?Yò %¿8[@¾y5ñ¬hè? gE#K[@7Ði 6 ? gE#K[@7Ði 6 ?h$à K[@e ©Ëí⿍h$à K[@e
À ôI ôá[@êrû
ÀÜ
 d¨ìü[@¶`¶`
ÀÜd¨ìü[@¶`¶`
*À;L-\@»Üþ Cå
À*;L-\@»Üþ Cå
tN\@u¹ýA J
ÀÚ@§ ÀÚ@§ ºx\@{®GázÀ2Tv ºx\@{®GázÀÇqÇ¡\@@ÈPÙaj
À2Tv
ÀÇqÇ¡\@@ÈPÙaj
À¦.Ë\@.Ø
À:m Ó
Àæö *]@ö\@Ýþ
6ÐiÀæö
-Ø  Ce
À]@ 6Ði
*À:m Ó öÀÐi
\@Ýþ
 6$]@Ìí2Tö
Ce ÀÐi 6$]@Ìí2TöÀS Û$]@cÉ/ übù¿S Û$]@cÉ/ übù¿j 6ÐA]@sû
ó¿j 6ÐA]@sû
ó¿`,ùÅ c]@V4ðÍ«é¿`,ùÅ c]@V4ðÍ«é¿tÚ@§a]@ìQ¸ ë ¿tÚ@§a]@ìQ¸ ë ¿âYÑHÀc]@Ø -Ø -Ø?âYÑHÀc]@Ø -Ø -
×@lÁlÁr]@×£p=
tÚ,\@
×t@Àú¤Oú¤Ã[@X
]n ¡²ÃÔe
ÀÑHÀ7‾
¡Z]@ùÅ
[@Ú@§
ÀA§
lÏÁ_,y
lF-\@
@Àú¤Oú¤Ã[@X
]n¶`¶¡Z]@ùÅ
À2Tv ª\@S
Ï_,y
F @ÀÛD|ôI
ójZ]@lÁ
Àµôá[@
NèÜ\@
¦l.—?¨
Á @åK~±|[@33333s
À ôI ôá[@¦.—?¨
ÀÑHÀ7‾
À\ Âõ(
[@Ú@§\@$à W‾ À\ Âõ(\@$à W‾ À
¦N Àµ NèÜ\@
¦N Àú¤Oú¤Ã\@rÇq'!Àú¤Oú¤Ã\@rÇq'!Àų¢ \@í0u¹ý ÀõI ôI#]@í0u¹ý Àµ Nè]@í0u¹ý Àû
Z]@ ©Ëíò Àa¶` ]@ %¿XòK!Àa¶` ]@ %¿XòK!À—?ÈPÙ¥]@¶`¶` À—?ÈPÙ¥]@¶`¶` À ]@;L]n °!À
Ý"À 6Ðiñ]@åK~±Ä"À 6Ðiñ]@åK~±Ä"À übÉ/
^@ ¡²Ãô"À übÉ/
^@ ¡²Ãô"À³ÃÔåö'^@û
¦#À³ÃÔåö'^@û
ì]@
¦#À±äK~øæÕ¤#À"""""Â]@Çq
øæÕ¤#ÀtÚ@§
^@Ø -Ø m$À±ä
ÇqÜ"À
K~2Tv^@Ø
Þ]@-Ø m$ÀtÚ@§
×£p=J!ÀØ -Ø Ù]@ ôI ôI!À±äK~^@z5ñ¬h À;L]n <^@$à W‾ À;L]n <^@$à W‾ Àu¹ýA n^@é >é þ Àu¹ýA n^@
U^@µ NèÔ!Àsû
U^@µ NèÔ!ÀB ÊS#^@ übÉ/ !ÀB ÊS#^@ übÉ/ !ÀÕåö
tZ
^@aÀ"""""
¶`¶ ÀYò_@‾&
%¿È^@øæÕij
 D Àfffffn^@7Ði
Àí^@XÏ %F À(}Ò'}n^@¢²ÃÔå
Àí^@XÏ F Àv%ºÜþ À= _@ÞÝÝÝÝ!À ºÜþ 7_@Ú@§
$ÀDDDDDì^@Ce
"$À¥Oú¤O
×£p¹^@2Tv
À _@tÚ@§
Àv ºÜþ´_@
_@nðº|%À/—?ÈP¹^@
Í«¡²C$À¥Oú¤O
©Ë!Àv ºÜþ´_@
_@n
 |Ó%ÀUUUUUI_@hE#
ðÍ«
¡²C$ÀÝþ
!À`,ùÅ Ce7_@
_@
*ß;LÝ
Ü"À¡²Ãt#Àò
tÀ`,ùÅ
Ú@§i_@ójâYÑh"À
%¿X
_@*;LÝ
_@ ÀùÅ
ëQ¸
tÚ@§i_@ójâYÑh"À
ÅÀ_,i_@e
âYÑHÀs_@ò
©Ëí!ÀùÅ
%¿Xr
 _@tÚ@§
À_,i_@e
¼»»»»ÿ_@³ÃÔåöG
©Ëí!Àè´
À ëQ¸º]@¶`¶`
ÀójâYÑ°]@ñ¬h$à
tò?!Ce
tò?ùÅ
¦.7_@
.#^@i$à
_,]^@tÚ@§
© ^@d¨ì0u¹ð?!Ce
Wé?î?Õåö
î?ÀójâYÑ°]@ñ¬h$à
_<^@ÈPÙaêrõ?
@ö(\ ÂõÜ?Õåö
© ^@d¨ì0u¹ð?Ü
ÀJ_ôI
@ö(\<^@ÈPÙaêrõ?ùÅ
È]@J
d¨ì ^@cÉ/
ÂõÜ?DDDDDì^@
ôI ôÀJ übï?Ü
ôI_,]^@tÚ@§
È]@J
Âõ(\d¨ì ^@cÉ/
ôI ôÀ übï?ÈPÙaêÒ^@Ü
Ò?DDDDDì^@ øæÕÄÏ]@S
Âõ(\ Ò?ójâYÑÌ^@¢²ÃÔåö×?ójâ
Ûd¨ì0í?ÈPÙaêÒ^@Ü
¨ÿ¿ øæÕÄÏ]@S dÛd¨
×£pU^@u¹ýA Êð¿=
×£pU^@u¹ýA Êð¿!Ce © ^@'  |í¿!Ce © ^@'  | í¿Ï F¾¹^@Ò'}Ò'}è¿Ï F¾¹^@Ò'}Ò'}è¿S Ûd ^@°[°[õ¿S Ûd ^
×£pU^@´¢ o^ü¿=
×£pU^@´¢ o^ü¿ZÑHÀ7w^@Ò'}Ò'ýÀZÑHÀ7w^@Ò'}Ò'ýÀ ¦.— ^@ øæÕÄ3À ¦ .— ^@ øæÕÄ3À2Tv ^@åK~±d
À2Tv ^@åK~±d
À¦.—?¨^@¶`¶` À¦.—?¨^@¶`¶` ÀQÙaêr ^@î2TvÀQÙaêr ^@î2TvÀÇqÇa^@(}Ò'}RÀÇqÇa^@(}Ò'}RÀáz®GU^@.Ø -Ø
Àz5ñ¬h<^@¾y5ñ¬
ÀIÀ7‾&^@ÁlÁl
ÀIÀ7‾&^@ÁlÁl
À ã8 ã^@ ÊS [À ã8 ã^@ ÊS [À+ øæ^@d¨ì0uyÀ+ øæ^@d¨ì0uyÀÏ F
^@!Ce ©KÀ F¾yi_@Yò %¿X@=
×£pi_@
¦.»_@q=
¶`¶à@
×£0@)\ Âõ´_@ o^M<+@«ªªªªn^@ ¡²ÃÔåÞ¿¬ gE#y^@ ã8 ã8Ú¿þA ÊÓ^@ øæÕijö¿ gE#Ó^@^M<+ õ¿
×£p=z_@Pú¤Oú¤ÿ¿B
ÀIÀ7‾&¶^@"""""â
rÇq—^@£ o^ ÀIÀ7‾&¶^@"""""â
ÊS ^@J ôI tÀÈPÙaêv^@a
À ¡²ÃÔ¹^@q=
¶`vÀÝþ Ce‾^@9 ã8 ãÀrÇq—^@£ o^
Àu¹ýA
×£ð
Ài$à À—?ÈPÙ
W _@sû
_@ú¤Oú¤Ï
_@ o^M< ÀYò %¿´_@B ÊSÀYò %¿´_@B ÊSÀi$à W _@ú¤Oú¤Ï
 À®Gáz
`@ìQ¸ ëÀV4ðÍ%`@ ¡²ÃÔeÀV4ðÍ%`@ ¡²ÃÔeÀ ã8 ã>`@Ði 6ÐÀ ã8 ã>`@Ði 6ÐÀ^M<+S`@u¹ýA J À^M<+S`@u¹ý
`@ øæÕÄ3À;L]n
`@ øæÕÄ3À'  `@ ¡²ÃÔå
À o^M< `@è´ N À æö*£`@ÁlÁlÀlÁlÁÈ`@ Ûd¨,À %¿XòÃ`@«ªªªª*À¿Xò %Õ`@³ÃÔåöÀ gE#×`@®Gáz.À gE#×`@®Gá
`@
t ÊS [@ZÑHÀ7`@Ú@§
tÚÐ?Ú@§
`@
t Ûd¨ìØ?Ú@§
`@ Ûd¨ìØ? ©Ëí`@ ôI ôIÓ¿ ©Ëí`@ ôI ôIÓ¿E#ß¼æ_@ 6ÐiÙ?E#ß¼æ_@ 6ÐiÙ? _,ùÅÚ_@ ò? _,ùÅÚ_@
ç_@¿Xò %¿ü?×£p=
ç_@¿Xò %¿ü?£ o^ù_@ÇqÇqò?£ o^ù_@ÇqÇqò?v ºÜþ`@u¹ýA Êø?v ºÜþ`@u¹ýA Êø?´¢ o
`@Üd¨ì0í?´¢ o
`@Üd¨ì0í? ºÜþ `@5ñ¬h$àÓ?®Gáz\`@ Ó:m  ¿ %¿Xò[`@Ãõ(\ Âé¿ %¿Xò[`@Ãõ(\ Âé¿|ójâW`@ÄÔåöî¿ZÑHÀ7K`@
‾`@B ÊS×À!Ce ©‾`@æö*ûÀYò %¿Ra@¨ì0u¹}À o^M^a@ d¨ì0uÀ o^M^a@ d¨ì0uÀ _,ùÅRa@¦.—? À _,ùÅRa@
×£p=J!À1u¹ýA a@
ÀR¸
À×£p=J!À
übÉ/¼`@³ÃÔåö
ë«`@ä8
ºÜþã8a@áz
ÀR¸®ë«`@ä8
G À ºÜþã8 À9a@áz
ã8®G `@—?ÈPÙa
À¨ì0u¹ka@4ðÍ«i À¨ì0u¹ka@4ðÍ«i ÀUUUUU_a@ÀUUUUU_a@ÀΫ gE_
À9 ã8 `@—?ÈPÙa
tÚ@
Àò %¿X `@A§Àò
ÀÔ:%¿X
m  `@ñ¬h$à
`@A§ ÀÔ:m  `@ñ¬h$àÀ¼»»»»‾`@ß¼ xV4À¼»»»»‾`@ß¼ xV4ÀþA Ê£`@ýbÉ/ üÀþA Ê£`@ýbÉ/
×ã¿ìQ¸ }`@×£p=
×ã¿S
Æ`@Ï FÛ¾`@
Æ`@QÙaêrûyù¿tÚ@§
ÀübÉ/
tÚ@§WÕ`@ÍÌÌÌÌÌ
i$à Ø¿S Û `@ ÀübÉ/ i$à WÕ`@ÍÌÌÌÌÌ
Ø¿G¾y5£`@áz
À+
®Gáà¿G¾y5£`@áz
øæá`@ ®Gá࿼»»»»‾`@ñ¬h$à
øæÕij 翼»»»»‾`@ñ¬h$à ç¿
À+ øæá`@ øæÕij
Àïîîîîö`@Ï F> Àïîîîîö`@Ï F> ÀðÍ« a@ójâYÑÈÀðÍ« a @ójâYÑÈÀ übÉ/a@¨ì0u¹ýÀ übÉ/a@¨ì0u¹ýÀE#ß¼
tÚÌa@Ãõ(\
×£ù¿{®Gáú`@BÇqÇqæ¿
ÀA§
À°ß[¼°Ýxî`@
a@8‾&å¿#ß ¼ ªa@è´ N À o^M<—a@Ï F¾ùÀ o^M<—a@Ï F¾ùÀA§
À°[°Ýa@8‾& 
ÀÇqÇóa@ffffff
ÀÇqÇóa@ffffff
À#ß¼ b@ d¨ì0uÀ#ß¼ b @ d¨ì0uÀÉ/ übb@®Gáz ÀÉ/ übb@®Gáz ÀþA Ê!b@h$à WÀþA Ê!b@h$à WÀÍÌÌÌÌ4b@
¦îÀÍÌÌÌÌ4b@
¦îÀ9 ã8 9b@ýbÉ/ |À9 ã8 9b@ýbÉ/ |À}Ò'}ÒMb@@ÈPÙajÀ}Ò'}ÒMb@@ÈPÙajÀK~±ä_b@\ Âõ( ÀK~±ä_b@\ Âõ(
¦n$À¬ gE#Ób@
¦n$À7Ði ¾b@'  Ü $À7Ði ¾b@'  Ü$Àú¤Oú¤¥b@Ϋ gE $Àú¤Oú¤¥b@Ϋ gE $À b@ffffff$À b@ffff
pb@ 6Ði£#Àû
t
"tÚ
À?é
À[°
Àp)\
b@
Àe[°Mb@ÄÔåö
À/—?ÈPéa@ÍÌÌÌÌ
6Ði£#À
>éUb@tÚ@§
Âõ(b@tÚ@§
©Ëíõa@A§
b @õI ôI_
gE#
9!À[°
Àab@ñ¬h$àÛ"À
[À/—?ÈPéa@ÍÌÌÌÌ
°Mb@ÄÔåö
b@õI ôI_
9gE#
!ÀG
ÀaJ¾b@ñ¬h$àÛ"À?é
y5Ab@9
ôI bÀ @Ãõ(\
übÉ/Ða@,ùÅ
ã8 À# JÀG
>éUb@tÚ@§
ôI ¾y5Ab@9
_¬
b@Ãõ(\
À übÉ/Ða@,ùÅ
ã8
À e#©Ëíõa@A§
À)\ Âõ(b@tÚ@§
_¬ Àv ºÜþÜa@ ã8 ãØ Àv ºÜþÜa
ÀÇqÇ{b@÷*;
4
ÀÀsû
|ójâYýb@tÚ@§
_,ùÅxb@ójâYÑÀ~±äKc@ªËí2TÀ³ÃÔåö c@K~±ä À ³ÃÔåö c@K~±ä À |ójâYýb@tÚ@§
çb@ 6Ði Àsû
çb@ 6Ði ÀâYÑHÀ×b@tÚ@§ À âYÑHÀ×b@tÚ@§ Àq=
×£¾b@«ªªªª*Àq=
×£¾b@«ªªªª*À übÉ/²b@  |óÀ übÉ/²b@  | óÀ9 ã8 ¥b@ gE#_À9 ã8 ¥b@ gE#_ÀÜd¨ì b@ -Ø - À Üd¨ì b@ -Ø
À4ðÍ«c@è´ Nh
À)\ Âõc@ _,ùÅ À)\ Âõc@ _,ùÅ ÀÀ7‾& c @9 ã8 c
ÀÀ7‾& c @9 ã8 c
tÚ@
À1u¹ýAòb@A§
À1u¹ýAòb@A§
À¥Oú¤Oäb@Ùaêrû À¥Oú¤Oäb@ÙaêrûÀR¸ ë×b@=
×£p½Àq=
×£¾b@µ
tÚ@§õ¿ðÍ«
tÚ@Ab@À7‾&
Nè´gÀU
cÑHÀ7‾¾b@
@
Àß¼
Ï FxV<b@"""""â
> -Ø -Ø
À¸À7Ði
ÀëQ
¾y5ñ8^@/—?ÈPù,@^M<+
c¸b@S
@hE#ßÛ
<dù¿~±ä
À¥Oú¤OZc@³ÃÔåö
K²b@§9^@QÙaêrû,@¶`
À»Üþ Cic@´¢
¶` ^@&¿Xò
o À2»Üþ
 @ÕåöCic@´¢
 ^@ xV4 o1@Õåö
À°[°{c@
^@
1@ÇqÇq ^@ýbÉ/
1@ ©Ëí ^@i$à Ws0@ ©Ëí ^@i$à Ws0@fffffn^@ÁlÁ
0@fffffn^@ÁlÁ
0@ ÊSNèg^@
tÎ^@ ´¡*@Ú@§
´¡*@~±ä
d¨ì0U/@
K¶^@!Ce
ÊS g^@
©k+@~±ä
d¨ì0U/@u¹ýA
K¶^@!Ce ©k+@
f^@n Âõ(\
¡²Ã-@u¹ýA
^@¤p= f^@n ¡²Ã-@´¢ on^@¹ýA Ê®,@´¢ on^@¹ýA
× +@ Âõ(\ ^@¤p=
×x^@ðÍ«
¦.#^@(}Ò'}B2@kâYÑH<^@çÕij¢
.#^@(}Ò'}B2@
+@ d¨ì0U^@ðÍ«
gÅ-@êrû gE+@ d¨ì0U^@ðÍ« 2@kâYÑH<^@çÕij¢
gE+@5ñ¬h$8^@ÿ2@Ce
ôIi+@5ñ¬h$8^@ÿ
ôa^@/—?ÈPi2@Ce
ôIi+@À7‾&
ôa^@/—?ÈPi2@Õåö
=^@ ÊS û,@À7‾&
 ^@ ã8 ãh2
=^@
_@j 6Ði+@L]n _@ ôI ôi+@à WÏÒ^@ ºÜþ #)@B ÊSû^@Æ _,ùE(@B ÊSû^@Æ _,ùE(@õI ôIÏ^@ZÑHÀ7)@õI ôIÏ^
×£P)@âYÑHÀ ^@q=
×£P)@ö(\
)@@ÈPÙa^^@yV4
)@Ãõ(\ :^@Ði
Âu^@6ð¶)`¶@Ãõ(\
 *@ÈPÙaê"^@DDDDD
:^@Ði 6)@:m Ó"^@ÈPÙaêr*@
+@z5ñ¬h<^@[°[°:+m Ó"^@ÈPÙaêr*@(}Ò'}
@z5ñ¬h<^@[°[°+@&¿Xò^@cÉ/
U^@2ü¢*@¸
Tv *@&¿Xò
ëQ_@ų¢
U^@2)@
Tv WÏ*
×£p}'@ o^M<_@=
×£p}'@|ójâY_@rÇqG(@|ójâY_@rÇqG(@³ÃÔåö#_@ øæÕij&@³ÃÔåö#_@ øæÕij&@¿Xò %C_@K~±äë%@¿Xò %
×#%@1_@¤p=
×#%@ÇqÇ_@ %¿Xòë%@ÇqÇ_@ %¿Xòë%@
¦_@µ Nè´&@&¿Xò i_@û
 $@4ðÍ«i_@ ¡²Ã4#@4ðÍ«i_@ ¡²Ã4#@é >é _@ 6Ði "@é >é _@ 6Ði "@Tv ºÜ _@À7‾& 5!@Tv ºÜ _@À7‾
_@QÙaêr»@ò %¿X
t^_@à
_@QÙaêr»
tÚ ^@ W6Ði#
ÏÊ"@¸
Ê"@Ú@§
@¾y5ñÜ^@ö(\
@@A§ëQ\_@?é
Ûd¨À^@Üdµ
¨ìp
>é @¾y5ñÜ^@ö(\
#@
@ Âõ(\
Ûd¨À^@Ü
^@ßdµ
¼¨ìp
@±ä
xÖ@K@Á
~¹^@Ce
ì^@‾&
lÁt^@ -Ø
©Ë--ì@^@‾&
D!@ ±ä
@GK¾~¹^@Ce
y5U^@[°
 D!@é©Ë-
[>é°@kâYÑH<^@°
u¹ýA
_@UUUUU5!@é
^@#[ß°
¼@1u¹ýA
¸@u¹ýA
>é _@UUUUU5!@
^@#ᬀ
^@ÇqDZ@1u¹ýA
^@$à WO@ ¦.—ë^@E#ß¼z"@K~±äë^@\ Âõ(<"@Ï F_@ÑHÀ7‾&$@G¾y5_@ $@ñ¬h$à_@,ùÅ _ì%@½ xV4_@øæÕij"%@½
×£p=ê%@j 6б^@
tÚ@G(@{
×£p=ê%@
^@UUUUUµ&@Tv
^@UUUUUµ&@tÚ@§
®Gáþ]@
WÏ ^@—?ÈPÙ!%@
ºÜ~^@Ï ßF~¼W
ëQ¸~'@# '@UUUUU
^Ï@ 6Ði#%@<+
^@—?ÈPÙ!%@tÚ@§
^@§ øò]@DDDDD$%@rÇqC]@ Âõ(\O@L]n A]@*;L]n @Üd¨ìà]@¢²ÃÔ
U"@9 ã8 s]@êrû
U"@#ß¼ ]@2Tv ºÜ"@#ß¼ ]@2Tv ºÜ"@4ðÍ«¥]@ö(\ µ#@4ðÍ«¥]@ö(\ µ#@×£p=
¿]@2Tv º¼$@×£p=
¿]@2Tv º¼$@ªËí2Ø]@p^M<+&@ªËí2Ø]@p^M<+&@a¶`Þ]@a¶`¶&@ªËí2 _@ ºÜþ £.Ài$à W7_@yV4ðí-Ài$à W7_@yV
tªc@
×c@ðÍ«
¦.—?H!À33333c@—?ÈPÙ
}e@M<+ x@<+ øÀ¾y5ñ¬Òc@
e@)\ Âõ(@eübÉ/V
©Ëíe@~±ä
Àö(\K¾Âác@
@ÍÌÌÌÌxe@z5ñ¬h$
d¨ì0uÀö(\ Âác@
@(}Ò'}de@áz
d¨ì0uÀM<+
®Ga@hE#ßzc@IÀ7‾&
øc@lÁl ÀM<
ÀÏ
×Ï`@ o^M¼@½ xV4Fa@ÈPÙaê#@½ xV4Fa@ÿ Ce #@¨ì0u¹b@  | ó*@ xV4(b@ o^M<K,@ xV4(b@ o^M<K,@[°[(b@
.@ ëQ¸4b@9 ã8 #.@ ¡²Ã4b@[°[°U0@à WÏ4b@Üd¨ì`0@ ëQ¸4b@,ùÅ _¼2@'  6b@=
×£pÍ2@lÁlU^@¬ gE#Á,@|ójâYU^@ |óê,@2Tv úV@2Tv º¼;@À7‾& W @Ô:m Ó;@À7‾& W@Ô:m Ó;@ F¾y9W@ðÍ« 7<@
=@ ëQ¸ÝW@ýbÉ/
d=@E#
=@çÕij¢
d=@çÕij¢
tÚ@w<@ß¼
tÚ@w<@(}Ò'}VX@
ß¼X@ïîîîîþ<@E#
X@tÚ@§
xV(X@§¡²ÃÔ5<@(}Ò'}VX@
X@tÚ@§
ß¼X@ïîîîîþ<@ß¼
¡²ÃÔ5<@Pú¤Oú@X@Ce
xV(X@§ ©Ë½;@Pú¤Oú@X@Ce ©Ë½;@S Û(X@ 6Ði];@S Û(X@ 6
;@þA ÊûW@:m Ó
;@¾y5ñ¬ÐW@a¶`¦:@¾y5ñ¬ÐW@a¶`¦:@Ýþ CeÃW@áz®Gñ9@Ýþ CeÃW@áz®Gñ9@7Ði ªW@p9@7Ði ªW@p9@û
¢W@´¢ o®8@û
¢W@´¢ o®8@ÿ Ce W@n ¡²38@ÿ Ce W@n ¡²38@ÇqÇqxW@33333ó7@ÇqÇqxW@33333ó7@ ôI ôYW@G¾y5 7@ ô
7@;L]n LW@J ôI T6@Ò'}Ò'-W@ (6@E#ß¼æU@ËS ÛÏ;@wwwwwûU@cÉ/ üÒ;@ ëQ¸æU@R¸ ëa:@ų¢ V @
×£p=
;@ų¢ V @
×£p=
;@Ô
tÚÐ:@UUUUUñV@O
tÚÐ:@í0u¹ýáV@A§
tÚ
tº:@è´
tº:@¨ì0u¹}V@Ú@§
V@÷
:m *;|:@
;|:@A§
VN
@°V@r
 | 6ÐiGV@
Ó;@Ô
ÇqèÇ:´:@è´
m ¶n;@ÍÌÌÌÌDV@Öij¢
V`¶@@:@
N°|V@r
Ó;@
6ÐiGV@
ÇqÇW:@í0u¹ýáV@A§
Ï ¶2V@Ce
`¶@:@q=
ð5@e
©Ëm;@
©Ëí;V@ÿ
WÏ 2V@Ce
Ce ¹6@e
©Ëm;@µ
©Ëí;V@ÿ
NèPV@CeºÜþ
¹6@Ó;@µ
Ï F2V@Ü
NèdPV@
¨ì 7@
ºÜþÏ Ó;@r
F2V@Ü
Çq
d¨ì
sV
×£dV@Ház®÷9@q=
×£dV@Ház®÷9@ ¡²ÃÔ}V@ ÊS K9@ ¡²ÃÔ}V@ ÊS K9@âYÑHÀ‾V@ >é >)9@âYÑHÀ‾V@ >é >)9@û
âV@ö(\ Â%9@û
âV@ö(\ Â%9@®GázW@åK~±9@®GázW@åK~±9@ò %¿XW@ų¢ ‾8@ xV4W@ d¨ì0 7@þA ÊW@bêrû 7@þA ÊW@bêrû 7@
W@wwwww'5@`,ùÅ ³X@—?ÈPÙ!%@ÇqÇÅX@£ o^í%@ÇqÇÅX@£ o^í%@ %¿Xò×X@/—?ÈP¹&@ %¿Xò×X@/—?ÈP¹&@åK~±ä
×£p=J.@ýbÉ/ X@
×£p=J.@ö(\ Â¥X@Ï F /@ö(\ Â¥X@Ï F /@L]n ¥X@K~±ä 0@L]n ¥X@K~±ä 0@ o^M X@e ©Ëí?1@ o^M X@e
1@Ìí2TZX@(}Ò'}r2@n ¡²sX@‾&  3 @n ¡²sX@‾&  3@q=
×£ X@ÇqÇq¼3@q=
×£ X@ÇqÇq¼3@.Ø -ؾX@wwwwwÇ3@.Ø -ؾX@wwwwwÇ3@ o^M<ßX@ZÑHÀ7_4@ o^M<ßX@ZÑHÀ7_4@ß¼ xVY@¹ýA Ê^4@
¦ºY@ o^M|'@Ãõ(\ ®Y@Ház®G(@Ãõ(\ ®Y@Ház®G(@J ôI  Y@kâYÑHÀ)@J ôI  Y@kâYÑHÀ)@ ¡²Ã Y@Ϋ gE#+@
Z@ùÅ _,¹,@êrû
Z@ùÅ _,¹,@i$à W7Z@Ìí2TÖ,@i$à W7Z@Ìí2TÖ,@ß¼ xVPZ@lÁlÁv,@ß¼ xVPZ@lÁlÁv,@Ði 6pZ@|ójâY1,@Ði 6pZ
Ce
tj4@p^M<+
tj4@©|%ójâ
@cÉ/Z@n
Zü6Z@!Ce
@Ú@§¡²£3@|©%ójâ
@yV4
Z@nðZ@E#
¡²£3@"""""
ß¼Ú$@`,ùÅZ@Ò'}Ò'ý2@"""""
Y@+ øæU6@BZ@Ò'}Ò'ý2@¶`
ÊS£Y@Üd¨ìð5@B
¶`7Z@h$à
ÊS£Y@ÜÇ2@¶`
d¨ìð5@¶`7Z@h$à
¡²ÃÔ¹Y@Ç2
6
tÚ 4@Ï F
Y@A§
tÚ 4@ò %¿X"Y@E#ß¼ú3@ò %¿X"Y@E#ß¼ú3@|ójâYMY@¢²ÃÔå 3@|ójâYMY@¢²ÃÔå 3@÷*;PY@sû
Y@A§
Í2@÷*;PY@sû
Í2@¾y5ñHY@J ôI 2@¾y5ñHY@J ôI 2 @®GázpY@UUUUU2@®GázpY@UUUUU2@2Tv º Y@)\ Âõø1@2Tv º Y@)\ Âõø1
Z@‾&  2 @[°[
Z@‾&
tÚhZ@
ÄD@A§® GázôD@
GázôD@A§
2 @,ùÅ _WZ@kâYÑH 1@,ùÅ
Ï Z@Ce ©ËE@ WÏ_ Z@kâYÑH 1@'
Z@Ce ©ËE@ËS Û4 Z@ìQ¸
Z@ ¦.—;1@'
E@ËS Û4Z@ìQ¸
Z@ ¦.—
;1@õI
E@yV4ðôI7Z@ZÑHÀ7o0@õI
ÍZ@ß¼ xV,E@yV4ðÍZ@ß¼
ôI7Z@Z
É[@ ã8 ã°E@êrû
É[@ ã8 ã°E@»Üþ Cå[@L]n ÁE@»Üþ Cå[@L]n ÁE@ gE#ß[@Æ _,ù%F@ gE#ß[@Æ _,ù%F@ýbÉ/ ä[@;L]n XF@ýb
<@¹ýA Ê X@í0u¹ýÑ;@¹ýA Ê X@í0u¹ýÑ;@Yò %¿¬X@£ o^m;@Yò %¿¬X@£ o^m;@ ¡²ÃÔ±X@‾&  ¤:@ ¡²ÃÔ±X@‾&
X@âYÑHÀw9@êrû
tÚX@âYÑHÀw9@1u¹ýAnX@
6@@¾y5ñðX@A§
©Ëí  |9@1u¹ýAnX@  |9@ _,ùÅnX@æö*K8@ _,ùÅnX@æö*K8@hE#ß X@ZÑHÀ78@hE#ß X@ZÑHÀ7
Y@hE#ß|5@ ©Ëí
Y@hE#ß|5@ß¼ xV0Y@ýbÉ/ 5@ß¼ xV0Y@ýbÉ/ 5@&¿Xò UY@5ñ¬h$05@&¿Xò UY@5ñ¬h$05@ò %¿XnY@|ójâYá5@ò
¦Z@4ðÍ«¹6@
¦Z@4ðÍ«¹6@ 8Z@~±äK7@ 8Z@~±äK7@d¨ì0uiZ@Üd¨ì7@d¨ì0uiZ@Üd¨ì7@«ªªªª Z@QÙaêrû6@«ªªªª Z@
tÚð5@êrû
ÁZ@A§
tÚð5@ÈPÙaêæZ@ ÊS
ÁZ@A§ 5@ÈPÙaêæZ@ ÊS 5@ o^MüZ@ÇqÇq 5@Ce ©ËÕ`@\ Âõ(H@33333Õ`@S ÛdÈG@33333Õ`@S Û
H@É/ üb£`@z5ñ¬h
H@¥Oú¤O¼`@j 6Ð!H@¥Oú¤O¼`@j 6Ð!H@ |óÈ`@ËS Û/H@Ce ©Ë_@ ëQ¸ýC@a¶`_@¨ì0u¹ýC@à WÏæU@ H@m Ó:V@Ò'}
¦~G@ñ¬h$à‾V@
¦~G@þA Ê»V@kâYÑH G@þA Ê»V@kâYÑH G@  |‾V@é >é ÞF@  | ‾V@é >é ÞF@m Ó:ÉV@
×£p= F@m Ó:ÉV@
×£p= F@¹ýA ÊúV@ ¡²ÃÔ F@¹ýA ÊúV@ ¡²ÃÔ F@Ø -Ø -W@Üd¨ì F@Ø -Ø -W@Üd¨ì F@V4ðÍ_W@ xV4xF@V4ðÍ_W@
E@åK~± Y@ Ûd¨
E@ÈPÙaêÊY@¸ ëQøD@ÈPÙaêÊY@¸ ëQøD@,ùÅ _ìY@è´ NèD@,ùÅ _ìY@è´ NèD@Oè´ Z @Ce ©ËíD@Oè´ Z@Ce ©ËíD@¼
`@DDDDDE@z5ñ¬h
`@DDDDDE@ ¦ .—ÿ_@¶`¶¸D@ ¦ .—ÿ_@¶`¶¸D@±äK~Í_@à WÏÂD@±äK~Í_@à WÏÂD@V4ðÍ _@æö*«D@V4ðÍ _@æö*«D@*;
V@"""""²H@1u¹ýA2V@ Nè´¹H@1u¹ýA2V@ Nè´¹H@ú¤Oú¤KV@ ã8 ãÀH@ú¤Oú¤KV@ ã8 ãÀH@½ xV4jV@åK~±äH@½ xV
AX@î2TvðH@sû
AX@î2TvðH@9 ã8 sX@ ºÜþ ûH@9 ã8 sX@ ºÜþ ûH@ ëQ¸ X@ójâYÑHI@ ëQ¸ X@ójâYÑHI@2Tv vX@æö*{I@2Tv v
nY@«ªªªªºI@û
t*I@ñ¬h$à
t*I@
nY@«ªªªªºI@Ði
ã8 ãÀZ@ä8
Z@Ú@§ã8
6 IY@.Ø
@ ã8-ØzI@Ði
ãÀZ@ä8 ã8
6 IY@.Ø
@ 6ÐiçZ@
-ØzI@¾¶y5ñüH@
`¶ Y@cÉ/
6ÐiçZ@
üBI@¾y5ñüH@è´
¶`¶ Y@cÉ/N[üBI@R¸
@ übÉ/ÖH@è´
ë¹Y@ÜdN
¨ì(I@R¸
[@ übÉ/ÖH@Ø
ë¹Y@
×£p¥H@ 6ÐiÉ[@=
×£p¥H@ gE#û[@  | ³H@ gE#û[@  |³H@ F¾y-\@ËS Û¿H@ F¾y-\@ËS Û¿H@ ÊS K\@ÍÌÌÌÌäH@ ÊS K\@ÍÌÌÌÌäH@¶
Ö]@Oè´ I@e ©Ëí×]@2Tv RI@e ©Ëí×]@2Tv RI@ 6Ðiñ]@è´ N I@ 6Ðiñ]@è´ N I@ ©Ëí^@âYÑHÀßI@ ©Ëí^@âYÑ
tÚèG@V4
e ©ËMH@e ðÍ©ËíW`@B
`@j 6Ð F@ÞÝÝÝÝ
ÊSÿG@e ©ËíW`@B
`@û ÊSÿG@Ï F^`@A§
 F@ÞÝÝÝÝ `@û
 F@ïîîîîp`@ÈPÙaê F@ïîîîîp`@ÈPÙaê F@ ºÜþ g`@ d¨ì0%F@ ºÜþ g`@ d¨ì0%F@|ójâYg`@¬ gE#ÁE@|ójâYg`
×£x\@ų¢ oö?q=
×£x\@ų¢ oö?®Gáz¦\@Ði 6Ðø?®Gáz¦\@Ði 6Ðø?à WϪ\@ÑHÀ7‾&ú?¿Xò %s]@q=
×£°@ ÊS s]@q=
×£°@&¿Xò \@2Tv ºÜ@ øæÕÄÃ\@Ô:m S@ øæÕÄÃ\@Ô:m S@z5ñ¬hÐ\@kâYÑHÀ@ªËí2 a@sû
ÀªËí2 a@ >é >i
ÀªËí2 a@ >é >i
÷ÿñ§¾{7ïýí
ÀªËí2 a@
ÀªËí2 a@E#ß¾¼
ÀªËí2 a@UUUUUÕ
Þ¶éYü
ÀªËí2 a@E#
YÀªËí2 a@
[6<säߺ¼ î|$¬8,4ɹ£
ÀªËí2 a@
YÀªËí2 a@¨ì0u¹}
QÀתËí2 a@
Ù´nÍ Q¶#øAüþã
ÀªËí2 a@kâYÑH
ªËí2 a@¨ì0u¹}
_Äwñõ_n¼»sÛ
ÀªËí2 a@kâYÑH
ªËí2 a@v
—o~ ,O¾
ºÜþ ?À¼ #ªËí2 a@a
ªËí2 a@v
ÒÎ ½ùþ®í?Á
¶`
ºÜþ 
¶ÀªËí2 a@a
ÀUUUUU
ìnz¾óï×
ÀªËí2 a@×£p=
ÀªËí2 a@à WÏJÀªËí2 a@à WÏJÀä8 ã8 a@ gE#? Àä8 ã8 a@ gE#? Àä8 ã8 a@M<+ X!Àä8 ã8 a@M<+ X!À
+c@ ã8 ã =À×£p=
+c@ ã8 ã =Àu¹ýA &c@z5ñ¬h>Àu¹ýA &c@z5ñ¬h>À‾&  c@q=
×£ >À‾&  c@q=
×£ >ÀÏ F¾c@IÀ7‾&.?ÀÏ F¾c@IÀ7‾&.?À~±äKc@è´ N»?À~±äKc@è´ N»?À±äK~c@ | ój*@À±äK~c@ | ój*@À¹ýA Êþ
åBÀIÀ7‾&¨b@sû
åBÀ |ój b@ójâYÑèBÀ |ój b@ójâYÑèBÀ ã8 ã b@tÚ@§íBÀ ã8 ã b@tÚ@§íBÀ*;L]nsb@ùÅ _, CÀ*;L]nsb@ù
CÀ ºÜþ -b@û
tÚ@Õa@ÞÝÝÝÝ=CÀö(\
tÚ@Õa@ÞÝÝÝÝ=CÀ§
CÀ F¾yb@—?ÈPÙñBÀ ¿a@5ñ¬h$(CÀö(\
F¾yb@—?ÈPÙñBÀñ¬h$à
¿a@5ñ¬h$(CÀÉ/
b@ß¼ x.CÀñ¬h$à
üb©a@À7‾&
b@ßC¼ ÀÉ/
x.CÀffffføa@ìQ¸
üb©a@À7‾& C ÀÏ[CÀffffføa@ìQ¸
F¾ a@ 6ÐiCÀÏ
¦ta@¥Oú¤OBÀ
¦ta@¥Oú¤OBÀ 6Ðica@j 6ÐÑAÀ 6Ðica@j 6ÐÑAÀ  |Qa@33333ÓAÀ  |Qa@33333ÓAÀ Ó:mPa@Õåö AÀ Ó:mPa@Õåö
@ÀÝþ Ce³`@z5ñ¬h
@ÀõI ôI `@ ¦ .—ÿ?ÀõI ôI `@ ¦ .—ÿ?À d¨ì0 `@¿Xò %ÿ?À d¨ì0 `@¿Xò %ÿ?À—?ÈPÙu`@yV4ð?À—?ÈPÙu`@yV4ð
Á_@Tv ºÜ&@Àêrû
Á_@Tv ºÜ&@À F¾y _@K~±ä#@À F¾y _@K~±ä#@ÀÍÌÌÌÌ _@K~±ä#@À{®Gá b@ÙaêrûcDÀ5ñ¬h$ b@.Ø -تDÀ5ñ¬h$
×£p}]@*;L] AÀ=
×£p}]@*;L] AÀøæÕijJ]@ò %¿X AÀøæÕijJ]@ò %¿X AÀïîîîî"]@
×£p= AÀïîîîî"]@
tÚh@À
tÚh@Àe

×£p=
\@wwwww'<ÀA§
\@wwwww'<À*;L]n
AÀÙaêrûû\@
WÏ©Ëíç\@A§
î\@{®Gá"@À
gE#\@7Ði
_AÀÙaêrûû\@
WÏ î\@{;À*;L]n
®Gá"@À
gE#
*;Lí\@d¨ì0u¹?À
_AÀ¢²ÃÔåÞ\@#
\@7Ði ;À|ójâu\@bêrû
*ß;Lí\@d¨ì0u¹?ÀPú¤OúØ\@ÍÌÌÌÌ,?ÀPú¤OúØ\@ÍÌÌÌÌ,?À
¼ 0AÀ¢²ÃÔåÞ\@#ß¼ 0AÀj 6н\@£ o^õ@Àj 6н\@£
;À|ójâu\@bêrû
;À=
×£pY\@ò %¿X :À=
×£pY\@ò %¿X :ÀÏ Fb\@ F¾yõ9ÀÏ Fb\@ F¾yõ9À+ øæu\@ Nè´A9À+ øæu\@ Nè´A9ÀZÑHÀ7_\@ WÏ 8À
76ÀÆ _,ùu\@×£p=
76À;L]n  \@*;L6À;L]n  \@*;L6ÀkâYÑH¼\@Ði 6°5ÀkâYÑH¼\@Ði 6°5À9 ã8 ß\@|ójây5À9 ã8 ß\@|ójây5À{®Gá
^@E#ß¼ê3À®Gáz
^@E#ß¼ê3À >é >-^@¾y5ñ¼3À >é >-^@¾y5ñ¼3ÀcÉ/ üR^@ Âõ(\_3ÀcÉ/ üR^@ Âõ(\_3À h^@Ãõ(\ Ò2À
-À$à W{_@ | ó
-ÀÇqÇq¤_@R¸ ëQ,ÀÇqÇq¤_@R¸ ëQ,ÀÈPÙaêÒ_@&¿Xò å+ÀÈPÙaêÒ_@&¿Xò å+À0 übÉ÷_@IÀ7‾&Þ,À0 übÉ÷_@IÀ7‾&
õ-ÀÏ F¾'`@êrû
õ-ÀYò %¿,`@ñ¬h$àÛ,ÀYò %¿,`@ñ¬h$àÛ,Àbêrû 8`@E#ß¼ +Àbêrû 8`@E#ß¼ +À ôI ôI`@*;L]n *À ôI ôI`@*;
×£p=ª'À  |³`@
×£p=ª'ÀÌí2TÆ`@Ø -Ø í'ÀÌí2TÆ`@Ø -Ø í'ÀYò %¿Ø`@£ o^í'ÀYò %¿Ø`@£ o^í'Àv ºÜþð`@ðÍ« g%(Àv ºÜþð
Ý,ÀM<+ ô`@sû
Ý,À0 übÉù`@tÚ@§M.À0 übÉù`@tÚ@§M.À/—?ÈPa@2Tv :/À/—?ÈPa@2Tv :/ÀcÉ/ üa@¬ gE#á/ÀcÉ/ üa@¬ gE#á/
Ý0ÀfffffZa@sû
t,Ý0À®Gáz
À ÇübÉ/²a@Ú@§
Àr qµa@S
la@¿Xò
Ûd¨*Àr
%_1À®Gáz
Çqµa@Sla@¿Xò
Ûd¨*ÀhE#
%_1ÀÔ
ߺa@:m }a@G
*;L].)ÀhE#
¾y5¡1ÀÔ
ߺa@:*m }a@G
;L].)ÀIÀ7‾&¾a@ójâYÑè'ÀIÀ7‾&¾a@ójâYÑè'À}Ò
¾y5¡1ÀZÑHÀ7 a@ªËí2¤1ÀZÑHÀ7 a@ªËí2¤1
b@´¢ o ,À xV4
b@´¢ o ,ÀÆ _,ùb@ìQ¸ k-ÀÆ _,ùb@ìQ¸ k-À8‾& + b@.Ø -Ø .À8‾& +b@.Ø -Ø .À33333-b@[°[ð/À33333-b@[
×C4ÀåK~± b@¤p=
×C4À*;L]n
[@V4ðÍ«ÀtÚ@§
|b@
ójâ [@4
øæÕÄã4À0
ðÍ« À|übÉo[@
ójâ [@4
ôIðÍ«ôIï¿E#
ÀÞÝÝÝݹ[@
ß¼ [@ä8 [ã8°[0
ø¿E#
ÀÞÝÝÝݹ[@
ß¼ [@ä8[°[ã80Àø¿tÚ@§
cÉ/ üê[@ß¼ xV4ÀcÉ/ üê[@ß
\@L]n ¡
ÀYò %¿
\@L]n ¡
ÀâYÑHÀ/\@ F¾yµ
ÀâYÑHÀ/\@ F¾yµ
À?é >é_\@ >é >i À?é >é_\@ >é >i À øæÕÄ \@#ß¼ ø
À øæÕÄ \@#ß¼ ø
ÀÑHÀ7‾¦\@Ô
ÀÀÀí0u¹ýÍ\@¦.—?ÈPÀí0u¹ýÍ\@¦.—?ÈPÀ
¾y5ñð\@ÄÔåö
:m Ó ¾y5ñð\@ÄÔåö
×£p=
]@`,ùÅ _ À
×£p=
]@`,ùÅ
\@ójâYÑÈ_ ÀØ
ÀtÚ@§-Ø A\@'
ÀkâYÑH
  ]ÀØ
@IÀ7‾&
-Ø A\@'
ÀkâYÑH ] @IÀ7‾&
À Ó:md\@æö
À¦.—?*]Û@ÈPÙaêrû¿
À Ó:md\@æö
¦.—?
*Û]@ÈPÙaêrû¿r
À øæÕÄ
Çq;]@½\@Ãõ(\
xV4ô¿r
B!ÀÇq;]@½
øæÕ
×/\@(}Ò'}ÒÀ¤p=
×/\@(}Ò'}ÒÀÇqÇq
\@ËS Û À ÇqÇq
\@ËS Û À /—?ÈPé[@+ øæÕÀ/—?ÈPé[@+ øæÕÀ}Ò'}ÒÃ[@ËS ÛßÀ}Ò'}ÒÃ[@ËS ÛßÀ<+ ø¢[@ ã8 ãxÀ
n[@ øæÕÄ3ÀCe ©Ëy[@\ Âõ(\Àµ Nè@\@K~±ä Àq=
×£d\@ ¡²Ã À q=
×£d\@ ¡²Ã À >é >A\@B ÊS×À >é >A\@B ÊS×Àè´ N0\@Ô:m Àí0u¹ý¡\@E#ß¼: À+ øæÍ\@"""""" À+ øæÍ
W!ÀtÚ@§ ]@×£p=
^@°
W!Àö(\
¦.w[°À/—?ÈPA^@^M<+
û"À Âi]@"""""â!Àö(\
d¨ì0-^@  É|Ó#À À/—?ÈPA^@^M<+
Âi]@"""""â!ÀB
d¨ì0-^@  |Ó#À É À Ê|Ss^@`,ùÅ
7]@p^M<+
^@þA Êÿ$"ÀÀBÀ Ê |Ss^@`,ùÅ
7]@p^M<+
^ @þA Ê$À8‾&
ÿ"ÀÀ{
øæÕH]@¿Xò
®ÕGá
 ]@fffff
^@ o^M<!À{
%¿
#À8‾&
À!Ce®Gá
Õ©Ã]@¸
]@fffff
^@ o^M
ëQØ#
t^@a
_@¶`¶ ÀõI È ÀôIË^@2Tv
Âõ(\s^@cÉ/ º| ü
À%ÀÿÛd¨Ü^@n
Ce m^@,ùÅ ¡²£ À_,%À= Ûd¨Ü^@n ¡²£ À -Ø -_@ >é >© À -Ø -_@ >é >© ÀQÙaêr#_
×£p¹^@2Tv º|%À®Gáz´^@/—?ÈP¹%Àp^M<+F_@ÍÌÌÌÌì"ÀtÚ@§i_@ójâYÑh"ÀtÚ@§i_@ójâYÑh"ÀhE#ß _@h$à ÷!Àh
W$Àáz®G_@×£p=
W$À >é >5_@fffff #À >é >5_@fffff #ÀwwwwwC_@¥Oú¤Oú"À Ó:m _@v ºÜþàÀ°[°{_@ ¡²ÃÔåÀL]n õ_@ øæÕ

×£ð_@QÙaêr;
¸]@e
ÀtÚ@§
t:
tÚ@§
Àáz
ô ^@áz ®ÀøæÕij~`@§
GÝ]@Æ
À©Ëí
Û®dGáù¿$à
¨~`@
Gáù¿A§
À_,ùÅ
tÚ@§
1u¹ýA²]@/—?ÈPY
ÀN[è°W
[´8`@¬
SÀ^@/—?ÈPÙü¿$à
Ï F"^@ìQ¸
gE#AÀ1u¹ýA²]@/—?ÈPY
À «À¡²Ã2`@p^M<+Z
Õåö
WS^@/—?ÈPÙü¿ÑHÀ7‾v^@+
ö]@î2TvÀÖij¢ÀÕåö
ôIö]@î2Tv
ôu`@/—?ÈP
Ì]@?é >éÀz5ñ¬hÜ]@
À ÀÖij¢
 øæÕ
WÏÀÑHÀ7‾v^@+
l`@v
Ì]@?é
| ójbºÜþ`
Àz5ñ¬hÜ]@
>é Àè´
WøæÕ
ÏNÔl`@v
À]@ffffffø¿è´
|ójb
ºÜþ`
øæÕÄ
À<+ÀK~±ä_`@
^@hE#
øæ]
N Ôß]
ÀÃõ(\
ô >^@tÚ@§
ÀÑHÀ7‾>^@
¦.^@ | ój 6Ði À ÑHÀ7‾>^@
À ã8 ^ @lÁ
À9 6ÐilÁÀ9 ã8 ^ @lÁlÁÀ d¨ì0^@J ôI 4À d¨ì0^@J ôI 4Àä8 ã8^@ÿ Ce iÀä8 ã8^@ÿ
^@!Ce ©KÀ 6ÐiÝ^@sû
tÚ@ú¿yV4
ø¿ WÏ Þ^@
ð_K@Ô
~±ä
:m Óü¿QÙaêr[_@×£p=
ô¿ |ó"_@A§
×ü¿¿Xò % _@Pú¤Oú¤À¿Xò % _@Pú¤Oú¤ÀrÇq{_@ ÿ¿J ôI Ä^@QÙaêrûÀe ©Ëí¿^@QÙaêrûÀrÇq ^@Ϋ gEcÀ[
×cÀè´ N°^@ðÍ« gEÀtÚ@§¹^@ ¦.—?ÀtÚ@§¹^@ ¦ .—?À2Tv ¶^@³ÃÔåöGÀ2Tv ¶^@³ÃÔåöGÀ ¡²ÃÔ¹^@q=
×£ðÀS Ûd _@ >é >i Àñ¬h$à‾_@ýbÉ/ |Àñ¬h$à‾_@ýbÉ/ |À2Tv º _@ | ójb À®Gáz
`@ìQ¸ ëÀ(}Ò'}"`@ ¦.—?À(}Ò'}"`@ ¦ .—?À Âõ(\9`@é >é >À Âõ(\9`@é >é >Àû
J`@þA ÊÓÀû
J`@þA ÊÓÀÀ7‾& [`@Ï F¾y
ÀÀ7‾& [`@Ï F¾y
ÀK~±äI`@ ôI ôÉ
ÀK~±äI`@ ôI ôÉ
tø¿,ùÅ
ÀÀú¤Oú¤1`@Pú¤Oú¤
6Ði `@ÞÝÝÝÝ
_b`@þAÀÊS6Ði
Àï¿
ú¤Oú¤1`@Pú¤Oú¤
ᜬ`@'xT`@
 |ÀôI
#ß¼ôIï¿
Àè´¦Âõ(\M`@×£p=
Ä`@ N.—?È
`@lÀÁl{Á®GáÂ`@:m ÓÆ
Àè´À®NGázÖ`@G
`@lÁlÁ ¾y5qÀÀ}Ò'}ÒÍ`@
tÚ@§`@9 ã8¡²ÃT
c À5ñ¬h$ä_@M<+
ÀtÚ@§`@9 ã8
tZ
J`@¥Oú¤Oúú¿
×ü¿tÚ@§
ÀÌí2T a@ 6Ðiã!À)\ ª`@*;L]nÂõ a@Ýþ
À(}Ò'}ª`@Ü
CeÇ À)\d¨ì°Âõ À~±ä a@Ýþ
KZa@UUUUU
CeÇ À;L]nÀçÕij¢Ya@hE#
ta@ ¦ .—? À;L]n
ß< ÀçÕij¢Ya@hE#
ta@ ¦ .—? ßÀþA
< ÀÐi
Êca@.Ø
6Ba@-
×£p=JÀ¨ì0u¹a@
×£p=JÀ¤p=
×ÿ`@ÇqÇ1À¤p=
À×ÿ`@
À ¦.—?ª`@í0u¹ý
übÉ/¼`@³ÃÔåö
ÇqÇ1À:m ÓÀè¦`@´¢
.—?ª`@í0u¹ý
oÞÀ:m ÓÀèkâYÑH
`@´¢ `@?é
oÞÀ£>éo^Ó`@Öij¢ÀkâYÑH `@?é
À £ >é o^Ó`@Öij¢
ÀÉ/ üb `@[°
À übÉ/¼`@³ÃÔåö
[° À É/ üb `@[°[° Àú¤Oú¤
ÀDDDDDè`@wwwww÷
À—?ÈPÙù`@ÈPÙaêrÀ—?ÈPÙù`@ÈPÙaêrÀ
×£p=a@ÙaêrûÀ
×£p=
tÚ@7a@ß¼
a@Ùaêrû
xV4ø¿§
xV4ø¿{
À übÉ/ ®GáHa@
a@¨ì0u¹ý ¡²ÃÔú¿{
À übÉ/®aGáHa@
@¨ì0u¹ý¡²ÃÔú¿@ÈPÙaZa@[°
À!Ce ©%a@wwwwwwü¿!Ce [°ÿ¿@ÈPÙaZa@[°
©%a@wwwwwwü¿§
[°ÿ¿³ÃÔåöka@7Ði 6À³ÃÔåö
À<+ øæa@wwwww÷
ÀÈPÙaêb@1u¹ýAÀÈPÙaêb@1u¹ýAÀî2Tv$b@ ëQ¸ À î2Tv$b@ ëQ¸ ÀK~±ä9b@e ©ËíOÀK~±ä9b@e ©ËíOÀ
ÀÞÝÝÝÝýa@ójâYÑÈ øæÕ
À*;L]Pb@×£p=
À|ójâab@wwwww—À|ójâab@wwwww—ÀËS Ûub@ %¿XòËÀËS Ûub@ %¿XòËÀä8 ã8fb@¥Oú¤OúÀä8 ã8fb@¥Oú¤OúÀ¦.—
&$À 6Ði b@û
b@&$ÀìQ¸
¦.—?HÀÃõ(\
»Üþ
ob@:Cm Ó
øa@ß¼
#ÀìQ¸
xV ob@
ÀÃõ(\:m Ó
øa@ß¼
#À xV ÀójâYÑæa@ú¤Oú¤
øæÕÄab@ïîîîîî"À
ÀójâYÑæa@ú¤Oú¤
øæÕÄab@ïîîîîî"À—?ÈPÙQb@
À¿Xò %Õa@V4ð¦Í.—ß!À—?ÈPÙ
À¿Xò %Õ
tÚ@gb@d¨ì0uy
U!ÀÔ:m Çb@Ø À-Ø o^M|b@
m"ÀÙaêrûÅb@Ø
6ÐiÀ o^M|b@
-Ø m"À§6ÐiÀ8‾& y b@þA Ê À ÿ Ce c@êrû
Àjc@33333³
K~±äÿb@SÀÛR¸
tÚ@§
äÀë{c@fffffæ
K~±äÿb@S ÛÀäR¸
Àî2Tvîb@a
ë{c@fffffæ
¶`6Àî2Tvîb@a
ÀΫ gEgc@*¶;LÝ
`6À¹ýA
ÀΫ ÊÜb@
gEgc@*o^M<+
;LÝÀö(\
À¹ýAÂWc@E#
ÊÜb@ß¼Z
o^M<+
Àö(\ÀõIÂWc@E#
ôIËb@ß¼Z
¡²ÃÀ±
×£p=@b@0 übÉ/ÀójâYÑ>b@»Üþ C%ÀyV4ð»b@¹ýA Ê6À ÊS ½b@Tv ºÜ6Àß¼ xVæb@ øæÕÄÃ7ÀÍÌÌÌÌèb@‾& 
tÚjb@øæÕijºCÀfffff$b@
V;Àáz®G/c@ %¿Xò ;Àß¼ %¿XòCCÀ
xVPb@åK~±dCÀz5ñ¬hPb@h$à
-b@G¾y51CÀ[°[°%a@,ùÅ
_CÀE#
_BÀUUUUU7a@q=
ß¼jb@`,ùÅ ¿CÀA§
×£àAÀUUUUU7a@q=
×£àAÀz5ñ¬h.a@þA ÊBÀ°[°a@ |ó AÀÆ _,ùa@]n ¡ AÀ?é >é±`@QÙaêr#@ÀõI ôI³`@0 übÉ'@ÀIÀ7‾&üa@QÙaêrû
DÀõI ôI b@ WÏ D ÀØ -Ø b@É/ übADÀE#ß¼jb@¢²ÃÔå EÀ]n ¡jb@¦.—?ȸEÀHáz®b@'  <DÀùÅ _,b@d¨ì0uADÀÜ
×£þ`@
a@ò %¿XR,À=
¶`¶`'À1u¹ýAa@;L]n Ð&À1u¹ýAa@;L]n Ð&ÀkâYÑHa@ øæÕÄÓ&ÀZÑHÀ7
×£pa@<+ øf,À
×£p=a@ų¢ /À,ùÅ _"a@=
×£p /À^M<+ea@G¾y5¡0Àñ¬h$àka@°0À}Ò'}ÒÃa@çÕij¢Q$À1u¹ýAÊa@$à W/%À8‾& C b@B ÊSG2À¶`¶`Gb@Ï F¾y2Àr
=À¦3Àà Wýd@q=
Ï b@Ãõ(\ 24Àd¨ì0u£b@#ß¼ x4À;L]n `@ ¦ .—_'À®Gáz `@lÁla'ÀØ -Ø ýd@Ò'}Ò'
×£
tÚèd@
=À`,ùÅ
è´ NsFÀ—?ÈPÙ×d@
NsFÀA§
Åe@ÞÝÝÝÝÍDÀ`,ùÅ ³e@*;L]n DÀ`,ùÅ ³e@*;L]n DÀÉ/ üb e@ d¨ì0mDÀÉ/ üb e@ d¨ì0mDÀú¤Oú¤ e
×£p=ºFÀ—?ÈPÙ×d@
×£p=ºFÀ ¡²ÃÚd@ö(\ ÂGÀ ¡²ÃÚd@ö(\ ÂGÀ®Gázìd@Üd¨ì GÀ®Gázìd@Üd¨ì GÀðÍ« ýd@u¹ýA 2GÀðÍ« ýd@u¹ýA
×£p=e@Ìí2TFGÀ
×£p=e@Ìí2TFGÀçÕij¢)e@G¾y5QGÀçÕij¢)e@G¾y5QGÀêrû
;e@\ Âõ(<GÀêrû
;e@\ Âõ(<GÀ‾&  Le@ ©ËíúFÀ‾&  Le@ ©ËíúFÀ|ójâY[e@L]n ¹FÀ|ójâY[e@L]n ¹FÀ Ó:mfe@ò %¿XrFÀ Ó:mf
EÀåK~±¾e@µ Nè
tÐe@^M<+
EÀwwwwwÇe@£
f@p^M<+
tÚhGÀų¢
f@¦.—?Èõ¿âYÑHÀ
ö¿~±ä
BÀÀÚ@§
ýd@B
o^M<Ùe@Yò
Kfo^ÝDÀþA
@ÀÊ|ójâY
SWGÀ/—?ÈP
Êe@¬
f%¿`BÀ
@A§gE#
f@¬
o^M<Ùe@Yò
ÀgE#ÑCÀÇq
ôI ôyc@çÕij¢
Çqf@ÐiÀ _,ùÅvc@¹ýA
%¿`BÀµ 6èDÀÇq
N Øe@´¢Çqf@Ði
ofBÀÖij¢
ÊÀ~±ä
6 DÀK¸c@´¢
lØe@ýbÉ/
Ál o Àüó¿£
 Çq
f@Çq¸c@û
6Ði
o^áe@
eDÀld¨ì0uø¿âY
Ál f@
æÀΫ gE c@G¾y5±Àµ Nè¦c@ Nè´ÁÀµ Nè¦c@ Nè´ÁÀ/—?ÈP c@ Âõ(\ À/—?ÈP c@ Âõ(\ À Âõ(\ c@÷*; À Âõ(\
ÝÀÿ Ce Ñc@ðÍ« gEÀz5ñ¬häc@ | óªÀz5ñ¬häc@ |óªÀ'  ö c@ïîîîîn À'  öc@ïîîîîn À øæÕâc@ñ¬h$à
×£p=äc@À7‾& 5"À F¾yd@S Û"ÀÇqÇqd@¦.—?È#ÀÇqÇqd@¦.—?È#ÀÀ7‾& ùc@:m Ó #ÀÀ7‾& ùc@:m Ó #À'  öc@fff
d@R¸ ë± À[°[$d@"""""â!À[°[$d@"""""â!À<+ ø.d@°[°û"À<+ ø.d@°[°û"ÀlÁlÁ*d@tÚ@§m$ÀlÁlÁ*d@tÚ@§
—%ÀM<+ ¼d@×£p=
tÚ@
—%À
tÚ@)e@Á
tÚ@§Ñd@e
d@;L]n
lÁÜ2ÀùÅ
@4ˤ
@4À
©Ëí_,e@
-Ø&À-tÚ@§Ñd@e
d¨ì0
d@¦.—?Èð4À
1Àò
©Ëí%¿X
&ÀX
-Ø e@#-Ïß¼d@¦.—?Èð4À!Ce
FÚd@E#
¸1À]nß¼Z'À¹ýA
¡e@G¾©¥d@ÍÌÌÌÌ|5À!Ce
y5¡0ÀÇq
Êþc@ gE#
Çqe3@
À|_,ùÅþc@33333S3À{
ójâY0ÀÇq
©¥d@ÍÌÌÌÌ|5ÀÖij¢
Çqe@|ójâY0À)\
®Gá d@Ϋ
ºd@
Âõe-Ø
gE£4
@æö*-
0Àà WÏìd@êrû
tÚ@2À
0tÚ@2Àò
ÀOè´*;LKf@¹ýA
ôd@
%¿XBf@A§
lÁl 0À33333!f@&¿Xò
Êî2À*;LKf@¹ýA Êî2À)À?é
2Tv>é#f@»Üþ
Bf@¦.—?ÈC3)ÀÏ
À 6ÐiUf@r
F¾}f@h$à
Çqç0À¼»»»»ef@'
ç0Àe ©Ëí f@Õåö  l0À¼»»»»ef@'
Ê0ÀÐ$g Æܨ²}°¡Ê&
 l 0Àm Ó
ck`:w
ÜE¸,w«¤úêÊ
)ÇÕÚ)ä`
ç$ôýL UjéÒÚWù¶a
Û Ð Ì)ë{;
«N,©à¸î
®ÂÆ
z©ªE\nï|
{<¦`2Õéj
¨ó
îÖù.u¤¾
Á&À«ïÑÀͧY
ÿtñGyj¼z±Á
ióÚD-¿ÜÑ×±¸Õ
dhCMj(0‾
@àç qr—  1cnä.ý
bUU²Ê
D,6÷—ÉáÝÒj-
kt'zÓ
‾S
gmù sc*cõÂmÒ
1Lϵmaeòͳúx&-
Â}´À(|ã
³²² a©ÅLlwâ¹.¢Æ
 Cof CóÐ
Æi °v D
ï k2Kw Õw½\ ë `þ1 »ªà1|Îï.¬ÔH§±v0 é `öÕs——dYä§S¤ ¡=Wà 8ĤÃá2b@½Á]Î¥Lzi-i²mǸûOáq /7 _Ã
«hA
øL VÁºÙ
Òa>¤EÑ¢¡ÇØ
è¥4NÁ¨6cÈ
;~ 1iWËô
ð c¼
þ)Jòp÷pP
e¡>4
Û~¿HaÖ
°ð#<þ*=¤Õ
v? Ú .óȗ
 Ú¶j,ùoE«
ë & bbnÊ£#]
} Uÿº^îÚy½Ô¸ç7q
í L¿¤)ñ
W§ü«<Ë
uXµî W¶ÒwU("®aLt
)w ×Ô[¥Yà .Ox°Ìªÿtp{x
pp‾ì«´N+ P~Iy¹³b
ºXx
GM eÐ@; _
Üî )±®8Bæ ¢í^ ¬bÇ ¨  uN,¡zh¶Öþ* §ÆÇ ÿM¾:fAH ) ©æ§ÐY¬u `ú¿ ] *—¹ q bÆn
VãPÚ
9ªÌ AP2—Ð
+¡æ)¼°çñG
;3:dÏte
î+¸ò
éJ‾¼Ã5w7z
Ð¥b j9hhæXWLýÇÝ9æ\ïfµË
êb Ä1 J+?êÆÑL ɶ|Þ
Qý\eÉ2µùCKäYÜ+í¿´Rs'Ù
l>Á@(Óà øgýS4pÜò6T Ökp4`¼ÝÊÄÁ âµÈ
Çn ýþIJé®v¼ô ù ñA ÿÈwöVHμfÅ"—¬ «ía ºêÎ9ò"Ï Öih ~ bÇ.`æݳsÀS<C¿?Ú, ¾}n© á2£Ò +Ú?Wû²NßØâÎ5ñ
Ó
L 3Oý)zã@ç $/4@ø h çu+
øUÝ| Ôð
$Ôå©a³HBÓ~ÂÂêc£\dî nU®ÑÎܦúV )vÀ#¬) Íú Ënö ø ÕRݗº)cz¡ ~B»výÜ& ¤Ããñª\L2*ç`§ºU¥ã&ZèX y´u
, WùõéÁ
H \Ì Zç e.ÕêîéïuÈÛPáCì ¾À'Ä TW' ¤ ÷a  ¬ Ϊ/@M|wa|\ Úâ«bT:\Âôá®Kht>
Ǿ¬ po\¤p<öö%x
gAQã
ÂÄbmâ%F Zâ® CÈû¢zì WEDE
üúÁcÓâ} $ i±ë¥s±‾Ï?ý I zô5Óám³? °¦ © ºï° ã%©

Þ É  ÕÒ `Ò #AĺáBµ4 ?ä]±ÃtÉ]÷XËcÖø9\DëTkåL¨ïÆ , uX+û—?c C ¤5ÞÈ
"@D
 sË_¸ì÷Ts
IÍÏCí
ÞÔá _¹t
Êä‾Y">
ý ÌÛY¢
Âm Û Ï UÑfJ@ý
.  ³N8y
+ÙÊÌ
ºq÷¨Ë 7ú' ͦ.²läý~"íAßX  çüD3î uªqâm) .ZàÚ=Æ$ @= {?=X<¢% sêq ï Ô³¶
Bxkq—.ÈH8 (à1íð"9J÷Z:f&¼ wê [<8<0 gUb¢ Õ¡O¡Z SÚâ±*¶} ¹ FñîïýD/QcYUÖ¼ Ù¾»ÓÕ ÊW(ìÿzµÑâøâ] n£{
¦ëâ ¡uUBZ¤¥¼j |÷ 9I¨ßÐÆï俵-hÔCwLw÷ð ']îLÅL ¹Ú -‾§ÿFØ~2AÎuzÌ^BHKoÍ}jêfû< §UÈaA³ÇÐáGÕTcrÇÒ
—  û½û \' ¨ÙÔ Fe âã Õ m¾`u 0 ë¾mY# *^ ª 0 p .ÞÂßï X0²yúÀá[³Ã¡¾! ú¹-><~øñ^ Ë æð± 2à Á
§Pnß>å +ùIìÖÒÛ ùüWµÅùBï ÎfM¾Äjà ¾h÷e(A>êþ(±®_ ûëw¸¥×¼- Î2ë ¥¾\§º/¾ö/íeî ®AzÚýéÁ źowçËn
~K@¼»»»»9`Àû
tÚdQ@Ãõ(\
tÚ@gQ@
t2I@
t2I@h$à
tÚdQ@
tÚR`À^M<+
tÚ@gQ@Ô
~K@Ë-Ø
SßN:èÛA`À$à
¼m 9`À&¿Xò
´k`ÀA§
-D_ÀÚ@§
mx`ÀS
xN`ˤ
__À
Q@A§xV4
Q@ NèWÛ
¿´k`ÀA§
K@Ë
XdI@h$à
Q@Ãõ(\
qQ@Ô
S ÛA`À$à
:m 9`À&¿Xò
x`ÀSxV4
__À WÛ¿dK@R¸
XQ@
I@¬
*;L
qQ@
ë?`À±ä
®`À
gE#
GázÇq_Àq=
Ç`À"""""zQ@
MQ@
K~ñK@¾y5ñ¬
*;L `ÀÇq®ÇGáz
MQ@IÀ7‾&
aÀIÀ7‾&fQ@
`À"""""zQ@í0u¹ý
`À6ÐisaÀV4
øæÕDQ@IÀ7‾&
ð`ÀS
ÍcQ@Û
`À6ÐisaÀV4
Q@í0u¹ý
øæÕDQ@ðÍcQ@ø
o^M<
`ÀS
×£@I@¬ gE# _Àq=
×£@I@¢²ÃÔåª_À<+ ønI@¢²ÃÔåª_À<+ ønI@ ã8 ãÜ_À F¾y}I@ ã8 ãÜ_À F¾y}I@!Ce ©Ã_À 6ÐiÕI@!Ce ©Ã_À 6
`ÀkâYÑH0L@×£p=
`ÀkâYÑH0L@âYÑHÀ `ÀÉ/ übaL@âYÑHÀ `ÀÉ/ übaL@K~±ä¡`À L@K~±ä¡`À L@¹ýA ʪ`ÀðÍ« gÕL@¹ýA ʪ`ÀðÍ«
×£pé`À°[° M@=
×£pé`À°[° M@ Âõ(\å`Àè´ NPM@ Âõ(\å`Àè´ NPM@×£p=
ý`À PM@×£p=
ý`À
tÚ0M@µ
tÚ0M@Ház Nè®PM@
0aÀ;L]n
aÀA§
ëQ¸aÀPM@µ | ójjM@
Nè0aÀ;L]n
ëQ¸aÀ | ójjM@Ház
PM@Æ _,ùEaÀ ®aÀA§|ó M@Æ _,ùEaÀ | ó M@Oè´ ZaÀÙaêrû M@Oè´ ZaÀÙaêrû
×£p Q@1u¹ýAªPÀ;L]n Q @1u¹ýAªPÀ;L]n Q @ß¼ xVxPÀ|ójâõP@ß¼ xVxPÀ|ójâõP@ ºÜþ _PÀ ôP@ ºÜþ
¦FPÀ¿Xò %P@
¦FPÀ¿Xò %P@ ¡²Ã(PÀ ¡²ÃÜO@ ¡²Ã(PÀ ¡²ÃÜO@{®Gá*PÀ³ÃÔåöwO@{®Gá*PÀ³ÃÔåöwO@XÏ FFPÀÏ F¾IO@XÏ
××QÀ¤p=
×£P@¤p=
××QÀ¤p=
×£P@ ëQ¸¾QÀ±äK~ P@ ëQ¸¾QÀ±äK~ P@ýbÉ/ QÀÃõ(\ P@ýbÉ/ QÀÃõ(\ P@(}Ò'}ZQÀJ ôI P@(}Ò'}ZQÀJ ô
RÀbêrû ¬P@~±äK
RÀbêrû ¬P@DDDDD<RÀâYÑHÀ‾P@DDDDD<RÀâYÑHÀ‾P@*;L]"RÀ*;LÅP@*;L]"RÀ*;LÅP@fffff&RÀtÚ@§éP@fffff&RÀtÚ
צ.7SSÀøæÕij
*;LõK@ìQ¸
;LõK@K@*;L]
#SÀìQ¸
SÀ¹ýA#L@ìQ¸
Ê K@*;L]
#SÀìQ¸
SÀ¹ýA#L@¿Xò
Ê K@|%#SÀ³ÃÔåö
ójâYSÀ$à WL@¿Xò
¿K@|ójâYSÀ$à
%#SÀ³ÃÔåö
W¿K@L@ų¢ 7SÀ2Tv ºÜL@ų¢
tÚ@7M@
¦ SÀ§
tÚ@7M@»Üþ
¦ SÀ§ C SÀ]n ¡ M@»Üþ C SÀ]n ¡ M@fffffzSÀÒ'}Ò'µM@fffffzSÀÒ'}Ò'µM@æö*SSÀõI ôIçM@æö*SSÀõ
'O@u¹ýA ÒRÀ×£p=
'O@V4ðÍ RÀ Âõ(\O@V4ðÍ RÀ Âõ(\O@¢²ÃÔånRÀÇqÇq<O@¢²ÃÔånRÀÇqÇq<O@ d¨ì0URÀøæÕij*O@ d¨ì0URÀøæÕij*
öN@]n ¡"RÀû
öN@ÞÝÝÝÝ RÀìQ¸ ËN@ÞÝÝÝÝ RÀìQ¸ ËN@kâYÑHðQÀß¼ xV¬N@kâYÑHðQÀß¼ xV¬N@i$à W¿QÀrÇq N@i$à
×£ QÀ
×£p= N@q=
×£ QÀ
tÚ
×£p=N@Öij¢
@ÁlN@ÁhQÀA§
|óZQÀ[°
QÀÜd¨ì
[°uN@
N@Öij¢|óZQÀ[°
QÀÜd¨ì
[°uN@Á
N@û lÁhQÀA§
fQÀTv ºÜæM@û
fQÀTv ºÜæM@è´ N_QÀ@ÈPÙa M@è´ N_QÀ@ÈPÙa M@¬ gE#AQÀ _,ùÅrM@¬ gE#AQÀ _,ùÅrM@"""""QÀ¦.—?PM@"""
×£p=M@ o^M(QÀ
×£p=
tÚÜPÀß¼
¦.ïK@G
.ïK@´¢
M@æö¾y51NÀJ
*÷PÀ~±ä
xV$M@A§
xV$M@wwwwwÃPÀ
o NÀ ôIKM@æö
äK@G
*÷PÀ~±ä
¾F¾y51NÀJ
y5M@wwwwwÃPÀ
KM@A§
ôI äK@K~±äÿMÀ
F¾y5M@|ójâY¥PÀ ã8 ãPM@|ójâY¥PÀ ã8 ãPM@,ùÅ _xPÀ|ójâY M@
¦ K@K~±äÿMÀ
¦ K@ ÊS MÀE#ß¼ K@ ÊS MÀE#ß¼ K@iMÀQÙaêrkK@iMÀQÙaêrkK@ ¡²ÃMÀ~±äK^K@ ¡²ÃMÀ~±äK^K@ZÑHÀ77MÀ
×£p=
K@ o^M< MÀ
×£p=
K@ ëQ¸ÎMÀÄÔåöéJ@ ëQ¸ÎMÀÄÔåöéJ@í0u¹ý1NÀ d¨ì0ÕJ@í0u¹ý1NÀ d¨ì0ÕJ@&¿Xò ÍMÀV4ðÍÃJ@&¿Xò ÍMÀV4ðÍÃJ
MÀÃõ(\
K@êrû
MÀÃõ(\
K@ËS Û LÀS ÛüJ@ËS Û LÀS ÛüJ@ übÉ/nLÀ®GázÜJ@ übÉ/nLÀ®GázÜJ@ ©Ëí
LÀE#ß¼ÊJ@ ©Ëí
LÀE#ß¼ÊJ@ _,ùÅ
LÀÌí2TfJ@ _,ùÅ
LÀÌí2TfJ@K~±ä×KÀÈPÙaêJ@K~±ä×KÀÈPÙaêJ@E#ß¼
LÀïîîîîîI@E#ß¼
TQ@\
TQ@Ú@§
tæ]ÀtÚ@§
LÀïîîîîîI@
tÒ\ÀçÕij¢9Q@v
tÒ\ÀçÕij¢9Q@Ú@§
Âõ(´]Àn
WÏ ºÜþ \ÀUUUUU-Q@v
^LÀ¦.—?ÈÈI@V4
¡²OQ@\ Âõ(´]ÀnðÍ‾^ÀÍÌÌÌÌtQ@É/
¡²OQ@ ëQ¸ ]ÀþA
ºÜþ \ÀUUUUU-Q@´¢
üb}^À?é
ÊGQ@
oº\À=
ëQ¸
>ésQ@É/
]ÀþA Ê
üb}^À?é
GQ@Öij¢>ésQ@Tv
h]À¥Oú¤O>Q@Öij¢
ºÜJ^ÀÍÌÌÌÌlQ@Tv
h]À¥Oú¤
×£p Q@´¢ oº\À=
×£p Q@î2Tv \À¥Oú¤OòP@î2Tv \À¥Oú¤OòP@Ìí2Tn\ÀkâYÑHìP@Ìí2Tn\ÀkâYÑHìP@S Û<\À×£p=
ëP@S Û<\À×£p=
ëP@R¸ ë \À
¦îP@R¸ ë \À
¦îP@¼»»»»×[Àí0u¹ýñP@¼»»»»×[Àí0u¹ýñP@£ o^¥[ÀýbÉ/ øP@£ o^¥[ÀýbÉ/ øP@*;L]ns[À7Ði öP@*;L]ns[
õZÀ?é >é‾P@sû
õZÀ?é >é‾P@K~±äãZÀ;L]n ÐP@K~±äãZÀ;L]n ÐP@@ÈPÙaöZÀ$à WÿP@@ÈPÙaöZÀ$à WÿP@ÄZÀ übÉ/Q@ÄZÀ übÉ/Q
Q@ß¼ xªZÀ.Ø -Ø
Q@v ºÜþ ZÀÖij¢ Q @v ºÜþ ZÀÖij¢ Q @e ©ËíÃZÀ)\ ÂõQ@e ©ËíÃZÀ)\ ÂõQ@sû
õZÀ 6ÐiQ@sû
ttÚ|YÀ
Q¦õZÀ
@ [°6Ði
.×YÀÚ@§
@° |‾ ójòP@
YÀ
ójòP@A§
Q@ Ó
ôP@°
:m([Àß¼
[°‾YÀôP@A§
xVQ@ Ó:m([Àß¼ xVQ@¥Oú¤O[À0 übÉ'Q@¥Oú¤O[À0 übÉ'Q@î2TvÜZÀè´ N,Q@î2TvÜZÀè´
¦JYÀ o^MðP@
¦JYÀ o^MðP@ o^MYÀ"""""öP@ o^MYÀ"""""öP@¢²ÃÔåæXÀÑHÀ7‾òP@¢²ÃÔåæXÀÑHÀ7‾òP@ xV4´XÀ  |ïP@ xV
Q@¿Xò % XÀ¶`¶
Q@1u¹ýAzXÀâYÑHÀQ@1u¹ýAzXÀâYÑHÀQ@"""""NXÀ9 ã8 Q@"""""NXÀ9 ã8 Q@M<+ $XÀ |ójQ@M<+ $XÀ
×£ÜUÀPú¤OúÈP@q=
×£ÜUÀPú¤OúÈP@ðÍ« ÃUÀ2Tv ÖP@ðÍ« ÃUÀ2Tv ÖP@  | UÀÿ Ce éP@  | UÀÿ Ce éP@ Ûd¨xUÀXÏ F
Q@ Ûd¨xUÀXÏ F
tbTÀ
Q@K~±ä
d¨ì0éP@Ú@§
d¨ì0éP@)\
_UÀyV4ð1Q@K~±ä
Âõ|TÀ_UÀyV4
ôI ô½P@)\
ð1Q@ Âõ|TÀEUÀ/—?ÈP=Q@
ôI ô½P@¢²ÃÔå TÀ
EUÀ/—?ÈP=Q@  |_UÀK~±ägQ@  |_UÀK~±ägQ@Ï F
¦®P@¢²ÃÔå TÀ
¦.—P@
®P@âYÑHÀÃTÀÕåö
.—P@ò %¿X&UÀ  P@âYÑHÀÃTÀÕåö P@ÄÔåöéTÀXÏ F P@ÄÔåöéTÀXÏ F P@ÇqÇqUÀOè´ ¶P@ÇqÇqUÀOè´ ¶P@{®Gá
¦úTÀýbÉ/ P@
¦úTÀýbÉ/ P@#ß¼ UÀ&¿Xò P@#ß¼ U À&¿Xò P@cÉ/ üFUÀ;L]n P@cÉ/ üFUÀ;L]n P@M<+ xUÀ‾&   P@M
«UÀ;L]n  P@×£p=
«UÀ;L]n  P@=
×£p UÀhE#ß P@=
×£p UÀhE#ß P@¹ýA ʪUÀtÚ@§iP@¹ýA ʪUÀtÚ@§iP@¸ ëQÄUÀõI ôI_P@¸ ëQÄUÀõI ôI_P@û
öUÀÍÌÌÌÌTP@û
öUÀÍÌÌÌÌTP@õI ôIVÀÈPÙaêZP@õI ôIVÀÈPÙaêZP@¦.—?È<VÀ %¿XòkP@¦.—?È<VÀ %¿XòkP@ÑHÀ7‾ZVÀ o^M<wP@Ñ
P@ ¡²ÃÔAVÀêrû
P@i$à WsVÀ®GázP@i$à WsVÀ®GázP@#ß¼ VÀ$à WÏO@#ß¼ VÀ$à WÏO@B ÊS¿VÀ
×£p=ÊO@B ÊS¿VÀ
tÚ@ÿO@n
tÚ@ÿO@/—?ÈPUWÀ§
×£p=ÊO@ øæÕðVÀIÀ7‾&ÞO@
¡²;WÀ'  ìO@n ¡²;WÀ'
øæÕðVÀIÀ7‾&ÞO@
 ì O@é >é Âõ(\#WÀE#ß¼êO@ Âõ(\#WÀE#ß¼êO@/—?ÈPUWÀ§
WÀe ©ËíÏO@é >é
WÀe
tÚðVÀ©ËíÏO@A§
è´ NÛO@ìQ¸
NÛO@A§ ×VÀö(\ ½O@ìQ¸ ×VÀö(\ ½O@ ÊS «VÀ@ÈPÙaªO@ ÊS «VÀ@ÈPÙaªO@Ház®ÃVÀÐi 6xO@Ház®Ã
ñVÀ4ðÍ«iO@sû
ñVÀ4ðÍ«iO@ÈPÙaêWÀlÁlÁFO@ÈPÙaêWÀlÁlÁFO@
¦WÀ ÊS O@ÑHÀ7‾QÀ øæÕ H@ÇqÇq<QÀùÅ _,iH@ÇqÇq<QÀùÅ _,iH@fffffZQÀ %¿Xò+H@fffffZQÀ %¿Xò+H
×£ QÀ®Gáz&H@q=
×£ QÀ®Gáz&H@
×£p=¾QÀ°[°;H@
×£p=¾QÀ°[°;H@¶`¶ QÀ !H@¶`¶ QÀ !H@¶`¶ QÀi$à WËG@¶`¶ QÀi$à WËG@ÞÝÝÝÝ¥QÀS Ûd G@ÞÝÝÝÝ¥Q
×£NÀËS ÛI@q=
×£NÀËS ÛI@z5ñ¬hdNÀÿ Ce !I@z5ñ¬hdNÀÿ Ce !I@ ã8 ãÈNÀ|ójâYI@ ã8 ãÈNÀ|ójâYI@êrû
-OÀS Û$I@êrû
-OÀS Û$I@j 6Ð OÀØ -Ø %I@j 6Ð OÀØ -Ø %I@ffffföOÀ$à W'I@ffffföOÀ$à W'I@±äK~-PÀ ÊS #I@±äK~-PÀ
G@ñ¬h$àPÀêrû
G@+ øæõOÀö(\ ÂýF@+ øæõOÀö(\ ÂýF@þA ÊÃOÀðÍ« ïF@þA ÊÃOÀðÍ« ïF@¢²ÃÔå^OÀų¢ ßF@¢²ÃÔå^OÀų
×£pýE@ >é >-PÀ=
×£pýE@Tv ºÜVPÀÇqÇqÜE@Tv ºÜVPÀÇqÇqÜE@Yò %¿ PÀ d¨ì0ÝE@Yò %¿ PÀ d¨ì0ÝE@ß¼ xzPÀ|ójâYAF@ß¼ xzPÀ|
-PÀ0 übÉ F@êrû
-PÀ0 übÉ F@[°[°õOÀ|ójâ¡F@[°[°õOÀ|ójâ¡F@ F¾y-PÀ^M<+©F@ F¾y-PÀ^M<+©F@Üd¨ì,PÀ:m ÓþF@ÿ Ce !WÀn
O@,ùÅ _<WÀ÷*;
O@±äK~UWÀ o^MÜN@±äK~UWÀ o^MÜN@j 6ÐuWÀZÑHÀ7‾N@j 6ÐuWÀZÑHÀ7‾N@ ÊS WÀêrû
}N@ ÊS WÀêrû
}N@ùÅ _,¡WÀ d¨ì0EN@ùÅ _,¡WÀ d¨ì0EN@+ øæ±WÀOè´ æM@+ øæ±WÀOè´ æM@QÙaêr³WÀ""""" M@QÙaêr³W
vL@ä8 ã8ZVÀû
vL@Pú¤Oú@VÀbêrû lL@Pú¤Oú@VÀbêrû lL@M<+ $VÀ8‾& U L@M<+ $VÀ8‾& U L@IÀ7‾&öUÀ ã8 ã(L@IÀ7‾&öUÀ
×£L@2Tv ºÜUÀq=
ìRÀæö
C@tÚ@§
×£
C@{
¦.QÀB
L@®GáÒRÀÆ
*_,ùŪUÀ\
ÃB@tÚ@§
ÃB@¶`
ÊS?F@¶_,ù
`SxV4
Âõ(ìK@
Àû4QÀójâYÑ@F@
_,ùŪUÀ\
xV4Âõ(ìK@Pú¤OúxUÀö(\
4QÀójâYÑ@F@]n ¡ZQÀ
ÂÕK@Pú¤OúxUÀö(\
[°[F@]n ¡ZQÀ[°
ÂÕK@
[F@lÁFl¾uQÀ
yUUÀ
*;LÝE@
6ÐilÁ
K@luQÀ
F*¾;LÝE@Ä
yUUÀ 6
C@¶`¶`SÀû
C@R¸ ëSÀ PC@R¸ ëSÀ PC@ÍÌÌÌÌSÀhE#ß´C@ÍÌÌÌÌSÀhE#ß´C@p^M<+SÀÀ7‾& uC@p^M<+SÀÀ7‾& uC@¶`
-@@¸ ëQTÀêrû
-@@Yò %¿<TÀ ¡²ÃÔõ?@Yò %¿<TÀ ¡²ÃÔõ?@ Âõ(\KTÀ&¿Xò ?@ Âõ(\KTÀ&¿Xò ?@»Üþ C]TÀ÷*;,?@»Üþ C]TÀ÷*
¦TÀ;L]n @;@
¦TÀ;L]n @;@ìQ¸ TÀójâYÑx:@ìQ¸ T ÀójâYÑx:@ìQ¸ TÀójâYÑx:@¦.—?TÀ;L]n °9@,ùÅ _TÀ¿Xò %‾9@ ¡²ÃÔQTÀ
¦¢TÀ+ øæ¥;@
¦¢TÀ+ øæ¥;@Ãõ(\ ªTÀ$à Wo<@Ãõ(\ ªTÀ$à Wo<@ ¦.—‾TÀÜd¨ì=@ ¦.—‾TÀÜd¨ì=@ójâYÑÈTÀÿ Ce I=@ójâYÑÈ
>@$à WûTÀ2Tv
>@=
×£pUÀú¤Oú¤ÿ=@=
×£pUÀú¤Oú¤ÿ=@ WÏ FUÀ ¸=@ WÏ FUÀ ¸=@ðÍ« _UÀÄÔåö>@ðÍ« _UÀÄÔåö>@¦.—?ÈxUÀ/—?ÈP9>@¦.—?Èx
×£@=@4ðÍ«¥VÀq=
tÒA@h$à
tnWÀ
×£@=@S
tÒA@ ©ËíÂ=@à
©ËíÂ=@Ú@§
ÛÐVÀ
K^ÀÚ@§
d^À¹ýA
2TvWÏ Ê
=@S
WÀQÙaêr
B@ ÛÐVÀd^À¹ýA
2Tv WÏ=@Ê
=@à WÀQÙaêr
BëQ¸
@K~±ä
ñVÀes=@
^À©Ëí¿=@
Ç¡²ÃÔUB@K~±ä
qǹWÀ;L]n
ëQ¸ñVÀe
P=@
s^À Ç©Ëí¿=@ÑHÀ7‾"WÀÃõ(\
q¡²ÃÔUB@]n
ǹWÀ;L]n P=@\
¡ ^À×£p=
Âõ(àWÀøæÕijÒ<@\
=@ÑHÀ7‾"WÀÃõ(\
Âõ(à
B@]n ¡ ^À×£p=
B@¹ýA Ê ^À[°[°õB@¹ýA Ê ^À[°[°õB@^M<+}^ÀÝþ CeC@^M<+}^ÀÝþ CeC@ ¦ .—‾^Àj 6ÐùB@ ¦.—‾^Àj 6ÐùB@ój
_À ©ËíâD@)\ Âõ
tÚ@
_À¦._©ËíâD@
À
ÀhE# ßÜE@ Ó
ÜE@
| ój_:ÀªËí2
xE@§
xE@ÈPÙaêm_À4_ðEÀà
@ W| Ïój
Í«AF@ Ó ªE@ÈPÙaê
_ÀªËí2
:m_À4
E@§
ð_Í«AF@`,ùÅ
Àà WϪE@ û^À[°[°¥F@`,ùÅ û^À[°[°¥F@é >é ú^ÀE#ß¼
G@é >é ú^ÀE#ß¼
G@
×£p=_À1u¹ýAnG@
×£p=_À1u¹ýAnG@ -Ø -_ÀÉ/ üb¹G@ -Ø -_ÀÉ/ üb¹G@E#ß¼*_À8‾& H @E#ß¼*_À8‾& H@«ªªªªú^À~±äKH@«ªªªªú^
)`À0 übÉ_J@j 6Ð9`À«ªªªªÚJ@ÁlÁR`ÀOè´ öJ@ÁlÁR`ÀOè´ öJ@à WÏR`À!Ce ©K@"""""F`À‾&  tK@ übÉ/F`Àà
×tÚ°H@
K@Öij¢_,ùÅf_ÀÈPÙaê
F¾yhaÀ_ÀA§_,ùÅfQ@¿Xò H@ _,ùÅf_ÀÈPÙaê
%gaÀú¤Oú¤cQ@H@ÍÌÌÌÌ4_ÀV4
|óþ`ÀÏ F¾MQ@
ðÍgE#
H@ÍÌÌÌÌ4_ÀV4
é`Àö(\ ÂQQ@ðÍgE#H@)\
é`Àö(\
Âõ,_À]n
ÂQQ@ß¡JH@)\
¼ xÐ`ÀSÂõ,_À
Ûd\Q
× H@ÇqÇqü^À¤p=
צ.
H@ùÅ
_À ¡²ÃÔÍH@ÞÝÝÝÝI_Àè´
_,-_À@ÈPÙaºH@ùÅ _,-_À@ÈPÙaºH@ NI@DDDDDT_À¥Oú¤O2I@½
¡²ÃÔM_À xV4
-Ø -_À
I@ ¡²ÃÔM_À
øæÕdI@
-Ø F
-¾Iy@¦.—?Èx_À
_Àí0u¹ýiI@
Nè´1I@¦.—?Èx_À
| ójú_À¬ gE#ÉIN
tÚ@ÏP@S
tÚ@ÏP@n
¦Q@B ÊSÓRÀ
ÛP¡²7SÀ§
SÀºÜþ
ã8 ÛP@B
ãôP@SÊÛSPÓRÀ
SÀ ã8
ºÜþãôP@<+
ÛP@UUUUUSÀø6SÀò
Ûd¨ÐP@UUUUU
%¿X SÀ Ûd¨ÐP@n ¡²7SÀ§
Q@<+ ø6SÀò %¿X
Q@#ß¼ S À |óQ@#ß¼ SÀ |óQ@
QtªO@
tÚ8L@

¦._N@¶`
ÒRÀtÚ@§
Ïo^iSÀm Ó
F~TÀp^M<+zO@Ô
6Ði¶`SÀ
SÀïîîîîfN@\
:ýO@ :m hSÀ
TÀ®Gáz
Âõ( Ï RÀ
FP@$à
ðFÍ«
O@ÔWO@DDDDD RÀ¿Xò
:W7m 
SÀÏTÀ®Gáz
F¾±O@333337SÀ
FO@ xV4
%_O@½
°TÀ~±ä
:m ÓÎO@8‾&
xV4öPÀsû
K&O@ xV4
i SÀ
°TÀ~±ä
Ï F KO@à
&O@ÏWÏFâSÀTÀÄÔåö
|óªO@à
O@ÏWF
ÏâST
=N@:m ÓQÀv ºÜþ8N@2Tv º,PÀö(\ Â-N@ùÅ _,-PÀ øæÕ<N@è´ NÈNÀÇqÇqdL@kâYÑHÈNÀ{®GárL@'  MÀ;L]
]Àh$à 3R@×£p=
]Àh$à 3R@¶`¶´]ÀÞÝÝÝÝ-R@¶`¶´]ÀÞÝÝÝÝ-R@?é >éÓ]À WÏ R @?é >éÓ]À WÏ R@Öij¢ ^Àa¶`R@Öij¢ ^Àa¶`R@
¦2^À^M<+ R@
¦2^À^M<+ R@ øæÕ^À8‾&  R@ øæÕ^À8‾&  R@ðÍ« ç]ÀÌí2T R@¶`¶ \ÀÐi 6$R@½ xV4n\ÀlÁlÁ&R@½ xV4
ñ[À >é >5R@êrû
ñ[À >é >5R@ d¨ì0Í[Àò %¿XR@ d¨ì0Í[Àò %¿XR@ ëQ¸¥[ÀK~±äR@ ëQ¸¥[ÀK~±äR@ß¼ xVt[À&¿Xò -R@ß¼ xVt[À
×G[À ÊS /R@¤p=
×G[À ÊS /R@K~±ä'[À øæÕÄR@K~±ä'[À øæÕÄR@ _,ùÅ[ÀðÍ« gíQ@ _,ùÅ[ÀðÍ« gíQ@ Ûd¨ÜZÀ WÏ òQ@
ÉYÀ Âõ(\gQ@êrû
ÉYÀ Âõ(\gQ@õI ôI YÀ7Ði ^Q@õI ôI YÀ7Ði ^Q@î2Tv°YÀÜd¨ì4Q@î2Tv°YÀÜd¨ì4Q@æö*ãYÀµ Nè4Q@æö*ãYÀµ N
:Q@÷*;ZÀû
:Q@33333GZÀáz®G9Q@33333GZÀáz®G9Q@ìQ¸ _ZÀ'  HQ@ìQ¸ _ZÀ'  HQ@(}Ò'} ZÀ1u¹ýAJQ@(}Ò'} ZÀ1u¹ýAJQ
×£@[À]n ¡.Q@q=
×£@[À]n ¡.Q@7Ði r[Àß¼ xV(Q@7Ði r[Àß¼ xV(Q@¨ì0u¹¥[À Âõ(\'Q@¨ì0u¹¥[À Âõ(\'Q@DDDDDØ[ÀÉ/ üb%Q@
\À F¾y!Q@(}Ò'}

tÚPQ@
tÚPQ@ùÅ
F¾y!Q@bêrû
o^M<Ó\Àî2TvPQ@
_,¡\ÀA§<\À´¢ o^M<Ó\Àî2TvPQ@
oQ@bêrû <\À´¢ Çq
oÇQ]@É/
ÀUUUUUUQ@
übU\À ÇFq¾Çy%Q@É/
]ÀUUUUUUQ@u¹ýA
übU\À F¾y%Q@S
] ÀÏ F¾ÛYQ@u¹ýA
p\À ¡²ÃÔMQ@S
]ÀÏ F¾ÛpYQ@'
\À ¡
\À}Ò'}Ò Q@:m Ó
\À}Ò'}Ò Q@ójâYÑ<\À;L]n ¤Q@ójâYÑ<\À;L]n ¤Q@]n ¡n\ÀDDDDD¬Q@]n ¡n\ÀDDDDD¬Q@|ójâY¡\À©Q@|ójâY¡
×7]À´¢ o¦Q@¤p=
×7]À´¢ o¦Q@®Gázj]ÀV4ðͧQ@®Gázj]ÀV4ðͧQ@}Ò'}ÒO]ÀçÕij¢ÍQ@}Ò'}ÒO]ÀçÕij¢ÍQ@L]n ]ÀlÁlÕQ@L]n ]
×£P]Àö(\ ÂÙQ@q=
×£P]Àö(\ ÂÙQ@i$à W ]À¤p=
××Q@i$à W ]À¤p=
××Q@Ði 6 ]À,ùÅ _èQ@Ði 6 ]À,ùÅ _èQ@*;L]n ]À2Tv R @*;L]n ]À2Tv R@¨ì0u¹ ]À×£p=
+R@¨ì0u¹ ]À×£p=
+R@ùÅ _,Q]ÀK~±ä;R@ùÅ _,Q]ÀK~±ä;R@333337]Àä8 ã8>R@333337]Àä8 ã8>R@Ø -Ø ] À¸ ëQHR@Ø -Ø ]À¸ ëQH
¿TÀR¸ ë9P@*;L] TÀ Ûd¨0P@*;L] TÀ Ûd¨0P@*;LqTÀ,ùÅ _ P@*;LqTÀ,ùÅ _ P@
¦JTÀlÁlÁP@
¦JTÀlÁlÁP@ðÍ« gTÀ Ûd¨ìO@ðÍ« gTÀ Ûd¨ìO@
×£p=2TÀYò %¿ÈO@
×£p=2TÀYò %¿ÈO@ÄÔåöeTÀí0u¹ýÉO@ÄÔåöeTÀí0u¹ýÉO@ o^M< TÀªËí2ÔO@ o^M< TÀªËí2ÔO@K~±ä‾TÀß¼ xVüO@K
>UÀ7Ði RP@û
>UÀ7Ði RP@Üd¨ì
UÀøæÕijRP@Üd¨ì
UÀøæÕijRP@Ce ©ËáTÀ*;L]JP@Ce ©ËáTÀ*;L]JP@®GázÈTÀ³ÃÔåö;P@*;L]n \À øæÕÄ÷P@áz®GU\À 6ÐiûP@,ùÅ _ð
ùP@½ xV4¾[Àsû
ùP@kâYÑH [ÀDDDDDQ@kâYÑH [ÀDDDDDQ@ÕåöZ[Àv ºÜþQ@ÕåöZ[Àv ºÜþQ@ùÅ _,A[Àö(\ ÂýP@DDDDD[À/—?ÈPéP@ï
×£4Q@[°[
YÀ)\
¦.sQ@é
Âõ4Q@Çq
>é FXÀÇqYÀS Û<Q@ xV4dYÀfffffFQ@¿Xò %KYÀðÍ« cQ@çÕij¢YÀ®Gáz¨Q@yV4ðYÀB ÊS Q@v ºÜþ,ZÀ¼»»»
¦fQ@é >é FXÀ
¦fQ@®GázXÀ¬ gE#YQ@®GázXÀ¬ gE#YQ@û
XÀÏ F¾MQ@û
XÀÏ F¾MQ@¿Xò %ëWÀHáz®7Q@¿Xò %ëWÀHáz®7Q@XÀq=
×£$Q@XÀq=
×£$Q@ų¢ 7XÀ#ß¼ Q@ų¢ 7XÀ#ß¼ Q@ÇqÇiXÀ´¢ o&Q@ÇqÇiXÀ´¢ o&Q@  | XÀÇqÇq0Q@  | XÀÇqÇq0Q@ä8

¦Q@~±äKªUÀQÙaêrQ@"""""âTÀ
tÚÐKÀÜ
¦rQ@øæÕijâTÀ"""""rQ@
d¨ìÈI@{®GáÚKÀä8 ã8 I@{
ÈTÀ®GáÚKÀä8
|ójâ P@Ïã8
F¾éTÀÔ
I@' :m kP@Ï
LÀS ÛdI@'
F¾éTÀÔ
 LÀS:m kP@å
ÛdI@JKôI
~±UÀ\
<LÀÂõ(
Nè´!I@J
P@åK~±ôI
UÀ\<LÀÂõ(NèP´
H@\ Âõ( JÀêrû
H<L˵
@?é N>éSJÀX
è´I@5ñ¬h$ØKÀ:m Ó
´I@tÚ@§
Ï FÒG@?é >éSJÀX
ÊI@5ñ¬h$ØKÀ:m Ó
Ï FÒG@ WÏ fJÀ
ÊI@5ñ¬h$ØKÀ:m Ó
 G@ WÏ fJÀ
ÊI@Ìí2TBTÀ
 G@ ©Ëí
_,ùŪJÀ#
J@ÇqÇßqdTÀùÅ
¼ XG@ _,ùŪJÀ#
_,qJ@ÇqÇßqdTÀ
¼ XG
ÜJÀýbÉ/
¦æSÀ ©ËíJ@¶`¶`QÀG¾y5ÉI@!Ce ©'QÀ ôI ôÑI@u¹ýA OÀÁlÁäH@ IOÀö(\ ÂÍH@ IOÀö(\ ÂÍH@ò %¿X
H@e ©ËíKÀøæÕijÒG@ ¡²ÃÔLÀlÁlÁnG@¤p=
dNÀß¼
×+LÀß¼xVÌF@Öij¢
xVÌF@tÚ@§
xnG@p^M<+2NÀyV4
¸NÀè´ NðØUG@å
F@Öij¢
K~±dNÀâYÑHÀÿF@å
¸NÀè´ NØF@ übÉ/
K~±dNÀâYÑHÀÿF@
NÀG¾y51G@ÇqübÉ/
Ç1NÀ»Üþ
NÀG¾C%G@
y51G@¢²ÃÔå^NÀ7Ði
ÇqÇ1NÀ»Üþ C%G@tÚ@§
nG@¢²ÃÔå
×£p= `À33333£K@
×£p= `À33333£K@§`ÀÄÔåöñK@§`ÀÄÔåöñK@®Gázª`ÀXÏ FL@V4ðÍk`ÀÌí2TnK@u¹ýA x`ÀÁlÁ K@fffffd`ÀÄÔåöñK@
Ó`Àm Ó:UL@sû
Ó`Àm Ó:UL@ìQ¸ é`À d¨ì0 L@ìQ¸ é`À d¨ì0 L@ Ó:mú`ÀHáz® L@É/ üb÷`À
¦M@/—?ÈPé`À?é >éM@/—?ÈPé`À?é >éM@ ¡²ÃÔñ`ÀçÕij¢¹L@ ¡²ÃÔñ`ÀçÕij¢¹L@
¦aÀ(}Ò'}ÒL@
¦aÀ(}Ò'}ÒL@¢²ÃÔåaÀ ÊS M @ F¾y×`Àß¼ xM@h$à Ã`ÀåK~±M@h$à Ã`ÀåK~±M@j 6ÐÃ`ÀùÅ _,¡L@j 6ÐÃ`ÀùÅ
Ý`ÀÏ F¾M@×£p=
Ý`ÀÏ F¾M@ójâYÑÜ`À¿Xò %/M@`,ùÅ RÀPú¤OúÜC@Ház® RÀ—?ÈPÙÙC@ |óÒRÀÀ7‾& ýB@<+ øÒRÀÝþ Ce÷B
 TÀ^M<+y:@V4ðÍ TÀ ã8 ãx:@1u¹ýA>UÀñ¬h$à =@|ójâY-UÀ®Gáz¾=@XÏ FªUÀö(\ Âe>@ |ój¢UÀ‾&  d>@ÑHÀ7‾
5VÀïîîîîþ=@
t:=@L]n ¹WÀ øæÕðVÀYò ®%¿
øæÕD=@Ház XÀTv
=@ܺÜn<@×£p=
d¨ìðVÀ ëQ¸ =@¨ì0u¹¹WÀÚ@§
7XÀlÁl!<@×£p=
7XÀlÁl!<@ß¼ xVPXÀÑHÀ7‾ ;@ß¼ xVPXÀÑHÀ7‾ ;@ Âõ(\WXÀ Ûd¨Ü:@ Âõ(\WXÀ Ûd¨Ü:@J ôI XXÀÏ FÞ:@Ϋ gEQ
×£p5F@*;L]nQÀÝþ Ce'F@¬ gE# QÀ0 übÉ‾D@lÁl¥QÀçÕij¢¹D@É/ übRÀtÚ@§}D@¿Xò %#RÀ±äK~iD@¿Xò %#RÀ±äK
}D@ 6Ði)RÀsû
}D@Ï F
RÀų¢ D@ übÉ/jTÀ³ÃÔåö×F@.Ø -Ø TÀÙF@.Ø -Ø TÀÙF@®GázÈTÀâYÑHÀïF@®GázÈTÀâYÑHÀïF@Ìí2T TÀ[°[°ýF
G@ÈPÙaêúTÀ&¿Xò %G@Ði 6`UÀe ©Ëí×F@9 ã8 _UÀ¾y5ñ¬àF@¼»»»»ÃUÀ
¦ F@ Âõ(\ÃUÀðÍ« g¥F@kâYÑHxUÀ¤p=
VÀ
×ÛG@¶`¶ G@p^M<+öUÀ¤p=
xV4xUÀ*;LåG@tÚ@§
׳G@Ùaêrû'VÀ8‾& H@ %¿Xò'VÀÇqÇH@ùÅ _,ñUÀ4ðÍ«iH@Ce ©ËõUÀ ¡²ÃÔmH@¼»»»» ]À!Ce ©s@@K~±ä ]Àj 6Щ@
×£p= `À¤p=
N@33333
×#N@33333
N@DDDDD `À¼»»»»
`À*`À
;L
*;L N@0 übÉ__À ëQ¸µP@Ház®__ÀÃõ(\ ²P@L]n É^À
dP@
dP@`,ùÅ
×£p=NP@`,ùÅ
ß¼ x ^À‾^ÀtÚ@§ ‾^ÀtÚ@§
¡²Ã P@ß¼ x ^À ¡²Ã P@S Ûdd^À  |{P@S Ûdd^À  | {P@ò %¿X~^ÀÇqÇq P@ò %¿X~^ÀÇqÇq P@z5
×£ P@z5ñ¬h°^Àq=
×£ P@(}Ò'}â^À[°[° P@(}Ò'}â^À[°[° P@ß¼ xV_Àæö* P@ß¼ xV_Àæö* P@´¢ oú^À ¡²ÃÔ P@´¢ oú^À ¡²ÃÔ
×£p=FP@»Üþ C^À
tÚDP@9
×£p=FP@ã8E^À XÀ¨ì0u¹
Nè´9P@E^À
J@Nd¨ì0
è´9P@Tv
XÀÍÌÌÌÌ,J@
ºÜ"^À:m ÓRP@Tv
d¨ì0 XÀÍÌÌÌÌ,J@£
ºÜ"^À:m ÓRP@o^iXÀ
Âõ(\K^ÀÈPÙaê^P@
¡²Ã Âõ(\K^ÀÈPÙaê^P@ Û
J@£ o^iXÀ ¡²Ã
J@kâYÑHHXÀ/—?ÈPÉI@kâYÑHHXÀ/—?ÈPÉI@ðÍ« 7XÀÁlÁ I@ðÍ« 7XÀÁlÁ I@ Âõ(\7XÀTv ºÜîI@ Âõ(\7XÀTv ºÜîI
×£p [Àé >é FO@=
×£p [Àé >é FO@+ øæ¥[ÀÇqÇqTO@+ øæ¥[ÀÇqÇqTO@[°[Ø[ÀyV4ðEO@[°[Ø[ÀyV4ðEO@XÏ F¾[ÀIÀ7‾&^O@XÏ F¾[

\ÀÉ/ übO@û

\ÀÉ/ übO@Öij¢ <\ÀS ÛdO@Öij¢ <\ÀS ÛdO@E#ß¼n\ÀøæÕij
O@E#ß¼n\ÀøæÕij
L@
L@Õåö
O@ 6Ði‾^À
\À.Ø
â^Àà-Ø"O@
d¨ì0
WÏL@Õåö
 \À.Øâ^Àà
-Ø"O@
WÏL@¬
6ÐigE#Õ^À7Ði
¹\À!Ce ©;O@¾K@¬
6ÐigE#Õ^À7Ði
¹\À!Ce ©;O@¢²ÃÔåÒ\À
¾K@*;L]þ^À±ä
übÉ/NO@¢²ÃÔåÒ\À
K~ñK@*;L]þ^À±äKübÉ/NO@&¿Xò
~ñK@¹ýA Ê_À
× ]À¨ì0u¹N@¤p=
× ]À¨ì0u¹N@d¨ì0ui]À %¿Xò«N@Æ _,ù}YÀËS Û O@ß¼ xVdYÀò %¿XºO@ß¼ xVdYÀò %¿XºO@û
2YÀ0 übÉÇO@û
2YÀ0 übÉÇO@9YÀ xV4xO@9YÀ xV4xO@ Ó:mdYÀÒ'}Ò'eO@ Ó:mdYÀÒ'}Ò'eO@33333 YÀv ºÜþxO@À7‾& ÉYÀPú¤Oú
×£pA[À¼»»»» M@=
×£pA[À¼»»»» M@Ô:m s[À¼»»»» M@Ô:m s[À¼»»»» M@Ô:m  [ÀkâYÑHPM@Ô:m  [ÀkâYÑHPM@
×£p=Ê[ÀójâYÑPM@ùÅ _,q\À¸ ëQPM@ÑHÀ7‾n\À¤p=
×SM@ðÍ« g \ÀR¸ ëN@|ójâ \ÀËS ÛN@êrû
têH@ìQ¸
ÝYÀ\ Âõ(ÄJ@ÞÝÝÝÝáYÀn
WÀ´¢ o H@ìQ¸¡²ÓJ@kâYÑH
WÀ´¢ o H@YÀ¾|y5ñ WÀ{
 ójK@$à®W
GázH@
ÿXÀè´¾y5ñ WÀ{
NÃJ@$à®GázH@½
WÿXÀè´ xV4ºWÀ
NÃJ@lÁlºÜþ
YÀ9 ÃH@½
ã8 £J@
xV4ºWÀ
lÁlYÀ9ºÜþ
ã8
t¦>J@hE#
]ÀõI
YÀ 2TvôI7H@ÿ
ßx]À _,ùÅ2I@5ñ¬h$|]À¥Oú¤O2I@
úJ@1u¹ýACe YÀ
á[Àr
ã8Çqã
çM@Pú¤Oúä[ÀZÑHÀ7çM@Ú@§
K@ ëQ¸¥QÀ¦.—?(P@e
 ]ÀyV4©Ëí×QÀ
ðÍH@7Ði ®Gáz(P@e
]ÀÆ _,ùÍH@ÄÔåö
©Ëí×QÀ®Gáz(P@[°
]Àų¢ [°éQÀ<+
7H@Ú@§ øRP@[°[°éQÀ
×£p¥QÀÃõ(\ 6P@
×£p=
tÚ@×I@Ìí2T
PÀ]n ¡ZK@+
UÀùÅ _,yE@4
øæõOÀÝþðÍ«CeUÀ
K@+
lÁl9E@4
øæõOÀÝþ
ðÍ« UÀ
CelKÁl@í0u¹ý
9E@.Ø -تUÀ
OÀójâYÑ
übÉ/îD@.Ø
K@í0u¹ý OÀójâYÑ
-تUÀ übÉ/îD@'
K@ | óÒOÀ ¡²ÃÔõJ@
ÄUÀ= |ó
×£pÕD@'  ÄUÀ=
SÀÍÌÌÌÌÜE@Ï
×£pÕD@e
SÀÍÌÌÌÌÜE@©ËíãUÀ:m Ó
ðÍ«F¾7SÀ×£p=
âD@e ©ËíãUÀ:m ÓâD@Pú¤OúðUÀDDDDDE@Pú¤OúðUÀDDDDDE@±äK~õUÀ xE@±äK~õUÀ
§E@ðÍ« 7SÀ×£p=
§E@Ø -Ø iSÀ o^M¤E@Ø -Ø iSÀ o^M¤E@n ¡² SÀj 6бE@n ¡² SÀj 6бE@ÇqÇÍSÀ~±äK E@ÇqÇÍSÀ~±äK E@
ÞTÀÇqÇqÜE@û
ÞTÀÇqÇqÜE@,ùÅ _ÔTÀ¾y5ñ¬@F@,ùÅ _ÔTÀ¾y5ñ¬@F@IÀ7‾&ÚTÀ[°[°¥F@IÀ7‾&ÚTÀ[°[°¥F@°[°ûTÀ$à W¿F@°[°ûT
G@ìQ¸ _UÀ Ûd¨
tÚ@ïUÀé
G@|ójâEUÀ>éÛnG@ä8
d¨G@|ójâEUÀ
nG@§ ã8VÀ<+ÛønG@ä8
d¨G@}Ò'}Ò
ã8VUÀ<+
À0 übÉÿF@}Ò'}Ò
ønG@ÿ CeUÀ0
AVÀÉ/
übÉÿF@K~±ä
üb G@ÿ Ce7UÀß¼
AVÀÉ/
xV<G@K~±ä
üb G@ Âõ(\sVÀÕåö
7UÀß¼ xV<G@`,ù jG@
×£`VÀtÚ@§H@q=
×£`VÀtÚ@§H@cÉ/ ü6VÀ¢²ÃÔå6H@cÉ/ ü6VÀ¢²ÃÔå6H@¢²ÃÔåVÀn ¡²KH@¢²ÃÔåVÀn ¡²KH@R¸ ëõUÀä8 ã8vH@R¸
×cYÀV4ðÍËG@¤p=
PTÀj
×cYÀV4
tÚ@VÀq= 6ÐáD@tÚ@§
6ÐáD@À7‾&
ðÍËG@]n }TÀ Ó
¡ YÀæö :mÀD@À7‾&
*ÓG@]n ¡}TÀ Ó
YÀæö:*mÀD@e
ÓG@ ¦.—‾YÀ!Ce
©Ëí‾TÀÌí2TÆD@e
©H@âYÑHÀ‾TÀHáz
©Ëí‾TÀÌí2TÆD@33333
®'E@¢²ÃÔåÊTÀ'TÀÁ lE Á
@ËES@33333
ÛÿSÀß¼TÀ
tÚ@VÀq=
×£¸H@§
$I@O
×£¸H@m Ó
è´ ÆVÀK~±ä
:9VÀ~±ä«KE@@ÈPÙaÎVÀ\
ÎH@m Ó:9VÀ~±ä Âõ(ÜE@×£p=
KÎH@ xV4(VÀtÚ@§
WtÚ
À4YÀðÍ«AF@$à
ñF@A§
ñF@8‾&
W#WÀýbÉ/
YÀsû LF@!Ce © WÀÝþ Ce¿G@ Ûd¨ WÀ9 ã8 ³G@ F¾yÙXÀÒ'}Ò'ÝE@^M<+µXÀ+ øæ E@^M<+µX
¥F@8‾& YÀsû
¥F@/—?ÈPYÀÀ7‾& mF@/—?ÈPYÀÀ7‾& mF@m Ó:YÀlÁlÁ¾F@m Ó:YÀlÁlÁ¾F@ójâYÑ(YÀXÏ F
G@ójâYÑ(YÀXÏ F
¸]ÀX
G@CeÏ©Ë1YÀE#
F ß¼ZG@î2TvÈYÀ)\ ÂõH@ Ó:mÈYÀ~±äKH@8‾&  [À Ûd¨ìB@ %¿Xò«[Àÿ Ce ¹B@ %¿Xò«[Àÿ Ce ¹B@$
G@'  ¼]ÀÃõ(\
G@Ϋ
<\À/—?ÈPÉD@ä8
gE#\ÀÉ/ üb±D@tÚ@§
ã8öZÀhE#ßÄG@è´ NÄZÀÝþ Ce×G@è´ NÄZÀÝþ Ce×G@¨ì0u¹ ZÀ|ójâYéG@¨ì0u¹ ZÀ|ójâYéG@ ¦.
×£DÀUUUUU½T@q=
×£DÀUUUUU½T@ðÍ« geDÀhE#ßÀT@ðÍ« geDÀhE#ßÀT@ ã8 ãÈDÀ[°[ÈT@ ã8 ãÈDÀ[°[ÈT@*;L-EÀcÉ/ üÎT@*;L-EÀcÉ/
ÅEÀ Nè´ÍT@êrû
tÊT@tÚ@§
ÅEÀ
tÊT@Ë
FÀ1u¹ýAÊT@v
FÀ1u¹ýAÊT@tÚ@§
NSè´ÍT@Ë
Û'FÀÚ@§
S ºÜþXFÀ
Û'FÀÚ@§ºÜþ ¿T@v ºÜþXFÀ ºÜþ ¿T@Ìí2TöEÀ.Ø -غT@Ìí2TöEÀ.Ø -غT@ o^M<[FÀÀ7‾& ½T@ o
¦ FÀ¥Oú¤O¶T@
tòEÀ£
|T@
tÚpT@a
tÚ@
tÚpT@«ªªªªÒLÀ
|T@7Ði
¦.gT@
.gT@«ªªªªÒLÀ
®FÀ¥Oú¤O¶T@
Gáz$GÀ^M<+
T@2Tv
T@Ùaêrû
p¶îFÀtÚ@§
o^±T@Ú@§
o^±T@
`.MÀA§
LÀ ºôEÀ§
ëQ¸ZT@
EÀÆ
ÛdT@
¨TFÀáz
øæÕ,FÀIÀ7‾&¶T@
p_,ù
LÀ
®Gáz$GÀ^M<+
T@Ùaêrû
ëQ¸ZT@u¹ýA
®G±T@ ÛEÀÆ
d¨TFÀáz
T@¨ì0u¹
ÒLÀØ
øæÕ,FÀIÀ7‾&¶T@ýbÉ/
_,ù ®G±T@ðÍ«
T@r

GÀ¨ì0u¹
Çq/EÀà
eT@u¹ýA
gT@¨ì0u¹
WFÀÃõ(\
Ï T@r
ÒLÀØ ôEÀ
ÇqGÀ¨ì0u¹

²T@ðÍ«
/eT@$à
N
EÀàè´µT@ýbÉ/
WÏgWT@ÄÔåö
FÀÃõ(\
7T@ójâYÑ
MÀiôEÀ
T@$à
éGÀ²T@Yò
NW
¶EÀÙaêrû
è`´µT@
7¶MÀT@ÄÔåö
i%¿HFÀcÉ/
T@û

T@ójâYÑ
é>GÀEÀ~±ä
¶`
ü¢T@Yò
¶EÀÙaê
K¶T@
T@Ȇ
 MÀ‾&  xT@û
 MÀ‾&  xT@½ xV4ÒMÀsû
yT@½ xV4ÒMÀsû
xS@V4
xS@)\
tÚ@QÀÃõ(\
yT@nðÍ×QÀtÚ@§
Âõ¤QÀ÷
¡²3NÀ
¾S@A§
¾S@®Gáz
*2;tS@)\
Tv zT@n
rQÀ33333³S@®Gáz
Âõ¤QÀ÷
¡²3NÀ*2;tS@M<+
Tv zT@
rQÀ33333³S@ýbÉ/
-Ø - tQÀ
NÀýbÉ/
¦.—?lS@M<+
tT@QÀæö
-Ø*-‾S@ýbÉ/
NÀýbÉ/
tQÀ ¦.—?lS@~±ä
tT@r*Ç‾S@
QÀæö qKNÀÔ
JQÀPú¤Oú\S@~±ä
:m Ó¾QÀ
:m GT@r |ǧS@
q NÀÔ
K:JQÀPú¤
m Ó¾QÀ
:m GT
×£p PÀbêrû dS@=
×£p
tÚ@OS@@ÈPÙa¦QÀd¨ì0uMS@@ÈPÙa¦QÀd¨ì0uMS@'
tÚ@OS@þA
PÀbêrûÊ QÀ§
dS@¢²ÃÔåÂPÀìQ¸ WS@¢²ÃÔåÂPÀìQ¸ ØWS@S QÀ ÊSÛôPÀ‾&
CS@'  ØXS@S
QÀ ÊSÛôPÀ‾&
CS@ ëQ¸¾QÀ
 XS@ | ó&QÀÀ7‾&
6Ði9S@ ëQ¸¾QÀUS@ |6Ði
ó&QÀÀ
9S
×'QÀ®Gáz
S@¤p=
×'QÀ®Gáz
S@ÞÝÝÝÝõPÀ«ªªªªS@ÞÝÝÝÝõPÀ«ªªªªS@°[°ÃPÀ | ójþR@°[°ÃPÀ |ójþR@ò %¿X PÀêrû
S@ò %¿X PÀêrû
S@ `PÀ >é >S@ `PÀ >é >S@¨ì0u¹EPÀbêrûS@¨ì0u¹EPÀbêrûS@ 6ÐiPÀÞÝÝÝÝS@ 6ÐiPÀÞÝÝÝÝS@ _,ùÅ
×£pS@—?ÈPÙOÀ=
×£pS@ÞÝÝÝÝÅNÀÈPÙaê
S@ÞÝÝÝÝÅNÀÈPÙaê
S@ß¼ xVdNÀ/—?ÈPS@ß¼ xVdNÀ/—?ÈPS@¹ýA ÊþMÀΫ gEûR@¹ýA ÊþMÀΫ gEûR@{®Gá MÀ ðR@{®Gá MÀ
éR@ ¦.—7MÀsû
éR@ 6ÐiMÀS ÛÄR@ 6ÐiMÀS ÛÄR@Üd¨ì LÀö(\ ¹R@Üd¨ì LÀö(\ ¹R@DDDDDlLÀPú¤Oú¬R@DDDDDlLÀPú¤Oú¬R@Ù
R@L]n AKÀ
|IÀÆ
R@¾y5ñtKÀ[°
_,ùAQ@tÚ@§
_,ùAQ@#[°ùQ@
ß¼ °IÀé
¾y5ñtKÀ[°
>é "Q@#
[°ùQ@^M<+
ß¼ °IÀéÙ>é
KÀñ¬h$àïQ@^M<+
"Q@bêrû J ÀõIÙKÀñ¬h$àïQ@33333£KÀ#
ôI#Q@bêrû JÀõI ôI#Q@r
ß¼ ÇØQ@33333£KÀ#
qwJÀ | óQ@rÇq
ß¼wJÀ
ØQ@Y
|ó
×Q@é >é æPÀ¤p=
×Q@ú¤Oú¤QÀçÕij¢%Q@ú¤Oú¤QÀçÕij¢%Q@bêrû @QÀà WÏ2Q@bêrû @QÀà WÏ2Q@Ãõ(\ QÀ 4Q@Ãõ(\ Q À 4
×£p=ZQÀÐi 6 Q@
×£p=ZQÀÐi 6 Q@2Tv *QÀG¾y5 Q@2Tv *QÀG¾y5 Q@|ójâYAQÀáz®GQ@|ójâYAQÀáz®GQ@ËS ÛsQÀìQ¸ «Q@ËS Ûs
ÆQ@ øæÕðQÀû
ÆQ@ |ó
RÀR¸ ëåQ@ | ó
RÀR¸ ëåQ@NKä~±ä;RÀò
tÚ@§RÀè´ Q@§
Q@ö(\ ¹RÀ¶`
%¿XÚQ@¶`
K~±ä;RÀò
R@ö(\ ¹RÀ¶`
%¿XÚQ@à
¶`R@#WßϼjRÀ$à
äRÀ£WËo^ýQ@#
Q@à WÏjRÀ$à
ß¼ äRÀ£WËQ@Ùaêrû
o^ýQ@À7‾&RÀõI SÀôIïQ@Ùaêrû
übÉ/R@À7‾&RÀ
S
SÀhE#ßR@×£p=
tÚ@
SÀhE#
R@fffffBTÀ
@bêrû
ßR@ñ¬h$àÇSÀ/—?ÈPýQ@ñ¬h$àÇSÀ/—?ÈPýQ@ÄÔåö
T À§ß¼ xR@fffffBTÀß¼ xR@Yò %¿TÀS Ûd,R@Yò éSÀ«ªªªª
%¿TÀS
R@ÄÔåö
Ûd,R@~±ä
éSÀ«ªªªª
K2TÀ\
R@bêrû
Âõ(LR@~±ä
T À§ K2TÀ\ Âõ(LR@
¦NTÀXÏ FbR@
¦NTÀXÏ FbR@ä8 ã8~TÀ _,ùÅnR@ä8 ã8~TÀ _,ùÅnR@âYÑHÀ‾TÀ*;L]nR@âYÑHÀ‾TÀ*;L]nR@[°[°áTÀé >é fR@[°
×£p=FUÀ >é >AR@
×£p=FUÀ
R@
R@ªËí2,UÀùÅ
¦._UÀ Ûd>é¨R>AR@Á
@_, lÁ,UÀÞÝÝÝÝ9R@ÁlÁ,UÀÞÝÝÝÝ9R@.Ø -Ø^UÀò %¿X>R@.Ø -Ø^UÀò %¿X>R@+ øæEUÀìQ¸ R@
×£p=FUÀyV4ðéQ@
lQ@+
tÚLVÀå
×£p=FUÀyV4
lQ@ýbÉ/ K~±HR@ Ó
~±HR@A§
Søæ
ÀÖij¢
SðÀtÚ@§
éQ@QÙaêr_UÀà
:XQ@ýbÉ/
mdVÀ*;L]n/R@ Ó
S ÀÖij¢
WÏÊQ@QÙaêr_UÀà
:XQ@âYÑHÀ#SÀ
mdVÀ*;L]n/R@ÙaêrûsVÀæö
WÏÊQ@
Ûd*¨4Q@âYÑHÀ#SÀ
;L UÀ -Ø*R-ÀQ@
@ÙaêrûsVÀæö
*;L
Ûd¨4Q@ß¼
UÀ -Ø*xVøRÀ¦.—?È4Q@ß¼
R-ÀQ@`,ùÅ
@õI ôIsVÀ_UÀHáz
¡²ÃÔQ@õI
®xVøRÀ¦.—?
ËQ@`,ùÅ
ôIsV_
×£4Q@<+ ø¢RÀq=
×£4Q@  | RÀÑHÀ7‾.Q@  | RÀÑHÀ7‾.Q@@ÈPÙanRÀ¤p=
×Q@@ÈPÙanRÀ¤p=
×Q@ÇqÇqTRÀÏ FQ@ÇqÇqTRÀÏ FQ@]n ¡:RÀOè´ Q @1u¹ýAVÀ@ÈPÙaQ@í0u¹ýõUÀ1u¹ýAQ@í0u¹ýõUÀ1u¹ýAQ@¶`¶`VÀ
aQ@ ¡²ÃðVÀsû
tÚ@aQ@Q@¿Xò
Q@_,ùÅ"WÀ5ñ¬h$lQ@
¡²ÃÔ%#WÀ 6Ði«Q@¿Xò
WÀ§ _,ùÅ"WÀ5ñ¬h$lQ@
%#WÀ 6Ði«Q@kâYÑH<WÀ(}Ò'}ÒQ@kâYÑH<WÀ(}Ò'}ÒQ@bêrû
¡²ÃÔ WÀ§ hWÀ2Tv ºäQ@bêrû hW
×£p=XÀ#ß¼ Q@
×£p=
ttÚ@{R@
Q@Ház
@9XÀ#
ã8®N
ßÛWÀ
¼è³WÀÚ@§
´ÍXÀS
*Q@
;L]QÛ
¡²Ã
@dlR@
o^M<óXÀ§
XÀ|ójâuQ@
Nè´ÍXÀS Û¡²Ã
dlR@æö
XÀ|ójâuQ@
* XÀ¹ýA
ðÍ«ÊrR@æö
ÓWÀß¼*xjQ@
XÀ¹ýAðÍ«ÊrR@m Ó
ÓWÀß¼ :xjQ@´¢
iXÀÄÔåöyo¢WÀ«ªªªªfQ@´¢
R@m Ó:iXÀÄÔåöyR@1

XÀýbÉ/ HR@êrû
XÀýbÉ/ HR@ 6ÐiiXÀ Nè´AR@ 6ÐiiXÀ Nè´AR@yV4ðAXÀQÙaêr/R@yV4ðAXÀQÙaêr/R@
¦6XÀÌí2TR@
¦6XÀÌí2TR@QXÀû
êQ@QXÀû
êQ@ 6Ði XÀ±äK~éQ@ 6Ði XÀ±äK~éQ@V4ðÍ XÀ^M<+ÕQ@V4ðÍ XÀ^M<+ÕQ@"""""ÎXÀ+ øæÕQ@"""""ÎXÀ+ øæÕ
R@×£p=
3YÀ
3YÀ
R@q=
×£dYÀ×£p=
R@q=
×£dYÀ×£p=
R@¦.óR@V4
.óR@(}Ò'}Z[À
©Ëí~YÀHáz
ðÍs[À®RgE#
@ ©Ëí~YÀHáz
S@V4ðÍs[À®RgE#
@ö(\S@¾y5ñ¬X[À
YÀ¼»»»»/R@ö(\
 |/S@¾y5ñ¬X[À
YÀ¼»»»»/R@
 |/S@*;L]n'[À2Tv
©Ëí YÀß¼ xVDR@
º0S@*;L]n'[À2Tv
©Ëí YÀß¼ xVDR@ý
º0S
S@h$à [À Ûd¨
S@ o^M<ëZÀÖij¢ øR@ o^M<ëZÀÖij¢ øR@i$à WÃZÀwwwwwóR@i$à WÃZÀwwwwwóR@
×£p=ªZÀ _,ùÅS@
×£p=ªZÀ
tÚÀR@]n
tÚÀR@÷*;([À
_,ùÅ
¡öZÀA§
:m ÓÂR@÷
S@ÁlÁxZÀ5ñ¬h$
*;([À:m ÓÂR@Ø
S@ÁlÁxZÀ5ñ¬h$
-Ø Y[À|ójâY¹R@Ø
S@J ôI xZÀ¾y5ñ¬ÐR@J
-Ø Y[À|ójâY¹R@kâYÑH
ôI xZÀ¾y5ñ¬ÐR@Æ
[À&¿Xò _,ùµR@kâYÑH
ZÀ¬ gE#ÁR@Æ
[À&¿Xò _
\ÀÖij¢ R@øæÕij
\ÀÖij¢ R@q=
×£<\ÀØ -Ø R@q=
×£<\ÀØ -Ø R@Tv ºÜn\À¬ gE# R@Tv ºÜn\À¬ gE# R@J ôI T\ÀlÁlÁ¶R@J ôI T\ÀlÁlÁ¶R@(}Ò'}"\Àú¤Oú¤¿R@
×£Ô[À*;L]ÆR@q=
ÈR@S
ÈR@^M<+
×£Ô[ÀÛ*;L]ÆR@ÞÝÝÝÝñ[Àh$à
8]]À;L]n
ÀtÚ@§ ÈR@S Û8]À;L]n ËR@ÞÝÝÝÝñ[Àh$à
ÈR@Üd¨ì]À7Ði ÞR@Ü
ËR@?éd¨ì
>é#\À
]À7Ði6ÐiËR@?é
ÞR@E#ß¼ê\À Ó
>é#\À:mäR@E#
6ÐiËR@ßϼê\À Ó
FV\ÀJ:mäR@d¨ì0u
ôI ÄR@Ï ]F
×S@,ùÅ _ \À¤p=
×S@
¦ \ÀØ -Ø S @
¦.×VÀ
\ÀØK-Ø
~±ä+S@
~±ä+S@áz
S @åK~±T\ÀójâYÑ
®G¥VÀ -Ø -$S@áz
S@åK~±T\ÀójâYÑ
®G¥VÀ -ØS-$S@e
@ übÉ/"\À
©Ëí×VÀ
K~±ä
¶`S@®Gáz
¶ S@eþ©Ëí×VÀ
VÀu¹ýA¶*S@
`¶ S@É/ üb¥VÀv ºÜþS@É/ üb
×£S@ÿ Ce VÀq=
×£S@}Ò'}Ò¿VÀÁlÁ
S@}Ò'}Ò¿VÀÁlÁ
S@Ï F VÀ -Ø -S@Ï F VÀ -Ø -S@ o^M<¿VÀ*;L]nûR@ o^M<¿VÀ*;L]nûR@®Gáz VÀz5ñ¬hüR@®Gáz VÀz5ñ¬hüR@1
×£pTÀ o^MèR@=
×£pTÀ o^MèR@kâYÑHèSÀ»Üþ CÝR@kâYÑHèSÀ»Üþ CÝR@¨ì0u¹TÀ=
×£pÅR@¨ì0u¹TÀ=
×£pÅR@ ¡²ÃÔTÀG¾y5¥R@ ¡²ÃÔTÀG¾y5¥R@[°[LTÀJ ôI ¤R@[°[LTÀJ ôI ¤R@¥Oú¤O~TÀp^M<+ R@¥Oú¤O~TÀp^M<+
×‾TÀÒ'}Ò'¡R@¤p=
t¾VÀ,ùÅ
×‾TÀÒ'}Ò'¡R@ójâYÑÈTÀv
_¬R@Ú@§
_¬R@DDDDDðVÀé ºÜþ´R@ójâYÑÈTÀv
>é ®R@DDDDDðVÀé >é
ºÜþ´R@
®R@2Tv
_,ùÅ
âTÀè´ N¤R@2Tv âTÀè´ N¤R@
*;LUÀ¦.—? R@*;LUÀ¦.—?
WÀ >é >ÉR@ _,ùÅ
WÀ >é >ÉR@þA ÊWÀ¾y5ñ¬øR@þA ÊWÀ¾y5ñ¬øR@wwwww#WÀËS ÛÿR@wwwww#WÀËS ÛÿR@ÍÌÌÌÌ@WÀ+ øæS@ÍÌÌÌÌ@W
¦XÀPú¤Oú$S@
¦XÀPú¤Oú$S@ -Ø -8XÀÿ Ce 1S@ -Ø -8XÀÿ Ce 1S@|ójâXÀÒ'}Ò'=S@|ójâXÀÒ'}Ò'=S@QÙaêrëWÀ³ÃÔåöCS@QÙa
nWÀE#ß¼:S@û
nWÀE#ß¼:S@¬ gE#UWÀ*;L]nS@¬ gE#UWÀ*;L]nS@]n ¡"WÀðÍ« 'S@]n ¡"WÀðÍ« 'S@Æ _,ù WÀ*;L]n'S@^
RÀ(}Ò'}ÆT@(}Ò'}
RÀ(}Ò'}ÆT@¶`¶ØQÀþA Ê»T@¶`¶ØQÀþA Ê»T@2Tv º¨QÀ7Ði ÆT@2Tv º¨QÀ7Ði ÆT@
×£p= QÀ ºÜþ ÇT@
×£p= QÀ ºÜþ ÇT@;L]n XQÀ\ Âõ(ÀT@;L]n XQÀ\ Âõ(ÀT@è´ N(QÀæö*¿T@è´ N(QÀæö*¿T@ Ó:møPÀ£ o^½T@ Ó:
×£põPÀä8 ã8®T@=
×£põPÀä8 ã8®T@@ÈPÙa&QÀö(\ ©T@@ÈPÙa&QÀö(\ ©T@'  ôPÀ übÉ/ªT@'  ô PÀ übÉ/ªT@ F¾yÁPÀ=
×£pT@ F¾yÁPÀ=
×£pT@ %¿Xò PÀ | ó²T@ %¿Xò PÀ |ó²T@.Ø -Ø^PÀÕåö²T@.Ø -Ø^PÀÕåö²T@øæÕij.PÀÞÝÝÝݹT@øæÕij.PÀÞÝÝÝÝ
×£pµT@bêrû üOÀ=
×£pµT@ÇqÇÁOÀ gE#«T@ÇqÇÁOÀ gE#«T@:m Ó^OÀÄÔåö¡T@:m Ó^OÀÄÔåö¡T@u¹ýA úNÀ÷*; T@u¹ýA úNÀ÷*; T@Ce
×gT@m Ó:©PÀ¤p=
×gT@ Nè´ÙPÀ(}Ò'}fT@ Nè´ÙPÀ(}Ò'}fT@÷*;øPÀ 6ÐieT@÷*;øPÀ 6ÐieT@G¾y5)QÀ¦.—?hT@G¾y5)QÀ¦.—?hT@¶`¶
PÀz5ñ¬h`T@tÚ@§yPÀß¼ xNT@tÚ@§yPÀß¼ xNT@
¦ªPÀ7Ði BT@
tBQÀ
¦ªPÀ7ÐiøæÕÄ#T@v
øæÕÄ#T@Ú@§
BT@Ði 6ÜPÀ
ºÜþpQÀ(}Ò'}
%¿Xò;T@ÐiT@v6ÜPÀ
ºÜþpQÀ(}Ò'}
%¿Xò;T@eT@
©Ëí÷PÀ
Ï F QÀp^M<+
-Ø -4T@e
T@Ï F
©Ëí÷PÀ
QÀp^M<+
-ØT-4T@
@ÀQÀ¶`
®Gáz(QÀ
¶`T@ÀQÀ¶`
è´ N+T@
¶`T@Ãõ
®Gá
RÀ7Ði êS@:m Ó
RÀ7Ði êS@ÇqÇq<RÀd¨ì0uíS@ÇqÇq<RÀd¨ì0uíS@Pú¤OúlRÀõS@Pú¤OúlRÀõS@ú¤Oú¤ RÀ¿Xò %÷S@ú¤Oú¤ RÀ¿Xò %÷
ñS@Ï F¾mRÀêrû
ñS@1u¹ýA RÀe ©ËíÛS@1u¹ýA RÀe ©ËíÛS@yV4ð¹RÀ±äK~ÙS@yV4ð¹RÀ±äK~ÙS@;L]n ìRÀ
×£p=ÚS@;L]n ìRÀ
tÚ\S@
×£p=ÚS@
tÚ\S@Ház
¦.ÏS@ýbÉ/
.ÏS@¡²ÃÔµSÀ³ÃÔåöWS@
>é®gE#SÀA§
>ÑRÀ
SÀbêrû
 RÀ Nè´ÅS@ýbÉ/
àS@ ¡²ÃÔµSÀ³ÃÔåöWS@z5ñ¬hèSÀDDDDDTS@z5ñ¬hèSÀDDDDDTS@Ce
gE#S RÀ
Àbêrû
Nè´ÅS@æö
àS@ d¨ì0QSÀS
*ÓRÀcÉ/ÛüÂS@æö
dÜS@ d¨ì0QSÀS
*ÓRÀcÉ/ üÂS@ýbÉ/
ÛdÜS@ d¨ì05SÀ
SÀ‾&
©ËT ÌS@ýbÉ/
À _,ùÅRS@Ce
ÑS@ d¨ì05SÀ
S À‾&©Ë
 TÌSÀ
}TÀi$à WSS@êrû
S@ä8
}TÀi$à
tâTÀ@ÈPÙa²S@ñ¬h$à‾TÀcÉ/
tâTÀ@ÈPÙa²S@Ú@§
S@bêrû
ã82TÀ
TWSS@
 ÀázºÜþ
®GWÏ SJTÀáz
@ä8 ã82TÀ
®GQS@üªS@ñ¬h$à‾TÀcÉ/
WÏ JTÀáz
ºÜþ S@G¾®y5eTÀ
GQS@ÏüªS@ò
>éFS>
@GTÀ¾%¿X~TÀæö
y5eTÀ
Ûd¨DS@
Ï F*S>é—S@ò
@IÀ7‾&
>TÀ%¿X~TÀæö
ÛTÀ/—?ÈP)S@IÀ7‾&
d¨DS@bêrû
*—S@M<+
èSÀ`,ùÅTÀ/—?ÈP)S@‾&
OS@bêrû
°TÀ ß¼ xºS@M
èSÀ
UÀÇqǽS@êrû
UÀÇqǽS@Ìí2TâTÀ&¿Xò ÁS@Ìí2TâTÀ&¿Xò ÁS@ 6ÐiUÀ %¿XòËS@ 6ÐiUÀ %¿XòËS@É/ üb-UÀµ NèÜS@É/ üb-UÀµ
×ÿS@#ß¼ °TÀ¤p=
t×ÿS@<+
SÀCe ©Ë1T@
©Ë1T@Ú@§
ø TÀè´xV4
NóS@<+
lSÀv ºÜþ4T@
ø TÀxV4
è´ lNóS@
SÀv ºÜþ4T@ú¤Oú¤OSÀ±ä
xV4dTÀ1u¹ýAæS@ xV4
K~5T@ú¤Oú¤OSÀ±ä
dTÀ1u¹ýAæS@G¾Ky51TÀµ
~5T@= NèäS@G¾y51TÀµ Nèä
×£p SÀlÁl9T@=
×£p SÀlÁl9T@øæÕij²SÀ:m Ó6T@øæÕij²SÀ:m Ó6T@Ìí2T SÀ ëQ¸JT@Ìí2T SÀ ëQ¸JT@iSÀh$à ST@iSÀh$à ST
×£p=TÀyV4ð-T@
DT@QÙaêr
×£p=
DT@ÈPÙaê^UÀß¼
¦.CT@R¸
.CT@ÍÌÌÌÌ
TÀyV4UÀtÚ@§
ð-T@Ház
ëáTÀ
UÀÇxVLT@ÈPÙaê^UÀß¼
qÇET@R¸
®KTÀ ëáTÀ
¡²Ã(T@Ház
ÇqÇET@õI
xVLT@=
®KTÀôI‾TÀÖij¢
¡²Ã(T@ ¡²ÃÔ}TÀ^M<+
HT@õI ôI‾TÀÖij¢
%T@ ¡²ÃÔ}TÀ^M<+
HT@ÕåöâTÀ%T@]n
o^MHT@Õåö
¡®TÀ¹ýA
âTÀ Ê"T@]n
o^MHT
×£p UÀû
JT@=
×£p UÀû
JT@ÇqÇqÄUÀtÚ@§ET@ÇqÇqÄUÀtÚ@§ET@—?ÈPÙõUÀ'  D T@—?ÈPÙõUÀ'  DT@h$à 'VÀ¶`¶`CT@h$à 'VÀ¶`¶`CT@
¦ZVÀG¾y5AT@
VÀú¤Oú¤cT@ñ¬h$à?VÀ
VÀú¤Oú¤cT@j
¦ZVÀG¾y5AT@6ÐÛd¨ VÀî2TvDT@
2Tv bT@ñ¬h$à?VÀ
Ûd¨ VÀî2TvDT@J
2Tv bT@"""""rVÀªËí2\T@"""""rVÀªËí2\T@|ójâY¡VÀ
ôI \VÀUUUUUMT@J ôI \VÀUUUUUMT@V4ðÍ?VÀ&¿Xò
%¿XòWT@|ójâY
]T@V4ðÍ
ÍSÀÑHÀ7‾ªT@êrû
ÍSÀÑHÀ7‾ªT@
¦.#T@
.#T@ ëQ¸ZVÀé
6Ði VÀã8 >é
ãüSÀd¨ì0uµT@
"T@ ëQ¸ZVÀéã8>éãüSÀd¨ì0uµT@î2TvÌSÀ`,ùÅ
"T@âYÑHÀ?VÀh$à T@âYÑHÀ?VÀh$à
»T@î2TvÌSÀ`,ùÅ
T@Ô:m VÀS
»T@í0u¹ý
ÛT@Ô:SÀ?é
m VÀS>é—T@í0
ÛT@Ø -
§S@ß¼ xVWÀ×£p=
§S@V4ðÍoWÀ=
×£pµS@V4ðÍoWÀ=
×£pµS@^M<+
¦. WÀ|ójâYÑS@É/
WÀ|ójâYÑS@
UWÀu¹ýAüb¹WÀà
ÊS@^M<+
WÏUÒS@É/
WÀu¹ýAüb¹WÀà
ÊS@´¢ WÏo"WÀp^M<+ÊS@´¢
ÒS@ o^M<ëWÀ o"WÀp^M<+ÊS@
ÙS@ o^M<ëWÀ ¡²ÃðVÀ]n ÙS@ ¡ÊS@ ¡²ÃðV
×£p=ºWÀ:m ÓæS@
×£p=ºWÀ:m ÓæS@¿Xò %ëWÀéS@¿Xò %ëWÀéS@ Ûd¨XÀ8‾& õ S@ Ûd¨XÀ8‾& õ S@\ Âõ(ìWÀ ºÜþ T@\ Âõ(ìWÀ ºÜþ T
T@lÁlÁ WÀ übÉ/
T@hE#ßÐWÀ`,ùÅ T @hE#ßÐWÀ`,ùÅ T@m Ó:ýWÀ#ß¼
T@m Ó:ýWÀ#ß¼
T@®GázÒWÀCe ©Ë%T@®GázÒWÀCe ©Ë%T@ ºÜþ WÀ`,ùÅ #T@ ºÜþ WÀ`,ùÅ #T@ZÑHÀ7»WÀ5ñ¬h$4T@ZÑHÀ7»WÀ5ñ¬
×£pAVÀÌí2TÂQ@=
tÚ
tÚpR@æö
×£pAVÀÌí2TÂQ@ò
JÀOè´*çSÀE#
T@A§ßgE#áIÀHáz
T@¬ ¼jR@æö
%¿XZVÀ5ñ¬h$¸Q@:m Ó
*çSÀE#
® T@¬ß¼jR@
gE#áIÀHáz
-تFÀ4
-´SÀÕåö
®ðÍ«
T@2T@øæÕijòFÀ*;L]n
jTv
R@²IÀIÀ7‾&~T@M<+
-Ø -´SÀÕåöjR@Ìí2T
T@øæÕijòFÀ*;L]n
SÀm Ó
KÀ$à :WiR@Ìí2T
Q@ST@Û
ðÍ«¬JÀ»Üþ
SÀm Ó
WGÀ :CiR@
Q@ST@Û¬ð
×3R@,ùÅ _´SÀ¤p=
×3R@×£p=
çSÀÖij¢ 0R@×£p=
çSÀÖij¢
tÚHR@&¿Xò
tÚHR@Ϋ gE 0R@Ϋ
TÀA§gETÀA§
5TÀ:m Ó bR@&¿Xò 5TÀ:m ÓbR@ Ûd¨0TÀªËí2pR@Ϋ gE7SÀ&¿Xò YQ@0 übÉOSÀè´ N[Q@âYÑHÀ SÀ¶`¶
¦æSÀ!Ce ©sQ@
¦æSÀ!Ce ©sQ@
×£p=TÀïîîîîfQ@
×£p=TÀïîîîîfQ@R¸ ëTÀÀ7‾& mQ@a¶`ºWÀ×£p=
R@*;L]n WÀq=
×£ R@*;L]n WÀq=
×£
tÚ@ÿQ@Ï
tÚ@ÿQ@ R@)\%¿XòÂõTWÀ{
F ¾¹WÀ
WÀ§è®´GáNÿQ@Ï
R@)\F¾ÂõTWÀ{
¹WÀè´®NÿQ@Ϋ
Gá R@p^M<+"WÀójâYÑ
gEÓWÀ | ój"R@ΫR@p^M<+"WÀójâYÑ
gEÓWÀ | ój"R@"""""âWÀhE#
R@ÁlÁðVÀÒ'}Ò'ßHR@"""""âWÀhE#
R@ÁlÁðVÀÒ'}Òß
XÀ]n ¡zR@×£p=
XÀ]n ¡zR@q=
×£´XÀbêrû tR@q=
t×£´XÀbêrû
¦.
WÀ<+
]ÀbêrûøÞR@÷
øÞR@Ú@§
tR@ZÑHÀ7
$S@
$S@Çq
*;`WÀ
Çq8]À7Ði
XÀà W"S@Çq
übÉ/ÆR@÷
Ï R@ZÑHÀ7
*;`WÀ
Çq8]À7Ði
übÉ/ÆR@ Ó
XÀà "S@µ
WÏ R@^M<+
:N
mèh]À
WÀåKXÀ¢²ÃÔå
~±¨R@ Ó
übÉ/S@µ:R@
mNè¶WÀå
`¶ WÀr
h]À KübÉ/
~±¨R@
ÇqSç@ų¢
R@Ú@§
ß¼ xºWÀ@ÈPÙaªR@
]À®Gáz0S@ų¢ ß¼ xºWÀ@]
S@ o^M<3^Àïîîîî
S@Ði
üR@¹ýA

üR@kâYÑH|^ÀªËí2
\À#6d^À?é
ßʼ 8S@#
^ÀtÚ@§
>éÿR@Ði
ß¼S@kâYÑH|^ÀªËí2
 \ÀÔ:6d^À?é
m 7S@ |>éÿR@¹ýA
 ójr[À¾y5ñ¬|S@#
S@ -Ø -L^À9
Ê ^ÀtÚ@§ã8
ß¼+S@
¤[À\ -ØÂõ(xS@#
-L^À9 ßã8¼ ¤[À\+S@ NÂõ(xS@þA
è´^À°[°3S@Ê¿[Àa
Nè´¶^`
À°Z[S@þA
°3S@m Ó
Ê¿[À:
×£pñ[À(}Ò'}VS@=
×£pñ[À(}Ò'}VS@ ÊS #\ÀÈPÙaêZS@ ÊS #\ÀÈPÙaêZS@ *;L=\Àa¶`^S@*;L=\Àa¶`^S@×£p=
#\À¢²ÃÔå~S@×£p=
#\À¢²ÃÔå~S@z5ñ¬hð[ÀL]n S@z5ñ¬hð[ÀL]n S@ÞÝÝÝݽ[Àq=
×£ S@ÞÝÝÝݽ[Àq=
×£ S@ ÊS [À×£p=
S@ ÊS [À×£p=
S@Oè´ r[À@ÈPÙa S@#ß¼ \À9 ã8 S@S Û \Àà WÏ S@ F¾y [ÀÕåö®S@ðÍ« [[À %¿Xò£S@ðÍ« [[À %¿Xò£S@¢²
\ÀHáz® S@IÀ7‾&
\ÀHáz® S@®Gáz<\Àp^M<+ S@®Gáz<\Àp^M<+ S@—?ÈPÙ!\À o^M S@—?ÈPÙ!\À o^M S@\ Âõ(ð[À o^M<£S@\ Âõ
¿[À N贍S@×£p=
¿[À
¼S@ No^M|YÀ
¼S@"""""®YÀtÚ@§
贍S@vlÁ ºÜþ¤[À
lÅS@ °o^M|YÀ
S@¶`¶dYÀ\
lÁlÅS@
Âõ(xS@R¸
è´ NKYÀêrû
ë YÀa¶`nS@R¸ ë YÀa¶`nS@,ùÅ _|YÀ >é >yS@"""""âYÀ;L]n Ô
½S@è´ NKYÀêrû
½S@
tÚ@ S@ZÑHÀ7
F¾yYÀ CeYÀ§
S@»Üþ YÀPú¤Oú
øæÕ´S@
S@ZÑHÀ7
F¾yYÀYÀPú¤Oú
øæÕ´S@ Ó
S@Öij¢:mèXÀ´¢
ÈYÀÔ:m o¦S@ Ó
S@Öij¢:mèXÀ´¢
ÈYÀÔ:m o¦S@¨ì0u¹ÍXÀ|ójâY
S@1u¹ýAúYÀ*;L]n S@1u¹ýAúY
S@¨ì0u¹ÍX
_S@Ði 6¸WÀ×£p=
_S@ÈPÙaêêWÀû
^S@ÈPÙaêêWÀû
^S@—?ÈPÙÑWÀq=
×£pS@—?ÈPÙÑWÀq=
×£pS@DDDDD WÀÄÔåö
T@
T@î2TvÌXÀtÚ@§
ttÚ°S@ú¤Oú¤OXÀA§
tÚ°S@—?ÈPÙ
S@X
è´ÏNçXÀùÅ
FæSÀXºÜþ
À_,ùS@
*;L]ªS@—?ÈPÙ
÷R@X
èq´S@DDDDD WÀÄÔåö
ÏNçXÀùÅ
FæSÀ
XÀºÜþ
*_,ùS@"""""þXÀÈPÙaê
;L]ªS@}Ò'}ÒëWÀ|ójâY¡S@}Ò'}ÒëWÀ|ójâY¡S@áz
÷R@L]n
qS@¹ýAÍSÀñ¬h$à
ÊnWÀµ TNSè@Ï@M<+
pS@¹ýA
FºRÀwwwww#Q@O
ÊnWÀµ
èXÀÿNCe
èèpS@n
´ ÒRÀ^M<+
®G¹WÀUUUUU
¡²SWÀ33333oS@a
-T@î2TvÌXÀtÚ@§
Q@ß¼ xV
S@áz
YÀ(®¶S@
`jXÀe
G¹WÀUUUU
_,ùÅÎ
©Ë
¿R@)\ ÂõYÀ×£p=
¿R@{®GáæXÀfffffêR@{®GáæXÀfffffêR@lÁlYÀ|ójâéR@lÁlYÀ|ójâéR@}Ò'}ÒKYÀ ©ËíæR@}Ò'}ÒKYÀ ©ËíæR@
×£p=~YÀK~±äãR@
×£p=~YÀK~±äãR@h$à cYÀ‾&  ôR@h$à cYÀ‾&  ôR@
¦FYÀÉ/ übS@
¦FYÀÉ/ übS@kâYÑHYÀ?é >éS@kâYÑHYÀ?é >éS@ÑHÀ7‾æXÀS ÛüR@ÑHÀ7‾æXÀS ÛüR@ xV4YÀÜd¨ì
S@ xV4YÀÜd¨ì
S@û
YÀS@û
YÀS@#ß¼ YÀÐi 6(S@ä8 ã8RÀ 6Ði]S@ %¿XòïQÀp^M<+ZS@ %¿XòïQÀp^M<+ZS@.Ø -Ø"RÀùÅ _,YS@.Ø -Ø"RÀùÅ
¦vJÀq=
×£ØQ@
¦vJÀq=
×£ØQ@UUUUU
t Q@1u¹ýA~KÀ=
JÀè´ NËQ@ |ó.XÀ øæÕHR@XÏ F6XÀLR@ðÍ« guKÀÚ@§
×£p Q@ F¾yÍCÀÆ _,ùiP@ ã8 ãDÀ ¡²ÃÔEP@ ã8 ãDÀ ¡²ÃÔEP@êrû
eDÀÿ Ce EP@êrû
eDÀÿ Ce EP@Ï F¾1DÀÕåöP@Ï F¾1DÀÕåöP@wwwww DÀS ÛdP@wwwww DÀS ÛdP@ÙaêrûcDÀú¤Oú¤÷O@ÙaêrûcDÀú¤Oú
×£XO@ú¤Oú¤_EÀq=
×£XO@‾&  ,EÀ Nè´O@‾&  ,EÀ Nè´O@Yò %¿@EÀ`,ùÅ ‾N@Yò %¿@EÀ`,ùÅ ‾N@@ÈPÙa EÀÐi 6 N@@ÈPÙa EÀÐi 6
¦HÀáz®G N@
¦HÀáz®G N@?é >é{HÀËS Û‾N@?é >é{HÀËS Û‾N@Tv ºÜ HÀªËí2O@Tv ºÜ HÀªËí2O@rÇqçHÀ×£p=
'O@rÇqçHÀ×£p=
tJIÀ
'O@±äôI
K~IÀr
ô ÇqwO@±ä
P@Ú@§
P@SK~IÀr
ÛdÇ°IÀsû
qwO@ %¿XòKIÀbêrû O@ %¿XòKIÀbêrû O@yV4ð}IÀXÏ FÒO@yV4ð}IÀXÏ FÒO@Ú@§
P@S Ûd°IÀsû
tzP@4
tÚ@JÀ
tzP@£
tâIÀþA
P@ ëQ¸
ðÍ«©JÀp^M<+
übÉ/
}IÀÁ
o^EJÀÚ@§
Ê ×P@O
P@Ú@§
lÁ
P@§
P@ è´P@FJÀ
ëQ¸
P@4
àIÀ(}Ò'}ªP@
|} óÖP@O
IÀÁ
ðÍ«©JÀp^M<+
lÁèP´@ÜFJÀ
d¨ìIÀÙaêrû
|P@wwwwwwJÀ
óÖP@
àIÀ(}Ò'}ªP@yV4
ÊPS@Ü«JÀ+
d¦¨ì
.—?IÀÙaêrû
P@wwwwwwJÀ
ð}IÀÕåö
øæÑP@P@eÊS¶©ËíWIÀyV4
P@yV4
¦.—?ðP@
«JÀ+ }IÀÕåö
*;LEJÀâYÑHÀ
ð9P@e¶P@4
øæÑP@ ©ËíWIÀyV4
gE#ðÍ«
wJÀ IP@ÀyV4
*;LEJÀâYÑHÀ
Nèð´íP@
9P@
ð½P@4
-ØðÍ«
gE# w-°IÀ

IP@§
Ày
¦òP@è´ N°IÀ
P@`,ùÅ
Q@5ñ¬h$@DÀ¸
¦òP@ýbÉ/
ÇDÀų¢
J ÀëQ §O@
P@ðÍ«
ùP@ýbÉ/
ëQ¸geDÀáz
DÀµJÀN
®Gè O@êrû
ùP@ùÅ _,yJÀ¾y5ñðP@ùÅ _,yJÀ¾y5ñðP@'  ¬JÀ*;LåP@'  ¬ JÀ*;LåP@xJÀ[
õEÀö(\ ÂN@ų¢ 'FÀ}Ò'}ÒN@V4ðÍëGÀ |ójZN@«ªªªªêGÀS ÛdhN@j 6ÐyJÀ:m ÓjP@ yJÀ¸ ëQdP@ÑHÀ7‾ZaÀ
×£p_À³ÃÔåöÿM@=
×£p
¦._N@ýbÉ/
._N@°
_À³ÃÔåöÿM@
[°«_À
Ä_Àè´
o^M<N°_N@ýbÉ/
À ÊS KN@Ä_Àè´
o^M<N
_À°N@±ä
ÊS KKN@
~Ý_À±ä
*;L]F_˵
K~ÁN@±ä
NèlN@
K~Ý_À±ä
*;L]F_˵
K~ÁN@è´
NèlN@¦.—?Èx_Àà
N`À|ójâáN@è´WN
ÏrN@¦.—?Èx_
`À|ójâáN@ò
×£p `À£ o^UP@=
×£p `À£ o^UP@ xV4 `À—?ÈPÙ P@ xV4 `À—?ÈPÙ P@ |ój¶`Àêrû
P@ |ój¶`Àêrû
P@¾y5ñº`À33333—P@¾y5ñº`À33333—P@ 6ÐiÑ`Àî2TvÀP@ 6ÐiÑ`Àî2TvÀP@Oè´ ê`À®GázÀP@Oè´ ê`À®GázÀP@ú¤
aÀ&¿Xò éP@ _,ùÅ
aÀ&¿Xò
tÚ@çJ@¹ýA
J@ß¼ xV WÀtÚ@§
J@u¹ýAéP@Ði
~WÀªËí2ÄJ@u¹ýA
Êæ]ÀS
6aÀÛd¦°J@¹ýA
.—Q@Ði
~WÀªËí2ÄJ@µ
6aÀ ¦.—
Êæ]ÀS ÛdQ°J@^M<+
@ä8
NèTWÀcÉ/
ã8aÀ
Á]À—?ÈPÙ
¾y5ñ4Q@
üúJ@µJ@^M<+
xV4
NèTWÀcÉ/
^À§Á]À—?ÈPÙ
üúJ@G¾J@IÀ7‾&
y55WÀ#ß¼]À¿Xò
(K@G¾%_J@IÀ7‾&
y55WÀ#ß¼ (K@
]À¿
UL@ZÑHÀ7OVÀsû
UL@Üd¨ì@VÀé >é fL@ójâYÑÜPÀïîîîîæJ@Yò %¿ÜPÀÖij¢ HK@Yò %¿ÜPÀÖij¢ HK@ Âõ(\ÃPÀ'  tK@ Âõ(\ÃPÀ'
-N@M<+
tÚ@gYÀ\
YÀ;L]n Âõ(üI@{
èM@+
YÀÍÌÌÌÌìK@Á
®GábYÀæö
øæ}YÀn
lÁ *YÀæö
¡²»K@(}Ò'}vYÀÕåö
I@<+
*SL@Áø^YÀªËí24I@<+
lÁ YÀæö*SL@M<+
bK@(}Ò'}vYÀÕåö
ø^YÀªËí24I@v
YÀÿ Ce bK@¹L@M<+
%¿XòsYÀ]n
ºÜþ\YÀà
YÀÿ Ce
W¡*K@
ÏI@v
¹L@Á
%¿XòsYÀ]n
ºÜþ\YÀà
lÁ YÀ!CeWÏI¡*K@É/
©M@@Á
o^MlÁ
]À³ÃÔåöÿM@û
^dYÀe
ÀÀ*;L]nçJ@M<+
ÀÌí2TVL@tÚ@§
À;L]n
[Àÿ
]À³ÃÔåöÿM@fffffê\À
¡²ÃÔ
Ce
©ËíÿM@tÚ@§
©ËíÿM@<+
¸L@tÚ@§
¸L@Á
K@tÚ@§
K@M<+
I@tÚ@§
I@ lÁ
xV4
^ÀTv
^ø2YÀe
[Àn
 ÀªËí2ôK@M<+
À2Tv
ºÜ
K~±äÿM@fffffê\À
M@Á
¡²ûI@
©ËíÿM@<+
º<K@M<+
lÁ^ÀTv
xV4ºÜ
[ÀnM^ø2YÀe
À2Tv
ÀªËí2ôK@tÚ@§
@Á
Kl~±äÿM@UUUUU¹\À³ÃÔåöÿM@UUUUU¹\À³ÃÔåöÿM@DDDDD
Á
¡²ûI@Á
^º<K@tÚ@§
©ËíÿM@V4
Àm Ól:ÁM@Á

ðlÍÿXÀ
Á
©ËíbJ@Á
^Àm Ó
N@V4:lðÁ
ÍÿXÀ
M@M<+
[ÀN@©ËíbJ@'
_,ùÅÎXÀ³ÃÔåöÿM@
^ À Âõ(\çM@
  [ÀªËí2ÄJ@'
xV4 [ÀL]n
\ÀK~±äÿM@DDD
_,ùÅÎXÀ³ÃÔåö
  [ÀªËí2Ä
H@ [
âSÀR¸ ë1I@û
ÜSÀÖij¢
âSÀR¸ ë1I@
 G@tÚ@§
 G@¨ì0u¹ÍSÀ»Üþ
Nè´áSÀ&¿Xò ÍH@ CmG@j
Nè´áSÀ&¿Xò
6ÐiSÀ×£p=ÍH@|ójâYáSÀÖij¢ hH@|ójâYáSÀÖij¢ hH@)\ ÂõàSÀhE#ßH@)\ Â
GtÚ
@ÐiF@:m Ó
6PSÀB6Ði
QÀOèõ´F@Ði
¦G@ªËí2
6PSÀQÀ¼»»»»ÓG@ªËí2
6ÐiõF@ÄÔåö-SÀõI
QÀ¼»»»»ÓG@d¨ì0uõPÀ³ÃÔåöÿG@d¨ì0uõPÀ³ÃÔåöÿG@¶`
ôI×F@ÄÔåö-SÀõI ôI×F@µ NèSÀÇqÇÁF@µ NèSÀÇqÇÁF@
¶`ÃPÀ¢²ÃÔå
_,ùÅÒR
G@êrû
XÀn ¡²ÛE@êrû
XÀe ©Ëí?F@êrû
tÚìWÀe
XPXÀ;L]n
ÜJ@Æ
°YÀî2TvøF@yV4
Àe
¦._PÀ
©Ëí?F@ÄÔåö
_,ù½PÀ±ä
¶©Ëí¿E@
©Ëí¿E@A§
`¶øF@(}Ò'}6XÀ
øF@tÚ@§
J@ KðëQ¸ºWÀ³ÃÔåö¿E@
X~}YÀ
ÀJ@Æ
Ï F¦F@<+
_,ù½PÀ±ä
øF@yV4
øF@øæÕij
Kð~}YÀ
ëQ¸ºWÀ³ÃÔåö¿E@#
J@v
WøÀ!Ce
XÀ³ÃÔåö¿E@A§
ºÜþøF@V4
©;G@
PÀ<+ðëQ¸
ÍKYÀ
ß¼WÀCe
WÀ³ÃÔåö¿E@#
ø^J@v
©Ë=G@
øF@V4
ºÜþ¶`ðPÀ<+
¶ÍKYÀ
ßÜPÀtÚ@§
¼ WÀ³ÃÔåö¿E@
ø^J@
øF@4
 PÀË
ðÍ«
S|Û'J@
YójâmWÀ³ÃÔåö¿E@
À;L]n
 PÀËøF@4
S Û'J@
ðÍ«Y|À;
ój
¦6PÀ.Ø -ØúI@
¦6PÀ.Ø -ØúI@¤p=
×PÀ[°[°ýI@¤p=
×PÀ[°[°ýI@"""""
PÀ}Ò'}Ò_J@"""""
PÀ}Ò'}Ò_J@yV4ðõOÀ\ Âõ(,J@yV4ðõOÀ\ Âõ(,J@
×£p=ÂOÀ³ÃÔåöÿI@
×£p=ÂOÀ³ÃÔåöÿI@a¶`^OÀ³ÃÔåöÿI@a¶`^OÀ³ÃÔåöÿI@ Nè´ùNÀ³ÃÔåöÿI@ Nè´ùNÀ³ÃÔåöÿI@ F¾y NÀ³ÃÔåöÿI@ F¾
×£ðVÀ±äK~ @@q=
t¦VÀË
t6XÀ³ÃÔåöÿC@¸
t6XÀ³ÃÔåöÿC@Ú@§
tÚÌSÀfffffFB@E#
tÚÌSÀfffffFB@A§
t6XÀ³ÃÔåö
´SÀË
×£ðVÀ±ä
SSÛÿD@+
ÛÿD@tÚ@§
K~ B@¸
Ûÿ>@Ú@§
Ûÿ>@
@@þAo^MtVÀe
B@Ú@§ëQ
ßʼøæ
X×À
VÀ±ä
Àe SÀÌí2TFB@E#
B@¸
SÀ
©ËíÿC@¸
K©Ëíÿ>@
~ëQ
~±äÿD@+
@@Öij¢
XÀ B@
ëQßo^MtVÀe
X¼übÉ/ÒWÀ³ÃÔåö
ØVÀ
Àeøæ
SÀÌí2TFB@ýbÉ/
?SÀ
©ËíÿC@
@Ú@§K©Ëíÿ>@
~±äÿD@¼»»»»OSÀ
B@o^MtVÀe
hSÀÌí2TFB@ýbÉ/
übÉ/ÒWÀ³ÃÔåö
øæÕÄëWÀ³ÃÔåöÿC@'
K~±äÿD@¼»»»»OSÀ
©Ëíÿ>@ÑHÀ7‾ªUÀ
B@9
hSÀÌí2TFB@
ã8 YK§WÀ
Àe
~±äÿD@
A@ìQ¸
©Ëí
|ój6SÀfffffFB@
wUÀ
B@ B@9
 A@ìQ¸
S À
øæÕÌXÀe
ã8 K~±äÿD@
§WÀ
wUÀ| ój6
A@£
©Ëí
oWÀ³ÃÔåö?B@×£p=
oWÀ³ÃÔåö?B@Üd¨ì<WÀ@B@Üd¨ì<WÀ@B@ _,ùÅ
WÀ³ÃÔåö?B@ _,ùÅ
WÀ³ÃÔåö?B@J
tÚ VÀÐi 6 A@E#
ôIßØVÀ³ÃÔåö?B@J
¼ZVÀ¦.—? A@E#ßôI¼ZVÀ ØVÀ³ÃÔåö?B@d¨ì0u¥VÀ³ÃÔåö?B@d¨ì0u¥VÀ³ÃÔåö?B@}Ò'}Ò
¦.—? A@Öij¢ (VÀÐi 6 A@Öij¢ (VÀÐi 6 A@ gE#VÀ¦.—?VÀe A@sû
©Ëí?B@ð
!XÀq=
×£xE@ | óXÀyV4ðEE@z5ñ¬hìWÀåK~±LD@4ðÍ«¹WÀ _,ùÅJD@4ðÍ«¹WÀ _,ùÅJD@þA Ê WÀ
×£p=JD@þA Ê WÀ
×£p=JD@áz
¦.çVÀÍÌÌÌÌ,?@
._@@Çq©ËíËVÀµ
._@@e ÇqÄVÀ
®GUWÀ W ÏN
|KD@áz
èô?@e
WÀ ¡²ÃÔõ@@m Ó
®©ËíËVÀµ
GUWÀ  |KD@þA
N:èô?@!Ce
WÀþA
Ê#WÀå
Ê[©ÛVÀ±ä
A@m Ó
K~±LD@þA
:K~WÀþA
?@!Ce
Ê#WÀå
Ê[©ÛVÀ±ä
KA@
~±LD@ Ó
Ûd¨KWÀ<+
~:mðVÀe
?@ ©ËíOD@33333KVÀÀ7‾&
ø¾A@ Ûd¨ WÀ<+ ø¾A
UB
×£p=VÀUUUUUõ@@
×£p=VÀUUUUUõ@@hE#ßVÀ±äK~ @@hE#ßVÀ±äK~ @@QÙaêrVÀ Ûd¨,@@QÙaêrVÀ Ûd¨,@@+ øæVÀ[°[ ?@+ øæV
ºTÀÖij¢ ðA@û
ºTÀÖij¢ ðA@p^M<+âTÀ[°[ÈA@p^M<+âTÀ[°[ÈA@33333ûTÀ!Ce ©»A@33333ûTÀ!Ce ©»A@Ï F¾áTÀų¢ A@Ï F¾
¦âSÀR¸ ëYA@
¦âSÀR¸ ëYA@2Tv ºÄSÀú¤Oú¤'A@2Tv ºÄSÀú¤Oú¤'A@9 ã8 §SÀ+ øæõ@@Pú¤OúÈTÀ|ójâIA@åK~±ÈTÀÿ Ce IA@
ãUÀ >é >É>@Üd¨ìÜUÀýbÉ/ \>@p^M<+FUÀ2Tv ª?@&¿Xò EUÀ¢²ÃÔåö?@ ëQ¸NUÀùÅ _, @@ -Ø -XUÀ¨ì0u¹õ@@ -Ø
tÚ@çC@âYÑHÀëRÀ
tÚ@çC@d¨ì0uíRÀ§
KSÀS
t C@IÀ7‾&ÊSÀh$à
C@ÝþÛdCe£SÀÚ@§
PC@@ÈPÙaÒRÀ
|ójâéC@1u¹ýA
OC@IÀ7‾&ÊSÀh$à
©Ëí:C@ _,ùÅîRÀ«ªªªª
SÀÃõ(\OC@¥Oú¤OöSÀa
¢C@ÝþC@Ce£SÀÚ@§
_,ùÅîRÀ«ªªªª
¶`C@¥Oú¤OöSÀa
C@d¨ì0uíRÀ§
¶`C@9 ã8 T À¤p=
×ëB@9 ã8 TÀ¤p=
×ëB@~±äK2TÀ33333³B@~±äK2TÀ33333³B@ðÍ« KTÀ^M<+¡B@ðÍ« KTÀ^M<+¡B@¬ gE#}TÀ:m ÓºB@¬ gE#}TÀ:m ÓºB
TÀÈPÙaê¢B@×£p=
TÀÈPÙaê¢B@}Ò'}Ò‾TÀ9 ã8 B@}Ò'}Ò‾TÀ9 ã8 B@ÉTÀ`,ùÅ _B@ÉTÀ`,ùÅ _B@"""""âTÀ2Tv ºTB@cÉ/ üÞSÀ *;L
UÀÞD@tÚ@§
o^M<ÛD@tÚ@§W3UÀ gE#‾D@$à W3UÀ gE#‾D@ 6Ði3UÀ o^M<KD@ 6Ði3UÀ o^M<KD@5ñ¬h$4UÀTv ºÜæC@5ñ¬h$4U
o^M<ÛD@$à
âUÀ o^M´C@Ce ©ËõUÀ×£p=
?E@¸ ëQ(VÀ*;L]n?E@¸ ëQ(VÀ*;L]n?E@ÑHÀ7‾ZVÀ@E@ÑHÀ7‾ZVÀ@E@êrû
VÀAE@êrû
VÀAE@
×£p=¦VÀÉ/ übAE@K~±ä WÀ WÏ ö?@a¶`nWÀ übÉ/v?@*;L]n?XÀ&¿Xò õ@@×£p=
7XÀS Ûdð@@B ÊSsVÀOè´ Î>@ |ójjVÀDDDDDd>@'  YÀ¥Oú¤OJA@u¹ýA æXÀS Ûd0A@u¹ýA æXÀS Ûd0A@î2TvÌXÀ(A
×ã@@R¸ ëXÀ¤p=
×ã@@¼»»»»ëWÀß¼ xVô@@¼»»»»ëWÀß¼ xVô@@tÚ@§¹WÀi$à Wã@@tÚ@§¹WÀi$à Wã@@[°[ WÀ |óÒ@@[°[ WÀ |óÒ@@Î
¦nWÀ o^Ml>@
¦nWÀ o^Ml>@
E@¦.—?È
@;L]n
¦rWÀËSX Àbêrû
ÀtÚ@§
Ûÿ=@ú¤Oú¤
ÄD@¦.—?È
XÀÇqXÇÀbêrû
yE@*;LiXÀ£
ÄD@sûo^mE@*;LiXÀ£ o^mE@K~±ä7XÀa¶`^E@K~±ä7XÀa¶`^E@;L]n X ÀtÚ@§
õWÀ d¨ì0}D@sû
õWÀ d¨ì0}D@âYÑHÀëWÀ¤p=
×;D@âYÑHÀëWÀ¤p=
×;D@ ëQ¸ÒWÀåK~±üC@ ëQ¸ÒWÀåK~±üC@ ¹WÀv ºÜþ¨C@ øæÕìVÀi$à WKD@bêrû ìVÀ{®GáJD@^M<+ÉV
C@QÙaêr VÀsû
C@z5ñ¬h VÀ |ój
C@ö(\ ÂåUÀÃõ(\ C@ ©ËíöUÀ1u¹ýA&C@ ©ËíöUÀ1u¹ýA&C@u¹ýA VÀ¼»»»»ëB@V4ðÍsVÀlÁlÁîB@=
×£p]VÀÉ/ üb¹B@=
×£p]VÀÉ/ üb¹B@ %¿XòOVÀõI ôI B@þA Ê+TÀ øæÕÄKD@(}Ò'}2TÀ+ øæõC@(}Ò'}2TÀ+ øæõC@|ójâYM
×£p= C@ ëQ¸6UÀ
×£p= C@ |ójFUÀ®Gáz\C@1u¹ýAZVÀhE#ßDB@Æ _,ùqVÀ ðA@ðÍ« [UÀ ã8 ãPC@ xUÀXÏ FC@ xUÀXÏ
UÀ¦.—?C@sû
UÀ¦.—?C@ÈPÙaêªUÀ÷*;ôB@ÈPÙaêªUÀ÷*;ôB@^M<+ÝUÀÖij¢ øB@^M<+ÝUÀÖij¢ øB@a¶`úUÀ¤p=
×ëB@a¶`úUÀ¤p=
×ëB@<+ øVÀL]n ¹B@<+ øVÀL]n ¹B@=
×£pAVÀ33333 B@=
×£pAVÀ33333
¦.‾C@;L]n ´SÀ³ÃÔåöÇC@;L]n
B@wwwwwKVÀlÁlÁ ´SÀ³ÃÔåöÇC@Ìí2T
B@"""""ÎSÀ SÀò %¿XÒC@Ìí2T SÀò %¿XÒC@É/ übiSÀÐi 6¨C@É/ übiSÀ
×£ÈTÀ WÏ vA@@ÈPÙa²TÀ(A@@ÈPÙa²TÀ(A@h$à ‾TÀÙaêrûA@^M<+ TÀ %¿XòÃ@@S ÛddTÀú¤Oú¤ @@S ÛddTÀú¤Oú¤
RÀDDDDD\E@ übÉ/
RÀDDDDD\E@
tÚ@
¦.#WÀ
RÀZÑHÀ7?D@QÙaêrÇVÀ]n
ºÜþ¶KF@
`¶<RÀ¢²ÃÔå^E@
¶`¶ VÀ8‾& =¶G@×£p=
`¡ªE@
¶<RÀ¢²ÃÔå^E@V4
¦ .—ÇVÀ°[°«ðE@
ÍORÀ.Ø -تE@V4ðÍORÀ.Ø
WÀB ÊS7F@
-تE@ ¡²ÃÔURÀÏ FFE@ ¡²ÃÔURÀÏ
sVÀÔ:m #G@×£p=
sVÀÔ:m #G@ F¾yAVÀIÀ7‾&G@ F¾yAVÀIÀ7‾&G@ªËí2<VÀ—?ÈPÙ G@.Ø -ØVRÀ ÊS sF@~±äKZRÀ<+ øF@
G@^M<+9WÀwwwww×F@^M<+9WÀwwwww×F@[°[°1WÀÈPÙaêrF@®Gáz"XÀ o^M<«E@Ìí2TXÀójâYÑ E@"""""XÀ0 übɧF@
G@9 ã8 #XÀ | ój
G@û
.XÀbêrû <G@û
.XÀbêrû <G@ ©Ëí6XÀ¶`¶ G@ ©Ëí6XÀ¶`¶ G@ øæÕ8XÀ°[°ÓG@¸ ëQàQÀñ¬h$àsF@^M<+ñQÀ'  4F@^M<+ñQÀ'  4
RÀ¤p=
×óE@~±äK
RÀ¤p=
×óE@Ce ©ËRÀXÏ FªE@Ce ©ËRÀXÏ FªE@ gE##RÀ iE@ übÉ/
WÀåK~±\G@Ï F
WÀ£ o^]G@ xV4^ÀÜd¨ì C@åK~±Ü]À xV4PC@åK~±Ü]À xV4PC@#ß¼ ´]À`,ùÅ C @#ß¼ ´]À`,ùÅ C@R¸ ë ]ÀÔ:m ë
G@lÁl=]Àò %¿X
tÚ@F@à
G@ö(\ ÂA]Àa
WÏÂYÀ
¶`übÉ/ö@@
>G@/—?ÈPí\ÀcÉ/
xV4ÄYÀáz
üÒG@øæÕijÒ\ÀªËí2
®G @@ö(\  YÀyV4ðG@øæÕijÒ\ÀªËí2
}D@sû G@¨ì0u¹¹\À o^M<kG@¨ì0u¹¹\À o^M<
YÀ D@sû
´C@»Üþ
´C@ðÍ«
YÀ gC YÀh$à
D@ðÍ« gOC@»Üþ
YÀtÚ@§ YÀtÚ@§C YÀh$à OC@^M<+ YÀæö*ëB@^M<+ YÀæö*ëB@)\ Âõ YÀ ëQ¸ B@ F¾yZÀ×£p=
‾D@tÚ@§ZÀ¾y5ñE@tÚ@§ZÀ¾y5ñE@ÞÝÝÝÝZÀùÅ _,yE@ÞÝÝÝÝZÀùÅ _,yE@:m ÓZÀ F¾yÝE@:m ÓZÀ F¾yÝE@1u¹ýAZÀ
G@¦.—?ÈZÀ | ój
G@¬ gE#ZÀ
¦nG@¬ gE#ZÀ
¦nG@=
×£pZÀK~±äÓG@=
tÚ@û^ÀÈPÙaê"G@Ø
×£pZÀK~±äÓG@j 6Ð-ØZÀ}Ò'}Ò7H@j
Í]À¦.—?ÈøF@ 6ÐZÀ}Ò'}Ò7H@í0u¹ý
øæÕÄÿ]Àè´ NèF@ZÀ—?ÈPÙiH@j
øæÕÄÿ]Àè´6ЩZÀ<+
NèF@Ìí2T2^Àv ºÜþØF@Ìí2T2^Àv
øö?@À7‾& ©ZÀ+ ºÜþØF
øæõ
G@ Ó:m¸^Àp^M<+
tÚÜZÀe
^G@
tÚ@7H@(}Ò'}B]Àu¹ýA
tÚ@7H@O
À*;L]æC@tÚ@§
À2Tv
Àe ©ËíÿD@
ºLD@tÚ@§
ºLD@M<+
è´øæÕÈ^À
©Ëí B]À§
F@A§
F@
ëQ¸ t¦Ú@§©ZÀe

.—?
^ ÀÄÔåö
GjH@r
©Ëí"B@øæÕij
@O豩Ëí
´ÇD@M<+
q
B]ÀJ
]F@
À¶`tÚ@§©ZÀe
¶ôI
\ÀÌí2T
`H@¿Xò
^lG@(}Ò'}B]ÀÜ
ÀÄÔåöB@øæÕij
%±]D@tÚ@§
©Ëí ÀHáz
F@ų¢
®gH@¿Xò
d¨ìÐG@(}Ò'}B]ÀÜ
\ÀÌí2T
wZÀ³ÃÔåö
%B@
]ÀHáz
ëQ¸F@ų¢
®gH@¿Xò
d¨ìÐG@O
\À«ªªªªêB@
wZÀ³ÃÔåö
%]èÀHáz
´ B]À§
ëQ¸®gH@ZÑHÀ7Ã[À¢²ÃÔå®D@
F@ðÍ«
\À«ªªªªêB@ÑHÀ7‾
gEZÀ³ÃÔåö F@\
¦ÂYÀv ºÜþðA@
YÀ¦ÂYÀv
ñA@
A@tÚ@§
xV4
ºÜþðA@
YÀªËí2$B@
 | ‾YÀexV4©Ëí?B@
ÀYÀ*;LUB@M<+
 |‾YÀe ©Ëí?B@UUUUU}YÀ
ÀYÀ*;L]nWB@É/
@B@UUUUU}YÀ
übµ]ÀG@ZÑHÀ7
@B@ o^M<KYÀe
]ÀG@ZÑHÀ7
©Ëí?B@
]ÀG@^M<+
o^M<KYÀe
Q]À³ÃÔ
©Ë
‾YÀ³ÃÔåö B@×£p=
tÚ@U`ÀýbÉ/
‾YÀ³ÃÔåö B@µ $L@§
$L@
NèxV4
|YÀel`ÀV4
©ËíðÍCL@B@µ NxV4
è|YÀe
l`ÀV4
©ËíðÍCL@@ÈPÙaz`Àsû
B@lÁlÁJYÀ B@lÁlÁJYÀ B@J ôI Y À³ÃÔåö B@ïîîîîR`À!Ce ©cK
UL@@ÈPÙaz`Àsû
UL@ų¢ `À ¦.— L@ų¢ `À ¦.— L@ Nè´ `À¬ gE#ÁL@ Nè´ `À¬ gE#ÁL@Ði 6 `À£ o^õL@Ði 6 `À£ o^
'aÀ ©Ëí M@êrû
'aÀ ©Ëí M@ ºÜþ =aÀ÷*;´M@ ºÜþ =aÀ÷*;´M@÷*;NaÀú¤Oú¤×M@÷*;NaÀú¤Oú¤×M@°[°[aÀÄÔåöùM@°[°[aÀÄÔåöùM
gaÀåK~±,N@sû
tÚ@3^À
tæ]Àe
gaÀåK~±,N@
 H@ų¢
©Ëí
H@§H@É/
H@Ú@§
-Ø^übµ]À
-ÀeaÀójâYÑ
©Ëí H@É/
H@ų¢
N@übµ]À
-Ø^-Àe
 H@ä8
aÀójâYÑ
©Ëí ã8
H@Ú@§
N@
]À³ÃÔåö
2Tv aÀ[°
H@ä8
[°%N@[°
ã8 ]À³ÃÔåö
[°-_ÀlÁH@¬
lÁ>H@'
gE#Q]Àe
 _ÀÐi©Ëí
60H@'
H@¬ gE#Q]Àe
_ÀÐi 60
\Àe ©Ëí H@ _,ùÅ
\Àe ©Ëí H@`,ùÅ ×[Àe ©Ëí H@`,ùÅ ×[Àe ©Ëí H@u¹ýA ¦[Àe ©Ëí H@u¹ýA ¦[Àe ©Ëí H@B ÊSs[Àe ©Ëí H@B
×£p=B[À H@
×£p=B[À H@þA Ê[À H@þA Ê[À H@ ôI ôÝZÀ³ÃÔåö H@ ôI ôÝZÀ³ÃÔåö H@ _,ùŪZÀ H@ _,ùŪZÀ H@¨ì0u¹yZÀ
×£pZÀe ©Ëí H@=
×£pZÀe ©Ëí H@1u¹ýAâYÀe ©Ëí H@1u¹ýAâYÀe ©Ëí H@$à W‾YÀ³ÃÔåö H@$à W‾YÀ³ÃÔåö H@K~±ä{YÀ H@K~±ä{Y
G@à WÏúTÀ ©Ëí
G@UUUUUÑTÀwwwww×F@UUUUUÑTÀwwwww×F@h$à ‾TÀG¾y5¹F@h$à ‾TÀG¾y5¹F@0 übÉ TÀ.Ø -ØrF@0 übÉ TÀ.Ø
G@9 ã8 QÀÕåö
G@:m Ó QÀÍÌÌÌÌ<G@:m Ó QÀÍÌÌÌÌ<G@ZÑHÀ7sQÀß¼ xVtG@ZÑHÀ7sQÀß¼ xVtG@Æ _,ùYQÀOè´ ¦G@]n ¡òPÀõI ô
×£p=ÂF@¶`¶ÜPÀÖij¢  F@|ójâ ZÀøæÕij ?@ *;LqZÀ8‾& -?@*;LqZÀ8‾& -?@ÁlÁLZÀ¾y5ñ¬È>@ÁlÁLZÀ¾y5ñ¬È>@Ò'}
G@@ Nè´]À×£p=
O@@ Nè´]À×£p=
O@@ 6ÐiÓ\À
¦V@@ 6ÐiÓ\À
¦V@@ ¹\Àò %¿XZ@@ ¹\Àò %¿XZ@@ _,ùÅ \À ¡²Ã,@@ _,ùÅ \À ¡²Ã,@@í0u¹ým\ÀOè´ @@í0u¹ým\À
õ?@;L]n @\Àêrû
õ?@1u¹ýA"\ÀõI ôIÏ?@1u¹ýA"\ÀõI ôIÏ?@u¹ýA ò[À _,ùÅ ?@u¹ýA ò[À _,ùÅ ?@<+ øÖ[À Âõ(\o?@<+ øÖ[
¥[ÀUUUUUU?@êrû
¥[ÀUUUUUU?@³ÃÔåös[ÀUUUUUU?@³ÃÔåös[ÀUUUUUU?@ÍÌÌÌÌ@[À d¨ì0U?@ÍÌÌÌÌ@[À d¨ì0U?@¼»»»»[À d¨ì0U?@¼
ÙK4
ºë¥Z%±Ç¹ñÆ®È<˼¬Kg®)Ï×êó
T¤ºl7ý=6«©ØlT#G«yÀa{Öm ³Á^{£E'¨³L
ïéùd"ó-> ì¿âà¶V9
æ ¼;³ Çv4õH
sÑgä.—¥Ñ
^ÜöÌïÈ
½{o[}_[}Cµ6ÎO
ýZ½*5%9#=Íf
3 Ø÷Ä A ©r/BË m~f4 jW.ÿc¥
çûþ]í»FìÄNì²Jþì Vó à #q6Øko´èu±{±Ó$CHb?ìÛ
Ý-u`
hbøÀÄA
Ô È½{×Ê
GBüg¶â ¨ ¿9 sÑgä^Ü+ø & ô Jìr`gRü—Tì×êU©)Ééi6 ó } Øw Ø }gvæà d2¨ ïòÂÿ3 õ÷X vY"ì}í
ؗgg>
trD@û
Þ"vbç'bgÈ
tÚ@
trD@Ház
<@Öij¢
D@
@:m Ó¦:@
ºÜþ
®w9@Ú@§
ÐE@tÚ@§
ÐE@#
ÿs:@§
j¿+R]¶
AßD@
¼ :h<@°
m Ó¦:@
[þ°
[ä³AE@#
êh58öpÓ
D@.Øß¼ -Ør:@Tv
h<@°
ìµ7Zt
[°³E@ºÜND@.Ø
:Kþ—TæÚ|²
übÉ/6<@9
-Ør:@Tv
Çv4õH
ã8 ³E@ºÜND@¹ýA
.—¥übÉ/6<@9
I@,@I@8‾&
Ê:ã8
@è´½³E@
<@bêrû
NXD@¹ýA
¡²Ã4F@
<Ê
@yV4
:@è´
ôIðô©<@ò
NE@
XD@'¡²Ã
%¿X
 Ü<9@
@y
F@
F9@ðÍ« wD@û
F9@ðÍ« wD@L]n á8@J ôI tD@L]n á8@J ôI tD@bêrû |8@L]n yD@bêrû |8@L]n yD@@ÈPÙaJ8@0 übÉgD@
×£p%D@ Nè´A8@=
×£p%D@û
æ7@:m Ó.D@û
æ7@:m Ó.D@p^M<+ú7@,ùÅ _
D@p^M<+ú7@,ùÅ _
D@J ôI ´7@ -Ø -D@J ôI ´7@ -Ø -D@ÇqÇ 7@ | ójúC@ÇqÇ 7@ |ójúC@ xV4P7@ o^MD@ xV4P7@ o^MD@£ o^
D@.Ø -Ø 6@ Ûd¨
D@|ójâ¹6@XÏ FòC@|ójâ¹6@XÏ FòC@\ Âõ(ì6@ øæÕÌC@\ Âõ(ì6@ øæÕÌC@ä8 ã87@(}Ò'}ºC@ä8 ã87@(}Ò'}ºC
nO7@ýbÉ/ üB@[°[ 7@ZÑHÀ7ßB@[°[ 7@ZÑHÀ7ßB@ÇqÇa7@ übÉ/ÆB@ÇqÇa7@ übÉ/ÆB@Ø -Ø 7@R¸ ë¹B@Ø -Ø 7 @R¸
B@°5@sû
¦B@
.ÇB@o^Mo^MN5@5@5@¦ .—ßB@®GázN5@ ¦.—ßB@ú¤Oú¤_5@í0u¹ýC@ú¤Oú¤_5@í0u¹ýC@Tv ºÜ¾5@n ¡²#C@Tv ºÜ¾5@n
.ÇB@®Gáz
×#6@K~±äC@¤p=
×#6@K~±äC@¦.—?Èp6@ÿ Ce C @¦.—?Èp6@ÿ Ce C @Õåöº6@Pú¤OúC@Õåöº6@Pú¤OúC@¹ýA Ê7@e ©ËíC@¹ýA Ê7@e ©Ë
D@$à W¿3@µ Nè
d3@ò
D@µ N%¿XJD@Yò
èd3@ß¼ xV$D@µ
%¿XJD@tÚ@§
%¿x3@v
Nèd3@ß¼
ºÜþpD@Yò
xV$D@tÚ@§
%¿x3@v ºÜþpD@ |ój 3@9 ã8 £D@ | ój 3@9 ã8 £D@±äK~ 3@tÚ@§ÕD@±äK~
¦n1@ ºÜþ sE@
¦n1@ ºÜþ sE@!Ce ©;1@ß¼ xV|E@!Ce ©;1@ß¼ xV|E@ Âõ(\o1@(}Ò'}zE@ Âõ(\o1@(}Ò'}zE@è´ N;1@,ùÅ _ E
)@
+*;LÅF@&¿Xò
;LÅF@tÚ@§
øæ ,@(@í0u¹ý±F@&¿Xò
©F@+ øæ ,@(@í0u¹ý±F@«ªªªªª(@cÉ/
©F@À7‾& U,@K~±ä F@À7‾&
ü F@«ªªªªª(@cÉ/
U,@K~±ä F@ü%¿XòË+@B
F@ o^M< (@ÑHÀ7‾fF@
ÊSgF@ %¿XòË+@B
o^M
F@e ©Ëí)@hE#ß
F@  |s)@µ NèüE@  |s)@µ NèüE@fffff&*@G¾y5éE@fffff&*@G¾y5éE@ übÉ/Ö*@ -Ø -ÐE@ übÉ/Ö*@ -Ø -ÐE@
-@ Ó:m E@û
-@ Ó:m E@ Nè´¡-@ZÑHÀ7E@ Nè´¡-@ZÑHÀ7E@ ôI ô).@¦.—?ÈøD@ ôI ô).@¦.—?ÈøD@G¾y5ñ.@\ Âõ(ôD@G¾y5ñ.
¦öD@¼»»»»»/@
¦öD@R¸ ë0@UUUUUÕD@R¸ ë0@UUUUUÕD@ ¦ .—0@J ôI ´D@ ¦.—0@J ôI ´D@®Gázn0@ |ó¢D@®Gázn0@ | ó¢D@[°[°
×£p 0@÷*;
D@=
×£p 0@÷*;
D@Ìí2T 0@2Tv ÚC@Ìí2T 0@2Tv ÚC@ Ø0@¹ýA ÊÆC@ Ø0@¹ýA ÊÆC@=
×£p1@ ¦ .—§C@=
×£p1@ ¦ .—§C@;L]n 1@[°[°uC@;L]n 1@[°[°uC@wwwww×0@Ø -Ø uC@wwwww×0@Ø -Ø uC@ ôI ô 0@®Gáz\C@ ô
%0@¾y5ñ\C@êrû
%0@¾y5ñ\C@ ©Ëí0@ïîîîî C@ ©Ëí0@ïîîîî C@@ÈPÙa
0@¸ ëQ¨C@@ÈPÙa
0@¸ ëQ¨C@d¨ì0u¹/@(}Ò'}ÊC@d¨ì0u¹/@(}Ò'}ÊC@1u¹ýA /@9 ã8 óC@1u¹ýA /@9 ã8 óC@ú¤Oú¤ï.@®GázD@ú¤Oú
D@ÇqÇq.@ ¡²Ã
D@"""""â-@+ øæ%D@"""""â-@+ øæ%D@9 ã8 Ã-@Ï F¾ID@9 ã8 Ã-@Ï F¾ID@|ójâù,@è´ NPD@|ójâù,@è´
¦N&@:m Ó.E@
%@a
¦N&@
¶`:m Ó.E@Ô
E@Ce K©Ë¾$@4
E@~±ä :m ð&Í«¹E@~±ä
@ÈPÙaêRE@Ô
K¾$@4
:m ð&Í«¹E@DDDDD
@ÈPÙaêRE@rÇ$@çÕij¢éE@DDDDD
q %@ÍÌÌÌÌtE@rÇq $@çÕij¢éE@
%@ÍÌÌÌÌtE@CeF¾©Ë
yõ#@®GázF@ F¾yõ#@®Gá
×£ #@áz®G F@q=
×£
tÚ@g#@áz
@ WÏ®G E@QÙaêr»
E@§ F@Ë@SõIÛÿ"@
ôI—E@QÙaêr» øæÕÄ@Ë
@õI ôI—E@
S Ûÿ"@ øæÕÄ@X
øæÕ @ûÏ Fb"@ Âõ(\'F@XÏ Fb"@ Âõ(\'F@7Ði ¶!@Í
¶E@ øæÕ @û
@\
ô@¶þA
E@tÚ@§
Âõ(´E@Ë
Âõ(´E@e
ʻE@)\
E@tÚ@§
S©Ëí
ÛÂõh@î2TvÈE@)\ Âõh@î2TvÈE@Üd¨ì0@ų¢ ÇE@Üd¨ì0@ų¢ ÇE@ËS Û
@åK~±¤E@e ©Ëí
@å
t K~±¤E@tÚ@§
@a
t ¶` E@tÚ@§
@a¶` E@ÁlÁì@ ÊS E@ÁlÁì@ ÊS E@ o^M<«@ |ójRE@ o^M<«@ |ójRE@ä8 ã8
@¤p=
×+E@ä8 ã8
@¤p=
×+E@¾y5ñ¬è
tÚ@§@þA Ê£D@/—?ÈPÙû?i$à
D@§ @*;L]nE@¾y5ñ¬è
W D@/—?ÈPÙû?i$à
@*;L]nE@ïîîîîî
W D@B@ÊSºÜþõ?ùÅ
ëD@ïîîîîî
_, D@B
@ ʺÜþ
S õ?ùÅ
ëD@ö(\
_, D@ÈPÙaêrò?±ä
Âu@*;LÕD@ö(\ KÂu
~@*D@ÈP
;LÕD
D@G¾y5ñÄ? o^M
D@¦.—?È ¿QÙaêróC@¦.—?È ¿QÙaêróC@ò %¿XòË¿?é >éÓC@ò %¿XòË¿?é >éÓC@âYÑHÀ7Ó¿0 übɧC@âYÑHÀ7Ó¿0 ü
À¨ì0u¹]B@ -Ø -Ø
ÀÀ¨ì0u¹]B@M<+
F¾y]B@|ójâY
y]B@M<+ À d¨ì0]B@|ójâY
ø À d¨ì0]B@h$à WÀ  | [B@h$à WÀ  |[B@¤p=
×cÀ¾y5ñ¬HB@¤p=
×cÀ¾y5ñ¬HB@0 übÉ‾ÀÜd¨ì@B@0 übÉ‾ÀÜd¨ì@B@ų¢ ïÀ Âõ(\/B@ų¢ ïÀ Âõ(\/B@ò %¿XrÀ übÉ/B@ò %¿XrÀ
¦B@ Âõ(\À
¦B@ Nè´ÁÀe ©Ëí/B@ Nè´ÁÀe ©Ëí/B@q=
×£0ÀTv ºÜNB@q=
×£0ÀTv ºÜNB@=
×£pýÀ ºÜþ {B@=
×£pýÀ ºÜþ {B@ Nè´ÁÀùÅ _, B@ Nè´ÁÀùÅ _, B@Ház® À  6Ði£B@Ház® À  6Ði£B@À7‾& ÀÏ F¾ B@À7‾& ÀÏ F¾
×£ B@ F¾yuÀq=
"×£
À7Ði
B@ ^C@sû
ºÜþ À:m Ó B@ ºÜþ À:m Ó B@ÁlÁL!À WÏ B@ÁlÁL!À WÏ B@ïîîîî®!À ¦ .—‾B@ïîîîî®!À ¦.—‾B@
^C@tÚ@§
Ý"À >é >YC@sû
Ý"À >é >YC@ÇqÇqÜ"Àbêrû C@ÇqÇqÜ"Àbêrû C@7Ði ¶"Àî2Tv¨C@7Ði ¶"Àî2Tv¨C@ñ¬h$à["ÀÉ/ übÁC@ñ¬h$à
D@ Ó:mÀ!ÀåK~±
D@M<+
¦.—!À WÏ!ÀîD@®Gáz
îD@
:m Ó>D@M<+
®!À
*;LE@®Gáz
!À:m Ó>D@QÙaêr{!À5ñ¬h$XD@QÙaêr{!À5ñ¬h$XD@
®!À*;LE@¾y5ñ¬!ÀþA Ê;E@¾y5ñ¬!ÀþA Ê;E@ ¡²Ã "|À´¢
S!Àí0u¹ý
ofE@D@¡²Ã
 |"S!Àí0u¹ý
À´¢ of
×£p=ÊE@'  ¼ À
×£p=ÊE@ÁlÁ,ÀþA ÊËE@ÁlÁ,ÀþA ÊËE@ ÊS À9 ã8 ÓE@ ÊS À9 ã8 ÓE@ Âõ(\À ã8 ãÈE@ Âõ(\À ã8 ãÈE@æö*{
×£ÀE@æö*{Àq=
×£ÀE@V4ðÍëÀõI ôI—E@V4ðÍëÀõI ôI—E@Ô:m SÀ®Gáz´E@Ô:m SÀ®Gáz´E@
×£p= À7Ði ¾E@
×£p= À7Ði ¾E@S Ûd
ÀÏ F¾ÁE@S Ûd
ÀÏ F¾ÁE@,ùÅ _¬
À gE#—E@,ùÅ _¬
À gE#—E@Ýþ Ce À ų¢ —E@Ýþ Ce Àų¢ —E@‾&  À ÷*;´E@‾&  À ÷*;´E@q=
×£pÀ¨E@q=
×£p
tÚ@—E@`,ùÅ
tÚ@—E@Ú@§
tÚù¿§À¨E@ZÑHÀ7‾ÿ¿
_÷¿S Û
6Ði
dÐE@`,ùÅ
E@ZÑHÀ7‾ÿ¿
_÷¿S Û
6Ði
dÐE@=
E@Ú@§
×£p=ö¿}Ò'}ÒïE@=
×£p=ö¿}Ò'}ÒïE@(}Ò'}Òô¿¤p=
×@(}Ò'}Òô¿¤p=
×@wwwwwwó¿sû
MF@wwwwwwó¿sû
MF@°[°[ó¿;L]n F@°[°[ó¿;L]n F@ų¢ oò¿]n ¡²F@ų¢ oò¿]n ¡²F@µ Nè´é¿ä8 ã8®F@µ Nè´é¿ä8 ã8
×£G@E#ß¼ ÿ¿¤p=
tÂG@
×£G@Ìí2Tö
tÂG@v ®Gáz
ºÜþÀÀÚ@§
V4
/—?ÈPÑG@v
ðÍ£G@Ìí2TöºÜþ
ÀV4Àð/—?ÈPÑG@µ
Í£G@®Gáz À Ú@§
Nè4 À WÏ ÞG@µ Nè4 À WÏ ÞG@\ Âõ(\
À@ÈPÙaâG@\ Âõ(\
À´¢ oæG@ä8
À@ÈPÙaâG@¨ì0u¹ý
oæG@¨ì0u¹ý
ã8 À—?ÈPÙñG@ä8 ã8 À—?ÈPÙñG@+ øæUÀTv ºÜæG@+ øæUÀTv ºÜæG@IÀ7‾&À{®GáH@IÀ7
À `H@è´ Nh
À `H@É/ übÉ
Àí0u¹ýiH@É/ übÉ
Àí0u¹ýiH@«ªªªªªÀí0u¹ýaH@«ªªªªªÀí0u¹ýaH@ÇqÇqÀS ÛDH@ÇqÇqÀS ÛDH@¥Oú¤OúÀªËí2TH@¥Oú¤OúÀªËí2TH@¾y
vH@¨ì0u¹ýø¿û
¦v.—ý¿/—?ÈPÁH@
H@Ìí2Tvù¿ÞÝÝÝÝ
.—ý¿/—?ÈPÁH@ ðÍ«H@Ìí2Tvù¿ÞÝÝÝÝ
gù¿ªËí2ÔH@ðÍ« gù¿ªËí2ÔH@`,ùÅ
H@ _ô¿ÁH@`,ùÅ _ô¿ÁH@ÞÝÝÝÝÝï¿øæÕij²H@ÞÝÝÝÝÝï¿øæÕ
I@M<+ øö?ýbÉ/
I@u¹ýA Êø? ëQ¸-I@u¹ýA Êø? ëQ¸-I@[°[°ù?5ñ¬h$XI@[°[°ù?5ñ¬h$XI@ïîîîîîû?|ójâYyI@ïîîîîîû?|ójâYyI
@´¢ o®I@^M<+
@lÁ
@´¢lÁ®I@}Ò'}Òg
Á®I@S
o®I@SÛdÛ¨d¨@ä8 ã8®I@}Ò'}Òg@ä8 ã8®I@]n ¡2@Ãõ(\ ²I@]n ¡2@Ãõ(\ ²I@ übÉ/
@ß¼ x¾I@ übÉ/
¼I@?é
@@=
@ÍÌÌÌÌÌI@?é
¼I@
@ÍÌÌÌÌÌI@Ø
ß¼tÚ@§
x¾I@Ø
>éS@-ØtÚ@§
-Ø>éS
@tÚ@§
×£pÕI@
@= tÚ@§
×£pÕI@ ¡²ÃÔe@Æ _,ùýI@ ¡²ÃÔe@Æ _,ùýI@Ce ©Ë-@è´ NJ@Ce ©Ë-@è´ NJ@wwwww÷@|ójâY)J@wwwww÷@|ójâY)J
×£p= @ÈPÙaêRJ@
tÚèK@.Ø
×£p=
tÚèK@Ç@qÈPÙaêRJ@ÍÌÌÌÌ
Çq-ØB
@A§@ ëQ¸L@.Ø
@øæÕijrJ@ÍÌÌÌÌ
-ØB @ ëQ¸L@cÉ/@ øæÕijrJ@G
üB @lÁlIL@cÉ/
¾y5ñ@8‾&
üB @ lJ@G
Ál¾IL@J
y5ñ@ôI
8‾&Ô @î2TvHL@J
J@j 6Ðé@*;L]
ôI ÔJ@j@î2TvHL@
6Ðé@*;
ý!@ ã8 ã L@sû
ý!@ ã8 ã L@ß¼ x !@2Tv zL@ß¼ x !@2Tv zL@|ójâù @d¨ì0uaL@|ójâù @d¨ì0uaL@E#ß¼:!@tÚ@§ L@E#ß¼:!@
× L@,ùÅ _Ì"@¤p=
× L@[°[°e#@sû
L@[°[°e#@sû
L@âYÑHÀ÷#@ÕåöÊL@âYÑHÀ÷#@ÕåöÊL@¬ gE#Á$@ÈPÙaêÒL@¬ gE#Á$@ÈPÙaêÒL@)\ Âõ%@ ëQ¸L@)\ Âõ%@ ëQ¸L@´
×£pýK@Tv ºÜ~$@=
×£pýK@(}Ò'}ò#@"""""ÚK@(}Ò'}ò#@"""""ÚK@ZÑHÀ7 #@K~±äËK@ZÑHÀ7 #@K~±äËK@M<+ 8#@4ðÍ«±K@M<+ 8#@
ý!@ 6ÐiëJ@sû
tÚ¦ý!@
.7!@
@¦.—?ØJ@ZÑHÀ7ï
.—?ØJ@A§
6ÐiëJ@
¶`¶ðJ@Ùaêrû
ðJ@ @!Ø@5ñ¬h$ÐJ@Ùaêrû
-Ø ÕJ@ZÑHÀ7ï@!Ø@5ñ¬h$ÐJ@¥Oú¤OZ
-Ø ÕJ@Üd¨ìð@ o^M<£J@Ü
@ZÑHÀ7—J@¥Oú¤OZ
d¨ìð@ o^M<£J@
@ZÑHÀ7—J@S
o^M|@õI
Ûd@ôI—J@
2Tv ÚJ@So^M|
Ûd@
5K@ o^M<*@êrû
5K@½ xV4r)@ -Ø -0K@½ xV4r)@ -Ø -0K@
×£p=ª(@ d¨ì0%K@
×£p=ª(@
'@¥Oú¤O
tjK@Ùaêrû
P@yV4
tjK@
P@`,ùÅ ð¦Í7@ö(\

K@$à

d¨ì0%K@
7@ò 2@Ú@§
1@Ô
-Ø%¿X
:Wm cK@
ÂO&@çÕij¢
P@`,ùÅ
¡²ÃÔE(@
¦ .—K@$à
¾y5ñ:W%¿X
1@Ô
7@ò OKm cK@V4
@ P¡²ÃÔE(@
&@çÕij¢
@ Âõ(\O7@@ÈPÙaòO@
ðKÍ;1@J
@u¹ýA
¾y5ñôIKê%@
@'\K@V4
 ëQ¸
|'@'Âõ(\O7@@ÈPÙaòO@,ùÅ
ðýÍ;1@J
J@¬
 K@'gE#
ôI
3|@?é
'@'
\K@Ç>é+K@]n
 Kq @Ø
Çñ0@ö(\
-Ø_ì6@
¡¢2@
ÂMK@
WÏ æO@,ùÅ
Çq¡²Ã4K@]n
Çñ0@ö(\
_ì6@ÂMK@‾
¡¢2@
WÏ
]n¦.ÿM@°
.ÿM@r
N@÷
[Ç°
q
*;Kç8@ójâYÑ
7@
5@L]nN@°[N@4 °Kð8@ójâYÑ
Í«Y5@ä8 N@õIã8nN@4
ôI‾8@ð[Í«Y5@ä8
°[N@õI ôI‾8@
ã8nN@Ò'}Ò'
[°[N@ _,ùÅ
5@
*;LEN@Ò'}Ò'
9@¿Xò %N@5@ *;LEN@L]n
_,ùÅ 9@¿Xò %Nñ5@IÀ7‾&>
@×£p=
G9@
¦N@×£p=
G9@
¦N@\ Âõ( 9@ ¡²ÃÔ%N@\ Âõ( 9@ ¡²ÃÔ%N@¿Xò %ß9@ |ój2N@¿Xò %ß9@ |ój2N@ | ójB:@0 übÉ7N@ | ójB:@0 ü
÷)@|ójâ±K@×£p=
÷)@|ójâ±K@lÁl¡*@ÇqÇ©K@lÁl¡*@ÇqÇ©K@}Ò'}Òg+@[°[°µK@}Ò'}Òg+@[°[°µK@  |3,@v ºÜþ°K@  |3,@v ºÜþ°K
×L@è´ N»/@¤p=
×L@ øæÕÄ0@ ¦ .—/L@ øæÕÄ0@ ¦ .—/L@]n ¡B0@æö*SL@]n ¡B0@æö*SL@ò %¿Xr0@ 6Ði{L@ò %¿Xr0@ 6Ð
×£p=
1@Ï F®M@
×£p=
tN@
N@;L]n
1@
N@"""""Ò2@8‾&
Ï>éF®M@ö(\
>i2@V42@ 6Ði
ðÂÕ0@¬
Í+N@
 gE#±M@ö(\
>é >i2@V4ðÍ+N@Ú@§
ÂÕ0@¬ gE#±M@ò %¿Xr0@E#ß¼ºM@ò %¿Xr0@E#ß¼ºM@ö(\ Â¥0@0 übÉÇM@ö(\ Â
2@Tv
t ºÜ>N@Ú@§
tÚ¨O@S
2@Tv
¤6@a
tÚ¨O@ ¶`ºÜ>N@
rNèÛ
P@tÚ@§
P@,ùÅ
´43@A§
ÇqÇÑ1@¥Oú¤OJN@
3@wwwww—O@
_ì6@yV4ðqP@,ùÅ
Nè´Çq3@wwwww—O@°
ÇÑ1@¥Oú¤OJN@
_ì6@yV4ðqP@
[°Ë*Q3@
;L]n1@¾y5ñ¬PN@
7@à6Ði
WÏÅrP@
O@°Q[7@à
°Ë3@*W;L]n1@¾y5ñ¬PN@{
Ï6Ði
rP@&¿Xò
ÅO@QÙaêr+4@°
µ7@ ã8®[Gá:1@à
ãtP@&¿Xò
°ÓO@QÙaêr+4@°
WÏrN@{
µ7@®Gá:1@à
[°ÓãtP@
ã8 O@a4
+@wwwww P@Õåö
+@wwwww P@L]n A*@ò %¿X P@L]n A*@ò %¿X P@±äK~Ñ)@#ß¼ P@±äK~Ñ)@#ß¼ P@Oè´ n)@ò %¿XrP@Oè´ n)
)@2Tv nP@ÍÌÌÌÌ
)@2Tv nP@ o^M<)@Oè´ VP@ o^M<)@Oè´ VP@ ¡²ÃÔ)@2Tv ºTP@ ¡²ÃÔ)@2Tv ºTP@çÕij¢q)@ %¿XòKP@çÕij¢q
×£p=
)@9 ã8 GP@
×£p=
)@9 ã8 GP@Æ _,ùE(@
¦BP@Æ _,ùE(@
¦BP@áz®G '@Ï F¾=P@áz®G '@Ï F¾=P@ ¹&@ ¡²ÃÔ9P@ ¹&@ ¡²ÃÔ9P@é >é ~'@¬ gE#9P@é >é ~'@¬
P@ö(\ µ&@êrû
P@¦.W$@¬
Âõ(\O&@ų¢
gE#¹O@ P @ ë#@0
gE#¹O@ìQ¸ Âõ(\O&@ų¢
übɗO@ìQ¸
P@ ë#@0
>é > übɗO@ìQ¸
%@@ÈPÙaP@ K#@Ë
>é >S%@@ÈPÙa
ÛÏO@ìQ¸P@K#@Ë
lÁl!%@ïîîîî
S ÛÏO@rÇPq@Çl"@
ÁlÇ!%@ïîîîî
qÇÁO@rÇPqÇ@QÙa
"@Ç
ý!@ìQ¸ »O@sû
ý!@ìQ¸ »O@7Ði !@lÁlÁ¶O@7Ði !@lÁlÁ¶O@ò %¿X2!@ ¦.— O@ò %¿X2!@ ¦ .— O@ä8 ã8n @ O@ä8 ã8n @ O@
×£p=J@Yò %¿xO@
×£p=J@Yò %¿xO@M<+ ¸@M<+ xO@M<+ ¸@M<+ xO@»Üþ C%@¤p=
×{O@»Üþ C%@¤p=

tÚ
×{O@ö(\
tÚ@¿N@
tÚ@¿N@
@Ç@q
CeÇéN@ýbÉ/
éN@Ú@§
©ËeO@A§
©ËeO@ÿ
o^M<«
ëQ¸
Âõ@Ï@W§FÏCe
¾ü@^O@ö(\
¹N@
K~±ä
ëQ¸
ëN@ýbÉ/
@Âõ
Ï@@@ÈPÙabO@ÿ
F¾WϹN@
ü@^O@A§
K~±ä
xV4pë@N@G
:m Ó
Ce¾y5q
@@ÈPÙabO@ðÍ«
N@@,ùÅ
xV4p_ìN@G
@:m Ó
¾y5q
g Ç@q
N@ ±äÇK±~YO@ðÍ«
,ùÅ @d¨ì0u
_ìN@9 N@
ã8gÇã@q Ç@±ä
ñ¬h$àóN@9
± @Kd¨ì0u
~YO@¸ N@
ëQøã8
@1u¹ýANO
N è´A
ã@@ñ¬h$
(}Ò
×£p= N@bêrû Ì@
×£p= N@Ò'}Ò'=@
¦ N@Ò'}Ò'=@
¦ N@ >é >©@è´ N N@ >é >©@è´ N N@êrû
@\ Âõ( N@êrû
@\ Âõ( N@bêrû @ }Ò'}ÒWN@bêrû @}Ò'}ÒWN@ gE#@;L]n XN@ gE#@;L]n XN@Ô:m @|ójâ1N@Ô:m @|ójâ1N@j
uM@ d¨ì05@sû
¦uM@V4
.w@‾&ðÍ«
 <M@q=
@J ôI DM@V4ðÍ«@J ôI DM@
<M@
×£°@u¹ýA *M@q=
DM@&¿Xò
×£°
DM@;L]n
t:!@ÈPÙaê*M@;L]n
t:!@ÈPÙaê*M@Ú@§
@u¹ýAe"@ÞÝÝÝÝ]M@&¿Xò
Ð!@tÚ@§
*M@ übÉ/ÖÐ!@tÚ@§
@ ôI ô!M@
e"@ÞÝÝÝÝ]M@
übÉ/Ö@ ôId¨ì0
ô!M@Çq
#@yV4
Çq\
ðuM@
@u¹ýA
d¨ì0M#@Çq
@yV4
Çq\
ðuM@ÈPÙaê
@u¹ýA M @¾y5ñ¬(
#@J ôI @õIM@ÈPÙaê
ôIÿL@¾y5ñ¬(
#@J ôI@õ
×ûC@J
¦.§7@wwwww
ôI ´7@C@= | C@
×£p}8@ d¨ì0}C@wwwwww8@Ìí2TvC@ų¢ O7@åK~± C@33333 7@¬ gE#iC@33333 7@¬ gE#iC@`,ùÅ ¿7@åK~±\C@
×£p=8@*;LUC@
×£p=8@*;LUC@K~±ä78@u¹ýA *C@K~±ä78@u¹ýA *C@IÀ7‾&~8@ÕåöC@IÀ7‾&~8@ÕåöC@ Ó:m08@Ï F¾C@ Ó:m08@Ï F¾
6B@ x9@û
D8@R¸
6B@ Ûë±A@ïîîîî
d¨l9@K~±ä/B@d¨ì0uI:@G
ë±A@tÚ@§ 8@@ÈPÙa²A@ïîîîî
¾y5 A@
8@@ÈPÙa²A@í0u¹ýá8@sû
Ï F:@½ xV4 A@Ï F:@½ xV4 A@u¹ýA ª9@Üd¨ì A@u¹ýA ª9@Üd¨ì A@À7
µA@í0u¹ýá8@sû
tÚC@ÿ
tÚ3@Ú@§
µA@[°[Ce
°E9@Ãõ(\
É3@UUUUUåC@£
ªA@[°[°E9@Ãõ(\
o^m1@÷*;dE@8‾&
ªA@{®Gáª9@!Ce
m 1@ ©«A@{
`E@:®m ÓÖ0@øæÕijzE@û
Gáª9@!Ce ©«A@kâYÑH:@^M<+ A@kâYÑH:@^M<+ A
¦0@~±äK~E@û
tÚ@GK@ùÅ
tÚ@GK@áz
¦0@~±äK~E@®G¡*@§
_,9+@ýbÉ/
Ø0@\
4K@ùÅ
Âõ( _,9+@ýbÉ/
E@ Ø0@\ 4K@Âõ(
 *@«ªªªª"K@
E@‾&  ¤0@R¸
xV4Pë¡E@‾&
&@à WÏBK@#
 ¤0@R¸
ß¼ 8&@hE#
ë¡E@ øæÕÄs0@
ß4K@q=ÇqDZE@ ôI ô9
×£¦.ßB@
.ßB@¾y5ñ¬h.@
@ÑHÀ7‾fK@¸
[°[P.@ä8 ã8ÆB@
ëQ @¢²ÃÔåfK@í0u¹ý
[°[P.@ä8 ã8ÆB@É/
@ h$à
übi.@V4
ßJ@ö(\
ðÍ B@É/
Âõ@ übi.@V4
¡²ÃÜJ@[°ðÍ[°B@yV4
@&¿Xòðm.@.Ø
½J@ðÍ«-ØzB@yV4
g@¶`¶ÀJ@e
ðm.@.Ø
©Ëí/@R

 B@ h+@û
 B@lÁlÁ¶*@UUUUUB@lÁlÁ¶*@UUUUUB@\ Âõ(<*@×£p=
¿B@\ Âõ(<*@×£p=
¿B@ß¼ xVt)@¸ ëQÈB@ß¼ xVt)@¸ ëQÈB@V4ðÍë(@Ýþ CeßB@V4ðÍë(@Ýþ CeßB@Ði 6)@÷*;C@Ði 6)@÷*;C@:m ÓÚ)
=*@C@sû
=*@C@1u¹ýA+@
¦C@1u¹ýA+@
¦C@
×£p=j+@m Ó:ýB@
×£p=j+@m Ó
!@@ÈPÙaÚC@
!@@ÈPÙaÚC@t:Ú@§
ýB@ ùøæÕÄ3,@@ÈPÙa
@Pú¤Oú C@ øæÕÄ3,@@ÈPÙaC@¼»»»»û,@¾y5ñC@¼»»»»û,@¾y5ñC@tÚ@§m-@—?ÈPÙC@tÚ@
D@ ù @Pú¤Oú
ô!@
D@
t¦.Ñ @33333+D@
©Ëío^M<+
D@ D@tÚ@§
D@1u¹ýAf"@
@í0u¹ýùC@333333@
Ñ @33333+D@®GáznÂõ(\÷C@333333@
@ID@®Gázn @ID@ÈPÙaêÒ
Âõ(\÷C@Pú¤Oúd
@Ϋ gEkD@ÈPÙaêÒ
@)\ ÂõD@ d¨ì0õ
@Ϋ@JgEkD@
ôI ôC@|ójB!@
o^M<«@>é©ËíÚC
>qD@
t@G¾y5ÁC@tÚ@§
@G¾y5ÁC@¤p=
×#@kâYÑH¨C@¤p=
×#@kâYÑH¨C@É/
tÚ@
ô@ >éC@Ô
>ùC@Tv
:m Óø?Ði
ºÜþø?§
übÉ
6@C@
µ [N°è[ÄC@É/
°÷?hE#
übÉ
ß\C@K~±ä
@µ NèÄC@|ójâYÑ
Kö? ëQ¸]C@êrû
@"""""êC@|ójâYÑ@"""""êC@ ¡²ÃÔe@bêrû ôC@ ¡²ÃÔe@
tÚ@
tÚ@—J@
ç¿E@@¦.—ßB@ÞÝÝÝÝÝç¿ú¤Oú¤ßB@wwwww÷"@DDDDDlE@J
¶`¾W϶y5ñ¬
#@§
Æ"@¦.—?ÈØD@
@,ùÅ _¼J@è´WÏNÀÆ"@¦.—?ÈØD@é
ÞÝÝÝݍK@K~±äK>é
ÀhE#
"@Sß K@K~±ä
ôI¼D@é
Û # @ K>é
ÀhE#
"9E@J
@Sß K@Öij¢
Û¼ôI
D@2#Tv
 @ À!@°
£ o^ [9E@
°ÛD@
¶`2¶#Tv
K@Öij¢ @§ !@°
À£[°o^
ÛD@p^M<
K@µ
K@ 6Ði À S Û
K@.Ø
tÚ"À—?ÈPÙIJ@þA
tÚ"À—?ÈPÙIJ@Ú@§
-Ø Àp^M<+KÊ@.Ø
"À W
-ØÏ NJ@þA
À p^M<+Ê
K@'
"À WϼÀNJ@*;L]nß"À
5ñ¬h$ÐJ@'  ϼÀ5ñ¬h$ÐJ@2Tv
FNJ@*;L]nß"ÀϺ\FÀN:m Ó
J@\²J@&¿Xò
Âõ(Ü"ÀìQ¸
Å$ÀÌí2TîI@yV4
{J@\ Âõ(Ü"ÀìQ
ðm$
×£p=#Àä8 ã8 J@=
tÚ@'K@
tÚ@'K@]n
×£p=#Àä8
¦.K@@ࡲÃÔå
|W
ójâÙ"À§
ÏJ!À
ã8
¡"ÀhE#
ÀΫ
J@Ház ß$K@]n
gE;K@
®§#À ¡²ÃÔå
ëQ¸¡"µÀhE#
J@Ház
ÀΫ߮$K@à
§#À
gE;K@W ëQ¸
ÏWJ!À
ϵJ@Pú¤Oú¤#ÀÃõ(\
æ À{®GájK@ WÏ æâJ@Pú¤Oú¤#ÀÃõ(\
À{®GájK@ ¦ .— âJ@ZÑHÀ7Ï#À«ªªªª
Àu¹ýA K@ ¦.— Àu¹ýA
K@ZÑ
îI@ ©Ëí!À¨ì0u¹ÕI@ ©Ëí!À¨ì0u¹ÕI@±!ÀÔ:m ËI@±!ÀÔ:m ËI@ F¾yu"À&¿Xò ½I@ F¾yu"À&¿Xò ½I@ ¦ .—?#Àww
×£ J@ ¦ .—¿Àà WÏJ@ ¦ .—¿Àà WÏJ@e ©ËíOÀJ@e ©ËíOÀJ@»Üþ CåÀ
¦J@»Üþ CåÀ
¦J@±äK~±ÀðÍ« gýI@±äK~±ÀðÍ« gýI@kâYÑH À1u¹ýAîI@kâYÑH À1u¹ýAîI@ Ó:m À¥Oú¤OêI@Ϋ gEcÀâYÑHÀ‾J
×£HM@ ôI ô À q=
ÀþA ÊKM@¦.—?ÈÐ
×£HM@ÈPÙaêò
M@ÈPÙaêò
ÀÔ:m SM@¦.—?ÈÐ
ÀÔ:m SM@þA ÊÓ
À  | #M@þA ÊÓ
À  | #M@ Âõ(\
Àÿ Ce M @ Âõ(\
À5ñ¬h$ÐL@{
Àÿ
Àú¤Oú¤
À5ñ¬h$ÐL@ÞÝÝÝÝÝ
Ce M @¬ @QÙaêrû
®gE#
GáúÀS ÛdøL@¬ gE#ÀS ÛdøL@8‾&  À É/ übÙL@8‾&  ÀÉ/ übÙL@{®Gáú
À øæÕÄÛL@ÞÝÝÝÝÝ
À øæÕÄÛL@Üd¨ì°À®GázÖL@Üd¨ì°À®GázÖL@ %¿Xò À a¶`ÖL@ %¿Xò Àa¶`ÖL@ ¡²ÃÔeÀ ëQ¸ÕL@ ¡²ÃÔeÀ ëQ
À | óL@ ¡²ÃÔ
tÀK@ Ó
@B
| óL@:Êm 
S¾y5ñ¬
Ë¿Ú@§
¿K~±ä
À!CeãJ@ Ó
©ûK@
:m 
¾y5ñ¬
¿K~±ä
À!Ce
ãJ@©ûK@¶`
o^M<+Ú¿(}Ò'}ÚJ@
¶` À B ÊSÿK@¶`
o^M<+Ú¿(}Ò'}ÚJ@cÉ/
¶` ÀB ÊSÿK@ÇqÇqÀ FübÉ¿kâYÑHÐJ@cÉ/
¾yõK@ÇqÇqÀ F¾yõK@
übÉ¿kâYÑ
¾y5ñ¬ÿ¿
çI@î2Tv î?×£p=
çI@ß¼ xVè? | óÂI@ß¼ xVè? |óÂI@+ øæÕî?‾&  ¬I@+ øæÕî?‾&  ¬I@Ï F¾õ?:m Ó²I@Ï F¾õ?:m Ó²I@~±äK~
×é¿ÞÝÝÝÝ]I@×£p=
×é¿ÞÝÝÝÝ]I@}Ò'}Ò'ó¿a¶`fI@}Ò'}Ò'ó¿a¶`fI@»Üþ Ceù¿‾&  \I@»Üþ Ceù¿‾&  \I@d¨ì0u¹ÿ¿{®GáZI@d¨ì0u¹ÿ
Àfffff>I@ä8 ã8
Àfffff>I@ýbÉ/
À ÊS I@ÑHÀ7‾&
@ýbÉ/ üÀü[°[°%I@ÑHÀ7‾&À[°[°%I@lÁlÁVÀUUUUU-I@lÁlÁVÀUUUUU-I@m Ó:íÀò %¿X*I@m Ó:íÀò %¿X*I@
×£p= I@ ÙÀ
×£p= I@XÏ F À9 ã8 I@XÏ F À9 ã8 I@|ójâY
À÷*; I@|ójâY
À÷*; I@¼»»»»; ÀG¾y5 I@¼»»»»; ÀG¾y5 I@ZÑHÀ7‾À Nè´±I@ZÑHÀ7‾À Nè´±I@?é >éÀ:m Ó¾I@?é >éÀ:m Ó
ÀQÙaêr³I@ >é >i
J@ñ¬h$à
ÀÀÑHÀ7‾¦J@ÈPÙaêò
ÀQÙaêr³I@Ìí2Tö
ÀÑHÀ7‾¦J@u¹ýA
J@ lÁ|lójâ
ÁI@Ìí2Tö
ÁI@8‾&
ÀójâYÑ
¨ì0u¹
 Àú¤Oú¤ÇI@8‾&
JÊ@ñ¬h$àÀójâYÑ JÀ@øæÕijâ
ú¤Oú¤ÇI@î2TvX
À ã8 ãÀJ@øæÕijâ
ÞÝÝÝÝÝI@î2TvX
À ã8 ãÀÞÝÝÝÝÝI@fffffæ
J@£ o^MÀR¸ ë9J@£
À33333ÓI@fffffæ
o^MÀR¸ ë9J@¥Oú¤O
À33333Ó
Àß¼ xV¬J@u¹ýA Ê
Àß¼ xV¬J@Ø -Ø À ºÜþ «J@Ø -Ø À ºÜþ «J@¸ ëQ¸À F¾yÝJ@¸ ëQ¸À F¾yÝJ@a¶`6À«ªªªªK@a¶`6À«ªªªªK@ >
À¦.—?È8K@ ¡²ÃÔe
ÀÀ¦.—?È8K@¬
À¨ì0u¹mK@£
À¨ì0u¹mK@Ò'}Ò'ý
¨ì0u¹½K@8‾&
¨ì0u¹½K@ |ójâ
gE#
o^ À ÀÇq
 þA
õIÇqäK@
ôIgK@¬
Ê cK@£
|ójâo^
gE#
À ÇqÀÇÀþA
 qäK@à
õIÊcôIgK@Ò'}Ò'ý
K@IÀ7‾&
WÏÊÀtÀÚ@§ýK@à
ÁlÁ\K@IÀ7‾&
WÏÊÀtÀÚ@§ýK@E#
ÁlÁ\K@<+ß¼Z
øæÀ<+
)\ ÂõhK@<+
øL@E#ß¼ZÀøæ
<+À)\ ÂõhK@
øL@
×£p=:L@ójâYÑHÀ
×£p=:L@i$à WÓÀ#ß¼ @L@i$à WÓÀ#ß¼ @L@IÀ7‾& ÀÏ FVL@IÀ7‾& À Ï FVL@tÚ@§ÍÀ1u¹ýA~L@tÚ@§ÍÀ1u¹ýA~L@hE
À+ øæ}M@Ô:m Ó
À+¦. M@
M@z5ñ¬h¤
¦.—?H
øæ}M@z5ñ¬h¤
À ÀÙaêrûcM@ À ¦.—?H ÀÙaêrûcM@è´ N
ÀtÚ@§uM@e ©Ëíó¿ÙaêrûKI@‾&  ñ ¿Ház®WI@®Gáz.ÀðÍ« ÷H@ų¢ /ÀÍÌÌÌÌôH@°[°[À ëQ¸µJ@ *;LÀ33333³J@ÄÔåö
K@v ºÜþ Àû
K@«ªªªªjÀýbÉ/ 4K@½ xV4 À¶`¶`ËK@hE#ß<Àí0u¹ýÙK@S ÛdhÀåK~±äK@[°[0À«ªªªªâK@[°[0À«ªªªªâK@,ùÅ _,
×£p=BL@UUUUU À
×£p=BL@yV4ðÍÀæö*;L@À7‾& À*;L]ÆL@|ójâ À ïîîîî L@|ójâ Àïîîîî L@è´ N(À¾y5ñ L@è´ N(À¾y5ñ L@bêrû
UÀ}Ò'}ÒM@êrû
UôÀX
}Ò'}Ò
Ï F2M@S
F2M@tÚ@§
M@:m Ó
Ûd(À Ød¨ì0=M@þA
-Ø M@:m ÓÊÀ¸
Ø ëQÈL@lÁ
-Ø M@ų¢lÁÀ*‾;L]
ÀE#ß¼*M@ų¢
L@lÁlÁÀ*;L]
‾ÀE#L@ÄÔåö
ß¼*M@tÚ@§
À#ß¼ ¨L@ÇqÇqó¿ÞÝÝÝÝ=N@Ò'}Ò'}
×£p=jK@2Tv º|'@
×£p=jK@.Ø
äK@4
äK@@ÈPÙa*)@tÚ@§
tzK@Ë
)@¶`ð¶LÍ«©(@cÉ/
@@ÈPÙa*)@tÚ@§
S Ûß'@-Øâ&@Æ
:m ÓvK@¿Xò
üÊK@4
_,ùMK@.Ø
ðÍ«©(@cÉ/
% '@¥Oú¤OzK@£
-Øâ&@Æ
üÊK@ÑHÀ7‾¦(@+
_,ùMK@ZÑHÀ7O&@‾&
o^ øæ K@ÑHÀ7‾¦(@+
\K@ZÑHÀ7O&@‾&øæ \K@ß¼ K@Æ _,ùE(@`,ùÅ
xVT&@Ú@§ K@Æ _,ùE
L@ H(@ | ó
L@yV4
L@´¢
¦.÷#@ð(@m Ó
o¾%@ Ó
Ûd¨ÄK@=
¨ÄK@:m K@R¸ ë %@5ñ¬h$ K@R¸ ë %@5ñ¬h$ K@—?ÈPÙ!%@Ø -Ø K@—?ÈPÙ!%@Ø -Ø K@#ß¼ X$@çÕij¢
×£p½$@ÁlÁÌK@=
×£p½$@ÁlÁÌK@n ¡²C%@ÈPÙaêÊK@[°[ #@¦.—?È K@$à W #@kâYÑH K@i$à WS&@µ Nè¤L@ß¼ xVT&@¨L@¶`¶`«(@¾
ßO@E#ß¼:!@×£p=
ôM@°
´ßO@Çq
@*;L]nWN@Ði
[°Çq@ øæÕÄûM@i$à
!@Pú¤OúäO@Çq
6Ð@tÚ@§W@Ç«ªªªªªM@¿Xò
q !@Pú¤OúäO@UUUUU5!@cÉ/
%¿@¸ ëQ¨M@ýbÉ/ üºO@UUUUU5!@cÉ/
|'@lÁl!M@hE#ß'üºO@Õåö
@  |M@ìQ¸
ê!@e1@B
©ËíÏO@Õåö
ÊS L@¦ê.—?Ø0@Ϋ
!@e ©ËíÏ
N@ gE#¿5@0 übÉN@S Ûd=@î2TvO@lÁl1=@[°[àN@lÁl1=@[°[àN@®Gázî<@ÑHÀ7‾îN@®Gázî<@ÑHÀ7‾îN@øæÕij2=@*;
tú,@]n
×£pL@n ¡¡²ã-@£ o^]M@.Ø -ØÂ-@«ªªªª:M@.Ø -ØÂ-@«ªªªª:M@ ¦ .—?-@]n ¡*M@ ¦ .—?-@]n ¡*M@Ú@§
tú,@]n ¡
M@Ú@§
tòL@µ
M@µ
tòL@N%¿Xòk,@X
èNè,@Ú@§
,@Ú@§Ï FM@ %¿Xòk,@XÏ FM@¶`¶`«,@«ªªªª*M@¶`¶`«,@«ªªªª*M@:m Ó-@®GázDM@:m Ó-@®GázDM@
VM@³ÃÔåög+@û
VM@"""""¢*@ 6ÐiKM@"""""¢*@ 6ÐiKM@{®GáÚ)@ ¡²ÃDM@{®GáÚ)@ ¡²ÃDM@$à Wo)@v ºÜþ8M@$à Wo)@v ºÜþ
]M@æö*û(@sû
]M@J ôI t)@Æ _,ù M@J ôI t)@Æ _,ù M@°[°Û)@ WÏ M@°[°Û)@ WÏ M@=
×£p]*@ xV4¨M@=
×£p]*@ xV4¨M@Ház®+@Tv ºÜ®M@Ház®+@Tv ºÜ®M@ ©ËíÒ+@^M<+©M@ ©ËíÒ+@^M<+©M@ ëQ¸%,@K~±ä§M@ 6Ðió9@
×{O@É/ übÙ:@¤p=
×{O@7Ði ö:@u¹ýA RO@7Ði ö:@u¹ýA RO@®Gáz¤:@ñ¬h$à;O@®Gáz¤:@ñ¬h$à;O@|ójâYA:@ 6ÐiCO@|ójâYA:@ 6Ði
:@)\ Âõ O@ÁlÁ
:@)\ Âõ O@æö*Û9@O@æö*Û9@O@|ójâ©9@ ØN@|ójâ©9@ ØN@ >é >©9@ÄÔåö¹N@ >é >©9@ÄÔåö¹N@  |ã9
×£p=z9@33333óN@
tj<@ß¼
O@
O@í0u¹ýÑ;@ÈPÙaê2O@í0u¹ýÑ;@ÈPÙaê2O@
×£p=z9@33333óN@Çq
xVLO@Ú@§
xVLO@¸
øæÕ<@ ëQÈ<@:m Ó
6ÐiÇq¬9@³ÃÔåöO@Çq
:O@¸ ëQÈ<@:m Ó
Çq¬9@³ÃÔåöO@¼»»»»Û9@hE#
Âõ(\o;@*;L]n?O@
:O@¦.—?h<@í0u¹ýIO@
Âõ(\o;@*;L]n?O@]n
ߦ<O@¼»»»»Û9@hE#
.—?h<@í0u¹ýIO@ß¡¢;@
<O@÷
¦ .—<@ÈPÙaêRO@
*;Ü9@hO@]n
ðÍ« oO@÷
¦¡¢;@
.—<@È
*;Ü9
E@°[°;@cÉ/ ü
E@7Ði
¼D@ ©Ëíâ8@
ã8Ö:@Çq
ã 8@tÚ@§
ÇqüD@7Ði©Ëíâ8@
o^M<³D@ Ö:@ÇqÇo^M<³D@Õåö
qüD@Öij¢ ::@1u¹ýAîD@Öij¢
9@E#ß¼¢D@Õåö:9@E#
:@1u¹ýAîD@i$à
ß¼¢D@)\ Âõx9@Ws:@Ï
ëQ¸¥D@)\
F¾éD@âYÑHÀ'5@ÞÝÝÝÝm
Âõx9@ ëQ¸¥D@8‾
ÕD@R¸ ë:@sû
ÕD@ øæÕÄs:@h$à ×D@ øæÕÄs:@h$à ×D@þA Ês:@bêrû ¤D@þA Ês:@bêrû ¤D@ ©ËíR:@Ï F¾ D@ ©ËíR:@Ï
¦:@Æ _,ù]D@'  , 4@ ºÜþ ÓC@ú¤Oú¤_4@¿Xò %ÿC@ú¤Oú¤_4@¿Xò %ÿC@'  ¬4@‾& 
D@'  ¬4@‾& 
tD@ß¼
D@ÁlxVÄ4@
D@i$à Á¬4@Ú@§
W 4@Ô
ÊS:+D@ß¼
m £D@i$à
xVÄ4@
W 4@Ô
ÊS:m £D@û
+D@¦.—?ø4@¢²ÃÔå>D@¦.—?ø4@¢²ÃÔå>D@ %¿Xòû4@¾y5ñ¬pD@ %¿Xòû4@¾y5ñ¬
 4@tÚ@§ÕD@û
 4@tÚ@§ÕD@z5ñ¬h 4@h$à E@z5ñ¬h 4@h$à E @Tv ºÜ^4@B ÊS'E@Tv ºÜ^4@B ÊS'E@ 6Ði-4@:m Ó>E@ 6Ði-4
3@lÁl9E@êrû
3@lÁl9E@ªËí2d3@¤p=
×E@ªËí2d3@¤p=
×LF@E#
LF@É/
E@ ëQ¸^3@ä8
ᬧ6@
üb¹6@tÚ@§
ã8îD@a¶`ö6@S Û¼D@ìQ¸ ë6@<+ øîD@ìQ¸ ë6@<+ øîD@É/ üb¹6@E@É/ üb¹6@E@Ði
 6p6@Yò %¿
×£p=F@E#ß¼º6@
×£p=
¦.ç7@#
F@QÙaêrë6@
ß¼ àE@Á
àE@ l[Á
°L[8@
F@QÙaêrë6@
>é >ÙE@Á[°
lÁ[LF8@
@¨ì0u¹-7@d¨ì0uéE@¨ì0u¹-7@d¨ì0uéE@ÄÔåö
>é >ÙE@e ©Ëí‾8@ %¿XòÛE@e ©Ëí‾8@ %¿XòÛE@J
7@^M<+ôI
éE@ÄÔåö
9 @î2TvØE@J
7@^M<+ôI
éE
Í2@±äK~ñF@sû
Í2@±äK~ñF@K~±ä{2@ÁlÁäF@K~±ä{2@ÁlÁäF@¸ ëQh2@0 übÉßF@*;L]n1@ò %¿XúF@v ºÜþ 1@ ÊS óF@v ºÜþ 1@
×£p=ª-@ HG@
×£p=ª-@ 5G@
tú,@&¿Xò 5G@Ú@§
HG@Ú@§
 |3,@&¿Xò =G@  |3,@&¿Xò =G@ o^M<Ë+@.Ø -ØBG@ ôI ô©9@h$à ×E@{®Gáê9@ éE@{®Gá
;@øæÕijF@u¹ýA
;@øæÕijF@hE#ß<;@`,ùÅ F@é >é :@ WÏ öE@e ©Ëí:@ WÏ öE@=
×£pm;@]n ¡F@í0u¹ýÑ;@Ô:m ûE@í0u¹ýÑ;@Ô:m ûE@Ùaêrû<@ >é >éE@Ùaêrû<@ >é >éE@p^M<+j<@ú¤Oú¤ßE@Üd
1@«ªªªªÚG@ | ó
1@«ªªªªÚG@ýbÉ/ <1@è´ NH@ýbÉ/ <1@è´ NH@¹ýA Ên1@1u¹ýAöG@¹ýA Ên1@1u¹ýAöG@q=
×£ 1@/—?ÈPéG@q=
×£ 1@/—?ÈPéG@»Üþ C2@G¾y5áG@»Üþ C2@G¾y5áG@j 6Ði2@;L]n àG@j 6Ði2@;L]n àG@é >é Î2@;L]n èG@é >é
¦Î2@¨ì0u¹íG@IÀ7‾&î0@ñ¬h$àCH@wwwwwç0@]n ¡*H@£ o^ý2@Öij¢H@kâYÑH3@¦.—?ÈH@ÇqÇ1@ >é >H@lÁl1@4ð
õ2@É/ übÁH@êrû
õ2@É/ übÁH@¾y5ñ¬2@@ÈPÙaÚH@¾y5ñ¬2@@ÈPÙaÚH@#ß¼ h2@$à W÷H@#ß¼ h2@$à W÷H@ÑHÀ7‾62@ øæÕÄûH@ÑHÀ7
I@ªËí2´0@ýbÉ/
I@ 6Ðis0@ðÍ« 'I@ 6Ðis0@ðÍ« 'I@sû
M0@¹ýA Ê>I@sû
M0@¹ýA Ê>I@ ù/@³ÃÔåöWI@ ù/@³ÃÔåöWI@êrû
tÚ`I@êrû
U/@A§
U/@A§ :m  .@ùÅ _,qI@Ô:m  .@ùÅ _,qI@v ºÜþ.@#ß¼ pI@v ºÜþ.@#ß¼ pI@¤p=
tÚ`I@Ô
×C-@ùÅ _,qI@¤p=
×C-@ùÅ _,qI@Ï F¾y,@ójâYÑpI@Ï F¾y,@ójâYÑpI@£ o^Í+@?é >écI@£ o^Í+@?é >écI@ß¼ x+@Ház®WI@ß¼ x
*@*;L]>I@÷*;
*@*;L]>I@]n ¡r)@=
×£p5I@]n ¡r)@=
×£p5I@
tÚ *@m Ó
¾y5ñÌ(@&¿Xò
: H@S Ûä0@¾%I@
y5ñ\H@UUUUUå0@2Tv
¾y5ñÌ(@&¿Xò %I@eº\H@ÄÔåö
©Ëí)@1u¹ýAöH@e 1@ | ój©Ëí)@1u¹ýAöH@ZÑHÀ7)@ïîîîîÎH@ZÑHÀ7)@ïîî
H@Õåö
1@½
t I@<+
I@À7‾&
xV4H@Æ
øæ-@ß¼
õ-@Ú@§
_,ù¥-@
xV¼I@<+
ã8 ãpI@À7‾&
øæ-@ß¼õ-@Ú@§
xV¼I@Ï F^-@ | óÚI@Ï F^-@ | óÚI@v ºÜþ -@0 übÉJ@v ºÜþ -@0 übÉJ@
×óI@+ øæ @ ¤p=
×óI@Öij¢ @B ÊSïI@Öij¢ @ B ÊSïI@"""""â@,ùÅ _¼I@"""""â@,ùÅ _¼I@¼»»»»;@ÑHÀ7‾ I@¼»»»»;@ÑHÀ7‾ I@h
@\ Âõ(G@@ÈPÙa
@\ Âõ(G@ú¤Oú¤o @±äK~)G@ú¤Oú¤o @±äK~)G@¤p=
×#!@´¢ oG@¤p=
×#!@´¢ oG@m Ó:!@»Üþ CýF@m Ó:!@»Üþ CýF@E#ß¼Z"@
¦G@E#ß¼Z"@
¦G@Ï F¾ù"@Ház®/G@Ï F¾ù"@Ház®/G@Tv ºÜ¾#@ËS Û/G@Tv ºÜ¾#@ËS Û/G@¥Oú¤OZ$@Yò %¿PG@¥Oú¤OZ$@Yò %¿
@ ¡²Ãt)@
×£p=RG@ ¡²Ãt)@
×£p=RG@Tv ºÜ>*@ÇqÇqLG@Tv ºÜ>*@ÇqÇqLG@&¿Xò + @õI ôIGG@&¿Xò +@õI ôIGG@&¿Xò +@J ôI G @&¿Xò + @J ô
¦îD@î2TvÀ
ÀK~±ä
¦îD@£D@
Âõ(\O
ðtÍ«
Ú@§
ÀS'ÀÛN
üD@è´ D@
Âõ(\O
ðÍ«ÀS'ÀÛN
üD@è´ D@o^M¼
ã8Àã8
ÄÔåö
ÀâYÑHÀWD@
ùD@ o^M¼ã8
ÀÄÔåö
ã8ÀâYÑHÀWD@û
ùD@ÇqÇñÀtÚ@§ÕD@ÇqÇñÀtÚ@§ÕD@tÚ@§
fÀsû
%D@û
fÀsû
tÚ@ç
%D@ÞÝÝÝÝ
À¥Oú¤O*C@ä8
¥Oú¤O*C@§
À °[°óC@ÞÝÝÝÝ
ã8À Ó:møB@ä8
À °[°óC@;L]n
ã8À Ó:P
møB@"""""â
ÀTv ºÜÖC@;L]n
À^M<+ÑPÀB@"""""â
Tv ºÜÖC@ÆÀ^M<+
_,ùÑB@1u¹ýAÆ
À ÿ Ce ÁC@Æ
À ¡²Ã¬B@M<+
_,ù Àÿ Ce ÁC@Ä
¸@«
5E@ójâYÑÈ@sû
5E@S Ûd¨@
¦6E@S Ûd¨@
ÿ?V4
¦6E@ðÍ;E@Æ
Í;E@
tÚ@§tÚ@§
_,ùÅø?ójâYÑ8E@Æ _,ùÅø?ójâYÑ8E@ _,ùÅ õ?*;L]^E@ _,ùÅ õ?*;L]^E@¤p=
×£î?h$à gE@¤p=
×£î?h$à gE@ WÏ Fâ?ªËí2\E@ WÏ Fâ?ªËí2\E@ªËí2TÆ?âYÑHÀ_E@ªËí2TÆ?âYÑHÀ_E@ o^M<Ë¿QÙaêrkE@ o^M
¦E@ÍÌÌÌÌ
@tâE@p^M<+Z
^M<+
¦.÷F@
.÷F@'
éE@d¨ì0u¹
¡²ÃÔ%
 ¼@ Ø@-Ø
ð@Í«
É/ýF@2Tv
÷F@
übF@d¨ì0u¹
¡²ÃÔ%
º @@=ðÍ«
@É/÷F@
übFëQ¸^
@'  @| Ô
@ñ¬h$à@'
:m #G@ ëQ¸^
 |@ñ¬h$à@£
@Ô:m #G@ übÉ/
o^ @ @ æö*;G@
øæÕ4F@£
übÉ/ @ æöo^
*;G@
@ ß¼øæÕ
x@
×£pýF@ ¦ .—¿@d¨ì0uaG@ -Ø - @ G@ -Ø - @ G@¤p=
×c@lÁlÁ G@¤p=
×c@lÁlÁ G@«ªªªª*@5ñ¬h$ÀG@«ªªªª*@5ñ¬h$ÀG@ò %¿Xò@âYÑHÀ—G@ >é >i@XÏ F I@|ójâYÑ@À7‾& eI@|ójâYÑ@
@p^M<+BI@tÚ@§
@p^M<+BI@Ìí2Tö
@ÑHÀ7‾>I@Ìí2Tö
@ÑHÀ7‾>I@lÁlA@½ xV4*I@lÁlA@½ xV4*I@êrû
Õ@,ùÅ _
I@êrû
Õ@,ùÅ _
I@:m Óú@ÄÔåöùH@:m Óú@ÄÔåöùH@B ÊS×@ ¡²Ã
I@B ÊS×@ ¡²Ã
tÊP@ÈPÙaê20@d¨ì0u½P@ÈPÙaê20@d¨ì0u½P@
I@K~±ä
@
K@Ìí2Tö
è´ N£I@^M<+
N£I@p^M<+
À@ ³ÃÔåö
ÞÝÝÝÝåH@K~±ä
K@Ìí2Tö
@QÙaêr£I@S
À³ÃÔåö
@ÞÝÝÝÝåH@ªËí2
KÛ
@¥Oú¤O:
d(À»ÜþÀ@CL]n-Ø øæÕÄ
ÙH@ªËí2
-¸/@R¸
K@¥Oú¤O:
@L]n -Ø
ë±P@ ÀÙH@
-¸/@R¸
øæÕÄ
|ójâK@@ÑHÀ7‾¦
/—?ÈPÁH@
ë±P@ä8Àã8
|Êójâ
/S@K@¦@ÑHÀ7‾¦
/—?ÈPÁH@®Gáz
 .—£P@ä8À ã8
ÊS/K®@ @@Ϋ
é¦.—>
P@þA Ê3.@×£p=
P@ų¢ o-@v ºÜþ P@ų¢ o-@v ºÜþ P@B ÊS7-@ÞÝÝÝÝqP@B ÊS7-@ÞÝÝÝÝqP@ Ó:m-@&¿Xò eP@ Ó:m-@&¿Xò e
7,@
×£p=P@×£p=
7,@
×£p=P@q=
×£0,@kâYÑHP@q=
×£0,@kâYÑHP@m Ó:m+@
¦P@m Ó:m+@
t)@
¦P@)\
tÚ@§ýO@m Ó
Ú@§ýO@tÚ@§
Âõ¨*@áz:®í(@|ójâYéO@m Ó
GP@)\ Âõ¨*@áz:®í(@|ójâYéO@
GP@p^M<+:*@¬ÛdgE#¨l(@
P@p^M<+:*@¬
xV4ÐO@ Ûd¨l(@
gE#P@tÚ@§
xV4ÐO@¼»»»»;(@ÞÝÝÝݵO@¼»»»»;(
×£)@|ójâYIN@q=
tÚ@
×£)@|ójâYIN@Yò
P@Ôo^M<û=@O
P@ :m Ó=@§ è%¿ø(@
´ ~P@¾y5ñ$N@Yò
o^M<û=@Oè%¿ø(@
´ ~P@a
¾y5ñ$N@S
¶`Æ=@Ø -ØÛd¨(@&¿Xò
iP@a¶`ÆýM@S
=@Ø -Ø Ûd¨(@&¿Xò
iP@ ëQ¸¾=@ ýM@í0u¹ýá'@
ã8 ãXP@ ëQ¸¾=@
©ËíòM@í0u¹
ã8 ã
×£0=@×£p=
N@q=
×£0=@×£p=
N@*;L]þ<@Ìí2T N@*;L]þ<@Ìí2T N@S ÛdÈ<@ÿ Ce N@S ÛdÈ<@ÿ Ce N@j 6Ð <@.Ø -ØzN@j 6Ð <@.Ø -ØzN@
<@ Âõ(\WN@ | ó
<@
tÚ8K@þA
tÚ@OC@IÀ7‾&2P@Ϋ
tÚ@OC@IÀ7‾&2P@§
Âõ(\WN@
Êc3@
©ËíÒ;@ÑHÀ7‾FN@yV4
xV40K@þA
gE3C@}Ò'}Ò/P@Ϋ
Êc3@ xV4
ðÍ<@R¸
0K@ÑHÀ7‾
gE3C@}Ò'}Ò/P@V4
ëQF@^M<+
3@lÁlùÁ6K@ÑHÀ7‾
<@ÐiðÍ6CF@^M<+
@è´3@lÁ
N7P@V4
ùl<@Ði
Á6K@
ðÍC6@
ºÜþèF@þA
´ ã3@yV4
N7P@kâYÑHàB@÷
Ê3=@m Ó
ðMK@:eF@þA
ºÜþ*;@P@kâYÑH
ã3@yV4
Ê3=@m Ó
ðM
IP@ß¼ x¶B@êrû
IP@S Û B@UUUUUMP@S Û B@UUUUUMP@ |ójB@¼»»»»?P@ | ójB@¼»»»»?P@Öij¢ pB@«ªªªª&P@Öij¢ pB@«ªªªª&P@
P@¶`¶`C@Ãõ(\
P@v ºÜþèB@\ Âõ(ôO@v ºÜþèB@\ Âõ(ôO@ójâYѸB@*;L]nçO@ójâYѸB@*;L]nçO@ÞÝÝÝÝ B@®GázîO@ÞÝÝÝÝ B@®G
×£p=RB@5ñ¬h$øO@
P@¶`
×£p=RB@5ñ¬h$øO@4
P@UUUUUÕA@
¶`ûA@R¸®Gáz
ë P@UUUUUÕA@
ðÍ«!B@±ä®KGáz
~P@4
P@ðÍ«!B@±ä
ºÜþ £A@K~%¿Xò
P@¶`P¶@`ûA@R¸
ºÜþ £A@
ë %¿XòP@v ºÜþ A@V4ðÍP@v ºÜþ A@V4ðÍP@½ x
tÚ¤P@i$à
@i$à
tÚ¤P@:Wm Óv@@A§
P@W[@@×£p=
:m Óv@@A§
³P@i$à W[@@×£p=
³P@!Ce
tºA@sû ©C@@ójâYÑÀP@!Ce ©C@@ójâYÑÀP@2Tv *@@lÁlÅP@2Tv *@@lÁlÅP@33333ó?@V4ðÍÇP@33333ó?@V4ðÍÇP@
tºA@sû
P@Ú@§
¦.P@bêrû
P@ö(\ìA@.Ø
P@û  B@ -Ø P@bêrû ìA@.Ø -Ø P@¸ ëQB@ÿ Ce P@¸ ëQB@ÿ Ce P@d¨ì0u9B@ÈPÙaê P@d¨ì0u9B@ÈPÙaê
ÎB@ÁlÁ P@û
tÚ
;@q=
CtÚ@×M@J
tÚ@×M@M<+
tÚ@
@DDDDD
ÎB@Á
N=@
@áz
@n P@J
lÁ®¡²3=@A§
ëQ¸þ<@!Ce
GôI
P@@ªËí2d=@,ùÅ
P@tÚ@§
NP@Ce
@A§
<©ËíêB@7Ði
 @@!Ce
©ËMC@i$à
Nè©ëM@
´áM@J
h<@§
©CN@B
ëQ¸þ<@!Ce
_ôI
NWP@
Ê
@ªËí2d=@,ùÅ
SP@Ce
7<@å
<©ËíêB@7Ði
@ NèK©ËMC@i$à
©ëM@Ï
~±DN@B
´áM@ðÍ«
_F
NP@tÚ@§
@ójâYÑÈ=@7Ði
¾ÊgÕ;@
SW<@ÿ
7<@å
P@KCe
K~±ä
~±DN@
o^M´M@ðÍ«
éM@Ï
C@éN F

@ójâYÑÈ=@7Ði
¾ gÕ;@
<@ÿ
P@
øæÕKCe
~±ä<@Ýþ
o^M´M@L]n
éM@M<+
C@é
NCeWN@
@Çq
>éÇqü=@:m Ó
P@ÈPÙaê
q;@
øæÕ>é<@Ýþ
h<@§ N>¹M@L]n
C@§
@ÇqCeWN@
Çqü=@:m Ó
Âõ(\N
q;@
;@q=
×£¸M@Ò'}Ò'
×£¸M@ Nè´Á:@j 6ÐÁM@ Nè´Á:@j 6ÐÁM@cÉ/ ür:@ÞÝÝÝÝÅM@cÉ/ ür:@ÞÝÝÝÝÅM@*;L]:@ ¡²ÃÔÍM@*;L]:@ ¡²ÃÔÍ
×{L@ übÉ/¶7@¤p=
×{L@ Nè´ 7@n ¡² L@ Nè´ 7@n ¡² L@ä8 ã8>7@J ôI L@ä8 ã8>7@J ôI L@Ø -Ø 7 @õI ôI‾L@Ø -Ø 7 @õI
¦ÆL@^M<+¹6@
äK@ïîîîî
äK@kâYÑH05@Ϋ

¦ÆL@
K@Ce
K@ö(\
d¨ì0
5@tÚ@§
©Ë-5@A§
Âõ4@.Ø
6@BgEËK@kâYÑH05@Ϋ
Ê-ØrK@ö(\
SßL@ d¨ì0Âõ4@.Ø
6@B gEËK@Ce
ÊSßL@
-ØrK@v
 |©Ë-5@A§
#6@
ºÜþÇq4@M<+
ÇÑL@  |#6@ÇqÇÑL@´¢
xK@v ºÜþ
o¾5@X
4@M<+
Ï FÊL@´¢
xK@ß¼ xVÄ4@ÞÝÝÝÝ
o¾5@XÏ FÊL@éK@
->@ o^M<ëF@sû
->@ o^M<ëF@e ©Ëí_>@G@e ©Ëí_>@G@(}Ò'} >@
¦G@(}Ò'} >@
¦G@ øæÕÄÃ>@ _,ùÅBG@ øæÕÄÃ>@ _,ùÅBG@1u¹ýAö>@Ãõ(\ JG@1u¹ýAö>@Ãõ(\ JG@«ªªªªZ?@=
×£pMG@«ªªªªZ?@=
×£pMG@kâYÑHÀ?@M<+ PG@kâYÑHÀ?@M<+ PG@^M<+é?@ o^M<{G@^M<+é?@ o^M<{G@G¾y5ñ?@ Ó:m`G@G¾y5
tÚh@@ÈPÙaêÊF@7Ði
tÚh@@ÈPÙaêÊF@A§
@¨@@"""""âF@lÁlÁ v@@S
@@ñ¬h$àÛF@lÁ
Û¬F@7Ðilv@@S
Á @@ñ¬h$àÛF@A§
Û¬F@»Üþ C @@ÄÔåö F@»Üþ C @@ÄÔåö F@ Nè´Á@@Öij¢ F@ Nè´Á@@
A@fffff6F@êrû
A@fffff6F@
¦.gF@
.gF@m Ó
ðÍ«:—A@kâYÑH
ðA@
Í« /A@®Gáz
F@ðNÍ«
F@ðÍ«
—A@kâYÑH
/A@®GázF@R¸
NF@.ØëéA@e
-ØZA@ïîîîîfF@.Ø
©Ëí F@R¸ ëéA@e
-ØZA@ïîîîîfF@m Ó
©Ëí F@h$à B @êrû
: A@
F@h$à B@êrû
F@‾&  4B@L]n F@‾&  4B@L]n F@ B@ o^M<»F@ B@ o^M<»F@û
îA@{®GáºF@û
îA@{®GáºF@Ò'}Ò'ÕA@G¾y5©F@Ò'}Ò'ÕA@G¾y5©F@
t²F@
¦¦A@Ú@§
t²F@
¦¦A@Ú@§
Nè´ A@ ÐF@ Nè´ A@ ÐF@¶`¶pA@ ¡²ÃôF@¶`¶pA@ ¡²ÃôF@^M<+qA@åK~±G@^M<+qA@åK~±G@S Û
5C@¦.—?È G@êrû
5C@¦.—?È G@®GázNC@:m Ó G@®GázNC@:m Ó G@Ði 6 C@î2Tv G@Ði 6 C@î2Tv G@°[°{C@à WÏzG@°[°{C@à WÏz
\F@¦.—?ÈÐB@
\F@¹ýA
@:m Ó²F@$à
ʶB@tÚ@§
WëQ¸
—B@ùÅUF@¦.—?ÈÐB@
_,©F@$à WëQ¸
—B@ùÅUF@Ìí2TöB@¨ì0u¹MF@Ìí2TöB@¨ì0u¹MF@S
_,©F@®Gáz B@Ìí2T®F@®Gáz B@Ìí2T®F@ìQ¸
ÛC@^M<+
kB@»Üþ
1F@S CÛCF@ìQ¸
@^M<+1F@®Gáz
kB@»Üþ
¦î5@ÑHÀ7‾M@
¦î5@ÑHÀ7‾M@ä8 ã8.6@?é >éCM@ä8 ã8.6@?é >éCM@Yò %¿ 6@ú¤Oú¤OM@Yò %¿ 6@ú¤Oú¤OM@=
×£pí6@*;L]NM@æö*SA@ÇqÇqlO@|ójâqA@|ójâiO@|ójâqA@|ójâiO@Yò %¿ A@XO@Yò %¿ A@XO@ Ûd¨¼A@E#ß¼JO@
×£p= A@Æ _,ù N@
×£p= A@Æ _,ù N@ªËí2¼A@ Ûd¨ N@ªËí2¼A@ Ûd¨ N@ò %¿XºA@}Ò'}Ò‾N@ò %¿XºA@}Ò'}Ò‾N@ò %¿X A@h$à ¿N@
O@¹ýA Ê>A@sû
O@q=
×£HA@|ójâ9O@q=
×£HA@|ójâ9O@Ô:m kA@ -Ø - O@Ô:m kA@ -Ø - O@Ϋ gE A@sû
O@Ϋ gE A@sû
O@Ò'}Ò'½A@ö(\ ÂO@Ò'}Ò'½A@ö(\ ÂO@u¹ýA ºA@:m Ó:O@u¹ýA ºA@:m Ó:O@ ©Ëí A@¬ gE#IO@ ©Ëí A@¬ gE#I
×£ M@Ï F¾C@q=
×£ M@5ñ¬h$èB@êrû
-M@5ñ¬h$èB@êrû
-M@r
tÚÐB@ïîîîîvM@
tÚÐB@ïîîîîvM@A§
Çq¿B@ñ¬h$àCM@r
2Tv êB@;L]n
Çq¿B@ñ¬h$àCM@
M@2Tv êB@;L]n
|óêB@ªËí2LM@
M@ñ¬h$à
|óêB@ªËí2LM@A§
C@Oè´ M@ñ¬h$àC@Oè´ M@d¨ì0uC@‾&  M@d¨ì0uC
AÝN@#
@À7‾&
>@³ÃÔåöWN@Ø
>@³ÃÔåöWN@tÚ@§
ß¼ ýF@33333ó@@
(?@£ -Ø
ýF@tÚ@§
o^ÍN@#
]>@33333{N@Ø
¾ßy5ñ
¼ G(?@£
@33333ó@@
o^ÍN@\
-Ø ¾]>@33333{N@Ë
y5ñ
Âõ(\?@ų¢
G@lÁlÙ@@ïîîîî
S ÛÏN@\
>@¥Oú¤O
G@¶`
Âõ(\?@ų¢
¶`N@Ë
?@9S ã8
Û>ÏN@G
@¥Oú¤O
ÛH@ú¤Oú¤¿?@±ä
¾y5¡?@÷
N@Ce*©Ë->@B
;¼N@G
K~ÑH@ú¤Oú¤¿?@±ä
¾y5¡?@÷
ÊS‾N@Ce
*;¼N@
©Ë
v@@÷*;¬H@û
v@@÷*;¬H@Ï F¾ @@×£p=
H@Ï F¾ @@×£p=
A@R¸
H@ NëiH@¬
è´Á@@þA
ëiH@UUUUU
gE#)A@
Ê H@ ÛNdè¨\H@¬
´Á@@þAgE#)A@
Ê H@ ¦.—ï@@yV4
Ûd¨\H@¢²ÃÔå>A@/—?ÈPQH@¢²ÃÔå>A@/—?ÈPQH@.Ø
ðuH@ ¦ .—ï@@yV4ðuH@UUUUU -ØZA@ìQ¸ CH@.Ø -Ø
H@p^M<+ A@«ªªªª
H@ų¢
¦.ßG@±ä
.ßG@ų¢KA@~ A@¾y5ñ¬¸G@±ä
A@ K~ A@¾y5ñ¬¸G@Ýþ CeWA@—?ÈPÙÁG@Ýþ CeWA@—?ÈPÙÁG@a¶`&A@IÀ7‾&¶G@a¶`&A@IÀ7
A@ |ójªG@\ Âõ(
A@ |ójªG@33333ó@@p^M<+ G@33333ó@@p^M<+ G@:m ÓÚ@@ o^MlG@:m ÓÚ@@ o^MlG@ ¨@@ËS Û_G@
\G@sû
u@@tÚ@§
\G@
u@@tÚ@§
¦.—§@@Ϋ gEcG@ ¦ .—§@@Ϋ gEcG@`,ùÅ Ï@@ o^M<{G@`,ùÅ Ï@@ o^M<{G@¤p=
×ó@@yV4ð G@¤p=
×ó@@yV4ð G@ xV4A@+ øæÅG@ xV4A@+ øæÅG@ïîîîî>A@DDDDDÌG@ïîîîî>A@DDDDDÌG@d¨ì0uqA@=
×£pÅG@d¨ì0uqA@=
×£pÅG@ò %¿X A@bêrû ìG@ò %¿X A@bêrû ìG@é >é A@çÕij¢H@é >é A@çÕij¢H@L]n A@Yò %¿8H@L]n A
×kH@ o^M<ó@@¤p=
×kH@bêrû Ì@@û
vH@bêrû Ì@@û
vH@h$à §@@î2Tv H@h$à §@@î2Tv H@À7‾& u@@v ºÜþ H@À7‾& u@@v ºÜþ H@2Tv º\@@—?ÈPÙ H@2Tv º\@@—
×£p=êG@ |óº6@
×£p=êG@hE#ßì6@à WÏúG@hE#ßì6@à WÏúG@v ºÜþP7@ Ûd¨H@v ºÜþP7@ Ûd¨H@ ºÜþ 7@ übÉ/þG@¢²ÃÔå6<@lÁl¹
×£p¥F@j 6Ði<@=
×£p¥F@ o^M <@<+ ø F@2Tv J8@Ï FöG@Tv ºÜ®8@&¿Xò íG@Tv ºÜ®8@&¿Xò íG@ ©Ëíâ8@fffffÞG@ ©Ë
×£ H@+ øæ¥:@q=
tÚ ;@e
×£¦.ßG@Ði
.ßG@
H@³ÃÔåö÷:@L]n
2©Ëí§G@¤p=
©Ëí§G@A§
Tv6p;@ÞÝÝÝÝÅG@Ði
J;@ H@³ÃÔåö÷:@L]n
6p;@ÞÝÝÝÝÅG@A§
H@ýbÉ/ ,;@Ði 6øG@ýbÉ/ ,;@Ði 6øG@2Tv J;@
×Ó;@G¾y5 G@¤p=
×Ó;@G¾y5 G@ übÉ/<@øæÕijzG@ übÉ/<@øæÕijzG@Ház®7<@B ÊSWG@Ház®7<@B ÊSWG@ WÏ 6<@wwwww/G@ WÏ 6<@
Í<@ ©F@~±äK.=@ò %¿X²F@~±äK.=@ò %¿X²F@  | =@í0u¹ý±F@  | =@í0u¹ý±F@¢²ÃÔå =@|ójâY±F@ªËí2$
¶H@Yò %¿(5@û
¶H@=
×£p 5@ gE#—H@=
×£p 5@ gE#—H@A§ã8 #6@q=
tÚð5@ñ¬h$à«H@9
tÚð5@ñ¬h$à«H@A§
×£ H@9 ã8 #6@q=
×£ H@?é >éc6@¹ýA Ê H@?é >éc6@¹ýA Ê H@î2Tv 6@QÙaêr H@ øæÕÄ#6@  |3H@é >é ¾5@¾y5ñ,H@é >é ¾5
5@?é >éCH@×£p=
H@wwwww
I@;L]n
tÚ@'5@
I@¹ýA
5@?é Êl>éCH@§
P7@Ce
Á7@
lAH@n
6@'
AH@§
Ï F&©Ë
HI@¹ýA
@wwwww
¡²Ã4@#
Ê6@'
ß7@
¼ ÏHH@n
 FH&@ Ó
I@î2Tvè7@
:¡²Ã4@#
mP6@33333+H@ Ó
ß¼ HH@¿Xò
øæÕÄ3I@î2Tvè7@
:%mP6@33333+H@)\
4@Ô:m CH@¿Xò
øæÕÄ3I@ % 4@Ô
ÂõX6@
|ój¾:8y5ñ\H@)\
m CH@õI
@³ÃÔåöWI@
ôI_4@d¨ì0u)H@õI
ÂõX6@
| ój8¾@³ÃÔåöWI@
y5ñ\H@Yò
׳7@  | £I@¤p=
´7@
׳7@  | £I@#
¹J@tÚ@§
¹J@ýbÉ/
ß¼ ¨7@DDDDD¼I@#
7@¶`¶ÐJ@ýbÉ/
ß¼ ¨7@DDDDD¼I@
7@¶`¶ÐJ@ ©Ëí
|ó 7@
7@ÑHÀ7‾îI@
| óúJ@ ©Ëí| ó7@7@ÑHÀ7‾îI@
|óúJ@`,ùÅ|O7@Sój 7@Öij¢
Ûd K@`,ùÅ
J@ | ójO7@S
7@ÖÄÛ
-K@ùÅ _,¹6@sû
-K@9 ã8 S6@ øæÕÄ+K@9 ã8 S6@ øæÕÄ+K@5ñ¬h$ð5@(}Ò'}*K@5ñ¬h$ð5@(}Ò'}*K@ ÊS 5@ ôI ô)K@ ÊS
×£p½5@¿Xò %w@@=
×£p½5@¿Xò %w@@G¾y5 5@QÙaêrk@@J ôI ô*@?é >ék@@°[°;*@Öij¢ p@@°[°;*@Öij¢ p@@ Ó:m*@ñ¬h$àk@@ F¾y
×Ã&@IÀ7‾& @@¤p=
tÚ@×@@
×Ã&@IÀ7‾&
tÚ@×@@\
¦.W$@ NèÂõ(¼$@§
´é@@
´é@@½
@@?é xV4
>é3&@
$@Ãõ(\
K~±ä—@@?é
A@½ xV4
>é3&@
$@Ãõ(\
K~±ä—@@
A @¼»»»»[$@ìQ¸
ëQ¸ %@ ¡²Ã¼@@
+A@¼»»»»[$@ìQ¸
ëQ¸ %@ ¡²Ã¼@@áz
+A@À$@0®G!%@ýbÉ/
übÉ7A@À$@0
Ô@@áz
übÉ7®G
&@]n ¡²A@@ÈPÙa
&@]n ¡²A@u¹ýA ê%@m Ó:ÕA@u¹ýA ê%@m Ó:ÕA@ Nè´a%@ýbÉ/ äA@ Nè´a%@ýbÉ/ äA@¦.—?%@ö(\ ÂýA@¦.—?%@ö(\
×£p=bB@¥Oú¤Oú%@
×£p=bB@1u¹ýA %@&¿Xò uB@1u¹ýA %@&¿Xò uB@ Nè´%@j 6ÐaB@ Nè´%@j 6ÐaB@Ìí2Tv$@¶`¶`{B@Ìí2Tv$@¶`¶`{
B@ F¾yµ@sû
tbB@
tÚ@§
tbB@)\
B@ÑHÀ7‾æ
@ØWÏÂõh
-Ø@@eB@
eB@§
&¿Xò
2Ú@§
Tv6Ði
zB@ÑHÀ7‾æ
mB@ Ý@WÏ6Ði@U &¿Xò
B@
@2Tv
6ÐimB@
zB@Ý@[°6Ði
[ð@U]«ªªªªrB@
B@)\
@K~±äwB@
Âõh[@6Ði
°Ú@§
[ð@]@«ªªªªrB@
K~±äwB@çÕij¢
6Ði]@/—?ÈPqB@
@ ºÜþ {B@çÕij¢
6Ði]@/—?ÈPqB@¤p=
@ ºÜþ {B@Ãõ(
@fffffnB@¤p=
×£
@fffffnB@1u¹ýA
×£
dB@1u¹ýA
@tÚ@§
dB@ gE#_@´¢ ofB@ gE#_@´¢ ofB@ÍÌÌÌÌÌ@?é >éSB@ÍÌÌÌÌÌ@?é >éSB@ÿ Ce ©@ùÅ _,QB@ÿ Ce ©@ùÅ _,QB@
@tÚ@§
¦.ë?ðÍ« /B@
¦.ë?ðÍ« /B@ÄÔåöâ? øæÕÄ#B@ÄÔåöâ? øæÕÄ#B@é >é >Õ? übÉ/B@é >é >Õ? übÉ/B@Ï F¾¹?2Tv ºüA@
ð¿õI ôI×A@bêrû
ð¿õI ôI×A@ ôI ôIô¿ ©Ëí²A@ ôI ôIô¿ ©Ëí²A@ÇqÇqù¿ WÏ A@ÇqÇqù¿ WÏ A@ñ¬h$à ü¿ gE# A@ñ¬h$à ü¿ g
Àv ºÜþ A@  | s
Àv ºÜþ A@ïîîîîn
Àbêrû A@ïîîîîn
Àbêrû A@¶`¶` Àq=
×£ A@¶`¶` Àq=
×£ A@4ðÍ«ÉÀójâYÑ A@4ðÍ«ÉÀójâYÑ A@ËS ÛÀB ÊS A@ËS ÛÀB ÊS A@¾y5ñ¬èÀÁlÁ A@¾y5ñ¬èÀÁlÁ A@4ðÍ« Àu¹
ÀQÙaêrËA@à WÏ
À$à
QÙaêrËA@£
WïA@
A@£ÊSo^o^
ÀÆ _,ùåA@ ÊS À Æ _,ùåA@ùÅ _,ùÀE#ß¼ÊA@ùÅ _,ùÀE#ß¼ÊA@û
fÀÙaêrû«A@û
fÀÙaêrû«A@QÙaêrûÀðÍ« A@QÙaêrûÀðÍ« A@ übÉ/VÀ´¢ ofA@ übÉ/VÀ´¢ ofA@M<+ øÀ2Tv ºDA@M
¦®Àö(\ ÂÍ@@
tÚ¦®
B@
@Ë
Àö(\
tÚ@§u@@°
S Û§@@A§
ÂÍ@@ö(\
[°B@tÂu
Ú@§u@@°
À |óÂ@@ö(\
[°B@ 6ÐiC@@¤p=
ÂuÀ |óÂ@@*;L]. ÀrÇq—@@*;L]. ÀrÇq—@@fffffæ À¡@@fffffæ À¡@@,ùÅ _
×B@ 6ÐiC@@¤p=
×B@u¹ýA *@@ÁlÁB@u¹ýA *@@ÁlÁB@G¾y5@@ËS Û7B@G¾y5@@ËS Û7B@À7‾& å?@Üd¨ìHB@À7‾& å?@Üd¨ìHB@ÇqÇq ?
&B@ÍÌÌÌÌ,>@û
&B@ øæÕÔ=@Ìí2TB@ øæÕÔ=@Ìí2TB@À7‾& =@ÇqÇB@À7‾& =@ÇqÇB@Ùaêrûc=@L]n !B@Ùaêrûc=@L]n
+¦.ÿC@¤p=
.ÿC@R¸;@¨ì0u¹
ëA:@ C@^M<+ ;@¨ì0u¹C@cÉ/ üÒ:@ C @cÉ/ üÒ:@ C@Ϋ gEs:@L]n C@Ϋ gEs:@L]n
×s:@v ºÜþD@¤p=
×s:@v ºÜþD@1u¹ýA¦:@ÿ Ce )D@1u¹ýA¦:@ÿ Ce )D@:m Ó
;@V4ðÍ3D@:m Ó
tÚ@/D@¬
tÚ@/D@Çq
;@V4
tÚ@
tÚXD@§
tÚXD@Ô
tÚ@7<@¥Oú¤O2D@Çq
tÚ@7<@¥Oú¤O2D@§
ðÍ3D@ÞÝÝÝÝm;@±ä
=@A§
:m c=@¾y5ñ¬`D@Ô
Çq =<@§
gE# @®Gáz
Çq.D@¬
K~)D@ÞÝÝÝÝm;@±ä
<@§:gE#
m c=@¾y5ñ¬`D@—?ÈPÙ1=@í0u¹ýqD@—?ÈPÙ1=@í0u¹ýqD@À7‾&
=@®Gáz.D@XKÏ~)D@
F2=@
ºÜþ%¿XòSD@X
Ó;@ o^M,D@
Ï F2=@ºÜþ
%¿XòSD@§
Ó;@ o^M,D@§e=@  | D@À7‾& e=@ 
×£ðD@®Gázv@@q=
tÚøD@ų¢
tÚøD@çÕij¢Á@@ójâYÑ
×£ðD@ų¢ @@A§ E@çÕij¢Á@@ójâYÑE@\ Âõ(ô@@ Ûd¨üD@\ Âõ(ô@@ Ûd¨üD@*;L]&A@¾y5ñ¬øD@*;L]&A@¾y5ñ
NC@¼»»»»{D@û
NC@¼»»»»{D@ -Ø - C@bêrû D@ -Ø - C@bêrû D@É/ üb C@ D@2Tv úA@Üd¨ì A@ä8 ã8îA@2Tv º¼A@ä
¦îA@8‾& íA@ÕåöòA@M<+ A@»Üþ CõA@¹ýA ÊfA@»Üþ CõA@¹ýA ÊfA@*;L]îA@  |;A@*;L]îA@  |;A@ | ójÒA
×£p=¢A@¿Xò %—@@
×£p=¢A@¿Xò %—@@u¹ýA A@û
 @@u¹ýA A@û
 @@í0u¹ý A@ |ójr@@í0u¹ý A@ |ójr@@×£p=
A@V4ðÍk@@:m Ó>A@û
ÎA@sû
%A@a¶`¾A@sû
%A@a¶`¾A@®Gáz
tÚ°A@®Gáz
A@A§
tÚ°A@
A@A§ A@0 übÉ A@ A@0 übÉ A@XÏ FÚ@@J ôI |A@XÏ FÚ@@J ôI |A@v ºÜþÀ@@ÁlÁdA@v ºÜþÀ@@ÁlÁdA
A@×£p=
¿A@ Ûd¨
A@×£p=
¿A@—?ÈPÙ)A@
D@sû
tÚ@?A@ o^M<ÓA@hE#
è´ NËA@—?ÈPÙ)A@
ßÜ9@¨ì0u¹è´ NËA@§
Ý9@ øæÕD@^M<+i:@ ¨C@Ò'}Ò':@¹ýA Ê C@Ò'}Ò':@¹ýA Ê C@"""""B:@ °C@rÇq':@ñ¬h$àCC@ gE
×£p=
;@áB@»Üþ C¥:@G¾y5ÙB@»Üþ C¥:@G¾y5ÙB@ójâYÑ;@ _,ùÅâB@ójâYÑ;@ _,ùÅâB@ójâYÑ;@ _,ùÅâB@j 6Ð ;@;
@¦.—?@A@Õåö
tÚHB@
tÚHB@lÁ
tÚ@§
@¦.—?@A@Ði
|@rójây
lÇÁÖ
qB@@§
@u¹ýA
|@A§
ójây
6 @ä8@A§
bB@lÁ
ã8fA@Ði
lÁÖ @u¹ýA
6 @ä8bB@ã8fA@:m Ó
ã8 ã8!@çÕij¢iB@'
@kâYÑH A@:m Ó
 |÷¿  | k@@
@kâYÑH
|ójù¿+
A@¥Oú¤O
øæ @@
@X|Ï ójù¿+
F²A@¥Oú¤Oøæ
×£p=û¿ ©Ëíê@@=
×£p=û¿ ©Ëíê@@333333û¿æö*A@333333û¿æö*A@î2Tv ü¿´¢ oFA@î2Tv ü¿´¢ oFA@±äK~±ÿ¿Ï F¾qA@±äK~±ÿ¿Ï
 B@hE#ßTB@û
 B@hE#ßTB@z5ñ¬h|B@R¸ ëaB@z5ñ¬h|B@R¸ ëaB@ÄÔåöQB@j 6ÐaB@ÄÔåöQB@j 6ÐaB@ä8 ã8NB@õI ôI/B@ä8 ã8N
¦A@É/ üb9B@
¦A@Öij¢ B@À7‾& í@@Öij¢ B@À7‾& í@@ZÑHÀ7B@j 6ÐÉ@@ZÑHÀ7B@j 6ÐÉ@@®GázîA@+ øæµ@@®GázîA
2û{§ó5´S
n+¬!aQ
 D½
s nw?èë
HÌ-;kóÝÇÁ
©Ô¡K|ÿ
©¶õüC×
¥6ôLÙê
»³wû
Aºé²p
`Þ0ôþ‾
®J9×_¤<³
Pô{?Ý~¼ÁÞ/ðí
?ÕE½ZþéqÜÀ½# â}ðîÿ@Þ
~I½
ÿ 5вøe³ú K À—»%0 ¾äDûJÿßæ
Se+»²
ó-»ùä(ª-& ]ßÇ2]_eÅÑf#ÅÅ
ÀýĤH!ñM«*F²¸Ü$ýt
vF¨.&OB÷
dT Ôi
* ÙCb¨í!
<ÆÙ!¶§
J ØTñ¹
,HÈý‾'z;Cc4ÈÀ
c (ÎWv¢üäܲl°ÜÃ6§R
ǸL ÊI¶òC
ª¢tÃ.âÇh
&ÚC-öp¨°ß.D¨üTK÷Aå ;Â#¸ óN¹ ¿b½í 'Q ¿jÐ~ÛÚD âqM¼>!µ3!bö <£‾h dúíw.Ù—dtFÉüÏnbê,T÷Ѩ; M¿ÆO
e_ØêÆB
yóe
àg®°
»¸0ê½ÿéð°J
!Ü,Ï{
á÷Ýkd
«ë¼Ù
°ÄvÓíê
*ÔÛbå QñÇ"
Ñ x &[ÛY½hÚú
VoìªN|ëÈ_æÙgÇøÉÙz$#£
~Lÿt 6wÝÏøxõÔ
È £æ( ÅnX(µqAÀ
`G½÷eRÅ»}f à <sä\:8ìºÃyüêÓDSÖ &ÒT 9×£éýâP&¡}ºM&£
xò-^:ª Z‾ );
´\
+Öµ)ÑNª²U¿³
ØÏYñ
Ïða¦ doO
_=hØÔ
úÚÌùiRÑÐÓîxD
ù2RÅÏDÁÏwuB
²!¼
> (ù0
Jzå
TÇ´^,ÜÕ
Ð0 X
[w}<4RÞFw
íáím%¼eåAý
×J¨ÿé¿DÑ
9íº§ã6
¶Óîôÿ
Ð £¡:_WË
§ûY;u¦Z
XNaxlÿ
ëÄÕ&^`
ÞÐ)a
H¹yO
"v¬láÆü|
Ëæh
fºü¿g‾ÃÏ
Ìùì.¦ë5Vµ~a
<{rÜÛîoo+á-+
w ÌU^ ó—LªÇèóuµÌá
qRÿ ¹
þÐî°N`Ëø`ûSp»xÜ¥ôѾG§ ²l#[¥Õ
~lGx^þ&ÕìäyA0ÁñkÏG5ý/µ«$~
Ëe?>èKÉÇýZÿ-ò¤0Ív¡ü2Xp°
\¦KpÚ©
èb a idkMEÔ$©O
h{ ×)°(HëÁ|Ö6
3d^ß>ÏN RÜb
ëÂóð
`¡}v¬?
*Ç7 ã.H¤_ýÆÝ9
xN§Û õ6¾§
wNV^§Îª—
,´nD×C+` ] ðl@Ù¦°ÏÒº
çË¢~`ÓûIæ«C.Õ¸KâÛ+/í>=á
tÀv `¹Ù åÄe% c Âïû Ç©]ê
hµv9Ûªq4;¾rC×2ÿÑîW á 1ö A]÷WvÒ(âã.ãêÜ‾Ëbg~$ÇϹWÁVçVéz +¥Í ³]v[²Ú°§MÆÌuD× TÉ®&—cµ)hHáö¶kÃp
9qG«/2¶ÍE!ãTËW Ï£ã{ ½Ì ìiWÓ'óÐ4+D— x@c\íGN¹Çù]m³¦dÊf Ìæ®ùKÁÊggK esG eÚ1h# U GHÞ;¤ D0/ °  %
ãVÁÓö^
Øß²
Ç5Y
n ¢-¶û²´
ñ å~ù%BKu
ÌРáq0æñÉn´Ô«teØè
õ£r7yølë'H
ÉôýF@JDJl %îj
gº¿¹;Bä !Ò*+
h Þp JéÁ=?.9õÝ
g¤äÒä\©
3H_úJR5
WêÀSEÄÝå»Vb
eÛo˦ôEBçú3
ФiãK¹Ç
 ~ '+
îx°ì‾I3—
°A +?M Üá÷n¹½
6V_òIH&Pf2
R רߺç®Ó
|ÿ3béD2— ¶ } - ö+M¿ërù\A Yøûº hçOµÏfv ädØ=W¤åï(ymSÛ " G ×_'ÿÓA }Ú#Z ÃOSÇüÔP' ú— Áÿ0ÿÁíæ-Mýø
uv¼£z±ö^w
ò4\ÂÇj¿¶{
ÂsÖ1©d\
ò¼>—T
r#«r£m Ä}-Ó
_  úx»)öe[
ÿÞìq`LÜ
µ]1 jïbuÁ_?"
-ÆTUìí»ò<q§
öE!59—ªk
¡ wø±;ÉÜ
êÐÆÙìé¾Õ4/N_Á²@(Óã6QÓéP#»@%³µ³òfâvÓ
Å9@XÏ F*L@ (:@XÏ F*L@ (:@e ©ËíL@ ¦.—ÿ9@e ©ËíL@ ¦ .—ÿ9@øK@
*;LÍ9@øK@
*;LÍ9@+ øæÕK@K~±ä 9
õ8@@ÈPÙazK@êrû
õ8@lÁlaK@4ðÍ«É8@lÁlaK@4ðÍ«É8@Öij¢ HK@½ xV4r8@Öij¢ HK@½ xV4r8@°[°#K@\ Âõ(<8@°[°#K@\ Âõ(<8@
;@/—?ÈP J@bêrû
;@:m Ó¶J@E#ß¼ú:@:m Ó¶J@E#ß¼ú:@V4ðÍËJ@ÑHÀ7‾Æ:@V4ðÍËJ@ÑHÀ7‾Æ:@&¿Xò ýJ@Ø -Ø ½:@&¿Xò ýJ@Ø -Ø ½:
]L@áz®G!;@sû
]L@áz®G!;@ ºÜþ {L@j 6Ðù:@ ºÜþ {L@j 6Ðù:@=
×£p L@Ház®Ç:@=
tÚèN@@ÈPÙa
×£p L@Ház®Ç:@ 6Ði L@ øæÕÄc:@ 6Ði L@ øæÕÄc:@¶`¶ L@v ºÜþ:@¶`¶ L@v ºÜþ:@kâYÑH¨L@1u¹ýAÆ9@kâ
tÚèN@@ÈPÙa
9@A§
9@ F¾yO@Ýþ Ce79@ F¾yO@Ýþ Ce79@yV4ð=O@wwwww79@yV4ð=O@wwwww79@h$à gO@kâYÑH@9@h$à gO@kâYÑH@9
9@&¿Xò =P@v ºÜþP9@&¿Xò =P@v ºÜþP9@2Tv VP@ªËí2d9@2Tv VP@ªËí2d9@ %¿XòoP@*;L]n_9@ %¿XòoP@*;L]n
69@(}Ò'}®P@û
Q@d¨ì0ué6@tÚ@§
69@2Tv ®P@âYÑHÀ×8@
Q@d¨ì0ué6@À7‾& Q@;L]n
2Tv ®P@âYÑHÀ×8@h$à
7@À7‾& Q@;L]n 7ÇP@p^M<+Ê8@h$à
 @¹ýA Ê Q@ýbÉ/ Ü6@¹ýA
ÇP@p^M<+Ê8@
Ê Q@ýbÉ/
übÉ/ÒP@~±ä
Ü6@ Âõ(\Kn8@
Q@ übÉ/ÒP@~±
×£p=ª6@ Âõ(\ Q@
×£p=ª6@ 6ÐiyQ@)\ Âõx6@ 6ÐiyQ@)\ Âõx6@(}Ò'}jQ@lÁlÁf6@(}Ò'}jQ@lÁlÁf6@û
^Q@+ øæU6@û
^Q@+ øæU6@¾y5ñDQ@ F¾ye6@¾y5ñDQ@ F¾ye6@Oè´ FQ@ øæÕÄ6@Oè´ FQ@ øæÕÄ6@M<+ TQ@
µ4@IÀ7‾&:R@êrû
µ4@QÙaêr3R@QÙaêr[4@QÙaêr3R@QÙaêr[4@ß¼ x.R@yV4ð4@ß¼ x.R@yV4ð4@R¸ ë-R@É/ üb¹3@R¸ ë-R@É/ üb¹3@
×3R@ð2@¤p=
×3R@ð2@´¢ o6R@ ëQ¸¾2@´¢ o6R@ ëQ¸¾2@øæÕij:R@p^M<+Z2@øæÕij:R@p^M<+Z2@S Û@R@«ªªªª
2@S Û@R@«ªªªª
2@$à WGR@  | Ã1@$à WGR@  |Ã1@;L]n LR@*;L]n_1@;L]n LR@*;L]n_1@ËS ÛOR@ýbÉ/ ,1@ËS ÛOR@ýbÉ/ ,1@K
5/@âYÑHÀoR@êrû
5/@ 6Ði{R@ ©ËíÒ.@ 6Ði{R@ ©ËíÒ.@¿Xò % R@Õåö
.@¿Xò % R@Õåö
tÚà!@
.@wwwww R@/—?ÈPy-@wwwww
$S@A§ R@/—?ÈPy-@5ñ¬h$ R@¥Oú¤OÚ,@5ñ¬h$ R@¥Oú¤OÚ,@`,ùÅ R@Ìí2Tv,@`,ùÅ R@Ìí
¦.S@è´ Nh!@
¦.S@è´ Nh!@°[°;S@ o^M<ë @°[°;S@ o^M<ë @n ¡²GS@÷*; @n ¡²GS@÷*; @\ Âõ(TS@Ï F> @\ Âõ(TS@Ï
U @áz®GmS@êrû
U @¥Oú¤O S@UUUUUµ @¥Oú¤O S@UUUUUµ @¾y5ñ S@¼»»»»!@¾y5ñ S@¼»»»»!@ ôI ô S@XÏ Fâ!@ ôI ô S@XÏ Fâ
×£T@ðÍ« ç*@q=
×£T@ðÍ« ç*@¹ýA ÊT@Üd¨ì°+@¹ýA ÊT@Üd¨ì°+@[°[T@+ øæu,@[°[T@+ øæu,@¹ýA Ê
T@¬ gE#A-@¹ýA Ê
T@¬ gE#A-@0 übÉT@.Ø -Ø.@0 übÉT@.Ø -Ø.@—?ÈPÙT@G¾y5q.@—?ÈPÙT@G¾y5q.@&¿Xò T@þA ÊÓ.@&¿Xò T@þ
×£p=6T@'   /@
×£p=6T@'   /@ ©ËíJT@¦.—?È0@ ©ËíJT@¦.—?È0@rÇqOT@@0@rÇqOT@@0@?é >égT@&¿Xò U0@?é >égT@&¿Xò U0@
@S Û$3@µ Nè@U@&¿Xò U3@µ Nè@U@&¿Xò U3@Ø -Ø QU@M<+ 3@Ø -Ø QU@M<+ 3@ ëQ¸VU@®GázÔ3@ ë
×oU@cÉ/ üÂ3@¤p=
×oU@cÉ/ üÂ3@J ôI |U@±äK~Ñ3@J ôI |U@±äK~Ñ3@Tv ºÜ U@÷*;ì3@Tv ºÜ U@÷*;ì3@ ôI ô¡U@Ϋ gE34@ ôI ô
×£p=^V@Pú¤OúD6@
×£p=^V@Pú¤OúD6@kâYÑHdV@XÏ Fâ5@kâYÑHdV@XÏ Fâ5@wwwwwwV@J ôI 6 @wwwwwwV@J ôI 6@ o^M<wV@±äK~Q6@
¦7@ÇqÇq V@
¦7@åK~± V@ÁlÁ\7@åK~± V@ÁlÁ\7@ >é > V@J ôI t7@ >é > V@J ôI t7@æö*wV@Ði 6°7@æö*wV@Ði 6°7@ò %
×£à7@ Nè´QV@q=
×£à7@
tz7@À7‾&
tz7@ß¼ :m ÓjV@±ä
xV¥V@øæÕijr7@À7‾&
V@Ú@§K~Ñ7@:m ÓjV@±ä
¥V@øæÕijr7@p^M<+¦V@é
K~Ñ7@M<+ V@ F¾>é
y¥7@M<+
7@p^M<+¦V@é
V@ F>é
¾y¥7@ß¼
7@ o^M¼V@,ùÅ
xV V@Ú@§ _Ü6@ o^M¼V@,
úV@|ójâYá5@û
úV@|ójâYá5@ÈPÙaêþV@=
×£p}5@ÈPÙaêþV@=
×£p}5@1u¹ýAW@:m ÓJ5@1u¹ýAW@:m ÓJ5@u¹ýA W @ÄÔåö5@u¹ýA W@ÄÔåö5@V4ðÍW@ F¾yå4@V4ðÍW@ F¾yå4@Oè´ W
4@M<+ @W@hE#ß
4@G¾y5YW@'  
4@G¾y5YW@'  
4@Ház®gW@j 6й3@Ház®gW@j 6й3@1u¹ýAvW@:m Ó 3@1u¹ýAvW@:m Ó 3@|ójâYeW@B ÊSg3@|ójâYeW@B ÊSg3@
vÄW@Ði 60@î2TvÄW@Ði 60@yV4ðÑW@QÙaêr /@yV4ðÑW@QÙaêr /@è´ NãW@u¹ýA ª/@è´ NãW@u¹ýA ª/@½ xV4îW@
trX@ß¼
X@|ójâY10@ xVÔ.@Ú@§
xVÔ.@4
| ójnX@Çq
ðÍ«qX@Çq /@ .@4|ðójnX@Çq
Í«qX@ Çq .@
/@Ú@§ yX@Pú¤Oúd-@ yX@Pú¤Oúd-@æö* X@ÇqÇqÜ,@æö* X@Çq
׫X@XÏ F¢(@¤p=
׫X@XÏ F¢(@}Ò'}Ò«X@ ºÜþ ã'@}Ò'}Ò«X@ ºÜþ ã'@ Ó:m´X@hE#ß\'@ Ó:m´X@hE#ß\'@`,ùÅ ‾X@ d¨ì0 &@`,ùÅ
X@¶`¶`k @×£p=
X@¶`¶`k @¤p=
׫X@\ Âõ( @¤p=
׫X@\ Âõ( @ Ûd¨¸X@¦.—?@ Ûd¨¸X@¦.—?@ d¨ì0ÅX@ WÏ Æ@ d¨ì0ÅX@ WÏ Æ@¢²ÃÔåÒX@ ëQ¸E@¢²ÃÔåÒX@ ëQ¸E
×£p
tÚÀ%@
tÚÀ%@"""""ÞX@A§

¦.%'@
'@
@Y@v
@"""""ÞX@A§
ÇqÛëQ¸êX@A§
6ÐißX@
dǨôX@Pú¤OúÄ'@
ÑX@
ºÜþ ®@Gáz4&@tY@¶`
6ÐißX@
Ûd¶¨ôX@Pú¤OúÄ'@&¿Xò
`Ë®@Gáz4&@}Ò'}ÒãX@B
tY@¶`¶`ËýX@S
@S Ê
ÛShY@Ë
Ûd&@}Ò'}ÒãX@B
((@&¿Xò
S Ûß@S ýX@S
ÛhY@Ë
ÊSÛ
Sd&@Ûß
((@~±ä
@ o^M<[Y@ú¤Oú¤
ëQ¸êX@A§
KþX@i$à Wó(@~±ä
@ o^M<[Y@ú¤O
KþX@i$à
uY@ß¼ xVT)@sû
uY@ß¼ xVT)@^M<+ Y@q=
×£ð(@^M<+ Y@q=
tÚ@'Y@q=
×£ð(@Öij¢ Y@÷*; (@Öij¢ Y@÷*; (@cÉ/ ü¦Y@cÉ/ üb(@cÉ/ ü¦Y@cÉ/ üb(@  | ³Y@ gE#¿'@  |³Y@ gE#¿'@
×£ð
tÚ@'Y@q=

×£ð@ÇqÇ5Y@i$à W@ÇqÇ5Y@i$à W@:m Ó6Y@ ã8 ã¸@ Ûd¨ÌY@Ház®@?é >é¿Y@rÇq@?é >é¿Y@rÇq@ZÑHÀ7³Y@é >é
×£p½Y@~±äK^'@G¾y5ÉY@2Tv ú&@G¾y5ÉY@2Tv ú&@õI ôIÇY@q=
×£0&@õI ôIÇY@q=
×£0&@ Ûd¨ÌY@Öij¢ À%@Ï F¾yM@þA Ê 4@m Ó:eM@ xV4P4@m Ó:eM@ xV4P4@/—?ÈPqM@0 übÉ‾4@êrû
åJ@ Ó
ô:@
ô:@eNè©ËíßK@tÚ@§
:´mL@ä8
8@Ìí2TîJ@
ã8þ:@ N| èó:8@
´L@ä8
2Tvã8þ:@ùÅ
²J@Yò %¿H8@(}Ò'}²J@X
_,!L@2Tv ú:@=Ï Fb8@ÇqÇL@h$à ×:@K~±ä÷K@Üd¨ì°:@K~±ä÷K@Üd¨ì
×£pùP@ų¢ 8@J ôI ðP@à WÏ
8@+ øæ V@kâYÑH°5@fffffV@ ëQ¸Õ5@¸ ëQ8V@¢²ÃÔå 5@\ Âõ(8V@ übÉ/ 5@\R@Æ _,ùÅ@h$à [R@ðÍ
×£LR@ WÏ F@q=
×£LR@$à WO@,ùÅ _LR@ú¤Oú¤O@ Ûd¨LR@Õåöê@lÁl-R@ ¦.—_'@î2Tv@R@æö*û&@"""""òS@!Ce ©K@bêrû ôS@Ò'}Ò
¦®@ -Ø -hT@
¦®@ øæÕtT@lÁl@ øæÕtT@lÁl@S ÛdxT@Ce ©Ëí@S ÛdxT@Ce ©Ëí@×£p=
wT@Öij¢ @×£p=
tÚ
wT@Öij¢
¦.÷S@ÑHÀ7‾æ
T@®Gáz.#@
#@A§
@lÁÂõ(\T@+
l@v
@qT@³ÃÔåöG
ºÜþìS@e@lÁ
øæu#@
©ËíO
lqT@³ÃÔåöG
@vÂõ(\T@+
ºÜþìS@e
@hT@tÚ@§M
øæu#@¼»»»»
©ËíO @@R¸
hT@tÚ@§M
ëñS@çÕij¢
T@,ùÅ@QÙaêr[T@8‾&
_Ì"@¼»»»»
@R¸ ëñS@çÕij¢
T-@,ùÅ
 @QÙaêr[T@8‾&
@_Ì"@n
R¸ ëñS@çÕij¢
¡²T@M<+
- @<+
@?é >és
"øVT
 @n
tÂV@
÷S@`,ùÅ ¡²Ã
"@6@B
6@Ú@§
gE#Ê÷SS@
ËV@û
2Tv ú!@Ház®ëS@Ði 6#@ìQ¸ ÷S@‾&  #@!Ce ©ÛV@Yò %¿¨6@{®GáâV@ x6@333333W@.
F6@B ÊSËV@û
tÚ\W@bêrû
F6@u¹ýA ÂV@[°
ì3@ÿ[Ce
°%6@Ùaêrû?W@
YW@ÁlÁì3@'
ñ3@¢²ÃÔå>W@ÍÌÌÌÌì3@A§
 pW@ 3@$à WkW@³ÃÔåö 3@ÇqÇqpW@ËS Û¿2@[°[°eW@ _,ùÅâ2@¬ gE#Y
—/@lÁleX@À7‾& e0@v ºÜþ`X@L]n 0@âYÑHÀ{X@|ójâY±+@é >é zX@(}Ò'}²+@)\ Âõ X@ 6Ði*@é >é X@ ëQ¸
×£ð(@Õåö X@ ¡²ÃT(@|ójâY X@Tv ºÜ^'@,ùÅ _ X@=
×£p]'@K~±ä X@}Ò'}Ò'(@Ô:m  X@×£p=
'@Ô:m  X@×£p=
'@ß¼ x X@ ºÜþ Ã'@ X@d¨ì0uù&@´¢ o X@33333s&@wwwww X@ñ¬h$à»%@Ýþ Ce X@ ¡²ÃÔÅ%@ÄÔåöyX@÷*
¦>W@Ô:m S)@
¦>W@Ô:m S)@ Nè´9W@!Ce © (@ Nè´9W@!Ce © (@q=
×£0W@ðÍ« '(@q=
@W@Ùaêrûã'@Ði
×£0W@
tú&@ ðÍ«øæÕ$W@4
'(@ 6@W@Ô
ðÍ«i%@é
-W@õI
:m (>é
ôI_'@
@p^M<+vW@«ªªªª
W @!Ce ©«%@
-W@õI6Ði3W@¹ýA
(@ÙaêrûwW@
ôI_'@Üd¨ì(W@fffff&(@Ü
Ên"@yV4
o^M< ð(@ïîîîî&W@:m Ó
-W@ÑHÀ7‾F"@|ójâYEW@ß¼
d¨ì(W@fffff&(@
º&@æö*+W@Ú@§
WÏxV´
2W@@Õåö
Ûd¨F(@
W@JWôÏ
×@±äK~ X@×£p=
×@<+ ø X@ ¦.—_ @áz®GÅX@ o^M|@UUUUUÅX@q=
×£°
¦.@bêrû
&@S ÛÀYY@êrû
@;L]n #@UUUUUíX@®Gáz#@UUUUUíX@®Gáz#@9 ã8 ëX@$à W#@]n ¡êX@Æ _,ùÅ@®GázæX@5ñ¬h$`@¼»
Õ&@lÁlÁfJ@×£p=
_B@m Ó:}J@ Ûd¨dB@m Ó:}J@ Ûd¨dB@É/ üb J@¼»»»»kB@É/ üb J@¼»»»»kB@9 ã8 ËJ@í0u¹ýqB@9 ã8 ËJ@í0u¹
×£p="X@À7‾& Õ@
×£p="X@À7‾& Õ@ gE#;X@¶`¶`@ gE#;X@¶`¶`@è´ NTX@Ò'}Ò'½@è´ NTX@Ò'}Ò'½@¿Xò %cX@ÇqÇqÜ@¿Xò %cX@ÇqÇ
tÖW@
X@2Tv¡²Ã
º@@JÚ@§
ôI ÐW@
X@ä8
*;LÝ@ã8J ôI
@ ÐW@*;LÝ
X@ä8
@5ñ¬h$ÐW@Õåö
ã8 @\ Âõ(üW@S
ª@à WÏÛ
ÖW@É/
$@\ Âõ(üW@S
übI@«ªªªªÖW@æö
Û$@!Ce *©ïW@¬
{@UUUUUýJ@DDDDD¬B@0
gE#@!Ce ©ïW@¬
C@Ìí2TÆK@®Gáz
C@¬ gE#ùK@þA ÊC@¬ gE#ùK@þA ÊC@à WÏ*L@DDDDDC@*;L]¦L@,ùÅ _C@4ðÍ«ÁL@Tv ºÜöB@4ðÍ«ÁL@Tv ºÜöB@?é
?M@]n ¡ÒB@×£p=
?M@]n ¡ÒB@¬ gE#qM@=
×£pÕB@¬ gE#qM@=
×£pÕB@bêrû M@Yò %¿ÈB@bêrû M@Yò %¿ÈB@±M@`,ùÅ ‾B@±M@`,ùÅ ‾B@ ¡²ÃÔÕM@Ùaêrû B@ ¡²ÃÔÕM@Ùaêrû B
N@êrû
}B@u¹ýA
N@êrû
}B@Yò
tÒ@@9
tÒ@@  |ã8
%¿
 kN@S
N@n
CN@Ú@§
Û´¡²cB@Yò
@@  |kN@S%¿ÛN@n
´@@«ªªªªRN@
¡²cB@Ï ÛFd¾¨9N@«ªªªªRB@Ï
@@«ªªªªRN@ Û
Fd¾¨9N@«ªªªªRB@‾&
@@æö*SN@ä8 ã8n@@æö
 lN@þA*Ê
SN@ä8
SB@‾&ã8n@@
 lN@þAo^M<
ÊS
e?@¸ ëQÐN@êrû
e?@2Tv êN@è´ N?@2Tv êN@è´ N?@}Ò'}ÒçN@:m Óæ>@}Ò'}ÒçN@:m Óæ>@âYÑHÀÏN@+ øæ¥>@âYÑHÀÏN@+ øæ¥
 N@Ce ©Ë=>@û
tú:@A§

tú:@
tÚ@
 N@Ce
O@¦<@¼»»»»
<@
.—? O@Ú@§
ºÜþ
|©Ë=>@J
 óO³:@Ìí2TfO@&¿Xò
³:@A§

O@:m Ó
ôI zN@ÿ
<@¼»»»»
Ce ¥:@Ìí2TfO@&¿Xò
O@:m Óz<@
>@JlÁlôIAO@p^M<+Z<@
N@ÿ Ce©ËMO@
¥:@Ce l>@ö(\
Ál®AO@p^M<+Z<@
Gáz :@Ce
N@IÀ7‾&®=@ö(\
©ËMO@
øæÕdO@Ýþ
®GázÂ:@Çq
N@IÀ7‾&®=@<+
Ce'<@
Çq$O@DDDDDd:@Çq
øæÕdO@ÝþøCeÇN
R@
ÏN@+
¦.7A@Çq
.7A@«ªªªªÂQ@
ëQ¸]B@ B@í0u¹ý
Çøæ59@Çq
qÀQ@2Tv
d¨ì0RÇ@"""""JB@
q¤R@¾y5ñ¬
ºA@ÇqÇqÀQ@2Tv
d¨ì0
B@âYÑHÀ
R@"""""JB@,ùÅ
ºA@|ójâY©Q@cÉ/
R@®Gáz|B@âYÑHÀ
_ôQ@üú@@|ójâY©Q@cÉ/
K~±ä?B@,ùÅ
R@®Gáz|B@_ôQ@
ºÜþüú@@Ði
K~±ä?B@j
R@÷*;tB@
6 Q@À7‾&
6ÐåQ@
ºÜþÇqý@@Ði
ÇR@÷
1B@j
*;tB@+
66ÐåQ@
Q@À7‾
øæqÇq
ÍA@[°[ÐN@ ¸A@[°[ÐN@ ¸A@.Ø -ØO@ ¹A@.Ø -ØO@ ¹A@¼»»»»#O@i$à W A@¼»»»»#O@i$à W
µA@¦.—? O@sû
tQµA@)\
@`,ùÅÂõ¿?@sû
O@µ NèÜA@)\ Âõ O@µ NèÜA@øæÕij²O@ðÍ« ïA@øæÕij²O@ðÍ« ïA@Ô:m ËO@à WÏúA@Ô:m ËO@à WÏúA
ùP@ øæÕÄ£?@sû
ùP@ øæÕÄ£?@ 6ÐiíP@øæÕijR?@ 6ÐiíP@øæÕijR?@î2TvÔP@×£p=
7?@î2TvÔP@×£p=
t=@
t=@ö(\
7?@Kè~±ä
´ NÃP@÷
ÂMO@
O@tÚ@§
*;L?@
|ój=@ö(\
è´ NÃP@÷
ÂMO@*;L?@X
| ój=@ñ¬h$à
Ï F®P@Ìí2T6?@X
O@¶`¶`{=@ñ¬h$à
Ï F®P@Ìí2T6?@L]n
O@¶`¶`{=@L]n¡P@¸
O@@ÈPÙa
ëQø>@L]n
=@L]n¡P@¸
O @@ÈPÙa
ëQø>@Öij¢
=@
YR@½ xV4ºB@êrû
YR@½ xV4ºB@Ýþ CeGR@wwwww‾B@Ýþ CeGR@wwwww‾B@ ºÜþ 3R@=
×£p B@ ºÜþ 3R@=
×£p
R@
tâB@xV4
B@ôI¡²ÃÐQ@33333ûB@
xW
B@Ce
B@ Ï übÉ/þQ@,ùÅ
ôáQ@Ú@§
&R@cÉ/
©Ë ü B@_dB@
WÏ &R@cÉ/
¡²ÃÐQ@33333ûB@Tv
übÉ/þQ@,ùÅ
ü B@Ce_dB@
©Ë xV4èQ@¦.—?ÈXB@
ºÜÖQ@ªËí2 C@Ϋ gE Q@\
xV4Âõ(
èQ@¦.—?ÈXB@çÕij¢ÝQ@
C@ -Ø - Q@Ház®÷B@
tÚ@§}B@çÕij¢
-Ø - Q@Ház
×£p=ZQ@´¢ o B@
×£p=ZQ@´¢ o B@ ã8 ãDQ@ÁlÁ B@ ã8 ãDQ@ÁlÁ B@0 übÉ+Q@K~±ä£B@0 übÉ+Q@K~±ä£B@i$à WQ@\ Âõ( B@i$à
ùP@'   B@sû
tùP@'
B@}Ò'}ÒÓP@Ú@§
B@¨ì0u¹ÁP@e
  B@ÍÌÌÌÌìP@Pú¤Oú
©Ëí‾B@¨ì0u¹ÁP@e
B@ÍÌÌÌÌìP@Pú¤Oú
©Ëí‾B@IÀ7‾&®P@Ø
B@}Ò'}ÒÓP@Ú@§
-Ø B@IÀ7‾&®P@Ø -Ø B@UUUUU P@XÏ FªB@UUUUU P@
±R@Ce
tÚ@;S@' ©Ë¥B@
 ÌA@Á
A@§
|ójâ½R@ö(\
lÁTS@÷*;ÄA@Á
Â}B@l|ÁTójâ½R@ö(\
S@÷*;ÄA@hE#Â}B@¢²ÃÔåÖR@
ßlS@°[°»A@hE#
gE#ßlS@°
wB@¢²ÃÔåÖR@
[°»A@hE#ßgE#
lS@°
wB@wwwwwãR@«ªªªªbB@wwww
[°»A@ÇqÇqØR@Ϋ gE#@@Ä
@@ÄÔåöÅR@ò %¿X
@@¦.£R@{®°R@
GáJ?@
GáJ?@S
xV4ðÛ?@d¤R@ Ó:°R@
m?@SxV4 Ûdð¤R@ Ó
?@®Gáz¤R@Ãõ(\
:m?@n ¡²¢?@
R@®Gázä>@n
Gáz¤R@Ãõ(\¡²¢?@ R@®Gázä>@rÇq R@
×£p=ª>@rÇq R@
×£p=ª>@7Ði ~R@|ójâY >@7Ði ~R@|ójâY >@'  |R@¿Xò %O>@'  |R@¿Xò %O>@IÀ7‾&rR@>@IÀ7‾&rR@>@ d¨ì0e
¦R@ZÑHÀ7¿<@
R@Çq
¦R@ZÑHÀ7¿<@[°
Çql<@
ql<@[°o^MüQ@fffff&<@
[° [° o^MüQ@fffff&<@¦.—?ôQ@$à Wï;@¦.—?ôQ@$à Wï;@33333ÛQ@é >é Þ;@33333Û
U8@m Ó
Q@lÁlÁÖ7@ò
:©Q@*%¿XîV@¤p=
;L]>8@m Ó:©Q@*;L]>8@Ï F¶Q@ ºÜþ C8@Ï F¶Q@ ºÜþ C8@i$à W¿Q@L]n ¡8@i$à W¿Q@L]n ¡8@
×Ã;@¤p=
×W@ÙaêrûÃ;@¤p=
×W@ÙaêrûÃ;@ WÏ W @÷*;Ü;@ WÏ W @÷*;Ü;@/—?ÈP-W@1u¹ýAö;@/—?ÈP-W@1u¹ýAö;@Ház®3W@þA Ê3<@Ház®3W@þA
EW@ |óZ<@êrû
EW@ |óZ<@J ôI LW@ ¦ .— <@J ôI LW@ ¦.— <@^M<+YW@Yò %¿¨<@^M<+YW@Yò %¿¨<@p^M<+rW@ %¿Xò»<@p^M<+r
×£p= W@"""""ò<@
×£p= W@"""""ò<@:m Ó W@?é >é#=@:m Ó W@?é >é#=@‾&  ¤W@½ xV4B=@‾&  ¤W@½ xV4B=@v ºÜþ°W@q=
×£@=@v ºÜþ°W@q=
×£@=@
×£p=ÆW@ ºÜþ #=@
×£p=ÆW@ ðW@&¿Xò
$=@M<+
$=@âYÑHÀßW@tÚ@§
ºÜþ #=@âYÑHÀßW@tÚ@§
U=@M<+ ðW@&¿Xò U=@ójâYÑX@î2Tvh=@ójâYÑX@î2Tvh=@¾y5ñX@ò %¿X=@¾y5ñX@ò %¿X=@£ o^X
;X@é >é n;@×£p=
;X@é >é n;@1u¹ýA.X@Ce ©Ë];@1u¹ýA.X@Ce ©Ë];@»Üþ CX@4ðÍ«I;@»Üþ CX@4ðÍ«I;@êrû
X@ÍÌÌÌÌ,;@êrû
X@ÍÌÌÌÌ,;@`,ùÅ ïW@,ùÅ _ì:@`,ùÅ ïW@,ùÅ _ì:@ Âõ(\ßW@³ÃÔåöÇ:@ Âõ(\ßW@³ÃÔåöÇ:@/—?ÈPÉW@û
 :@/—?ÈPÉW@û
 :@Ýþ CeÇW@|ójâY1:@Ýþ CeÇW@|ójâY1:@û
ÂW@Ò'}Ò'Í9@û
ÂW@Ò'}Ò'Í9@ ¹W@è´ N 9@ ¹W@è´ N 9@q=
×£¨W@ ã8 ãh9@q=
×£¨W@ ã8 ãh9@ ã8 ã¤W@¢²ÃÔå69@ ã8 ã¤W@¢²ÃÔå69@ -Ø -¨W@]n ¡Ò8@ -Ø -¨W@]n ¡Ò8@^M<+¡W@ ¦.— 8@
 =@¾y5ñ¬ÌT@û
 =@~±äKÚT@ß¼ xVT=@~±äKÚT@ß¼ xVT=@+ øæåT@i$à W=@+ øæåT@i$à W=@¿Xò %óT@Ϋ gE#=@¿Xò %óT
×£ð<@8‾&  U@q=
×£ð<@ xV4U@è´ N»<@ xV4U @è´ N»<@Yò %¿$U@¢²ÃÔå¶<@Yò %¿$U@¢²ÃÔå¶<@ ëQ¸=U@ o^M< <@ ëQ¸=U@ o^M<
JU@¤p=
×S<@û
JU@¤p=
T×S<@
@S ÛdÂõ(\cU@m Ó
¸=@tÚ@§ T:@+
¸=@d¨ì0u M<@ Âõ(\cU@m Ó
øæU=@d¨ì0u
:M<@ÍÌÌÌÌxU@âYÑHÀ'<@ÍÌÌÌÌxU@âYÑHÀ'<@
T@+ øæU=@wwwwwT@øæÕij"=@wwwwwT@øæÕij"=@Çq
¾y5ñ U@V4ðÍÇ<q@T¾@
y5ñ¾y5ñ¼<@Çq
U@V4ðÍÇ<
@ ºÜþ Ã;@ ºÜþ §T@ÇqDZ;@ ºÜþ §T@ÇqDZ;@ðÍ« ³T@ų¢ ;@ðÍ« ³T@ų¢ ;@J ôI ÌT@
¦n;@J ôI ÌT@
d:@³ÃÔåö
tÚ@
V@Ìí2Tö;@âYÑHÀ
V@Ìí2Tö;@
d:@
¦n;@;@
:@ÏtÚ@§åT@
W:@R¸
;@ *N
V|;L]
 @tÚ@§
ój
èV´@7Ði
ë¡U@Ház
NVèU@§

´¦.—?x;@
V:@³ÃÔåö
@2®Tv:@R¸
tÚ@§åT@
Vë¡U@Ház
@7Ði¦.—?x;@ÈPÙaêþT@]n
:@
® Ê
:@S VÂõ(\»U@
 @'  ü:@6Ði
ÊS¡r;@ÈPÙaêþT@]n
V:@
 @'Âõ(\»U@
 ü:@(}Ò'}
6ÐiV@kâYÑH`;@(}Ò'}
¡r;@0
:@Üd¨ìÐU@øæÕijb:@Ü
übÉU@ZÑHÀ7_;@0
V@kâYÑH`;@
d¨ìÐU@øæÕij
übÉ*U;L]
@ZÑHÀV@
<@âYÑHÀV@2Tv
<@çÕij¢5V@»Üþ Cõ;@çÕij¢5V@»Üþ Cõ;@í0u¹ý1V@±äK~ ;@í0u¹ý1V@±äK~ ;@¦.—?HV@XÏ F ;@¦.—?HV@XÏ F ;
<@ä8 ã8¶V@,ùÅ _
<@i$à
tú:@
tú:@¦.—?<V@Ú@§
¡²ÃÔQV@
WÏV@Ùaêrû<@i$àøæÕÔ:@WÏV@Ùaêrû
¡²ÃÔQV@<@}Ò'}ÒÛV@v
øæÕÔ:@*;L]jV@ÿ
ºÜþ<@}Ò'}ÒÛV@v
Ce ¹:@*;L]jV@ÿ
ºÜþ<@‾&
Ce ¹:@¤p=
èV@ö(\ Âõ;@¾y5ñ¬8V@1u¹ýAF
× V@hE#ß¼:@¤p=
× V@hE#ß¼:@[°[ V@°[°Û:@[°[ V@°[°Û:@lÁl©V@³ÃÔåöÇ:@lÁl©V@³ÃÔåöÇ:@Tv ºÜÂV@/—?ÈPÉ:@Tv ºÜÂV@/—?È
×£p=FV@ZÑHÀ7‾5@ gE#CV@Ùaêrû6@ gE#CV@Ùaêrû6@ 6ÐiEV@kâYÑH 6@¶`¶<V@2Tv ª6@ËS Û7V@*;L]7@ËS Û7V@
×S8@i$à WV@¤p=
×S8@u¹ýA V@ÈPÙaêr8@u¹ýA V@ÈPÙaêr8@*;L]V@ªËí2Ä8@*;L]V@ªËí2Ä8@×£p=
V@lÁlá8@×£p=
V@lÁlá8@`,ùÅ V@ 6Ði39@`,ùÅ V @ 6Ði39@#ß¼ 8V@¨ì0u¹-9@#ß¼ 8V@¨ì0u¹-9@!Ce ©+V@ -Ø -x9@!Ce ©+V@
×£V@¹ýA ÊÎ9@q=
×£V@¹ýA ÊÎ9@ 6Ði V@kâYÑH:@ 6Ði V@kâYÑH:@þA ÊV@Ϋ gE3:@þA ÊV@Ϋ gE3:@[°[V@×£p=
:@[°[V@×£p=
:@ Ó:m,V@ß¼ xVd:@ Ó:m,V@ß¼ xVd:@m Ó:EV@ùÅ _,Y:@m Ó:EV@ùÅ _,Y:@À7‾& QV@ú¤Oú¤:@À7‾& QV@ú¤Oú¤
W@é
\ ÂõôV@>é 9è @hE#
´ N+9@)\
@ÞÝÝÝÝßW@±äKÂõôV@
~Ñ8@hE#
è´ ßN+9@ÞÝÝÝÝ
W@±äK~Ñ8@ ã8 ã
W@;L]n  8@ ã8 ã
W@;L]n
W@<+
7@‾&
67@
W@à
-@å
tÚ@
-@r
@ KÇ>é
@ò 6Ði
qX@¶`

W%¿X&W@¿Xò
Ï J5@z5ñ¬h´X@S
WX@
>%W@tÚ@§
X@
 8@Ü
@ضtø¦7@
@bêrûÚ@§
`û0@§
`û0@m Ó
¦-Ø
.—?¨-@å
d¨ìÜ6@
W@:¶`K6Ði
¡²Ã
%‾5@òWX@ ¶~±
@*Û
`8@&¿Xò
;L-1@m Ó
W_,ùÅr7@
%%¿X&W@¿Xò
@bêrû
@¦.—?ȸX@!Ce
X@¦.—?¨-@
Ü6@ÈPÙaê"W@d¨ì0uy6@ÈPÙaê"W@d¨ì0uy6@
:¡²Ã
%‾5@]n
X@
*ã8;L-1@
W@ã©_,ùÅr7@‾&
%@¦.—?ȸX@!Ce
X@ q¡*W@°
ôI
.@ôã8 [°ãKW5@]n
X@33333c1@
X@
@Øq©-Ø
.@ð%@m Ó
¡*W@°
Í«ôI ôX@»Üþ
:[ÅX@r
°X@33333c1@sû
K5@XÇÏ>é
qCÅ.@
ç%@m Ó
FW>%W@tÚ@§
ð@L]n
Í«:ÅX@r
X@»Üþ
q5@X
ÇqçÏCÅ.@
%@4
FW@L]n
ðÍ«ÑX@çÕij
-Ø -¤X@Y
q5@Ø
yX@×£p=
1@sû
yX@×£p=
1@mX@ 6ÐiÓ1@ÕåöVX@ 6Ði 2@ ã8 ã`X@‾&  D2@ ã8 ã`X@‾&  D2@=
×£pmX@ËS Û 2@=
×£pmX@ËS Û 2@ d¨ì0mX@øæÕijò2@ d¨ì0mX@øæÕijò2@S ÛdtX@ß¼ xVT3@S ÛdtX@ß¼ xVT3@R¸ ëyX@.Ø -Ø 3@R
Y@ -Ø -X@ ëQ¸Y@½ xV4@ ëQ¸Y@½ xV4@=
×£p5Y@þA Ê @ =
×£p5Y@þA
tÚ@ç+@1u¹ýAÂY@/—?ÈPy,@1u¹ýAÂY@/—?ÈPy,@¾y5ñ¬ÌY@)\
tÚ@ç+@9 ã8Ê ³Y@§
@ 0 übÉGY@:m ÓÆ@0 übÉGY@:m ÓÆ@~±äKBY@À7‾&
Âõ¨,@Ce
@~±ä©Ë
KBY@À7‾&
Y@è´ NH@6@DDDDD
 n ¡²[Y@ö(\
Y@n ¡²
Âu6@@DDDDD
n ¡²[Y@Y
¦BY@¨ì0u¹ 3@
¦BY@¨ì0u¹ 3@¿Xò %OY@j 6ÐI3@¿Xò %OY@j 6ÐI3@ÈPÙaêRY@¦.—?Èð2@ÈPÙaêRY@¦.—?Èð2@þA ÊOY@L]n ¡2@þ
×Ã1@Üd¨ì`Y@¤p=
×Ã1@¶`¶`oY@fffffö1@¶`¶`oY@fffffö1@[°[° Y@S Ûd(2@[°[° Y@S Ûd(2@R¸ ë Y@XÏ F"2@R¸ ë Y@XÏ F"2@@
8@a¶`~X@«ªªªª
8@K~±ä X@,ùÅ _8@K~±ä X@,ùÅ _8@ìQ¸ X@ ©Ëí"8@ìQ¸ X@ ©Ëí"8@ %¿Xò«X@Oè´ Î7@ %¿Xò«X@Oè´ Î7@
v5@S ÛY@û
v5@tÚ@§)Y@2Tv z5@tÚ@§)Y@2Tv z5@`,ùÅ ;Y@e ©Ëí‾5@`,ùÅ ;Y@e ©Ëí‾5@ÞÝÝÝÝMY@8‾& }5@ÞÝÝÝÝMY@8‾&
tâB@
DDD0R@Æ
R@ xV4ôI¡²ÃÐQ@33333ûB@
xB@
B@Ce
_,ùübÉ/þQ@,ùÅ
ôáQ@Ú@§
B@DDDDD0R@Æ
©Ë _dB@
¡²ÃÐQ@33333ûB@Tv
_,ùübÉ/þQ@,ùÅ
B@1u¹ýAR@S_dB@
Ûd xV4
ºÜÖQ@ªËí2
B@1u¹ýA
èQ@¦.—?ÈXB@
C@Ϋ
R@S gE
Ûd Q@\
B@Ce
xV4Âõ(
èQ@¦.—?ÈXB@çÕij¢ÝQ@
©ËC@ -Ø - Q@Ház®÷B@tÚ@§}B@çÕij¢
-Ø - Q@Ház
×£p=ZQ@´¢ o B@
×£p=ZQ@´¢ o B@ ã8 ãDQ@ÁlÁ B@ ã8 ãDQ@ÁlÁ B@0 übÉ+Q@K~±ä£B@0 übÉ+Q@K~±ä£B@i$à WQ@\ Âõ( B@i$à
ùP@'   B@sû
B@A§
B@<+

tR@ñ¬h$àûA@
ùP@'
B@}Ò'}ÒÓP@Ú@§
B@¨ì0u¹ÁP@
R@ Âõ(\ÿA@ Ó
Âõ(\ÿA@A§
  ø~R@
B@ÍÌÌÌÌìP@Pú¤Oú
Çq
K~±ä‾B@¨ì0u¹ÁP@
ÇëQ¸
µQ@øæÕij
:m¤R@ÙaêrûëA@ Ó
?@½B@ÍÌÌÌÌìP@Pú¤Oú
xV4¶Q@.Ø
K~±ä‾B@IÀ7‾&®P@Ø
:m¤R@ÙaêrûëA@—?ÈPÙ¥R@IÀ7‾&æA@h$à
-Ø?@øæÕij¶Q@Ãõ(\
B@}Ò'}ÒÓP@Ú@§
-Ø B@IÀ7‾&®P@Ø
>@tÚ@§µQ@
-Ø 6Ði
B@UUUUU
R@QÙaêrkB@ò
>@tÚ@§µQ@
P@XÏ6Ði
FªB@UUUUU
%¿X®R@ªËí2dB@ò
>@`,ùÅ ‾Q@Õå
P@XÏ
×£ Q@:m Óæ<@q=
×£ Q@:m Óæ<@m Ó: Q@
¦¾<@m Ó: Q@
¦¾<@Æ _,ùyQ@ñ¬h$à <@Æ _,ùyQ@ñ¬h$à <@K~±ä Q@*;L]n¿<@K~±ä Q@*;L]n¿<@¼»»»» Q@±äK~ñ<@¼»»»» Q@±
A@Ø -Ø iS@êrû
AtÚ@;S@Ìí2T&A@§
tÚ@;S@Ìí2T&A@Yò
@âYÑHÀSS@L]n A @âYÑHÀSS@L]n
%¿,S@B ÊS7A@YòA%¿,S@B
@§ ÊS7A@÷*;S@î2TvPA@÷*;S@î2TvPA@DDDDD
S@p^M<+jA@DDDDD
R@
S@p^M<+jA@âYÑHÀ
´>@ºÜþ
´>@"""""¶Q@p^M<+
d¨ì0±Q@tÚ@§
ã@@
ã@@¥Oú¤OþQ@«ªªªªÒ@@¥Oú¤OþQ@«ªªªªÒ@@#
S@E#
>@h$à
ß¼ A@âYÑHÀ
ÛQ@Ï FS¾@E#
q@@ß¼ A@Ìí2TúR@
ÔQ@*;LU@@
ß¼ ôQ@33333³@@#
øæÕÄÔQ@
A@Ìí2TúR@
*;LU@@°
ß¼ [ôQ@33333³@@Ce
°ÏQ@fffff&@@°
øæÕÄ A@ |óâR@0
[©ËíQ@r
°ÏQ@fffff&@@(}Ò
übÉ‾A@
Çq @@Ce
| óâR@
©Ë
×c:@øæÕijT@¤p=
:@
:@
×c:@ÿ
Ï|ójBT@Ce
FVT@£
Ce )T@þA
o^Í9@
©Ë ÊÏ#:@ÿ
FVT@£
Ce )T@þA
o^Í9@kâYÑHhT@âYÑHÀ
Ê#:@ | ójBT@Ce 9@kâYÑHhT@âYÑHÀ
©Ë 9@ÞÝÝÝÝyT@ h9@ÞÝÝÝÝyT@
×39@è´ NÀT@¤p=
×39@Öij¢ ÌT@¦.—? 9@Öij¢ ÌT@¦.—? 9@Ï F¾åT@R¸ ë 9@Ï F¾åT@R¸ ë 9@.Ø -ØþT@ WÏ 9@.Ø -ØþT@ WÏ 9
ñU@Ìí2T69@¾y5ñ T@¶`¶`{>@ÞÝÝÝÝ T@S Ûdh>@ÞÝÝÝÝ T@S Ûdh>@.Ø -ئT@é >é ^>@.Ø -ئT@é >é ^>@Oè´ º
×£ÌT@V4ðÍ@q=
×£ÌT@V4
¤=@h$à
¤=@:m ÓþT@tÚ@§
ðÍ@áz
U@øæÕij
®GÙT@4
=@h$à
ðÍ«é=@áz
U @øæÕij
®GÙT@4
=@¤p=
ðÍ«é=@áz®GÙT@4ðÍ«é=@Ìí2TòT@R¸ ëÑ=@:m ÓþT@tÚ@§
×U@®GázT=@¤p=
×U@®GázT=@v ºÜþ0U@/—?ÈP9=@v ºÜþ0U@/—?ÈP9=@ =U@sû
-=@ =U@sû
t^V@
T=@Ú@§
T=@^M<+
tVU@[°
-=@Ú@§
WÏ[E°E=@
°E=@Ú@§
V@tÚ@§
V=@Ú@§
V=@B è´ÊSNoU@
wV@í0u¹ýQ=@B
ÇqÇ1=@è´ NoU@
ÊSwV@í0u¹ýQ=@Öij¢
ÇqÇ1=@bêrû U@Õåö
V@þA
*=@bêrû
ÊS=@Öij¢
U@ÕåöV@þA
*=@CeÊS©Ë¡U@B
=@[°[°©V@
ÊS7=@Ce
gE#O©Ë¡U@B
=@[°[°©VÊ
M=@é >é ÂV@sû
tÚôV@
tÚ@
M=@=@Ϋ
@ójâYÑLW@§
®%¿XòÛV@Ϋ
GázD=@A§
GázD=@"""""
gE[W@DDDDD$=@Ϋ
gEC=@
W@ |ójB=@"""""
%¿XòÛV@Ϋ
gE[W@DDDDD$=@½
WgEC=@A§
@ | ójB=@
*;L%W@ð_,ùÅ"=@
xV4rW@ Í« '=@½
*;L%W@
xV4rW@
_,ùÅ"=@h$à
ðÍ« '=@Ϋ gE
3W@µ
W@2Tv
Nè=:=@Ϋ
@h$à gE
3W@µ
W@2N
×£¼W@±äK~ ;@q=
×£¼W@±äK~ ;@¬W@Tv ºÜ^;@¬W@Tv ºÜ^;@kâYÑH¤W@Ò'}Ò'-;@kâYÑH¤W@Ò'}Ò'-;@âYÑHÀ W@ðÍ« ÷:@âYÑHÀ W@ðÍ
¦®:@ß¼ xVLW@
¦®:@è´ N3W@ o^M< :@è´ N3W@ o^M< :@p^M<+W@¼»»»» :@p^M<+W@¼»»»» :@ÑHÀ7‾W@n ¡²c:@ÑHÀ7‾W@n ¡
×£p= X@´¢ oÞ9@
×£p= X@´¢ oÞ9@¾y5ñtX@è´ N 9@¾y5ñtX@è´ N 9@\ Âõ(`X@E#ß¼ 9@\ Âõ(`X@E#ß¼ 9@ %¿XòSX@¬ gE#Q9@ %
¦NX@ß¼ xV9@
tÚ@GX@
¦NX@ß¼ëQ¸n8@$à
ëQ¸n8@§
xV9@"""""BX@øæÕijÒ8@"""""BX@øæÕijÒ8@§
W3X@8‾& =8@$à W3X@8‾& = 8@ÑHÀ7‾X@V4ðÍ;8@ÑHÀ7‾X@V4ðÍ;8@*;L]X@ójâYÑ8@*;L]X@ójâY
¦ÊW@B ÊS 3@
\@@S
\@@ÙaêrûçV@tÚ@§
¦.w?@*;L]n3W@
ÊW@BÛdÊ
.w?@u¹ýA
èV@þA
S 3@E#
W @Ê3ß@@S
¼ÊW@
o^MÛ?@*;L]n3W@
dºÜþ
èV@þA
#3@E#
Ê3@@è´
ß¼ÊW@ o^MNèºÜþ
V@$à
?@Öij¢
#3@Çq
W@LW@h$à
@Á
ÇqÌW@é
lÁèV@ Ê
>é?@Öij¢
S »?@¦.—?ÈôV@¢²ÃÔåf?@¦.—?ÈôV@¢²ÃÔåf?@É/
¾2@ÇqLW@h$à
ÇqÌW@é >é?@¨ì0u¹eW@1u¹ýAv?@¨ì0u¹
¾2@R¸ ëÍW@ >é >Y2@R¸ ë
×£p=ÊW@cÉ/ ü"?@
×£p=ÊW@cÉ/
t>@R¸
t>@é >éë!X@tÚ@§
.X@lü"?@¼»»»»ÛW@î2Tv
ÁlA>@é >é .X@lÁl?A>@ @¼»»»»ÛW@î2Tv
ºÜþ ;X@ gE# ?@V4
/>@ðÍïW@QÙaêrë>@V4
ºÜþ ;X@ gE#/>@æö
ðÍïW@QÙaêrë>@Ü
*KX@tÚ@§>@æöd*¨ì
KX@
X@ß¼ tÚ@§
xVä>@Ü
>@IÀ7‾&V
d¨ìX
×£`X@Ház® =@q=
$=@
$=@Ìí2T
×£`X@Ház
¦.«X@
übÉ/~X@tÚ@§
ëQ¸
® Å=@£
X@Ce ;@©Ëí<@Ìí2T
;@µ o^mX@
N è´X@¦.—?È
p=@£
X@Ce;@µ
o^mX@
©Ëí<@
Nèp´X@¦.—?È
=@ÊSübÉ/~X@tÚ@§
X@®Gáz
;@`,ùÅ
¾<@ —X@bêrû
ÊS X@®Gáz
,;@`,ùÅ
¾<@wwwww—X@bêrû
X@°[°,;@ýbÉ/
<@wwwww¸X@h$à
X@°[° <@Ç:@6
¹X@Ϋ gEc:@êrû
¹X@Ϋ
t^X@
¦.§X@cÉ/
¶`¶gEc:@
ð2@Ú@§
ð2@»Üþ
ür7@
ür7@ÞÝÝÝÝ¡X@¿Xò
|ójâµX@Ë
CUX@ S Ûÿ9@|%7@ÞÝÝÝÝ¡X@¿Xò
ójâµX@ËS Ûÿ9@,ùÅ%7@?é
_¸X@>é£X@/—?ÈP©6@?é
2Tv 9@,ùÅ _¸X@2>é£X@/—?ÈP©6@å
Tv 9@ò %¿X¶X@KübÉ/69@ò
~±¤X@ ¡²ÃD6@
%¿X¶
¦¾2@»Üþ CUX@

tÚ@OY@í0u¹ýÑ3@kâYÑHhY@
tÚ@OY@í0u¹ýÑ3@§
¦¾2@"""""VX@
1@ _,ùÅnX@A§
1@¥Oú¤OjX@2Tv
è´ Nº,1@¥Oú¤OjX@2Tv
2@"""""VX@
¦ .—ß3@kâYÑHhY@
è´ N º,1@
2@ ã8¦%¿XògX@#
 ã`X@‾&
.—ß3@Pú¤OútY@
ß D2@
¼ È0@
ã8ºÜþ
%¿XògX@#
ã`X@‾&
ó3@Pú¤OútY@
ßD2@ÄÔåö
¼ È0@ß¼ºÜþ
mxjX@
X@2Tv
ó3@
Ft¾ºì1@ÄÔåö
y 0@?é
Ú@§ Y@~±ä
mX@2Tv
>é KY4@9
@tãÚ
v@@½ xV4ÊW@û
tÚX@5ñ¬h$H@@Ø
tÚX@5ñ¬h$H@@A§
¦v.ãW@J
@@ ôI l@@»Üþ
l@@-Ø XCñW@
@±äK~9@@Ø
ëQ¸U@@»Üþ
-Ø X @±ä
CñW@K~9@@a
ëQ¸¶U`@@A§
"X@¤p=
×@@a¶`"X@¤p=
tÚ0X@/—?ÈP
×@@A§ @@A§
@@ è´ N?X@çÕij¢á?@è´ N?X@çÕij¢á?@ ¦.—GX@ WÏ ?@ ¦ .—GX@ WÏ ?@ß¼ xJX@@ÈPÙaJ?@
×£p=fX@R¸ ë >@
×£p=fX@R¸ ë >@:m ÓrX@ËS ÛO>@:m ÓrX@ËS ÛO>@ÁlÁ X@ Ûd¨>@ÁlÁ X@ Ûd¨>@*;L] X@î2Tvè=@*;L] X@î2Tv
×£p=²X@è´ N <@
¸X@
×£p=²X@è´(<@`,ùÅ
(<@tÚ@§
N <@tÚ@§
»X@&¿Xò õ;@`,ùÅ »X@&¿Xò õ;@ o^M<ÃX@ÈPÙaêÂ;@ o^M<ÃX@ÈPÙaêÂ;@j 6ÐÅX@*;L]^;@j
×ÇX@ übÉ/ :@¤p=
×ÇX@ übÉ/ :@ß¼ xVÈX@v ºÜþ0:@ß¼ xVÈX@v ºÜþ0:@ d¨ì0ÍX@=
×£pÍ9@ d¨ì0ÍX@=
×£pÍ9@]n ¡ÒX@E#ß¼j9@]n ¡ÒX@E#ß¼j9@XÏ FÞX@M<+ (9@XÏ FÞX@M<+ (9@ Ûd¨ìX@‾&  9@ Ûd¨ìX@‾& 
×£p=ÆY@,ùÅ _<8@
×£p=ÆY@,ùÅ
W@¿Xò
tÚÌY@Ði
¦.ËY@#%Aß@ÈPÙaê&W@S
@¼6Ð7@|ójâY©V@¬
Ø7@
Ø7@A§
¡²ÃÔ
_<8@ ÛdAgE#!A@
@ÈPÙaê&W@S
*;L]ÂV@
ÛdA@V4
|ó*A@
ðÍ?W@
*;L]ÂV@øæÕ|ó*A@`,ùÅ ÛV@÷*;$A@`,ùÅ ÛV@÷*;$A@åK~±ôV@bê
A@V4ðÍ?W@ øæÕ
A@ÑHÀ7‾NW@®GázA@ÑHÀ7‾NW@®GázA@ ©ËífW@!Ce ©A@ ©ËífW@!Ce ©A@[°[°yW@K~±ä7A@[°[°yW@K~±ä7A@`,ùÅ
7A@ d¨ì0ÙW@×£p=
7A@;L]n äW@sû
A@;L]n äW@sû
A@v ºÜþôW@ýbÉ/ A@v ºÜþôW@ýbÉ/ A @<+ øþW@n ¡²ë@@<+ øþW@n ¡²ë@@çÕij¢X@ Âõ(\ß@@çÕij¢X@
×£`;@ ºÜþ Y@q=
ף`;@Ϋ
d:@
d:@r>é
Çq[>qY@
Y@tÚ@§
gEY@WÏ¡²ÃÄ;@Ϋ
:@ >é >qY@
gEY@WÏ¡²ÃÄ;@Ü
:@DDDDD|Y@Ϋ
d¨ìY@tÚ@§};@Ü
gEc:@DDDDD|Y@Ϋ
d¨ìY@tÚ@§};@ÄÔåö
gEc:@YëQ¸
@ìQ¸uY@G
+;@ÄÔåö
¾y5:@YëQ¸
@ìQ¸uY@G
+;@Pú¤O
¾y5:@
¿Y@É/ übÉ:@×£p=
¿Y@É/ übÉ:@ übÉ/ºY@ o^M,;@ übÉ/ºY@ o^M,;@'  ÀY@5ñ¬h$`;@'  ÀY@5ñ¬h$`;@¶`¶ÌY@à WÏ ;@;L]nX@¶
×£p= A@ _,ùÅ6X@
×£p=
¦.;X@A@ A@é >é RX@—?ÈPÙiA@q=
×£`X@âYÑHÀoA@çÕij¢yX@åK~± A@ò %¿X X@"""""zA@ò %¿X X@"""""zA@wwwww X@ >é >iA@wwwww X@ >é >iA
×£pÅX@'  ü@@=
ì@@
ì@@í0u¹ý5Y@V4
×£pÅX@'
:m Ó"Y@tÚ@§
 ü@@|ójâÑX@ Ó
ðÍë@@í0u¹ý5Y@V4
:mà@@|ójâÑX@ Ó
ðÍë@@Tv:mà@@.Ø
ºÜNY@ ã8 -ØêX@
ãà@@TvºÜþºÜNY@
ã@@.Øã8-ØêX@
ãà@@h$à
ºÜþ ã@@ðÍ«
[Y@³ÃÔåö×@@h$à
gY@«ªªªªÒ@@ðÍ«[Y@³Ã
A@ WÏ vY@êrû
A@0 übÉgY@£ o^A@0 übÉgY@£ o^A@‾&  XY@ß¼ xA@‾&  XY@ß¼ xA@¹ýA ÊJY@M<+ 8A@¹ýA ÊJY@M<+ 8A@
×£PA@L]n 9Y@q=
×£PA@£ o^)Y@wwwwwWA@£ o^)Y@wwwwwWA@øæÕijY@±äK~iA@øæÕijY@±äK~iA@Ði 6Y@Ϋ gE A@Ði 6Y@Ϋ gE
¦BY@Ï F¾ B@
¦BY@Ï F¾ B@ ¦ .—[Y@ ëQ¸B@ ¦.—[Y@ ëQ¸B@Öij¢ tY@Pú¤Oú
B@Öij¢ tY@Pú¤Oú
B@ F¾y Y@n ¡²ûA@ F¾y Y@n ¡²ûA@í0u¹ý Y@ö(\ ÂíA@í0u¹ý Y@ö(\ ÂíA@ìQ¸ ³Y@  |ëA@ìQ¸ ³Y@  |ëA@J
1P@ò %¿XC@âYÑHÀ/P@ÁlÁC@ïîîîîVP@|ójâÙB@DDDDDHP@i$à WûB@:I)¤ÿÆ«<?"° JklðüB ¢ßÝüB¶ Ji { wñ 5ß
endstream
416
endobj0 obj<</CropBox[0 0 612 792]/Parent 505 0 R/Contents 418 0 R/Rotate 0/MediaB
ox[000obj<</XObject<</Im2052
417
endobj 612 792]/Resources 417420 0 R/Type/Page>>
0 R>>/ColorSpace<</Cs6 516 0 R/Cs22 493 0 R>>/F
ont<</TT1 522 0 R/TT2 513 0 R/TT3 514 0 R/TT4 515 0 R/TT5 528 0 R/TT6 523 0 R/TT
7 458 0 R/TT9 459 0 R/TT10 478 0 R/TT11 466 0 R>>/ProcSet[/PDF/Text/ImageC/Image
I]/ExtGState<</GS1
418
endobj0 obj<</Length 8157/Filter/FlateDecode>>stream
520 0 R>>>>
Áa¤7
H ÌW]oÛF
þ3‾¦!#Q´Q"
}÷‾Ðãp1ó=Ã"(ÐMv -ÚÅ1ºnh ¶ H¤@R1òï÷ 3¢ÈÒ$kg[©eK:¼ ç ûöÇ dóXÝüýöæíí-ß ÍíÃ
ú5¸ýÔ@0 C!5 Û7ï0Sô{ó6¿¼Í°4ïâc" TÆ_ ($¤ Sû¹æ#ï0ÆÌ ¢
Þ<¿ۤùßÓ
±Äð¡ã l¬&:Àú%ÎÏñaÇBéþgi ÙÃ¥]0½^ ¾á,ä¼ÉÝ< —J
ã£!VjéM
6ó9tSUX®-;—ù âû`Ë!Ý,)¼ ¥ÖÞÀÞu£Ó |÷ ~ý³¾ÿ-ÂhjKxH °%½ûkÄõ)Ϫï_j £A-ÿô¸¦Ëc7kJkxB*Õ¶Ûf VPW0ÁÑØ
Æl³%:ô ï tï+¹yÿP ç~|ÿï²ù ~û´n 'eóËæîw¼ÙÁ;Ùæ´, ~ ¶9Þ  æ¥ RÍ_ÛÏ ß7¢ÊÍ (
§M m8IçRJ?u÷ºJr«6ºÁ?qm« .U VáúxHK« HþByQA%E(Qu¡¼NÁ´ã )E;ê õ¨‾v jðn¤³ ÆÔ{(zÚ§ù° 
̵»ä$
Dm ] '0Vö
 Ï Ç È)Á#d*a³
 M¡ É ÝÏ
Å¥x¼Û
¢¼êjÛøÚí
Áúù¢7®£!ØQÈÿD-
ʵëdjó%.½3A1¼
-kêV í ?Zëo+'e ÙN ¡Ê-
Óó/°vã%xp3Ô
+ ÎpÉ C®@ÀXÀ
íÓl£2m~8
Q@Æ _,ùM`À
.QÑ tÂj—
Ú@§mKUu
L@h$à E`Àµ Nè
L@þA
tÚÈ`Àáz
ÊW®`À4
GqM@r
ðÍ«)L@þA
Çq+_À»Üþ
ÊW`À4
C=H@±ä
ðÍ«)L@
K~_xV4
À&¿Xòl`ÀV4
%H@±ä
ðÍCL@
K~_À&¿Xò
xV4l`ÀV4
%H@àðÍCL@
WÏÎ^Àû øæÕ `À´¢ onL@ øæÕ `À´¢ o
&H@à WÏÎ^Àû
&H@ ºÜþ Ó^ÀõI ôI H@»Üþ CÁWÀCe ©ËH@9 ã8 ‾WÀþA Ê H@}Ò'}ÒWWÀa¶`NH@×£p=
{WÀ¦.—?ÈPH@×£p=
tÚ,]À³ÃÔåö
H@ZÑHÀ7Ó^Àe
tÚ@Ó\Àe
 ^À³ÃÔåö
{WÀ¦.—?ÈPH@(}Ò'}
©Ëí
H@tÚ@§
H@4
H@A§
H@ ð©Ëí
H@§
H@è´
Í«y^À
Nè´ù\Àe
H@tÚ@§
NWÀójâYÑXH@(}Ò'}
  H@4
\Àe©Ëí
ð©Ëí
Í«y^À
H@
H@è´
 NH@ų¢
è´ù\Àe
N WÀójâYÑXH@Ø
\Àe
W^Àe
©Ëí
©ËíH@§
©Ëí
H@}Ò'}Ò{\Àe
-Ø WÀß¼W^Àe
H@ų¢ xVlH@(}Ò'}FWÀwwwwwOH@"""""
©Ëí ©Ëí
H@}Ò'}Ò{\Àe
H@ o^M$^Àe
©Ëí©Ëí
H@ ëQ¸J\À³ÃÔåö
H@ WÀÀ7‾&
o^M$^Àe
%H@"
©Ë
H@
[À³ÃÔåö H@ ã8 ã
[À³ÃÔåö H@J ôI èZÀe ©Ëí H@J ôI èZÀe ©Ëí H@ F¾yµZÀ³ÃÔåö H@ F¾yµZÀ³ÃÔåö H@ d¨ì0 ZÀe ©Ëí H@ d¨
æD@ÁlÁ¼TÀû
æD@×£p=
TÀ(}Ò'}ÚD@×£p=
TÀ(}Ò'}ÚD@ÇqÇqTÀ&¿Xò ýD@ÇqÇqTÀ&¿Xò ýD@ÞÝÝÝÝATÀójâYÑ E@ÞÝÝÝÝATÀójâYÑ E@ ©ËíTÀcÉ/ ü*E@ ©ËíTÀ
F@ o^MSÀ×£p=
F@B ÊSóRÀTv ºÜ>F@B ÊSóRÀTv ºÜ>F@ªËí2ÐRÀ7Ði nF@ªËí2ÐRÀ7Ði nF@
¦ RÀ³ÃÔåö F@
¦ RÀ³ÃÔåö F@DDDDDxRÀè´ N F@DDDDDxRÀè´ N F@ øæÕTRÀ±äK~ F@ øæÕTRÀ±äK~ F@ ©Ëí2RÀ2Tv F@
×£F@è´ NÈQÀ¤p=
×£F@Ø -Ø ¥QÀΫ gEÓF@Ø -Ø ¥QÀΫ gEÓF@ ôI ô QÀ Ûd¨
G@ ôI ô QÀ Ûd¨
G@G@ÑHÀ7‾òPÀ¢²ÃÔåvG@
6Ði QÀΫ gESG@ 6Ði
Ï FòQÀΫ
PÀHáz
gESG@õI
®/G@Ï FòôI_QÀtÚ@§
PÀHáz®/G@Ði 6äPÀ übÉ/ÎF@
¦ÂPÀÐi 6 F@^M<+ÁPÀ |ójzF@<+ ø VÀêrû
H@(}Ò'}nVÀp^M<+

t TÀÑHÀ7‾fE@#
G@L]nøæõPÀV4
G@+ ýPÀA§ß¼ðHÍ@
ÄSÀ2G@7Ði
TvôITÀ*;L]ngE@Ú@§
ôÚPÀ
E@ÄÔåö
*;L]ÆF@øæÕijÒPÀ»Üþ
ÅSÀ@ÈPÙa E@¬ gE#
C F@Æ
QÀÝþ_,ùM`À
Ce/G@tã8
Ú@§mK@þA
ã QÀè´ÊAN0`À
G@{Âõ(\—K@þA
®GáNQÀß¼ Ê
xV¼G@
A`À Âõ(
WÏ
L@h$à E`Àµ Nè
L@þA
tÚÈ`Àáz
ÊW®`À4
GqM@r
ðÍ«)L@þA
Çq+_À»Üþ
ÊW`À4
C=H@±ä
ðÍ«)L@
K~_xV4
À&¿Xòl`ÀV4
%H@±ä
ðÍCL@
K~_À&¿Xò
xV4l`ÀV4
%H@àðÍCL@
WÏÎ^Àû øæÕ `À´¢ onL@ øæÕ `À´¢ o
&H@à WÏÎ^Àû
&H@ ºÜþ Ó^ÀõI ôI H@»Üþ CÁWÀCe ©ËH@9 ã8 ‾WÀþA Ê H@}Ò'}ÒWWÀa¶`NH@×£p=
{WÀ¦.—?ÈPH@×£p=
tÚ,]À³ÃÔåö
H@ZÑHÀ7Ó^Àe
tÚ@Ó\Àe
 ^À³ÃÔåö
{WÀ¦.—?ÈPH@(}Ò'}
©Ëí
H@tÚ@§
H@4
H@A§
H@ ð©Ëí
H@§
H@è´
Í«y^À
Nè´ù\Àe
H@tÚ@§
NWÀójâYÑXH@(}Ò'}
  H@4
\Àe©Ëí
ð©Ëí
Í«y^À
H@
H@è´
 NH@ų¢
è´ù\Àe
N WÀójâYÑXH@Ø
\Àe
W^Àe
©Ëí
©ËíH@§
©Ëí
H@}Ò'}Ò{\Àe
-Ø WÀß¼W^Àe
H@ų¢ xVlH@(}Ò'}FWÀwwwwwOH@"""""
©Ëí ©Ëí
H@}Ò'}Ò{\Àe
H@ o^M$^Àe
©Ëí©Ëí
H@ ëQ¸J\À³ÃÔåö
H@ WÀÀ7‾&
o^M$^Àe
%H@"
©Ë
H@
[À³ÃÔåö H@ ã8 ã
[À³ÃÔåö H@J ôI èZÀe ©Ëí H@J ôI èZÀe ©Ëí H@ F¾yµZÀ³ÃÔåö H@ F¾yµZÀ³ÃÔåö H@ d¨ì0 ZÀe ©Ëí H@ d¨
æD@ÁlÁ¼TÀû
æD@×£p=
TÀ(}Ò'}ÚD@×£p=
TÀ(}Ò'}ÚD@ÇqÇqTÀ&¿Xò ýD@ÇqÇqTÀ&¿Xò ýD@ÞÝÝÝÝATÀójâYÑ E@ÞÝÝÝÝATÀójâYÑ E@ ©ËíTÀcÉ/ ü*E@ ©ËíTÀ
F@ o^MSÀ×£p=
F@B ÊSóRÀTv ºÜ>F@B ÊSóRÀTv ºÜ>F@ªËí2ÐRÀ7Ði nF@ªËí2ÐRÀ7Ði nF@
¦ RÀ³ÃÔåö F@
¦ RÀ³ÃÔåö F@DDDDDxRÀè´ N F@DDDDDxRÀè´ N F@ øæÕTRÀ±äK~ F@ øæÕTRÀ±äK~ F@ ©Ëí2RÀ2Tv F@
×£F@è´ NÈQÀ¤p=
×£F@Ø -Ø ¥QÀΫ gEÓF@Ø -Ø ¥QÀΫ gEÓF@ ôI ô QÀ Ûd¨
G@ ôI ô QÀ Ûd¨
G@G@ÑHÀ7‾òPÀ¢²ÃÔåvG@
6Ði QÀΫ gESG@ 6Ði
Ï FòQÀΫ
PÀHáz
gESG@õI
®/G@Ï FòôI_QÀtÚ@§
PÀHáz®/G@Ði 6äPÀ übÉ/ÎF@
¦ÂPÀÐi 6 F@^M<+ÁPÀ |ójzF@<+ ø VÀêrû
dN@é
H@(}Ò'}nVÀp^M<+

tdN@
TÀÑHÀ7‾fE@#
G@L]n
G@+
`À³ÃÔåöÿM@A§
¶`À³ÃÔåöÿM@øæÕij
`>é
¶ _ÀtÚ@§
øæõPÀV4
º_À
ýPÀA§
WÏß¼vN@é
ðHÍ@
ÄSÀ2G@7Ði
Tv
`À
ôINTÀ*;L]ngE@Ú@§
>é @øæÕij
ôÚPÀ
º_À
E@ÄÔåö
*;L]ÆF@øæÕijÒPÀ»Üþ
W Ï`ÀvN@@ÈPÙaÚ_Àv
NÅ@r
SÀ@ÈPÙa
Çqq`ÀN@r
E@¬ÇºÜþÀN@@ÈPÙaÚ_Àv
qqgE#
`À
CN@ìQ¸
QÀÝþ
F@Ô :m É`Àe
Ce/G@
W`ÀM<+ºÜþÀN@Á
ã8 ã NQÀè´
©ËíÿM@Çq
@ìQ¸
lÇÁq¶`Àe
`ÀË
NW`ÀM<+
0SG@{ÛßN@Á
®GáNQÀß¼
©ËíÿM@Çq
lÁ`NÀË
@¸ÇSxV¼G@
q¶`Àe
ëQD`À
ÛßN@N©Ë
WxÏ@
`ÀøæÕij
tÚ@çJ@z5ñ¬hÜ]À´¢
O@ xV4^À§ o®J@z5ñ¬hÜ]À´¢ o®J@¨ì0u¹¹]Àj 6Ð J@¨ì0u¹¹]Àj 6Ð J@!Ce © ]ÀwwwwwWJ@!Ce © ]
]ÀåK~±¤I@Ï F
]Àå
lI@M<+
lI@{K~±¤I@{
®Gáæ\ÀtÚ@§
¼\À®Gáæ\ÀtÚ@§
¦>I@M<+ ¼\À
¦>I@?é >é«\À Ó:møH@?é >é«\À Ó:møH@ýbÉ/  \À ¡²Ã¬H@ýbÉ/  \À ¡²Ã¬H@´¢ o \À¹ýA Ê H@4ðÍ«ÁWÀÔ
×CL@+ øæ]VÀ¤p=
tÚlYÀ Ó
tÚpK@a
tÚpK@(}Ò'}vPÀA§
×CL@
YÀL]n
YÀå
YÀÔ
YÀ÷ *:K;¤M@è´
~±¬L@tÚ@§
~±¬L@'
m [M@tÚ@§
;¤M@tÚ@§
übÉ/>VÀ—?ÈPÙiL@ú¤Oú¤ÛPÀ÷
¶:`m J@°
m J@A§
FPÀÄÔåö
ùK@ N
xV4
[YÀ2Tv

°k*YYÀªËí2|J@°
K@a
;LõL@'
YÀfffffFL@
¶`
ºìM@
FPÀÄÔåö
 | ójâ}YÀ

[*xV4
;LõL@tÚ@§
° kYYÀªËí2|J@)\
K@
*;äJ@ Ó
:m Ó"PÀz5ñ¬h\K@
YÀfffffFL@tÚ@§
:mäPÀDDDDD,K@ Ó
ÙK@Ϋ ÂõhYÀ
gE{YÀÿÏ:m Ó"PÀz5ñ¬h\K@ñ¬h$àëOÀ
FCe
6J@)\
:mäPÀDDDDD,K@v
¹K@Ϋ
ÂõhYÀ
gE{YÀÿ
Ï F6J@CeºÜþÀPÀ#
o^M<gYÀ
¹K@(}Ò'}vYÀÕåö
tÚ@§MK@ñ¬h$àëOÀ
ß¼ pK@v
J @[ºÜþÀPÀ#
b°[K@(}Ò'}v
dYÀÌí2T
tÚ@§MK@
ß¼
&ZÀ³ÃÔåöÿM@û
têXÀ³ÃÔåöÿM@Ú@§
têXÀ³ÃÔåöÿM@Ϋ
&ZÀ³ÃÔåöÿM@ |óòYÀ gE—XÀ N@N@Ϋ
|óòYÀgE—XÀ
N@V4Nð@×£p=
Í¿YÀe ©ËíÿM@V4ðÍ¿YÀe ©ËíÿM@ìQ¸ YÀN@ìQ¸ YÀN@ß¼ xVhYÀN@ß¼ xV
XÀe ©ËíÿM@×£p=
^Àv
ÀÀ*;L]nçJ@tÚ@§
ÀCe
XÀe¡²ÃÔMK@'

[À]n
[ÀÌí2TæJ@tÚ@§
[Àå
[Àe¡²ÃÔMK@tÚ@§
KºÜþ
~±LK@tÚ@§
~±LK@
©ËíÿM@
©Ë
¡²Ã
©Ëí?L@tÚ@§
©Ëí?L@
¡êI@tÚ@§
¡êI@
L@tÚ@§
L@
M@tÚ@§
M@M<+
H@xV4
[À2Tv
xV4
^^ÀÌí2T
[À»Üþ
À[Àwwwww7J@
^KøæÕpXÀ³ÃÔåöÿM@
[Àÿ
 À~±äïL@
ºÂõ(\çM@M<+
CeK@'
L@
C [À2Tv
ÙH@
K@
xV4
^xV4
ÀÌí2T
^ÀºK[À»Üþ
xV4 ~±äïL@Á
[Àÿ
[Àwwwww7J@'
L@
øæÕpXÀ³ÃÔåöÿM@¨ì0u¹=XÀ³ÃÔåöÿM@¨ì0u¹=XÀ³ÃÔåöÿM@
^K@Á
 ÀxV4
Ce
lÁ
Âõ(\çM@M<+
Cl^[ÀK~±ä
ÙH@
K@Á
ÁÀå
^À2Tv
K~±üK@Á
lxV4
Á ó[Àö(\
 L@
º<M@Á
[ÀCe
[Àe
lÁ
^ À^ÂÝK@Á
xV4 lÀå
©Ëí?I@
©ËÂõ(\çM@tÚ@§
Á[ÀK~±ä
^KÀ2Tv
~±üK@M<+
J@'
lÁxV4
º<M@tÚ@§
ó[Àö(\
[ÀCe
L@Á[Àe
lÁÂÝK@tÚ@§
^ À»Üþ
©Ë ©Ëí?I@M<+
[Àd¨ì0uYM@Á
J@tÚ@§
CEL@M<+lÁ [Àd¨ì0uYM@M<
o^M<
^ À»Üþ
[Àî2Tv
XÀeCEL@t
©Ëíÿ
I@M
×£p]SÀ øæÕ
tÚÐF@âYÑHÀ
G@
tÚÐF@¬
ôI ô1SÀ¦.—?ÈèF@
gE#RÀA§
RÀ ºÜþ F@Öij¢
ôI ô1SÀ¦.—?ÈèF@µ
<QÀ)\ Âõ¨G@Á
NèlSÁ
ÀQÇÀ³ÃÔåößG@Á
qÇÁF@µ NèSlÀÁ
ÇqQÇÀ³ÃÔåößG@d¨ì0uõPÀ³ÃÔåöÿG@d¨ì0uõPÀ³ÃÔå
ÁF@DDDDDÔRÀß¼ xÆF@DDDDDÔRÀß¼ xÆF@¬ g
×£p=òG@u¹ýA ÒPÀ
×£p=òG@ d¨ì0ÁPÀCe ©ËõG@¥Oú¤OÆSÀþA Ê[G@
¦¢SÀ(G@
¦¢SÀ(G@e ©Ëí SÀ~±äKG@e ©Ëí SÀ~±äKG@û
nSÀè´ NG@êrû
XÀ¢²ÃÔåÎE@êrû
XÀÝþ CeF@êrû
XÀÝþ CeF@ 6ÐiXÀö(\ Â]F@ 6ÐiXÀö(\ Â]F@XÀ÷*;¤F@À7‾& X Àe ©Ëí¿E@£ o^õWÀÀE@£ o^õWÀÀE@½ xV4ÂWÀÀ
G@øæÕij
¦.ÿOÀ¹ýA
WÀ ÊnJ@B
ºÜþ SG@Ýþ
ÊnJ@ ÊSÿOÀZÑHÀ7/J@B
CeÓPÀÖij¢ ÈJ@hE#
ÊSÿOÀZÑHÀ7/J@Ø
ßÄPÀ"""""zJ@hE#
-Ø ÝOÀÝþ
ßÄPÀ"""""zJ@0
CeJ@E#ß¼âSÀÄÔåö
übÉ PÀHáz
©I@lÁ®lWJ@0
ÁâSÀ5ñ¬h$¨I@êrû
übÉ PÀHáz®W
ÝOÀ
¦.J@ øæÕÄÛOÀ³ÃÔåöÿI@¹ýA Ê WÀ«ªªªª
@@¹ýA Ê WÀæö*S@@¹ýA Ê WÀæö*S@@ _,ùÅ WÀL]n @@ _,ùÅ WÀL]n @@×£p=
WWÀd¨ì0u @@×£p=
WWÀd¨ì0u @@ËS Û#WÀd¨ì0u @@ËS Û#WÀd¨ì0u @@h$à ÿVÀd¨ì0u @@h$à ÿVÀd¨ì0u @@S ÛdÜVÀ±äK~ @@Öij¢
TÀ
t¦XÀe
t6UÀ*;L]FB@Öij¢
>é©Ëí
©ËíÿC@Ú@§
©ËíÿC@½
>áD@×£p=
B@Ú@§xV4
B@IÀ7‾&
èSÀÌí2TFB@Öij¢
XÀD@½ xV4B@IÀ7‾&
XÀ³ÃÔåö XÀèSÀÌí2TFB@£
D@<+XÀ³ÃÔåöø^XÀ³ÃÔåöÿC@<+
o^ÅSÀÌí2TFB@£
B@<+ ø^XÀ³ÃÔåöø^XÀ³ÃÔåöÿC@V4
o^ÅSÀÌí2TFB@p^M<+
B@<+ ø^XÀ³ÃÔåö
ðÍ;XÀ³ÃÔåöÿC@V4
B@ SÀÌí2TFB@p^M<+
øæÕÄ;XÀ³ÃÔå
ðÍ;XÀ³S

tÚäWÀDDDDDLD@
¦WÀ
.¿VÀ
@B@ |_,ùÅzWÀ³ÃÔåö?B@
¡²ÃÔMD@|ójâY
¡²ÃÔMD@!Ce
 ójA@ gE#
©ÿVÀ
¡²ÃÀWÀcÉ/
ËVÀX
:m ÓND@:m Ó
Ï F²@@
_,ùÅzWÀ³ÃÔåö?B@`,ùÅ
üJD@
gE#JËVÀ
¡²ÃÀWÀcÉ/
VÀXôI
Ï F²@@
ôaB@(}Ò'}JVÀ—?ÈPÙaB@Ýþ
üJD@Ï
_,ùÅÊVÀ¥Oú¤OR@@
WWÀ³ÃÔåö?B@`,ùÅ
F¾ WÀu¹ýA _,ùÅÊVÀ¥Oú¤OR@@wwwwwËVÀójâYÑø?@www
JD@Ï
WWÀ³ÃÔåö?B@,ùÅ
CesVÀ¹ýA
F¾ WÀu¹ýA
ÊæA@Ház
JD@¢²ÃÔåzWÀ¥Oú¤OJD@
_4WÀe
® VÀ~±ä
©Ëí?B@,ùÅ
K A@Ház®_
WÀbêrû lA@êrû
tÚøA@*;L]n§WÀ
tÚøA@/—?ÈP¡WÀA§
¦WÀbêrû
.?B@®Gáz
lA@ -Ø - WÀE#ß¼²A@ -Ø - WÀE#ß¼²A@/—?ÈP¡WÀA§
VÀÏ F¾yA@×£p=
VÀ 6Ði%A@×£p=
VÀ 6Ði%A@ ¦ .—VÀlÁlÁÞ@@ ¦ .—VÀlÁlÁÞ@@z5ñ¬hVÀ Ó:m @@z5ñ¬hVÀ Ó:m @@ÄÔåöVÀ ©ËíR@@ÄÔåöVÀ ©ËíR@@ÿ
@@ÿ Ce V À®Gáz
@@—?ÈPÙVÀ°[° ?@—?ÈPÙVÀ°[° ?@9 ã8 VÀðÍ« ç>@9 ã8 V ÀðÍ« ç>@yV4ðVÀ½ xV4r>@ Âõ(\ÃUÀ ã8 ã A@¿Xò %
B@e
B@
VÀ°F[°¾©Ëí
yµTÀ¦.—?ÈøA@
A@TÀ[°
Ï F [VÀïîîîî>B@$à
° F¾yµTÀ¦.—?ÈøA@
WsVÀ0 übÉÿA@
6ÐißTÀ¶`¶øUÀ
>é >ÉA@
ß¼ xVB@
6ÐißTÀ
ã8 ãÔUÀn
>é >ÉA@]n
¡²SB@¡Uã8ÀSãÔUÀn
Û¬A@]n¡²SB@4
¡UÀSðÍ«±UÀQÙ
Û¬A@ gE
TÀDDDDD A@êrû
TÀDDDDD A@ Nè´uTÀS Ûd A@ Nè´uTÀS Ûd A@@ÈPÙaRTÀ F¾y A@@ÈPÙaRTÀ F¾y A@  | /TÀL]n iA@  |/TÀL]
TÀ;L]n hA@®Gáz
TÀ;L]n hA@£ o^éSÀ ëQ¸eA@£ o^éSÀ ëQ¸eA@ 6ÐiÃSÀ£ o^%A@ 6ÐiÃSÀ£ o^%A@ | ó¢SÀ+ øæí@@¦.—?ÈT
×£pu@@ _,ùÅRUÀ Ûd¨¼@@ _,ùÅRUÀ Ûd¨¼@@@ÈPÙaZUÀ«ªªªª
A@@ÈPÙaZUÀ«ªªªª
A@
t C@fffffÆSÀ8‾&
tÚ@§eUÀÍÌÌÌÌlA@V4
C@Ýþ Ce£SÀÚ@§ UC@fffffÆSÀ8‾&
ðÍÏRÀ ¡²ÃC@h$à
U C@"""""îSÀz5ñ¬h4C@"""""îSÀz5ñ¬h4C@J
óRÀCe ©ËõB@h$à óRÀCe ©ËõB@ _,ùÅôI
SÀ{®GáúB@ _,ùÅSÀ{®GáúB@
TÀ|ójâéB@J ôI
TÀ
t®TÀ|ójâéB@ñ¬h$à/TÀójâYÑ°B@ñ¬h$à/TÀójâYÑ°B@#
Ûd¨ B@ÞÝÝÝÝÍTÀ
B@Ú@§ :m Ó^B@ÞÝÝÝÝÍTÀ:m Ó^B@Ház
ß¼®ßTÀ
XTÀË
tÚ@§UB@
S Û§B@#
:m ÓÞSÀ
ß¼ XTÀËN
Sè´ÁC@ZÑHÀ7ßSÀUUUUU
Û§B@#ß¼ TÀK~±äËB@#
C@°
ß¼[°ßTÀK

áUÀ o^M< D@sû
áUÀ o^M< D@¨ì0u¹áUÀPú¤OúLD@¨ì0u¹áUÀPú¤OúLD@ÞÝÝÝÝáUÀlÁlÁD@ÞÝÝÝÝáUÀlÁlÁD@®GázâUÀÖij¢ ÀC@Ði 6
?E@Ház
¦.ç=@¢²ÃÔåzWÀ)\
®VÀÝþ Ce?E@Ház
ÂõÈ=@q=
®VÀÝþ Ce?E@.Ø -Ø>VÀwwwww?E@.Ø -Ø>VÀwwwww?E@(}Ò'}bVÀÐi 6@E@(}Ò'}bVÀÐi 6@
×£<XÀ@ÈPÙaú@@2Tv *XÀQÙaêró@@¢²ÃÔånVÀÐi 6?@rÇqkVÀXÏ Fr>@rÇqkVÀXÏ Fr>@ÞÝÝÝÝaVÀ"""""2>@&¿Xò ýX
×£pEXÀ`,ùÅ ß@@=
×£pEXÀ`,ùÅ ß@@×£p=
XÀËS Ûß@@×£p=
¨VÀcÉ/
XÀË
¦.—D@¨ì0u¹õWÀ¸
.—D@QÙaêrûWÀ
S Ûß@@÷
ü:E@tÚ@§
ü:E@*;L
;äWÀVÀðÍ«
xV4ø@@÷
ëQXD@¨ì0u¹õWÀ¸
gýD@ *;L
;äWÀVÀðÍ«
xV4
ëQXD@ÑHÀ7‾ÚWÀ<+
ø@@`,ùÅ
gýD@ªËí2¨VÀÆ
³WÀõI _,ù½D@ªËí2¨VÀÆ
ôIß@@`,ùÅ
øD@ÑHÀ7‾ÚWÀ<+
³WÀõI_,ù½D@ÑHÀ7‾ÂVÀYò
ôIß@@
øD@)\
®GázÂõÀWÀ
WÀ9|ójâ¹C@)\
ã8%¿pD@ÑHÀ7‾ÂVÀ
Ë@@ ÂõÀWÀ
øæÕ|
×£p¹VÀh$à ‾C@=
×£p¹VÀh$à ‾C@(}Ò'} VÀ ¦ .—wC@(}Ò'} VÀ ¦ .—wC@´¢ o VÀ{®GáC@´¢ o VÀ{®GáC@2Tv º VÀ Ó:mC@¢²ÃÔå
ÕUÀ¤p=
×óB@sû
ÕUÀ¤p=
×óB@u¹ýA úUÀä8 ã8îB@u¹ýA úUÀä8 ã8îB@VÀêrû
µB@VÀêrû
µB@rÇq?VÀz5ñ¬h B@rÇq?VÀz5ñ¬h B@`,ùÅ KVÀ®Gáz B@e ©ËíÛSÀ ¡²ÃÔ C@;L]n ´SÀ³ÃÔåöÇC@;L]n ´SÀ³ÃÔåö
×£p SÀq=
×£ÐC@=
×£p SÀq=
×£ÐC@ übÉ/nSÀ©C@ übÉ/nSÀ©C@q=
×£HSÀ
ÐRÀýbÉ/ _,ùÅzC@ Ó
ìC@ :mÌRÀ´¢
ÍTÀ >é >qA@
oND@<+
±TÀ*;L%A@
ø¾RÀ±TÀ
è´*;L%A@
ND@<+Nè´¥TÀ@ÈPÙa
ø¾RÀè´ AN@D@tÚ@§
Nè´¥TÀ@ÈPÙaA@¶`¶` TÀÙaêrûË@@¶`¶`
@@UUUUUÅQÀñ¬h$à£F@«ªªªªÂQÀ'  \F@«ªªªªÂQÀ'  \ F@è´ NÀQÀû
F@è´ NÀQÀû
F@ ½QÀkâYÑHÐE@ ½QÀkâYÑHÐE@9 ã8 —QÀ}Ò'}ÒoE@9 ã8 —QÀ}Ò'}ÒoE@´¢ oÚQÀ:m ÓZE@´¢ oÚQÀ:
×£p]E@ Ûd¨ RÀ=
×£p]E@ ôI ôQRÀÝþ CegE@ ôI ôQRÀÝþ CegE@ øæÕÄORÀsû
E@ øæÕÄORÀsû
¦E@É/
.#WÀ ºÜþ
übURÀKF@ HE@É/ übURÀ HE@ o^M<_RÀ d¨ì0ýD@ o^M<_RÀ d¨ì0ýD@é >é bRÀß¼ x¶D@é >é bRÀ
¦ VÀïîîîîFG@×£p=
sVÀÔ:m #G@×£p=
sVÀÔ:m #G@ xV4PVÀ~±äKG@ xV4PVÀ~±äKG@u¹ýA >VÀ øæÕÄG@XÏ FVRÀM<+ F@=
×£pURÀtÚ@§F@=
tÚHH@
tÚHH@R¸
×£pURÀ
tH@ d¨ì0IXÀA§
d¨ì0IXÀA§
tÚ@§
ëMXÀ5ñ¬h$xH@æö
F@ ëQ¸YRÀþA *Êó[RÀ
E@Æã8_,ù%XÀd¨ì0uéF@¢²ÃÔå*XÀfffffÞF@ìQ¸
ãÐE@×£p= CXÀÚ@§
[RÀkâYÑHÐE@[°[°ÕRÀö(\ ÂýD@ò %¿X²RÀTv ºÜ¶D@ò %¿X²RÀTv ºÜ¶D@ú¤Oú¤ÃRÀÜd¨ìpD@|ójâY-VÀQÙaêrGVÀÄÔ
@
×£ÜVÀ gE#ÿE@¾y5ñ0WÀ¾y5ñ\F@#ß¼ 0WÀ‾&  \F@×£p=
#WÀ 6ÐiýF@¶`¶0WÀ]n ¡¢F@¶`¶0WÀ]n ¡¢F@ÿ Ce 1WÀHáz® F@IÀ7‾&"XÀØ -Ø E@Ce ©ËXÀÏ F¾ E@0 übÉ3XÀ
G@9 ã8 #XÀµ Nè
G@®Gáz
G@333333XÀΫ
G@ÈPÙaêB]À
t ]À,ùÅ>]À8‾&
_ìB@Ú@§
_ìB@i$à
¦.—?0G@
gESG@333333XÀΫ
Ws]À|ójâY¹B@i$à
Ûd¨ø\ÀØ -Ø íG@øæÕijæ\À.Ø
gESG@
Ws]À|ójâY¹B@h$à
¡²ÃÔ5XÀÿ-زG@øæÕijæ\À.Ø
Ce G@O]Àz5ñ¬h
¡²ÃÔ5XÀÿB@h$à
-زG@¼»»»»Ã\À(}Ò'}
Ce G@kâYÑH<XÀ:m Ó
O]Àz5ñ¬h B@YòG@¼»»»»Ã\À(}Ò
â%¿,]À³ÃÔåöOB
G@í0u¹ýáQÀî2
×SG@bêrû  \À¤p=
tÚ \À®Gáz
×SG@A§
tÚ \À®Gáz
G@A§
tÚ@gE@j
G@ÍÌÌÌÌ
G@ðÍ«
G@ÄÔåö
t*D@
tÚ
tÚ@gE@Æ
t*D@À7‾&
C@^M<+
@ d¨ì0
FZ¾g}\ÀG
ZÀìQ¸
yÀ_,ù
6ÐYÀÈPÙaêÊB@^M<+
YÀYÀÚ@§
ZYÀA§
ëQ¸
Z¾À§
y5ÙF@ðÍ«
À
ÊÏS F
SG@ÄÔåö
ãC@
®E@Æ ZFÀìQ¸
¾y_,ù
g}\ÀG
YÀZYÀÈPÙaêÊB@)\
ÀSG@m Ó
ÏʾSy5ÙF@E#
F®ãC@É/
E@Õåö
:ZÀ¬ßZüb
¼j\À
À?é
gE#
Âõ
YÀG@m Ó
t_,ùÅ¢F@E#
YÀ
>éóE@Õåö
Ú@§¾y5ñ:C@É/
ZB@É/
À¬ZÀ?é
ßgE#
üb
¼j\À
üb>éóE@ä8
YÀG@
Zt_,ùÅ¢F@p^M<+F\À
ÀÚ@§
è´F¾NyZC@/—?ÈP
ÀâYÑHÀßG@
D@ÿ
ã8 ZÀCe
|ójâ9F@ä8
ZYÀHáz
Àà®F
Gáz\F@p^M<+F\À
¾WyÏ®ZÚD@ÿ
WC@/—?ÈP
ã8
ÀâYÑHÀßG@Ï
ZÀ|Ce
ójâ9F@@ÈPÙa
Z YÀHáz
Àà®FWGáz\F
¾ÏÚD@
Z®À
WCt
×£ ^ÀL]n ÉF@q=
tÚ,]Àe
tÚ@Ã[À»Üþ
ttÚ@Ã\Àe
×£
tÚ@
tÚ@Ã[Àæö
]À^ÀL]n
E[À³ÃÔåö
@Ú@§
@Ϋ ©ËíÿD@A§
©ËíÿD@4
*gEs]À
©ËíÿD@§
©ËíÿD@è´
CD@ZÑHÀ7Ã[À!Ce
ÉF@¨ì0u¹±^À
F@@§
F@§ðEo^M<Ã[ÀCe
F@ZÑHÀ7c[Àe
@ΫN \À³ÃÔåöÿD@è´
Í« gEs]À]À³ÃÔåöÿD@4
©ÛD@ZÑHÀ7Ã[À!Ce
©Ë]F@
E©Ëí
@éF@¨ì0u¹±^À
xV4
F@ZÑHÀ7c[Àe
Po^M<Ã[ÀCe
]Àe
N \À³ÃÔåöÿD@}Ò'}Òk\À³ÃÔåöÿD@}Ò'}Òk\À³ÃÔåöÿD@q=
ð©ËíÿD@
Í« ]À³ÃÔåöÿD@
©ÛD@Ϋ
©Ë]F@§
©Ëí éF@4
xV4
F@M<+
Pð]Àe
gEÃ[ÀÕåö
Í«Á^Àu¹ýA
ß©ËíÿD@A§
¼ xæ\À³ÃÔåöÿD@
"E@Ϋ
0[À
G@u¹ýA
 F@M<+
gEÃ[ÀÕåö
B]À)\
ß¼ xæ\À³ÃÔåöÿD@§
"ÂõPG@u¹ýA
E@Ϋ 0[ÀgEÃ[Àî2TvhE@Ϋ
F@ øæÕüZÀ
B]Àd¨ì0u  F@G@ g
×£H\À³ÃÔåöÿD@q=
×£H\À³ÃÔåöÿD@=
×£p%\À³ÃÔåöÿD@=
^×£p%\À³ÃÔåöÿD@½
À2Tv
À
Àe :*m Ó®D@tÚ@§
;L]æC@tÚ@§
©ËíÿD@ÑHÀ7‾
ºLD@tÚ@§ \ÀL]n xV4\À³ÃÔåöÿD@½
B @ÑHÀ7‾ \À xV4©ËíbB@ÑHÀ7‾
\À³ÃÔåöÿD@°[\À °ß[Àe©ËíbB@ÑHÀ7‾
©ËíÿD@°[°\À;L]n ß[Àe ©ËíÿD@hE#
¨B@ÑHÀ7‾ ßÌ[Àe
\À;L]n ©ËíÿD@'
¨B@ÑHÀ7  ^
@@cÉ/ üB[À2Tv º
@@ |óB[Àæö*S@@ | óB[Àæö*S@@cÉ/ üB[ÀL]n @@cÉ/ üB[ÀL]n @@ gE#C[Àà@@ gE#C[Àà@@ | óB[À*;L]&A@
Y[À¹ýA
À«ªªªªjA@M<+
ÊND@<+ YøB[À)\
 Àæö*³A@M<+
ÂõpD@ZÑHÀ7£ZÀeYÀæö*³A@M<+
©Ëíÿ?@ |ó~ZÀe
YÀÿ Ce
©Ëíÿ?@
ùA@M<+
| ó~ZÀeY Àÿ©Ëíÿ?@0
Ce ùA@'übÉKZÀe
 YÀ³ÃÔåö?B@
©Ëíÿ?@0xV4ü
×£pK@¸ ëQ<`À=
×£pK@DDDDD<`À#ß¼ K@DDDDD<`À#ß¼ K@yV4ðC`ÀÃõ(\ ÚK@î2Tv ^Àò %¿XH@1u¹ýA ^ÀÝþ CeOH@1u¹ýA ^ÀÝþ
×£<_À|ójâ)I@q=
×£<_À|ójâ)I@$à Wg_À´¢ o>I@$à Wg_À´¢ o>I@¸ ëQ _ÀØ -Ø mI@¸ ëQ _ÀØ -Ø mI@ o^M<—_ÀkâYÑHxI@ o^
×£p=ÚK@<+ øz`À
×£p=ÚK@]n ¡ `Àe ©Ëí/L@]n ¡ `Àe ©Ëí/L@ÇqÇ `À gE#gL@ÇqÇ `À gE#gL@ÇqÇ¥`À >é > L@ÇqÇ¥`À >é >
M@ÍÌÌÌÌÂ`À×£p=
tÚ@—PÀ«ªªªª
M@µ NèÈ`À FO¾@7Ði
yM@lÁ¾PÀ«ªªªª
@§ lÁ PÀu¹ýAO@j O @§6Ð SÀYò %¿ K@*;L]nSÀ >é >©K@*;L]nSÀ >é >©K@:m ÓJSÀ@ÈPÙaÚK@:m Ó
SÀ |óBM@sû
SÀ |óBM@Ùaêrû SÀÀ7‾& M@Ùaêrû SÀÀ7‾& M@ Ûd¨\SÀ ÊS ãM@ Ûd¨\SÀ ÊS ãM@m Ó:]SÀh$à GN@m Ó:]S
ttÚN@m Ó
tÚN@R¸
SÀ]n
QÀyV4ðëÙQÀå
:¡uN@Öij¢
ýQÀÚ@§
uN@Ú@§
O@(}Ò'}&RÀþA
K~± pQÀ
N@R¸gE#
ÊO'@m Ó
ëÙQÀåN@Öij¢
K:~±
ýQÀÚ@§
N@ïîîîî¶QÀG
pQÀ gE#'N@\¾y5
Âõ(N@ïîîîî¶QÀG
QÀq= ¾y5 N@Ú@§
×£N@\ Âõ( QÀq=
×£N@^M<+mQÀ®GázÆM@^M<+mQÀ®GázÆM@õI ôIwQÀõI ôI M@õI ôIwQÀõI ôI M@sû
MQÀÏ F¾qM@sû
MQÀÏ F¾qM@Ï F*QÀ o^M<sM@Ï F*QÀ o^M<sM@:m ÓQÀ1u¹ýAM@:m ÓQÀ1u¹ýAM@S Ûd<QÀæö*ûL@S Ûd<QÀæö*ûL@
N@!Ce ©CPÀ¾y5ñ
N@ ôI ôPÀËS Û÷M@ ôI ôPÀËS Û÷M@ ¡²ÃÜOÀïîîîî®M@ ¡²ÃÜOÀïîîîî®M@V4ðÍÛOÀÃõ(\ M@`,ùÅ Q Àh$à H
×£ QÀ®Gáz&H@q=
×£ QÀ®Gáz&H@ ëQ¸ QÀ[°[ØG@ ëQ¸ QÀ[°[ØG@m Ó:©QÀ¾y5ñ¬ G@m Ó:©QÀ¾y5ñ¬ G@:m Ó QÀýbÉ/ ¼G@:m Ó QÀý
×£øG@õI ôI_QÀq=
×£øG@ªËí2<QÀö(\
tÚ¬TÀÇqÇq K@¬
K@A§gE#Â%H@ªËí2<QÀö(\
TÀ*;L]n7K@¬ gE#Â%H@TÀ*;L]n7K@¸
®GázQÀlÁlIH@ëQ
®Gáz
TÀ?éQÀl>éãJ@¸
ÁlIH@ÇqëQ
ÇõPÀų¢
TÀ?é >éãJ@V4
_H@ ëQ¸
ðÍUÀTÀCe
¾y5ñ¤K@B
©Ë J@V4
ÊSß
TÀ®Gáz¦I@ªËí2
tÚ@¿J@õI
TÀ®Gáz
tÚ@¿J@u¹ýA
¦I@vôI×SÀ
ºÜþèSÀ
ÆSÀ§ | ójKºÜþ
@õI ôI×SÀ
I@v ºÜþèSÀ
|ójK@—?ÈPÙÅSÀ
ºÜþ I@ >é©ËíjK@—?ÈPÙÅSÀ
>½SÀ5ñ¬h$¨I@ ©ËíjK@
>é >½SÀ5ñ¬h$¨I@¸
|ó¢SÀlÁlÁ~K@ÍÌÌÌÌÜOÀ1u¹ýA&
ëQ´SÀu¹ýA úI@¸ ë
ÕH@V4ðÍËPÀêrû
ÕH@ übÉ/öPÀQÙaêr£H@ übÉ/öPÀQÙaêr£H@@ÈPÙaÒPÀØ -Ø uH@@ÈPÙaÒPÀØ -Ø uH@áz®G©PÀ$à W H@áz®G©PÀ$à
H@¶`¶`'PÀ×£p=
H@ 6Ði#PÀÐi 60H@ 6Ði#PÀÐi 60H@PPÀ@ÈPÙaH@PPÀ@ÈPÙaH@33333{PÀ Ó:mH@33333{PÀ Ó:mH@""""" PÀõI ô
öG@ WÏ zPÀû
tÚ@{PÀ
tRG@L]n
tRG@Ò'}Ò'-PÀÚ@§
öG@ìQ¸ôIWPÀ
PôéE@<+
ôéE@§
ÀØ
àG@ìQ¸
-Ø G@L]n
WPÀàG@:m Ó
P ÀØ
øzPÀ$à
-ØFPÀ:m Ó
G W
@ß¼OF@<+
xVÜOÀQÙaêrëF@Á
G@:m Ó
øzPÀ$à
FPÀ:m Ó
WOF@V4
lG@Ò'}Ò'-PÀÚ@§
ÁÜOÀñ¬h$à;F@j
ðÍWPÀi$à WsF@V4
6ÐPÀðÍWPÀi$à
ã8 ã F@jWsF@
6ÐPÀ®Gáz4PÀ¤p=
ã8 ã F@
× F@®Gáz4PÀ¤p=
צ.#PÀr
F@rÇqÇPq
ÀïxV4
F@|ójâYIWÀcÉ/
F@rÇqPÀ xV4üOF@ójâYÑ4PÀhE#
@d¨ì0uiWÀùÅ _,ÑN@d¨ì0uiWÀùÅ
߬F@ójâYÑ4PÀhE#_,ÑN@
߬F@ ã8 ã WÀÄÔåö N@ ã8 ã WÀÄÔåö N@33
¦ L@ ¦ .—ÿVÀ
¦ L@¶`¶ÜVÀß¼ x L@¶`¶ÜVÀß¼ x L@Ø -Ø ¹VÀ)\ Âõ L@Ø -Ø ¹VÀ)\ Âõ L@ übÉ/ VÀ:m Ó L@ übÉ/ VÀ:m Ó
×£L@¹ýA ÊæUÀq=
×£L@!Ce ©ÃUÀ
¦öK@!Ce ©ÃUÀ
¦öK@ Ó:m UÀS ÛdèK@ Ó:m UÀS ÛdèK@}UÀ ÙK@}UÀ ÙK@yV4ðYUÀðÍ« gµK@yV4ðYUÀðÍ« gµK@×£p=
7UÀñ¬h$à£K@×£p=
t7UÀñ¬h$à£K@ xV4UÀhE#ߤK@/—?ÈP%PÀ—?ÈPÙéF@XÏ FFPÀ 6ÐiÃF@XÏ FFPÀ 6ÐiÃF@"""""nPÀ _,ùÅ¢F@"""""nP
tB@ _,ùÅSÀÚ@§
B@¦.—?(SÀøæÕij²A@¦.—?(SÀøæÕij²A@R¸ ë9SÀ*;L]A@R¸ ë9SÀ*;L]A@)\ Âõ\SÀ¶`¶@A@)\ Âõ\SÀ¶`¶@A@ËS Û SÀ
TÀÝþ CeG@@‾& 
TÀÝþ CeG@@½ xV46TÀ ¡²Ã
@@½ xV46TÀ ¡²Ã
@@«ªªªªRTÀ
¦. ?@
?@«ªªªªRTÀ
]TÀ0 übÉÿ>@]TÀ0 übÉÿ>@"""""ZTÀÈPÙaêr>@"""""ZTÀÈPÙaêr>@Ãõ(\ RTÀa¶`æ=@Ãõ(\ RTÀa¶`æ=@ >é
×£p=&TÀ Ó:m@<@
×£p=&TÀ Ó:m@<@ Nè´TÀDDDDD´;@ Nè´TÀDDDDD´;@ðÍ« T ÀHáz®';@ðÍ« T ÀHáz®';@a¶`TÀ¶`¶` :@a¶`TÀ¶`¶` :
TÀ
¦:@×£p=
TÀ
¦:@À7‾& TÀL]n 9@À7‾& TÀL]n 9@L]n ATÀ$à W9@L]n ATÀ$à W9@UTÀÿ Ce É9@UTÀÿ Ce É9@í0u¹ýuT
VÀfffffV>@ übÉ/
VÀfffffV>@UUUUU-VÀ¸
tÚ@{WÀ
tîVÀÒ'}Ò'½=@ÞÝÝÝÝWÀp^M<+
tîVÀÒ'}Ò'½=@Ú@§ ëQX>@UUUUU-VÀ¸
=@ÞÝÝÝÝWÀp^M<+
ëQX>@ýbÉ/
=@Yò %¿4WÀa
PVÀ ¶`¦Y>@ýbÉ/
=@Yò %¿4WÀa
PVÀ ¶`¦=@ªËí2XWÀ
Y>@ ÊS sVÀÄÔåö
F¾yÅ=@ªËí2XWÀ
9>@ ÊS s
tÚ@{WÀ
¦®=@§
¦®=@ | ój WÀ F¾y =@ |ój WÀ F¾y =@áz®GÁWÀOè´ >=@áz®GÁWÀOè´ >=@ýbÉ/ äWÀè´ NÈ<@ýbÉ/ äWÀè´ NÈ<@
×£p=2XÀkâYÑH@<@
×£p=2XÀkâYÑH@<@ìQ¸ _XÀ¦.—?Èà;@ìQ¸ _XÀ¦.—?Èà;@ o^M<_XÀ ëQ¸;@ o^M<_XÀ ëQ¸;@1u¹ýAVXÀ d¨ì0U:@1u
×£p}B@K~±ä{^À=
×£p}B@
¦.£^À*;L] ^À^M<+ÁB@*;L] ^À^M<+ÁB@2Tv z^ÀïîîîîC@2Tv z^ÀïîîîîC@
¦.£^À
îB@
¦îB@ÄÔåöÅ^Àêrû
5C@ÄÔåöÅ^Àêrû
5C@
¦.gE@d¨ì0u
.gE@S
Ûd¨ä^À
Ûd _>é

Àö(\
>iC@E@d¨ì0u
Ûd¨ä^À _>éÀö(\
>iC@
E@
6Ðiñ|^À—?ÈPÙÁC@
_ÀcÉ/ ü 6Ðiñ^À—?ÈPÙÁC@ðÍ« _ À;L]n D @ðÍ« _À;L]n D @Üd
F@  |_ÀcÉ/ ü
F@Oè´ _ À F¾y]F@Oè´ _ À F¾y]F@³ÃÔåöû^ÀìQ¸ £F@³ÃÔåöû^ÀìQ¸ £F@z5ñ¬hü^Àp^M<+êF@z5ñ¬hü^Àp^M<+êF@«
×£HJ@í0u¹ý%`À ÊS {J@í0u¹ý%`À ÊS {J@ |ój&`ÀK~±äWJ@ÄÔåöE`À |óòJ@m Ó:3`À F¾y½J@m Ó:3`À F¾y½J@:
K@ ºÜþ E`ÀÖij¢ K@sû
~`À¬
K`À gE#ÁJ@sû
>é >qK@*;L]ny`À|ójâY J@wwwwwk`À 6Ði5J@wwwwwk`À 6Ði5J@*;L] `À¹ýA Ê^J@*;L] `À¹ýA Ê^J@¿Xò
gE#ÁJ@tÚ@§
`ÀL]n ÁJ@sû
`ÀL]n ÁJ@ ôI ô `ÀPú¤OúäJ@ ôI ô `ÀPú¤OúäJ@ų¢ y`À½ xV4
K@wwwwwß_ÀL]n aI@&¿Xò ` À¦.—?ÈhI@&¿Xò ` À¦.—?ÈhI@9 ã8 ë_ÀÀ7‾& MI@9 ã8 ë_ÀÀ7‾& MI@Pú¤OúÈ_À ©Ë
I@Pú¤OúÈ_À ©Ëí
I@=
×£p¥_ÀÏ F¾ÙH@=
tÚ@?I@¬
tÚ@?I@Ô
×£p¥_ÀÏ:m §_À§
F¾ÙH@ _,ùÅz_À NgE#É_ÀÌí2TNI@é
gE#É_ÀÌí2TNI@¬ è´±H@ _,ùÅz_À N>é
è´±H@
Ú_ÀHáz
|ó^_Àm Ó
®_I@ 6ÐiÃ^À¬
:uH@ |ó^_Àm Ó
gE#IH@z5ñ¬hä^ÀV4
:uH@'  <_À`,ùÅ
ðÍ{H@/—?ÈP
WH@'  _<À?é
_À`,
¦J@ÿ Ce ý_À
`ÀM<+
¦J@V4ðÍXJ@,ùÅ _¨_Àö(\ ÂÕH@rÇq—_À&¿Xò íH@®Gáz6PÀų¢ ßN@ %¿Xò3PÀÇqÇqÔN@ ëQ¸ÕSÀ«ªªªªO@[°[TÀÝ
eN@êrû
SÀ|ójâYiN@½ xV4öPÀsû
=N@rÇqQÀÕåöJN@n ¡²#PÀÌí2T6N@¾y5ñ¬4PÀû
>N@|ójâYATÀ J@ÇqÇqdTÀùÅ _,qJ@ÇqÇqdTÀùÅ _,qJ@ò %¿XRTÀ!Ce © J@ ¦ .—×SÀ5ñ¬h$øI@ ÊS ×SÀÁlÁ
J@¿Xò
tÚÈH@\%Âõ(ÜOÀ`,ùÅ
QÀ 6ÐiËI@u¹ýA
ïH@*QÀ9
übÉ/þOÀû
ã8 ÓI@÷*;ÜOÀA§
vG@ËS ÛÿOÀK~±ä G@ | ó"PÀÌí2TæG@]n ¡"PÀé >é îG@0 übÉ¡`À®Gáz K@wwwww¥`À übÉ/ K@Öij¢ ®`À _,ùÅ
ÕC@½ xV4 RÀçÕij¢ÑC@,ùÅ _ÐRÀ33333C@ÇqÇqÐRÀrÇqÿB@Ï FâRÀ«ªªªª¢A@Üd¨ìSÀójâYÑ A@Üd¨ìSÀójâYÑ A@IÀ
× SÀÀ7‾& í@@ øæÕÄ SÀR¸ ëñ@@ 6ÐiTÀµ Nè´;@ ã8 ãTÀ»Üþ Cµ;@î2Tv
TÀPú¤Oút9@u¹ýA T ÀÇqÇq<9@u¹ýA TÀÇqÇq<9@!Ce ©/TÀè´ NØ8@!Ce ©/TÀè´ NØ8@J ôI `TÀ xV4°8@J ôI `TÀ
7UÀ8‾&  =@p^M<+²UÀ9 ã8 c>@®Gáz²UÀ×£p=
g>@tÚ@§ VÀ¹ýA Ê>>@J ôI 4VÀÝþ Ceç=@J ôI 4VÀÝþ Ceç=@ªËí2PVÀÞÝÝÝÝ>@fffffîVÀTv ºÜ =@IÀ7‾&îVÀ
]F@ øæÕQÀ½ xV4"F@¤p=
×QÀlÁl9F@ä8 ã8 QÀh$à D@lÁl¥QÀçÕij¢¹D@áz®GýQÀ øæÕÄ D@hE#ß RÀ.Ø -ØjD@hE#ß RÀ.Ø -ØjD@e ©ËíC
G@IÀ7‾&
H@¸
lUÀÍÌÌÌÌäG@
¦.A@hE#
ëQøUÀ
UÀCe
ß^À.Ø
©ËíbH@^M<+
©Ë%G@33333¿UÀΫ
6Ði
-Ø}UÀ
A@Üd¦ ¨ì ^À+
.—ßG@
ñUÀi$àÇqWkH@ðÍ«
ÇgE£F@
VÀðÍ«
øæ%H@ö(\
Âõ(\ÃUÀðÍ«
g ]ÀIÀ7‾&v@@É/
g G@Pú¤OúøUÀDDDDD´G@IÀ7‾&*VÀE#
^À+g¥F@tÚ@§
øæ%H@Ház
üb¥]ÀýbÉ/
®¥`ÀPú¤Oú4N@5ñ¬h$
¼@@ d¨ì0Ý]À
ß¼H@>é
¶``Àß¼
¶>¡@@m Ó
,VÀ xV
F¾y:Ý]ÀQÙaêr
N@5ñ¬h$ `Àß¼ xV
N@}Ò'}Ò¥`ÀâYÑHÀ/N@ÿ
¼N@¼»»»»
¼N@XÏ FB\ÀtÚ@§
\À{®GáÊN@¼»»»»
Ce\¥XÀ¹ýA
À{®GáÊN@ýbÉ/
Ê~J@0 ð[Àß¼
übÉ XÀxVôN@ýbÉ/
xV4(J@0 übÉ ð[Àß¼
XÀ xVôN@´¢
xV4(J@QÙaêrkXÀv
oâ[ÀÃõ(\ºÜþ
O@»Üþ
J@QÙaêrkXÀv
CA\ÀcÉ/ºÜ ü
]ÀÌí2T N@(}Ò'}
]ÀÌí2T
t6]À)\
L@bêrû
L@ 6Ði‾^À
N@Ú@§
Âõ
Ô^Àd¨ì0
N@Ú@§
tN@ÿ
Ú@§ýK@bêrû
Ce Ô^À
]À/—?ÈPqN@ÿ
tÚ@§ýK@æö*_À
CelÁlL]À/—?ÈPqN@¢²ÃÔåæ\À
@æö*_ÀlÁlL@*;L]*_À  |KL@
øæÕÄkN@¢²ÃÔåæ\À
*;L]*_À  |KL@*;L]*_À
øæÕÄkN@ | KL@
 |Ã
¹]À]n ¡¢N@sû
¹]À]n ¡¢N@Oè´ ]À d¨ì0ÅN@Oè´ ]À d¨ì0ÅN@QÙaêrs]À1u¹ýA¶N@;L]n ÐYÀû
6L@)\ Âõ¬YÀ aL@)\ Âõ¬YÀ aL@¬ gE#YÀ ÊS ÃL@¬ gE#YÀ ÊS ÃL@Ï F YÀ¨ì0u¹M@Ï F YÀ¨ì0u¹M
¦úZÀ
¦¶M@
¦úZÀ
¦¶M@ Âõ(\×ZÀbêrû ¬M@ Âõ(\×ZÀbêrû ¬M@5ñ¬h$´ZÀG¾y5©M@5ñ¬h$´ZÀG¾y5©M@É/ üb ZÀ9 ã8 £M@É/ üb ZÀ
×£pA[À¼»»»» M@=
×£pA[À¼»»»»
\À %¿XòN@kâYÑH
M@ øæÕd[À¹ýA Ê M@ øæÕd[À¹ýA Ê M@V4ðÍ [ÀÑHÀ7‾vM@V4ðÍ [ÀÑHÀ7‾vM@ |óª[ÀlÁlÁNM@ |
\À÷*;
N@J ôI H\À<+ ø^N@åK~±H\Àáz®GaN@ïîîîîÞYÀd¨ì0uÁJ@ÞÝÝÝÝáYÀn ¡²ÓJ@sû
¦ýXÀ2Tv
.YÀí0u¹ý
ºK@J@
*;LýXÀTv ºÜ¶J@*;LýXÀTv ºÜ¶J@8‾& ! YÀ 6Ði£J@8‾& !YÀ 6Ði£J@ß¼ xV YÀ±äK~ùJ@ß¼ xV YÀ±ä
¦êXÀ$à WWJ@
¦êXÀ$à WWJ@¾y5ñôXÀùÅ _,J@¾y5ñôXÀùÅ _,J@ñ¬h$àYÀ -Ø -XJ@ñ¬h$àYÀ -Ø -XJ@ | ój2YÀfffff^J@ | ój2Y
 WÀPú¤Oú H@û
 WÀPú¤Oú H@£ o^ÁWÀè´ N{H@£ o^ÁWÀè´ N{H@ú¤Oú¤‾WÀL]n ÙH@ú¤Oú¤‾WÀL]n ÙH@Pú¤Oú¬WÀ^M<+ùH@u¹
tv]ÀfffffîI@IÀ7‾&Â]À³ÃÔåöWJ@ ¦.—§]À ëQ¸.J@ ¦ .—§]À ëQ¸.J@‾&  Ä]ÀM<+
íI@Ú@§ XJ@ ºÜþ s]À¶`¶XI@i$
K@
tÚ@ÿOÀÕåö
¦ YÀ ¦ .—"KK@z5ñ¬h,PÀ×£p=
@À7‾& PÀbêrû TK@§
K@§
K@z5ñ¬h,PÀ×£p=
K@fffffFPÀß¼ x¶J@fffffFPÀß¼ x¶J@=
×£pePÀ
¦.K@=
K×£pePÀ
@¦.
@ ÏÛK@)\
Fd¨4PÀtÚ@§
PÀûÂõ PÀS Û4K@)\ Âõ PÀS Û4K@^M<+aPÀwwwwwK@^M<+aPÀwwwwwK@ Ûd¨4PÀtÚ@§
NK@"""""2RÀXÏ FªI@[°[°URÀJ ôI lI@[°[°URÀJ ôI lI@z5ñ¬htRÀ ÊS I@z5ñ¬htRÀ ÊS I @ÁlÁxRÀðÍ« g}I@
¦*QÀHáz®×I@
¦*QÀHáz®×I@êrû
QÀÆ _,ùÕI@""""" UÀ¿Xò %gE@¶`¶ UÀtÚ@§
E@¶`¶ UÀtÚ@§
E@'  ÄUÀ=
×£pÕD@'  ÄUÀ=
×£pÕD@ÕåöêUÀû
þD@ÕåöêUÀû
¦þ.7UÀ=
D@ìQ¸ óUÀV4ðÍCE@ìQ¸ óUÀV4ðÍCE@Ï FòUÀB ÊSgE@âYÑHÀ/TÀ
*;L-;@:m Ó6TÀùÅ _,);@
×£p½>@¢²ÃÔå6UÀè´ NÈ>@ß¼ xVHUÀ  | Ó?@2Tv ºHUÀ Nè´@@³ÃÔåößUÀS ÛlA@ÈPÙaêâUÀ %¿XòkA@¨ì0u¹ùTÀ[°[°
VÀn ¡²sB@è´ NûUÀ o^M<B@è´ NûUÀ o^M<B@"""""
VÀe
ØSÀ)\ ©ËígB@9
Âõ E@1u¹ýAÆSÀ|ójâYéE@1u¹ýAÆSÀ|ójâYéE@@ÈPÙa
E@tÚ@§
ã8 óRÀ³ÃÔåö?F@|ójâ SÀ 6ÐióE@|ójâ SÀSÀ9 6ÐióE@2Tv
ã8 óE@@ÈPÙa
º,SÀÍÌÌÌ̬E@2Tv
SÀ9 ã8 óE@1u¹ýAnSÀ
º,SÀÍÌÌÌ̬E@Ü
®GázF@1ud
×£ E@ÇqÇqøUÀq=
×£ E@ìQ¸ ïUÀYò %¿ÐE@ìQ¸ ïUÀYò %¿ÐE@Öij¢ àUÀTv ºÜF@Öij¢ àUÀTv ºÜF@ o^MøUÀ9 ã8 kF@ o^MøUÀ9
G@ øæÕ\UÀ Ûd¨
G@¢²ÃÔå6UÀ£
dH@tÚ@§ UÀØ -Øo^õF@¢²ÃÔå6UÀ£
dH@í0u¹ý±UÀtÚ@§ %H@tÚ@§ UÀØ -Øo^õF@}Ò'}Ò
%H@K~±äkUÀ
UÀ0
øG@KübÉÿF@}Ò'}Ò
~±äkUÀøG@¶U`¶À0
HUÀübÉÿF@9
6ÐiûG@¶ã8`¶HUÀ
7UÀJ6ÐiûG@4
ôI <G@9 ðÍ«1UÀÙaêrû
ã8 7UÀJ ô
UÀ Nè´)G@û
G@®Gáz
G@
VÀ?é

UÀ6Ði
E@N>é
®èGáz
´)G@
AjITÀ
TÀ8‾&
@ÏTÀ
©ËíúF@
Âõ(\ßTÀ5ñ¬h$
F F¾yýD@
6Ði®Gáz
ATÀ G@

©ËíúF@,ùÅ
Âõ(\ßTÀ5ñ¬h$
F ¾yýD@l_ÁlTATÀ¼»»»»ëD@
ÀÏ FG@e
ÆF@,ùÅ
©Ëí»TÀ³ÃÔåö
l_Á
TÀlÏATÀ¼»»»»ëD@å
FÆF@
G@e|óúSÀøæÕijzF@
©Ëí»TÀ³ÃÔåö
K~±dTÀd¨ì0uÉD@å
G|@Ü
 óúSÀøæÕijzF@
d¨ì KTÀ;L]n
~±dTÀd¨ì0uÉD@
G@Üd¨ì)T
VÀ*;L½H@Ï F
VÀ*;L½H@áz®G-VÀÑHÀ7‾ÎH@áz®G-VÀÑHÀ7‾ÎH@ų¢ V À2Tv º$I@åK~±ÈVÀm Ó:E@ |ójÖVÀn ¡²óE@4ðÍ«WÀß¼
H@¾y5ñ¬ [À×£p=
ïB@:m Óª[Àä8 ã8 B@:m Óª[Àä8 ã8 B@í0u¹ýÍ[À×£p=
B@í0u¹ýÍ[À×£p=
tÚ@
B@ \ÀªËí24A@i$à
WÏ ª[À}Ò'}Ò¿B@W \À±ä WÏ ª[À}Ò'}Ò¿B@Pú¤Oú
K~1A@£ o^ ^Àd¨ì0uqD@ [À %¿XòóB@
*;L] ^ÀÏ ¾y5ñF¾\À¿Xò
qD@yV4%?B@|ójâY}\À~±ä
ð%\À×£p= KB@|ójâY}\À~±äKB
G@E@°o^M¼]ÀýbÉ/
[°7\À'  lE@°[°7\À'  lE@¥Oú¤OZ\À5ñ¬h$XE@—?ÈPÙ¹]ÀCe ©Ë
G@¾y5ñÈZÀd¨ì0u @@é >é ÒZÀIÀ7‾&v@@‾&  (\À Âõ(\—D@×£p=
tÚ@£ZÀm Ó
7\À+
¦.ßG@§
.ßG@)\øæÕD@æö
:ÂõÔZÀ
õG@§è*´ûZÀ
õG@O ÆZÀÍÌÌÌÌÔG@O
|óÊG@)\ ÂõÔZÀ
è´ ÆZÀÍÌÌÌÌÔG@É/ übõZÀñ¬h$à»G@É/ übõZÀñ¬h$à»G@
[À»Üþ CÍG@]n ¡¾YÀM<+ C@
¦¾YÀ33333C@yV4ðÍ[À ã8 ãhF@yV4ðÍ[ÀS Ûd`F@¶`¶`ß[ÀÞÝÝÝÝ=G@E#ß¼ê[À _,ùÅRG@S ÛdìQÀ^M<+y3@bêrû ð
×£p=nZÀwwwww'?@
tFZÀ)\
×£p=nZÀwwwww'?@Ú@§
Âõ¸>@Ú@§
Âõ¸>@ è´ N+ZÀ÷*;,>@è´ N+ZÀ÷*;,>@*;L]ZÀ -Ø - =@*;L]ZÀ -Ø - =@×£p=
óYÀÌí2TF=@×£p=
óYÀÌí2TF=@*;LÅYÀ ¡²Ã=@*;LÅYÀ ¡²Ã=@ ëQ¸YÀ2Tv ª=@ ëQ¸YÀ2Tv ª=@Ï F YÀ.Ø -ØÒ=@Ï F YÀ.Ø -ØÒ=@2
YÀØ -Ø =<@×£p=
YÀØ -Ø =<@S ÛìXÀ -Ø -¨;@S ÛìXÀ -Ø -¨;@½ xV4ÚXÀêrû
;@½ xV4ÚXÀêrû
è\À
;@®GázÈXÀ¢²ÃÔå
ÊS S@@]n
S@@tÚ@§¡Â\ÀÄÔåö
:@®GázÈXÀ¢²ÃÔå
Y@@]n ¡Â\ÀÄÔåö
:@À7‾& Y¥XÀkâYÑH@:@À7‾&
@@é >é \À×£p= ¥XÀkâYÑH@:@)\ ÂõtXÀ´¢ o:@)\ ÂõtXÀ´¢
/@@é >é \À×£p=
/@@wwwwwk\À¾y5ñ@@wwwwwk\À¾y5ñ@@ xV4H\À´¢ oþ?@ xV4H\À´¢ oþ?@¦.—?È$\À | ójÒ?@¦.—?È$\À |ójÒ?@
\ÀÆ _,ù¥?@sû
\ÀÆ _,ù¥?@(}Ò'}Þ[À^M<+y?@(}Ò'}Þ[À^M<+y?@*;L]º[À»Üþ CU?@*;L]º[À»Üþ CU?@*;L [À»Üþ CU?@
*;L [À»Ü

WÀ ¡²Ã´.@û

tÚ@ËVÀ
WÀ ¡²Ã´.@Ò'}Ò'õVÀų¢
6Ði0@—?ÈPÙ¹VÀ
@§  |Ï/@Ò'}Ò'õVÀų¢
Ó0@—?ÈPÙ¹VÀ  |Ó0@ïîîîî¾VÀ
Ï/@§ 6Ði 1@ïîîîî¾VÀ 6Ði 1@@ÈPÙa VÀ½ xV4Ò1@@ÈPÙa
×£p=RVÀ
¦-@
×£p=RVÀ
¦-@ ÊS sVÀ Nè´!,@ ÊS sVÀ Nè´!,@ ã8 ã|VÀ F¾yõ+@/—?ÈP UÀ+ øæõ+@¥Oú¤OZUÀêrû
U,@¥Oú¤OZUÀêrû
U,@¦.—?ÈHUÀ[°[°%-@¦.—?ÈHUÀ[°[°%-@ÿ Ce %UÀq=
×£P-@ÿ Ce %UÀq=
×£P-@QÙaêróTÀ'   -@QÙaêróTÀ'   -@ö(\ ÂÍTÀK~±ä÷-@S ÛdìQÀ^M<+y3@bêrû ðQÀ{®Gáê2@bêrû ðQÀ{®Gáê2
×£p=nZÀwwwww'?@
tFZÀ)\
×£p=nZÀwwwww'?@Ú@§
Âõ¸>@Ú@§
Âõ¸>@ è´ N+ZÀ÷*;,>@è´ N+ZÀ÷*;,>@*;L]ZÀ -Ø - =@*;L]ZÀ -Ø - =@×£p=
óYÀÌí2TF=@×£p=
óYÀÌí2TF=@*;LÅYÀ ¡²Ã=@*;LÅYÀ ¡²Ã=@ ëQ¸YÀ2Tv ª=@ ëQ¸YÀ2Tv ª=@Ï F YÀ.Ø -ØÒ=@Ï F YÀ.Ø -ØÒ=@2
YÀØ -Ø =<@×£p=
YÀØ -Ø =<@S ÛìXÀ -Ø -¨;@S ÛìXÀ -Ø -¨;@½ xV4ÚXÀêrû
;@½ xV4ÚXÀêrû
è\À
;@®GázÈXÀ¢²ÃÔå
ÊS S@@]n
S@@tÚ@§¡Â\ÀÄÔåö
:@®GázÈXÀ¢²ÃÔå
Y@@]n ¡Â\ÀÄÔåö
:@À7‾& Y¥XÀkâYÑH@:@À7‾&
@@é >é \À×£p= ¥XÀkâYÑH@:@)\ ÂõtXÀ´¢ o:@)\ ÂõtXÀ´¢
/@@é >é \À×£p=
/@@wwwwwk\À¾y5ñ@@wwwwwk\À¾y5ñ@@ xV4H\À´¢ oþ?@ xV4H\À´¢ oþ?@¦.—?È$\À | ójÒ?@¦.—?È$\À |ójÒ?@
\ÀÆ _,ù¥?@sû
\ÀÆ _,ù¥?@(}Ò'}Þ[À^M<+y?@(}Ò'}Þ[À^M<+y?@*;L]º[À»Üþ CU?@*;L]º[À»Üþ CU?@*;L [À»Üþ CU?@
*;L [À»Ü

WÀ ¡²Ã´.@û

tÚ@ËVÀ
WÀ ¡²Ã´.@Ò'}Ò'õVÀų¢
6Ði0@—?ÈPÙ¹VÀ
@§  |Ï/@Ò'}Ò'õVÀų¢
Ó0@—?ÈPÙ¹VÀ  |Ó0@ïîîîî¾VÀ
Ï/@§ 6Ði 1@ïîîîî¾VÀ 6Ði 1@@ÈPÙa VÀ½ xV4Ò1@@ÈPÙa
×£p=RVÀ
¦-@
×£p=RVÀ
¦-@ ÊS sVÀ Nè´!,@ ÊS sVÀ Nè´!,@ ã8 ã|VÀ F¾yõ+@/—?ÈP UÀ+ øæõ+@¥Oú¤OZUÀêrû
U,@¥Oú¤OZUÀêrû
U,@¦.—?ÈHUÀ[°[°%-@¦.—?ÈHUÀ[°[°%-@ÿ Ce %UÀq=
×£P-@ÿ Ce %UÀq=
×£P-@QÙaêróTÀ'   -@QÙaêróTÀ'   -@ö(\ ÂÍTÀK~±ä÷-@ä8 ã8JXÀ ã8 ãÈ9@*;L]n_XÀlÁlÁ9@*;L]n_XÀlÁlÁ9
7@QÙaêroXÀ:m Ó
47@L]n
@a
@
¦.
2Tv
¶X`
À¦.—?È03@
ÞUÀtÚ@§
æUÀ
uXÀhE#
[°[@3@
ß|6@L]n
2o^MäWÀÝþ
Tv æUÀ[uXÀhE#
°Ce—2@
[@3@ß|6@æö
|óîUÀJ
o^MäWÀÝþ
*kXÀ;L]n
ôI ¤2@
Ce—2@G
|ð5@æö
 óîUÀJ
¾y5ÁWÀTv
*kXÀ;L]n
ôI ¤2@XºÜÏð5@ZÑHÀ7_XÀ
2@G
FVÀÄÔåö
¾y5ÁWÀTv
2@XϺÜþ
ºÜ
FVÀÄÔåö
c5@ZÑHÀ7_XÀ
2@j 6Ð2@¢²ÃÔå
WÀðÍ«VºÜþ
g%2@j
À c5
o^
VÀ¨ì0u¹]/@"""""
VÀ¨ì0u¹]/@.Ø -ØæUÀΫ gEÃ/@.Ø -ØæUÀΫ gEÃ/@¼»»»»ÃUÀe ©Ëí /@¼»»»»ÃUÀe ©Ëí /@  UÀùÅ _, /@
×CYÀe ©ËíO1@¤p=
7×CYÀe
@ Nè´©ËíO1@
@L]n ZÀtÚ@§
ZÀr Çq|7@L]n
ófYÀh$àZÀr
§1@Çq| ófYÀh$à
7@Yò %¿ÐZÀ§1@øæÕÄ#8@Yò
|ój YÀ |óê1@
%¿ÐZÀ| ój
øæÕÄ#8@ÿ
YÀ |óê1@»Üþ
Ce éZÀh$à
CµYÀ >éw8@ÿ >2@»Üþ
Ce éZÀh$à
CµYÀ >
[À ©Ëí9@ÇqÇq
tZ\À¸
[À ©ËíëQH?@çÕij¢}\Àbêrû
9@Üd¨ì0[À?é >é 9@Üd¨ì0[À?é
ëQH?@Ú@§ ?@çÕij¢}\Àbêrû
>é 9@DDDDD\[À^M<+
?@q= É9@DDDDD\[À^M<+É9@ |óR[À®Gáz :@ | óR[À®Gáz
×£ \À9 ã8 ³?@q=
×£ \À9 ã8 ³?@û
²\ÀâYÑHÀ÷>@û
²\ÀâYÑHÀ÷>@Ò'}Ò'©\ÀIÀ7‾&.>@Ò'}Ò'©\ÀIÀ7‾&.>@ ¡²Ã \ÀÖij¢  =@ ¡²Ã \ÀÖij¢  =@~±äKb\ÀcÉ/ ü=@~
<@Ház®G\À×£p=
<@<+ ø.\À¥Oú¤Oú;@<+ ø.\À¥Oú¤Oú;@ų¢ \Àsû
m;@ų¢ \Àsû
m;@h$à û[À¦.—?Èà:@h$à û[À¦.—?Èà:@»Üþ CÙ[Àµ NèT:@»Üþ CÙ[Àµ NèT:@ÇqÇÍ[Àbêrû ¬9@ÇqÇÍ[Àbêrû
¦þ:@&¿Xò }\À
t¢\À¹ýA
¦þ:@Ú@§Ên;@
Ên;@Ú@§
*;L] \ÀÁlÁü;@*;L] \ÀÁlÁü;@õI ôI \À¨ì0u¹<@õI ôI \À¨ì0u¹<@XÏ F²\ÀìQ¸ ;=@XÏ F²\À
]À=
×£pÝ>@ übÉ/
]À=
×£pÝ>@¤p=
×]Àn ¡²S?@¤p=
×]Àn ¡²S?@Ø -Ø -]Àa¶`æ?@Ø -Ø -]Àa¶`æ?@ Ûd¨D]Àè´ N0@@ Ûd¨D]Àè´ N0@@#ß¼ P]ÀÏ Fv@@Ãõ(\ WÀÐi
×WWÀ 9/@¤p=
×WWÀ 9/@®Gáz4WÀÙaêrûC.@®Gáz4WÀÙaêrûC.@ F¾y1WÀ (.@®Gáz4PÀu¹ýA "@@Öij¢ ,PÀðÍ« /@@*;L]
SÀö(\ Âõ8@Ï F
SÀö(\ Âõ8@®Gáz(SÀ
¦n9@®Gáz(SÀ
XPÀ^M<+
¦n9@ú¤Oú¤/SÀøæÕij
)2@ _,ùÅ:PÀ Âõ(\_2@
9@7Ði nSÀj
_,ùÅ:PÀ
6Ðé:@Âõ(\_2@À7‾&
o^M<KSÀ)\ Âõ
P ÀR¸
:@ ë±2@Ï
o^M<KSÀ)\
F¾ýQÀu¹ýA
Âõ :@ùÅ
º3@ò
_,qSÀøæÕijâ:@µ
%¿XÚQÀËS Ûß3@ò
Nè´SÀ¼
%¿X
—QÀ×£p=
ç3@×£p=
—QÀ×£p=
ç3@ %¿Xò QÀ/—?ÈP©3@ %¿Xò QÀ/—?ÈP©3@Yò %¿pQÀ¼»»»»K3@Yò %¿pQÀ¼»»»»K3@sû
MQÀ&¿Xò 3@sû
MQÀ&¿Xò 3@(}Ò'}*QÀ¤p=
×ã2@(}Ò'}*QÀ¤p=
×ã2@"""""NQÀøæÕijr2@"""""NQÀøæÕijr2@8‾& qQÀÆ _,ùu2@8‾& q QÀÆ _,ùu2@ÇqÇq QÀ°[°;2@ÇqÇq QÀ°[°;2
¦.2@e ©ËíCRÀ
¦.2@¬ gE#uRÀójâYÑ2@¬ gE#uRÀójâYÑ2@êrû
URÀCe ©Ë}2@êrû
URÀCe ©Ë}2@í0u¹ý1RÀ¹ýA Ên2@í0u¹ý1RÀ¹ýA Ên2@1u¹ýA2RÀΫ gE33@1u¹ýA2RÀΫ gE33@ÿ Ce URÀZÑHÀ7 3@
×'SÀm Ó:M5@¤p=
×'SÀm Ó
ØSÀÐi
Ä6@¼»»»»ãSÀS
tÚà3@8‾&
tÚ@÷3@Çq
tÚà3@Õåö
tÚ@÷3@8‾&
6:M5@ójâYÑ
5@ýbÉ/
Çâq(SÀ"""""ò3@Çq
RÀA§
SSˤ
 À§ÛÄØSÀ
6@\
SÀK~±ä
Âõ(5SÀCe
Ç@ójâYÑ
q(SÀ"""""ò3@wwwwwKSÀ
©Ë}6@
SÀK~±äübÉ/nSÀX
5@ ¡²ÃÔáRÀ½
Ï F6-Ø@xV4²4@
-è3@wwwwwKSÀ
übÉ/nSÀX
¡²ÃÔáRÀ½
Ï F6@u¹ýA
-ØxV4²4@«ªªªª¾RÀ
-è3@
nSÀçÕij¢ñ5@¨ì0u¹
ÊS OSÀò %¿X
±4@«ªªªª¾RÀ
4@SÀí0u¹ý
ÊS OSÀò
±4@
tÚô[À¥Oú¤Oj8@
tÚÈXÀ
±ºÒ<í|¼ýé
tÚ@<@
¦5@M<+
¦.—?
>é\TÀ
>Õ\ÀM<+
:@ÍÌÌÌÌ\XÀ
/f¼ù¿Ý
ôI[°[ô©5@u¹ýA
¼[Àå
kåÝ#ü^}hëË
¾Ky5ñ<9@³ÃÔåögXÀïîîîî®8@³ÃÔåögXÀïîîîî®8@u¹ýA
~±Ô2@ Ó
<ZTÀj
@ xV4
:m¼[À/—?ÈP¹2@"""""²\ÀL]n
6Щ5@\
í\ÀÇq
I>©ÇUq<9@É/
Âõ(ÀTÀüb
wùÅ«Ðþ®}Gè?WÀ³
¶`¶ð5@‾&
\À‾6Ði
_,s
 ÀTÀK~±ä
=t:ÉþF
Q2@p^M<+²\À
9@G¾«y5ñ[Àa
5@3ä>2º
lÁnXÀøæÕij"8@u¹ýA
l¶>é
ZÀýbÉ/
`fDî×
v8@A§
>Y2@IKæ6¤
L5@d¨ì0u
o^M<£ZÀ33333³5@hE
I I$
nXÀøæÕij"8@
ZÀ]n
R I$ ¤¡R5I
Ïñgõc Í-»
ÿÀØHûÞºÄ  « ¤6$> þ*3 ÕÑÙ¶ÔÿI®oäY ÿ ¬uÉ¢ü[ÛÚ\ö8ü #ñ^¦ <rî¼sGé>?gÔ/õñ ËGò.‾þüàªÛõOëUB_Òî?Ô
ÿñ[õK,J«q{Óapÿ6ïQ¿pXyâoi'*À TÀÀb@¤p=
tbXÀ
×OXÀ)\¶`¶Âõ
ð8@Ú@§
ð8@âYÑHÀkXÀÿ
9@Ú@§ Ce Y8@âYÑHÀkXÀÿ Ce Y8@@ÈPÙanXÀcÉ/ üÂ7@@ÈPÙanXÀcÉ/ üÂ7@#ß¼ pXÀÁlÁ,7@#ß¼
þWÀïîîîî3@û
|VÀ4
þWÀïîîîî
ðÍ«95@u¹ýA
Í«95@tÚ@§
3@ Ûd¨ôWÀÝþ
VVÀ ëQ¸Ce—2@
U5@u¹ýA
Ûd¨ôWÀÝþ
VVÀ ëQ¸
Ce—2@
U5@ýbÉ/
ëQ¸ÎWÀ
0VÀ ¦F¾.—o5@ýbÉ/
yµ2@ ëQ¸ÎWÀ
0VÀF¦¾.—o5@þA
yµ2@m Ó:©WÀ´¢
ÊVÀ|ójâoN2@m Ó
5@þA ÊV:À
©WÀ|ó
×£p=
3@ ¡²ÃÔåUÀ
×£p=
VÀçÕij¢á1@
VÀçÕij¢á1@ÄÔåö
3@ Âõ(\VÀV4ðÍ«2@ Âõ(\VÀV4ðÍ«2@ÄÔåö
¦VÀ{®GáJ1@
¦VÀ{®GáJ1@ o^M<VÀ®Gáz´0@ o^M<VÀ®Gáz´0@¹ýA Ê2VÀyV4ð0@¹ýA Ê2VÀyV4ð0@ o^M<VÀ Nè´a/@ o^M<VÀ Nè
×£tUÀlÁl0@q=
×£tUÀlÁl0@<+ øNUÀ£ o^Í/@<+ øNUÀ£ o^Í/@áz®G)UÀΫ gEÃ/@áz®G)UÀΫ gEÃ/@Ház®UÀ0 übÉ‾.@Ház
TÀ:m Ó @ ×£p=
TÀ¦.÷
:m Ó@lÁ
:m Ó
l@ Á:TÀïîîîî.
:m Ó
"TÀ"TÀ @lÁlÁ:TÀïîîîî.@|ójâYMTÀrÇq @|ójâYMTÀrÇq @ >é >mTÀ Nè´A @ >é >mTÀ Nè´A @ÈP
@:m Ó TÀ ºÜþ c"@Ò'}Ò'mTÀIÀ7‾&þ!@Ò'}Ò'mTÀIÀ7‾&þ!@ Âõ(\GTÀ¸ ëQ !@ Âõ(\GTÀ¸ ëQ !@j 6Ð!TÀ$à W/
µ"@ øæÕÄUÀêrû
µ"@=
×£p)UÀYò %¿ #@=
tÚ /@í0u¹ýeXÀ
t×£p)UÀYò
tÚ /@Çq
UÀ 6Ðic'@
6Ðic'@Ú@§
Çq@XÀA§
%¿ gE#
#@æö
:m Óæ/@í0u¹ýeXÀ
«UÀkâYÑH
*OUÀÏ F(¾@y#@æö
gE#
:m Óæ/@
«*UÀkâYÑH
OUÀÏ FÂõ(\
¾y#@"""""vUÀd¨ì0uy$@"""""vUÀd¨ì0uy$@
(@\ XÀ°
Âõ(ÀUÀyV4
[°;0@ Âõ(\
ð(@\XÀ° Âõ(ÀUÀyV4
[°;0@ÄÔåö ð(@
±XÀtÚ@§åUÀ
%¿Xò 0@ÄÔåötUÀΫ±gEã%@
%¿Xò«)@XÀtÚ@§åUÀ
%¿Xò
×£p=*3@çÕij¢)ZÀ
tÚ@OZÀ^M<+
×£p=*3@§
¦.—ZÀDDDDDÄ7@
©3@ùÅ
3@§ xV4 _,eZÀÇq
ÀZÀí0u¹ýñ7@
Çq<4@ùÅxV4 _,eZÀÇq
ÀZÀí0u¹ýñ7@#
Çq<4@Ï ßF¾¼]ZÀcÉ/
àZÀæö*üÒ4@Ï
[8@#ß¼FàZÀæö
¾]ZÀcÉ/ *[8@üÒ4@ZÑHÀ7OZÀS
| ój[ÀÐi 6ð8@Û|ój5@ZÑHÀ
[ÀÐi
×£pq[À ëQ¸µ:@=
h\À
×£pq[À
|ójâi?@¤p=
ójâi?@tÚ@§
ëQ¸µ:@DDDDD|[À»Üþ C;@DDDDD|[À»Üþ C;@+ øæ¡[À gE#_;@+ øæ¡[À gE#_;@S Ûd¼[À.Ø -Øâ;@
× \À´¢ o~?@¤p=
Ä7@Ô
=@d¨ì0uE\À³ÃÔåöw<@d¨ì0uE\À³ÃÔåöw<@$à
×=@Ce
Ä7@]n
\À´¢
:m Ç[ÀÝþ
©Ëa\ÀÞÝÝÝÝ
¡ª[ÀtÚ@§
o~?@±äCe'8@Ô
K~©\À:m Ç[ÀÝþ
6ÐiÃ?@±äCe'8@
K~©\À d¨ì0í[À'
6ÐiÃ?@Ýþ
W/\ÀlÁlCe—\ÀS
 á;@$à
 8@ d¨ì0í[À'
WÛ/d\À
h?@Ýþ
lÁlá;@Á
 Ce—\ÀS
 8@ÑHÀ7‾
lÁ\À2ÛdTv
h?@J;@Á
¬\Àl©ËíÒ>@
Á\À2Tv¬\À
J;@©ËíÒ>@|
-Ø -ø[
\ÀçÕij¢ñ8@ÑHÀ7‾
\ÀçÕij¢ñ8@ o^M<\ÀâYÑHÀ 9@ o^M<\ÀâYÑHÀ 9@
×£p=\À ¦ .—:@
×£p=\À ¦ .—:@#ß¼ 8\ÀÙaêrû :@#ß¼ 8\ÀÙaêrû :@ä8 ã8^\À&¿Xò Õ:@ä8 ã8^\À&¿Xò Õ:@}Ò'}Ò \À'  
;@}Ò'}Ò \À'  
;@çÕij¢©\À ¦ .— ;@çÕij¢©\À ¦ .— ;@B ÊS \À |ójâ;@B ÊS \À | ójâ;@¦.—? \Àj 6Ðy<@¦.—? \Àj 6Ðy<@¦.—
I]À øæÕÄK@@z5ñ¬h WÀIÀ7‾&0@:m Ó WÀØ -Ø 0 @:m Ó WÀØ -Ø 0@Ï F^WÀL]n a/@Ï F^WÀL]n a/@¸ ëQ8
¦6@.ÏRÀ5ñ¬h$
ºÜþ ÏRÀâYÑHÀw7@
7@Üd¨ìàRÀ¶`¶`[8@Ò'}Ò'ÝRÀu¹ýA Z8@Pú¤OúôRÀè´ N 7@ ã8 ãôRÀL]n 7@[°[°eSÀ¶`¶08@[°[
 PÀ*;L}2@û
 PÀ*;L}2@ªËí2ÀPÀÑHÀ7‾ö1@[°[°)PÀ‾&  Ä1@Pú¤Oú(PÀR¸ ëq2@ xV4XOÀ,ùÅ _L1@÷*;dOÀìQ¸ K1@øæÕijÚNÀÖÄ
ý/@ |ójÚNÀsû
ý/@´¢ o¾NÀe ©Ëí/@´¢ o¾NÀe ©Ëí/@fffff NÀE#ß¼º-@fffff NÀE#ß¼º-@wwwww NÀåK~±D-@»Üþ CíQÀJ ôI
×£p2@¸ ëQ|QÀq=
×£p2@IÀ7‾&¢QÀå
tÚ2@33333
@|ójâYíQÀA§
RÀ^M<+K9~±42@IÀ7‾&¢QÀå
2@33333RÀ^M<+9K2@
~±42@e
¶`¶8RÀªËí2$2@
©ËíÏQÀG¾y5á1@e
¶`¶8RÀªËí2$2@ä8
©ËíÏQÀG¾y5á1@|ójâYíQÀA§
ã8^RÀ@2@ä8 ã8^RÀ@2@ %¿Xò RÀðÍ«
2@[°[°]RÀêrû
2@æö*+RÀ ã8 ãx2@æö*+RÀ ã8 ãx2@Öij¢ 4RÀ`,ùÅ 3@Öij¢ 4RÀ`,ùÅ 3@bêrû 8RÀ -Ø - 3@bêrû 8RÀ -Ø -
1QÀß¼ x&2@Öij¢ 8RÀS ÛdØ2@J ôI 8RÀE#ß¼º2@}Ò'}ÒGTÀu¹ýA Z3@0 übÉGTÀ÷*;L3@B ÊS SÀ33333s2@j 6Ð]S
-7@¨ì0u¹ TÀsû
¦-7@¦.—?ÈlTÀójâYÑ(7@¦.—?ÈlTÀójâYÑ(7@
.SSÀ¾y5ñ<4@Ï
y5ñ<4@ F¾eSÀÐi 6°4@Ï F¾eSÀÐi 6°4@å
6ÐiGTÀî2Tv
K~± SÀÔ
7@ :6ÐiGTÀî2Tv
m Ó4@åK~±7@SÀÔtÚ@§!TÀ2Tv
:m Ó4@v ºÜþ¤SÀ4
ºü6@tÚ@§!TÀ2Tv
ðÍ«i5@v ºÜþ¤S
ºü6@
× 6@#ß¼ ¸TÀ¤p=
צ.§6@
6@ übÉ/ÞTÀ8‾&
_,ùÅÖSÀ ºÜþ
-6@£6@ìQ¸
übÉ/ÞTÀ8‾&
SÀm Ó
- 6@e
:m6@z5ñ¬htSÀkâYÑH
©ËíUÀÒ'}Ò'í5@e6@à©ËíWÏUÖSÀ
ÀÒ'}Ò'í5@ÿ
¶`¶ 5@lÁCe
lÁÖSÀS
)UÀu¹ýA
Ûd5@ÍÌÌÌ̸TÀ¹ýA
ê5@ _,ùÅÖSÀ Êî
¦ ZÀ Nè´ 5@7Ði ZÀ2Tv ºl5@û
tÚz[À°
:@ðÍ«
[°[8@{
Ç[ÀÏ®Gáz[À¼»»»»[8@¶`
Fþ9@ÈPÙaê\À o^M<=@}Ò'}Ò
¶`£[ÀÇqÇñ8@\À¿Xò
6Ði©%=@}Ò'}Ò
[Àv ºÜþð8@n
\À¿Xò¡²Ç[ÀA§
%=@åK~±8\À$à W‾<@*;L]^\À ôI ô =@XÏ
×£p=
<@ 6ÐiÏ\ÀTv ºÜ^<@\ Âõ(
\À¬
¦.ûUÀ¼»»»»K1@
gE#ñ8@{®Gáî[À«ªªªªZ8@^M<+
K~±äûUÀ %¿XòK1@Ði íVÀM<+
6¼UÀCe ©Ë ¨2@^M<+
0@@ÈPÙaíVÀS
UÀeÛ©Ëí_0@çÕij¢åUÀ°
d¸2@ÀUÀçÕij¢A4@[K°
~±ä¿UÀ.Ø
*@Ce ©ËåUÀ
-Ør4@è´ N *@UUU
tÚHSÀõI
×cXÀ±äK~ñ8@À7‾&
ôI@A§-Ø -XSÀ
eXÀyV4
¾y5ñl
ðM9@u¹ýA
@ -Ø -XSÀ
VVÀ!Ce
¾y5ñl@©ë.@ÈPÙaê>VÀïîîîî
æö*WSÀ4ðÍ«É@æö*WSÀ4
/@1u¹ýA
ðÍ«É@UÀ{
sû ®Gáz(@XÏ F UÀÕåöê(@@ÈPÙab
aSÀ¶`¶ @sû
tz$@æö
tz$@»Üþ
aSÀ¶`*¶çRÀÚ@§
CÍRÀû
@z5ñ¬h\SÀQÙaêr{@¾y5ñ¬SÀ*;L"@ ôRÀú¤Oú¤Ï"@ ôRÀú¤Oú¤Ï"@ übÉ/æRÀ Ûd¨L#@ übÉ/æRÀ
¦%@»Üþ CÍRÀû
¦%@ä8 ã8 RÀPú¤Oú¤%@ä8 ã8 RÀPú¤Oú¤%@Ház® RÀ ©Ëí²&@Ház® RÀ ©Ëí²&@Õåö^RÀìQ¸ &@Õåö^RÀìQ¸ &@ª
RÀí0u¹ý(@¸ ëQ
RÀí0u¹ý(@)\ ÂõìQÀ¦.—?è(@)\ ÂõìQÀ¦.—?è(@j 6ÐÉQÀ ëQ¸þ'@'  \SÀÑ@4ðÍ«eSÀ¶`¶`K@Ò'}Ò'µSÀB ÊS ö?Tv
×£pÍ?ÑHÀ7‾TÀq=
ô×£pÍ?Tv
À`,ùÅ
Æ _,ù1TÀtÚ@§
TÀî2Tv
ºÜTÀî2Tv
À `,ùÅ
Ö¿Tv
TÀî2Tv
ºÜTÀî2Tv
À lÁlÖ¿p^M<+6TÀ7Ði
ÁTÀ´¢ o^ 6î¿p^M<+6TÀ7Ði 6î¿#ß¼ 4TÀ?é >é ø¿#ß¼ 4TÀ?é >é
ÀlÁlÁTÀ´¢ o^
À|ójâ!TÀà WÏ
À|ójâ!TÀà WÏ
À³ÃÔåö7TÀêrû
À³ÃÔåö7TÀêrû
Àµ NèTTÀ"""""âÀµ NèTTÀ"""""âÀV4ðÍGTÀDDDDDDÀV4ðÍGTÀDDDDDDÀ9 ã8 GTÀ 6Ði]À9 ã8 GTÀ 6Ði]À øæÕ
×£p=j)Àÿ Ce )SÀ
×£p=j)ÀØ -Ø SÀ7Ði *ÀØ -Ø S À7Ði *À/—?ÈPSÀ[°[°Å+À/—?ÈPSÀ[°[°Å+À×£p=
ÿRÀçÕij¢ñ,À×£p=
ÿRÀçÕij¢ñ,ÀÖij¢ ôRÀ#ß¼ x-ÀÖij¢ ôRÀ#ß¼ x-À ºÜþ ÏRÀ Ó:m .À ºÜþ ÏRÀ Ó:m .À©RÀ[°[P/À©RÀ[°[P/ÀHá
×£ÀHÀè´ N RÀq=
×£ÀHÀ?é
¦.JÀî2Tv8RÀÈPÙaêJJÀî2Tv8RÀÈPÙaêJJÀX
.JÀÞÝÝÝÝMRÀ
>é RÀÝþ CeIÀ?é >é RÀÝþ CeIÀ ÏRÀÄÔåö
FRÀòy%¿XBJÀX
IÀ RÀÄÔåö
Ï FyIÀΫ
RÀò %¿XBJÀ
gE RÀK~±ä 8RÀ¨ì0u¹
IÀΫ gE RÀK~±ä
JÀ IÀ1u¹ýA^
8RÀ¨ì0u
×£puJÀ ëQ¸íQÀ=
×£puJÀ¼»»»»RÀ ¡²ÃÔ¥JÀ¼»»»»RÀ ¡²ÃÔ¥JÀ¹ýA ÊRÀOè´ ÆJÀ¹ýA ÊRÀOè´ ÆJÀ¶`¶ìQÀ ¦ .—çJÀ¶`¶ìQÀ ¦.—çJÀæ
»QÀ2Tv j;À×£p=
»QÀ2Tv j;ÀåK~±ÈQÀG¾y5<ÀåK~±ÈQÀG¾y5<Àú¤Oú¤ÓQÀwwwww <Àú¤Oú¤ÓQÀwwwww <À9 ã8 ßQÀtÚ@§-=À9 ã8 ßQÀ
¦êQÀG¾y5ñ>À
¦êQÀG¾y5ñ>À[°[äQÀójâYÑ ?À[°[äQÀójâYÑ ?ÀÏ F¾áQÀrÇq@ÀÏ F¾áQÀrÇq@À1u¹ýAÞQÀE#ß¼Z@À1u¹ýAÞQÀE#ß¼
IÀ
QÀÀ7‾&
|ó
IÀi$à
QÀÀ7‾&WïPÀçÕij¢áHÀi$à WïPÀçÕij¢áHÀÀ7‾& åPÀ=
×£p HÀÀ7‾& åPÀ=
×£p HÀ'  ¼PÀQÙaêrKHÀ'  ¼ PÀQÙaêrKHÀXÏ F PÀn ¡²+HÀXÏ F PÀn ¡²+HÀ¾y5ñtPÀêrû
õGÀ¾y5ñtPÀêrû
õGÀ øæÕtPÀ o^M GÀ øæÕtPÀ o^M GÀE#ß¼ PÀ xV4 GÀE#ß¼ PÀ xV4 GÀ"""""ÂPÀ/—?ÈPiGÀ"""""ÂPÀ/
}CÀ¥Oú¤OÚNÀsû
}CÀa¶` NÀðÍ« CÀa¶` NÀðÍ« CÀ!Ce ©CNÀ:m ÓvCÀ!Ce ©CNÀ:m ÓvCÀS ÛdøMÀ ëQ¸mCÀS ÛdøMÀ ëQ¸mCÀ ëQ
_CÀ ëQ¸MÀ×£p=
_CÀé >é ^MÀΫ gEKCÀé >é ^MÀΫ gEKCÀ®GázMÀkâYÑH8CÀ®GázMÀkâYÑH8CÀUUUUUÅLÀ Âõ(\ÿBÀUUUUUÅLÀ Âõ(
×£p LÀö(\ ÂBÀ=
×£p LÀö(\ ÂBÀªËí2¤LÀà WÏÒAÀªËí2¤LÀà WÏÒAÀ  | ËLÀójâYÑ AÀ  |ËLÀójâYÑ AÀTv ºÜMÀ Âõ(\_AÀTv ºÜMÀ
¥@À ¡²Ã4MÀêrû
¥@ÀÍÌÌÌÌ4MÀ
¼JÀXÏ Fê@ÀYò
Fê@ÀtÚ@§
lÁ%¿pJÀ
lñ@ÀÍÌÌÌÌ4MÀ
gE#‾@ÀYò
lÁlñ@Àä8
%¿pJÀ gE#
ã8MÀUUUUU
‾@ÀÖij¢AÀä8
8JÀ|ã8
ójâY@ÀÖij¢
MÀUUUUUAÀ(}Ò'}ÊLÀÐi
8JÀ|ójâY@Àµ68AÀ(}Ò'}ÊLÀÐi
NèJÀÑHÀ7‾@Àµ N68AÀ
èJÀÑHÂ
 ?À5ñ¬h$JÀû
tÚ@OHÀ*;L]nÿ;ÀÕåö
tÚ@OHÀ*;L]nÿ;À§
 ?À&¿Xò ½IÀ¶`¶ð>À&¿Xò
JHÀâYÑHÀg;ÀÕåö
½IÀ¶`¶ð>ÀPú¤Oú
JHÀâYÑHÀg;ÀÌí2TNHÀøæÕijÒ:ÀÌí2TNHÀøæÕijÒ:ÀUUUUUUHÀ¼»»»»;:ÀUUU
IÀ¶`¶`[>ÀPú¤Oú IÀ¶`¶`[>À$à W IÀ?é >é?À$à W IÀ?é >é?Àl
×£ CÀhE#ß.Àq=
×£ CÀhE#ß.Àà WÏ CÀ xV4ð,Àà WÏ CÀ xV4ð,À)\ Âõ CÀΫ gEÃ+À)\ Âõ CÀΫ gEÃ+Àè´ N{CÀÌí2T *Àè´ N{C
×£ØBÀæö*;(Àq=
×£ØBÀæö

'À}Ò'}Ò
%¿Xò³BÀyV4
*;(À
BÀ(}Ò'}Ò%À}Ò'}Ò
%¿Xò³BÀyV4
ð ð BÀ(}Ò'}Ò%ÀýbÉ/ 4BÀáz®G%ÀýbÉ/ 4BÀáz®G%Àß¼ xV$BÀªËí2´$Àß¼ xV$BÀªËí2´$
×£p=JÀ®GázvAÀ
×£p=JÀm Ó: AÀïîîîîîÀm Ó: AÀïîîîîîÀ1u¹ýA AÀ‾&  DÀ1u¹ýA AÀ‾&  DÀp^M<+êAÀQÀp^M<+êAÀQÀ»Üþ C5BÀ
À|ójâaCÀ WÏ Æ
ÀUUUUUCÀ¬ gE# ÀUUUUUCÀ¬ gE# Àv ºÜþøCÀXÏ FÀv ºÜþøCÀXÏ FÀ'  DDÀ~±äK~À'  DDÀ~±äK~ÀB ÊS DÀP
×£p=Z4ÀÍÌÌÌÌ$DÀ
tä¿ïîîîî
DIÀ¿Xò
tÚ@§ö?
tÚ@§ö?5ñ¬h$ðHÀ§
tê?5ñ¬h$ðHÀ§
tä¿i$à
tê?®Gáz
×£p=Z4À5ñ¬h$øCÀ9
WËGÀtÚ@§
%¿þ¿tÚ@§
&%¿þ¿.Ø
IÀtÚ@§
HÀIÀ7‾&
øHÀ-ØbIÀj
ï¿ïîîîî
ã8 ³3À5ñ¬h$øCÀ9
6Ðiø¿.Ø
HÀIÀ7‾&-ØbIÀj
ï¿Bã8Ê6Ðiø¿r
S³3ÀøæÕijÚCÀhE#
_HÀ.ØÇ-Ø
q IÀ°
ø¿B[°[ÊßSñ¿r
,3ÀøæÕijÚCÀhE#
_HÀ.Ø
Çq IÀ°
-Ø[°ø¿"""""bHÀCe
[ñ¿E#
ß,3Àß¼ÚIÀ¥Oú¤Oúö¿E#
d¨ì0ÝCÀ»Üþ
©Ëíø¿"""""bHÀCe
Cß2À
¼ÚIÀ¥Oú¤
d¨ì0Ý©
¦.ú? øHÀ
t¦.ú?à
IÀ ÛdW
¨lÏJIÀÙaêrû
@Ú@§
@+@à WÏJIÀÙaêrû
øæ IÀL]n@S Û!d@hIÀé
+ øæ
>é IÀL]n
¾@S ÛdhIÀé
!@(}Ò'}ÚIÀZÑHÀ7/
>é ¾@Ú@§ @(}Ò'}ÚIÀZÑHÀ7/@tÚ@§%JÀlÁ
Õ@ ºÜþ SKÀêrû
Õ´@ß¼xV4
6Ðix5LÀų¢
KÀÞÝÝÝÝ
LÀtÚ@§ ï@ ß¼xV4
x LÀų¢
KÀÞÝÝÝÝï@÷L]n
*; LÀáz
éKÀÀ7‾&
®G!@q=
Õ@L]n éKÀÀ7‾& Õ@ 6Ði5LÀtÚ@§
×£øMÀ¿Xò
tz$@¼»»»»ÛQÀÆ
tz$@³ÃÔåö×QÀÚ@§ %ÿ @Pú¤Oú¬MÀ
_,ù¥%@¼»»»»ÛQÀÆ
K~±äW @Pú¤Oú¬MÀ
_,ù¥%@K~±äW
Âõ(\ÇQÀ @Ï NFè¾´!&@
aMÀų¢Âõ(\ÇQÀ
‾@Ï FN
¾aMÀų¢
è´!&@4ðÍ«¡QÀsû
‾@ñ¬h$à;MÀÿ Ce )@ñ¬h$à
}&@4ðÍ«¡QÀsû
}&@ |QÀ¾y5ñL'@ |QÀ¾y5ñL'@*;L]VQÀ¿Xò %ÿ&@*;L]VQÀ¿Xò %ÿ&@ójâYÑ0QÀ5ñ¬h$À&@ójâYÑ0QÀ5ñ¬
%@ðÍ« gåPÀû
%@V4ðÍ¿PÀâYÑHÀ7%@V4ðÍ¿PÀâYÑHÀ7%@ ©Ëí PÀé >é >%@ ©Ëí PÀé >é >%@&¿Xò mPÀh$à w$@&¿Xò mPÀh$à
×£pOÀ³ÃÔåög%@q=
×£pOÀ³ÃÔåög%@ ã8 ãpOÀÌí2T$@ ã8 ãpOÀÌí2T$@p^M<+OÀ4ðÍ«I#@p^M<+OÀ4ðÍ«I#@—?ÈPÙÙNÀÒ'}Ò' #@—?ÈPÙÙ
¦ NÀHáz®'#@
tÚ@§
TKÀ
tÚ@'
TKÀ9
¦ NÀHáz
FÀPú¤OúÔPÀ@ÈPÙaÒKÀj
Á¾ã8yíQÀUUUUUMKÀ
lÁÇQÀtÚ@§
ü®SÀ§
'#@ ëQ¸ NÀF
Ñ!@
¾yíQÀUUUUUMKÀ4
ëQ¸ NÀÑ!@n
6ÐåPÀ<+ ø ðKÀj
¡²CNÀÌí2T
Í«½QÀ9
6ÐåPÀ<+
ã8!@¼»»»»kTÀØ
;KÀ4
øðKÀ
Í«½QÀ9
6ÐiQ-ØÀã8
K-)@Öij¢
~±ä
;KÀKÀF¾6Ði
y¡QÀR¸
lTÀCe
QÀK~±ä
©Ë-)@e
ë!KÀ
KÀ*F;L1QÀ
¾y¡QÀR¸
©ËíûSÀ§
|ójªKÀ
ë!KÀ
*;
¦VQÀ1u¹ýA&KÀ
¦VQÀ1u¹ýA&KÀ Ûd¨|QÀî2TvKÀ Ûd¨|QÀî2TvKÀªËí2|QÀ»Üþ CÕJÀªËí2|QÀ»Üþ CÕJÀu¹ýA QÀUUUUU¥JÀu¹ýA
¦RÀñJÀ
¦RÀñJÀ¬ gE#ERÀùÅ _,ñJÀ¬ gE#ERÀùÅ _,ñJÀ×£p=
RÀÇqÇqÜJÀ×£p=
RÀÇqÇqÜJÀ×£p=
RÀÇqÇqÜJÀÆ _,ù]RÀv ºÜþ¸JÀÔ:m  RÀâYÑHÀ JÀÔ:m  RÀâYÑHÀ JÀÏ F¾]RÀL]n JÀÏ F¾]RÀL]n JÀñ¬h$à
×£p JÀñ¬h$à RÀ=
×£p
tZJÀL]n
tZJÀ#JÀß¼ RÀwwwwwJÀ@ÈPÙa¾RÀ
URÀÚ@§
©RÀ ¦ .—gJÀ | óVRÀÚ@§
¦JÀ@ÈPÙa¾RÀ
¦JÀ  | ÏRÀUUUUUÍIÀ  |ÏRÀUUUUUÍIÀL]n ½RÀ[°[xIÀL]n ½RÀ[°[xIÀ
¦ÎRÀõI ôIIÀ
¦ÎRÀõI ôIIÀ)\ Âõ¸RÀG¾y5áHÀ)\ Âõ¸RÀG¾y5áHÀ"""""¶RÀé >é HÀ"""""¶RÀé >é HÀ°[° RÀ|ójâáHÀ°[°
×£p=âHÀ^M<+ÙRÀ
×£p=âHÀe
tÚ(EÀyV4
tÚ(EÀ"""""^RÀA§
RÀÕåö
¦.JÀØZ-Ø
EÀtÚ@§
EÀh$à
ðiRÀ
©ËíÛRÀ<+
µRÀ
2Tv
ðÍ«
RÀ{
ZEÀyV4
JÀK~±ä
®GáúDÀh$à
ðÏiRÀ
RÀÖij¢
ø 2HÀØ
Tv ZEÀ
-ØHÀµ
RÀ{ ®¹RÀ
ÛGáúDÀ"""""^RÀA§
d¨lRÀ
NèÀRÀ33333KHÀµ
Ï F¦EÀè´ NPN
À`èKÀ^M<+
ÀRÀ33333KHÀ
)PÀß¼:m ÓÎRÀ
xVdKÀ$QÀj
HÀz5ñ¬h
6ÐYJÀ1u¹ýA
RÀµ NèìGÀ³Ã
QÀÞÝÝÝÝ¥JÀ1u¹ýA
QÀÞÝÝÝÝ¥JÀ&¿Xò åPÀêrû
íJÀ&¿Xò åPÀêrû
íJÀe ©Ëí¿PÀõI ôIKÀe ©Ëí¿PÀõI ôIKÀ³ÃÔåö PÀDDDDD<KÀ³ÃÔåö PÀDDDDD<KÀ[°[tPÀS ÛTKÀ[°[tPÀS ÛTKÀé
Å¿ øæÕ¬HÀêrû
Å¿4ðÍ«aHÀ5ñ¬h$àË¿fffff&IÀ:m Ó@¼»»»»CIÀ°[°[@ų¢ ×IÀ0 übÉ/î¿"""""ÚIÀM<+ øñ¿lÁl¹FÀ ©Ëíâ7À´¢
tÚ@OPÀðÍ«
¦.)@ÄÔåö1gÅ%@è´
QÀójâYÑ((@m Ó
NPÀùÅ _,ù%@
:1QÀÌí2T
%¿Xò
(@BPÀHáz
ÊSOPÀ
®Ç%@÷*;tNÀøæÕä%@§
¡²ÃÔ¥%@`,ùÅ NÀ %¿Xò+$@`,ùÅ NÀ %¿Xò+$@çÕÄ
¦%@çÕij¢ NÀû
¦%@ 6ÐiCNÀG¾y5±&@^M<+ÙNÀ¬ gE#(@í0u¹ýÙNÀû
f(@¡NÀp^M<+Z*@é >é vNÀÑHÀ7‾ +@í0u¹ýÑMÀ ã8 ãX*@:m ÓºMÀ¥Oú¤OZ*@+ øæ FÀ ºÜþ [NÀ?é >éSFÀZÑHÀ7_
ÜMÀ7Ði
×£p=j:À\
¦.ïIÀ1u¹ýA
J ÀTv
Âõ(äLÀÝþ
ºÜ NÀ Ceg:À)\ Âõ0MÀ\WÏÂõ(DNÀ5ñ¬h$
NÀ¾y5ñ¬èIÀøæÕijV[Àà *;ÀÑHÀ7‾V[À¬ JÀæö
gE#
*CNÀ Ó
;À 6Ði
:m°IÀæö
±SÀÏ F*¾CNÀ Ó
Ñ@À|ójâY±SÀ
:m°IÀ -Ø| óÒ@À£
-øMÀj 6бIÀ
o^eVÀè-Ø´
‾MÀÈPÙaêPÀ×£p=
‾MÀÈPÙaêPÀµ NèNÀ@ÈPÙaPÀ´¢ oîOÀ |ójPÀÇqÇ OÀ~±äKPÀ*;L]n'OÀ±äK~PÀOè´ NOÀ+ øæPÀ5ñ¬h$ NÀ³ÃÔåöGO
×£OÀ Nè´aMÀq=
×£OÀÌí2TMÀ¶`¶øNÀÌí2TMÀ¶`¶øNÀ¥Oú¤ObMÀ |óOÀ ëQ¸ KÀXÏ F NÀ:m Ó KÀV4ðÍ£NÀ -Ø -KÀrÇq NÀh$à KÀøæÕÄ
 KÀ`,ùÅ OÀû
 KÀ`,ùÅ OÀ33333ëKÀ<+ ø¦OÀ33333ëKÀ<+ ø¦OÀp^M<+êKÀΫ gEÃOÀé >é MÀ¶`¶`PÀXÏ FºLÀÞÝÝÝÝPÀXÏ F
ENÀ{
t ZÀv®GázOÀr
ºÜþÀ?@#
Çqßï¼QÀtZÀTv
¡²ÃÔ¥3@ö(\
ºÜ>?@#ßÂíQÀé
¼ tZÀTv
>é ºÜ>?@×£p=
3@ö(\ ÂíQÀé >é 3@£ o^íQÀ¾y5ñL2@Ú@§
OZÀ~±äKÎ>@×£p=
OZÀ~±äKÎ>@d¨ì0u-ZÀ'  <>@d¨ì0u-ZÀ'  < >@ðÍ« Z À.Ø -Ø¢=@ðÍ« ZÀ.Ø -Ø¢=@¼»»»»ZÀ×£p=
W=@¼»»»»ZÀ×£p=
W=@h$à
¦.Ç=@ìQ¸
.Ç=@¦.—?ÈlYÀ
ÛYÀïîîîî
GYÀ %¿Xò{=@ìQ¸
=@h$à ÛYÀïîîîî
GYÀ %¿Xò{=@—?ÈPÙ)YÀ
=@ªËí2¸YÀ°[°[=@ªËí2¸YÀ°
*;L]=@—?ÈPÙ)YÀ
[°[=@øæÕij
*;L]=@1u¹ýA
YÀcÉ/YÀM<+
üâ=@øæÕijx<@1u¹ýA
YÀcÉ/ üâ=@
YÀM
XÀR¸ ë:@×£p=
XÀR¸ ë:@É/ übeXÀðÍ« gõ9@¾y5ñ@]ÀÀ7‾& E@@¥Oú¤O]Àñ¬h$àK@@¥Oú¤O]Àñ¬h$àK@@ú¤Oú¤ó\À|ójâQ@@ú¤Oú¤ó
@@&¿Xò ]\ÀÇqÇq
@@Ház®7\À:m Óê?@Ház®7\À:m Óê?@R¸ ë\À«ªªªªº?@R¸ ë\À«ªªªªº?@DDDDDì[Àà WÏ ?@DDDDDì[Àà WÏ ?@ ëQ
V[À d¨ì0U?@û
V[À d¨ì0U?@n ¡²/[À d¨ì0U?@n ¡²/[À d¨ì0U?@33333[À¾y5ñ¬È?@33333[À¾y5ñ¬È?@ÍÌÌÌÌäZÀ¾y5ñ¬È?@Í
×£tUÀa¶`¶+@q=
×£tUÀa¶`¶+@þA ÊOUÀh$à ,@þA ÊOUÀh$à ,@áz®G)UÀp^M<+Z-@áz®G)UÀp^M<+Z-@Ház®UÀ
×£p= -@Ház®UÀ
×£p=
tÚ@OUÀPú¤Oú$&@£
-@:m ÓÞTÀÏ Fo^)UÀ
¾ù-@§ &@£ o^)UÀ &@ ¦.—UÀ÷*; %@ ¦.—UÀ÷*; %@+ øæéTÀû
¦.—Ï?Öij¢
%@Öij¢
.—Ï?X Ï F¸TÀ9
SôRÀ³ÃÔåö
À ã8 #"@DDDDD¸TÀ#
¹?Öij¢ ôRÀ³ÃÔåö
ß¼ ø"@´¢
¹? |óÎRÀ}Ò'}Ò'¿
o^SÀÇqÇñ @S |Û óÎRÀ}Ò'}Ò'¿,ùÅ
TSÀ øæÕ @S ÛTSÀ _¨RÀu¹ýA
øæÕ @ÊÖ¿,ùÅ
Nè´eSÀ_¨RÀu¹ý
è´ N@ N
WÀDDDDD8RÀ×£p=
WÀ ëQ¸RÀ³ÃÔåö À  ëQ¸RÀ³ÃÔåö À 8‾& íQÀÒ'}Ò'}À8‾& í QÀÒ'}Ò'}À¶`¶`ÇQÀÝþ CeÀ¶`¶`ÇQÀÝþ CeÀ[°[°¡QÀ À
À@ÈPÙa QÀ°[°[
À@ÈPÙa QÀÀ7‾& À @ÈPÙa QÀÀ7‾& Àm Ó:qQÀ$à WO
Àm Ó:qQÀ$à WO
Àé >é jQÀPú¤Oú¤Àé >é jQÀPú¤Oú¤À¼»»»»cQÀfffffæÀ¼»»»»cQÀfffffæÀ)\ Âõ\QÀ¾y5ñ¬hø¿)\ Âõ\QÀ¾y5ñ¬h
 ëQ`QÀsû
tÚ@
.—?|QÀáz
QÀ?é >é Î?®GáÒ¿
Î?§-ئ-|QÀ
.—?|QÀáz
6Ði®â?
GáÒ¿§
-Ø -|QÀ 6Ði â?fffffVQÀ—?ÈPÙaä?K~±äÏRÀXÏ Fî¿0 übÉãRÀ %¿Xò ø¿0
&ÀyV4ðeSÀû
tJRÀïîîîîî
&À¿Xò % SÀ Àd¨ì0u=RÀ½
Ú@§
gE#_À¿Xò xV4
% SÀÀgE#
d¨ì0u=RÀ½
_À¶`¶` xV4
SÀkâYÑHÀ
Àd¨ì0u)RÀ¼»»»»;
ÀÉ/ üb©SÀL]nÀd¨ì0u)RÀ¼»»»»;
áÀ^M<+±SÀ@ÈPÙaj
À WÏÀ^M<+
R Àu¹ýA
±SÀ@ÈPÙajÀ:m 
À WÏ RÀu¹ýA
ÀtÚ
)\À¥Oú¤OVRÀ¹ýA
ÀKÂõìQÀJ
~±äkRÀA§
ôI ôÀ)\
Ê.!À¥Oú¤OVRÀ¹ýA
ÂõìQÀJ ôI ôÀ Ê.!ÀØ
6ÐiÇQÀÄÔåö
-Ø ARÀsû
À  6ÐiÇQÀÄÔåö À—?ÈPÙ¡QÀ$à W À 2Tv º|RÀ"""""¢ÀK~±äk
]"ÀØ -Ø ARÀsû
8RÀÈPÙaêÒ"À
8RÀÈPÙaêÒ"ÀtÚ@§
]"ÀtÚ@§ xV4RÀ¾y5ñ¬ #À xV4RÀ¾y5ñ¬ #À ëQ¸íQÀ"""""$À ëQ¸íQÀ"""""$À:m Ó¾QÀrÇq #À:m Ó¾QÀrÇq
1QÀe ©Ëío)Àêrû
1QÀe ©Ëío)À F¾y=QÀ¸ ëQ *À F¾y=QÀ¸ ëQ *À.Ø -Ø>QÀ ¡²ÃÔÅ+À.Ø -Ø>QÀ ¡²ÃÔÅ+ÀlÁlÁFQÀ½ xV4ò,ÀlÁlÁF
×;QÀ,ùÅ _<0À¤p=
×;QÀ,ùÅ
tÚxDÀm Ó:_<0ÀÕåö
íQÀ?é >é#DÀm Ó
NQÀ  |Ó0ÀÕåö
:íQÀ?éNQÀ>é#DÀ
 |Ó0ÀëQ¸
xV4íQÀ
`QÀj
ß¼ xÎCÀ
6Ði1ÀëQ¸
xV4í`QÀ
QÀj
ß¼ xÎCÀ=
6Ði1À"""""rQÀ2À"""""rQÀ2ÀDDDDDLQ
×£pÙQÀIÀ7‾& CÀ=
×£pÙQÀIÀ7‾& CÀ¶`¶`ÇQÀñ¬h$àcCÀ¶`¶`ÇQÀñ¬h$àcCÀøæÕijÂQÀe ©ËíÿBÀøæÕijÂQÀe ©ËíÿBÀ ã8 ãÈQÀJ ôI ´B
×£|QÀ"""""²=Àq=
×£|QÀ"""""²=ÀõI ôI{QÀÍÌÌÌÌ,=ÀõI ôI{QÀÍÌÌÌÌ,=À‾&  lQÀû
 <À‾&  lQÀû
tÚ0QÀ
 <ÀZÑHÀ7SQÀË
| ó;Àp^M<+
ÀA§ S QÛÿ;ÀZÑHÀ7SQÀË
À]n ¡Ò:Àp^M<+ S QÛÿ;ÀHáz
À]n ¡Ò:À´¢
®;QÀ#ß¼oQh;ÀHáz
À\ Âõ(<:À´¢
®;QÀ#ß¼ o
h;ÀA§
QÀ\ Âõ(<:ÀìQ¸ #QÀ F¾y¥9ÀìQ¸ #QÀ
QÀ 6Ði]8À:m Ó
QÀ¦.ÇPÀ
6Ði2]Tv8À¸J7À1u¹ýAæPÀ
J7À
ëQäPÀ®Gáz8À¸übÉ/æ6À1u¹ýAæPÀ
ëQäPÀ®Gáz8ÀøæÕijÒPÀú¤Oú¤ß7ÀøæÕijÒPÀú¤Oú¤ß7À
übÉ/æ6Àß¼ xVøPÀ"""""²6Àß¼ xVøPÀ"""""²6Àz5ñ¬hüPÀÍÌÌÌÌ6
QÀ»Üþ C 5ÀtÚ@§

t
tÊ8Àáz
QÀ»Üþ
tÚ@
tÊ8ÀÌí2T
J˦*R`
À@ÈPÙaZEÀ§
À@ÈPÙaZEÀ¶`
;L]VQÀÚ@§
o^M<:À»Üþ
o^M<:Àå
¶C0QÀ
®GaMÀÚ@§
M5Àr
ÀE#
ÛKdÇ~±,MÀ¤p=
q
¨$JÀ
ß¼ú8ÀÌí2T
QCÀÜ
¶`ïQÀ®Gáz
¶d`
¨ìð4Àr
¶0QÀMÀE#
Çq
Û d¦¨$JÀú¤Oú¤'QÀ33333[JÀú¤Oú¤'QÀ33333[JÀe
E˦`
ßQ¼ú8À{
ÀÜd¨ìð4À¢²ÃÔå.QÀ
¶`ïQÀ®Gáz
®GáÊLÀu¹ýA
¦EÀ|ójâYíQÀ^M<+
|ójâY4À¢²ÃÔå.QÀ
j9À{ ®GáÊLÀu¹ýA
FÀ|ójâYíQÀ^M<+
|ójâY4Àò
j9ÀÌí2TÖLÀ
©Ëí'QÀa
%¿X*QÀ
FÀõI
¡²ÃÔ¥9ÀÌí2TÖLÀ
¶`¦ôIÇQÀþA
JÀe
6ÐiÃ3À
©Ëí'QÀa
%¿Xò÷QÀ
Ê CFÀõI
¡²ÃÔ¥9À»
¶`¦ôIÇQ
JÀ\
6Ði
×Ó:ÀåK~±,MÀ¤p=
×Ó:Àß¼ xMÀJ ôI D;Àß¼ xMÀJ ôI D;À®Gáz¶LÀÿ Ce i;À®Gáz¶LÀÿ Ce i;À}Ò'}Ò LÀ 6Ðis;À}Ò'}Ò LÀ 6Ðis;
¿PÀ+ øæ 6À×£p=
¿PÀ+ øæ 6À ëQ¸ PÀÏ F6À ëQ¸ PÀÏ F6ÀJ ôI tPÀõI ôI6ÀJ ôI tPÀõI ôI6ÀOè´ NPÀS Ûd6ÀOè´ NPÀS Ûd
×£6Ài$à W»OÀq=
×£6À*;LeOÀä8 ã86*À;LeOÀä8 ã86À d¨ì0%OÀ°[°{6À d¨ì0%OÀ°[°{6À5ñ¬h$OÀ ¡²ÃÔµ6À5ñ¬h$OÀ ¡²ÃÔµ6ÀXÏ FÚ
OÀfffffV4Àêrû
+Àä8
tÚpOÀ
OÀfffffV4Àå
+ÀÇqÇÙNÀCe
ã8_,ùÅÒ)ÀÒ'}Ò'%OÀ
_,ùÅÒ)ÀA§
NÀî2Tvø*Àä8
K~±ÜNÀz5ñ¬h¤3Àå
©Ë ã8>é
NÀî2Tvø*ÀÜ
>I*ÀÒ'}Ò'%OÀ
K~±ÜNÀz5ñ¬h¤3ÀhE#
d¨ì8NÀû
>é >I*À
ß ÇNÀ@ÈPÙa
qÇÙNÀCe3ÀhE#
©Ë ß NÀ@ÈPÙa 3ÀÕåöBNÀõI ôIo3ÀÕåöBNÀõ
Æ+ÀÜd¨ì8NÀû
Æ+Àµ Nè,NÀ]n ¡ò,Àµ Nè,NÀ]n ¡ò,À,ùÅ _DNÀ1.ÀÃõ(\ :MÀ | ójÒ0ÀrÇqÿLÀ i1ÀýbÉ/ N À0 übÉ?0À o
¦îLÀ ©Ëíò4À
¦îLÀ ©Ëíò4À ùLÀS Ûd 5À ùLÀS Ûd 5ÀZÑHÀ7÷LÀÞÝÝÝÝ6ÀÉ/ übùMÀ[°[°E0ÀÒ'}Ò'MÀ¼»»»»K0ÀÒ'}
=À2Tv º4LÀ¥Oú¤O
@=Àî2TvPLÀÞÝÝÝÝ-=Àî2TvPLÀÞÝÝÝÝ-=ÀIÀ7‾&
tÚpJÀ×£p=

¦.—þ?,ùÅ
.—þ?`,ùÅ
 | »JÀtÚ@§_4LÀ LÀ¦.—?Èþ?,ùÅ _4LÀ¦.—?Èþ?G¾LÀDDDDDÄ=ÀIÀ7‾&
y5éKÀV4ðÍ«@G¾y5éKÀV4
LÀDDDDDÄ=À
ðÍ«@[°[°6ÐiËLÀé
KÀ:m Ó@>é[°[.>À
° KÀ
6ÐiËLÀé
:m Ó@ _,ùÅ

×tÚpJÀ×£p=
@A§
×tÚÀ
tÚ@÷IÀz5ñ¬h$
¦@.—
Ò'}Ò'EJÀ
@ØÒ'}Ò'EJÀ
-Ø@Ø
@§%JÀA§
-Ø@"""""ÚIÀE#
§%JÀA§ ß¼@è´ NCLÀtÚ@§6Àáz®GéKÀΫ gES6Àáz®GéKÀΫ gES6À®GázÎKÀðÍ« gµ6À®GázÎKÀ
×;KÀò %¿Xâ7À¤p=
×;KÀò
MÀ]n ¡Â3À9 %¿Xâ7À4 ã8ðÍ«)KÀ
M À F¾yÅ3Ày8Àm Ó
xV4ÐLÀe
: ©Ëíÿ1À£ o^ÕLÀÝþ Ce 2À£ o^ÕLÀÝþ Ce 2À øæÕÄëLÀØ -Ø -3À&¿Xò
@tÚ@ø?Ô
Ï FKÀË:Sm óMÀj
Û@Ï F6Ði
KÀËS Û@*;L]6KÀÕåö
@ xV4øMÀÿj@*Ce
;L]6KÀÕåö
©@ xV4øjMÀÿ
@±äKCe
~9KÀ1u¹ýAÆ
©@Ï FÞMÀTv
@ò %¿X¢MÀ
ºÜþÿ?×£p=
übÉ/ ö?m Ó:MÀA§
ÿMÀ‾&  Ä@é >é ÖMÀ»Üþ Ce@é >é ÖMÀ»Üþ Ce@&¿Xò ÕMÀlÁlÁ@n ¡²CNÀ1u¹ýAÆ@,ùÅ _DNÀ ëQ¸Å@
¦VQÀè´ Nñ?yV4ðUQÀû
¦û?yV4ðUQÀû
tÚ@
¦û?QÀM<+
¶`¶0QÀE#ß¼ û?
øÿ?§
øÿ?¶`¶0QÀE#
F¾yåPÀÁ
ß¼lÁ
û?§l@ F¾yåPÀÁlÁl@ WÏ ÒPÀ¥Oú¤Oúÿ? WÏ ÒPÀ¥Oú¤Oúÿ?ójâYÑÄPÀà WÏ ö?ójâ
@Ï F^OÀsû
tÚ@í?
tÚ@í?ÄÔåö

tÚô?L]n
tÚô?
@ß¼>éÂõ(\OPÀA§
xV¼OÀ9
>i })PÀÚ@§
Âõ(\OPÀA§
PÀã8¦.—?ê?ÄÔåö
ã@å
@ðÍ«
@ß¼K~±
xV¼OÀ9
PgÀß¼
}PÀxV´
¦ã8
 .—?ê?
@ãåK@~±
V4gE#
PðÀß¼
ÍPÀ@ÈPÙaj@V4
PÀÍÌÌÌÌÌê??é
xV´@<+ ðÍ øÞOÀýbÉ/
PÀ@ÈPÙaj@ðÍ«
>éßPÀ4ðüÿ?<+
Í« g @øÞOÀýbÉ/
¦ .—çPÀPú¤Oú$
üÿ?V4@ðͦP.—çPÀPú¤Oú
ÀÇqÇqü?V4ð
RÀìQ¸ +@J ôI RÀu¹ýA @J ôI R Àu¹ýA @ Pú¤Oú RÀ7Ði ö @Pú¤Oú RÀ7Ði ö @¾y5ñ¬8RÀÙaêrûC"@¾y5ñ¬8RÀÙ
RÀè´ NÛ&@×£p=
tÚüXÀ
RtÚüSÀfffffFB@´¢
tæUÀË
Àè´ SNÛ&@Ü
B@fffffÖXÀ³ÃÔåö
Ûÿ>@<+
d¨ììQÀÀ7‾&
ø¾UÀe
oÖSÀ*u'@©Ëíÿ>@<+
B@fffffÖXÀ³ÃÔåö
;L]FB@´¢
_,ùÅ WÀeoÖSÀø¾UÀe©Ëíÿ?@
*;L]FB@
©Ëíÿ>@À7‾&
B@' _,ùÅ
 ° XÀ³ÃÔåö
xV4WÀ
°SÀfffffFB@
¡²ÃL@@
UÀe
B@'©Ëíÿ>@À7‾&
 °_,ùÅ
XÀ³ÃÔåö
xV4°WÀSÀfffffFB@øæÕij
¡²ÃL@@
UÀe
B@E# ß©Ëíÿ>@
¼ XÀ³ÃÔåö
F¾y]WÀ±ä
o^MtUÀe
SÀÌí2TFB@øæÕ
K~ @@ß©Ëíÿ>
B@E# ¼FXÀ³
¾y]
tVVÀ
VÀe
0VÀkâYÑH
¦©Ëí?B@
.—? A@Pú¤Oú|VÀ
A@Ú@§ øæÕ|VÀÐi
A@tÚ@§ ñB@áz®GyVÀv
6 A@Ú@§ºÜþðB@ øæÕLVÀ(}Ò'}ZB@#ß¼ LVÀí0u¹ýYB@K~±ä{VÀe ©ËíßA@¶`¶` VÀ
×ÇVÀ*;L]Ö@@¤p=
×ÇVÀ
tÚ@VÀ½*;L]Ö@@ų¢
xV4Ò>@9 ã8ÇVÀ¿UÀYò:m Ó~@@ų¢
%¿ A@ ©ËíæUÀ ÇVÀ:m Ó~@@Ház
©Ëí A@ ©ËíæUÀ
®ÇVÀ ©Ëí A@wwwww
øæÕ@@HázVÀþA
®ÇVÀÊ A@Ãõ(\
øæÕ@@¼»»»»ÇVÀCe
VÀÝþ CeB@ñ¬h$à ©Ëý
B@@ÈPÙa TÀ×£p=
tÚ¸TÀÃõ(\ úA@~±ä
B@A§ úA@A§ KÞTÀcÉ/ üÊA@~±äKÞTÀcÉ/ üÊA@ øæÕÄUÀ¤p=
×£A@ øæÕÄUÀ¤p=
×£A@+ øæÝTÀ`,ùÅ A@+ øæÝTÀ`,ùÅ A@÷*;¸TÀ³ÃÔåö A@÷*;¸TÀ³ÃÔåö A@2Tv TÀ(}Ò'} A@2Tv TÀ(}Ò'
åUÀí0u¹ýÑ>@è´ NDUÀ¿Xò %ÿ?@ %¿XòCUÀ xV4@@ gE#OUÀ?é >é @@@ÈPÙaVUÀøæÕijâ@@@ÈPÙaVUÀøæÕijâ@@¥Oú
C@³ÃÔåöûSÀtÚ@§
C@ùÅ _, TÀS ÛdðB@ùÅ _, TÀS ÛdðB@IÀ7‾&"TÀ øæÕÄ»B@IÀ7‾&"TÀ øæÕÄ»B@ Âõ(\STÀÞÝÝÝÝ¥B@ Âõ(
eXÀS Ûô@@sû
eXÀS Ûô@@Ùaêrû?XÀZÑHÀ7ï@@Ùaêrû?XÀZÑHÀ7ï@@2Tv ºXÀ|ójâYá@@2Tv ºXÀ|ójâYá@@åK~±ôWÀðÍ« gí@@åK~±
¦ VÀ÷*;<C@ ôI ôíUÀz5ñ¬h<C@ß¼ xVÀî2TvðB@ùÅ _,uVÀv ºÜþðB@áz®GaVÀm Ó:¥B@áz®GaVÀm Ó:¥B@@ÈPÙaVV
C@K~±ä
×£PB@ýbÉ/
C@ *;L]ÃUÀ+
UÀYòhVÀ<+
%¿ðB@K~±ä
øB@ ã8ÃUÀYò
øæ ã`UÀbêrû
%¿ðB@ÿ<C@ÍÌÌÌÌtUÀ
Ce õUÀ >é >ñB@ÿ
%¿Xò#C@ÍÌÌÌÌtUÀ
Ce õUÀ >é >ñB@9
%¿Xò#C@ã8
*;L]
VÀnUÀ+¡²»B@9øæã8 VÀn ¡²
×£p=j?@ Ûd¨DUÀ¾y5ñ¬h?@,ùÅ _DUÀ9 ã8 K@@\ Âõ(DUÀþA ÊK@@E#ß¼Î]À‾&  <C@hE#ß°]À¥Oú¤OC@hE#ß°]À¥Oú
B@,ùÅ _¬\À×£p=
B@»Üþ C©\Ài$à W»A@»Üþ C©\Ài$à W»A@!Ce ©§\À ¦ .—wA@!Ce ©§\À ¦ .—wA@ übÉ/ \ÀhE#ß,A@ übÉ/ \ÀhE#ß
@@ ëQ¸©\Àsû
ÄYÀö(\
@@Ï F¾©\À
@@ >é
gE#>_@@þA
YÀÍÌÌÌÌ<C@
ÊÃYÀÃõ(\ëQ¸â@@tÚ@§
YÀÖij¢ ðB@ ëQ¸ YÀÖij¢ ðB@ÄÔåö YÀm Ó:¥B@øæÕij \ÀL]n YB@ÑHÀ7
¦ÂYÀL]n yA@
¦ÂYÀL]n yA@
¦ÂYÀ÷*;ÄA@
¦ÂYÀ÷*;ÄA@
¦ÂYÀÄÔåöB@
¦ÂYÀÄÔåöB@'  ¸YÀe ©Ëí?B@'  ¸YÀe ©Ëí?B@
¦ YÀe ©Ëí?B@
Y0[À
ÀÝþ
À÷
¦ *YÀe
;ÄA@tÚ@§
;ÄA@M<+
B@tÚ@§
B@
CewA@tÚ@§
©Ëí?B@kâYÑHlYÀ
ëQ¸ YÀv ºÜþ
@B@kâYÑHlYÀ
B@ xV4ÀYÀL]n
@B@ÈPÙaêFYÀ
YB@'  À@YÀn
B@ÈPÙaêFYÀ
¡²[B@@|B@À7‾&
 ó^\À B@
!YÀ
 |@7\À³ÃÔåö
B@tÚ@§ B@  | 7\À³ÃÔåö B@
[Àe ©Ëí B@ ëQ¸
[Àe ©Ëí B@É/ übåZÀe ©Ëí B@É/ übåZÀe ©Ëí B@cÉ/ ü¾ZÀ³ÃÔåö B@cÉ/ ü¾ZÀ³ÃÔåö B@[°[° ZÀe ©Ëí B@[°
C@)\ ÂõôRÀ | ó
C@7Ði S À{®Gá*C@7Ði S À{®Gá*C@"""""BSÀ!Ce ©;C@"""""BSÀ!Ce ©;C@ä8 ã8SÀêrû
ýB@ä8 ã8SÀêrû
ýB@Ï FSÀ»Üþ C B@Ï FSÀ»Üþ C B@ÑHÀ7‾úRÀ|ójâYB@ÑHÀ7‾úRÀ|ójâYB@Ãõ(\ SÀi$à WB@Ãõ(\ S Ài$à WB@K~±ä
¦ÖSÀÜd¨ì @@
¦ÖSÀÜd¨ì @@ o^MüSÀ33333S@@ o^MüSÀ33333S@@""""""TÀJ ôI $@@""""""TÀJ ôI $@@33333GTÀ ã8 ãØ?
׳:@½ xV4TÀ¤p=
׳:@:m ÓTÀhE#ß:@:m ÓTÀhE#ß:@kâYÑHTÀ¢²ÃÔå 9@kâYÑHTÀ¢²ÃÔå 9@Ï F"TÀ´¢ o>9@Ï F"TÀ´¢ o>9@)\ Âõ
F>@R¸ ëåUÀû
F>@è´ NVÀn ¡²S>@è´ NVÀn ¡²S>@8‾& 1VÀ®Gáz^>@8‾& 1 VÀ®Gáz^>@7Ði ZVÀ¶`¶`;>@7Ði ZVÀ¶`¶`;>@¸ ë
×£p= =@{®GáWÀ
×£p=
tÚ@§=@+
tÚ@§=@
¦.g^ÀwwwwwB@
.g^ÀwwwwwB@
=@;L]n
6Ði
øæWÀ§
ÉWÀ
8WÀ~±ä
:ëQ¸
m Ór^À
=K@®=@;L]n
6Ði
_,ùÅZB@
ÉWÀ ëQ¸
8WÀ~±ä
:m Ór^À
=@¾y5ñôWÀÆ
K®=@O
_,ùÅZB@.Ø
è´ _,ù¥<@
^WÀðÍ«
-Ø ¾y5ñôWÀÆ
gÅ=@O
^À×£p=è´ _,ù¥<@fffff
^WÀðÍ« gÅ=@XÀ
NtèÚ@§m<@fffff
´ WÀ»Üþ C¥=@XÀtNÚ@§m<@'
è´ WÀ»Ü
B@.Ø -Ø ^À×£p=
B@Tv ºÜ ^Àà WÏòB@Tv ºÜ ^Àà WÏòB@q=
×£¸^À xV4C@q=
×£¸^À xV4C@ÁlÁÈ^À,ùÅ _<C@K~±äÏRÀðÍ« C@Ï FÖRÀÿ Ce ñB@×£p=
ßRÀ33333ÃA@S ÛdôRÀ7Ði A@S ÛdôRÀ7Ði A@ ¡²Ã
SÀkâYÑHxA@V4
TÀñ¬h$àK;@*;L]
ðÍ?SÀ+
TÀÁlÁL;@ÞÝÝÝÝ!TÀkâYÑH
øæUA@ eSÀýbÉ/
9@wwwwwGTÀ
4A@4ëQ¸
ðÍ«µ8@wwwwwGTÀ ëQ¸µ8@^M<+mTÀ -Ø - 8@ÇqÇ9UÀ[°[
×£p-A@
[ÀójâYÑðB@
øTÀ»ÜþºÜþ
C-A@ìQ¸
\À¿XòVÀ%B@ðÍ«
ðÍ« wB@#g©\À0
ß¼ V Àp^M<+ZB@#
übÉÏA@É/ übß¼ \Àsû
VÀp^M<+ZB@¶`¶`VÀ‾&  lB@ÿ Ce ¡[À³ÃÔåöÏB@tÚ@§
¿-A@õI
%¸ Ó©ø¾ÍÁ
ôI \Àm Ó
¤N¼Üa:-A@
>%Yï»H¨'ZS
@äcå=¼à ‾²ÑãK¨'Ú
< ^ò{³¾Ãy
| ëÏzNöỲÞá
Ù! B rôbZPè
\oÖæÆL($ú\ïoP
 ú² ?L²3ë¡òuf½
>õö1µ¤=}Õ Ú.¬N]Â! 
õâ" s{Ö õg½8ñþ¬
Û "ú  _U^$ë
}
%Æ%«¹—{óÀKnãP"0}Ã
°¼g q:ÔCÕáÇPr
ÀÙ á°Á8ô>@ÝÃ`
@ÿ è¹%Ôz«1Õ¶
m @ Õ\k²Q
"» Á8ÄA
ú¬ÔÈu Ð
+> Óz¢5mÆ<Íè
a:¬¡O¿ ±WA¢Ï¬
1ÏvÙZÔÚ_ yÇéuH¨X3¨Æ¼ Ã0Tc ®b;橱 j1ïr
}¶G÷8¤ 6Úô;Ô¸=¹Ãáeï¡Á¦ >«®9ôu9dèku=° z"¬ qì¬(¢äW2Ã+ï Íã!* [¶{ .ù9̀ ȸEΣ8YÇ' qyÎ(zh¢ãò 9Ä
ãrs
:S æ"5s»ÿÓ*')×ðê?^®ì Ü â ½Kø&Æ! 2 ÓiXá ÓÁqÑ 9
`T ÷ ¢§ PO Uä8ÛƬD¦K8 9ình õ7w ß\f=+ >à¬/á ˬgçs M1Ëzñ¾¹Ìzv ýjæ ðÍE B %àR © ¬—ÀS Ð%ÿ= õæ Ø
Ùè
§¡½ r Ù¾ ±ÚS¸³ ¹ _hÚRÎ ¢ ÓmÐá0ëõS-z
õD "ðg{gUþÀ ë@áÏqÖð§ß¿Ø« ñg@Á‾ ?Ûå;|g—a§Ós°ësð ÐÙÁhrÀ³opþZD,¡ hS%õT[ [¡^Ô´B½õTQ¬ >
õûÎIÛuÀâGæn
då½éT/ÜûP
+TÕøõ÷T(ååú:,
ÌòG{ SË©8=QIÅBZ8,
² z"R ý«ï
>ÎÀ®a(
A!¸öÆÈ{
êyO§Ó ñî{
«é!zL Nú"à 0¸ ÷Pgöw  ôÔ
*—jáP- ønÀ+$ï}ÝO½ûõ r¾î
º/æP}
endstream
455
endobj0 obj<</CropBox[0 0 612 792]/Parent 506 0 R/Contents 457 0 R/Rotate 0/MediaB
ox[000obj<</ColorSpace<</Cs6
456
endobj 612 792]/Resources 456516 0 R/Type/Page>>
0 R>>/Font<</TT1 522 0 R/TT2 513 0 R/TT3 514 0
R/TT4 515 0 R/TT5 528 0 R/TT6 523 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS1 520 0
457
endobj
R>>>>0 obj<</Length 4626/Filter/FlateDecode>>stream
ò÷;
H ÌWÑnÛ¸
©D"íXt³»EÑÆn¤ápæÌ9gÞþrC¢ûföa1{»X°
}÷WèíR@ I E±À¶—XÜzqÑ}I÷A åØ{mË
D ÕäàDÉÃó c ¤D©(ã*ÁÃC» îáï¢Ðÿ<ÌÐ×xñ» 8áB¦añïÙ{ fô'ókÖÿ
<zв3{ßC~
T¢ÏÑío8ZÂo6Ñ
Ï\wSTÞ `o  ó!ñþ/úúO½ÿW¤¡kKXB —%½ý1òúAÊô~_K¬FµüÇó:_;Yç´ ©®òDµÝ´¦ÄUL°:5ìs&"qÍI§Câû
´,á ~
2ôèÅ
4i
2_¤<ðfÖ¼T+73
Ç¢tP
-ÚÍ@
"sºúLÛ:
Bk(EÞÒôr¬'«ñ
9Lo
ÌǍþÈ
ݱ°ITú
¾4^\¢È9g
7³¾‾t
þßî
3 ]óIm;»±
 8?=Ú/D
.®Õº2ÎÐjU
á9 à*¢sb
`XÓæG[l
uÈ{¨4´
Qx
 &Vê+vé
EY—ùfï
ʪ9ªAf
áÚj|3´ìah
M§)öC
Ë~ýåË
CCAÿ[Wm,
dJò ò]uܗî
§Û 0ªý
 Õ¾q½%Ä
xdE¨JÂΰ
qZ²øÍ/#
=Ù ¢>l<Ï
s }"»U«ñ\À
ÖĬ«8
6Æ —Ï
ÉÚõ ¢4fÃÖðáÞÔ4Â>e ÚuÏ9 ¦qHð z
l XT»òf]
= îÒWk +Ä  %¿Xò v@ Nè´á?@ >é >i?@©Ëí2?@ ôI ô ?@ ×£p=J>@ Ûd¨<?@*;L}=@ñ>@ gE#Ç@@Yò %¿
tÚ@§í9@¤p=
×3A@
tÚ@
tÚ@§í9@Ìí2TnA@
×3A@
¬A@=@6ÐiS8@=+
6ÐiS8@tÚ@§
6ÐiÓ>@ ôI
[°ô9<@
[ 9@Ìí2TnA@
ø¾A@ ?d¨ì0
@ ôI ô9<@
7@=+
[°[?@\
9@tÚ@§
ø¾A@
Âõ(l;@±
d¨ì0[7@å
°;?@\
K~±ôA@
Âõ(l;@±
-Ø [-¸6@å
°;?@ôI
K~±ôA@
ôI :@,ùÅ
-Ø -¸6@9
_|?@ôI
ã8 ôI
[B@Ü:@,ùÅ
d¨ì06@¦
_|?
 @@+ øæU<@Ði 6`@@£ o^Í<@?é >é+@@2Tv =@:m Ó&9@µ Nè¤?@S ÛdX8@/ übÉÿ?@S ÛdX8@/ übÉÿ?@QÙaê
×£B@e ©Ëíï$@p=
×£B@é >é >&@Üþ CeoB@é >é >&@Üþ CeoB@z5ñ¬h¤$@qÇq_B@z5ñ¬h¤$@qÇq_B@à WÏ
#@ ¡²Ã¤B@à WÏ
#@ ¡²Ã¤B@/ übÉo!@®Gáz|B@é >é >!@ xB@CDDDDD@HÀ7‾&nB@ÈPÙaêò@é >é B@Ï F¾¹@¥Oú¤OzB@Ï F¾¹@
×£p=bB@¸ ëQ¸@
×£p=bB@Ê/ übI@ú¤Oú¤OB@¢²ÃÔåv@S ÛdPB@¹ýA Êø?þA ÊCB@¹ýA Êø?þA ÊCB@°[°[æ? Nè´)B@°[°[æ? Nè´)B@
í¿  |ÛA@×£p=
í¿  |ÛA@Xò %¿Xû¿sû
t²A@W
t²A@k
A@lÁÏ6Ði
lF
ÁÀÚ@§
Àí0u¹ý
S Û A@W
A@k
Ï F
ÀÚ@§
6ÐiÀí0u¹ý A@S ÛdhÀ#ß¼ A@S ÛdhÀ#ß¼ A@L]n ¡ÀtÚ@§õA@Ìí2T¶À?é >éãA@rÇqÀ
×£p=ª À¤p=
׫@@
×£p=ª À¤p=
׫@@ðÍ« gE"À8‾& U@@ªËí2´"ÀÀ7‾& @ @äK~±¤#Àsû
=?@äK~±¤#Àsû
=?@;L]n P#Àq=
×£p>@;L]n P#Àq=
×£p>@n ¡²$Ào ¡²£=@n ¡²$Ào ¡²£=@ÞÝÝÝÝ %À¾Xò %ß<@ÞÝÝÝÝ %À¾Xò %ß<@xwwww7'ÀðÍ« gE<@xwwww7'À
×£8@« gE#!0À ºÜþ 37@« gE#!0À ºÜþ 37@7Ði v0À d¨ì0e6@7Ði v0À d¨ì0e6@ >é >ù0ÀrÇq 5@ >é >ù0ÀrÇq
}3@âz®Gq0Àsû
}3@Pú¤Oú$0Àp=
×£°2@Pú¤Oú$0Àp=
×£°2@@ÈPÙa
0À øæÕÄã1@@ÈPÙa
0À øæÕÄã1@ ¦.—?0Àß¼ x1@ ¦.—?0Àß¼ x1@Yò %¿ 0Àî2TvH0@×£p=
0À_,ùÅ 0@\ Âõ(Ü0ÀPú¤Oú .@\ Âõ(Ü0ÀPú¤Oú .@|ójâY1À | óê,@|ójâY1À | óê,@ ëQ¸ 0ÀQ+@ ëQ¸ 0ÀQ+@ ºÜ
¦î'@ýbÉ/ <.À
¦î'@\ Âõ(¼.À33333S&@\ Âõ(¼.À33333S&@v ºÜþ -Àí0u¹ý¡%@v ºÜþ -Àí0u¹ý¡%@Xò %¿,ÀGáz®$@Xò %¿,ÀGá
t
¶`Àÿ¶ *ÀÍÌÌÌÌl"@¸
Ce i@—?ÈPÙáÀ¬ëQgE#Á
*ÀR¸@—?ÈPÙá
ë"@R¸ÀëQ*ÀB
¬ gE#Á@Ê«ªªªªª
Sw @R¸ÀëQ*ÀB@«ªªªªª
ÊSw @lÁ
À lÁ¶(ÀÎ
@µ NèFt¾À9@{lÁ
®Gáz
lÁ¶(ÀÎ
@µ NètFÀ¾{
9®@Gáz
2Tv@¿Xò
º'Àã8%?
À übÉ/ @ ©Ëí2ÔÀB ÊSW@ |ójÀp^M<+ @  |ójÀp^M<+ @ QÙaêrû÷¿ÑHÀ7‾&@QÙaêrû÷¿ÑHÀ7‾&@Yò %¿Xæ¿õ(\ Â5@Yò
í?VUUUU@
¦.ó?<+ øf@
×£p=
@9 ã8 #@
×£p=
@9 ã8 #@QÙaêr{@Öij¢ @QÙaêr{@Öij¢ @ ¾y5ñ¬è
@a¶`6@¾y5ñ¬è
@a
@Öij¢
@ ¶d¨ì0
`6@,ùÅ
À#@Ϋ
#@ Âõ(\
_¬gE£
@®Gáz
@lÁnl@¡#@É/
,ùÅ _¬übÉ
@®Gáz
@!Ce
n@ºÜþ
©+#@a
Cå¶@`
wwwwww
¶ø?ñ¬h$à
@ºÜþ#@¬
Cå@wwwwww
gE#ð?ò¬h$à{#@¦.—?ÈPÉ?ò¬h$à{#@¦.—?ÈPÉ?]
@—?ÈPÙ¡@n ¡²C@—?ÈPÙ¡@n ¡²C@lÁl
×÷¿bêrû ,#@IÀ7‾& ÀÝþ CeÇ$@4ðÍ«ÀÝþ CeÇ$@4ðÍ«ÀS Ûd(&@Ìí2TöÀR¸ ëQ&@ À¾y5ñ¬¨'@¼»»»»ûÀ[°[°e(@ gE
Ý*@1u¹ýAF$Àrû
Ý*@1u¹ýAF$À;L]n °+@lÁlá%À;L]n °+@lÁlá%À ¡²Ã +@'  | 'À ¡²Ã +@'  |'À  |Ó*@ übÉ/)ÀXÏ F '@ërû
tÚ@/AÀðÍ«
51À®Gáz
AÀ2Tv
tÚ@/AÀ33333³5@
AÀ Âõ(\O7@»Üþ
º8@ų¢
'@½gå4@§
xV4CA22À2Tv
Tv
À®Gáz
2AÀ33333³5@
º8'@½
@ų¢xV4
AÀ4
2Tv
À5ñ¬h$À(@
ðÍ«é8@(}Ò'}
2AÀ;L]nÐ2À5ñ¬h$À(@
6@
*;LAÀ;L]n
Ð2À‾&6@
*;L
 ¤)@Ce
AÀ Âõ(\O7@»Üþ
©Ë 3À‾&  ¤)@Ce
C ©Ë 3À2Tv º|*@
AÀåK~±´9@è´ NAÀÃõ(\ :@ ã8 ãà@ÀÃõ(\ :@ ã8 ãà@À¦.—?ÈP;@|ójâY±@À¦.—?ÈP;@|ójâY±@Àsû
<@ Nè´i@Àsû
<@ Nè´i@À@ÈPÙaê<@´¢ o@À@ÈPÙaê<@´¢ o@ÀN<+ ¸=@ Ûd¨|?ÀN<+ ¸=@ Ûd¨|?À®Gáz~>@/ übÉ‾>À®G
¦?@Úaêrû=Àû
¦?@Úaêrû=À 9@@×£p=
W<À 9@@×£p=
W<Àû
V@@ôjâYÑ ;À½ xV4r@@ >é >Ù:Àß¼ xN@@è´ N:Àß¼ xN@@è´ N:À®Gáz´@@Ce ©Ë=9À®Gáz´@@Ce ©Ë=9À o^M<A@
¦¾A@2Tv º\3À*;L]^D@WÏ FÂ-À
×£p=RD@ðÍ« ',À
×£p=RD@ðÍ« ',ÀðÍ« GD@bêrû *ÀðÍ« GD@bêrû *À`,ùÅ ?D@ ©Ëíò(À`,ùÅ ?D@ ©Ëíò(À ã8 ã8D@¡²ÃÔåV'À
ED@>
×£p=.ÀM<+
tÚ@ÇD@
¦.ßC@{¦®.—?Èú¿Ï
GáZ#À F¾8D@
GáZ#À!Ce ©³C@
d¨ì0õ$À
ëQ¸¾!À!Ce
E@ | ójâë¿Ï
©³C@
F¾ëQ¸¾!À~±ä
E@ | ójâë¿ ôI
K¶C@ ºÜþôiE@µ
# À~±ä
Nè´±¿
K¶C@©ËírE@
ºÜþ #lÁ
À}Ò'}Ò‾C@ú¤Oú¤
lÁV?&  ÔE@»»»»»»é?
À}Ò'}
×£÷?u¹ýA :F@¤p=
×£÷?/—?ÈP¡F@T Ûd¨ÿ?/—?ÈP¡F@T Ûd¨ÿ? xV4G@!Ce ©Ë@ xV4G@!Ce ©Ë@ ëQ¸nG@
¦.
@:m Ó¾G@~±äK~@lÁlÁH@d¨ì0õ@lÁlÁH@d¨ì0õ@*;L]VH@,ùÅ _,@*;L]VH@,ùÅ _,@Ï F¾ H@ËS Û_@Ï F¾ H@ËS Û_
F@4ðÍ«)%@¾y5ñ
F@4ðÍ«)%@¨ì0u¹½E@åK~±Ä&@QÙaêr£E@%¿Xò '@ZÑHÀ7‾E@6ñ¬h$ (@Ìí2TNC@î2Tv2@ |ózC@±[°;1@ðÍ« E@ªªªªª
×£p=ÂD@6ñ¬h$`,@¦.—? D@ó %¿X-@Ï F¾9D@S Û.@Ï F¾9D@S Û.@è´ NÓC@J ôI ´.@è´ NÓC@J ôI ´.@m Ó: C@
¦.'0@«ªªªªrB@ì0u¹ý6@bêrû B@êrû
55@bêrû B@êrû
55@0 übÉ B@Ýþ Ceg4@0 übÉ B@Ýþ Ceg4@$à W B@u¹ýA 3@$à W B@u¹ýA 3@Ìí2T¾B@gE#ßÌ2@Ìí2T¾B@gE#ßÌ
?F@ F¾yu3À×£p=
?F@ F¾yu3Àn ¡²@¾y5ñ¬¨2Àn ¡²@¾y5ñ¬¨2ÀÀ7‾& F @{®GáÚ1À2Tv º¤G@i$à W³-À:m ÓþG@ ã8 ã,À:m ÓþG@ ã
×£peH@ o^M¼*À=
×£peH@ o^M¼*ÀÊ/ übqH@L]n !)À d¨ì0I@2Tv ú/ÀÉ/ übáH@×£p=Ê0ÀÉ/ übáH@×£p=Ê0À Âõ(\¿H@K~±ä 1À Â
× H@cÉ/ ü23À¤p=
tÚ0F@¦.—?È@9Àërû
tÚ0F@¦.—?È@9ÀA§
× H@cÉ/ ü23À ºÜþ cH@4À ºÜþ cH@4Àû¤Oú¤?H@ 6ÐiÍ4Àè´ N F@7Ði 9ÀA§
åE@Ô:m s8Àërû
åE@Ô
¦.w@@¼»»»»{7@j
:m s8À%¿Xò ÕE@Æ
6ÐéÀF
_,ù¥7À%¿Xò
¾y51 @a¶`vÀÕE@Æ
¾y5ñ,
_,ù¥7À
@a¶`vÀ±¾E@_M<+
y5ñ,@ÑHÀ7‾&
Ù6À±E@_M<+
ÀçÕij¢1
Ù6ÀS@Ó
Û:dm ÓÎ?K~±ä
 E@¶`¶`6À'
ë!@Ø
 F@-Øã8-È?q=
ãX1ÀTv
×£P @Ø -Ø -È?q=
×£P @ ºÜþ CÑ?®Gázn@ ºÜþ CÑ?®Gázn@Ó'}Ò'}Â?Ï F¾9@Ó'}Ò'}Â?Ï F¾9@,ùÅ _,å¿ ëQ¸@,ùÅ _,å¿ ëQ¸@Ði 6
×ù¿ZÑHÀ7O!@×£p=
×ù¿ZÑHÀ7O!@¶`¶`ê¿Õåö*!@¶`¶`ê¿Õåö*!@2Tv ºÜ®¿õI ôI@m Ó:m°?©Ëí2@ | ójâ¹?1u¹ýA&!@tÚ@§ @ ëQ¸¾&@v¹
tÚ@g*@W
*tÚ@g*@sû
@ÞÝÝÝݽ,@Ô
Ï F"+@§
:m S)@ÞÝÝÝݽ,@Ô:m S)@WÏ F"+@§
½,@*;L]n_*@sû
½,@*;L]n_*@âYÑHÀW.@ß¼ x*@ -Ø - >@ÒHÀ7‾&ð?J ôI Ô>@ùÅ _,ùü?J ôI Ô>@ùÅ _,ùü? >@ ëQ¸ð? Ce
ÀVUUUU%=@¹ýA Ê
ÀS Û =@¨ì0u¹=ÀS Û =@¨ì0u¹=ÀL]n Ñ=@ß¼ xVtÀL]n Ñ=@ß¼ xVtÀ ©Ëíò=@-ùÅ _¬ÀQ¸ ëñ=@ZÑHÀ7‾ÀÖij¢ `
¦. >@°[°À
tÚ@W=@S
¦. >@°[°
ÛdÀ(SÀ2Tv
§Ûd?@5ºL=@
ðÍ«©ÇÀübÉ/
qÇñÀ2Tv
L>@%à
ºL=@ÇWqÇÀ ñ
ÐiÀübÉ/
6à=@ñ¬h$à[
= @Ò'}Ò'½
ÀÐiÀ F6à=@ñ¬h$à[
¾y;@ À§
ù1ÀÜþ Ce ;@'  ,1ÀÜþ Ce ;@' 
@Pú¤OúB@DDDDDÄ@Pú¤OúB@DDDDDÄ@|ójâ1B@Ði 6P@|ójâ1B@Ði 6P@ F¾yíA@lÁlÁ@ F¾yíA@lÁlÁ@YÑHÀ7B@ übÉ/
×B@×£p=
g@@øæÕijB@S Ûd@@IÀ7‾&FB@S Ûd@@IÀ7‾&FB@ÉPÙaê2?@±äK~iB@ÉPÙaê2?@±äK~iB@û
f>@K~±äB@û
f>@K~±äB@ôjâYÑ =@wwwwwB@ôjâYÑ =@wwwwwB@µ`¶`Ë<@ªªªªªRB@ Âõ(\ <@F¾y5YB@WÏ FÒ;@Xò %¿`B@WÏ FÒ;
?@¤Oú¤O D@êrû
?tÚøD@øæÕij
@¤Oú¤O D@ì0u¹ýá?@ùÅ
A@ëQ¸ E@²äK_,ÁD@ì0u¹ýá?@ùÅ
~éA@ØD@²äK~éA@ØD@#
_,ÁD@Ýþ
ß¼ PB@}Ò'}Ò‾D@#
CeW@@]n ¡êD@Ýþ
ß¼ PB@}Ò'}Ò‾D@*;L]n—B@
CeW@@]n ¡êD@a¶`|¾ójâ
@@ùÅD@*;L]n—B
_,E@a¶`¾
×£ A@G¾y5éA@×£p=
çA@bêrû üA@{®GáRA@ÞÝÝÝݽA@ß¼ xVì@@ÍÌÌÌÌ A@\ Âõ( @@ÈPÙaêjA@[°[°%@@'  A@ 6ÐiS?@=
×£pµ@@ðÍ« '?@½ xV4J@@ 6Ðió=@Öij¢ @@ WÏ &=@Öij¢ @@ WÏ &=@>é >é»@@4ðÍ«Y<@¦.—?È@@¶`¶`K<@ ëQ¸
×£p=ê;@ÕåöBA@«ªªªª <@¼»»»»cA@ðÍ« W=@°[°{A@[ Âõ(\=@<+ øfA@ôI ôI <@ö(\  A@:m Óö;@?é >éãA@
vB@*;L] 9@û
vB@*;L] 9@ B@ xV4À8@ %¿XòëB@ Ûd¨,8@(}Ò'}RC@[°[°u7@(}Ò'}RC@[°[°u7@  | C@ójâYѨ6@  | C@
×C3@ øæÕÄ D@£p=
tÚ@ç,@
×C3@ -Ø®|Gáz¤E@
 ó-¸D@fffffv2@
E@¦¾y5ñL+@ d¨ì0
-Ø -¸D@fffffv2@³¢
E@ä8 ã8 *@,ùÅ _
oFE@êrû
@¾y5ñ¬¨1@³¢ oE@¾y5ñ¬¨1@ ¦ .—GE@¼»»»»Û0@ ¦ .—GE@¼»»
5)@,ùÅ _F@êrû
5)@þA ÊkF@ y)@þA ÊkF@ y)@ Nè´ÑF@¾y5ñ¬¨*@ Nè´ÑF@¾y5ñ¬¨*@î2Tv8G@ÇqÇÑ*@î2Tv8G@ÇqÇÑ*@*;
eI@_M<+).@êrû
eI@_M<+
tÚð2@¸ ëQØL@ä8
tÚð2@§
tÚ@ÏL@A§ ).@&  ÌI@}Ò'}Ò§.@&
ã8¾3@Oú¤Oú<M@
 Ì I@}Ò'}Ò§.@Á
S Ûd4@a¶`~M@²ä
lÁJK@~15@a
Nè´!0@Á
¶`~lM@²ä
ÁJ@K~15@
Nè´!0@
®GázÔM@
2Tv J@f ©Ëí 0@2Tv J@f ©Ëí 0
¦þ5@®GázÔM@
¦þ5@Be ©Ë¥M@!Ce ©Ë6@Be ©Ë¥M@!Ce ©Ë6@_,ùÅ OM@ 7@_,ùÅ OM@ 7@^M<+éL@ïîîîî¾7@^M<+éL@
8@ |ój L@ o^M
8@gffff6L@o^M<+Ú8@Ú@§
tJA@Æ _,ùÕA@¤p=
×ã@@,ùÅ _|A@¤p=
×ã@@,ùÅ
¦.gC@0
.gC@ WübÉ'E@xV4
Ï_|A@8‾&
E@ }@@áz
ð=C@Pú¤Oú
®GIA@8‾&
Q@Ál} Á
@@áz
ÜHÀÏ
®GIA@´¢
F¾QQ@;L]n
ov@@âYÑHÀ‾A@´¢
ÈHÀÏ F¾QQ@;L]n
ov@@âYÑHÀ‾A@Ò'}Ò'Ý@@çÕij¢±A@Ò'}
ÈHÀ¤p=
×;Q@|ójâaHÀ¤p=
×;Q@|ójâaHÀ ºÜþ oQ@HÀ7‾&¦HÀ ºÜþ oQ@HÀ7‾&¦HÀß¼ x¢Q@é >é HÀß¼ x¢Q@é >é HÀlÁlÁnQ@ã8 ã8¶HÀ8‾&
5J@¶`¶ÞeÀñ¬h$àJ@¶`¶ÞeÀñ¬h$àJ@8‾& Å eÀsû
5J@*;L]ÀeÀ ¦.—J@Âõ(\ ¦eÀgE#ß
J@Âõ(\ ¦eÀgE#ß
J@ß¼ xVÀeÀªËí2
J@QÙaêrùdÀ*;L]n¿J@rÇqeÀu¹ýA J@rÇqeÀu¹ýA J@  |ùdÀL]n ÁJ@1u¹ýAÈdÀ¤p=
×ûJ@+ øæádÀ1u¹ýA¶J@+ øæádÀ1u¹ýA¶J@DDDDDÈdÀDDDDDüJ@±äK~ÃdÀcêrû 4N@ >é >ÝdÀL~±äûM@ >é >ÝdÀ
¦tcÀ[°[ð2@
tÚ@sS@Ùaêrûã7@Ê
tÚ@sS@
t^S@J
t^S@À7‾&
¦tcÀ[°ôI
Ç[qð2@
DZ8@§
u5@Ú@§
D6@Yò
ÊS %¿
ScÀIÀ7‾&¾3@VUUUUÕ<@âYÑHÀOF@¾
Û_S@Ùaêrûã7@Ê
S@J ôI D6@YòS%¿Û_S@»Üþ
S@²äK~C
7@øæÕij
7@ß¼
xV4¢=@(}Ò'}zF@33333
xVXS@»Üþ
S@ïîîîîþ5@
C7@ß¼
ðÍ«xVXS@
7@ ðxV4
S@¹ýAÍ«Ê.5@!Ce
S@>é ß>éã7@
G6@F# ¼bS@
©§S@¹ýA
ð×Í«
£p=vS@>é
G6@F#
Ê.5@!Cß>¼
]4@6ñ¬h$ S@sû
]4@6ñ¬h$ S@`,ùÅ /5@sû
S@`,ùÅ /5@sû
T@Yò
T@³ÃÔåö§9@Ø
S@ïîîîîþ5@
%¿x:@!Ce-ØðÍ«©T@Yò
S@:m Ó
%¿x:@!Ce
Ú8@|ójâ©T@h$à
@³ÃÔåö§9@Ø
§9@|ójâYÙS@h$à
-Ø §9@|ójâYÙS@ÄÔåöÙ8@'  ØS@ÄÔåöÙ8@'  Ø S@¸
×£påS@Tv ºÜÎ4@>
×£påS@ºÜþ C¥5@/—?ÈPíS@ºÜþ C¥5@/—?ÈPíS@wwwww×4@Ýþ CeóS@wwwww×4@Ýþ CeóS@è´ N4@ÙaêrûïS@è´ N4@Ùaê
×£pm6@S ÛdT@=
×£pm6@S
¦.÷&@5ñ¬h$ÈS@
.÷&@5ñ¬h$ÈS@
ÛdT@ ©ËíB7@v
è´ N (@ºÜþøæÕÄ¿S@
T@ ©ËíB7@v è´ NºÜþ
(@T@Ü
øæÕÄ¿S@w
d¨ì8@ZÑHÀ7
ºÜþT@¼»»»»[%@³¢
'@ WÏ ¾S@w ºÜþoâS@
'@ WÏ ¾S@*;L (@4ðÍ«¥S@
*;L (
£S@"""""B*@×£p=
£S@ñ¬h$àÛ+@2Tv S@ñ¬h$àÛ+@2Tv S@ö(\ Âu-@gE#ß S@ö(\ Âu-@gE#ß S@è´ N/@ ã8 ã S@è´ N/@ ã8 ã S@
S@m Ó:m-@×£p=
S@ ©ËíÒ+@xV4ð S@ ©ËíÒ+@xV4ð S@7‾& m -@Oú¤OúpS@7‾& m -@Oú¤OúpS@ %¿Xò/@ñ¬h$àwS@ %¿Xò/@ñ¬h$àwS@
¦rS@ Nè´Q0@
¦rS@Oú¤Oú/@ÈPÙaênS@Oú¤Oú/@ÈPÙaênS@jâYÑH`-@i$à W_S@jâYÑH`-@i$à W_S@äK~±/@ -Ø -@S@äK~±/@ -Ø
wwóS@ú¤Oú¤-@xwwwwóS@bêrû l+@[°[ÜS@bêrû l+@[°[ÜS@!Ce ©Ë)@;L]n äS@!Ce ©Ë)@;L]n äS@ójâYÑh+@ÃÔå
4@4ðÍ«YK@bêrû
4@4ðÍ«YK@ Âõ(\?3@ Ûd¨$K@4ðÍ«iI@ij¢ ¿8@ðÍ« g%I@¾y5ñ 9@ðÍ« g%I@¾y5ñ 9@33333I@
×£p=Z:@33333I@
×£p=Z:@ gE#ÇH@¸ ëQ(;@ gE#ÇH@¸ ëQ(;@#ß¼ `H@Ϋ gEó;@
×£p=
L@¦.—?È:@*;L]n§K@ 6ÐiC9@*;L]n§K@ 6ÐiC9@Yò %¿@K@+ øæ 8@Yò %¿@K@+ øæ 8@i 6ÐÙJ@Üd¨ì8@i
J@ ø7@DDDDD
J@ ø7@>
×£p¥I@à WÏJ8@ %¿Xò I@®Gáz 8@ _,ùÅÂI@ÂlÁl9@Ø -Ø 5H@ ÊS <@cÉ/ ü
H@#ß¼ X=@ øæÕDH@ß¼ xö=@Ô:m «H@æö*+>@Ô:m «H@æö*+>@¥Oú¤OI@Nè´ > @¥Oú¤OI@Nè´ > @ðÍ« WI@¬ g
L@m Ó:;@wwwwwgL@ øæÕÄ#;@5ñ¬h$ L@ ¡²ÃÔU:@5ñ¬h$ L@ ¡²ÃÔU:@:m ÓöL@øæÕij²9@:m ÓöL@øæÕij²
× O@~±äK>9@¤p=
× O@~±äK>9@|ójâYP@ãYÑHÀW9@|ójâYP@ãYÑHÀW9@#ß¼ 4P@í0u¹ýQ9@#ß¼ 4P@í0u¹ýQ9@ xV4hP@Xò %¿X9@ xV4h
¦ÂP@à WÏÊ8@‾& 
Q@û
tj2@
tÚ@§-R@
tj2@m Ó
Æ7@<+
¦.—?HR@bêrû
:9R@Ú@§
ø>Q@4@ Ó
¡²ÃÔ @ã8 :ãø6@<+
m@R@î2TvH3@<+
1@¦.—?HR@bêrû
ø>Q@ ã8 1@ä8
ãø6@W
øBR@ ðÍ«
Ï FrQ@33333Ó6@ÿ
ã8RR@`,ùÅ
73@m Ó:Ï0@ä8
9R@Ú@§Ce
ã8RR@`,ùÅ
MQ@Ëí2TF6@—?ÈPÙqQ@ójâYÑx5@—?ÈPÙqQ@ó
Ï0@õI ôI_R@(}Ò'}0@õI ôI_R@(}
öS@_M<+é%@û
tº.@h$à
tÚ@ÿT@!Ce
tº.@ýA
öS@_M<+
Ê;éT@û¤Oú¤‾/@ýA
%@ò
T©;2@¤p=
@Û@§%¿XòS@EDDDD
Ê;T@û¤Oú¤‾/@N
'@ò %¿XòS@EDDDD
è´ nT@_,ùÅ
'@ %¿Xò
O0@N
T@èëQ¸
´ nT@_,ùÅ
)@ %¿XòO0@ Ó
T@ ëQ¸:)m@:m Ó
T@hE#Tß@.—?ÈP¹*@:m Ó
1@ Ó:m T@hE#ßT@.—
1@Ê
×U@Pú¤OúT2@ÑHÀ7‾.U@Ãõ(\ "3@ÑHÀ7‾.U@Ãõ(\ "3@Ï FbU@E#ß¼ª3@Ï FbU@E#ß¼ª3@>
×£p U@ÉPÙaêò3@>
×£p U@ÉPÙaêò3@è´ N¿U@0 übÉ¿4@è´ N¿U@0 übÉ¿4@±äK~ÍU@ÌÌÌÌÌ 5@±äK~ÍU@ÌÌÌÌÌ 5@åK~±V@Õåöê5@Ûd¨ìV
ÑV@Uv ºÜÎ6@sû
ÑV@Uv ºÜÎ6@®GázøV@G¾y56@®GázøV@G¾y56@ WÏ W @i$à W35@µ Nè
X@
W@µ
tÚ@Ç1@G
tÚ@
tÚ@Ç1@ñ¬h$à
*;L0@-ùÅ
Nè$5@*;L]n+W@Ýþ
X@5ñ¬h$à*@Õåö
¾y5 _8X@9
W@W@§ôI ã8
ôù0@G
X@¤p=
CeW4@*;L]n+W@Ýþ
s1@¾y5F¾W@
yUX@,
ôI øæ¥0@
ôù0@(}Ò'}
CeW4@øæÕij^W@³ÃÔåö÷3@øæÕij^W@³ÃÔåö÷3@Q¸
F¾yUX@,
W@Ò'}Ò'-0@
øæ¥0@?ÈPÙanX@<L]n
ëQ¸²W@ÄÔåö)0@IÀ7‾&æW@u
°/@?ÈPÙanX@<L]n
ëeW@æö°/@õI
ºÜþÀ/@IÀ7‾&æW@u
*+3@[°ôIs
[ W
×£*@ -Ø -¬X@ >é > )@ -Ø -¬X@ >é > )@ËS Û§X@
¦n'@ËS Û§X@
Ô%@
Ô%@/—?ÈPX@tÚ@§
¦n'@/—?ÈPX@tÚ@§
¡²Ã X@¬h$à 7$@ðÍ« ‾X@(}Ò'}²$@übÉ/  X@K~±ä#@übÉ/  X@K~±ä#@ų¢ X@~±äK~!@ų¢ X@~±äK~!
@tÚ`"@HÀ7‾&ÊX@
t«ªªªª2Y@¢
¦.×Y@«ªªªªªø?Ú@§
.×Y@«ªªªªªø?
Y@]n
Ê S SY@¡ò@¹ýA
o^ o^Mü#@HÀ7‾&ÊX@
ÊRY@
øæÕijÑ@¹ýA@ÊRY@
ÊS SY@
Ñ@o^Mü#@ų¢
B ÊSY@Æ _,ù
øæÕij
ÛX@
@ B übÉ/
ÊSY@ïîîîîvY@Æ
@Æ%@ų¢
_,ù @[°ÛX@
[°YübÉ/
_,ùE
@¼»»»»»
@0 übÉ£Y@ú¤Oú¤O
%@f@[°
©ËíëX@;L]n
[°Y@¼»»»»»
@ @¶`¶üX@
0'@f ©Ëíë
Z@{
t ®Gázõ?Ú@§
Z@{®Gázõ?hE#ßZ@}Ò'}Ò'@hE#ßZ@}Ò'}Ò'@0 übÉÛY@;L]n @¦.—?ÈÜY@³ÃÔåö
@ ÊS ßY@#ß¼ 8@ ÊS ßY@#ß¼ 8@Ò'}Ò'ÑY@0 übÉo@Ò'}Ò'ÑY@0 übÉo@<+ ø Y@ü
¦@gffffºY@¦.—?H'@À7‾& íY@±äK~Ñ%@bêrû Z @î2TvØ$@´¢ o6Z@Tv ºÜ>#@è´ N4Z@ÊS Û_"@Ýþ CegZ@Q"@Nè´
¦>[@ºÜþ C¥&@
¦>[@ºÜþ C¥&@xwwwwK[@Tv ºÜ>(@xwwwwK[@Tv ºÜ>(@Yò %¿\[@ ã8 ãØ)@¦.—?ÈT[@}Ò'}Ò'*@33333O[@ Nè´Á+
×£À1@\ Âõ( Z@p=
×£À1@1u¹ýAvZ@©ì0u¹ 2@1u¹ýAvZ@©ì0u¹ 2@Nè´ rZ@ o^M<[3@Nè´ rZ@ o^M<[3@yV4ð Z@ (4@ Z@£ o^M
×£5@7Ði 2[@¤p=
×£5@|ójâe[@Ï F¾5@ øæÕ|[@Úaêrûs5@ñ¬h$ào[@
¦.§4@ñ¬h$ào[@
tÚ@§7@Ôåö
tÚ@ÿ[@(}Ò'}Â5@«ªªªª2\@R¸
tÚ@ÿ[@(}Ò'}Â5@§
tÚ@§7@
¦.§4@K~±ä
lÁlm]@«ªªªª
:£]@§
[@#ß¼ 85@ËS ÛË[@
ëñ5@«ªªªª2\@R¸
o^M<{5@§ ëñ5@R¸ ëe\@kâYÑHP6@R¸ ëe\@kâYÑHP6@«ªªªªf\@Ø -Ø 7 @³Ã
8@ÑHÀ7‾r]@ü
v8@Õåö¦]@B ÊS 8@Õåö¦]@B ÊS 8@ Nè´Í]@ øæÕT9@ Nè´Í]@ øæÕT9@v¹ýA Æ]@çÕij¢!:@v¹ýA Æ]@çÕij¢
õ<@d¨ì0ue^@êrû
õ<@ ºÜþ w^@ó %¿XÂ=@ ºÜþ w^@ó %¿XÂ=@n ¡²C^@ZÑHÀ7?>@n ¡²C^@ZÑHÀ7?>@®Gáz^@>é >éC>@|ójâY ^@—
×£<^@þA Ê >@q=
×£<^@þA Ê >@Ùaêrûo^@÷*;Ü>@Ùaêrûo^@÷*;Ü>@.—?ÈPI^@Ï F¾©?@.—?ÈPI^@Ï F¾©?@—?ÈPÙ^@ò %¿Xò?@—?ÈPÙ^
Ö?@ >é >I^@ü
Ö?@ Nè´5^@ÿ Ce Q@@ Nè´5^@ÿ Ce Q@@*\ Âõ(^@kâYÑH¸@@*\ Âõ(^@kâYÑH¸@@É/ üb^@Uv ºÜA@8 ã8 _@ÇqÇq
`D@<+
ä_@u¹ýA
@ų¢ 'D@Ház
'D@tÚ@§
øJ_@
C@sÚ@§
C@ÍÌÌÌÌø_@)\
®xV4
/`@2Tv
ÈC@<+ºdD@Ház
ÂõøC@ÍÌÌÌÌø_@)\
øJ_@®/`@2Tv
xV4ÈC@¶`
ºdD@>é
¶ÂõøC@tÚ@§
L_@^M<+
>é5`@Ô
aC@¶`:¶m ËD@>é
L_@^M<+>é5`@Ô
aC@¶`¶H_@«ªªªªúB@
:m ËD@Ø -Ø O`@d¨ì0u)E@Çq
¶`¶H_@«ªªªªúB@M<
Çq¬
_@ ã8 ã A@×£p=
_@ ã8 ã A@«ªªªª _@@ÈPÙa:A@«ªªªª _@@ÈPÙa:A@í0u¹ýÑ_@hE#ß\A@í0u¹ýÑ_@hE#ß\A@ójâYÑ`@Ce ©ËuA@ójâ
×£p= a@*;L]n‾H@
×£p= a@*;L]n‾H@(}Ò'} a@1u¹ýAI@(}Ò'} a@1u¹ýAI@Ø -Ø a@gE#ß|I@Ø -Ø a@gE#ß|I@ %¿Xò¥a@ ÊS ãI@
""""¢K@ãYÑHÀa@¦.—?ØK@ãYÑHÀa@¦.—?ØK@Ház®3a@K~±äL@Ház®3a@K~±äL@|ójâYMa@i 6ÐaL@|ójâYMa@i 6ÐaL@
ÇM@2Tv Ðb@Ö£p=
ÇM@î2Tvêb@ò %¿XÊM@î2Tvêb@ò %¿XÊM@ü
c@£ o^¥M@ü
tÚ@
c@£M@
M@6ñ¬h$êb@¦
Ço^¥M@6ñ¬h$êb@¦
qÇc@»Üþ CuM@ÇqÇc@»Üþ CuM@ 6Ðic@°&  |M@ 6Ðic@°&  |M@ o^M<7c@¸ ëQ M@0 übÉ7c@
×£p=¢M@QÙaêrQc@/ übÉ M@QÙaêrQc@/ übÉ M@ ôI ôOc@ÑHÀ7‾þM@ ôI ôOc@ÑHÀ7‾þM@sû
ic@AN@sû
ic@AN@ o^M< c@L~±ä N@ o^M< c@L~±ä N@)\ Âõ c@¢²ÃÔåÆN@)\ Âõ c@¢²ÃÔåÆN@#ß¼ ¶c@>
×£påN@#ß¼ ¶c@>
tÚ@#d@L]n
×£påN@#
äJ@<+
äJ@tÚ@§
~c@tÚ@§
¦. L@;L]n
L@[°
ß¼ø[°c@
Ðc@TUUUUåN@#
áM@§
áM@QÙaêr
c@
xc@Xò
¾y5ñ|J@<+
%¿L@;L]n
ß¼d@
øÐc@TUUUUåN@
è´¾y5ñ|J@Æ
xc@Xò
c@ N«M@QÙaêr
%¿L@R¸
¦.—?êc@
_,ùëqc@
d@c@
èè´´übÉ/
NèN«M@Ház
NóN@
´±K@R¸
J@Ʀ.—?êc@
®ïc@L<+
_,ù
ëqc@
c@èN´übÉ/
è´±K@Ë
NóN@Ùaêrû
J@XM@Ház
S Ûuc@(}Ò'}JK@Ë
d®@ñïc@L<+
N@Ùaêrûd@
SXM@[°
ñÛuc@(}Ò'}
N@Ó[:°Õc@
m ýc@ è
tÚ@‾I@
¦ c@§
tÚ@§I@Õåö
tÚ@§I@Ëí2Tªc@§
tÚ@‾I@Ëí2Tªc@§
¦ c@§ Äc@—?ÈPÙéI@ÕåöÄc@—?ÈPÙéI@ ¦ .—Íc@QJ@`,ùÅ Íc@è´ NSJ@VUUUUçc@ |ój J@VUUUUçc@ | ój J@æö
üc@9 ã8 óJ@û
üc@9 ã8 óJ@e ©Ëíd@¦.—?@K@e ©Ëíd@¦.—?@K@i 6Ð/d@ÇqÇAK@i 6Ð/d@ÇqÇAK@Ó:m 7d@¸ ëQ¨K@Ó:m 7d@¸ ëQ
¹d@a¶`&N@×£p=
¹d@a¶`&N@Tv ºÜÒd@°&  N@Tv ºÜÒd@°&  N @Nè´ ìd@v ºÜþ8N@Nè´ ìd@v ºÜþ8N@ e@2Tv JN@ e @2Tv
5O@F#ß¼Rf@rû
,P@Å
,P@¤p=
5O@(}Ò'}lf@h$à
_,ùÍe@tÚ@§ WCO@(}Ò'}lf@h$à WCO@ 6Ði]f@?ÈPÙaªO@ 6Ði]f@?ÈPÙaªO@7‾& O f@ Ó:mP@7‾& O f@ Ó:mP@Z
×çe@« gE#1P@¤p=
×çe@« gE#1P@R¸ ëf@¾y5ñ¬<P@R¸ ëf@¾y5ñ¬<P@çÕij¢f@ó %¿X6P@çÕij¢f@ó %¿X6P@ÿ Ce 5f@ö(\ Â-P@ÿ Ce
¦._P@4ðÍ«EfÀ
¦._P@²ÃÔåö+fÀ»Üþ CaP@²ÃÔåö+fÀ»Üþ CaP@¸ ëQfÀHáz®cP@¸ ëQfÀHáz®cP@¸ ëQøeÀq=
×£<P@¸ ëQøeÀq=
×£<P@Âõ(\ ÞeÀ¿Xò %3P@Âõ(\ ÞeÀ¿Xò %3P@Tv ºÜÄeÀÇqÇq$P@Tv ºÜÄeÀÇqÇq$P@33333«eÀôI ôIP@
¦.eÀÜþ Ce'P@ëQ¸ eÀ¾y5ñP@ëQ¸ eÀ¾y5ñP@o ¡² eÀ -Ø -LP@o ¡² eÀ -Ø -LP@|ójâmeÀ×£p=bP@|ójâm
×£p=TeÀÈPÙaê P@
×£p=TeÀÈPÙaê P@yV4ðmeÀ*;LP@yV4ðmeÀ*;LP@¤p=
× eÀÀ7‾& ½P@¤p=
× eÀÀ7‾& ½P@sû
¡eÀ ¦.—ÃP@sû
tÚðP@¡Ó
tÚðP@
¡eÀ ¦.—ÃP@m Ó
ëQ¸ôeÀ@§
:mfÀà WÏ:þP@¡Ó
»eÀ²ä:Km
~ÅP@m Ó
fÀà WÏþP@"""""(fÀ
:»eÀ²äK~ÅP@z
S®GáÔeÀ
Û xV4ÄP@z®GáÔeÀ xV4ÄP@ ºÜþ »eÀß¼ x P@ ºÜþ »eÀß
Q@"""""(fÀS Û
Q@}Ò'}ÒAfÀö(\ ÂQ@}Ò'}ÒAfÀö(\ ÂQ@sû
[fÀ!Ce ©/Q@sû
[fÀ!Ce ©/Q@QÙaêrufÀ
¦:Q@QÙaêrufÀ
¦:Q@Ï F¾ f@-Ø -Ø>Q@Ï F¾ f@-Ø -Ø>Q@e ©Ëíef@ ¡²ÃÔQQ@e ©Ëíef@ ¡²ÃÔQQ@Ce ©ËKf@´¢ o^Q@Ce ©ËKf@
eQ@p^M<+2f@ërû
eQ@WÏ Ff@Ãõ(\ jQ@WÏ Ff@Ãõ(\ jQ@«ªªªªþe@±äK~yQ@«ªªªªþe@±äK~yQ@<+ øäe@XÏ FvQ@<+ øäe@XÏ FvQ@
×_Q@Âõ(\ Úd@¤p=
×_Q@u¹ýA Àd@a¶`bQ@u¹ýA Àd@a¶`bQ@ øæÕ¦d@"""""fQ@ øæÕ¦d@"""""fQ@<+ ø d@²ÃÔåögQ
×£p=nQ@(}Ò'}d@
×£p=nQ@Xò %¿üc@—?ÈPÙ¡Q@Xò %¿üc@—?ÈPÙ¡Q@ ¡²Ãâc@rÇq—Q@ ¡²Ãâc@rÇq—Q@ÉPÙaêÈc@!Ce ©¿Q@ÉPÙaêÈc@
×-c@ xV4¸Q@¤p=
×-c@ xV4¸Q@] Âõ(c@.—?ÈPµQ@] Âõ(c@.—?ÈPµQ@ | ójúb@»Üþ C½Q@ÀXò %õb@¿Xò %¿Q@YÑHÀ7Ûb@h$à ×Q@YÑH
×£pÁb@þA Ê÷Q@>
R@
×£pÁb@þA
ÊNSè´§b@É/
b@9Ê÷ã8
Q@übRN è@´§b@É/
ÊS b@9
übã8 R@V4ðÍsb@Pú¤OúR@V4ðÍsb@Pú¤OúR@è´ NZb@ÑHÀ7‾
R@è´ NZb@ÑHÀ7‾
R@ß¼ xV@b@"""""òQ@ß¼ xV@b@"""""òQ@³¢ o&b@¶`¶`ëQ@³¢ o&b@¶`¶`ëQ@\ Âõ(@b@|ójâR@\ Âõ(@b@|ójâR
b@åK~±(R@o^M<+
b@åK~±(R@Ði 6òa@³ÃÔåö+R@Ði 6òa@³ÃÔåö+R@'  Øa@ ¡²Ã,R@'  Øa@ ¡²Ã,R@ ¡²ÃÔ½a@(}Ò'}.R@ ¡²ÃÔ½a@
×£ö`@ÊS ÛçQ@q=
×£ö`@Ê
tÚ°Q@,ùÅ
tÚ@
tÚ°Q@Ði
`@£S 6B`@d¨ì0uÅQ@Ði
ÛçQ@-Ø
o^õQ@§-ØÜ`@
o^õQ@IÀ7‾&v`@xV4
_\`@A§ 6B`@d¨ì0uÅQ@Á
øæÕÄßQ@-Ø
ðÁQ@IÀ7‾&v`@xV4
-ØÜ`@
lÁ(`@
øæÕÄßQ@F#
ðÁQ@,ùÅ
:m ÓÞQ@Á
_\`@A§
lßÁ¼Â`@
(`@:¦m ÓÞQ@
.—?ØQ@F#xV4
ß¼Â`@
`@ ëQ¸
¦.—?ØQ@
ýQ@ xV4
6Ði`©@`@Ìí2TâQ@
ëQ¸ýQ@åK~±6
×£pi_@|ójâR@=
tÚ<R@@ÈPÙaþ]@
×£pi_@
tÚ<R@Ð|Fójâ
¾1^@A§
R@ ®Gáz@R@@ÈPÙaþ]@
5_@lÁl%R@ ®Gáz@R@+
5_@lÁl%R@Pú¤Oú
øæÉ]@_@ã8 ER@+ã8.R@Pú¤Oú
øæÉ]@_@ã8 ã8.R@½y5ñ¬Ì^@
ER@«ªªªª ]@Ï F¾øæÕÄ/R@½y5ñ
QR@«ªªªª ]
²[@v ºÜþ|R@û
|Z@Ház
tÚ|Z@
Z`R@¼»»»»
`R@
@lÁ
²[@vlÁjS@°
ÁjS@tÚ@§
o^ML[@ïîîîîbR@
|®ºÜþ|R@]n
 óVS@;L]n
?S@tÚ@§
?S@ß¼
óVS@A§
[@tÚ@§
[°ßY@S
xVHZ@Ãõ(\
¡~[@Ë
HZ@ýbÉ/
ÛhS@°o^ML[@ïîîîîbR@-ùÅ
S[FS@ß¼
Û°ßdS@;L]n
Y@S
R@]nÛxVHZ@Ãõ(\
h¡~[@Ë
S@33333«Y@µ
HZ@ýbÉ/
S ÛFS@åö
_dS@tÚ@§
[R@æö
@ N
Âõ(\SR@-ùÅ
è*`S@33333«Y@µ
³[@Ó'}Ò'qR@æö
Z@±äK~ES@åö
_[@*ZNÂõ(\SR@Ház
*@±ä
è³[@Ó'}Ò'qR@¼»»»»
`S@ëQ¸
K~ES@ wY@
¦ .—GZ@÷
®ãZ@ÈPÙaêJR@Ház
2Tv RS@ëQ¸
*;LS@
[@tÚ@§
¦.—GZ@÷
wY@
®ãZ@ÈPÙa
2Tv*;LS
RS@
×£p=²U@ ëQ¸nR@
×£p=²U@ ëQ¸nR@°[° U@à WÏvR@°[° U@à WÏvR@°[°KU@UUUUUmR@°[°KU@UUUUUmR@(}Ò'}U@áz®GmR@(}Ò'}U@áz
-T@ß¼ x"R@êrû
-T@ß¼ x"R@lÁlaT@Ìí2TR@lÁlaT@Ìí2TR@êrû
T@âYÑHÀR@êrû
T@âYÑHÀR@É/ übÉT@è´ NøQ@É/ übÉT@è´ NøQ@F#ß¼ÊT@Yò %¿ÄQ@F#ß¼ÊT@Yò %¿ÄQ@L]n ÁT@ÿ Ce Q@ëQ¸ Ë
× T@¦.—?ÈìQ@¤p=
×tÚ´S@³ÃÔåö
T@¦.—?ÈìQ@y5ñ¬hPT@ų¢
R@ÿ
@A§Ce S@ðÍ« gRóQ@y5ñ¬hPT@ų¢
@ÿ Ce S@ðÍ« gR@d¨ì0uMS@&¿Xò
óQ@y5ñ¬hT*@;L ýQ@d¨ì0uMS@&¿Xò
R@y5ñ¬hT@*;L ýQ@
R@*¦;L
.—?èS@J
S@[°[R*@ôI
;LSR@ [@°
¦.—[R
EQ@ÇqÇq¬R@sû
tÚ@ëP@2Tv
tÚ@ëP@Çq
EQ@M<+ ÇàR@
q\S@§
ºPS@é
[°[PQ@M<+
>é Q @2TvàR@
ºPS@é
[°[PQ@9
>é Q ã8
@ ¡²Ã
S @ S|@]n
óJQ@9¡>Q@
ã8 S @¡²Ã
| óJQ@.Ø
S@]n ¡>Q@v
-ØFS@_,ùÅ
ºÜþèR@Ï
?Q@.ØF¾-ØFS@_,ùÅ
9Q@v ºÜþèR@Ï
?Q@
¥P@L]n yQ@!Ce ©—P@5ðÍ«Q@p=
×£°P@5ðÍ«Q@p=
,R@`
R@M<+
×£°P@©ì0u¹áQ@
¶` Q@yV4
Q@tÚ@§
4R@ú¤Oú¤ãQ@""""":R@K~±ä
ðRd¨ì0©P@©ì0u¹áQ@
*@;LÍQ@yV4ðR@*;LÍQ@d¨ì0©P@Ø
‾[Q@
°[¶$R@J
`¶8R@K~±ä
-Ø R @
ôI @è´‾[Q@
°[¶N
$R@J
`ÔP@Ø
¶8R@}Ò'}Ò{Q@Û
ôI-ØR @Ø
R@è´
-ØNdÔ¨ì8R@}Ò'}Ò{Q@Û
P@ øæÕHR@wd¨ì8R@Õij¢
ºÜþìP@ HQ@
øæÕ
×£pQ@:m ÓBQ@>
×£pQ@:m ÓBQ@Üd¨ìLQ@|ójâY=Q@ )Q@ÙaêrûQ@[°[°õP@IÀ7‾&Q@[°[°õP@IÀ7‾&Q@~±äKÂP@ïîîîî2Q@~±äKÂP
<ÃL@33333+Q@ %¿Xò[L@wwwww'Q@$à W?L@F¾y5%Q@¦.—?ØK@Öij¢ $Q@¦.—?ØK@Öij¢ $Q@|ójâYqK@¾y5ñ¬Q@|ójâ
×£p=
K@i$à WQ@
×£p=
K@i$à
¦.Q@übÉ/
@W4WQ@"""""¢J@Ó
ðÍÓI@
lI@ ©ËíQ:@übÉ/
m Q@"""""¢J@Ó
lI@ ©ËíQ@Æ :m Q@«
_,ùIgE#
@8‾& Q@Æ K@÷ _,ùI*@8‾&
;<Q@«QgE#@ÑHÀ7‾K@÷ H@*;<Q@ÄÔåö
-Ø -øP@ÑHÀ7‾
¡J@f H@
©Ëí7Q@ÄÔåö
-Ø -øP@
F@cÉ/ ü P@&  
F@cÉ/ ü P@Ó'}Ò'¥E@Ï F¾ P@Ó'}Ò'¥E@Ï F¾ P@sû
=E@ÈPÙaê P@sû
=E@ÈPÙaê P@lÁlÁÖD@ 6Ði P@?ÈPÙaÒD@«ªªªª P@h$à WkD@Ϋ gE P@h$à WkD@Ϋ gE P@{®GáD@ übÉ/jP@{®G
¦ B@ ÊS KP@
¦ B@ ÊS KP@[°[ B@kâYÑHP@[°[ B@kâYÑHP@¿Xò %C@è´ N
P@V4ðÍÓB@ã8 ã8öO@J ôI lB@&  ôO@J ôI lB@&  ô
P@ÁlÁ\A@×£p=
P@ ¡²Ãô@@ WÏ P@ ¡²Ãô@@ WÏ P@,ùÅ _ @@¸ ëQ P@,ùÅ _ @@¸ ëQ P@UUUUU%@@¦.—?ÄP@«ªªªªÚ?@Á7‾&
õA@6Ði P@êrû
õA@6Ði
t C@Tv ºÜP@9P@—?ÈPÙùC@ýbÉ/
P@Û@§
ã8 [B@fffff P@9P@—?ÈPÙùC@ýbÉ/
ã8 [B@fffff P@àP@ Ó
WÏ:ÂB@d¨ì0u
m`D@a¶`¦P@à
P@ Ó:Wm`D@a
ÏÂB@d¨ì0u
¶`¦P@þA
P@ Ê%¿Xò+C@e
D@d¨ì0uÙP@þA
©Ëí P@Ê%¿
D
´M@
´M@_M<+
×£lQ@bêrûÙ;@uÚ@§
;@p=
Ü;@}Ò'}ÒGN@d¨ì0u©<@+ øæ]N@d¨ì0u©<@+ øæ]N@è´ Nx=@ôI ôIN@è´ Nx=@ôI ôIN@ÃÔåö©<@
×£¸M@ ;@p=
×£¸M@u¹ýA ::@K~±äËM@u¹ýA ::@K~±äËM@E#ß¼j9@QÙaêrÃM@wwwwwg9@ÑHÀ7‾¾M@S Ûd 8@M]n ¹M@S Ûd 8@M]n
ßL@¹ýA Ê~7@ÁlÁ L@¹ýA Ê~7@ÁlÁ L@|ójâY±6@6ñ¬h$ÈL@|ójâY±6@6ñ¬h$ÈL@þA Êã5@] Âõ(ÌL@þA Êã5@] Âõ(Ì
× C@çÕij¢m]@¤p=
× C@v ºÜþ ]@úÅ _, C@v ºÜþ ]@úÅ _, C@¦.—?Ô]@33333ÓC@¦.—?Ô]@33333ÓC@V4ðÍ^@J ôI
D@V4ðÍ^@J ôI
D@+;L]n;^@*;L]VD@@ÈPÙaæ]@î2TvHA@lÁlÁâ]@¿Xò %‾A@lÁlÁâ]@¿Xò %‾A@bÉ/ ü^@Ce ©ËB@bÉ/ ü^@Ce ©ËB@¤
m^@ò %¿XºB@sû
m^@ò %¿XºB@û
:^@$ß¼ èB@û

:^@$
@@ß¼ôIèB@u¹ýA
ôG@
@A§ @@Âl^Á
@cÉ/
G@ @@Â
üºB@Ϋ
lÁG@K~±ä?@@
gE#>@#*ß;LF@
¼ èF@Û
K~±ä?@@
d¨ìð>@Ãõ(\
*;LF@*;L]¦@@µ
JG@;L]n N0?@
è F@
PG@®Gáz
*;L]¦@@µ
þ?@ Ó
Nè:mxG@®Gáz
F@êrû þ?@ Ó:
A@fffff6F@êrû
A@fffff6F@Ô:m sA@N<+ hF@Ô:m sA@N<+ hF@øæÕijÚA@æö* F@øæÕijÚA@æö* F@±äK~AB@>é >é«F@±äK~A
EC@<+ øG@ërû
EC@<+ øG@
¦ÞB@|ójâÙF@
¦ÞB@|ójâÙF@¦.—?xB@Ϋ gE³F@¦.—?xB@Ϋ gE³F@B ÊSßB@¦.—?ÈPF@B ÊSßB@¦.—?ÈPF@fffffFC@ _,ùÅ*F@fff
×£p=ªE@?é >éD@¾y5ñ¬¨E@'}Ò'} D@ÞÝÝÝÝ}E@'}Ò'} D@ÞÝÝÝÝ}E@?é >éÓD@õI ôIE@?é >éÓD@õI ôIE@«ªªªª²D
f@±[°÷S@ xV40@±[°÷S@ xV40@ÞÝÝÝÝT@¥Oú¤Oú@ÞÝÝÝÝT@¥Oú¤Oú@Ò'}Ò'ET@p=
×£p@Ò'}Ò'ET@p=
tÚ@§m
×£p@ ºÜþ@N<+
wT@)\ Âõ¨DW@;L]n
@ ºÜþ wT@)\
+@cÉ/ ü>W@
Âõ¨@ß?ÈPÙajT@ôI
¼ xv)@cÉ/ ü>W@
ôIß@u¹ýA
ß¼ xv)@ÈPÙaê.W@±
ZT@Öij¢ @ýA [°Û'@ÈPÙaê.W@±
Ê;T@2Tv "@ýA
[°ÛÊ;'@û¤Oú¤/W
T@2Tv "@
@ñÍ« gE^@ü
¶6@ñÍ« gE^@ü
tÚ@c`@a
tÚ@S`@õ(\
¶6@Æ _,ù5^@
¶`ÎÂe@@É/
@@§
@@ è5@Æ _,ù5^@
I`@L]n
übÓ`@ÈPÙaê
É@@ è5@Ýþ Ce^@gffff¶6@Ýþ
I`@L]n É@@Ó:m 9`@K~±äCe^@gffff¶6@e
c@@Ó:m 9`@K~±ä ©Ëí
c@@§^@Ô:m  7@e ©Ëí^@Ô:m 
A@Ëí2TÆ`@
¦.¿a@åö*ëC@8‾&
ëC@
%¿Xò£@@Ëí2TÆ`@
»a@y5ñ¬h C@8‾&
%¿Xò£@@J
» a@y5ñ¬h
ôI ¬`@Ï
C@F6Ði¡a@¾y5ñ¬(C@
¾±@@J ôI ¬`@Ï F6Ði¡a@¾y5ñ¬(C@_M<+
¾±@@<+ ø `@2Tv
¡a@iºt@@<+
6ÐÁB@_M<+
ø ¡`
×£:a@G¾y5QA@q=
×£:a@G¾y5QA@ïîîîî a@[°[HA@ïîîîî a@[°[HA@Ϋ gEa@ÇqÇ A@Ϋ gEa@ÇqÇ A@ í`@kâYÑHÈ@@
¦^A@"""""Î`@
¦^A@®Gáz´`@¿Xò %?A@®Gáz´`@¿Xò %?A@lÁlÁ `@rÇq'A@lÁlÁ `@rÇq'A@ `@E#ß¼â@@ `@E#ß¼â@@áz®Gg`@B Ê
‾`@Ìí2T¾A@êrû
‾`@Ìí2T¾A@ ëQ¸È`@1u¹ýAÆA@ ëQ¸È`@1u¹ýAÆA@ Ó:mâ`@i$à WÛA@ Ó:mâ`@i$à WÛA@û
ü`@tÚ@§ÍA@û
a@Â
taü@`@lÁ_,ùÅ
tÚ@§ÍA@Ϋ
4B@Ú@§
B@ΫB@Â
B@Ú@§
gElÁ0gEa@ùÅ _,yB@ÂlÁ0a@ùÅ _,yB@ øæÕÄIa@u¹ýA B@ øæÕÄIa@u¹ýA B@¶`¶`ca@ôjâYÑøB@¶`¶`c
 a@é >é ÆC@ü
 a@é >é ÆC@""""" a@>
×£p-D@""""" a@>
×£p-D@7Ði a@ß¼ xV D@7Ði a@ß¼ xV D@ |ój¤a@ö(\ ÂmD@ ¾a@5ðÍ«ÁF@¦.—?Øa@d¨ì0uaF@¦.—?Øa@d¨ì
tÚ´a@
@+ øæ?@WÏ Fn`@¾a@IÀ7‾&ÆI@
øæÕ,J@A§
øæÕ,J@ _,ùÅâ?@ o^M<Eb@G
¾a@IÀ7‾&ÆI@^M<+
¾y5AF@5ñ¬h$2b@¼Ãa@ų¢
xV4ÚE@5ñ¬h$2b@¼
_I@^M<+Ãa@ų¢
xV4ÚE@®Gáz
_I@z5ñ¬hÄa@
Db@Üd¨ì@F@I
¶`¶øH@zô
¦öF@m Ó:Áa@
b@ú¤Oú¤
¦öF@ xV4
H@L]n
H@)\
Öa@ Âõ
ëQ¸b@´¢
]G@ xV4
oæH@)\
Öa@ ëQ¸
Âõb]@´¢
G@¸?ÈPÙïa@@ÈPÙa
oæH@ |ójöa@G¾@¸?ÈPÙïa@@ÈPÙa
y5ñLI@ | ójöa@¾Gy5ñLI@ôjâYÑîa@¤p=
@IÀ7‾&âa@ÄÔåö G@IÀ7‾&âa@ÄÔåö
׳I@ôjâYÑîa@¤p=
tÚ@a@}Ò'}ÒwK@
tÚ@a@}Ò'}ÒwK@A§
tÚ¸Q@ðÍ«
tÚ¸Q@
׳I@ÈPÙaêäa@ªªªªª
|ójâgsf@A§
fÀ¤p=d¨ì0'a@S
J@*;L]êa@¹ýA
ÛdK@ ÊSÊfJ@ÞÝÝÝÝáa@UUUUUÍJ@ÞÝÝÝÝáa@UUUUUÍJ@Úaêrû×a@
b@Ï F¾ÁF@ ôI ô b@ÊS Û F@ ôI ô b@ÊS Û F@ xV4fb@»ÜþøæÕÄ3K@Úaêr
CEF@ xV4f
׿Q@|ójâ fÀ¤p=
׿Q@Æ _,ùefÀ43333»Q@Æ _,ùefÀ43333»Q@kâYÑHLfÀ,ùÅ _ÀQ@kâYÑHLfÀ,ùÅ _ÀQ@¡Ó:m2fÀ >é >ÉQ@¡Ó:m2fÀ
LfÀa¶`âQ@ü
´R@
´R@®Gáz
tÚ¤a@'
¦L.-e@¬
fÀa%¿Xò
¶`â Q@M<+
b@tÚ@§
xgE#qQ@_M<+
R@
b@ÍÌÌÌÌ°R@
ëQ¸ a@|ójâY]R@
ffÀ|ójâYåQ@M<+
e@ÈPÙaê~Q@_M<+
%¿Xò b@ÍÌÌÌÌ°R@ãYÑHÀ—b@+
ëQ¸ a@|ójâY]R@¹ýA
effÀ|ójâYåQ@Ë
@ÈPÙaê~Q@¶`¶S`ùd@lÁ
ʤa@
Û øæ±R@ãYÑHÀ—b@+
fÀ~±ä
¶`¶lXR@¹ýA
ÁvQ@¶`
KâQ@˶Sʤa@
`ùd@lÁ
Û fÀ~±ä
¶`
øæ±R@
¶lXR@¢²ÃÔå¾a@
ÁvQ@
KâQ@¦ 6Ði
.—Ñb@í2Tv¸R@
6Ðie@cÉ/
f@¥Oú¤OâQ@
übÉ/RR@¢²ÃÔå¾
üfQ@¦.—Ñb@í
6Ði
6Ðie@c
—b@¤p=
×ÏR@sû
—b@¤p=
×ÏR@Æ _,ù b@¢²ÃÔåÎR@Æ _,ù b@¢²ÃÔåÎR@û
 b@a¶`ÚR@û
 b@a¶`ÚR@Ï Fjb@xV4ðÙR@Ï Fjb@xV4ðÙR@o^M<+Pb@©ì0u¹åR@ÍÌÌÌÌza@!Ce ©³R@(}Ò'} a@³ÃÔåö—R@(}Ò'} a
×£p=Èa@Ï F¾½R@
tÚ@ÇR@÷
×£p=Èa@Ï
tÚ@§ýR@®Gáz
tÚ@ÇR@½
tÚ@§ýR@S*;üa@
xV4âa@§
ÛFȾ®a@
½R@kâYÑHâa@ÍÌÌÌ̸R@kâYÑHâa@ÍÌÌÌ̸R@é
a@o^M<+
WÏ ÂR@÷*;üa@ WÏ ÂR@1u¹ýAb@~±äKÊR@1u¹ýA >é bÈa@
@~±ä
-ØKÊR@a-ÔR@é
¶`üa@
>é Èa@ õR@a
-Ø -ÔR@½
¶`üa@xV4âa@§
õR@ xV
S@®Gáz®a@o^M<+
S@ %¿Xò a@è´ NèR@ %¿Xò a@è´ NèR@ ±äKza@f ©Ëí÷R@ ±äKza@f ©Ëí÷R@fffff`a@[°[S@fffff`a@[°[S@ä8 ã8
RtÚ
<+
@DDDDDl_@tÚ@§
@ýbÉ/
Õ_@ Ó
S@¡²ÃÔåzY@@§
S@lÁ :Á®Y@ÑHÀ7‾
l _@gffff>R@ýbÉ/
m`R@Ï F¾¡_@S@lÁ ëQ¸l _@gffff>R@Oú¤Oúl_@
=Á®Y@ÑHÀ7‾
R@&   ^@p^M<+>R@è´
S@K~±äãY@Öij¢
lN
ÁlÐ]R@Oú¤Oúl_@
^@ S@K~±ä
øæÕ8R@è´ãY@Öij¢
lÁNlÐ]R@¿7‾&
^@ S@ú¤Oú¤
øæÕ8R@¾y5ñ¬
9_@M<+
Z@sû _@ d¨ì01R@¾y5ñ¬
lR@¿7‾& 9_@_
S@ú¤Oú¤Z@sû
S@¢²ÃÔåJZ@Ø -Ø S@¢²ÃÔåJZ@Ø -Ø S@33333Z@lÁlÁ¶S@33333Z@lÁlÁ¶S@æö*ãY@p^M<+ÊS@æö*ãY@p^M<+ÊS
¦T@¨ì0u¹©X@
tÚ@§W@lÁ
X@ã8
¦T@í0u¹ýuX@
ã8T@7Ði
@+
lÁþS@¿Xò
ÁþS@§ÚW@yV4
>é øæ
>õS@í0u¹ýuX@
%sW@DDDDDìS@¿Xò
ðT@7Ði ÚW@yV4
>é ð>õS@Ce
T@§ ©ËAX@ F¾y ?W@¤p=T@Ce ©ËAX@ F¾y T@+
%sW@DDDDDìS@ų¢ øæ
×ãS@ų¢ ?W@¤p=
×ãS@33333sW@øæÕijæS@33333sW@øæÕijæS@B ÊS§W@J ôI ÌS@B ÊS§W@J ôI ÌS@e ©ËíÛW@2Tv ÆS@e ©ËíÛW@2T
¦.X@Ê/ übÁS@
¦.X@Ê/ übÁS@ o^M<CX@À7‾& ¹S@ o^M<CX@À7‾& ¹S@ ¦ .—wX@ øæÕijS@ ¦.—wX@ øæÕijS@Ði 6¬X@¤p=
׳S@Ði 6¬X@¤p=
׳S@/ übÉßX@ºÜþ CµS@®GázæW@ WÏ RT@ F¾y±W@ú¤Oú¤GT@ F¾y±W@ú¤Oú¤GT@£ o^}W@>é >éCT@£ o^}W@>é
T@'  W @û
T@è´ NGW@Öij¢ T @è´ NGW@Öij¢ T@Ði 6|W@Ï F¾T@Ði 6|W@Ï F¾T@ ¦ .—‾W@ìQ¸ T@ ¦ .—‾W@ìQ¸ T@6ñ¬h$äW@
T@6ñ¬h$äW@¹ ëQ
T@2tTv
Ú@§NX@
X@ÞÝÝÝÝ
ºÜþ T@2Tv NX@ ºÜþ T@ ôI ô!X@E#ß¼BT@ ôI ô!X@E#ß¼BT@ ¡²ÃìW@é >é RT@ %¿Xò V@ d¨ì0MT
=T@û
T@ ëQ¸5T@û
T@ ëQ¸5T@í0u¹ýÍS@ 6Ði=T@ų¢ 'S@:m ÓâS@°&  \S@ìQ¸ ßS@°&  \S@ìQ¸ ßS@î2Tv(S@³ÃÔåöçS@æö*ÇV@¹ý
×£<R@p^M<+ÞS@p=
×£<R@<+ øªS@ ºÜþ 3R@rÇq7S@8‾& R @Ìí2TjS@S Ûd(R@Ìí2TjS@S Ûd(R@ ºÜþ 7S@ß¼ xVR@p^M<+ R@çÕij¢AR@
FR@ Âõ(\«Q@û
FR@QÙaêrwQ@ÕåöBR@K]n yM@yQ@k 6ÐáM@E#ß¼ Q@k 6ÐáM@E#ß¼ Q@øæÕijzM@ªËí2|Q@À7‾& H@/—?ÈPEQ@êrû
H@#ß¼ `Q@êrû
H@#ß¼ `Q@%¿Xò íH@:m ÓVQ@%¿Xò íH@:m ÓVQ@Æ _,ù H@kâYÑH0Q@Æ _,ù H@kâYÑH0Q@ÒHÀ7‾H@Ñi 68Q@à Wϲ
ÝQ@Ù -Ø eJ@sû
¦ÝQ@HÀ7‾&þI@
. L@Ï FVR@õ(\
R@*;L]ÞQ@`
ÂåL@PÙaêroR@õ(\
¶`~L@Ùaêrû«R@
ÂåL@PÙaêroR@
*;L]L@ Ûd¨¬R@
ß¼*xNM@L]n
;L]L@ Ûd¨¬R@/ R@ú¤Oú¤
übÉ‾K@²ÃÔåö
M@ ¡²Ã¤R@ÄÔåöR@/ übÉ‾K@²ÃÔåö
M@¡Ó:m R@ÄÔå R@
×_P@8‾& ùR@¤p=
tÚ@÷N@:m Ó
×_P@8‾&
¦.ïL@ú¤Oú¤ãR@ÒHÀ7‾
.ïL@ú¤Oú¤ãR@
ùR@¶`
S@
@§:m Ó
¶` P@ñ¬h$àÿR@¶`
N@5L@Oú¤OúØR@ÒHÀ7‾
ðÍ«S@:m Ó
¶`N@5
P@ñ¬h$àÿR@Ê
ðÍ«L@Oú¤OúØR@
S@+ øæ%N@
S ÛÇP@
KgE#
~±ä
*;L]
SL@+
@aS@Ê
¶`ÊSR@.—?ÈPÑL@-Ø
øæ%N@
ÛÇP@*gE#
;L]S@Tv
@  -Ø
|ºÜ¾M@ñ¬h$àûR@Tv
ûP@
T@M<+
[°[S@  8M@
|ûP@
Çq
[°ÇTºÜ¾M@
[S@M<+
@B
ÏG@ øæÕÄT@×£p=
$T@_,ùÅ
$T@kâYÑH H@6ñ¬h$$T@kâYÑH H@6ñ¬h$$T@0
ÏG@ 7H@tÚ@§
øæÕÄT@_,ùÅ 7H@tÚ@§ übÉI@@ÈPÙa:T@0 übÉI@@ÈPÙa:T@}Ò'}ÒoI@³¢ o:T@}Ò'}ÒoI@³¢
tÚ@§M@6Ði "T@¡²ÃÔåN@?ÈPÙa6T@¡²ÃÔåN@?ÈPÙa6T@6Ði vN@ÄÔåö5T@6Ði vN@ÄÔåö5T@¾Xò %ßN@åK~±8T@¾Xò %
×£xF@Ìí2T&T@¨
P@u¹ýA .T@6Ði
P@u¹ýA .T@: ã8 «O@ªËí2,T@: ã8 «O@ªËí2,T@µ NèDO@ Âõ(\3T@ ëQ¸6K@²äK~AT@&¿Xò K@ij¢ CT@&¿Xò
¦C@'  ì F@Ði 6¸B@'  ìF@Ði 6¸B@rû
F@ùB@9 ã8 «H@ì0u¹ý©C@è´ NpH@i$à WCC@è´ NpH@i$à WCC@¤p=
× H@ß¼ xVÜB@¤p=
× H@ß¼ xVÜB@à WÏêH@Ï F¾¹B@à WÏêH@Ï F¾¹B@/—?ÈPQI@ |ózB@/—?ÈPQI@ | ózB@î2Tv¸I@®GázVB@î2Tv¸I@®G
×£p=êJ@
×£p=ÚB@
×£p=êJ@
×£p=ÚB@d¨ì0uéJ@AC@ gE#ïY@û
 *@Ìí2T"Z@ )@Ìí2T"Z@ )@þA ÊïY@ Ó:m *@ß¼ x~]@½ xV4r@@9m Ó²]@Öij¢ ¸@@9m Ó²]@Öij¢ ¸@@ÑH
[@ %¿XòsJ@:m Ó
[@ %¿XòsJ@h$à W×Z@Ði 6PJ@h$à W×Z@Ði 6PJ@Gáz®£Z@¬ gE#1J@Gáz®£Z@¬ gE#1J@î2TvpZ@çÕij¢ÙI@î2TvpZ
[@—?ÈPÙñJ@ß¼ x
[@—?ÈPÙñJ@ëQ¸
t Y@ªªªªªL@ ôI3[@ójâYÑXK@ëQ¸
ôÁY@£ o^L@ ôI3[@ójâYÑXK@5ñ¬h$L[@*;L]n¿K@Ú@§
ôÁY@£ o^L@#ß¼ ÐY@³¢ o¶K@#ß¼ ÐY@³¢ o¶K@1u¹ýAÒY@²ÃÔåöOK@1u¹ý
tÚ@ÛT@fffff
×£p=îV@
tÚ@OG@
ttÚ@OG@F
tÚLS@øæÕijRE@,ùÅ
tÚLS@øæÕijRE@A§
¦U.¿R@î2Tv0G@¸
@ýbÉ/Ǿqy5
.¿R@î2Tv0G@
ÇÜG@§
YS@§
o^M
H@@§K@gffffNT@
S@ÑHÀ7‾FG@F
ëQ_R@
ÜT@
S@33333[E@Q¸
|ójâÉF@¸
¾6Ði
¾y5
y5ñôJ@
mS@ÑHÀ7‾FG@¾y5ñ¬ÀS@
H@ ëQtÚ@§
R@ÜT@
ë¹N@HÀ7‾&^F@
|T@Üþ
ójâÉF@
6ÐiCe/K@
mH@Nè[´°WgE#
[tÏR@kâYÑH0G@¸
Ú@§
ôT@QÙaêrÓH@
_G@¾y5ñ¬ÀS@
N@
T@Üþ
Ûd¨ÄF@
Ce/K@£
[ëQ
°W
[ôT@QÙaêrÓH@ójâYÑàT@
ÏgE#
S@ìQ¸
_o^µT@õI
N@
G@¬Ûd[E@
¨ÄF@áYÑHÀ‾N@Ϋ
gE#ôIgK@£
S@ _,ùÅ*G@¬
øæÕLS@ ¾¾o^µT@õI
y5ñ
y5ñlH@ójâYÑ
EgE+G@áYÑ
@gE#ôIgK
S@
øæÕ
×£¨R@IÀ7‾&~Y@q=
×£¨R@6Ði JY@tÚ@§©R@6Ði JY@tÚ@§©R@[°[°Y@bêrû ÈR@[°[°Y@bêrû ÈR@lÁláX@ðÍ« R@lÁláX@ðÍ« R@ Nè´
×3A@Pú¤OúäN@¤p=
×3A@Pú¤OúäN@è´ N;A@?é >éKO@è´ N;A@?é >éKO@Ï F¾¡A@ übÉ/O@Ï F¾¡A@ übÉ/O@{®Gá:A@^M<+qO@õ(\ Â5A
C@ZÑHÀ7M@ü
C@ZÑHÀ7M@B ÊS§B@ o^M<SM@B ÊS§B@ o^M<SM@ß¼ xC@ øæÕLM@3Tv ºì>@%¿Xò ÝN@@ÈPÙaº?@±N@@ÈPÙaº?@±N
H@h$à @@êrû
H@1u¹ýAî@@ºýA ÊvH@1u¹ýAî@@ºýA ÊvH@gE#ßTA@ðÍ« gEH@gE#ßTA@ðÍ« gEH@³ÃÔåö A@¡²ÃÔåÞG@³ÃÔåö A@¡²
×£0A@Ò'}Ò'ÅG@q=
×£0A@Ò'}Ò'ÅG@$à W A@5ðÍ«H@$à W A@5ðÍ«H@Öij¢ 0A@%¿Xò MH@Öij¢ 0A@%¿Xò MH@"""""Ê@@ÿ Ce yH@""""
×£D@´¢ o¾H@q=
×£D@Pú¤Oú$I@¦.—?(D@Pú¤Oú$I@¦.—?(D@û
¾H@Ï F¾iD@û
¾H@Ï F¾iD@kâYÑHhH@¦.—?ÐD@kâYÑHhH@¦.—?ÐD@L]n H@ |ó2E@L]n H @ | ó2E@¨ì0u¹½G@Ï F¾ E@¨ì0u¹½G@Ï
¦ÆF@¾y5ñ¬ÀG@
¦ÆF@ Âõ(\'H@þA ÊëF@ Âõ(\'H@þA ÊëF@~±äK H@2Tv G @~±äK H@2Tv G @ðÍ« gõH@\ Âõ(LG@ðÍ« gõH@\ Âõ(L
×£p= I@ Âõ(\çE@
×£p= I@ Âõ(\çE@DDDDDäI@ E@DDDDDäI@ E@33333KJ@Ø -Ø eE@33333KJ@Ø -Ø eE@}Ò'}Ò7J@ÑHÀ7
×£E@(}Ò'}âJ@q=
×£E@
¶`¶(K@p^M<+ªD@
¶`¶(K@p^M<+ªD@ÕåöÂJ@ËS Û_D@ÕåöÂJ@ËS Û_D@  |[J@êrû
-D@  |[J@êrû
-D@Ãõ(\ ÂJ@2Tv ºüC@Ãõ(\ ÂJ@2Tv ºüC@UUUUU J@Ï F C@|ójâÁM@"""""
tÚ@§
G@Ϋ M@
gE[M@p^M<+òF@Ϋ
Ï FæE@Â
E@ lÁìM@¦.—?¸E@Â
gE[M@p^M<+òF@î2Tv(M@¼»»»»
lÁìM@¦.—?¸E@F#ß¼RN@7‾&
F@î2Tv(M@¼»»»»
Í E@F#ß¼RN@7‾&F@¹ýA
ÍE@wwwww
ÊM@ øæÕ$F@¹ýA
N@  |3F@®ÊGáz|H@
M@ øæÕ
tBH@
¦VK@°
è´[N°ãH@J
F@ùÅôI
_,©H@
K@#èß´¼ NøH@âYÑHÀ—J@í0u¹ý
F@ùÅ _,©H@ÉF@e ©ËíI@
H@è´ ÉN£J@í0u¹ý
F@e ©ËíI@Ði
H@è´60G@cÉ/
N£J@½ üxV4RH@
I@Ði 60G@cÉ/
ôI ô üK@S
I@ F¾ÛydGHF@Û@
@
.c@o
õb@µ N¡²ó;À*;L]n3c@{ójâYÁ<À*;L]n3c@{ójâYÁ<À#
è8À7Ði üb@ WÏ &8À ¡²ÃÔc@åK~±ô8À ¡²ÃÔc@å
ß¼K~±ô8À6ñ¬h$
*c@ c@ì0u¹ýÁ9À6ñ¬h$c@ì0u¹ýÁ9ÀçÕij¢#c@îî
¦ =À#ß¼ *c@
tJCÀ
¦ =Àÿ
ña@ÏCeFn#c@
CÀPÙaêr×a@Ϋ
¾y5ñ\>Àÿ CegECCÀPÙaêr×a@Ϋ
#c@¾y5ñ\>Àe ©ËígECCÀ
c@o^M<+*?Àe
øæÕĽa@
©Ëíc@o^M<+*?À_,ùÅ
øæÕ$CÀ øæÕĽa@c @r
øæÕ$CÀ'
Çq÷?Àų¢ ¤a@Ê
c @¾y5ñ¬8
S ÛCÀ'
tÚ@
×£pOa@9AÀÇqÇã85a@§
AÀIÀ7‾& aÓAÀ´
@®Gáz
N¦èAÀIÀ7‾&
Ha@ ºÜþaÓAÀQÙaêrOa@z5ñ¬hlAÀQÙaêrOa@z5ñ¬hlAÀ
@®Gáz¦AÀ 6Ði/a@ ÇqÇ5a@§
¦.?AÀ 6Ði/a@
¦.?AÀæö*9a@ Ó:mØ@Àæö*9a@ Ó:mØ@ÀìQ¸ =a@²äK~q@ÀìQ¸ =a@²äK~q@Àh$à %a@[°[Ø@Àh$à %a@[°[Ø@À %¿
×£p=JAÀ8‾& å `@
×£p=JAÀi$à
@ÀPÙaêr
tÚ@'@Àà
tÚ@'@À Âõ(\`@Ô
W ϶_@§
:Wá`@i$à
m 
_@‾&@ÀtÚ@§u`@Ó'}Ò'?À
 $@ÀEDDDD
Wã@Ài$à b@
Wá`@i$à
Âõ(\_DÀK~±ä
tÚ@§u`@Ó'}Ò'?À
Wã@À©ì0u¹Ç`@ú¤Oú¤
b@ß¼ÏxÆDÀK~±ä
F\`@}Ò'}Ò
@À©ì0u¹Ç`@ú¤Oú¤
b@ß?À
¼ÏxÆDÀYò
F\`@}Ò'}Ò
%¿@Àb@*?À
Û;L-EÀYò
d[¨º`@«
°[B`@gE#!@À
%¿ b@*?À
Û
;L-E
[d°
¨º[
×£ð@À»»»»»»^@q=
tÚ@§!^@âYÑHÀ÷@Àó
tÚ@§!^@âYÑHÀ÷@À
×£ð@Àß¼ xV ^@33333%¿Xî]@¡²ÃÔå
AÀß¼ xV ^@33333
AÀ ÊSAã]@çÕij¢1AÀ©Ëí2°]@
À ã8 ãT^@$ß¼ è@À ã8d¨ì0EAÀ©Ëí2°]@
ãT^@$ß¼ è@À d¨ì0EAÀ¾y5ñ¬|]@ ôI ô AÀ
ç\@z5ñ¬h\@À×£p=
ç\@z5ñ¬h\@ÀGáz®ï\@ | óê?ÀGáz®ï\@ |óê?À?é >é×\@Ï F?À?é >é×\@Ï F?ÀgE#ßÀ\@ÿÿÿÿÿO>ÀgE#ßÀ\@ÿÿÿÿÿO
×£ ^@
¦¾1Àq=
×£ ^@
:`@]n
tÚ@g.Àÿ
tÚ@g.Àd¨ì0u5`@§
¦¾1À(}Ò'}
¡2+À
Ce 2+`@m Ó
^@—?ÈPÙñ0À:m Ó
Tv D`@¸
:Í,Àÿ
ëQØ)ÀÐi
Ce¾+`@m Ó
^@¾y5ñ¬
6^`@QÙaêr;)ÀÐi
:Í,ÀtÚ@§
0ÀÞÝÝÝÝÝ^@Æ
6^`@QÙaêr;)À¤p=
_,ùe1ÀÞÝÝÝÝÝ^@Æ _,ùe1À 6Ðiã^@¾y5ñ¬ 0À 6Ðiã^@¾
×w`@ xV4 (À¤p=
×w`@ xV4 (ÀØ -Ø `@?é >é3(ÀØ -Ø `@?é >é3(Àß¼ xx`@|ójâ &Àß¼ xx`@|ójâ &ÀS Û `@À&ÀðÍ« ¡`@_,ùÅ
])ÀR¸ ëa@sû
])À5ñ¬h$ü`@ gE#ß*À5ñ¬h$ü`@ gE#ß*ÀôI ôIù`@|ójây,ÀÇqÇë`@?é >és-ÀëQ¸ a @²ÃÔåöÇ.ÀëQ¸ a@²ÃÔåöÇ.À
³a@w ºÜþ`.Àërû
³a@w ºÜþ`.ÀôI ôI±a@;+ øÆ,ÀôI ôI±a@;+ øÆ,ÀlÁlÁ°a@ìQ¸ ++Àä8 ã8´a@ß¼ xV´*À¸ ëQ¸a@2Tv )À¸ ëQ
+b@õI ôI /Àsû
+b@õI ôI /Àí0u¹ý/b@2Tv º 0Àí0u¹ý/b@2Tv º 0À _,ùÅ@b@|ójâY1À _,ùÅ@b@|ójâY1Àa¶`@b@M<+ (2À
¶`
tÚ@_\@}ójâYQ
¶ @ Nè´]]@wwwwww
@Ùaêrû+\@
§ @[°[|°Q]@m Ó
 ój@Ùaêrû+\@
:@[°|[ ój
°Q]@m Ó
@ :@ ±äK]@z5ñ¬hä@ ±äK]@z5ñ¬hä@ Nè´ù\@m Ó:@4ðÍ« \@
¶`¶ø[@ @
¶`¶ø[@ @³ÃÔåöÏ[@ ëQ¸ @³ÃÔåöÏ[@ ëQ¸ @ bêrû [@ ëQ¸ û?n Ó:Á\@f ©Ëí @ Ï F¾ \@ß¼ xV@YÑHÀ7ÏW@^M
@ ¡²ÃÔ5X@rû
@,ùÅ
@ú¤Oú¤÷X@HÀ7‾&
@iX@"""""b
_ÄX@tÚ@§
@iX@"""""b
@ú¤Oú¤÷X@HÀ7‾&
@ ã8 @wwwww
ã X@ | ó*
Y@@ ã8 ã X@ |ó*@,ùÅ _ÄX@tÚ@§
¦.—@¸ ëQ<Y@y5ñ¬h$ý? ÊS oY@ übÉ/ ú? ÊS oY@ übÉ/ ú?âYÑHÀ Y@Öij¢ ë?âYÑHÀ Y@Öij¢ ë? | óÊY@à W
¦ÆX@ó %¿Xòá?

@¨ì0u¹ñW@cÉ/
@)\
tÚ÷¿$à
¦ÆX@ó
X@ÍÌÌÌÌL
Âõ$X@
%¿Xòá?
W Z@h$à
Ûd@¨ì
A§üâÇ>é
Çq @qXX@
¨ì0u¹ñW@cÉ/
WÀ>µX@É/
$àã8W Z@h$à
ã¸
übÉõ?
@Çqüâ
ÇqXX@
W@>é
ÀcÉ/
ü>µX@É/
ã8
üÎW@2Tv
ã¸@)\
übÉõ?A§
Âõ$X@
º @ øæÕÌX@´¢
Ûd¨ì o^ü¿Æ _,ù©X@v ºÜþ ï¿Æ _,ù©X@v ºÜþ
®Z@lÁlÁÀü
tÀ®übÉ/
«Z@gE#Å[@tÚ@§
lÁø[@
lÁÀà®WGáz
ÏzZ@÷*;ÌÀà WÏzZ@÷*;ÌÀQÙaêrKZ@v¹ýA Êþ¿ i[@-Ø -Ø @ %¿Xò?[@Õåö*ô? %¿Xò?[@Õåö*ô?
ÀübÉ/ ø[@®Gáz
ÀK~±ä+\@bêrû
ÀK~±ä+\@bêrû
Àæö*_\@Ce ©Ëm Àæö*_\@Ce ©Ëm Àß¼ x \@-Ø -Ø
ÀÈPÙaê¢\@!Ce ©Ë
À[ÑHÀ7§\@ò¬h$à À [ÑHÀ7§\@ò¬h$à À «ªªªªÚ\@í0u¹ýÁÀ«ªªªªÚ\@í0u¹ýÁÀ
ףp=]@Ϋ gE# ×£p=]@Ϋ gE# ÀôjâYÑ$]@ F¾yµÀôjâYÑ$]@ F¾yµÀé >é "]@ñ¬h$à ø¿é >é "]@ñ¬h$à ø¿+ øæU]@@ÈPÙaê
×£p=ñ?çÕij¢y]@=
×£p=ñ?w ºÜþ¬]@¾y5ñ¬ê?w ºÜþ¬]@¾y5ñ¬ê?u¹ýA ]@ÑHÀ7‾&ú?u¹ýA ]@ÑHÀ7‾&ú? ]@{®Gáz@ ]@{®Gáz@Ò'}Ò'
×ó[@F¾y51À¤p=
×ó[@F¾y51ÀÖij¢ À[@ ã8 ã¸ÀÖij¢ À[@ ã8 ã¸Àm Ó: [@ Àm Ó: [@ À , øæY[@åö*{À, øæY
ÀS Û<\@ _,ùÅ À  |o\@4ðÍ« À  |o\@4ðÍ« ÀÐi 6<\@Ç _,ùÅÀ«ªªªª \@ïîîîî. ÀÆ _,ùÑ\@ïîîîî. ÀÆ _,ùÑ\
"Àã8 ã8Â]@sû
Ý"ÀÀ7‾& õ]@übÉ/ ¼"ÀÀ7‾& õ]@übÉ/ ¼"ÀPú¤Oú(^@ÈPÙaê²#ÀPú¤Oú(^@ÈPÙaê²#ÀÀ7‾& õ]@h$à ×#ÀÀ7‾& õ]
×C"À±äK~y_@¤p=
×C"À ¡²Ã¬_@¾y5ñ¬ !À ¡²Ã¬_@¾y5ñ¬ !ÀºÜþ Cy_@B ÊS÷ ÀºÜþ Cy_@B ÊS÷ À`¶`F_@é >é ~!ÀÁ7‾& _@´¢
¦.wÀÄÔåök`@ o^M<«ÀÄÔåök`@ o^M<«À´ Nèr`@7Ði vÀYò %¿^@ 6Ði]À %¿Xòß]@cÉ/ ü"À %¿Xòß]@cÉ/ ü"ÀlÁ
×£Ô]@.Ø -Ø ü¿q=
×£Ô]@.Ø -Ø ü¿Oè´ Þ]@|ójâYï¿Æ _,ùõ]@®Gázì¿ÝÝÝÝÝé]@ Ó:m ³¿ÝÝÝÝÝé]@ Ó:m ³¿K~±ä^@
¦.ç?K~±ä^@
¦.ç?¥Oú¤O6^@z5ñ¬h$õ?¥Oú¤O6^@z5ñ¬h$õ?sû
i^@Tv ºÜþð?sû
tÚ@
tÞ?
tÚ@/^@ÞÝÝÝÝÝõ¿v¹ýA
tÞ?Ü
tÚ@ð?
i^@Tv
lÁ^@+
d¨ìl]^@ffffffÞ?
übÉ/¶^@ÄÔåö
ºÜþð?ÃÔåö
^@tÚ@§
øæÕõ¿¨
øæÕõ¿|Ò'}Òk^@÷æÕij¢þ¿Ce
lê^@A§
Á?Ù
l]^@ffffffÞ?:m Ó
b^@:m Ó
-Ø é^@:ë¿v¹ýA©ËU^@è´
øæÕÄë?Ù
b^@:m Ó
*^@K~±ä
-Øè:áÿ¿ÃÔåö
N ë¿
é^@
?:m Ó
¡²ÃÔ *øæÕÄë?)\
^@
^@ì0u¹ýA
^@K~±ä
ß¼ xVè¿
á?è´
ÀÂõÃÔåö
_@lÁ
N^@¦.—?ÈPÑ¿è´
¡²ÃÔ lÁ^@
^@ì0u¹ýA
ó?)\ß¼ xVè¿n Ó
Âõ
À_@lÁ
ã8
N^@¦.—?ÈPÑ¿
ãlÁ:^@
óÉ^@e
?[°[©Ëíâ¿n Ó
_°@o^M<+
¦ .—#^Ù
À ã8 ã ^@[°[°
ÀÀ7‾& ¹^@bêrû À À7‾& ¹^@bêrû Àò %¿X ^@cÉ/ ü"ÀHÀ7‾&f^@®Gáz.À=
×£pA^@ xV4ð À=
×£pA^@ xV4ð À!""""^@ÕåöªÀ!""""^@ÕåöªÀ8 ã8 ^ @lÁlÁÀ8 ã8 ^ @lÁlÁÀ£ o^^@kâYÑH@À£ o^^@kâYÑH
¦Z_@_M<+ þ¿É/ üb^@ùÅ _,yÀlÁlÁ¦^@*;L]®ÀlÁlÁ¦^@*;L]®ÀðÍ« «^@Ï F¾yÀ øæÕÄ^@*;L À
¦Æ^@®GázÔÀ
¦Æ^@®GázÔÀ5ñ¬h$À^@`,ùÅ À5ñ¬h$ _@ d¨ì0õÀQÙaêr»_@>é >é ÀQÙaêr»_@>é >é À -Ø - _@¥Oú¤OúÀj 6
À¿Xò %9`@Í« gE£
ÀØ -Ø ` @!Ce ©Ë
ÀØ -Ø ` @!Ce ©Ë
Àj 6Ð`@z5ñ¬h¤ À*;L]Ð`@ o^M¼À¤p=
××`@µ NèôÀ¤p=
tÚÀ
××`@µÀ1u¹ýABa@!Ce
Àè´Nèô
N;a@A§
ÀCe ©ËÏ`@¨ì0u¹½
©KÀEDDDD a@
À¾y5ñN`è@Ði
´A"ÀýbÉ/
6ÐÉ?33333
a@-Ø
`@ -ØÂ
gE#ßÀýbÉ/
Ü?33333a@-Ø
`@ gE#-ØÂ
ßÜ?ÀOú¤Oúla@¾y5ñ¬h
øæÕ`@?é >éÀOú¤Oúla@
Ö¿ | ójê_
ÀCe ©Ë `@8‾& 
tÚ@é¿
ÀójâYÑ¢`@&¿Xò
S Û `@ übÉ/ ¥À Ø¿
¦.—µ`@ê
S Û `@>éübÉ/
¾À Ø¿õ(\
`@ÒHÀ7‾&
£`@
À `@ÒHÀ7‾&
F¾y5á¿õ(\
À*;L]
£`@
`@+F¾y5á¿=øæÕÀ*;L] `@+ øæÕÀÑHÀ7‾h`
×£p½`@ d¨ì0uç¿=
×£p½`@ d¨ì0uç¿Ò'}Ò'Ç`@ ø¿Ò'}Ò'Ç`@ ø¿ ÊS Å`@
¦.—À¦.—?ÈÎ`@fffffæÀî2Tvè`@ö(\ Âõ
Àî2Tvè`@ö(\ Âõ
ÀÔåöa@¡²ÃÔåvÀÔåöa@¡²ÃÔåvÀCe ©Ëa@5ðÍ« ÀS Ûd&a@ðÍ« gEÿ¿è´ N@a@×£p=
×ø¿è´ N@a@×£p=
×ø¿i 6ÐYa@lÁlÁþ¿i 6ÐYa@lÁlÁþ¿lÁlsa@433333ÀlÁlsa@433333Àæö* a@ ôI ôIÀ ôI ôï`@7‾&  ù¿_,ùÅ
¦ b@{®Gá:À
¦ b@{®Gá:À!Ce ©9b@ ©ËírÀ!Ce ©9b@ ©ËírÀ£ o^Sb@ gE#ßÀ£ o^Sb@ gE#ßÀ ºÜþ mb@ -Ø -ØÀ ¡²Ã^b@Ó
×£ªb@ *;L="Àp=
tÚ@
tZ
×£ªb@ À®Gáz
À¼»»»»áa@Ýþ
*;L="ÀË
b@[° È[a@Ú@§
°e$À§
°e$À`,ùÅ
S Û¹b@¸
Ceçub@ºÜþ
ëQØ#ÀË
À¼»»»»áa@Ýþ
CS$Û¹b@¸
À`,ùÅ Ceçub@ºÜþ
ëQØ#À
À¤p=ðÍ«C$Ób@
À°& | \b@
ó $Àu¹ýA
ôI ôi"À°&
Âb@¾y5ñì$À
 \b@ ôI ã8ôi"Àbêrû
ã¨b@N<+ Hb@ų¢ $À ã8Ïã¨b@
Àß¼
×Ùa@¬ gE# "À¤p=
c@
ÀÀ4
×Ùa@¬
À»»»»»ñb@Ø
Àd¨ì0u
ðÍ«¡²ÃTgE#
c!c@
@L~±ä

ëQ¸Þ
-ØKxV4
-À À»»»»»ñb@Ø
Àa@ì0u¹ýa"À
!c@ ëQ¸Þ-ØÀxV4
d¨ì0u
-Àa@ì0u¹ýa"ÀkâYÑH¦a@
ÀÏcF
@L~±ä
Øb@Pú¤Oú$
K À~±äKVc@ê
¡²Ãt"ÀCe
>é ¾ÀÆ©Ë_,ùoc@Öij¢
c@, øæÀÀÀÆ îîîîî
_,ùoc@Öij¢
c@K~±äËÀîîî
ÀÀ¸
×À WÏ lb@`,ùÅ _ÿ¿´ NèRb@&¿Xò ¥À´ NèRb@&¿Xò ¥À
¦lb@ ôI ôIÀ
¦ ^@M<+ h2@ übÉ/ ^@
×£p= 1@ übÉ/ ^@
×£p= 1@ o^M< ^@ Ûd¨Ì0@ o^M< ^@ Ûd¨Ì0@ WÏ j^@*;L]nÿ/@ WÏ j^@*;L]nÿ/@Ê/ üb]^@&¿Xò e.@Ê/ üb]^@
ú]@®Gáz./@û
ú]@®Gáz./@ø*;^@»Üþ Ce0@ø*;^@»Üþ Ce0@Î F¾^@"""""21@Î F¾^@"""""21@XÏ F^@ Âõ(\ÿ1@XÏ F^@ Âõ(\ÿ
µ'@S Û_@êrû
µ'@ôjâYÑÐ^@5ñ¬h$(@  |^@Ôåö
+@ÒHÀ7‾J^@µ NèÔ*@ÒHÀ7‾J^@µ NèÔ*@ gE#c^@E#ß¼:)@ gE#c^@E#ß¼:)@Ház®/^@ójâYÑ*@!Ce ©_@ ()@ gE
(@Õåö_@(}Ò'}'@þ Ce A_@ -Ø -x%@þ Ce A_@ -Ø -x%@
¦._@þA Ê'@åK~±\_@ o^M #@ÁlÁ _@ ¡²ÃÔ"@ÁlÁ _@ ¡²ÃÔ"@áz®G _@ ôI ôi @áz®G _@ ôI ôi @[ Âõ(¤_@õ
× ^@|ójâ @£p=
× ^@|ójâ @ù¤Oú¤ ^@8‾& Í @ù¤Oú¤ ^@8‾& Í@ gE#»^@ÍÌÌÌÌL @ gE#»^@ÍÌÌÌÌL @¦Oú¤Oî^@kâYÑH@!@¦Oú¤Oî^
!_@lÁl!!@rû
tÚ@ë^@ªËí2Ô$@
tÚ@ë^@ªËí2Ô$@§
!_@lÁl!!@ÍÌÌÌÌT_@F#
6Ðiÿ^@¹ýA
ß¼ú!@ÍÌÌÌÌT_@F#
Ên&@*;L]â^@«ß¼ú!@î2Tv\_@Ëí2T
gE#Á%@çÕij¢Ñ^@ÑHÀ7‾&$@çÕij¢Ñ^@ÑHÀ7‾&$@kâYÑHÔ^@ªªªªª
#@W4ðÍ_@ä8 ã8n&@Üd¨ì_@?é >éÓ$@Üd¨ì_@?é"@
¡^@lÁlÁ#@êrû
¡^@lÁlÁ#@+;L]n—^@Ô:m ³$@4ðÍ« ^@K~±äË'@µ Nè´^@ F¾y5'@µ Nè´^@ F¾y5'@ÂlÁ°^@{®Gá %@ÂlÁ°^@{®Gá %
7%@ÝÝÝÝÝé]@×£p=
7%@é >é ¶]@¾y5ñì#@é >é ¶]@¾y5ñì#@¾y5ñ ]@ÈPÙaêR"@¾y5ñ ]@ÈPÙaêR"@Á7‾& ]]@-Ø -Ø!@Á7‾& ]]@-Ø -Ø
×£p ]@Ò'}Ò' "@=
×£p ]@Ò'}Ò' "@¾y5ñ¬°]@ùÅ _,9$@¾y5ñ¬°]@ùÅ _,9$@ß¼ xÎ]@Ó:m Ó%@ ¦.—!c@÷*;Ì9Àú¤Oú¤'c@*;L]nÿ8Àú¤
×£puEÀ8‾& a e@=
×£puEÀ£ o^Ge@ðÍ« g EÀ,ùÅ _0e@ÚaêrûÛEÀ
¦e@FÀ
¦e@FÀ 6Ðiýd@v ºÜþ8FÀ 6Ðiýd@v ºÜþ8FÀÉ/ übãd@ö(\  FÀÉ/ übãd@ö(\  FÀÛd¨ìÎd@y5ñ¬hìFÀÛd¨ìÎd@y
×£èd@«ªªªª"GÀp=
×£èd@«ªªªª"GÀ?ÈPÙae@ øæÕ,GÀ?ÈPÙae@ øæÕ,GÀ&  e@F#ß¼RGÀ&  e@F#ß¼RGÀj 6Ð5e@³ÃÔåöGGÀj 6Ð5e
¦öFÀų¢ Oe@
¦öFÀýbÉ/ `e@M<+ FÀÿ Ce ee@ ¡²ÃdFÀ
¦.ye@~±äKþEÀ
tÊEÀýA
tÊEÀ
¦.ye@~±ä
*;Lye@Û@§
Ê e@í0u¹ýáEÀýA
KþEÀðÍ« _e@¡²ÃÔå¦EÀ
Ê e@í0u¹ýáEÀ
ðÍ« _e@¡²ÃÔå¦EÀ
Ûd¨¨e@9*ã8
;Lye@Û@§
{EÀ Ûd¨¨e@9 ã8 {EÀé >é ¼e@ 6ÐiEÀ:m Óf@wwwww×C
}CÀí2TvÆe@sû
}CÀùÅ _,×e@é >é CÀ ¡²ÃÔÓe@lÁlÁfBÀsû
íe@ÍÌÌÌÌ BÀsû
íe@ÍÌÌÌÌ BÀG¾y5f@ %¿XòÛBÀG¾y5f@ %¿XòÛBÀ øæÕ f@«ªªªªúBÀ øæÕ f@«ªªªªúBÀ2Tv º:f@n ¡²
CÀµ NèÚe@Ï F¦BÀµ NèÚe@Ï F¦BÀe ©ËíÅe@
¦>BÀe ©ËíÅe@
¦>BÀ,ùÅ _°e@âYÑHÀ×AÀ,ùÅ _°e@âYÑHÀ×AÀÒHÀ7‾¢e@ójâYÑpAÀÒHÀ7‾¢e@ójâYÑpAÀS Ûd¼e@è´ N AÀS Ûd¼e@è

Вам также может понравиться