Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
db0baced
Commit
db0baced
authored
Apr 04, 1996
by
Jack Jansen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added support for editing override preferences in applets
parent
bbb4e10e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
181 additions
and
74 deletions
+181
-74
Mac/scripts/EditPythonPrefs.py
Mac/scripts/EditPythonPrefs.py
+132
-25
Mac/scripts/EditPythonPrefs.rsrc.hqx
Mac/scripts/EditPythonPrefs.rsrc.hqx
+49
-49
No files found.
Mac/scripts/EditPythonPrefs.py
View file @
db0baced
...
@@ -18,13 +18,20 @@ DIALOG_ID = 512
...
@@ -18,13 +18,20 @@ DIALOG_ID = 512
TEXT_ITEM
=
1
TEXT_ITEM
=
1
OK_ITEM
=
2
OK_ITEM
=
2
CANCEL_ITEM
=
3
CANCEL_ITEM
=
3
REVERT
_ITEM
=
4
DIR
_ITEM
=
4
DIR
_ITEM
=
5
TITLE
_ITEM
=
5
# Resource IDs in the preferences file
# Resource IDs in the preferences file
PATH_STRINGS_ID
=
128
PATH_STRINGS_ID
=
128
DIRECTORY_ID
=
128
DIRECTORY_ID
=
128
OPTIONS_ID
=
128
# Override IDs (in the applet)
OVERRIDE_PATH_STRINGS_ID
=
129
OVERRIDE_DIRECTORY_ID
=
129
OVERRIDE_OPTIONS_ID
=
129
READ
=
1
WRITE
=
2
WRITE
=
2
smAllScripts
=
-
3
smAllScripts
=
-
3
kOnSystemDisk
=
0x8000
kOnSystemDisk
=
0x8000
...
@@ -61,7 +68,7 @@ def message(str = "Hello, world!", id = MESSAGE_ID):
...
@@ -61,7 +68,7 @@ def message(str = "Hello, world!", id = MESSAGE_ID):
n
=
ModalDialog
(
None
)
n
=
ModalDialog
(
None
)
if
n
==
1
:
break
if
n
==
1
:
break
def
interact
(
list
,
pythondir
):
def
interact
(
list
,
pythondir
,
title
):
"""Let the user interact with the dialog"""
"""Let the user interact with the dialog"""
opythondir
=
pythondir
opythondir
=
pythondir
try
:
try
:
...
@@ -70,16 +77,20 @@ def interact(list, pythondir):
...
@@ -70,16 +77,20 @@ def interact(list, pythondir):
except
os
.
error
:
except
os
.
error
:
pass
pass
d
=
GetNewDialog
(
DIALOG_ID
,
-
1
)
d
=
GetNewDialog
(
DIALOG_ID
,
-
1
)
tp
,
h
,
rect
=
d
.
GetDialogItem
(
1
)
tp
,
h
,
rect
=
d
.
GetDialogItem
(
TITLE_ITEM
)
SetDialogItemText
(
h
,
title
)
tp
,
h
,
rect
=
d
.
GetDialogItem
(
TEXT_ITEM
)
SetDialogItemText
(
h
,
string
.
joinfields
(
list
,
'
\
r
'
))
SetDialogItemText
(
h
,
string
.
joinfields
(
list
,
'
\
r
'
))
## d.SetDialogDefaultItem(OK_ITEM)
d
.
SetDialogCancelItem
(
CANCEL_ITEM
)
while
1
:
while
1
:
n
=
ModalDialog
(
None
)
n
=
ModalDialog
(
None
)
if
n
==
OK_ITEM
:
if
n
==
OK_ITEM
:
break
break
if
n
==
CANCEL_ITEM
:
if
n
==
CANCEL_ITEM
:
return
None
return
None
if
n
==
REVERT_ITEM
:
##
if n == REVERT_ITEM:
return
[],
pythondir
##
return [], pythondir
if
n
==
DIR_ITEM
:
if
n
==
DIR_ITEM
:
fss
,
ok
=
macfs
.
GetDirectory
(
'Select python home folder:'
)
fss
,
ok
=
macfs
.
GetDirectory
(
'Select python home folder:'
)
if
ok
:
if
ok
:
...
@@ -91,42 +102,62 @@ def interact(list, pythondir):
...
@@ -91,42 +102,62 @@ def interact(list, pythondir):
rv
.
append
(
i
)
rv
.
append
(
i
)
return
rv
,
pythondir
return
rv
,
pythondir
def
main
():
def
getprefpath
(
id
):
# Load the path and directory resources
try
:
try
:
h
=
OpenResFile
(
'EditPythonPrefs.rsrc'
)
sr
=
GetResource
(
'STR#'
,
id
)
except
Res
.
Error
:
except
(
MacOS
.
Error
,
Res
.
Error
):
pass
# Assume we already have acces to our own resource
return
None
,
None
d
=
sr
.
data
l
=
restolist
(
d
)
return
l
,
sr
def
getprefdir
(
id
):
try
:
dr
=
GetResource
(
'alis'
,
id
)
fss
,
fss_changed
=
macfs
.
RawAlias
(
dr
.
data
).
Resolve
()
except
(
MacOS
.
Error
,
Res
.
Error
):
return
None
,
None
,
1
return
fss
,
dr
,
fss_changed
def
openpreffile
(
rw
):
# Find the preferences folder and our prefs file, create if needed.
# Find the preferences folder and our prefs file, create if needed.
vrefnum
,
dirid
=
macfs
.
FindFolder
(
kOnSystemDisk
,
'pref'
,
0
)
vrefnum
,
dirid
=
macfs
.
FindFolder
(
kOnSystemDisk
,
'pref'
,
0
)
preff_fss
=
macfs
.
FSSpec
((
vrefnum
,
dirid
,
'Python Preferences'
))
preff_fss
=
macfs
.
FSSpec
((
vrefnum
,
dirid
,
'Python Preferences'
))
try
:
try
:
preff_handle
=
FSpOpenResFile
(
preff_fss
,
WRITE
)
preff_handle
=
FSpOpenResFile
(
preff_fss
,
rw
)
except
Res
.
Error
:
except
Res
.
Error
:
# Create it
# Create it
message
(
'No preferences file, creating one...'
)
message
(
'No preferences file, creating one...'
)
FSpCreateResFile
(
preff_fss
,
'Pyth'
,
'pref'
,
smAllScripts
)
FSpCreateResFile
(
preff_fss
,
'Pyth'
,
'pref'
,
smAllScripts
)
preff_handle
=
FSpOpenResFile
(
preff_fss
,
WRITE
)
preff_handle
=
FSpOpenResFile
(
preff_fss
,
rw
)
return
preff_handle
# Load the path and directory resources
def
openapplet
(
name
):
fss
=
macfs
.
FSSpec
(
name
)
try
:
try
:
sr
=
GetResource
(
'STR#'
,
PATH_STRINGS_ID
)
app_handle
=
FSpOpenResFile
(
fss
,
WRITE
)
except
(
MacOS
.
Error
,
Res
.
Error
):
except
Res
.
Error
:
message
(
'File does not have a resource fork.'
)
sys
.
exit
(
0
)
return
app_handle
def
edit_preferences
():
preff_handle
=
openpreffile
(
WRITE
)
l
,
sr
=
getprefpath
(
PATH_STRINGS_ID
)
if
l
==
None
:
message
(
'Cannot find any sys.path resource! (Old python?)'
)
message
(
'Cannot find any sys.path resource! (Old python?)'
)
sys
.
exit
(
0
)
sys
.
exit
(
0
)
d
=
sr
.
data
l
=
restolist
(
d
)
try
:
fss
,
dr
,
fss_changed
=
getprefdir
(
DIRECTORY_ID
)
dr
=
GetResource
(
'alis'
,
DIRECTORY_ID
)
if
fss
==
None
:
fss
,
fss_changed
=
macfs
.
RawAlias
(
dr
.
data
).
Resolve
()
except
(
MacOS
.
Error
,
Res
.
Error
):
dr
=
None
fss
=
macfs
.
FSSpec
(
os
.
getcwd
())
fss
=
macfs
.
FSSpec
(
os
.
getcwd
())
fss_changed
=
1
fss_changed
=
1
# Let the user play away
# Let the user play away
result
=
interact
(
l
,
fss
)
result
=
interact
(
l
,
fss
,
'System-wide preferences'
)
# See what we have to update, and how
# See what we have to update, and how
if
result
==
None
:
if
result
==
None
:
...
@@ -159,6 +190,82 @@ def main():
...
@@ -159,6 +190,82 @@ def main():
CloseResFile
(
preff_handle
)
CloseResFile
(
preff_handle
)
def
edit_applet
(
name
):
pref_handle
=
openpreffile
(
READ
)
app_handle
=
openapplet
(
name
)
notfound
=
''
l
,
sr
=
getprefpath
(
OVERRIDE_PATH_STRINGS_ID
)
if
l
==
None
:
notfound
=
'path'
l
,
dummy
=
getprefpath
(
PATH_STRINGS_ID
)
if
l
==
None
:
message
(
'Cannot find any sys.path resource! (Old python?)'
)
sys
.
exit
(
0
)
fss
,
dr
,
fss_changed
=
getprefdir
(
OVERRIDE_DIRECTORY_ID
)
if
fss
==
None
:
if
notfound
:
notfound
=
notfound
+
' and '
+
'directory'
else
:
notfound
=
'directory'
fss
,
dummy
,
dummy2
=
getprefdir
(
DIRECTORY_ID
)
if
fss
==
None
:
fss
=
macfs
.
FSSpec
(
os
.
getcwd
())
fss_changed
=
1
dummy
=
dummy2
=
None
# Discard them.
if
notfound
:
message
(
'Warning: initial %s taken from system-wide defaults'
%
notfound
)
# Let the user play away
result
=
interact
(
l
,
fss
,
name
)
# See what we have to update, and how
if
result
==
None
:
sys
.
exit
(
0
)
pathlist
,
nfss
=
result
if
nfss
!=
fss
:
fss_changed
=
1
if
fss_changed
or
pathlist
!=
l
:
if
fss_changed
:
alias
=
nfss
.
NewAlias
()
if
dr
:
dr
.
data
=
alias
.
data
dr
.
ChangedResource
()
else
:
dr
=
Resource
(
alias
.
data
)
dr
.
AddResource
(
'alis'
,
OVERRIDE_DIRECTORY_ID
,
''
)
if
pathlist
!=
l
:
if
pathlist
==
[]:
if
sr
.
HomeResFile
()
==
app_handle
:
sr
.
RemoveResource
()
elif
sr
and
sr
.
HomeResFile
()
==
app_handle
:
sr
.
data
=
listtores
(
pathlist
)
sr
.
ChangedResource
()
else
:
sr
=
Resource
(
listtores
(
pathlist
))
sr
.
AddResource
(
'STR#'
,
OVERRIDE_PATH_STRINGS_ID
,
''
)
CloseResFile
(
app_handle
)
def
main
():
try
:
h
=
OpenResFile
(
'EditPythonPrefs.rsrc'
)
except
Res
.
Error
:
pass
# Assume we already have acces to our own resource
if
len
(
sys
.
argv
)
<=
1
:
edit_preferences
()
else
:
for
appl
in
sys
.
argv
[
1
:]:
edit_applet
(
appl
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
print
# Stupid, to init toolboxes...
print
# Stupid, to init toolboxes...
main
()
main
()
Mac/scripts/EditPythonPrefs.rsrc.hqx
View file @
db0baced
(This file must be converted with BinHex 4.0)
(This file must be converted with BinHex 4.0)
:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a
'KE-!N!3"!!!!#bN
:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a
4jf8!N!3"!!!!#bJ
!!!S
T!!!"(
6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4
!!!S
S!!!"+
6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4
SEfj3FQ9QFbjbFh*MF`)!!!
!rN!B!!$q3#!#3'+eNVN-!N!B-4[m4`+KT!4e!%Ir
SEfj3FQ9QFbjbFh*MF`)!!!
"bFh*M8P-!!(*cFQ058d9%!3!!!!%!N"1YC+j$!*!
c%h!!%#lrmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R(N39$!!!('85F!!3,N-
'$&(r%F#SD3%G3"(rma0`!"!Zrr1pdK&Q%&%f[P9V!3,fK[P9V!3%`86)"Caj
9$!!!(f)'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!)&-#+!#r!#iL!1d*!J%
%&3`!!"aP%R!!%#j$&3`!!"pL"R!"B!!"!3)X@P3Y,N5p!3!E2!&Q-#G92KT+J#"
!3)-Sfc36UGF[$%kk!3P+CfX"!+CA3cS!!!%!!!%!!!!#J!!!"%!!!!JJ!!!3%!
!
6!LJ![`!Z)J$Y#3)"!%#$+0Xd%kRA,`a1ZJ%*5QGV!3#Q9d-k!!!"!!!"!!!!!S
!
!
)BJ!!%'%!!#$`J!"!m%!!JIiJ!3(K%!)"!)J%!MK%#!6))K!(L"mJ!2J1N!-!$N
!
!!4!!!!))!!!%"!!!#')!!""K!!!Jm)!!32"!!)(q)!%"i4!#!3#)"!)i4!J%b#
J%`!k%"$J2!J-(MJ%!!(i!J`!1!%5!%!!N[L!!%`"!!!J!J!!%!3!!!J)!!!%%!!
)3"iJI)!$i$T!$!!j)"-!1K!3i$`)$"ii"!!"q!)-!$J"%J"!!*,iJ!"-!3!!)!)
!!
L!!!!&!!!!!J!!!!3!!!!1!!!!(`!!!$q!!!"r`!!!rq!!!Ir`!!2rq!!(rr`!
!!
"!%!!!)#!!!""!!!!)J!!!"3!!!!)!!!!%!!!!$J!!!"m!!!!rJ!!!Im!!!2rJ
$rrq!"rrr`!rrrq!Irrr`2rrrq(rrrrcrrrrqIrrrrcrrrriIrrrm$rrrq!IrrrJ
!!(rm!!$rrJ!"rrm!!rrrJ!Irrm!2rrrJ(rrrm$rrrrKrrrrmrrrrrRrrrrmrrrr
$rrri!Irr`!$rri!!Irm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!!!#!!*!%#P$
q(rrrr!rrrrJ(rrri!rrrq!(rrm!!rrq!!(rr!!!rrJ!!(r`!!!ri!!!(m!!!!q!
J!"k%J!!(S5!!!!!(39"36!#3"Ka3HA3`!!!!!8C548B!N!@!5801)`#3"!%X!!!
!!!(!!!!!J!#3"!T3i!!HK)!!"k%J!!!!"d&38%`!N!C!!3!#J!4!#f!6N!!L#%8
!3!%!!S!%3!YJ%j!!)JK&*),M33-J`a-r#`X%%!)J!8!!J!%!!i!(`!rJ(r!rq(r
NJZ0"!b$$%cm,#`33!L!"3!#!!3!$J!I!$q!Im$riIrcrrhrr2rmIr`rl"r!$i!(
mrrprrcrr(rm2q`I`!q!"`!#!!!!%!*!3r`#3([m!r`#3(2m!!!$r!*!Dr`!!pI8
!!)!!!!3!N"$r!*!Hr`$r!*!Fr`!!!2m!N"Vr!!$ep3$r!*!Br`!!pC!%!2m!N"E
!r`#3'2m!!2@3"!$r!*!@r`!!pI@`X2Ae!2m!N"6r!!$epI@`X2Aep3$r!*!5r`!
r!!$epE#`pI8!r`#3&2m!!2AepE#`pIAe!2m!N",r!!$epI@`N!6epI8!r`#3%2m
!
pIAeX*!%pIAe!2m!N"$r!!$eN!5`N!6eN!3!r`#3$[m!!2@3",#3"2q3"2Ae!2m
!
!2@3",#3"2@3"!$r!*!1r`!!pC!%X*!%rj!%pI8!r`#3$2m!!2@3"E$rrrm)N!6
!N!cr!!$eN!@`rrrr#*!%rrAe!2m!N!Vr!!$eN!Er-`L3"rrep3$r!*!)r`!!pC!
rpI8!r`#3#[m!!2@3"[mc#*!(rrAe!2m!N!Mr!!$eN!Er#!Jcrrrr#*!%rrAe!2m
'r`J)-rrrr`L3"2rep3$r!*!'r`!!pC!'r`Jcrrrhprm)N!ArpI8!r`#3"2m!!2@
!N!Er!!$eN!Er#$2rrrIhr`L3"Irep3$r!*!%r`!!pC!(rj!%prAerc-)N!ArN!8
3"rq3"2IepImc#*!&rj!&!!$r!!$eN![rN!8"#*!&-rrrrrIr!!$rpr@3#Irr-`L
!!2m!!2@3#rq3"3%)N!8crrrrprm!!2rhpC!*rrmc#*!+-rrrrrIhr`!!rrIeN!I
3#M2rrrrhprm!!2rhpC!(r`Ahrrmc-c-)N!Bcrrrrprm!N!6rpr@3"[m&"IIhrrr
r"IIrrc-c-`L3"M2rrrrhr`#3"2rhpC!'r`8&prIrrrmcN!3)#$2rN!3!N!Erpr@
r-j!%#!Jcrj!%!*!'rrIeN!ErrrAeprIhrj!%-c-crrrr!*!)rrIeN!chN!6rN!B
3"[rrpIAhprIrN!3c-c2rrrm!N!Mrpr@3$2H3"2q3"J#3#IrhpC!%rrreN!MhN!6
!N!Rrpr@3"2rrpC!)pj!%rrrr!*!+rrIepIrepIreN!Mhprm!N!lrprArpIArpIq
rrrm!N!VrprAerrAerr@3#2Ihr`#3$[rhpIrepIrerj!&pIIhr`#3%2rhpIrrpC!
3"IAhprm!N"$rprArrr@3"rIhr`#3%[rhpC!)prIr!*!8rrIeN!Ehprm!N"Erpr@
(prIr!*!5rrIeN!Mhprm!N"6rpr@3"[Ihr`#3&[rhpC!%prIr!*!BrrIepIIhr`#
3
"2Ihr`#3'2rhpIAhprm!N"VrprIhr`#3(2rhr`#3([m!N"%"!*!)r`#3$[rer`#
3
'[rhprIr!*!FrrIr!*!Hr`#3%3%!N!Mr!*!1rrAr!*!-rrAepIm!N!VrpE#`pIr
3$2repIAr!*!+rr@`X2Arr`#3#2repE$rr`J)r`#3"[repIAr#*!&r`#3"2repIA
r!*!)rrAeX2rr#!Mr!*!'rrAepIm)N!Ar!*!%rrAepIm)r`J)r`J)r`!!rr@3"Ir
r#2m)#2m)#2m!!2reN!Arprrrr`J)-rrr!2reN!Er-c-)-c2rr`!!rr@3"Irr-j!
hrrrr#!Jcrrm!rr@3"[mc-`Jc-rrr!!$rpC!&rrmcN!6rr`!!!2repIrrpIArN!B
%rrm!!!$rpIArrrAerj!'!*!%rrArrrAepIIr!2rr!*!&rr@3"2Ir!*!+rrAeprm
!N!6rpIrrpIAeprm!rrm!N!ArpC!%prm!N!VrpIAhr`#3$2rhr`#3$[m!N!U!!!!
!
N!crprm!N!lr!*!+J!!!!!m!N!I`m!#3"3m!$`#3"I"9$r!!!!!2!&r`$`!!!2
!
!
$`#3"r$`!*!&$`!2!*!&m&82m!!!!!m!Ar!2!!!!m!$`!!$`!!m!$mm!m!m!m!
!
!
m!!!m!!2!!r2!2!2!2!!!2crm!hr$`!!!2h3hIm!m!!!rphGr`!2!2m!rrrr!!$
!
r2r`$Im2!!!!rG$Gr`$`!!$rhGhr!!m!r`$rrrm!!2$r!!c`r`!!$`!!c`#3"I!
`r`!-m2m!!!m!!-m!N!A`$2!!N!82c`#3"r!!N!8#!*!)$`#3$r$`!*!0$`!2!*!
-m!#3"3r2!*!(m!#3"3)!N!J2!*!2m2!!N!d2!!m!N!h`!!$`!*!,$`!!!!m!N![
0m!!!m!#3#`m!!!!2!*!,m!!&8!$`!*!*$`!!"9!!$`#3#I!!!&99!!$`!*!($`!
`!!93!2!!N!N2!!!&8!!2!*!*m!!!998!!2!!N!F2!!!!998!!!m!N!I`!!!&99r
!!&99!!!2!*!(m!!!"99Irr!!m!#3"3m!!!!&rr!!$`!2!*!&m!!!!!r3!!!!m!$
rm!$`!*!&$`!!!!Arm!!2!!m!N!A`!!!!$p!!!!$`!2!!!!!2!*!%r-hrm!!2!!m
`!!!!$`#3"2c0rr!!$`!2!!!!m!!!!!r0rmc`!!$`!2!!$`#3"!rrr!$`!!!2rrm
!!!$`!!!!$mhrc2!!!2!!m!!2!*!%$rrm!2!!!!rrr`$`!*!'rrr`!!!0rrc`$m!
!
m!#3"[rrm!!!$Irmm!r!!*!%rp!!N!30rrc2!2`!!!!2(2rGd!!!$Irmm!!2`
!!
!
N!6rd!#3"!hrr-m!r!!!!!mFrph3!!!0rrc`!!r!!!!2%FcrrGh3$Irr!!!!r
!!
!
$a(-rrhGd!hrr`!!!2`!!!$r!-c2rrhGrr!!!!!2`!#3"3c-crrrm!#3"2`!!2m
!
!2m!c-rrrGhrm!!!!!r!!*!&$-c2rrr`!*!%r!!!r`#3"-c-rr!!N!32`!m!m!!
!
N!6-c2r`!*!%$m!2!2!!!!!-c`#3"r`2!2$rrr$-m!#3"`r!r`!!!!c2!*!*r!#
!
!!c2!*!(r!m!m2rrm-c`!*!($m$r!!!!$-m!N!Rm!*!%c2!!N!N2`!!!$-m!N![
3"-c`!*!*$m!!!!c2!*!,r!!!c2!!N!X2`!c2!*!0r-c`!*!0$mm!N!r`!*!+&3!
m!!$-m!#3#`r!$-m!N!hmc2!!N!d2c`#3$r!!N!S9!#)!D!&D!Cm!!3%!!3#3"3)
L!'J"@J'I!!%"!!%!N!8#!*!&pJ!&!*!&-J!8!0-"*K!*4@4TG#"8CAKdK`#3"!%
!N!AL!!8!N!95!"8!m`%R%!P&C'Pd)&4PH(5(!*!%!4J!m!%X!5`%!Np,!*!%!4J
B!2!",!%X"!*25`#3"!%B!"3",!"1"!C$B@jMC@`!N!AF!"3!m!%U""e5C@e[GQ8
!&!%X!%i%"N0KEQ0PE!#3"IS!&!%-!5X%(e0PE'9MG#!N+&"C9%K26LNJD'pYC5"
JFhPc,R"KG'JJF(*PCL"KEQ3JCAKTG!#3"[S!&!%-!5X%(e0PE'9MG#!N+&"C9%K
QEfaNCA)Z,LjQ!*!&$3!A!"i"*JJ*4@4TG#"8CAKd,J#3"5S!&3"1!5H)6d9ZG'9
26LNJD'pYC5"QEfaNCA)Z,LjQ!*!&#J!8!#i"*SK24@jdCA)JFhPc,R"KG'JJBf
p
b)(0jFbj`BA4S)'0[EA"[EQ9ZG(-X)'pZC5"`CA)JE'PZC3dS9A0P)#3S8&P85%
p
YF'pZC@jdFb`JEfjP)("PFL"XD@jP$5K9Ff8J*#K3@94)6diT)'C[FL"`HA4SEfi
1+5"QEh)JF(PdD'pZ)'K[E@8JCQpXC'9b+6S!N!3"!*!%"bU3"!!"!*!%*&"jG$!
JD'pYC5"QEfaNCA)T1J#3"!%!!!!"!!!!#bN!!!ST!!!"(3("fQ`6eJ!!!"`"$J!
!!!!"4P*&4J!"!!!!J!!"!)&*3diM!!%!!!%X!!%!N!3"!!!!#bJ!!!SS!!!"+3'
,3Nj%6!!!!'**3diM!!!!EP0*@N8!!!"k4P*&4J!!!)CTBh-M!!!!NQPME$J!!!#
3!-'8'$i!!!!F!4S!#d*14%`!!!"L5801)`!!!'j659T&!!!!HNC548B!!3#'D@0
HD@0c1!!!!+TTBh-d!!!!YQPME$3!!!$#4%a24`!!!-j%594-!!!!fP"jG$!!!!$
c)`!!!*jTBf`i!!!!UQPMFcJ!!!#fD@0c0!!!!-*TBf`d!!!!cN4-6dF!!!$D4%P
Q!)$rr`!!!4d"`Hj8!5crr`#3"!("lcMrN!3!!!%%!*!&J2rr!!!"%J("ld!",2r
86!!!!1C3HA3`!!!!mJ#!rrm!!!S!N!8",2rr!*!)rj!%!!!""!#3"B$rr`!!!4)
r!!!"23("lkJ",2rr!!!"J3("lk`",2rr!!!&K3("m$`",2rr!!!'L3("lk3",2r
!N!@"rrm!!!Re!*!%!5crr`!!!4d!N!3",2rr!!!"B3#3"!%Xrrm!!!9P!*!%!5c
r
!!!($3("ll!#!2rr!!!*%3#3"!)!rrm!!!NU!*!+#L3"`Hrd$NphEQ9b)(*PFfp
r
r`!!"QN!N!3",2rr!!!'l3#3"!)!rrm!!!Ma!*!%!J$rr`!!#3S"N!#q&!#3"JR
eFQ0P50X
:
`!*!%$NphEQ9b)(*PFfpeFQ0PDV%
:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment