You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
9.7 KiB

#zip file with Tcl loader prepended. Requires either builtin zipfs, or vfs::zip to mount while zipped.
#Alternatively unzip so that extracted #modpod-package-version folder is in same folder as .tm file.
#generated using: modpod::lib::make_zip_modpod -offsettype archive <zipfile> <tmfile>
if {[catch {file normalize [info script]}]} {
error "modpod zip stub error. Unable to determine module path. (possible safe interp restrictions?)"
}
apply {{modfile} {
if {$modfile eq "" || ![file exists $modfile]} {
error "modpod zip stub error. Unable to determine module path"
}
set moddir [file dirname $modfile]
set exedir [file dirname [file normalize [info nameofexecutable]]]
set mod_and_ver [file rootname [file tail $modfile]]
lassign [split $mod_and_ver -] moduletail version
set do_intersect {{A B} {
if {[llength $A] == 0} {return {}}
if {[llength $B] == 0} {return {}}
if {[llength $B] > [llength $A]} {
set res $A
set A $B
set B $res
}
set res {}
foreach x $A {set ($x) {}}
foreach x $B {
if {[info exists ($x)]} {
lappend res $x
}
}
return $res
}}
#determine module namespace so we can mount appropriately
set lcase_tmfile_segments [string tolower [file split $moddir]]
set lcase_modulepaths [string tolower [tcl::tm::list]]
foreach lc_mpath $lcase_modulepaths {
set mpath_segments [file split $lc_mpath]
if {[llength [apply $do_intersect $lcase_tmfile_segments $mpath_segments]] == [llength $mpath_segments]} {
set tail_segments [lrange [file split $moddir] [llength $mpath_segments] end] ;#use properly cased tail
break
}
}
if {[llength $tail_segments]} {
set fullpackage [join [concat $tail_segments $moduletail] ::] ;#full name of package as used in package require
set mount_at #modpod/[file join {*}$tail_segments]/#mounted-modpod-$mod_and_ver
} else {
set fullpackage $moduletail
set mount_at #modpod/#mounted-modpod-$mod_and_ver
}
if {[info commands tcl::zipfs::mount] ne ""} {
#argument order changed to be consistent with vfs::zip::Mount etc
#early versions: zipfs::Mount mountpoint zipname
#since 2023-09: zipfs::Mount zipname mountpoint
#don't use 'file exists' when testing mountpoints. (some versions at least give massive delays on windows platform for non-existance)
#This is presumably related to // being interpreted as a network path
set mountpoints [dict keys [tcl::zipfs::mount]]
if {"//zipfs:/$mount_at" ni $mountpoints} {
#despite API change tcl::zipfs package version was unfortunately not updated - so we don't know argument order without trying it
if {[catch {
#tcl::zipfs::mount $modfile //zipfs:/#mounted-modpod-$mod_and_ver ;#extremely slow if this is a wrong guess (artifact of aforementioned file exists issue ?)
#puts "tcl::zipfs::mount $modfile $mount_at"
tcl::zipfs::mount $modfile $mount_at
} errM]} {
#try old api
if {![catch {tcl::zipfs::mount //zipfs:/$mount_at $modfile}]} {
puts stderr "modpod stub>>> tcl::zipfs::mount <file> <mountpoint> failed.\nbut old api: tcl::zipfs::mount <mountpoint> <file> succeeded\n tcl::zipfs::mount //zipfs://$mount_at $modfile"
puts stderr "Consider upgrading tcl runtime to one with fixed zipfs API"
}
}
if {![file exists //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} {
puts stderr "modpod stub>>> mount at //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm failed\n zipfs mounts: [zipfs mount]"
#tcl::zipfs::unmount //zipfs:/$mount_at
error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage"
}
}
# #modpod-$mod_and_ver subdirectory always present in the archive so it can be conveniently extracted and run in that form
uplevel 1 [list source //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]
} else {
#fallback to slower vfs::zip
#NB. We don't create the intermediate dirs - but the mount still works
if {![file exists $exedir/$mount_at]} {
if {[catch {package require vfs::zip} errM]} {
set msg "Unable to load vfs::zip package to mount module $mod_and_ver (and zipfs not available either)"
append msg \n "If neither zipfs or vfs::zip are available - the module can still be loaded by manually unzipping the file $modfile in place."
append msg \n "The unzipped data will all be contained in a folder named #modpod-$mod_and_ver in the same parent folder as $modfile"
error $msg
} else {
set fd [vfs::zip::Mount $modfile $exedir/$mount_at]
if {![file exists $exedir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} {
vfs::zip::Unmount $fd $exedir/$mount_at
error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage"
}
}
}
uplevel 1 [list source $exedir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]
}
}} [file normalize [info script]]
#zipped data follows
PKk<EFBFBD><EFBFBD>\Q{<EFBFBD>><EFBFBD> <EFBFBD>"#modpod-zipper-0.14/zipper-0.14.tm<EFBFBD>Y<EFBFBD>o<EFBFBD>F<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>kوɱ<EFBFBD>$<EFBFBD><EFBFBD>&<EFBFBD><EFBFBD>h<EFBFBD> .<EFBFBD>9YgP<EFBFBD>Jښ"U.)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>of<EFBFBD>/Qj<EFBFBD>k
<EFBFBD><EFBFBD>H<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Il<EFBFBD>4<EFBFBD>$=88<EFBFBD><EFBFBD><EFBFBD>2 ?P<EFBFBD><EFBFBD>~D<EFBFBD><EFBFBD>b<EFBFBD>RZ<EFBFBD>ڻ<EFBFBD>E<EFBFBD>f<EFBFBD>c<EFBFBD>i?ҟ<EFBFBD>a<EFBFBD><EFBFBD>,}<EFBFBD><EFBFBD>NA:<EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>I<EFBFBD>~6<EFBFBD><EFBFBD>j?͒@n,<EFBFBD>C=<EFBFBD><EFBFBD><EFBFBD> 3V<EFBFBD>$U<EFBFBD>J<EFBFBD>$<EFBFBD><EFBFBD>?d3<EFBFBD><EFBFBD>%<EFBFBD>B=J<EFBFBD>TH<EFBFBD>6<EFBFBD>͔š<EFBFBD>u<EFBFBD>Z1ɩʰ<EFBFBD><EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"U<EFBFBD>"<EFBFBD><EFBFBD>5<EFBFBD>S~<EFBFBD><EFBFBD><EFBFBD>3?E<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>L<EFBFBD><EFBFBD>O<EFBFBD><EFBFBD>^<EFBFBD><EFBFBD>8<EFBFBD>#<EFBFBD><EFBFBD><EFBFBD>-˷RZ<EFBFBD>`<EFBFBD>*I<EFBFBD><EFBFBD>w<EFBFBD>gd<EFBFBD><EFBFBD>bCR<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>SA&<E<EFBFBD><EFBFBD>G<EFBFBD>j r[,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0A!<EFBFBD>5<EFBFBD>He<EFBFBD>6-<EFBFBD><EFBFBD>?T<EFBFBD><EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>g,o<EFBFBD><EFBFBD>Nb<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<EFBFBD><EFBFBD><EFBFBD>GqҦiIvYCs<EFBFBD>;I<EFBFBD>(Y<EFBFBD>O<EFBFBD><EFBFBD>L<EFBFBD>?<EFBFBD><EFBFBD>ԡZ<EFBFBD><EFBFBD> <EFBFBD>Rakh<EFBFBD>j+J<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD>T,<EFBFBD>!<EFBFBD>R
<EFBFBD>,I P<EFBFBD><EFBFBD><EFBFBD>9ۿp<EFBFBD>8N ̧'N?<EFBFBD><EFBFBD>L<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>G<EFBFBD>Me<EFBFBD>ٝά<EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><EFBFBD>9Zo<EFBFBD><EFBFBD><EFBFBD><EFBFBD>kﯴ<EFBFBD><EFBFBD>`0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>JׅD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿ-yᆿGxz<EFBFBD>W<EFBFBD>R|X<EFBFBD>8-fi<EFBFBD>b<EFBFBD><EFBFBD>j<EFBFBD><EFBFBD>fn<EFBFBD><EFBFBD>}<EFBFBD>3[<EFBFBD>ϳ<EFBFBD>g7P7<EFBFBD>]<EFBFBD>T̩<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>N/".<EFBFBD>1(Sy:X<EFBFBD><EFBFBD>s=<EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD>WKX<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0SQ<EFBFBD>oGۯ<EFBFBD><EFBFBD>h<EFBFBD>)<EFBFBD>3*<EFBFBD><EFBFBD>DOs<EFBFBD>qn<EFBFBD>R?6<EFBFBD><EFBFBD><EFBFBD>`c<EFBFBD>PdԞ<EFBFBD><EFBFBD>ά<EFBFBD>}P<EFBFBD><EFBFBD><EFBFBD><EFBFBD>$ϟ_<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>SVsXmm<EFBFBD><EFBFBD>.r<EFBFBD>'<EFBFBD>ZE:y<EFBFBD><EFBFBD>im<EFBFBD>i<EFBFBD>gm<EFBFBD><EFBFBD>3<EFBFBD>o<EFBFBD>1<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ch<EFBFBD>g <EFBFBD><EFBFBD>=w<EFBFBD>><EFBFBD>HGs:
<EFBFBD><EFBFBD>{:zKG<EFBFBD>7<EFBFBD>c:<EFBFBD>T0<EFBFBD>jj<EFBFBD>1<EFBFBD>|~<EFBFBD>&<<EFBFBD>@k|<EFBFBD>lhR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>#<EFBFBD><EFBFBD>-<EFBFBD>!<EFBFBD>Y8<EFBFBD><EFBFBD><EFBFBD><EFBFBD>XpaX <EFBFBD>5<EFBFBD><EFBFBD><EFBFBD>><EFBFBD>/<EFBFBD><EFBFBD>O<EFBFBD><EFBFBD>^<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OޛMӚ<EFBFBD>o<EFBFBD>ϛ]]
v<EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD><EFBFBD>4<EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,k<EFBFBD>Z<EFBFBD>%, W<EFBFBD>1<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>º<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<{<EFBFBD>U<EFBFBD><EFBFBD>/v<EFBFBD>]=v<EFBFBD><EFBFBD>
<EFBFBD>84#<EFBFBD>9e<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>u0<EFBFBD>Xɣ<EFBFBD>~<EFBFBD>~<EFBFBD><EFBFBD>I<EFBFBD>Q
8[ι<EFBFBD>+{<EFBFBD>!<EFBFBD>a <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD><EFBFBD>|R2o<EFBFBD><EFBFBD>D<EFBFBD><EFBFBD>hzV<EFBFBD>O<EFBFBD>ߴ<EFBFBD><EFBFBD> &<EFBFBD>Dj<EFBFBD><EFBFBD><EFBFBD>pX<EFBFBD><EFBFBD>HU<EFBFBD><EFBFBD><EFBFBD>+@n<EFBFBD>9<EFBFBD><EFBFBD><EFBFBD>li<EFBFBD><EFBFBD><EFBFBD>E<EFBFBD><EFBFBD>5:h<EFBFBD><EFBFBD><EFBFBD>k<EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;p<EFBFBD><EFBFBD><EFBFBD>^0Ŷ<EFBFBD><EFBFBD>Y{i<EFBFBD><EFBFBD>a<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tvl(T<EFBFBD>1<EFBFBD>!<EFBFBD>i<EFBFBD>1 <EFBFBD><EFBFBD>#<EFBFBD>>EzLA<=<EFBFBD>d<EFBFBD>
?iK<EFBFBD>5<EFBFBD>lHEF $"<EFBFBD><EFBFBD>W<EFBFBD><EFBFBD><EFBFBD>RQ<EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD>2"<EFBFBD>6~<EFBFBD>uDW<EFBFBD>ؒa<EFBFBD><EFBFBD><EFBFBD><EFBFBD>~<EFBFBD><EFBFBD>W<EFBFBD>Wkq<EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>6ʶa<EFBFBD><EFBFBD>h <EFBFBD><EFBFBD>-<EFBFBD>><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>Nb<EFBFBD><EFBFBD>mH7E̦!,D<EFBFBD>$uykMi<EFBFBD>+4<EFBFBD>Z <EFBFBD>E<EFBFBD>[<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>)<EFBFBD>`<EFBFBD><EFBFBD>g<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>kl<EFBFBD><EFBFBD><EFBFBD>T<EFBFBD>݁8<EFBFBD><EFBFBD>ru<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>߸R<EFBFBD>M߶9<EFBFBD>Vt<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߆<EFBFBD>6<EFBFBD>L<EFBFBD>6U\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>qty<EFBFBD>b)[#<EFBFBD>y<EFBFBD>@<EFBFBD>R<EFBFBD>!W<EFBFBD>'<EFBFBD>] _<EFBFBD><EFBFBD><EFBFBD><EFBFBD>fG<EFBFBD>'<EFBFBD><EFBFBD>g$<EFBFBD><EFBFBD>j<EFBFBD><EFBFBD>o7<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>b|ٯ'<EFBFBD>w=E<EFBFBD><EFBFBD> ]9v5<EFBFBD>?<EFBFBD>\Zkc.<EFBFBD><EFBFBD>w?<EFBFBD>z@<EFBFBD>t<EFBFBD>G<EFBFBD><EFBFBD>?p<EFBFBD><EFBFBD>ͺ<EFBFBD><EFBFBD>D<EFBFBD>'<EFBFBD><EFBFBD>ƐWK<EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><EFBFBD>'Y<EFBFBD>v<EFBFBD>"<EFBFBD>f~<EFBFBD>np<EFBFBD><EFBFBD><EFBFBD><EFBFBD>$<EFBFBD>u<EFBFBD><EFBFBD>\#<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=|:L<EFBFBD>cn<EFBFBD><EFBFBD><EFBFBD>q<EFBFBD>ج<EFBFBD>ɭ4^hoYx<EFBFBD>3<EFBFBD> 4B<EFBFBD><EFBFBD><EFBFBD>s<EFBFBD>v<EFBFBD>~|<EFBFBD>xT<EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<EFBFBD>6<EFBFBD><EFBFBD><EFBFBD>{<EFBFBD>6<EFBFBD>6w<EFBFBD><EFBFBD>_@)<EFBFBD>Q<EFBFBD>/<EFBFBD>RZ<EFBFBD>y<EFBFBD>ӏrU޽gE<EFBFBD><EFBFBD>F<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Dz|Q<EFBFBD><EFBFBD><EFBFBD><EFBFBD>^ͭ]<EFBFBD><EFBFBD><EFBFBD>'<EFBFBD><EFBFBD><EFBFBD>%<EFBFBD><EFBFBD><EFBFBD>n<EFBFBD>)<EFBFBD>qj<EFBFBD><EFBFBD>Gt;<EFBFBD>;'<EFBFBD>Ź<EFBFBD> ߤ<EFBFBD>dœ<EFBFBD><EFBFBD>R%}<EFBFBD><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><EFBFBD>)󐕤u<A<EFBFBD><EFBFBD>Q,<EFBFBD><EFBFBD>'| F<EFBFBD><EFBFBD>x<EFBFBD>G<EFBFBD><EFBFBD><EFBFBD>$<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)A<EFBFBD>+d<EFBFBD>BRFߓ<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]4XO<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7-ۣkQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD>!׊h<EFBFBD>pM<EFBFBD>pЪ<EFBFBD>j9p<EFBFBD>:^<EFBFBD><EFBFBD>Yw{<EFBFBD><EFBFBD><EFBFBD>I^<EFBFBD><EFBFBD><EFBFBD>7O<EFBFBD><EFBFBD>8<EFBFBD>IQ<EFBFBD><EFBFBD><EFBFBD>K5ן<EFBFBD>v[gW<EFBFBD><EFBFBD>ke<EFBFBD>Zu<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}o33<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>S.Rԕ0<EFBFBD>O<EFBFBD>C<EFBFBD><EFBFBD> <EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD> ><EFBFBD><EFBFBD>Q<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>x<EFBFBD>hKk<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>.(<EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><<EFBFBD>4<EFBFBD>u<EFBFBD><EFBFBD>85<EFBFBD>#<EFBFBD><EFBFBD>Ӟ<EFBFBD><EFBFBD>><EFBFBD><EFBFBD>w<EFBFBD> <EFBFBD><EFBFBD>"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><EFBFBD>~<EFBFBD><EFBFBD>.<EFBFBD>;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>f1<EFBFBD>u<EFBFBD><EFBFBD>s+C<EFBFBD>[4<EFBFBD>Me<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*è0<EFBFBD>5Ө5<EFBFBD><EFBFBD>/^<EFBFBD>k<EFBFBD><<EFBFBD>5'm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K <EFBFBD>-<EFBFBD>V{<EFBFBD>=> Uz<EFBFBD>[kPR<EFBFBD>5E<EFBFBD><EFBFBD><EFBFBD>6u<EFBFBD>ϲ<EFBFBD>hW<EFBFBD><EFBFBD>ZvG<EFBFBD><EFBFBD>Z<EFBFBD>*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD>4wy<EFBFBD>̦<EFBFBD>g<EFBFBD><EFBFBD>F/<EFBFBD><EFBFBD>έ7X_<EFBFBD><EFBFBD>g<EFBFBD>/OwYooK<EFBFBD>~ 7Ա<EFBFBD>9<EFBFBD>`9<EFBFBD>Jà<EFBFBD><EFBFBD>A˰<EFBFBD><EFBFBD>f(<EFBFBD>#<EFBFBD><EFBFBD>2f<EFBFBD><EFBFBD> <EFBFBD>#<EFBFBD>[w<EFBFBD><EFBFBD>auOc<EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD>k<EFBFBD>;<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>X<EFBFBD>}<EFBFBD>>N.<EFBFBD>ykK<EFBFBD><EFBFBD><EFBFBD>e_<EFBFBD>9b.Gz<EFBFBD> O<EFBFBD><EFBFBD>g<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>rd<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-'s7<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<EFBFBD><EFBFBD>y1,X<EFBFBD><EFBFBD><EFBFBD>?U@<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>em<EFBFBD>:L<EFBFBD>]<EFBFBD> _ <EFBFBD>̒<EFBFBD>5<EFBFBD>-;9;<EFBFBD>><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*0xɈ<EFBFBD>,ہ<EFBFBD>F4*<EFBFBD>vM=pk<EFBFBD>S?<EFBFBD>*<EFBFBD>b@<EFBFBD><EFBFBD>v<EFBFBD>M<EFBFBD><EFBFBD>pw9<EFBFBD>FɘG<EFBFBD><K<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> >z!<EFBFBD><EFBFBD>F<EFBFBD><EFBFBD>f]<EFBFBD>!<EFBFBD><EFBFBD><EFBFBD>ޤ5<EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>9{bg<EFBFBD><EFBFBD><EFBFBD>f#߇/Pj-<EFBFBD>ã<EFBFBD>/4b<EFBFBD>_<EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD><EFBFBD><EFBFBD>)2+w<EFBFBD>Y<EFBFBD>.<EFBFBD>P<EFBFBD><EFBFBD>j ݛS<EFBFBD>]n<EFBFBD><EFBFBD>[<EFBFBD>:1<EFBFBD>ׄu{D<EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD>]<EFBFBD>~[<EFBFBD>ƹ<EFBFBD><EFBFBD>S<EFBFBD>B<EFBFBD>S<EFBFBD><EFBFBD>|_<EFBFBD>,WX:v<EFBFBD><EFBFBD>"<EFBFBD><EFBFBD>{9<EFBFBD><EFBFBD>J<EFBFBD><EFBFBD>&<EFBFBD>}<EFBFBD>?\<EFBFBD>PK<EFBFBD>B[<EFBFBD><EFBFBD>y<EFBFBD><EFBFBD>k!#modpod-zipper-0.14/zipper.README<EFBFBD><EFBFBD>}<EFBFBD>Mo<EFBFBD>0 <EFBFBD><EFBFBD>ӯ <EFBFBD>Ӭ<EFBFBD>n<EFBFBD>`vȩC<EFBFBD>S<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȓ*<EFBFBD>q<EFBFBD>_?<EFBFBD>N<EFBFBD>f<EFBFBD><EFBFBD><EFBFBD>m<EFBFBD><EFBFBD>xL<EFBFBD> <EFBFBD>Jq<EFBFBD><EFBFBD>`<EFBFBD>k<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>.c<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%|<EFBFBD>=<EFBFBD><EFBFBD>T<EFBFBD>Dg5<EFBFBD><EFBFBD><EFBFBD>-3<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD>n<EFBFBD><EFBFBD><EFBFBD>T<EFBFBD> h<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>1X<EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD>iJ<EFBFBD><EFBFBD>8Pme<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĥ<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD><EFBFBD>F<EFBFBD><EFBFBD><EFBFBD>&:!|l<EFBFBD><EFBFBD><EFBFBD>ûg<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.\m<EFBFBD>0<EFBFBD><EFBFBD>qhHd1<EFBFBD>B<EFBFBD>עV <EFBFBD><EFBFBD>#D۩s<EFBFBD>r˰<EFBFBD><EFBFBD>su1y<EFBFBD>(<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>%O 9<EFBFBD><EFBFBD>"<EFBFBD>8xll<EFBFBD><EFBFBD><EFBFBD>Ʌ<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>c<EFBFBD>IW<EFBFBD>J<EFBFBD>b)h<EFBFBD>j<EFBFBD>65oa<EFBFBD>%<EFBFBD>T<EFBFBD>#<EFBFBD>B<EFBFBD><EFBFBD>b<EFBFBD><EFBFBD>W<EFBFBD><EFBFBD>Π.<EFBFBD> <EFBFBD><EFBFBD>T<EFBFBD>l<EFBFBD>/<EFBFBD>O)c<EFBFBD><EFBFBD>B <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|R<EFBFBD>E}<EFBFBD>0<EFBFBD>$<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>eQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>af<EFBFBD>@<EFBFBD><EFBFBD>[B݋<EFBFBD><EFBFBD>ժs <EFBFBD>Xlz<EFBFBD><EFBFBD>mݕ<EFBFBD><EFBFBD><EFBFBD>y3z<EFBFBD><EFBFBD>I<EFBFBD>O Ɇ<EFBFBD>c6<EFBFBD>>(<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>a}<EFBFBD><EFBFBD>3<EFBFBD>ݞ<EFBFBD><EFBFBD><EFBFBD>"Qb<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SI1Z<EFBFBD><EFBFBD> Kz'g~PKk<EFBFBD><EFBFBD>\Q{<EFBFBD>><EFBFBD> <EFBFBD>"#modpod-zipper-0.14/zipper-0.14.tmPK<EFBFBD>B[<EFBFBD><EFBFBD>y<EFBFBD><EFBFBD>k!<EFBFBD> #modpod-zipper-0.14/zipper.READMEPK<EFBFBD>