Line
Link Here
|
0 |
-- browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in |
0 |
++ browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in |
Lines 29-34
Link Here
|
29 |
<em:contributor>Mozilla Contributors</em:contributor> |
29 |
<em:contributor>Mozilla Contributors</em:contributor> |
30 |
|
30 |
|
31 |
<em:internalName>classic/1.0</em:internalName> |
31 |
<em:internalName>classic/1.0</em:internalName> |
|
|
32 |
|
33 |
<em:file> |
34 |
<Description about="urn:mozilla:extension:file:classic.jar"> |
35 |
<em:skin>skin/classic/browser/</em:skin> |
36 |
<em:skin>skin/classic/global/</em:skin> |
37 |
<em:skin>skin/classic/communicator/</em:skin> |
38 |
<em:skin>skin/classic/mozapps/</em:skin> |
39 |
</Description> |
40 |
</em:file> |
32 |
</Description> |
41 |
</Description> |
33 |
|
42 |
|
34 |
</RDF> |
43 |
</RDF> |
35 |
-- browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf |
44 |
++ browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf |
Line 0
Link Here
|
0 |
-- browser/app/profile/firefox.js |
1 |
<?xml version="1.0"?> |
|
|
2 |
|
3 |
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
4 |
xmlns:em="http://www.mozilla.org/2004/em-rdf#"> |
5 |
|
6 |
<Description about="urn:mozilla:install-manifest"> |
7 |
<em:id>{972ce4c6-7e08-4474-a285-3208198ce6fd}</em:id> |
8 |
<em:version>2.0</em:version> |
9 |
|
10 |
<!-- Target Application this theme can install into, |
11 |
with minimum and maximum supported versions. --> |
12 |
<em:targetApplication> |
13 |
<Description> |
14 |
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> |
15 |
<em:minVersion>1.0</em:minVersion> |
16 |
<em:maxVersion>1.0</em:maxVersion> |
17 |
</Description> |
18 |
</em:targetApplication> |
19 |
|
20 |
<!-- Front End MetaData --> |
21 |
<em:name>Firefox (default)</em:name> |
22 |
<em:description>The default theme</em:description> |
23 |
|
24 |
<em:locked>true</em:locked> |
25 |
|
26 |
<!-- Front End Integration Hooks (used by Theme Manager)--> |
27 |
<!-- XXXben - preprocess this file to use different info for mac version --> |
28 |
<em:creator>Gerich and Horlander</em:creator> |
29 |
<em:contributor>Mozilla Contributors</em:contributor> |
30 |
|
31 |
<em:internalName>classic/1.0</em:internalName> |
32 |
|
33 |
<em:file> |
34 |
<Description about="urn:mozilla:extension:file:classic.jar"> |
35 |
<em:skin>skin/classic/browser/</em:skin> |
36 |
<em:skin>skin/classic/global/</em:skin> |
37 |
<em:skin>skin/classic/communicator/</em:skin> |
38 |
<em:skin>skin/classic/mozapps/</em:skin> |
39 |
</Description> |
40 |
</em:file> |
41 |
</Description> |
42 |
|
43 |
</RDF> |
|
|
44 |
++ browser/app/profile/firefox.js |
Lines 38-43
Link Here
|
38 |
// SYNTAX HINTS: dashes are delimiters. Use underscores instead. |
38 |
// SYNTAX HINTS: dashes are delimiters. Use underscores instead. |
39 |
// The first character after a period must be alphabetic. |
39 |
// The first character after a period must be alphabetic. |
40 |
|
40 |
|
|
|
41 |
// Disable default browser checking. |
42 |
pref("browser.shell.checkDefaultBrowser", false); |
43 |
|
41 |
// pref("startup.homepage_override_url","chrome://browser-region/locale/region.properties"); |
44 |
// pref("startup.homepage_override_url","chrome://browser-region/locale/region.properties"); |
42 |
pref("general.startup.browser", true); |
45 |
pref("general.startup.browser", true); |
43 |
|
46 |
|
Lines 62-69
Link Here
|
62 |
); |
65 |
); |
63 |
|
66 |
|
64 |
// App-specific update preferences |
67 |
// App-specific update preferences |
65 |
pref("app.update.enabled", true); // Whether or not app updates are enabled |
68 |
pref("app.update.enabled", false); // Whether or not app updates are enabled |
66 |
pref("app.update.autoUpdateEnabled", true); // Whether or not background app updates |
69 |
pref("app.update.autoUpdateEnabled", false); // Whether or not background app updates |
67 |
// are enabled |
70 |
// are enabled |
68 |
pref("app.update.url", "chrome://mozapps/locale/update/update.properties"); |
71 |
pref("app.update.url", "chrome://mozapps/locale/update/update.properties"); |
69 |
pref("app.update.updatesAvailable", false); |
72 |
pref("app.update.updatesAvailable", false); |
Lines 81-87
Link Here
|
81 |
// .. etc .. |
84 |
// .. etc .. |
82 |
// |
85 |
// |
83 |
pref("extensions.update.enabled", true); |
86 |
pref("extensions.update.enabled", true); |
84 |
pref("extensions.update.autoUpdateEnabled", true); |
87 |
pref("extensions.update.autoUpdateEnabled", false); |
85 |
pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties"); |
88 |
pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties"); |
86 |
pref("extensions.update.autoUpdate", false); // Automatically download and install |
89 |
pref("extensions.update.autoUpdate", false); // Automatically download and install |
87 |
// updates to themes and extensions. |
90 |
// updates to themes and extensions. |
Lines 123-131
Link Here
|
123 |
|
126 |
|
124 |
pref("general.skins.selectedSkin", "classic/1.0"); |
127 |
pref("general.skins.selectedSkin", "classic/1.0"); |
125 |
pref("general.useragent.vendor", "Firefox"); |
128 |
pref("general.useragent.vendor", "Firefox"); |
126 |
pref("general.useragent.vendorSub", |
129 |
pref("general.useragent.vendorSub", "1.0"); |
127 |
#expand __APP_VERSION__ |
130 |
//#expand __APP_VERSION__ |
128 |
); |
131 |
//); |
129 |
|
132 |
|
130 |
pref("general.smoothScroll", false); |
133 |
pref("general.smoothScroll", false); |
131 |
#ifdef XP_UNIX |
134 |
#ifdef XP_UNIX |
Lines 141-150
Link Here
|
141 |
// 0 = blank, 1 = home (browser.startup.homepage), 2 = last |
144 |
// 0 = blank, 1 = home (browser.startup.homepage), 2 = last |
142 |
// XXXBlake Remove this stupid pref |
145 |
// XXXBlake Remove this stupid pref |
143 |
pref("browser.startup.page", 1); |
146 |
pref("browser.startup.page", 1); |
144 |
pref("browser.startup.homepage", "resource:/browserconfig.properties"); |
147 |
pref("browser.startup.homepage", "chrome://browser-region/locale/region.properties"); |
145 |
|
148 |
|
146 |
// These values are deliberately non-localizable for official builds. |
149 |
// These values are deliberately non-localizable for official builds. |
147 |
pref("browser.startup.homepage_reset", "resource:/browserconfig.properties"); |
150 |
pref("browser.startup.homepage_reset", "chrome://browser-region/locale/region.properties"); |
148 |
pref("browser.update.resetHomepage", false); |
151 |
pref("browser.update.resetHomepage", false); |
149 |
// "browser.startup.homepage_override" was for 4.x |
152 |
// "browser.startup.homepage_override" was for 4.x |
150 |
pref("browser.startup.homepage_override.1", false); |
153 |
pref("browser.startup.homepage_override.1", false); |
Lines 236-241
Link Here
|
236 |
pref("network.cookie.cookieBehavior", 0); // cookies enabled |
239 |
pref("network.cookie.cookieBehavior", 0); // cookies enabled |
237 |
pref("network.cookie.enableForCurrentSessionOnly", false); |
240 |
pref("network.cookie.enableForCurrentSessionOnly", false); |
238 |
|
241 |
|
|
|
242 |
// Use LANG environment variable to choose locale |
243 |
pref("intl.locale.matchOS", true); |
244 |
|
239 |
// l12n and i18n |
245 |
// l12n and i18n |
240 |
pref("intl.accept_languages", "chrome://global/locale/intl.properties"); |
246 |
pref("intl.accept_languages", "chrome://global/locale/intl.properties"); |
241 |
// collationOption is only set on linux for japanese. see bug 18338 and 62015 |
247 |
// collationOption is only set on linux for japanese. see bug 18338 and 62015 |
Lines 258-263
Link Here
|
258 |
pref("mousewheel.withshiftkey.action",2); |
264 |
pref("mousewheel.withshiftkey.action",2); |
259 |
pref("mousewheel.withaltkey.action",0); |
265 |
pref("mousewheel.withaltkey.action",0); |
260 |
|
266 |
|
|
|
267 |
pref("middlemouse.contentLoadURL", false); // setting to false disables pasting urls on to the page |
268 |
|
261 |
pref("profile.allow_automigration", false); // setting to false bypasses automigration in the profile code |
269 |
pref("profile.allow_automigration", false); // setting to false bypasses automigration in the profile code |
262 |
|
270 |
|
263 |
// Customizable toolbar stuff |
271 |
// Customizable toolbar stuff |
Lines 326-328
Link Here
|
326 |
|
334 |
|
327 |
// plugin finder service |
335 |
// plugin finder service |
328 |
pref("pfs.datasource.url", "chrome://mozapps/locale/plugins/plugins.properties"); |
336 |
pref("pfs.datasource.url", "chrome://mozapps/locale/plugins/plugins.properties"); |
329 |
-- browser/app/Makefile.in |
337 |
|
|
|
338 |
// enable negotiate extension |
339 |
pref("network.negotiate-auth.trusted-uris", "https://"); |
340 |
|
341 |
// don't raise windows by default |
342 |
pref("mozilla.widget.raise-on-setfocus", false); |
343 |
|
344 |
// disable IDN for now, since it's a phising risk |
345 |
//pref("network.enableIDN", false); |
|
|
346 |
++ browser/app/Makefile.in |
Lines 320-323
Link Here
|
320 |
$(INSTALL) $^ $(DIST)/bin/defaults/profile |
320 |
$(INSTALL) $^ $(DIST)/bin/defaults/profile |
321 |
|
321 |
|
322 |
install:: $(srcdir)/profile/prefs.js |
322 |
install:: $(srcdir)/profile/prefs.js |
323 |
$(SYSINSTALL) $(IFLAGS1) $^ $(destdir)$(bindir)/defaults/profile |
323 |
$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(bindir)/defaults/profile |
324 |
-- browser/base/content/aboutDialog.css |
324 |
++ browser/base/content/aboutDialog.css |
Lines 26-36
Link Here
|
26 |
-moz-appearance: none; |
26 |
-moz-appearance: none; |
27 |
overflow: hidden; |
27 |
overflow: hidden; |
28 |
|
28 |
|
29 |
#ifdef XP_MACOSX |
|
|
30 |
height: 3.8em; |
29 |
height: 3.8em; |
31 |
#else |
|
|
32 |
height: 2.4em; |
33 |
#endif |
34 |
|
30 |
|
35 |
border: none; |
31 |
border: none; |
36 |
} |
32 |
} |
37 |
-- browser/base/content/browserconfig.properties |
33 |
++ browser/base/content/browserconfig.properties |
Lines 1-3
Link Here
|
1 |
# Do NOT localize or otherwise change these values |
1 |
# Do NOT localize or otherwise change these values |
2 |
browser.startup.homepage=http://www.mozilla.org/products/firefox/central.html |
2 |
browser.startup.homepage=http://www.mozilla.org/products/firefox/central.html |
3 |
browser.startup.homepage_reset=http://www.mozilla.org/products/firefox/central.html |
3 |
browser.startup.homepage_reset=http://www.mozilla.org/products/firefox/central.html |
4 |
-- browser/base/content/openLocation.xul |
4 |
++ browser/base/content/openLocation.xul |
Lines 32-37
Link Here
|
32 |
title="&caption.label;" |
32 |
title="&caption.label;" |
33 |
onload="onLoad()" |
33 |
onload="onLoad()" |
34 |
buttonlabelaccept="&openBtn.label;" |
34 |
buttonlabelaccept="&openBtn.label;" |
|
|
35 |
buttoniconaccept="open" |
35 |
ondialogaccept="open()" |
36 |
ondialogaccept="open()" |
36 |
style="width: 40em;" |
37 |
style="width: 40em;" |
37 |
persist="screenX screenY" |
38 |
persist="screenX screenY" |
38 |
-- browser/base/content/pageInfo.xul |
39 |
++ browser/base/content/pageInfo.xul |
Lines 297-303
Link Here
|
297 |
</rows> |
297 |
</rows> |
298 |
</grid> |
298 |
</grid> |
299 |
<hbox> |
299 |
<hbox> |
300 |
<button label="&mediaSaveAs;" accesskey="&mediaSaveAsAccesskey;" id="imagesaveasbutton" disabled="true" oncommand="saveMedia();"/> |
300 |
<button label="&mediaSaveAs;" accesskey="&mediaSaveAsAccesskey;" id="imagesaveasbutton" |
|
|
301 |
icon="save" disabled="true" oncommand="saveMedia();"/> |
301 |
</hbox> |
302 |
</hbox> |
302 |
<vbox class="inset iframe" flex="1" pack="center"> |
303 |
<vbox class="inset iframe" flex="1" pack="center"> |
303 |
<hbox id="theimagecontainer" pack="center"> |
304 |
<hbox id="theimagecontainer" pack="center"> |
304 |
-- browser/base/content/pageReport.xul |
305 |
++ browser/base/content/pageReport.xul |
Lines 49-57
Link Here
|
49 |
<separator class="thin"/> |
49 |
<separator class="thin"/> |
50 |
<hbox> |
50 |
<hbox> |
51 |
<button label="&unblock.label;" id="unblockButton" oncommand="whitelistSite();" |
51 |
<button label="&unblock.label;" id="unblockButton" oncommand="whitelistSite();" |
52 |
disabled="true" accesskey="&unblock.accesskey;"/> |
52 |
disabled="true" accesskey="&unblock.accesskey;" icon="yes"/> |
53 |
<spacer flex="1"/> |
53 |
<spacer flex="1"/> |
54 |
<button dlgtype="accept" label="&done.label;" default="true" |
54 |
<button dlgtype="accept" label="&done.label;" default="true" icon="close" |
55 |
oncommand="window.close();" accesskey="&done.accesskey;"/> |
55 |
oncommand="window.close();" accesskey="&done.accesskey;"/> |
56 |
</hbox> |
56 |
</hbox> |
57 |
</dialog> |
57 |
</dialog> |
58 |
-- browser/base/content/searchconfig.properties |
58 |
++ browser/base/content/searchconfig.properties |
Lines 3-6
Link Here
|
3 |
browser.search.param.Google.1.default=client=firefox |
3 |
browser.search.param.Google.1.default=client=firefox |
4 |
browser.search.param.Google.release=rls=%S:%S:unofficial |
4 |
browser.search.param.Google.release=rls=%S:%S:unofficial |
5 |
|
5 |
|
6 |
browser.search.param.Yahoo.release=rls=%S:%S:unofficial |
6 |
browser.search.param.Yahoo.release=rls=%S:%S:unofficial |
7 |
-- browser/components/bookmarks/content/addBookmark.xul |
7 |
++ browser/components/bookmarks/content/addBookmark.xul |
Lines 93-99
Link Here
|
93 |
<bookmarks-tree id="bookmarks-view" flex="1" type="folders"/> |
93 |
<bookmarks-tree id="bookmarks-view" flex="1" type="folders"/> |
94 |
<vbox> |
94 |
<vbox> |
95 |
<button label="&button.newfolder.label;" accesskey="&button.newfolder.accesskey;" |
95 |
<button label="&button.newfolder.label;" accesskey="&button.newfolder.accesskey;" |
96 |
oncommand="createNewFolder();"/> |
96 |
oncommand="createNewFolder();" icon="open"/> |
97 |
<button label="&button.defaultfolder.label;" |
97 |
<button label="&button.defaultfolder.label;" |
98 |
accesskey="&button.defaultfolder.accesskey;" |
98 |
accesskey="&button.defaultfolder.accesskey;" |
99 |
oncommand="useDefaultFolder();"/> |
99 |
oncommand="useDefaultFolder();"/> |
100 |
-- browser/components/bookmarks/content/addBookmark2.xul |
100 |
++ browser/components/bookmarks/content/addBookmark2.xul |
Lines 42-47
Link Here
|
42 |
buttonlabelextra2="&newFolder.label;" buttonaccesskeyextra2="&newFolder.accesskey;" |
42 |
buttonlabelextra2="&newFolder.label;" buttonaccesskeyextra2="&newFolder.accesskey;" |
43 |
#ifdef XP_UNIX |
43 |
#ifdef XP_UNIX |
44 |
buttonlabelaccept="&acceptButton.label;" |
44 |
buttonlabelaccept="&acceptButton.label;" |
|
|
45 |
buttoniconaccept="add" |
46 |
buttoniconextra2="open" |
45 |
#endif |
47 |
#endif |
46 |
title="&newBookmark.title;" title-selectFolder="&selectFolder.label;" |
48 |
title="&newBookmark.title;" title-selectFolder="&selectFolder.label;" |
47 |
onload="Startup();" |
49 |
onload="Startup();" |
48 |
-- browser/components/cookieviewer/content/CookieExceptions.xul |
50 |
++ browser/components/cookieviewer/content/CookieExceptions.xul |
Lines 47-58
Link Here
|
47 |
<hbox align="start"> |
47 |
<hbox align="start"> |
48 |
<textbox id="url" flex="1" oninput="gPermissionManager.onHostInput(event.target);"/> |
48 |
<textbox id="url" flex="1" oninput="gPermissionManager.onHostInput(event.target);"/> |
49 |
</hbox> |
49 |
</hbox> |
50 |
<hbox pack="end"> |
50 |
<hbox pack="end"> |
51 |
<button id="btnBlock" disabled="true" |
51 |
<button id="btnBlock" disabled="true" icon="no" |
52 |
label="&block.label;" oncommand="gPermissionManager.addPermission(nsIPermissionManager.DENY_ACTION);"/> |
52 |
label="&block.label;" oncommand="gPermissionManager.addPermission(nsIPermissionManager.DENY_ACTION);"/> |
53 |
<button id="btnSession" disabled="true" |
53 |
<button id="btnSession" disabled="true" |
54 |
label="&session.label;" oncommand="gPermissionManager.addPermission(nsICookiePermission.ACCESS_SESSION);"/> |
54 |
label="&session.label;" oncommand="gPermissionManager.addPermission(nsICookiePermission.ACCESS_SESSION);"/> |
55 |
<button id="btnAllow" disabled="true" |
55 |
<button id="btnAllow" disabled="true" icon="yes" |
56 |
label="&allow.label;" oncommand="gPermissionManager.addPermission(nsIPermissionManager.ALLOW_ACTION);"/> |
56 |
label="&allow.label;" oncommand="gPermissionManager.addPermission(nsIPermissionManager.ALLOW_ACTION);"/> |
57 |
</hbox> |
57 |
</hbox> |
58 |
<separator class="thin"/> |
58 |
<separator class="thin"/> |
Lines 71-79
Link Here
|
71 |
</tree> |
71 |
</tree> |
72 |
<separator class="thin"/> |
72 |
<separator class="thin"/> |
73 |
<hbox> |
73 |
<hbox> |
74 |
<button id="removePermission" disabled="true" label="&removepermission.label;" |
74 |
<button id="removePermission" disabled="true" icon="remove" label="&removepermission.label;" |
75 |
oncommand="gPermissionManager.onPermissionDeleted();"/> |
75 |
oncommand="gPermissionManager.onPermissionDeleted();"/> |
76 |
<button id="removeAllPermissions" label="&removeallpermissions.label;" |
76 |
<button id="removeAllPermissions" icon="clear" label="&removeallpermissions.label;" |
77 |
oncommand="gPermissionManager.onAllPermissionsDeleted();"/> |
77 |
oncommand="gPermissionManager.onAllPermissionsDeleted();"/> |
78 |
</hbox> |
78 |
</hbox> |
79 |
</dialog> |
79 |
</dialog> |
80 |
-- browser/components/cookieviewer/content/CookieViewer.xul |
80 |
++ browser/components/cookieviewer/content/CookieViewer.xul |
Lines 112-121
Link Here
|
112 |
</grid> |
112 |
</grid> |
113 |
</groupbox> |
113 |
</groupbox> |
114 |
<hbox> |
114 |
<hbox> |
115 |
<button id="removeCookie" disabled="true" |
115 |
<button id="removeCookie" disabled="true" icon="remove" |
116 |
label="&button.removecookie.label;" |
116 |
label="&button.removecookie.label;" |
117 |
oncommand="DeleteCookie();"/> |
117 |
oncommand="DeleteCookie();"/> |
118 |
<button id="removeAllCookies" |
118 |
<button id="removeAllCookies" icon="clear" |
119 |
label="&button.removeallcookies.label;" |
119 |
label="&button.removeallcookies.label;" |
120 |
oncommand="DeleteAllCookies();"/> |
120 |
oncommand="DeleteAllCookies();"/> |
121 |
</hbox> |
121 |
</hbox> |
122 |
-- browser/components/prefwindow/content/pref-advanced.xul |
122 |
++ browser/components/prefwindow/content/pref-advanced.xul |
Lines 72-80
Link Here
|
72 |
open="true" persist="open" clearhidden="true" align="left"> |
72 |
open="true" persist="open" clearhidden="true" align="left"> |
73 |
<label>&softwareupdateinfo.label;</label> |
73 |
<label>&softwareupdateinfo.label;</label> |
74 |
<vbox class="indent" align="left"> |
74 |
<vbox class="indent" align="left"> |
75 |
<checkbox id="enableSmartUpdate" |
75 |
<!-- checkbox id="enableSmartUpdate" |
76 |
label="&enableSmartUpdate.label;" accesskey="&enableSmartUpdate.accesskey;" |
76 |
label="&enableSmartUpdate.label;" accesskey="&enableSmartUpdate.accesskey;" |
77 |
prefstring="app.update.autoUpdateEnabled"/> |
77 |
prefstring="app.update.autoUpdateEnabled"/ --> |
78 |
<checkbox id="enableExtensionUpdate" |
78 |
<checkbox id="enableExtensionUpdate" |
79 |
label="&enableExtensionUpdate.label;" accesskey="&enableExtensionUpdate.accesskey;" |
79 |
label="&enableExtensionUpdate.label;" accesskey="&enableExtensionUpdate.accesskey;" |
80 |
prefstring="extensions.update.autoUpdateEnabled"/> |
80 |
prefstring="extensions.update.autoUpdateEnabled"/> |
Lines 112-118
Link Here
|
112 |
<hbox align="center"> |
112 |
<hbox align="center"> |
113 |
<button label="&managecerts.button;" |
113 |
<button label="&managecerts.button;" |
114 |
oncommand="openCertManager();" |
114 |
oncommand="openCertManager();" |
115 |
id="openCertManagerButton" |
115 |
id="openCertManagerButton" icon="properties" |
116 |
accesskey="&managecerts.accesskey;" |
116 |
accesskey="&managecerts.accesskey;" |
117 |
prefstring="security.disable_button.openCertManager"/> |
117 |
prefstring="security.disable_button.openCertManager"/> |
118 |
</hbox> |
118 |
</hbox> |
Lines 125-131
Link Here
|
125 |
<hbox align="center"> |
125 |
<hbox align="center"> |
126 |
<button label="&managedevices.button;" |
126 |
<button label="&managedevices.button;" |
127 |
oncommand="openDeviceManager();" |
127 |
oncommand="openDeviceManager();" |
128 |
id="openDeviceManagerButton" |
128 |
id="openDeviceManagerButton" icon="properties" |
129 |
accesskey="&managedevices.accesskey;" |
129 |
accesskey="&managedevices.accesskey;" |
130 |
prefstring="security.disable_button.openDeviceManager"/> |
130 |
prefstring="security.disable_button.openDeviceManager"/> |
131 |
</hbox> |
131 |
</hbox> |
Lines 139-145
Link Here
|
139 |
<hbox align="center"> |
139 |
<hbox align="center"> |
140 |
<button label="&validation.managecrls.button;" |
140 |
<button label="&validation.managecrls.button;" |
141 |
oncommand="openCrlManager();" |
141 |
oncommand="openCrlManager();" |
142 |
id="managecrlbutton" |
142 |
id="managecrlbutton" icon="properties" |
143 |
accesskey="&validation.managecrls.accesskey;" |
143 |
accesskey="&validation.managecrls.accesskey;" |
144 |
prefstring="security.OCSP.disable_button.managecrl"/> |
144 |
prefstring="security.OCSP.disable_button.managecrl"/> |
145 |
</hbox> |
145 |
</hbox> |
146 |
-- browser/components/prefwindow/content/pref-features-images.xul |
146 |
++ browser/components/prefwindow/content/pref-features-images.xul |
Lines 54-64
Link Here
|
54 |
<treechildren/> |
54 |
<treechildren/> |
55 |
</tree> |
55 |
</tree> |
56 |
<hbox> |
56 |
<hbox> |
57 |
<button id="removePermission" disabled="true" |
57 |
<button id="removePermission" disabled="true" icon="remove" |
58 |
label="&removepermission.label;" |
58 |
label="&removepermission.label;" |
59 |
oncommand="DeletePermission();"/> |
59 |
oncommand="DeletePermission();"/> |
60 |
<button id="removeAllPermissions" |
60 |
<button id="removeAllPermissions" |
61 |
label="&removeallpermissions.label;" |
61 |
label="&removeallpermissions.label;" icon="clear" |
62 |
oncommand="DeleteAllPermissions();"/> |
62 |
oncommand="DeleteAllPermissions();"/> |
63 |
</hbox> |
63 |
</hbox> |
64 |
</dialog> |
64 |
</dialog> |
65 |
-- browser/components/prefwindow/content/pref-navigator.xul |
65 |
++ browser/components/prefwindow/content/pref-navigator.xul |
Lines 86-92
Link Here
|
86 |
<caption label="&fonts.caption;"/> |
86 |
<caption label="&fonts.caption;"/> |
87 |
<hbox align="center"> |
87 |
<hbox align="center"> |
88 |
<description flex="1">&fontsInfo.label;</description> |
88 |
<description flex="1">&fontsInfo.label;</description> |
89 |
<button label="&showFontsAndColors.label;" |
89 |
<button label="&showFontsAndColors.label;" icon="select-font" |
90 |
accesskey="&showFontsAndColors.accesskey;" |
90 |
accesskey="&showFontsAndColors.accesskey;" |
91 |
oncommand="showFontsAndColors();"/> |
91 |
oncommand="showFontsAndColors();"/> |
92 |
</hbox> |
92 |
</hbox> |
Lines 118-124
Link Here
|
118 |
<hbox align="center"> |
118 |
<hbox align="center"> |
119 |
<description flex="1">&proxiesInfo.label;</description> |
119 |
<description flex="1">&proxiesInfo.label;</description> |
120 |
<button id="catProxiesButton" label="&showConnections.label;" |
120 |
<button id="catProxiesButton" label="&showConnections.label;" |
121 |
accesskey="&showConnections.accesskey;" |
121 |
accesskey="&showConnections.accesskey;" icon="network" |
122 |
oncommand="showConnections();"/> |
122 |
oncommand="showConnections();"/> |
123 |
</hbox> |
123 |
</hbox> |
124 |
</groupbox> |
124 |
</groupbox> |
125 |
-- browser/components/shell/src/nsGNOMEShellService.h |
125 |
++ browser/components/shell/src/nsGNOMEShellService.h |
Lines 43-49
Link Here
|
43 |
class nsGNOMEShellService : public nsIShellService |
43 |
class nsGNOMEShellService : public nsIShellService |
44 |
{ |
44 |
{ |
45 |
public: |
45 |
public: |
46 |
nsGNOMEShellService() : mCheckedThisSession(PR_FALSE) { } |
46 |
nsGNOMEShellService() : mCheckedThisSession(PR_TRUE) { } |
47 |
|
47 |
|
48 |
NS_DECL_ISUPPORTS |
48 |
NS_DECL_ISUPPORTS |
49 |
NS_DECL_NSISHELLSERVICE |
49 |
NS_DECL_NSISHELLSERVICE |
50 |
-- browser/locales/en-US/chrome/browser-region/region.properties |
50 |
++ browser/locales/en-US/chrome/browser-region/region.properties |
Lines 1-21
Link Here
|
1 |
general.useragent.contentlocale=US |
1 |
general.useragent.contentlocale=US |
2 |
|
2 |
|
3 |
homePageDefault=http://www.mozilla.org/products/firefox/start/ |
3 |
homePageDefault=file:///usr/share/ubuntu-artwork/home/index.html |
4 |
fallbackDefaultSearchURL=http://www.google.com/search?&q= |
4 |
fallbackDefaultSearchURL=http://www.google.com/search?&q= |
5 |
|
5 |
|
6 |
tellAFriendURL=http://www.spreadfirefox.com/ |
6 |
tellAFriendURL=http://www.spreadfirefox.com/ |
7 |
promoteURL=http://www.spreadfirefox.com/promote/ |
7 |
promoteURL=http://www.spreadfirefox.com/promote/ |
8 |
|
8 |
|
9 |
# firefox.js |
9 |
# firefox.js |
10 |
browser.startup.homepage=http://start.mozilla.org/firefox/ |
10 |
browser.startup.homepage=file:///usr/share/ubuntu-artwork/home/index.html |
11 |
browser.throbber.url=http://www.mozilla.org/products/firefox/central.html |
11 |
browser.throbber.url=file:///usr/share/ubuntu-artwork/home/index.html |
12 |
browser.search.defaulturl=http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q= |
12 |
browser.search.defaulturl=http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q= |
13 |
|
13 |
|
14 |
browser.search.order.1=Google |
14 |
browser.search.order.1=Google |
15 |
browser.search.order.2=Yahoo |
15 |
browser.search.order.2=Yahoo |
16 |
|
16 |
|
17 |
#config.js |
17 |
#config.js |
18 |
startup.homepage_override_url=http://www.mozilla.org/products/firefox/start/ |
18 |
startup.homepage_override_url=file:///usr/share/ubuntu-artwork/home/index.html |
19 |
|
19 |
|
20 |
# search-panel.properties |
20 |
# search-panel.properties |
21 |
defaultSearchURL=http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q= |
21 |
defaultSearchURL=http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q= |
22 |
-- browser/locales/en-US/searchplugins/list.txt |
22 |
++ browser/locales/en-US/searchplugins/list.txt |
Lines 3-6
Link Here
|
3 |
dictionary |
3 |
dictionary |
4 |
eBay |
4 |
eBay |
5 |
yahoo |
5 |
yahoo |
6 |
creativecommons |
6 |
creativecommons |
7 |
-- browser/themes/Makefile.in |
7 |
++ browser/themes/Makefile.in |
Lines 45-52
Link Here
|
45 |
# |
45 |
# |
46 |
# Theme Selection |
46 |
# Theme Selection |
47 |
# |
47 |
# |
48 |
# Windows, GNOME/Linux Winstripe |
48 |
# Windows Winstripe |
49 |
# MacOS X Pinstripe |
49 |
# MacOS X Pinstripe |
|
|
50 |
# GNOME/Linux Gnomestripe |
50 |
# |
51 |
# |
51 |
|
52 |
|
52 |
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) |
53 |
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) |
53 |
-- build/unix/run-mozilla.sh |
54 |
++ build/unix/run-mozilla.sh |
Lines 249-264
Link Here
|
249 |
fi |
249 |
fi |
250 |
if [ -x "$debugger" ] |
250 |
if [ -x "$debugger" ] |
251 |
then |
251 |
then |
252 |
echo "set args ${1+"$@"}" > /tmp/mozargs$$ |
252 |
tmpfile=`mktemp -t` || { echo "Cannot create temporary file" >&2; exit 1; } |
|
|
253 |
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15 |
254 |
echo "set args ${1+"$@"}" > $tmpfile |
253 |
# If you are not using ddd, gdb and know of a way to convey the arguments |
255 |
# If you are not using ddd, gdb and know of a way to convey the arguments |
254 |
# over to the prog then add that here- Gagan Saksena 03/15/00 |
256 |
# over to the prog then add that here- Gagan Saksena 03/15/00 |
255 |
case `basename $debugger` in |
257 |
case `basename $debugger` in |
256 |
gdb) echo "$debugger $prog -x /tmp/mozargs$$" |
258 |
gdb) echo "$debugger $prog -x $tmpfile" |
257 |
$debugger "$prog" -x /tmp/mozargs$$ |
259 |
$debugger "$prog" -x $tmpfile |
258 |
exitcode=$? |
260 |
exitcode=$? |
259 |
;; |
261 |
;; |
260 |
ddd) echo "$debugger --debugger \"gdb -x /tmp/mozargs$$\" $prog" |
262 |
ddd) echo "$debugger --debugger \"gdb -x $tmpfile\" $prog" |
261 |
$debugger --debugger "gdb -x /tmp/mozargs$$" "$prog" |
263 |
$debugger --debugger "gdb -x $tmpfile" "$prog" |
262 |
exitcode=$? |
264 |
exitcode=$? |
263 |
;; |
265 |
;; |
264 |
*) echo "$debugger $prog ${1+"$@"}" |
266 |
*) echo "$debugger $prog ${1+"$@"}" |
Lines 266-272
Link Here
|
266 |
exitcode=$? |
268 |
exitcode=$? |
267 |
;; |
269 |
;; |
268 |
esac |
270 |
esac |
269 |
/bin/rm /tmp/mozargs$$ |
|
|
270 |
else |
271 |
else |
271 |
echo "Could not find a debugger on your system." |
272 |
echo "Could not find a debugger on your system." |
272 |
fi |
273 |
fi |
273 |
-- build/unix/firefox-config |
274 |
++ build/unix/firefox-config |
Line 0
Link Here
|
0 |
-- nsprpub/lib/tests/Makefile |
1 |
#!/bin/sh |
|
|
2 |
|
3 |
prefix=/usr |
4 |
exec_prefix=/usr |
5 |
exec_prefix_set=no |
6 |
|
7 |
usage() |
8 |
{ |
9 |
cat <<EOF |
10 |
Usage: $0 [OPTIONS] [LIBRARIES] |
11 |
Options: |
12 |
[--prefix[=DIR]] |
13 |
[--exec-prefix[=DIR]] |
14 |
[--version] |
15 |
[--defines] |
16 |
[--libs] [libraries] |
17 |
[--cflags] [components] |
18 |
[--idlflags] |
19 |
Components: |
20 |
* |
21 |
Libraries: |
22 |
xpcom |
23 |
nspr |
24 |
js |
25 |
jsj |
26 |
gfx |
27 |
EOF |
28 |
exit $1 |
29 |
} |
30 |
|
31 |
if test $# -eq 0; then |
32 |
usage 1 1>&2 |
33 |
fi |
34 |
|
35 |
while test $# -gt 0; do |
36 |
case "$1" in |
37 |
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; |
38 |
*) optarg= ;; |
39 |
esac |
40 |
|
41 |
case $1 in |
42 |
--prefix=*) |
43 |
prefix=$optarg |
44 |
if test $exec_prefix_set = no ; then |
45 |
exec_prefix=$optarg |
46 |
fi |
47 |
;; |
48 |
--prefix) |
49 |
echo_prefix=yes |
50 |
;; |
51 |
--exec-prefix=*) |
52 |
exec_prefix=$optarg |
53 |
exec_prefix_set=yes |
54 |
;; |
55 |
--exec-prefix) |
56 |
echo_exec_prefix=yes |
57 |
;; |
58 |
--version) |
59 |
echo 1.0.2 |
60 |
exit 0 |
61 |
;; |
62 |
--cflags) |
63 |
if test "/usr/include/mozilla-firefox" != /usr/include ; then |
64 |
includes="-I/usr/include/mozilla-firefox" |
65 |
fi |
66 |
echo_cflags=yes |
67 |
;; |
68 |
--defines) |
69 |
echo_defines=yes |
70 |
;; |
71 |
--libs) |
72 |
echo_libs=yes |
73 |
;; |
74 |
--idlflags) |
75 |
echo_idlflags=yes |
76 |
;; |
77 |
xpcom|js|nspr|gfx|jsj) |
78 |
echo_components="$echo_components $1" |
79 |
echo_libraries="$echo_libraries $1" |
80 |
;; |
81 |
xpconnect) |
82 |
echo_components="$echo_components $1" |
83 |
;; |
84 |
"") |
85 |
usage 1 1>&2 |
86 |
;; |
87 |
*) |
88 |
echo_components="$echo_components $1" |
89 |
;; |
90 |
esac |
91 |
shift |
92 |
done |
93 |
|
94 |
if test "$echo_prefix" = "yes"; then |
95 |
echo $prefix |
96 |
fi |
97 |
if test "$echo_exec_prefix" = "yes"; then |
98 |
echo $exec_prefix |
99 |
fi |
100 |
|
101 |
if test "$echo_defines" = "yes"; then |
102 |
echo -DHAVE_64BIT_OS=1 -DMOZILLA_VERSION=\"1.7.6\" -DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_SIGINFO_T=1 -DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_UINT=1 -DHAVE_UNAME_DOMAINNAME_FIELD=1 -DHAVE_VISIBILITY_ATTRIBUTE=1 -DHAVE_DIRENT_H=1 -DHAVE_GETOPT_H=1 -DHAVE_SYS_BITYPES_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GNU_LIBC_VERSION_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_CDEFS_H=1 -DHAVE_LIBM=1 -DHAVE_LIBDL=1 -DFUNCPROTO=15 -DHAVE_XSHM=1 -D_REENTRANT=1 -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1 -DHAVE_SNPRINTF=1 -DHAVE_MEMMOVE=1 -DHAVE_RINT=1 -DHAVE_FLOCKFILE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_STRTOK_R=1 -DHAVE_RES_NINIT=1 -DHAVE_GNU_GET_LIBC_VERSION=1 -DHAVE_LANGINFO_CODESET=1 -DVA_COPY=va_copy -DHAVE_VA_COPY=1 -DHAVE_VA_LIST_AS_ARRAY=1 -DHAVE_I18N_LC_MESSAGES=1 -DMOZ_DEFAULT_TOOLKIT=\"gtk2\" -DMOZ_WIDGET_GTK2=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_X11=1 -DMOZ_DISTRIBUTION_ID_UNQUOTED=org.mozilla -DMOZ_DISTRIBUTION_ID=\"org.mozilla\" -DMOZ_PHOENIX=1 -DMOZ_XUL_APP=1 -DMOZ_APP_NAME=\"firefox\" -DMOZ_ENABLE_XFT=1 -DMOZ_ENABLE_PANGO=1 -DHAVE_LIBPANGOFT2_1_0=1 -DMOZ_ENABLE_COREXFONTS=1 -DMOZ_EXTRA_X11CONVERTERS=1 -DOJI=1 -DMOZ_ENABLE_XINERAMA=1 -DIBMBIDI=1 -DMOZ_VIEW_SOURCE=1 -DACCESSIBILITY=1 -DMOZ_XPINSTALL=1 -DMOZ_JSLOADER=1 -DHAVE_GSSAPI_GSSAPI_H=1 -DHAVE_GSSAPI_GSSAPI_GENERIC_H=1 -DHAVE_GSS_C_NT_HOSTBASED_SERVICE=1 -DMOZ_MATHML=1 -DMOZ_LOGGING=1 -DHAVE___CXA_DEMANGLE=1 -DMOZ_DEFAULT_MOZILLA_FIVE_HOME=\"/usr/lib/mozilla-firefox\" -DMOZ_USER_DIR=\".mozilla\" -DMOZ_XUL=1 -DMOZ_PROFILELOCKING=1 -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1 -DJS_THREADSAFE=1 -DNS_PRINT_PREVIEW=1 -DNS_PRINTING=1 -DMOZ_ACCESSIBILITY_ATK=1 -DMOZILLA_LOCALE_VERSION=\"1.7\" -DMOZILLA_REGION_VERSION=\"1.7\" -DMOZILLA_SKIN_VERSION=\"1.5\" |
103 |
fi |
104 |
|
105 |
if test "$echo_cflags" = "yes"; then |
106 |
nspr_cflags="-I/usr/include/mozilla-firefox/nspr" |
107 |
for n in $echo_components; do |
108 |
component_includes="$component_includes -I/usr/include/mozilla-firefox/$n" |
109 |
done |
110 |
echo $component_includes $includes $nspr_cflags |
111 |
fi |
112 |
|
113 |
if test "$echo_idlflags" = "yes"; then |
114 |
echo "-I%{idldir}" |
115 |
fi |
116 |
|
117 |
_nspr_libs="-L/usr/lib/mozilla-firefox -lplds4 -lplc4 -lnspr4 -lpthread -ldl" |
118 |
_xpcom_libs="-lxpcom $_nspr_libs" |
119 |
_js_libs="-ljs" |
120 |
|
121 |
if test "$echo_libs" = "yes"; then |
122 |
for l in $echo_libraries; do |
123 |
case "$l" in |
124 |
gfx) |
125 |
libs="$libs -lgkgfx $_xpcom_libs" |
126 |
;; |
127 |
xpcom) |
128 |
libs="$libs $_xpcom_libs" |
129 |
;; |
130 |
nspr) |
131 |
libs="$libs $_nspr_libs" |
132 |
;; |
133 |
js) |
134 |
libs="$libs $_js_libs" |
135 |
;; |
136 |
jsj) |
137 |
libs="$libs -ljsj $_js_libs $_xpcom_libs" |
138 |
;; |
139 |
esac |
140 |
done |
141 |
echo -L/usr/lib/mozilla-firefox $libs |
142 |
fi |
|
|
143 |
++ nsprpub/lib/tests/Makefile |
Line 0
Link Here
|
0 |
-- nsprpub/pkg/linux/Makefile |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# The contents of this file are subject to the Mozilla Public |
4 |
# License Version 1.1 (the "License"); you may not use this file |
5 |
# except in compliance with the License. You may obtain a copy of |
6 |
# the License at http://www.mozilla.org/MPL/ |
7 |
# |
8 |
# Software distributed under the License is distributed on an "AS |
9 |
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
10 |
# implied. See the License for the specific language governing |
11 |
# rights and limitations under the License. |
12 |
# |
13 |
# The Original Code is the Netscape Portable Runtime (NSPR). |
14 |
# |
15 |
# The Initial Developer of the Original Code is Netscape |
16 |
# Communications Corporation. Portions created by Netscape are |
17 |
# Copyright (C) 1998-2000 Netscape Communications Corporation. All |
18 |
# Rights Reserved. |
19 |
# |
20 |
# Contributor(s): |
21 |
# |
22 |
# Alternatively, the contents of this file may be used under the |
23 |
# terms of the GNU General Public License Version 2 or later (the |
24 |
# "GPL"), in which case the provisions of the GPL are applicable |
25 |
# instead of those above. If you wish to allow use of your |
26 |
# version of this file only under the terms of the GPL and not to |
27 |
# allow others to use your version of this file under the MPL, |
28 |
# indicate your decision by deleting the provisions above and |
29 |
# replace them with the notice and other provisions required by |
30 |
# the GPL. If you do not delete the provisions above, a recipient |
31 |
# may use your version of this file under either the MPL or the |
32 |
# GPL. |
33 |
# |
34 |
|
35 |
#! gmake |
36 |
|
37 |
MOD_DEPTH = ../.. |
38 |
topsrcdir = ../.. |
39 |
srcdir = . |
40 |
|
41 |
include $(MOD_DEPTH)/config/autoconf.mk |
42 |
|
43 |
include $(topsrcdir)/config/config.mk |
44 |
|
45 |
ifeq ($(OS_ARCH), WINNT) |
46 |
# DIRS = windows |
47 |
endif |
48 |
|
49 |
ifeq ($(OS_TARGET), WIN16) |
50 |
OS_CFLAGS = $(OS_EXE_CFLAGS) |
51 |
endif |
52 |
|
53 |
CSRCS = \ |
54 |
arena.c \ |
55 |
string.c \ |
56 |
base64t.c |
57 |
|
58 |
ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) |
59 |
CSRCS += arena.c |
60 |
endif |
61 |
|
62 |
ifeq (,$(filter-out WINNT OS2,$(OS_ARCH))) |
63 |
PROG_SUFFIX = .exe |
64 |
else |
65 |
PROG_SUFFIX = |
66 |
endif |
67 |
|
68 |
PROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=$(PROG_SUFFIX))) |
69 |
|
70 |
TARGETS = $(PROGS) $(OBJS) |
71 |
|
72 |
INCLUDES = -I$(dist_includedir) |
73 |
|
74 |
# Setting the variables LDOPTS and LIBPR. We first initialize |
75 |
# them to the default values, then adjust them for some platforms. |
76 |
LDOPTS = -L$(dist_libdir) |
77 |
LIBPR = -lnspr$(MOD_MAJOR_VERSION) |
78 |
LIBPLC = -lplc$(MOD_MAJOR_VERSION) |
79 |
LIBPLDS = -lplds$(MOD_MAJOR_VERSION) |
80 |
|
81 |
ifeq ($(OS_ARCH), WINNT) |
82 |
ifeq ($(OS_TARGET), WIN16) |
83 |
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).lib |
84 |
LIBPLC= $(dist_libdir)/plc$(MOD_MAJOR_VERSION).lib |
85 |
LIBPLDS= $(dist_libdir)/plds$(MOD_MAJOR_VERSION).lib |
86 |
else |
87 |
LDOPTS = -NOLOGO -DEBUG -DEBUGTYPE:CV -INCREMENTAL:NO |
88 |
ifeq ($(OS_TARGET), WIN95) |
89 |
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
90 |
LIBPLC= $(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
91 |
LIBPLDS= $(dist_libdir)/plds$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
92 |
else |
93 |
LIBPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
94 |
LIBPLC= $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
95 |
LIBPLDS= $(dist_libdir)/libplds$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
96 |
endif |
97 |
endif |
98 |
endif |
99 |
|
100 |
ifeq ($(OS_ARCH),OS2) |
101 |
ifeq ($(MOZ_OS2_TOOLS),VACPP) |
102 |
LDOPTS = -NOE -DEBUG -nologo -PMTYPE:VIO /S:32768 |
103 |
LIBPR = $(dist_libdir)/nspr$(MOD_MAJOR_VERSION).lib |
104 |
LIBPLC = $(dist_libdir)/plc$(MOD_MAJOR_VERSION).lib |
105 |
LIBPLDS= $(dist_libdir)/plds$(MOD_MAJOR_VERSION).$(LIB_SUFFIX) |
106 |
else |
107 |
LDOPTS += -Zomf -Zlinker /PM:VIO |
108 |
endif |
109 |
endif |
110 |
|
111 |
ifneq ($(OS_ARCH), WINNT) |
112 |
PWD = $(shell pwd) |
113 |
endif |
114 |
|
115 |
ifeq ($(OS_ARCH), IRIX) |
116 |
LDOPTS += -rpath $(PWD)/$(dist_libdir) |
117 |
endif |
118 |
|
119 |
ifeq ($(OS_ARCH), Linux) |
120 |
ifeq ($(OS_RELEASE), 1.2) |
121 |
EXTRA_LIBS = -ldl |
122 |
else |
123 |
LDOPTS += -Xlinker -rpath $(PWD)/$(dist_libdir) |
124 |
ifeq ($(USE_PTHREADS),1) |
125 |
EXTRA_LIBS = -lpthread |
126 |
endif |
127 |
endif |
128 |
endif |
129 |
|
130 |
ifeq ($(OS_ARCH), OSF1) |
131 |
LDOPTS += -rpath $(PWD)/$(dist_libdir) -lpthread |
132 |
endif |
133 |
|
134 |
ifeq ($(OS_ARCH), HP-UX) |
135 |
LDOPTS += -Wl,+s,+b,$(PWD)/$(dist_libdir) |
136 |
endif |
137 |
|
138 |
# AIX |
139 |
ifeq ($(OS_ARCH),AIX) |
140 |
LDOPTS += -blibpath:$(PWD)/$(dist_libdir):/usr/lib:/lib |
141 |
LIBPR = -lnspr$(MOD_MAJOR_VERSION)_shr |
142 |
LIBPLC = -lplc$(MOD_MAJOR_VERSION)_shr |
143 |
endif |
144 |
|
145 |
# Solaris |
146 |
ifeq ($(OS_ARCH), SunOS) |
147 |
ifneq ($(OS_RELEASE), 4.1.3_U1) |
148 |
ifdef NS_USE_GCC |
149 |
LDOPTS += -Xlinker -R -Xlinker $(PWD)/$(dist_libdir) |
150 |
else |
151 |
LDOPTS += -R $(PWD)/$(dist_libdir) |
152 |
endif |
153 |
endif |
154 |
|
155 |
# SunOS 5.4 and 5.5 need to link with -lthread or -lpthread, |
156 |
# even though we already linked with these system libraries |
157 |
# when we built libnspr.so. |
158 |
ifeq ($(OS_RELEASE), 5.4) |
159 |
EXTRA_LIBS = -lthread |
160 |
endif |
161 |
|
162 |
ifeq ($(OS_RELEASE), 5.5) |
163 |
ifdef USE_PTHREADS |
164 |
EXTRA_LIBS = -lpthread |
165 |
else |
166 |
EXTRA_LIBS = -lthread |
167 |
endif |
168 |
endif |
169 |
endif # SunOS |
170 |
|
171 |
ifeq ($(OS_ARCH), NCR) |
172 |
# NCR needs to link against -lsocket -lnsl (and -lc, which is linked |
173 |
# implicitly by $(CC)) again even though we already linked with these |
174 |
# system libraries when we built libnspr.so. |
175 |
EXTRA_LIBS = -lsocket -lnsl |
176 |
# This hardcodes in the executable programs the directory to find |
177 |
# libnspr.so etc. at program startup. Equivalent to the -R or -rpath |
178 |
# option for ld on other platforms. |
179 |
export LD_RUN_PATH = $(PWD)/$(dist_libdir) |
180 |
endif |
181 |
|
182 |
##################################################### |
183 |
# |
184 |
# The rules |
185 |
# |
186 |
##################################################### |
187 |
|
188 |
include $(topsrcdir)/config/rules.mk |
189 |
|
190 |
AIX_PRE_4_2 = 0 |
191 |
ifeq ($(OS_ARCH),AIX) |
192 |
ifneq ($(OS_RELEASE),4.2) |
193 |
ifneq ($(USE_PTHREADS), 1) |
194 |
#AIX_PRE_4_2 = 1 |
195 |
endif |
196 |
endif |
197 |
endif |
198 |
|
199 |
ifeq ($(AIX_PRE_4_2),1) |
200 |
|
201 |
# AIX releases prior to 4.2 need a special two-step linking hack |
202 |
# in order to both override the system select() and be able to |
203 |
# get at the original system select(). |
204 |
# |
205 |
# We use a pattern rule in ns/nspr20/config/rules.mk to generate |
206 |
# the .$(OBJ_SUFFIX) file from the .c source file, then do the |
207 |
# two-step linking hack below. |
208 |
|
209 |
$(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX) |
210 |
@$(MAKE_OBJDIR) |
211 |
rm -f $@ $(AIX_TMP) |
212 |
$(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a |
213 |
$(CC) -o $@ $(AIX_TMP) $(AIX_WRAP) |
214 |
rm -f $(AIX_TMP) |
215 |
|
216 |
else |
217 |
|
218 |
# All platforms that are not AIX pre-4.2. |
219 |
|
220 |
$(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX) |
221 |
@$(MAKE_OBJDIR) |
222 |
|
223 |
ifeq ($(OS_ARCH), WINNT) |
224 |
ifeq ($(OS_TARGET),WIN16) |
225 |
echo system windows >w16link |
226 |
echo option map >>w16link |
227 |
echo option stack=10K >>w16link |
228 |
echo option heapsize=32K >>w16link |
229 |
echo debug $(DEBUGTYPE) all >>w16link |
230 |
echo name $@ >>w16link |
231 |
echo file >>w16link |
232 |
echo $< >>w16link |
233 |
echo library >>w16link |
234 |
echo $(LIBPR), >>w16link |
235 |
echo $(LIBPLC), >>w16link |
236 |
echo winsock.lib >>w16link |
237 |
wlink @w16link. |
238 |
else |
239 |
link $(LDOPTS) $< $(LIBPLC) $(LIBPLDS) $(LIBPR) wsock32.lib -out:$@ |
240 |
endif |
241 |
else |
242 |
ifeq ($(OS_ARCH),OS2) |
243 |
$(LINK) $(EXEFLAGS) $(LDOPTS) $< $(LIBPLC) $(LIBPLDS) $(LIBPR) $(OS_LIBS) $(EXTRA_LIBS) |
244 |
else |
245 |
$(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBPLDS) $(LIBPR) $(EXTRA_LIBS) -o $@ |
246 |
endif |
247 |
endif |
248 |
endif |
249 |
|
250 |
export:: $(TARGETS) |
251 |
clean:: |
252 |
rm -f $(TARGETS) |
253 |
|
254 |
|
255 |
|
|
|
256 |
++ nsprpub/pkg/linux/Makefile |
Line 0
Link Here
|
0 |
-- nsprpub/pkg/solaris/SUNWpr/Makefile |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# Copyright 2002 Sun Microsystems, Inc. All rights reserved. |
4 |
# Use is subject to license terms. |
5 |
# |
6 |
#ident "$Id: Makefile.in,v 1.2.2.1 2003/02/26 06:17:31 wtc%netscape.com Exp $" |
7 |
# |
8 |
|
9 |
MOD_DEPTH = ../.. |
10 |
topsrcdir = ../.. |
11 |
srcdir = . |
12 |
|
13 |
NAME = sun-nspr |
14 |
RELEASE = 1 |
15 |
TOPDIR = /usr/src/redhat |
16 |
VERSION = `grep PR_VERSION $(dist_includedir)/prinit.h \ |
17 |
| sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//'` |
18 |
|
19 |
include $(MOD_DEPTH)/config/autoconf.mk |
20 |
|
21 |
publish: |
22 |
$(MAKE) clean |
23 |
mkdir -p usr/lib/mps |
24 |
cp -L $(MOD_DEPTH)/dist/lib/* usr/lib/mps |
25 |
mkdir -p usr/include/mps |
26 |
cp -Lr $(MOD_DEPTH)/dist/include/* usr/include/mps |
27 |
tar czvf $(NAME)-$(VERSION).tar.gz usr |
28 |
echo "%define name $(NAME)" >$(NAME).spec |
29 |
echo "%define version $(VERSION)" >>$(NAME).spec |
30 |
echo "%define release $(RELEASE)" >>$(NAME).spec |
31 |
|
32 |
cat $(srcdir)/$(NAME).spec >>$(NAME).spec |
33 |
cp $(NAME)-$(VERSION).tar.gz $(TOPDIR)/SOURCES |
34 |
rpm -ba $(NAME).spec |
35 |
if [ ! -d RPMS ] ; then mkdir -p RPMS ; fi |
36 |
if [ ! -d SRPMS ] ; then mkdir -p SRPMS ; fi |
37 |
cp -v $(TOPDIR)/RPMS/i386/$(NAME)-$(VERSION)-* RPMS |
38 |
cp -v $(TOPDIR)/RPMS/i386/$(NAME)-devel-$(VERSION)-* RPMS |
39 |
cp -v $(TOPDIR)/SRPMS/$(NAME)-$(VERSION)-* SRPMS |
40 |
|
41 |
clean: |
42 |
rm -rf $(TOPDIR)/BUILD/$(NAME) |
43 |
rm -rf RPMS SRPMS usr |
44 |
rm -f $(NAME)-$(VERSION).tar.gz |
|
|
45 |
++ nsprpub/pkg/solaris/SUNWpr/Makefile |
Line 0
Link Here
|
0 |
-- nsprpub/pkg/solaris/SUNWprx/Makefile |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# Copyright 2002 Sun Microsystems, Inc. All rights reserved. |
4 |
# Use is subject to license terms. |
5 |
# |
6 |
#ident "$Id: Makefile.in,v 1.1.2.1 2003/01/07 15:29:37 wtc%netscape.com Exp $" |
7 |
# |
8 |
|
9 |
MOD_DEPTH = ../../.. |
10 |
topsrcdir = ../../.. |
11 |
srcdir = . |
12 |
|
13 |
include $(MOD_DEPTH)/config/autoconf.mk |
14 |
|
15 |
include $(srcdir)/../Makefile.com |
16 |
|
17 |
DATAFILES += |
18 |
|
19 |
all:: $(FILES) |
20 |
publish:: all pkg |
21 |
|
22 |
include $(srcdir)/../Makefile.targ |
|
|
23 |
++ nsprpub/pkg/solaris/SUNWprx/Makefile |
Line 0
Link Here
|
0 |
-- nsprpub/pkg/solaris/Makefile |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# Copyright 2002 Sun Microsystems, Inc. All rights reserved. |
4 |
# Use is subject to license terms. |
5 |
# |
6 |
#ident "$Id: Makefile.in,v 1.1.2.1 2003/01/07 15:29:43 wtc%netscape.com Exp $" |
7 |
# |
8 |
|
9 |
MOD_DEPTH = ../../.. |
10 |
topsrcdir = ../../.. |
11 |
srcdir = . |
12 |
|
13 |
include $(MOD_DEPTH)/config/autoconf.mk |
14 |
|
15 |
include $(srcdir)/../Makefile.com |
16 |
|
17 |
DATAFILES += |
18 |
|
19 |
all:: $(FILES) |
20 |
publish:: all pkg |
21 |
|
22 |
include $(srcdir)/../Makefile.targ |
|
|
23 |
++ nsprpub/pkg/solaris/Makefile |
Line 0
Link Here
|
0 |
-- nsprpub/pkg/Makefile |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# Copyright 2002 Sun Microsystems, Inc. All rights reserved. |
4 |
# Use is subject to license terms. |
5 |
# |
6 |
#ident "$Id: Makefile.in,v 1.1.2.1 2003/01/07 15:29:33 wtc%netscape.com Exp $" |
7 |
# |
8 |
|
9 |
MOD_DEPTH = ../.. |
10 |
topsrcdir = ../.. |
11 |
srcdir = . |
12 |
|
13 |
include $(MOD_DEPTH)/config/autoconf.mk |
14 |
|
15 |
%: %.ksh |
16 |
$(RM) $@ |
17 |
cp $< $@ |
18 |
chmod +x $@ |
19 |
|
20 |
ifeq ($(USE_64), 1) |
21 |
DIRS = \ |
22 |
SUNWprx |
23 |
else |
24 |
DIRS = \ |
25 |
SUNWpr |
26 |
endif |
27 |
|
28 |
PROTO = \ |
29 |
$(ROOT) \ |
30 |
$(ROOT)/usr \ |
31 |
$(ROOT)/usr/lib \ |
32 |
$(ROOT)/usr/lib/mps |
33 |
|
34 |
ifdef USE_64 |
35 |
PROTO += $(ROOT)/usr/lib/mps/sparcv9 |
36 |
endif |
37 |
|
38 |
include $(srcdir)/Makefile.com |
39 |
|
40 |
awk_pkginfo: bld_awk_pkginfo |
41 |
./bld_awk_pkginfo -m $(MACH) -p "$(PRODUCT_VERSION)" -o $@ -v $(PRODUCT_VERSION) |
42 |
|
43 |
all:: awk_pkginfo $(PROTO) |
44 |
publish: awk_pkginfo $(PROTO) |
45 |
+$(LOOP_OVER_DIRS) |
46 |
|
47 |
clean clobber:: |
48 |
$(RM) awk_pkginfo bld_awk_pkginfo |
49 |
$(RM) -r $(ROOT) |
50 |
|
51 |
$(ROOT) $(ROOT)/%: |
52 |
mkdir -p $@ |
53 |
|
54 |
ifdef USE_64 |
55 |
$(ROOT)/usr/lib/mps/sparcv9: |
56 |
$(LN) -sf ../../../../$(dist_libdir) $@ |
57 |
else |
58 |
$(ROOT)/usr/lib/mps: |
59 |
$(LN) -sf ../../../$(dist_libdir) $@ |
60 |
endif |
|
|
61 |
++ nsprpub/pkg/Makefile |
Line 0
Link Here
|
0 |
-- security/nss/lib/freebl/unix_rand.c |
1 |
# Generated automatically from Makefile.in by configure. |
|
|
2 |
# |
3 |
# The contents of this file are subject to the Mozilla Public |
4 |
# License Version 1.1 (the "License"); you may not use this file |
5 |
# except in compliance with the License. You may obtain a copy of |
6 |
# the License at http://www.mozilla.org/MPL/ |
7 |
# |
8 |
# Software distributed under the License is distributed on an "AS |
9 |
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
10 |
# implied. See the License for the specific language governing |
11 |
# rights and limitations under the License. |
12 |
# |
13 |
# The Original Code is the Netscape Portable Runtime (NSPR). |
14 |
# |
15 |
# The Initial Developer of the Original Code is Netscape |
16 |
# Communications Corporation. Portions created by Netscape are |
17 |
# Copyright (C) 1998-2000 Netscape Communications Corporation. All |
18 |
# Rights Reserved. |
19 |
# |
20 |
# Contributor(s): |
21 |
# |
22 |
# Alternatively, the contents of this file may be used under the |
23 |
# terms of the GNU General Public License Version 2 or later (the |
24 |
# "GPL"), in which case the provisions of the GPL are applicable |
25 |
# instead of those above. If you wish to allow use of your |
26 |
# version of this file only under the terms of the GPL and not to |
27 |
# allow others to use your version of this file under the MPL, |
28 |
# indicate your decision by deleting the provisions above and |
29 |
# replace them with the notice and other provisions required by |
30 |
# the GPL. If you do not delete the provisions above, a recipient |
31 |
# may use your version of this file under either the MPL or the |
32 |
# GPL. |
33 |
# |
34 |
|
35 |
#! gmake |
36 |
|
37 |
MOD_DEPTH = .. |
38 |
topsrcdir = .. |
39 |
srcdir = . |
40 |
|
41 |
include $(MOD_DEPTH)/config/autoconf.mk |
42 |
|
43 |
DIRS = |
44 |
ifeq ($(OS_TARGET),Linux) |
45 |
DIRS = linux |
46 |
endif |
47 |
ifeq ($(OS_TARGET),SunOS) |
48 |
DIRS = solaris |
49 |
endif |
50 |
|
51 |
publish:: |
52 |
+$(LOOP_OVER_DIRS) |
53 |
|
54 |
include $(topsrcdir)/config/rules.mk |
|
|
55 |
++ security/nss/lib/freebl/unix_rand.c |
Lines 875-886
Link Here
|
875 |
safe_pclose(fp); |
875 |
safe_pclose(fp); |
876 |
} |
876 |
} |
877 |
#endif |
877 |
#endif |
|
|
878 |
#ifndef LINUX |
878 |
fp = safe_popen(netstat_ni_cmd); |
879 |
fp = safe_popen(netstat_ni_cmd); |
879 |
if (fp != NULL) { |
880 |
if (fp != NULL) { |
880 |
while ((bytes = fread(buf, 1, sizeof(buf), fp)) > 0) |
881 |
while ((bytes = fread(buf, 1, sizeof(buf), fp)) > 0) |
881 |
RNG_RandomUpdate(buf, bytes); |
882 |
RNG_RandomUpdate(buf, bytes); |
882 |
safe_pclose(fp); |
883 |
safe_pclose(fp); |
883 |
} |
884 |
} |
|
|
885 |
#endif |
884 |
|
886 |
|
885 |
} |
887 |
} |
886 |
#else |
888 |
#else |
887 |
-- security/coreconf/Linux.mk |
889 |
++ security/coreconf/Linux.mk |
Lines 69-74
Link Here
|
69 |
ifeq ($(OS_TEST),x86_64) |
69 |
ifeq ($(OS_TEST),x86_64) |
70 |
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE |
70 |
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE |
71 |
CPU_ARCH = x86_64 |
71 |
CPU_ARCH = x86_64 |
|
|
72 |
CC = gcc-3.4 |
73 |
CCC = g++-3.4 |
72 |
else |
74 |
else |
73 |
ifeq ($(OS_TEST),sparc) |
75 |
ifeq ($(OS_TEST),sparc) |
74 |
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE |
76 |
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE |
75 |
-- security/manager/boot/src/nsSecureBrowserUIImpl.cpp |
77 |
++ security/manager/boot/src/nsSecureBrowserUIImpl.cpp |
Lines 1325-1330
Link Here
|
1325 |
|
1325 |
|
1326 |
rv = internal->GetPrompter(&prompt); |
1326 |
rv = internal->GetPrompter(&prompt); |
1327 |
*result = prompt; |
1327 |
*result = prompt; |
|
|
1328 |
} else if (uuid.Equals(NS_GET_IID(nsIDOMWindow))) { |
1329 |
*result = mWindow; |
1330 |
NS_ADDREF ((nsISupports*) *result); |
1331 |
rv = NS_OK; |
1328 |
} else { |
1332 |
} else { |
1329 |
rv = NS_ERROR_NO_INTERFACE; |
1333 |
rv = NS_ERROR_NO_INTERFACE; |
1330 |
} |
1334 |
} |
1331 |
-- modules/libpr0n/build/_img_list |
1335 |
++ modules/libpr0n/build/_img_list |
Line 0
Link Here
|
0 |
-- modules/libpr0n/decoders/icon/win/nsIconChannel.h |
1 |
png gif jpeg bmp xbm icon |
|
|
2 |
++ modules/libpr0n/decoders/icon/win/nsIconChannel.h |
Lines 45-51
Link Here
|
45 |
NS_DECL_NSISTREAMLISTENER |
45 |
NS_DECL_NSISTREAMLISTENER |
46 |
|
46 |
|
47 |
nsIconChannel(); |
47 |
nsIconChannel(); |
48 |
virtual ~nsIconChannel(); |
48 |
~nsIconChannel(); |
49 |
|
49 |
|
50 |
nsresult Init(nsIURI* uri); |
50 |
nsresult Init(nsIURI* uri); |
51 |
|
51 |
|
52 |
-- modules/libpr0n/decoders/icon/Makefile.in |
52 |
++ modules/libpr0n/decoders/icon/Makefile.in |
Lines 35-40
Link Here
|
35 |
|
35 |
|
36 |
PACKAGE_FILE = imgicon.pkg |
36 |
PACKAGE_FILE = imgicon.pkg |
37 |
|
37 |
|
|
|
38 |
ifdef MOZ_ENABLE_GNOMEUI |
39 |
EXTRA_DSO_LDOPTS = $(MOZ_GNOMEUI_LIBS) |
40 |
PLATFORM = gtk |
41 |
FORCE_SHARED_LIB = 1 |
42 |
EXPORT_LIBRARY = |
43 |
endif |
44 |
|
38 |
ifeq ($(OS_ARCH),WINNT) |
45 |
ifeq ($(OS_ARCH),WINNT) |
39 |
EXTRA_DSO_LIBS = gkgfx |
46 |
EXTRA_DSO_LIBS = gkgfx |
40 |
PLATFORM = win |
47 |
PLATFORM = win |
Lines 48-53
Link Here
|
48 |
PLATFORM = mac |
55 |
PLATFORM = mac |
49 |
endif |
56 |
endif |
50 |
|
57 |
|
|
|
58 |
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) |
59 |
PLATFORM = gtk |
60 |
endif |
61 |
|
51 |
DIRS = $(PLATFORM) |
62 |
DIRS = $(PLATFORM) |
52 |
|
63 |
|
53 |
REQUIRES = xpcom \ |
64 |
REQUIRES = xpcom \ |
Lines 68-74
Link Here
|
68 |
|
79 |
|
69 |
SHARED_LIBRARY_LIBS = $(DIST)/lib/$(LIB_PREFIX)imgicon$(PLATFORM)_s.$(LIB_SUFFIX) |
80 |
SHARED_LIBRARY_LIBS = $(DIST)/lib/$(LIB_PREFIX)imgicon$(PLATFORM)_s.$(LIB_SUFFIX) |
70 |
|
81 |
|
71 |
EXTRA_DSO_LDOPTS = \ |
82 |
EXTRA_DSO_LDOPTS += \ |
72 |
$(EXTRA_DSO_LIBS) \ |
83 |
$(EXTRA_DSO_LIBS) \ |
73 |
$(MOZ_COMPONENT_LIBS) \ |
84 |
$(MOZ_COMPONENT_LIBS) \ |
74 |
$(NULL) |
85 |
$(NULL) |
75 |
-- modules/libpr0n/decoders/icon/nsIIconURI.idl |
86 |
++ modules/libpr0n/decoders/icon/nsIIconURI.idl |
Lines 21-46
Link Here
|
21 |
|
21 |
|
22 |
#include "nsIURI.idl" |
22 |
#include "nsIURI.idl" |
23 |
|
23 |
|
24 |
// |
24 |
/** |
25 |
// moz-icon URLs have the following syntax |
25 |
* nsIIconURI |
26 |
// |
26 |
* |
27 |
// moz-icon:<file-uri>?size=16&contentType=text/html |
27 |
* This interface derives from nsIURI, to provide additional information |
28 |
// OR |
28 |
* about moz-icon URIs. These URIs |
29 |
// moz-icon://dummyfile.html |
29 |
* |
30 |
// moz-icon://dummyfile.html?size=32 |
30 |
* What *is* a moz-icon URI you ask? Well, it has the following syntax: |
31 |
// |
31 |
* |
32 |
// The content type field is optional. The size field is optional. You only need to specify a file url inside the icon |
32 |
* moz-icon://[<file-uri> | <file-with-extension>]? ['?'[<parameter-value-pairs>]] |
33 |
// if the file you want the icon for actually exists. Otherwise you can omit the file:// and just place a dummy file name with the extension |
33 |
* |
34 |
// or content type you want: moz-icon://dummy.html. |
34 |
* <file-uri> is a legal file: URI spec. You only need to specify a file: URI inside the icon |
35 |
// |
35 |
* if the file you want the icon for actually exists. |
|
|
36 |
* |
37 |
* <file-with-extension> is any filename with an extension, e.g. "dummy.html". |
38 |
* If the file you want an icon for isn't known to exist, you can omit the file URI, and just |
39 |
* place a dummy file name with the extension or content type you want: moz-icon://dummy.html. |
40 |
* |
41 |
* <stock-image> is of the format: stock/<icon-name> |
42 |
* |
43 |
* <icon-name> is a valid icon name, such as 'ok', 'cancel', 'yes', 'no'. |
44 |
* XXXcaa document or reference to all 76 (yes, 76) of them. |
45 |
* |
46 |
* Legal parameter value pairs are listed below: |
47 |
* |
48 |
* Parameter: size |
49 |
* Values: [<integer> | button | toolbar | toolbarsmall | menu | dialog] |
50 |
* Description: If integer, this is the desired size in square pixels of the icon |
51 |
* Else, use the OS default for the specified keyword context. |
52 |
* Note that stock images require a keyword, not an integer pixel value. |
53 |
* |
54 |
* Parameter: contentType |
55 |
* Values: <mime-type> |
56 |
* Description: A valid mime type for the icon. |
57 |
*/ |
36 |
|
58 |
|
37 |
[scriptable, uuid(733A7A16-2D36-11d5-9907-001083010E9B)] |
59 |
[scriptable, uuid(733A7A16-2D36-11d5-9907-001083010E9B)] |
38 |
interface nsIMozIconURI : nsIURI |
60 |
interface nsIMozIconURI : nsIURI |
39 |
{ |
61 |
{ |
40 |
// Returns the file URL contained within this -moz-icon url. |
62 |
/** |
41 |
attribute nsIURI IconFile; // maybe null if there isn't a real file we are trying to fetch |
63 |
* iconFile |
|
|
64 |
* |
65 |
* the file URL contained within this moz-icon url, or null. |
66 |
*/ |
67 |
attribute nsIURI iconFile; |
68 |
/** |
69 |
* imageSize |
70 |
* |
71 |
* The image area in square pixels, defaulting to 16 if unspecified. |
72 |
*/ |
73 |
attribute unsigned long imageSize; |
42 |
|
74 |
|
43 |
attribute unsigned long imageSize; // measured by # of pixels in a row. defaults to 16. |
75 |
/** |
44 |
attribute ACString contentType; // may be an empty string |
76 |
* contentType |
|
|
77 |
* |
78 |
* A valid mime type, or the empty string. |
79 |
*/ |
80 |
|
81 |
attribute ACString contentType; |
82 |
|
83 |
/** |
84 |
* fileExtension |
85 |
* |
86 |
* The file extension of the file which we are looking up. |
87 |
*/ |
45 |
readonly attribute ACString fileExtension; |
88 |
readonly attribute ACString fileExtension; |
|
|
89 |
|
90 |
/** |
91 |
* stockIcon |
92 |
* |
93 |
* The stock icon name requested from the OS. |
94 |
*/ |
95 |
readonly attribute ACString stockIcon; |
96 |
|
97 |
/** |
98 |
* stockIconSize |
99 |
* |
100 |
* The stock icon size requested from the OS. |
101 |
*/ |
102 |
readonly attribute ACString stockIconSize; |
103 |
|
104 |
/** |
105 |
* stockIconState |
106 |
* |
107 |
* The stock icon state requested from the OS. |
108 |
*/ |
109 |
readonly attribute ACString stockIconState; |
46 |
}; |
110 |
}; |
47 |
-- modules/libpr0n/decoders/icon/nsIconModule.cpp |
111 |
++ modules/libpr0n/decoders/icon/nsIconModule.cpp |
Lines 26-31
Link Here
|
26 |
|
26 |
|
27 |
#include "nsIconDecoder.h" |
27 |
#include "nsIconDecoder.h" |
28 |
#include "nsIconProtocolHandler.h" |
28 |
#include "nsIconProtocolHandler.h" |
|
|
29 |
#include "nsIconURI.h" |
29 |
|
30 |
|
30 |
// objects that just require generic constructors |
31 |
// objects that just require generic constructors |
31 |
/****************************************************************************** |
32 |
/****************************************************************************** |
Lines 41-47
Link Here
|
41 |
{ "icon decoder", |
42 |
{ "icon decoder", |
42 |
NS_ICONDECODER_CID, |
43 |
NS_ICONDECODER_CID, |
43 |
"@mozilla.org/image/decoder;2?type=image/icon", |
44 |
"@mozilla.org/image/decoder;2?type=image/icon", |
44 |
nsIconDecoderConstructor, }, |
45 |
nsIconDecoderConstructor |
|
|
46 |
}, |
45 |
|
47 |
|
46 |
{ "Icon Protocol Handler", |
48 |
{ "Icon Protocol Handler", |
47 |
NS_ICONPROTOCOL_CID, |
49 |
NS_ICONPROTOCOL_CID, |
Lines 50-53
Link Here
|
50 |
} |
52 |
} |
51 |
}; |
53 |
}; |
52 |
|
54 |
|
53 |
NS_IMPL_NSGETMODULE(nsIconDecoderModule, components) |
55 |
PR_STATIC_CALLBACK(nsresult) |
|
|
56 |
IconDecoderModuleCtor(nsIModule* aSelf) |
57 |
{ |
58 |
nsMozIconURI::InitAtoms(); |
59 |
return NS_OK; |
60 |
} |
61 |
|
62 |
NS_IMPL_NSGETMODULE_WITH_CTOR(nsIconDecoderModule, components, |
63 |
IconDecoderModuleCtor) |
54 |
-- modules/libpr0n/decoders/icon/nsIconProtocolHandler.cpp |
64 |
++ modules/libpr0n/decoders/icon/nsIconProtocolHandler.cpp |
Lines 89-103
Link Here
|
89 |
|
89 |
|
90 |
NS_IMETHODIMP nsIconProtocolHandler::NewChannel(nsIURI* url, nsIChannel* *result) |
90 |
NS_IMETHODIMP nsIconProtocolHandler::NewChannel(nsIURI* url, nsIChannel* *result) |
91 |
{ |
91 |
{ |
92 |
nsCOMPtr<nsIChannel> channel; |
92 |
nsIconChannel* channel = new nsIconChannel; |
93 |
NS_NEWXPCOM(channel, nsIconChannel); |
93 |
if (!channel) |
|
|
94 |
return NS_ERROR_OUT_OF_MEMORY; |
95 |
NS_ADDREF(channel); |
94 |
|
96 |
|
95 |
if (channel) |
97 |
nsresult rv = channel->Init(url); |
96 |
NS_STATIC_CAST(nsIconChannel*,NS_STATIC_CAST(nsIChannel*, channel))->Init(url); |
98 |
if (NS_FAILED(rv)) { |
|
|
99 |
delete channel; |
100 |
return rv; |
101 |
} |
97 |
|
102 |
|
98 |
*result = channel; |
103 |
*result = channel; |
99 |
NS_IF_ADDREF(*result); |
|
|
100 |
|
101 |
return NS_OK; |
104 |
return NS_OK; |
102 |
} |
105 |
} |
103 |
|
106 |
|
104 |
-- modules/libpr0n/decoders/icon/nsIconURI.cpp |
107 |
++ modules/libpr0n/decoders/icon/nsIconURI.cpp |
Lines 26-31
Link Here
|
26 |
#include "nsCRT.h" |
26 |
#include "nsCRT.h" |
27 |
#include "nsReadableUtils.h" |
27 |
#include "nsReadableUtils.h" |
28 |
#include "nsPrintfCString.h" |
28 |
#include "nsPrintfCString.h" |
|
|
29 |
#include "nsIAtom.h" |
30 |
#include "nsStaticAtom.h" |
29 |
|
31 |
|
30 |
static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID); |
32 |
static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID); |
31 |
#define DEFAULT_IMAGE_SIZE 16 |
33 |
#define DEFAULT_IMAGE_SIZE 16 |
Lines 34-50
Link Here
|
34 |
// from the icon url. |
36 |
// from the icon url. |
35 |
static void extractAttributeValue(const char * searchString, const char * attributeName, char ** result); |
37 |
static void extractAttributeValue(const char * searchString, const char * attributeName, char ** result); |
36 |
|
38 |
|
|
|
39 |
static nsIAtom *sStockSizeButton = nsnull; |
40 |
static nsIAtom *sStockSizeToolbar = nsnull; |
41 |
static nsIAtom *sStockSizeToolbarsmall = nsnull; |
42 |
static nsIAtom *sStockSizeMenu = nsnull; |
43 |
static nsIAtom *sStockSizeDialog = nsnull; |
44 |
static nsIAtom *sStockStateNormal = nsnull; |
45 |
static nsIAtom *sStockStateDisabled = nsnull; |
46 |
|
47 |
/* static */ const nsStaticAtom nsMozIconURI::sSizeAtoms[] = |
48 |
{ |
49 |
{ "button", &sStockSizeButton }, |
50 |
{ "toolbar", &sStockSizeToolbar }, |
51 |
{ "toolbarsmall", &sStockSizeToolbarsmall }, |
52 |
{ "menu", &sStockSizeMenu }, |
53 |
{ "dialog", &sStockSizeDialog } |
54 |
}; |
55 |
|
56 |
/* static */ const nsStaticAtom nsMozIconURI::sStateAtoms[] = |
57 |
{ |
58 |
{ "normal", &sStockStateNormal }, |
59 |
{ "disabled", &sStockStateDisabled } |
60 |
}; |
61 |
|
37 |
//////////////////////////////////////////////////////////////////////////////// |
62 |
//////////////////////////////////////////////////////////////////////////////// |
38 |
|
63 |
|
39 |
nsMozIconURI::nsMozIconURI() |
64 |
nsMozIconURI::nsMozIconURI() |
|
|
65 |
: mSize(DEFAULT_IMAGE_SIZE) |
40 |
{ |
66 |
{ |
41 |
mSize = DEFAULT_IMAGE_SIZE; |
|
|
42 |
} |
67 |
} |
43 |
|
68 |
|
44 |
nsMozIconURI::~nsMozIconURI() |
69 |
nsMozIconURI::~nsMozIconURI() |
45 |
{ |
70 |
{ |
46 |
} |
71 |
} |
47 |
|
72 |
|
|
|
73 |
|
74 |
/* static */ void |
75 |
nsMozIconURI::InitAtoms() |
76 |
{ |
77 |
NS_RegisterStaticAtoms(sSizeAtoms, NS_ARRAY_LENGTH(sSizeAtoms)); |
78 |
NS_RegisterStaticAtoms(sStateAtoms, NS_ARRAY_LENGTH(sStateAtoms)); |
79 |
} |
80 |
|
48 |
NS_IMPL_THREADSAFE_ISUPPORTS2(nsMozIconURI, nsIMozIconURI, nsIURI) |
81 |
NS_IMPL_THREADSAFE_ISUPPORTS2(nsMozIconURI, nsIMozIconURI, nsIURI) |
49 |
|
82 |
|
50 |
#define NS_MOZICON_SCHEME "moz-icon:" |
83 |
#define NS_MOZICON_SCHEME "moz-icon:" |
Lines 64-69
Link Here
|
64 |
NS_ENSURE_SUCCESS(rv, rv); |
97 |
NS_ENSURE_SUCCESS(rv, rv); |
65 |
spec += fileIconSpec; |
98 |
spec += fileIconSpec; |
66 |
} |
99 |
} |
|
|
100 |
else if (!mStockIcon.IsEmpty()) |
101 |
{ |
102 |
spec += "//stock/"; |
103 |
spec += mStockIcon; |
104 |
if (mStockIconSize) { |
105 |
spec += NS_MOZ_ICON_DELIMITER; |
106 |
spec += "size="; |
107 |
const char *size_string; |
108 |
mStockIconSize->GetUTF8String(&size_string); |
109 |
spec.Append(nsPrintfCString("%s", size_string)); |
110 |
} |
111 |
if (mStockIconState) { |
112 |
spec += NS_MOZ_ICON_DELIMITER; |
113 |
spec += "state="; |
114 |
const char *state_string; |
115 |
mStockIconSize->GetUTF8String(&state_string); |
116 |
spec.Append(nsPrintfCString("%s", state_string)); |
117 |
} |
118 |
return NS_OK; |
119 |
} |
67 |
else |
120 |
else |
68 |
{ |
121 |
{ |
69 |
spec += "//"; |
122 |
spec += "//"; |
Lines 116-127
Link Here
|
116 |
else // there is nothing left so eat up rest of line. |
169 |
else // there is nothing left so eat up rest of line. |
117 |
attributeValue = PL_strdup(startOfAttribute); |
170 |
attributeValue = PL_strdup(startOfAttribute); |
118 |
} // if we have a attribute value |
171 |
} // if we have a attribute value |
119 |
|
|
|
120 |
} // if we have a attribute name |
172 |
} // if we have a attribute name |
121 |
} // if we got non-null search string and attribute name values |
173 |
} // if we got non-null search string and attribute name values |
122 |
|
174 |
|
123 |
*result = attributeValue; // passing ownership of attributeValue into result...no need to |
175 |
*result = attributeValue; // passing ownership of attributeValue into result...no need to |
124 |
return; |
|
|
125 |
} |
176 |
} |
126 |
|
177 |
|
127 |
NS_IMETHODIMP |
178 |
NS_IMETHODIMP |
Lines 138-143
Link Here
|
138 |
if (strcmp("moz-icon", scheme.get()) != 0) |
189 |
if (strcmp("moz-icon", scheme.get()) != 0) |
139 |
return NS_ERROR_MALFORMED_URI; |
190 |
return NS_ERROR_MALFORMED_URI; |
140 |
|
191 |
|
|
|
192 |
nsXPIDLCString sizeString; |
193 |
nsXPIDLCString stateString; |
141 |
nsCAutoString mozIconPath(aSpec); |
194 |
nsCAutoString mozIconPath(aSpec); |
142 |
PRInt32 endPos = mozIconPath.FindChar(':') + 1; // guaranteed to exist! |
195 |
PRInt32 endPos = mozIconPath.FindChar(':') + 1; // guaranteed to exist! |
143 |
PRInt32 pos = mozIconPath.FindChar(NS_MOZ_ICON_DELIMITER); |
196 |
PRInt32 pos = mozIconPath.FindChar(NS_MOZ_ICON_DELIMITER); |
Lines 150-175
Link Here
|
150 |
{ |
203 |
{ |
151 |
mozIconPath.Mid(mDummyFilePath, endPos, pos - endPos); |
204 |
mozIconPath.Mid(mDummyFilePath, endPos, pos - endPos); |
152 |
// fill in any size and content type values... |
205 |
// fill in any size and content type values... |
153 |
nsXPIDLCString sizeString; |
|
|
154 |
nsXPIDLCString contentTypeString; |
206 |
nsXPIDLCString contentTypeString; |
155 |
extractAttributeValue(mozIconPath.get() + pos, "size=", getter_Copies(sizeString)); |
207 |
extractAttributeValue(mozIconPath.get() + pos, "size=", getter_Copies(sizeString)); |
|
|
208 |
extractAttributeValue(mozIconPath.get() + pos, "state=", getter_Copies(stateString)); |
156 |
extractAttributeValue(mozIconPath.get() + pos, "contentType=", getter_Copies(contentTypeString)); |
209 |
extractAttributeValue(mozIconPath.get() + pos, "contentType=", getter_Copies(contentTypeString)); |
157 |
mContentType = contentTypeString; |
210 |
mContentType = contentTypeString; |
158 |
|
|
|
159 |
if (sizeString.get()) |
160 |
{ |
161 |
PRInt32 sizeValue = atoi(sizeString); |
162 |
// if the size value we got back is > 0 then use it |
163 |
if (sizeValue) |
164 |
mSize = sizeValue; |
165 |
} |
166 |
} |
211 |
} |
167 |
|
212 |
|
168 |
// Okay now we have a bit of a hack here...filePath can have two forms: |
213 |
// Okay now we have a bit of a hack here...filePath can have three forms: |
169 |
// (1) file://<some valid platform specific file url> |
214 |
// (1) file://<some valid platform specific file url> |
170 |
// (2) //<some dummy file with an extension> |
215 |
// (2) //<some dummy file with an extension> |
|
|
216 |
// (3) stock/<icon-identifier> |
171 |
// We need to determine which case we are and behave accordingly... |
217 |
// We need to determine which case we are and behave accordingly... |
172 |
if (mDummyFilePath.Length() > 2) // we should at least have two forward slashes followed by a file or a file:// |
218 |
if (mDummyFilePath.Length() > 2) |
|
|
219 |
{ |
220 |
if (!strncmp("//stock/", mDummyFilePath.get(), 8)) |
221 |
{ |
222 |
// we have a stock icon |
223 |
mStockIcon = Substring(mDummyFilePath, 8); |
224 |
if (!sizeString.IsEmpty()) |
225 |
{ |
226 |
nsCOMPtr<nsIAtom> atom = do_GetAtom(sizeString); |
227 |
for (PRUint32 i = 0; i < NS_ARRAY_LENGTH(sSizeAtoms); i++) |
228 |
{ |
229 |
if (atom == *(sSizeAtoms[i].mAtom)) |
230 |
{ |
231 |
mStockIconSize = atom; |
232 |
break; |
233 |
} |
234 |
} |
235 |
|
236 |
atom = do_GetAtom(stateString); |
237 |
for (PRUint32 i = 0; i < NS_ARRAY_LENGTH(sStateAtoms); i++) |
238 |
{ |
239 |
if (atom == *(sStateAtoms[i].mAtom)) |
240 |
{ |
241 |
mStockIconState = atom; |
242 |
break; |
243 |
} |
244 |
} |
245 |
} |
246 |
} |
247 |
else |
173 |
{ |
248 |
{ |
174 |
if (!nsCRT::strncmp("//", mDummyFilePath.get(), 2))// must not have a url here.. |
249 |
if (!nsCRT::strncmp("//", mDummyFilePath.get(), 2))// must not have a url here.. |
175 |
{ |
250 |
{ |
Lines 177-192
Link Here
|
177 |
// and remember the rest in mDummyFilePath |
252 |
// and remember the rest in mDummyFilePath |
178 |
mDummyFilePath.Cut(0, 2); // cut the first 2 bytes.... |
253 |
mDummyFilePath.Cut(0, 2); // cut the first 2 bytes.... |
179 |
} |
254 |
} |
180 |
|
255 |
else if (!nsCRT::strncmp("file://", mDummyFilePath.get(), 7)) |
181 |
if (!nsCRT::strncmp("file://", mDummyFilePath.get(), 7)) |
|
|
182 |
{ |
256 |
{ |
183 |
// we have a file url.....so store it... |
257 |
// we have a file url.....so store it... |
184 |
rv = ioService->NewURI(mDummyFilePath, nsnull, nsnull, getter_AddRefs(mFileIcon)); |
258 |
rv = ioService->NewURI(mDummyFilePath, nsnull, nsnull, getter_AddRefs(mFileIcon)); |
185 |
if (NS_FAILED(rv)) return NS_ERROR_MALFORMED_URI; |
259 |
} |
|
|
260 |
if (!sizeString.IsEmpty()) |
261 |
{ |
262 |
PRInt32 sizeValue = atoi(sizeString); |
263 |
// if the size value we got back is > 0 then use it |
264 |
if (sizeValue) |
265 |
mSize = sizeValue; |
266 |
} |
186 |
} |
267 |
} |
187 |
} |
268 |
} |
188 |
else |
269 |
else |
189 |
return NS_ERROR_MALFORMED_URI; // they didn't include a file path... |
270 |
rv = NS_ERROR_MALFORMED_URI; // they didn't include a file path... |
190 |
return rv; |
271 |
return rv; |
191 |
} |
272 |
} |
192 |
|
273 |
|
Lines 436-445
Link Here
|
436 |
const char * chFileName = fileExtension.get(); // get the underlying buffer |
517 |
const char * chFileName = fileExtension.get(); // get the underlying buffer |
437 |
const char * fileExt = strrchr(chFileName, '.'); |
518 |
const char * fileExt = strrchr(chFileName, '.'); |
438 |
if (!fileExt) return NS_ERROR_FAILURE; // no file extension to work from. |
519 |
if (!fileExt) return NS_ERROR_FAILURE; // no file extension to work from. |
439 |
else |
520 |
|
440 |
aFileExtension = nsDependentCString(fileExt); |
521 |
aFileExtension = nsDependentCString(fileExt); |
441 |
|
522 |
|
442 |
return NS_OK; |
523 |
return NS_OK; |
443 |
} |
524 |
} |
444 |
|
525 |
|
|
|
526 |
NS_IMETHODIMP |
527 |
nsMozIconURI::GetStockIcon(nsACString &aStockIcon) |
528 |
{ |
529 |
aStockIcon.Assign(mStockIcon); |
530 |
|
531 |
return NS_OK; |
532 |
} |
533 |
|
534 |
NS_IMETHODIMP |
535 |
nsMozIconURI::GetStockIconSize(nsACString &aSize) |
536 |
{ |
537 |
if (mStockIconSize) |
538 |
return mStockIconSize->ToUTF8String(aSize); |
539 |
aSize.Truncate(); |
540 |
return NS_OK; |
541 |
} |
542 |
|
543 |
NS_IMETHODIMP |
544 |
nsMozIconURI::GetStockIconState(nsACString &aState) |
545 |
{ |
546 |
if (mStockIconState) |
547 |
return mStockIconState->ToUTF8String(aState); |
548 |
aState.Truncate(); |
549 |
return NS_OK; |
550 |
} |
445 |
//////////////////////////////////////////////////////////////////////////////// |
551 |
//////////////////////////////////////////////////////////////////////////////// |
446 |
-- modules/libpr0n/decoders/icon/nsIconURI.h |
552 |
++ modules/libpr0n/decoders/icon/nsIconURI.h |
Lines 25-30
Link Here
|
25 |
#include "nsIIconURI.h" |
25 |
#include "nsIIconURI.h" |
26 |
#include "nsCOMPtr.h" |
26 |
#include "nsCOMPtr.h" |
27 |
#include "nsString.h" |
27 |
#include "nsString.h" |
|
|
28 |
class nsStaticAtom; |
29 |
|
30 |
class nsIAtom; |
28 |
|
31 |
|
29 |
#define NS_MOZICONURI_CID \ |
32 |
#define NS_MOZICONURI_CID \ |
30 |
{ \ |
33 |
{ \ |
Lines 41-46
Link Here
|
41 |
NS_DECL_NSIURI |
44 |
NS_DECL_NSIURI |
42 |
NS_DECL_NSIMOZICONURI |
45 |
NS_DECL_NSIMOZICONURI |
43 |
|
46 |
|
|
|
47 |
static void InitAtoms(); |
48 |
|
44 |
// nsJARURI |
49 |
// nsJARURI |
45 |
nsMozIconURI(); |
50 |
nsMozIconURI(); |
46 |
virtual ~nsMozIconURI(); |
51 |
virtual ~nsMozIconURI(); |
Lines 50-55
Link Here
|
50 |
PRUint32 mSize; // the # of pixels in a row that we want for this image. Typically 16, 32, 128, etc. |
55 |
PRUint32 mSize; // the # of pixels in a row that we want for this image. Typically 16, 32, 128, etc. |
51 |
nsCString mContentType; // optional field explicitly specifying the content type |
56 |
nsCString mContentType; // optional field explicitly specifying the content type |
52 |
nsCString mDummyFilePath; // if we don't have a valid file url, the file path is stored here....i.e if mFileIcon is null..... |
57 |
nsCString mDummyFilePath; // if we don't have a valid file url, the file path is stored here....i.e if mFileIcon is null..... |
|
|
58 |
nsCString mStockIcon; |
59 |
nsCOMPtr<nsIAtom> mStockIconSize; |
60 |
nsCOMPtr<nsIAtom> mStockIconState; |
61 |
|
62 |
static const nsStaticAtom sSizeAtoms[]; |
63 |
static const nsStaticAtom sStateAtoms[]; |
53 |
|
64 |
|
54 |
nsresult FormatSpec(nsACString &result); |
65 |
nsresult FormatSpec(nsACString &result); |
55 |
}; |
66 |
}; |
56 |
-- modules/libpr0n/decoders/icon/gtk/Makefile.in |
67 |
++ modules/libpr0n/decoders/icon/gtk/Makefile.in |
Line 0
Link Here
|
0 |
-- modules/libpr0n/decoders/icon/gtk/nsIconChannel.h |
1 |
# ***** BEGIN LICENSE BLOCK ***** |
|
|
2 |
# Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
3 |
# |
4 |
# The contents of this file are subject to the Mozilla Public License Version |
5 |
# 1.1 (the "License"); you may not use this file except in compliance with |
6 |
# the License. You may obtain a copy of the License at |
7 |
# http://www.mozilla.org/MPL/ |
8 |
# |
9 |
# Software distributed under the License is distributed on an "AS IS" basis, |
10 |
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
11 |
# for the specific language governing rights and limitations under the |
12 |
# License. |
13 |
# |
14 |
# The Original Code is the Makefile for the Gnome icon decoder. |
15 |
# |
16 |
# The Initial Developer of the Original Code is |
17 |
# Christian Biesinger <cbiesinger@web.de>. |
18 |
# Portions created by the Initial Developer are Copyright (C) 2004 |
19 |
# the Initial Developer. All Rights Reserved. |
20 |
# |
21 |
# Contributor(s): |
22 |
# |
23 |
# Alternatively, the contents of this file may be used under the terms of |
24 |
# either the GNU General Public License Version 2 or later (the "GPL"), or |
25 |
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
26 |
# in which case the provisions of the GPL or the LGPL are applicable instead |
27 |
# of those above. If you wish to allow use of your version of this file only |
28 |
# under the terms of either the GPL or the LGPL, and not to allow others to |
29 |
# use your version of this file under the terms of the MPL, indicate your |
30 |
# decision by deleting the provisions above and replace them with the notice |
31 |
# and other provisions required by the GPL or the LGPL. If you do not delete |
32 |
# the provisions above, a recipient may use your version of this file under |
33 |
# the terms of any one of the MPL, the GPL or the LGPL. |
34 |
# |
35 |
# ***** END LICENSE BLOCK ***** |
36 |
|
37 |
|
38 |
DEPTH = ../../../../.. |
39 |
topsrcdir = @top_srcdir@ |
40 |
srcdir = @srcdir@ |
41 |
VPATH = @srcdir@ |
42 |
|
43 |
include $(DEPTH)/config/autoconf.mk |
44 |
|
45 |
MODULE = imgicon |
46 |
LIBRARY_NAME = imgicongtk_s |
47 |
|
48 |
REQUIRES = xpcom \ |
49 |
string \ |
50 |
necko \ |
51 |
intl \ |
52 |
mimetype \ |
53 |
$(NULL) |
54 |
|
55 |
CPPSRCS = nsIconChannel.cpp |
56 |
|
57 |
LOCAL_INCLUDES += $(MOZ_GNOMEUI_CFLAGS) $(MOZ_GTK2_CFLAGS) |
58 |
|
59 |
# we don't want the shared lib, but we want to force the creation of a static lib. |
60 |
FORCE_STATIC_LIB = 1 |
61 |
|
62 |
include $(topsrcdir)/config/rules.mk |
63 |
|
|
|
64 |
++ modules/libpr0n/decoders/icon/gtk/nsIconChannel.h |
Line 0
Link Here
|
0 |
-- modules/libpr0n/decoders/icon/gtk/nsIconChannel.cpp |
1 |
/* ***** BEGIN LICENSE BLOCK ***** |
|
|
2 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
3 |
* |
4 |
* The contents of this file are subject to the Mozilla Public License Version |
5 |
* 1.1 (the "License"); you may not use this file except in compliance with |
6 |
* the License. You may obtain a copy of the License at |
7 |
* http://www.mozilla.org/MPL/ |
8 |
* |
9 |
* Software distributed under the License is distributed on an "AS IS" basis, |
10 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
11 |
* for the specific language governing rights and limitations under the |
12 |
* License. |
13 |
* |
14 |
* The Original Code is the Mozilla icon channel for gnome. |
15 |
* |
16 |
* The Initial Developer of the Original Code is |
17 |
* Christian Biesinger <cbiesinger@web.de>. |
18 |
* Portions created by the Initial Developer are Copyright (C) 2004 |
19 |
* the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* |
23 |
* Alternatively, the contents of this file may be used under the terms of |
24 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
25 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
26 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
27 |
* of those above. If you wish to allow use of your version of this file only |
28 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
29 |
* use your version of this file under the terms of the MPL, indicate your |
30 |
* decision by deleting the provisions above and replace them with the notice |
31 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
32 |
* the provisions above, a recipient may use your version of this file under |
33 |
* the terms of any one of the MPL, the GPL or the LGPL. |
34 |
* |
35 |
* ***** END LICENSE BLOCK ***** */ |
36 |
|
37 |
#ifndef nsIconChannel_h_ |
38 |
#define nsIconChannel_h_ |
39 |
|
40 |
#include "nsIChannel.h" |
41 |
#include "nsIStreamListener.h" |
42 |
#include "nsIURI.h" |
43 |
#include "nsIIconURI.h" |
44 |
#include "nsCOMPtr.h" |
45 |
|
46 |
/** |
47 |
* This class is the gnome implementation of nsIconChannel. It basically asks |
48 |
* gtk/gnome for an icon, saves it as a tmp icon, and creates a new channel for |
49 |
* that file to which all calls will be proxied. |
50 |
*/ |
51 |
class nsIconChannel : public nsIChannel |
52 |
{ |
53 |
public: |
54 |
NS_DECL_ISUPPORTS |
55 |
NS_FORWARD_NSIREQUEST(mRealChannel->) |
56 |
NS_FORWARD_NSICHANNEL(mRealChannel->) |
57 |
|
58 |
nsIconChannel() {} |
59 |
~nsIconChannel() {} |
60 |
|
61 |
/** |
62 |
* Called by nsIconProtocolHandler after it creates this channel. |
63 |
* Must be called before calling any other function on this object. |
64 |
* If this method fails, no other function must be called on this object. |
65 |
*/ |
66 |
NS_HIDDEN_(nsresult) Init(nsIURI* aURI); |
67 |
private: |
68 |
/** |
69 |
* The channel to the temp icon file (e.g. to /tmp/2qy9wjqw.html). |
70 |
* Will always be non-null after a successful Init. |
71 |
*/ |
72 |
nsCOMPtr<nsIChannel> mRealChannel; |
73 |
/** |
74 |
* The moz-icon URI we're loading. Always non-null after a successful Init. |
75 |
*/ |
76 |
nsCOMPtr<nsIMozIconURI> mURI; |
77 |
|
78 |
/** |
79 |
* Called by Init if we need to use the gnomeui library. |
80 |
*/ |
81 |
nsresult InitWithGnome(); |
82 |
}; |
83 |
|
84 |
#endif |
|
|
85 |
++ modules/libpr0n/decoders/icon/gtk/nsIconChannel.cpp |
Line 0
Link Here
|
0 |
-- modules/libpr0n/decoders/Makefile.in |
1 |
/* vim:set ts=2 sw=2 sts=2 cin et: */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is the Mozilla icon channel for gnome. |
16 |
* |
17 |
* The Initial Developer of the Original Code is |
18 |
* Christian Biesinger <cbiesinger@web.de>. |
19 |
* Portions created by the Initial Developer are Copyright (C) 2004 |
20 |
* the Initial Developer. All Rights Reserved. |
21 |
* |
22 |
* Contributor(s): |
23 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
27 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
28 |
* of those above. If you wish to allow use of your version of this file only |
29 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
30 |
* use your version of this file under the terms of the MPL, indicate your |
31 |
* decision by deleting the provisions above and replace them with the notice |
32 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
33 |
* the provisions above, a recipient may use your version of this file under |
34 |
* the terms of any one of the MPL, the GPL or the LGPL. |
35 |
* |
36 |
* ***** END LICENSE BLOCK ***** */ |
37 |
|
38 |
#include <stdlib.h> |
39 |
#include <unistd.h> |
40 |
// Older versions of these headers seem to be missing an extern "C" |
41 |
extern "C" { |
42 |
#include <libgnome/libgnome.h> |
43 |
#include <libgnomeui/gnome-icon-theme.h> |
44 |
#include <libgnomeui/gnome-icon-lookup.h> |
45 |
#include <libgnomeui/gnome-ui-init.h> |
46 |
|
47 |
#include <libgnomevfs/gnome-vfs-file-info.h> |
48 |
#include <libgnomevfs/gnome-vfs-ops.h> |
49 |
} |
50 |
|
51 |
#include <gtk/gtk.h> |
52 |
#include <gdk/gdk.h> |
53 |
|
54 |
#include "nsIMIMEService.h" |
55 |
|
56 |
#include "nsIStringBundle.h" |
57 |
|
58 |
#include "nsEscape.h" |
59 |
#include "nsNetUtil.h" |
60 |
#include "nsIURL.h" |
61 |
#include "prlink.h" |
62 |
#include "nsIconChannel.h" |
63 |
|
64 |
NS_IMPL_ISUPPORTS2(nsIconChannel, nsIRequest, nsIChannel) |
65 |
|
66 |
/** |
67 |
* Given a path to a PNG Image, creates a channel from it. |
68 |
* Note that the channel will delete the file when it's done with it. |
69 |
* |
70 |
* (When this function fails, the file will NOT be deleted) |
71 |
*/ |
72 |
static nsresult pngfile_to_channel(const char* aFilename, nsIChannel** aChannel) { |
73 |
// Now we have to create an uri for the file... |
74 |
nsCOMPtr<nsILocalFile> lf; |
75 |
nsresult rv = NS_NewNativeLocalFile(nsDependentCString(aFilename), PR_FALSE, |
76 |
getter_AddRefs(lf)); |
77 |
if (NS_FAILED(rv)) |
78 |
return rv; |
79 |
|
80 |
nsCOMPtr<nsIInputStream> is; |
81 |
rv = NS_NewLocalFileInputStream(getter_AddRefs(is), lf, -1, -1, |
82 |
nsIFileInputStream::DELETE_ON_CLOSE); |
83 |
if (NS_FAILED(rv)) |
84 |
return rv; |
85 |
|
86 |
nsCOMPtr<nsIURI> realURI; |
87 |
rv = NS_NewFileURI(getter_AddRefs(realURI), lf); |
88 |
if (NS_FAILED(rv)) |
89 |
return rv; |
90 |
|
91 |
rv = NS_NewInputStreamChannel(aChannel, realURI, is, |
92 |
NS_LITERAL_CSTRING("image/png")); |
93 |
return rv; |
94 |
} |
95 |
|
96 |
static nsresult |
97 |
moz_gdk_pixbuf_to_channel(GdkPixbuf* aPixbuf, nsIChannel **aChannel) |
98 |
{ |
99 |
char tmpfile[] = "/tmp/moziconXXXXXX"; |
100 |
int fd = mkstemp(tmpfile); |
101 |
if (fd == -1) { |
102 |
return NS_ERROR_UNEXPECTED; |
103 |
} |
104 |
|
105 |
GError *err = NULL; |
106 |
gboolean ok = gdk_pixbuf_save(aPixbuf, tmpfile, "png", &err, NULL); |
107 |
if (!ok) { |
108 |
close(fd); |
109 |
remove(tmpfile); |
110 |
if (err) |
111 |
g_error_free(err); |
112 |
return NS_ERROR_UNEXPECTED; |
113 |
} |
114 |
|
115 |
nsresult rv = pngfile_to_channel(tmpfile, aChannel); |
116 |
close(fd); |
117 |
if (NS_FAILED(rv)) |
118 |
remove(tmpfile); |
119 |
return rv; |
120 |
} |
121 |
|
122 |
static GtkWidget *gProtoWindow = nsnull; |
123 |
static GtkWidget *gStockImageWidget = nsnull; |
124 |
static GtkIconFactory *gIconFactory = nsnull; |
125 |
|
126 |
static void |
127 |
ensure_stock_image_widget() |
128 |
{ |
129 |
if (!gProtoWindow) { |
130 |
gProtoWindow = gtk_window_new(GTK_WINDOW_POPUP); |
131 |
gtk_widget_realize(gProtoWindow); |
132 |
GtkWidget* protoLayout = gtk_fixed_new(); |
133 |
gtk_container_add(GTK_CONTAINER(gProtoWindow), protoLayout); |
134 |
|
135 |
gStockImageWidget = gtk_image_new(); |
136 |
gtk_container_add(GTK_CONTAINER(protoLayout), gStockImageWidget); |
137 |
gtk_widget_realize(gStockImageWidget); |
138 |
} |
139 |
} |
140 |
|
141 |
static void |
142 |
ensure_icon_factory() |
143 |
{ |
144 |
if (!gIconFactory) { |
145 |
gIconFactory = gtk_icon_factory_new(); |
146 |
gtk_icon_factory_add_default (gIconFactory); |
147 |
g_object_unref(gIconFactory); |
148 |
} |
149 |
} |
150 |
|
151 |
static GtkIconSize |
152 |
moz_gtk_icon_size(const char *name) |
153 |
{ |
154 |
if (strcmp(name, "button") == 0) |
155 |
return GTK_ICON_SIZE_BUTTON; |
156 |
|
157 |
if (strcmp(name, "menu") == 0) |
158 |
return GTK_ICON_SIZE_MENU; |
159 |
|
160 |
if (strcmp(name, "toolbar") == 0) |
161 |
return GTK_ICON_SIZE_LARGE_TOOLBAR; |
162 |
|
163 |
if (strcmp(name, "toolbarsmall") == 0) |
164 |
return GTK_ICON_SIZE_SMALL_TOOLBAR; |
165 |
|
166 |
if (strcmp(name, "dialog") == 0) |
167 |
return GTK_ICON_SIZE_DIALOG; |
168 |
|
169 |
return GTK_ICON_SIZE_INVALID; |
170 |
} |
171 |
|
172 |
nsresult |
173 |
nsIconChannel::InitWithGnome() |
174 |
{ |
175 |
if (!gnome_program_get()) { |
176 |
// Get the brandShortName from the string bundle to pass to GNOME |
177 |
// as the application name. This may be used for things such as |
178 |
// the title of grouped windows in the panel. |
179 |
nsCOMPtr<nsIStringBundleService> bundleService = |
180 |
do_GetService(NS_STRINGBUNDLE_CONTRACTID); |
181 |
|
182 |
NS_ASSERTION(bundleService, "String bundle service must be present!"); |
183 |
|
184 |
nsCOMPtr<nsIStringBundle> bundle; |
185 |
bundleService->CreateBundle("chrome://global/locale/brand.properties", |
186 |
getter_AddRefs(bundle)); |
187 |
nsXPIDLString appName; |
188 |
|
189 |
if (bundle) { |
190 |
bundle->GetStringFromName(NS_LITERAL_STRING("brandShortName").get(), |
191 |
getter_Copies(appName)); |
192 |
} else { |
193 |
NS_WARNING("brand.properties not present, using default application name"); |
194 |
appName.Assign(NS_LITERAL_STRING("Gecko")); |
195 |
} |
196 |
|
197 |
char* empty[] = { "" }; |
198 |
gnome_init(NS_ConvertUTF16toUTF8(appName).get(), "1.0", 1, empty); |
199 |
} |
200 |
|
201 |
PRUint32 iconSize; |
202 |
nsresult rv = mURI->GetImageSize(&iconSize); |
203 |
NS_ASSERTION(NS_SUCCEEDED(rv), "GetImageSize failed"); |
204 |
|
205 |
nsCAutoString type; |
206 |
mURI->GetContentType(type); |
207 |
|
208 |
GnomeVFSFileInfo fileInfo = {0}; |
209 |
fileInfo.refcount = 1; // In case some GnomeVFS function addrefs and releases it |
210 |
|
211 |
nsCAutoString spec; |
212 |
nsCOMPtr<nsIURI> fileURI; |
213 |
rv = mURI->GetIconFile(getter_AddRefs(fileURI)); |
214 |
if (fileURI) { |
215 |
fileURI->GetAsciiSpec(spec); |
216 |
// Only ask gnome-vfs for a GnomeVFSFileInfo for file: uris, to avoid a |
217 |
// network request |
218 |
PRBool isFile; |
219 |
if (NS_SUCCEEDED(fileURI->SchemeIs("file", &isFile)) && isFile) { |
220 |
gnome_vfs_get_file_info(spec.get(), &fileInfo, GNOME_VFS_FILE_INFO_DEFAULT); |
221 |
} |
222 |
else { |
223 |
// We have to get a leaf name from our uri... |
224 |
nsCOMPtr<nsIURL> url(do_QueryInterface(fileURI)); |
225 |
if (url) { |
226 |
nsCAutoString name; |
227 |
// The filename we get is UTF-8-compatible, which matches gnome expectations. |
228 |
// See also: http://lists.gnome.org/archives/gnome-vfs-list/2004-March/msg00049.html |
229 |
// "Whenever we can detect the charset used for the URI type we try to |
230 |
// convert it to/from utf8 automatically inside gnome-vfs." |
231 |
// I'll interpret that as "otherwise, this field is random junk". |
232 |
url->GetFileName(name); |
233 |
fileInfo.name = g_strdup(name.get()); |
234 |
} |
235 |
// If this is no nsIURL, nothing we can do really. |
236 |
|
237 |
if (!type.IsEmpty()) { |
238 |
fileInfo.valid_fields = GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; |
239 |
fileInfo.mime_type = g_strdup(type.get()); |
240 |
} |
241 |
} |
242 |
} |
243 |
|
244 |
|
245 |
if (type.IsEmpty()) { |
246 |
nsCOMPtr<nsIMIMEService> ms(do_GetService("@mozilla.org/mime;1")); |
247 |
if (ms) { |
248 |
nsCAutoString fileExt; |
249 |
mURI->GetFileExtension(fileExt); |
250 |
nsXPIDLCString extType; |
251 |
ms->GetTypeFromExtension(fileExt.get(), getter_Copies(extType)); |
252 |
fileExt.Assign(extType); |
253 |
} |
254 |
} |
255 |
|
256 |
// Get the icon theme |
257 |
GnomeIconTheme *t = gnome_icon_theme_new(); |
258 |
if (!t) { |
259 |
gnome_vfs_file_info_clear(&fileInfo); |
260 |
return NS_ERROR_NOT_AVAILABLE; |
261 |
} |
262 |
|
263 |
|
264 |
char* name = gnome_icon_lookup(t, NULL, spec.get(), NULL, &fileInfo, type.get(), GNOME_ICON_LOOKUP_FLAGS_NONE, NULL); |
265 |
gnome_vfs_file_info_clear(&fileInfo); |
266 |
if (!name) { |
267 |
g_object_unref(G_OBJECT(t)); |
268 |
return NS_ERROR_NOT_AVAILABLE; |
269 |
} |
270 |
|
271 |
char* file = gnome_icon_theme_lookup_icon(t, name, iconSize, NULL, NULL); |
272 |
g_free(name); |
273 |
g_object_unref(G_OBJECT(t)); |
274 |
if (!file) |
275 |
return NS_ERROR_NOT_AVAILABLE; |
276 |
|
277 |
// Create a GdkPixbuf buffer and scale it |
278 |
GError *err = nsnull; |
279 |
GdkPixbuf* buf = gdk_pixbuf_new_from_file(file, &err); |
280 |
g_free(file); |
281 |
if (!buf) { |
282 |
if (err) |
283 |
g_error_free(err); |
284 |
return NS_ERROR_UNEXPECTED; |
285 |
} |
286 |
|
287 |
// scale... |
288 |
GdkPixbuf* scaled = gdk_pixbuf_scale_simple(buf, iconSize, iconSize, GDK_INTERP_BILINEAR); |
289 |
gdk_pixbuf_unref(buf); |
290 |
if (!scaled) |
291 |
return NS_ERROR_OUT_OF_MEMORY; |
292 |
|
293 |
rv = moz_gdk_pixbuf_to_channel(scaled, getter_AddRefs(mRealChannel)); |
294 |
gdk_pixbuf_unref(scaled); |
295 |
return rv; |
296 |
} |
297 |
|
298 |
nsresult |
299 |
nsIconChannel::Init(nsIURI* aURI) { |
300 |
mURI = do_QueryInterface(aURI); |
301 |
NS_ASSERTION(mURI, "URI passed to nsIconChannel is no nsIMozIconURI!"); |
302 |
|
303 |
nsCAutoString stockIcon; |
304 |
mURI->GetStockIcon(stockIcon); |
305 |
if (stockIcon.IsEmpty()) { |
306 |
return InitWithGnome(); |
307 |
} |
308 |
|
309 |
nsCAutoString iconSizeString; |
310 |
mURI->GetStockIconSize(iconSizeString); |
311 |
|
312 |
nsCAutoString iconStateString; |
313 |
mURI->GetStockIconState(iconStateString); |
314 |
|
315 |
GtkIconSize icon_size = moz_gtk_icon_size(iconSizeString.get()); |
316 |
if (icon_size == GTK_ICON_SIZE_INVALID) { |
317 |
NS_WARNING(iconSizeString.get()); |
318 |
return NS_ERROR_FAILURE; |
319 |
} |
320 |
|
321 |
ensure_stock_image_widget(); |
322 |
|
323 |
gboolean sensitive = strcmp(iconStateString.get(), "disabled"); |
324 |
gtk_widget_set_sensitive (gStockImageWidget, sensitive); |
325 |
|
326 |
GdkPixbuf *icon = gtk_widget_render_icon(gStockImageWidget, stockIcon.get(), |
327 |
icon_size, NULL); |
328 |
if (!icon) { |
329 |
ensure_icon_factory(); |
330 |
|
331 |
GtkIconSet *icon_set = gtk_icon_set_new(); |
332 |
GtkIconSource *icon_source = gtk_icon_source_new(); |
333 |
|
334 |
gtk_icon_source_set_icon_name(icon_source, stockIcon.get()); |
335 |
gtk_icon_set_add_source(icon_set, icon_source); |
336 |
gtk_icon_factory_add(gIconFactory, stockIcon.get(), icon_set); |
337 |
gtk_icon_set_unref(icon_set); |
338 |
gtk_icon_source_free(icon_source); |
339 |
|
340 |
icon = gtk_widget_render_icon(gStockImageWidget, stockIcon.get(), |
341 |
icon_size, NULL); |
342 |
} |
343 |
|
344 |
if (!icon) |
345 |
return NS_ERROR_NOT_AVAILABLE; |
346 |
|
347 |
nsresult rv = moz_gdk_pixbuf_to_channel(icon, getter_AddRefs(mRealChannel)); |
348 |
|
349 |
gdk_pixbuf_unref(icon); |
350 |
|
351 |
return rv; |
352 |
} |
|
|
353 |
++ modules/libpr0n/decoders/Makefile.in |
Lines 29-34
Link Here
|
29 |
DIRS = $(MOZ_IMG_DECODERS) |
29 |
DIRS = $(MOZ_IMG_DECODERS) |
30 |
|
30 |
|
31 |
ifneq (,$(findstring icon,$(MOZ_IMG_DECODERS))) |
31 |
ifneq (,$(findstring icon,$(MOZ_IMG_DECODERS))) |
|
|
32 |
#ifdef MOZ_ENABLE_GNOMEUI |
33 |
#DIRS := icon/gtk $(DIRS) |
34 |
#endif |
32 |
ifeq ($(OS_ARCH),WINNT) |
35 |
ifeq ($(OS_ARCH),WINNT) |
33 |
DIRS := icon/win $(DIRS) |
36 |
DIRS := icon/win $(DIRS) |
34 |
endif |
37 |
endif |
Lines 39-44
Link Here
|
39 |
DIRS := icon/mac $(DIRS) |
42 |
DIRS := icon/mac $(DIRS) |
40 |
endif |
43 |
endif |
41 |
endif # icon |
44 |
endif # icon |
|
|
45 |
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) |
46 |
DIRS := icon/gtk $(DIRS) |
47 |
endif |
42 |
|
48 |
|
43 |
include $(topsrcdir)/config/rules.mk |
49 |
include $(topsrcdir)/config/rules.mk |
44 |
|
50 |
|
45 |
-- modules/libpref/src/init/all.js |
51 |
++ modules/libpref/src/init/all.js |
Lines 49-56
Link Here
|
49 |
|
49 |
|
50 |
pref("keyword.URL", "http://www.google.com/search?ie=UTF-8&oe=utf-8&q="); |
50 |
pref("keyword.URL", "http://www.google.com/search?ie=UTF-8&oe=utf-8&q="); |
51 |
pref("keyword.enabled", false); |
51 |
pref("keyword.enabled", false); |
52 |
pref("general.useragent.locale", "chrome://navigator/locale/navigator.properties"); |
52 |
pref("general.useragent.locale", "chrome://global/locale/intl.properties"); |
53 |
pref("general.useragent.contentlocale", "chrome://navigator-region/locale/region.properties"); |
53 |
pref("general.useragent.contentlocale", "chrome://browser-region/locale/region.properties"); |
54 |
|
54 |
|
55 |
pref("general.config.obscure_value", 13); // for MCD .cfg files |
55 |
pref("general.config.obscure_value", 13); // for MCD .cfg files |
56 |
|
56 |
|
Lines 645-675
Link Here
|
645 |
pref("converter.html2txt.structs", true); // Output structured phrases (strong, em, code, sub, sup, b, i, u) |
645 |
pref("converter.html2txt.structs", true); // Output structured phrases (strong, em, code, sub, sup, b, i, u) |
646 |
pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention |
646 |
pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention |
647 |
|
647 |
|
648 |
pref("intl.accept_languages", "chrome://navigator/locale/navigator.properties"); |
648 |
pref("intl.accept_languages", "chrome://global/locale/intl.properties"); |
649 |
pref("intl.accept_charsets", "iso-8859-1,*,utf-8"); |
649 |
pref("intl.accept_charsets", "iso-8859-1,*,utf-8"); |
650 |
pref("intl.collationOption", "chrome://navigator-platform/locale/navigator.properties"); |
650 |
pref("intl.collationOption", "chrome://global-platform/locale/intl.properties"); |
651 |
pref("intl.menuitems.alwaysappendaccesskeys","chrome://navigator/locale/navigator.properties"); |
651 |
pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties"); |
652 |
pref("intl.charsetmenu.browser.static", "chrome://navigator/locale/navigator.properties"); |
652 |
pref("intl.charsetmenu.browser.static", "chrome://global/locale/intl.properties"); |
653 |
pref("intl.charsetmenu.browser.more1", "chrome://navigator/locale/navigator.properties"); |
653 |
pref("intl.charsetmenu.browser.more1", "chrome://global/locale/intl.properties"); |
654 |
pref("intl.charsetmenu.browser.more2", "chrome://navigator/locale/navigator.properties"); |
654 |
pref("intl.charsetmenu.browser.more2", "chrome://global/locale/intl.properties"); |
655 |
pref("intl.charsetmenu.browser.more3", "chrome://navigator/locale/navigator.properties"); |
655 |
pref("intl.charsetmenu.browser.more3", "chrome://global/locale/intl.properties"); |
656 |
pref("intl.charsetmenu.browser.more4", "chrome://navigator/locale/navigator.properties"); |
656 |
pref("intl.charsetmenu.browser.more4", "chrome://global/locale/intl.properties"); |
657 |
pref("intl.charsetmenu.browser.more5", "chrome://navigator/locale/navigator.properties"); |
657 |
pref("intl.charsetmenu.browser.more5", "chrome://global/locale/intl.properties"); |
658 |
pref("intl.charsetmenu.browser.unicode", "chrome://navigator/locale/navigator.properties"); |
658 |
pref("intl.charsetmenu.browser.unicode", "chrome://global/locale/intl.properties"); |
659 |
pref("intl.charsetmenu.mailedit", "chrome://navigator/locale/navigator.properties"); |
659 |
pref("intl.charsetmenu.mailedit", "chrome://global/locale/intl.properties"); |
660 |
pref("intl.charsetmenu.browser.cache", ""); |
660 |
pref("intl.charsetmenu.browser.cache", ""); |
661 |
pref("intl.charsetmenu.mailview.cache", ""); |
661 |
pref("intl.charsetmenu.mailview.cache", ""); |
662 |
pref("intl.charsetmenu.composer.cache", ""); |
662 |
pref("intl.charsetmenu.composer.cache", ""); |
663 |
pref("intl.charsetmenu.browser.cache.size", 5); |
663 |
pref("intl.charsetmenu.browser.cache.size", 5); |
664 |
pref("intl.charset.detector", "chrome://navigator/locale/navigator.properties"); |
664 |
pref("intl.charset.detector", "chrome://global/locale/intl.properties"); |
665 |
pref("intl.charset.default", "chrome://navigator-platform/locale/navigator.properties"); |
665 |
pref("intl.charset.default", "chrome://global-platform/locale/intl.properties"); |
666 |
pref("intl.content.langcode", "chrome://communicator-region/locale/region.properties"); |
|
|
667 |
pref("intl.locale.matchOS", false); |
666 |
pref("intl.locale.matchOS", false); |
668 |
// fallback charset list for Unicode conversion (converting from Unicode) |
667 |
// fallback charset list for Unicode conversion (converting from Unicode) |
669 |
// currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes) |
668 |
// currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes) |
670 |
// for ISO-8859-1 |
669 |
// for ISO-8859-1 |
671 |
pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252"); |
670 |
pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252"); |
672 |
pref("font.language.group", "chrome://navigator/locale/navigator.properties"); |
671 |
pref("font.language.group", "chrome://global/locale/intl.properties"); |
673 |
|
672 |
|
674 |
pref("images.dither", "auto"); |
673 |
pref("images.dither", "auto"); |
675 |
pref("security.directory", ""); |
674 |
pref("security.directory", ""); |
Lines 725-730
Link Here
|
725 |
pref("mousewheel.horizscroll.withaltkey.numlines",-1); |
724 |
pref("mousewheel.horizscroll.withaltkey.numlines",-1); |
726 |
pref("mousewheel.horizscroll.withaltkey.sysnumlines",false); |
725 |
pref("mousewheel.horizscroll.withaltkey.sysnumlines",false); |
727 |
|
726 |
|
|
|
727 |
pref("mousebuttonsextended.buttonlist", "67"); |
728 |
pref("mousebuttonsextended.buttons.6.action.up", 2); |
729 |
pref("mousebuttonsextended.buttons.6.numlines.up", -1); |
730 |
pref("mousebuttonsextended.buttons.6.action.down", -1); |
731 |
pref("mousebuttonsextended.buttons.6.numlines.down", -1); |
732 |
pref("mousebuttonsextended.buttons.7.action.up", 2); |
733 |
pref("mousebuttonsextended.buttons.7.numlines.up", 1); |
734 |
pref("mousebuttonsextended.buttons.7.action.down", -1); |
735 |
pref("mousebuttonsextended.buttons.7.numlines.down", -1); |
736 |
|
728 |
pref("profile.confirm_automigration",true); |
737 |
pref("profile.confirm_automigration",true); |
729 |
// profile.migration_behavior determines how the profiles root is set |
738 |
// profile.migration_behavior determines how the profiles root is set |
730 |
// 0 - use NS_APP_USER_PROFILES_ROOT_DIR |
739 |
// 0 - use NS_APP_USER_PROFILES_ROOT_DIR |
731 |
-- toolkit/components/filepicker/content/filepicker.js |
740 |
++ toolkit/components/filepicker/content/filepicker.js |
Lines 67-72
Link Here
|
67 |
if (o.displayDirectory) { |
67 |
if (o.displayDirectory) { |
68 |
const directory = o.displayDirectory.path; |
68 |
const directory = o.displayDirectory.path; |
69 |
} |
69 |
} |
|
|
70 |
|
70 |
const initialText = o.defaultString; |
71 |
const initialText = o.defaultString; |
71 |
const filterTitles = o.filters.titles; |
72 |
const filterTitles = o.filters.titles; |
72 |
const filterTypes = o.filters.types; |
73 |
const filterTypes = o.filters.types; |
Lines 121-133
Link Here
|
121 |
treeView.showOnlyDirectories = true; |
122 |
treeView.showOnlyDirectories = true; |
122 |
} |
123 |
} |
123 |
|
124 |
|
|
|
125 |
// set up the right icon for GNOME stock icons |
126 |
if (filePickerMode == nsIFilePicker.modeSave) |
127 |
okButton.setAttribute("icon","save"); |
128 |
else |
129 |
okButton.setAttribute("icon","open"); |
130 |
|
124 |
// start out with a filename sort |
131 |
// start out with a filename sort |
125 |
handleColumnClick("FilenameColumn"); |
132 |
handleColumnClick("FilenameColumn"); |
126 |
|
133 |
|
127 |
document.documentElement.setAttribute("ondialogcancel", "return onCancel();"); |
134 |
document.documentElement.setAttribute("ondialogcancel", "return onCancel();"); |
128 |
try { |
135 |
try { |
129 |
var buttonLabel = getOKAction(); |
136 |
setOKAction(); |
130 |
okButton.setAttribute("label", buttonLabel); |
|
|
131 |
} catch (exception) { |
137 |
} catch (exception) { |
132 |
// keep it set to "OK" |
138 |
// keep it set to "OK" |
133 |
} |
139 |
} |
Lines 496-503
Link Here
|
496 |
onFileSelected(treeView.selectedFiles); |
502 |
onFileSelected(treeView.selectedFiles); |
497 |
} |
503 |
} |
498 |
|
504 |
|
499 |
function getOKAction(file) { |
505 |
function setOKAction(file) { |
500 |
var buttonLabel; |
506 |
var buttonLabel; |
|
|
507 |
var buttonIcon = "open"; // used in all but one case |
501 |
|
508 |
|
502 |
if (file && file.isDirectory() && filePickerMode != nsIFilePicker.modeGetFolder) { |
509 |
if (file && file.isDirectory() && filePickerMode != nsIFilePicker.modeGetFolder) { |
503 |
document.documentElement.setAttribute("ondialogaccept", "return openOnOK();"); |
510 |
document.documentElement.setAttribute("ondialogaccept", "return openOnOK();"); |
Lines 515-525
Link Here
|
515 |
break; |
522 |
break; |
516 |
case nsIFilePicker.modeSave: |
523 |
case nsIFilePicker.modeSave: |
517 |
buttonLabel = gFilePickerBundle.getString("saveButtonLabel"); |
524 |
buttonLabel = gFilePickerBundle.getString("saveButtonLabel"); |
|
|
525 |
buttonIcon = "save"; |
518 |
break; |
526 |
break; |
519 |
} |
527 |
} |
520 |
} |
528 |
} |
521 |
|
529 |
okButton.setAttribute("label", buttonLabel); |
522 |
return buttonLabel; |
530 |
okButton.setAttribute("icon", buttonIcon); |
523 |
} |
531 |
} |
524 |
|
532 |
|
525 |
function onSelect(event) { |
533 |
function onSelect(event) { |
Lines 558-565
Link Here
|
558 |
} |
566 |
} |
559 |
|
567 |
|
560 |
if (validFileSelected) { |
568 |
if (validFileSelected) { |
561 |
var buttonLabel = getOKAction(file); |
569 |
setOKAction(file); |
562 |
okButton.setAttribute("label", buttonLabel); |
|
|
563 |
okButton.disabled = invalidSelection; |
570 |
okButton.disabled = invalidSelection; |
564 |
} else |
571 |
} else |
565 |
okButton.disabled = (textInput.value == ""); |
572 |
okButton.disabled = (textInput.value == ""); |
Lines 586-593
Link Here
|
586 |
} |
593 |
} |
587 |
|
594 |
|
588 |
function onTextFieldFocus() { |
595 |
function onTextFieldFocus() { |
589 |
var buttonLabel = getOKAction(null); |
596 |
setOKAction(null); |
590 |
okButton.setAttribute("label", buttonLabel); |
|
|
591 |
doEnabling(); |
597 |
doEnabling(); |
592 |
} |
598 |
} |
593 |
|
599 |
|
594 |
-- toolkit/components/filepicker/content/filepicker.xul |
600 |
++ toolkit/components/filepicker/content/filepicker.xul |
Lines 95-101
Link Here
|
95 |
<hbox class="dialog-button-box" align="center"> |
95 |
<hbox class="dialog-button-box" align="center"> |
96 |
<checkbox label="&showHiddenFiles.label;" oncommand="toggleShowHidden();" |
96 |
<checkbox label="&showHiddenFiles.label;" oncommand="toggleShowHidden();" |
97 |
flex="1" align="left" accesskey="&showHiddenFiles.accesskey;"/> |
97 |
flex="1" align="left" accesskey="&showHiddenFiles.accesskey;"/> |
98 |
<button dlgtype="cancel" class="dialog-button"/> |
98 |
<button dlgtype="cancel" icon="cancel" class="dialog-button"/> |
99 |
<button dlgtype="accept" class="dialog-button"/> |
99 |
<button dlgtype="accept" icon="accept" class="dialog-button"/> |
100 |
</hbox> |
100 |
</hbox> |
101 |
</dialog> |
101 |
</dialog> |
102 |
-- toolkit/components/passwordmgr/resources/content/passwordManager.xul |
102 |
++ toolkit/components/passwordmgr/resources/content/passwordManager.xul |
Lines 29-34
Link Here
|
29 |
title="&windowtitle.label;" |
29 |
title="&windowtitle.label;" |
30 |
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" |
30 |
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" |
31 |
buttons="accept" |
31 |
buttons="accept" |
|
|
32 |
buttoniconaccept="close" |
32 |
onload="Startup()" |
33 |
onload="Startup()" |
33 |
onunload="Shutdown()" |
34 |
onunload="Shutdown()" |
34 |
persist="screenX screenY width height"> |
35 |
persist="screenX screenY width height"> |
Lines 66-74
Link Here
|
66 |
</tree> |
67 |
</tree> |
67 |
<separator class="thin"/> |
68 |
<separator class="thin"/> |
68 |
<hbox> |
69 |
<hbox> |
69 |
<button id="removeSignon" disabled="true" |
70 |
<button id="removeSignon" disabled="true" icon="remove" |
70 |
label="&remove.label;" oncommand="DeleteSignon();"/> |
71 |
label="&remove.label;" oncommand="DeleteSignon();"/> |
71 |
<button id="removeAllSignons" |
72 |
<button id="removeAllSignons" icon="remove" |
72 |
label="&removeall.label;" |
73 |
label="&removeall.label;" |
73 |
oncommand="DeleteAllSignons();"/> |
74 |
oncommand="DeleteAllSignons();"/> |
74 |
<spacer flex="1"/> |
75 |
<spacer flex="1"/> |
Lines 91-99
Link Here
|
91 |
</tree> |
92 |
</tree> |
92 |
<separator class="thin"/> |
93 |
<separator class="thin"/> |
93 |
<hbox> |
94 |
<hbox> |
94 |
<button id="removeReject" disabled="true" |
95 |
<button id="removeReject" disabled="true" icon="remove" |
95 |
label="&remove.label;" oncommand="DeleteReject();"/> |
96 |
label="&remove.label;" oncommand="DeleteReject();"/> |
96 |
<button id="removeAllRejects" |
97 |
<button id="removeAllRejects" icon="remove" |
97 |
label="&removeall.label;" |
98 |
label="&removeall.label;" |
98 |
oncommand="DeleteAllRejects();"/> |
99 |
oncommand="DeleteAllRejects();"/> |
99 |
</hbox> |
100 |
</hbox> |
100 |
-- toolkit/components/printing/content/printPreviewBindings.xml |
101 |
++ toolkit/components/printing/content/printPreviewBindings.xml |
Lines 53-59
Link Here
|
53 |
|
53 |
|
54 |
<content> |
54 |
<content> |
55 |
<xul:button label="&print.label;" accesskey="&print.accesskey;" |
55 |
<xul:button label="&print.label;" accesskey="&print.accesskey;" |
56 |
oncommand="PrintUtils.print();"/> |
56 |
oncommand="PrintUtils.print();" icon="print"/> |
57 |
|
57 |
|
58 |
<xul:button label="&pageSetup.label;" accesskey="&pageSetup.accesskey;" |
58 |
<xul:button label="&pageSetup.label;" accesskey="&pageSetup.accesskey;" |
59 |
oncommand="this.parentNode.doPageSetup();"/> |
59 |
oncommand="this.parentNode.doPageSetup();"/> |
Lines 118-124
Link Here
|
118 |
|
118 |
|
119 |
<xul:toolbarseparator class="toolbarseparator-primary"/> |
119 |
<xul:toolbarseparator class="toolbarseparator-primary"/> |
120 |
<xul:button label="&close.label;" accesskey="&close.accesskey;" |
120 |
<xul:button label="&close.label;" accesskey="&close.accesskey;" |
121 |
oncommand="PrintUtils.exitPrintPreview();"/> |
121 |
oncommand="PrintUtils.exitPrintPreview();" icon="close"/> |
122 |
<xul:data value="&customPrompt.title;"/> |
122 |
<xul:data value="&customPrompt.title;"/> |
123 |
</content> |
123 |
</content> |
124 |
|
124 |
|
125 |
-- toolkit/components/printing/content/printProgress.xul |
125 |
++ toolkit/components/printing/content/printProgress.xul |
Lines 94-100
Link Here
|
94 |
</grid> |
94 |
</grid> |
95 |
<separator/> |
95 |
<separator/> |
96 |
<hbox id="CancelButton" pack="end"> |
96 |
<hbox id="CancelButton" pack="end"> |
97 |
<button id="cancel" label="&dialogCancel.label;" |
97 |
<button id="cancel" label="&dialogCancel.label;" icon="cancel" |
98 |
oncommand="doCancelButton()"/> |
98 |
oncommand="doCancelButton()"/> |
99 |
</hbox> |
99 |
</hbox> |
100 |
</window> |
100 |
</window> |
101 |
-- toolkit/components/printing/content/printdialog.xul |
101 |
++ toolkit/components/printing/content/printdialog.xul |
Lines 48-53
Link Here
|
48 |
onload="onLoad();" |
48 |
onload="onLoad();" |
49 |
ondialogaccept="return onAccept();" |
49 |
ondialogaccept="return onAccept();" |
50 |
oncancel="return onCancel();" |
50 |
oncancel="return onCancel();" |
|
|
51 |
buttoniconaccept="print" |
51 |
title="&printDialog.title;" |
52 |
title="&printDialog.title;" |
52 |
persist="screenX screenY" |
53 |
persist="screenX screenY" |
53 |
screenX="24" screenY="24"> |
54 |
screenX="24" screenY="24"> |
Lines 82-95
Link Here
|
82 |
<menulist id="printerList" flex="1" oncommand="setPrinterDefaultsForSelectedPrinter();"> |
83 |
<menulist id="printerList" flex="1" oncommand="setPrinterDefaultsForSelectedPrinter();"> |
83 |
<menupopup/> |
84 |
<menupopup/> |
84 |
</menulist> |
85 |
</menulist> |
85 |
<button id="properties" label="&propertiesButton.label;" oncommand="displayPropertiesDialog();"/> |
86 |
<button id="properties" label="&propertiesButton.label;" icon="properties" oncommand="displayPropertiesDialog();"/> |
86 |
</row> |
87 |
</row> |
87 |
<row align="center"> |
88 |
<row align="center"> |
88 |
<hbox align="center" pack="end"> |
89 |
<hbox align="center" pack="end"> |
89 |
<label id="fileLabel" control="fileInput" value="&fileInput.label;"/> |
90 |
<label id="fileLabel" control="fileInput" value="&fileInput.label;"/> |
90 |
</hbox> |
91 |
</hbox> |
91 |
<textbox id="fileInput" flex="1" onblur="stripTrailingWhitespace(this)"/> |
92 |
<textbox id="fileInput" flex="1" onblur="stripTrailingWhitespace(this)"/> |
92 |
<button id="chooseFile" label="&chooseButton.label;" oncommand="onChooseFile()"/> |
93 |
<button id="chooseFile" label="&chooseButton.label;" icon="open" oncommand="onChooseFile()"/> |
93 |
</row> |
94 |
</row> |
94 |
</rows> |
95 |
</rows> |
95 |
|
96 |
|
96 |
-- toolkit/content/widgets/browser.xml |
97 |
++ toolkit/content/widgets/browser.xml |
Lines 577-582
Link Here
|
577 |
|
577 |
|
578 |
this.securityUI = null; |
578 |
this.securityUI = null; |
579 |
this._fastFind = null; |
579 |
this._fastFind = null; |
|
|
580 |
this._webBrowserFind = null; |
580 |
|
581 |
|
581 |
this.removeEventListener("load", this.onLoad, true); |
582 |
this.removeEventListener("load", this.onLoad, true); |
582 |
this.removeEventListener("unload", this.onUnload, true); |
583 |
this.removeEventListener("unload", this.onUnload, true); |
583 |
-- toolkit/content/widgets/dialog.xml |
584 |
++ toolkit/content/widgets/dialog.xml |
Lines 221-226
Link Here
|
221 |
button.setAttribute("accesskey", accessKey); |
221 |
button.setAttribute("accesskey", accessKey); |
222 |
} |
222 |
} |
223 |
} |
223 |
} |
|
|
224 |
// allow specifying alternate icons in the dialog header |
225 |
if (!button.hasAttribute("icon")) { |
226 |
// if there's an icon specified, use that |
227 |
if (this.hasAttribute("buttonicon"+dlgtype)) |
228 |
button.setAttribute("icon", this.getAttribute("buttonicon"+dlgtype)); |
229 |
// otherwise set defaults |
230 |
else |
231 |
switch (dlgtype) { |
232 |
case "accept": |
233 |
button.setAttribute("icon","accept"); |
234 |
break; |
235 |
case "cancel": |
236 |
button.setAttribute("icon","cancel"); |
237 |
break; |
238 |
case "disclosue": |
239 |
button.setAttribute("icon","properties"); |
240 |
break; |
241 |
case "help": |
242 |
button.setAttribute("icon","help"); |
243 |
break; |
244 |
default: |
245 |
break; |
246 |
} |
247 |
} |
224 |
} |
248 |
} |
225 |
|
249 |
|
226 |
// ensure that hitting enter triggers ondialogaccept |
250 |
// ensure that hitting enter triggers ondialogaccept |
227 |
-- toolkit/content/widgets/expander.xml |
251 |
++ toolkit/content/widgets/expander.xml |
Lines 12-18
Link Here
|
12 |
<xul:hbox align="center"> |
12 |
<xul:hbox align="center"> |
13 |
<xul:button type="disclosure" class="expanderButton" anonid="disclosure" xbl:inherits="disabled" mousethrough="always"/> |
13 |
<xul:button type="disclosure" class="expanderButton" anonid="disclosure" xbl:inherits="disabled" mousethrough="always"/> |
14 |
<xul:label class="header expanderButton" anonid="label" xbl:inherits="value=label,disabled" mousethrough="always" flex="1"/> |
14 |
<xul:label class="header expanderButton" anonid="label" xbl:inherits="value=label,disabled" mousethrough="always" flex="1"/> |
15 |
<xul:button anonid="clear-button" xbl:inherits="label=clearlabel,disabled=cleardisabled,hidden=clearhidden" mousethrough="always"/> |
15 |
<xul:button anonid="clear-button" xbl:inherits="label=clearlabel,disabled=cleardisabled,hidden=clearhidden" mousethrough="always" icon="clear"/> |
16 |
</xul:hbox> |
16 |
</xul:hbox> |
17 |
<xul:vbox flex="1" anonid="settings" class="settingsContainer" collapsed="true" xbl:inherits="align"> |
17 |
<xul:vbox flex="1" anonid="settings" class="settingsContainer" collapsed="true" xbl:inherits="align"> |
18 |
<children/> |
18 |
<children/> |
19 |
-- toolkit/content/widgets/tabbrowser.xml |
19 |
++ toolkit/content/widgets/tabbrowser.xml |
Lines 1144-1150
Link Here
|
1144 |
// clean up the before/afterselected attributes before removing the tab |
1144 |
// clean up the before/afterselected attributes before removing the tab |
1145 |
oldTab.selected = false; |
1145 |
oldTab.selected = false; |
1146 |
|
1146 |
|
1147 |
// XXX browser's destructor isn't always called, so we force a cleanup ourselves |
1147 |
// Because of the way XBL works (fields just set JS |
|
|
1148 |
// properties on the element) and the code we have in place |
1149 |
// to preserve the JS objects for any elements that have |
1150 |
// JS properties set on them, the browser element won't be |
1151 |
// destroyed until the document goes away. |
1152 |
// This has to hapen before we remove the child so that the |
1153 |
// XBL implementation of nsIObserver still works. But |
1154 |
// clearing focusedWindow happens below because it gets |
1155 |
// reset by updateCurrentBrowser. |
1148 |
oldBrowser.destroy(); |
1156 |
oldBrowser.destroy(); |
1149 |
|
1157 |
|
1150 |
this.mTabContainer.removeChild(oldTab); |
1158 |
this.mTabContainer.removeChild(oldTab); |
Lines 1154-1159
Link Here
|
1154 |
this.mPanelContainer.selectedIndex = newIndex; |
1162 |
this.mPanelContainer.selectedIndex = newIndex; |
1155 |
|
1163 |
|
1156 |
this.updateCurrentBrowser(); |
1164 |
this.updateCurrentBrowser(); |
|
|
1165 |
|
1166 |
// see comment above destroy above |
1167 |
oldBrowser.focusedWindow = null; |
1168 |
oldBrowser.focusedElement = null; |
1157 |
} |
1169 |
} |
1158 |
]]> |
1170 |
]]> |
1159 |
</body> |
1171 |
</body> |
1160 |
-- toolkit/content/widgets/wizard.xml |
1172 |
++ toolkit/content/widgets/wizard.xml |
Lines 64-72
Link Here
|
64 |
if (this.onFirstPage) { |
64 |
if (this.onFirstPage) { |
65 |
this.canRewind = false; |
65 |
this.canRewind = false; |
66 |
this.setAttribute("firstpage", "true"); |
66 |
this.setAttribute("firstpage", "true"); |
|
|
67 |
#ifdef XP_UNIX |
68 |
#ifndef XP_MACOSX |
69 |
this._backButton.setAttribute('hidden', 'true'); |
70 |
#endif |
71 |
#endif |
67 |
} else { |
72 |
} else { |
68 |
this.canRewind = true; |
73 |
this.canRewind = true; |
69 |
this.setAttribute("firstpage", "false"); |
74 |
this.setAttribute("firstpage", "false"); |
|
|
75 |
#ifdef XP_UNIX |
76 |
#ifndef XP_MACOSX |
77 |
this._backButton.setAttribute('hidden', 'false'); |
78 |
#endif |
79 |
#endif |
70 |
} |
80 |
} |
71 |
|
81 |
|
72 |
if (this.onLastPage) { |
82 |
if (this.onLastPage) { |
Lines 328-334
Link Here
|
328 |
var btn = document.getAnonymousElementByAttribute(this._wizardButtons, "dlgtype", aName); |
338 |
var btn = document.getAnonymousElementByAttribute(this._wizardButtons, "dlgtype", aName); |
329 |
if (btn) { |
339 |
if (btn) { |
330 |
btn.addEventListener("command", this["_"+aName+"Func"], false); |
340 |
btn.addEventListener("command", this["_"+aName+"Func"], false); |
331 |
btn.setAttribute("label", this._bundle.GetStringFromName("button-"+aName)); |
341 |
#ifdef XP_UNIX |
|
|
342 |
#ifndef XP_MACOSX |
343 |
btn.setAttribute("label", this._bundle.GetStringFromName("button-"+aName+"-gnome")); |
344 |
#endif |
345 |
#endif |
332 |
this["_"+aName+"Button"] = btn; |
346 |
this["_"+aName+"Button"] = btn; |
333 |
} |
347 |
} |
334 |
return btn; |
348 |
return btn; |
Lines 478-493
Link Here
|
478 |
<xul:separator class="wizard-buttons-separator groove"/> |
492 |
<xul:separator class="wizard-buttons-separator groove"/> |
479 |
<xul:hbox class="wizard-buttons-box-2"> |
493 |
<xul:hbox class="wizard-buttons-box-2"> |
480 |
<xul:spacer flex="1"/> |
494 |
<xul:spacer flex="1"/> |
481 |
<xul:button class="wizard-button" dlgtype="back"/> |
495 |
#ifdef XP_UNIX |
|
|
496 |
<xul:button class="wizard-button" dlgtype="cancel" icon="cancel"/> |
497 |
<xul:spacer style="width: 24px"/> |
498 |
#endif |
499 |
<xul:button class="wizard-button" dlgtype="back" icon="go-back"/> |
482 |
<xul:deck class="wizard-next-deck" anonid="WizardButtonDeck"> |
500 |
<xul:deck class="wizard-next-deck" anonid="WizardButtonDeck"> |
483 |
<xul:hbox> |
501 |
<xul:hbox> |
484 |
<xul:button class="wizard-button" dlgtype="finish" default="true" flex="1"/> |
502 |
<xul:button class="wizard-button" dlgtype="finish" default="true" flex="1"/> |
485 |
</xul:hbox> |
503 |
</xul:hbox> |
486 |
<xul:hbox> |
504 |
<xul:hbox> |
487 |
<xul:button class="wizard-button" dlgtype="next" default="true" flex="1"/> |
505 |
<xul:button class="wizard-button" dlgtype="next" icon="go-forward" default="true" flex="1"/> |
488 |
</xul:hbox> |
506 |
</xul:hbox> |
489 |
</xul:deck> |
507 |
</xul:deck> |
490 |
<xul:button class="wizard-button" dlgtype="cancel"/> |
508 |
#ifdef XP_WIN |
|
|
509 |
<xul:button class="wizard-button" dlgtype="cancel" icon="cancel"/> |
510 |
#endif |
491 |
</xul:hbox> |
511 |
</xul:hbox> |
492 |
</xul:vbox> |
512 |
</xul:vbox> |
493 |
</content> |
513 |
</content> |
494 |
-- toolkit/content/customizeCharset.xul |
514 |
++ toolkit/content/customizeCharset.xul |
Lines 72-78
Link Here
|
72 |
|
72 |
|
73 |
<hbox align="center"> |
73 |
<hbox align="center"> |
74 |
<button id="add_button" oncommand="AddAvailableCharset();" |
74 |
<button id="add_button" oncommand="AddAvailableCharset();" |
75 |
label="&add.label;" disabled="true"/> |
75 |
label="&add.label;" icon="add" disabled="true"/> |
76 |
</hbox> |
76 |
</hbox> |
77 |
</vbox> |
77 |
</vbox> |
78 |
|
78 |
|
Lines 87-93
Link Here
|
87 |
<separator class="thin"/> |
87 |
<separator class="thin"/> |
88 |
<hbox align="center"> |
88 |
<hbox align="center"> |
89 |
<button id="remove_button" oncommand="RemoveActiveCharset();" |
89 |
<button id="remove_button" oncommand="RemoveActiveCharset();" |
90 |
disabled="true" |
90 |
disabled="true" icon="remove" |
91 |
label="&remove.label;"/> |
91 |
label="&remove.label;"/> |
92 |
</hbox> |
92 |
</hbox> |
93 |
</vbox> |
93 |
</vbox> |
94 |
-- toolkit/content/customizeToolbar.xul |
94 |
++ toolkit/content/customizeToolbar.xul |
Lines 73-86
Link Here
|
73 |
|
73 |
|
74 |
<checkbox id="smallicons" oncommand="updateIconSize(this.checked);" label="&useSmallIcons.label;"/> |
74 |
<checkbox id="smallicons" oncommand="updateIconSize(this.checked);" label="&useSmallIcons.label;"/> |
75 |
|
75 |
|
76 |
<button label="&addNewToolbar.label;" oncommand="addNewToolbar();"/> |
76 |
<button label="&addNewToolbar.label;" oncommand="addNewToolbar();" icon="add"/> |
77 |
<button label="&restoreDefaultSet.label;" oncommand="restoreDefaultSet();"/> |
77 |
<button label="&restoreDefaultSet.label;" oncommand="restoreDefaultSet();" icon="refresh"/> |
78 |
</box> |
78 |
</box> |
79 |
|
79 |
|
80 |
<separator class="groove"/> |
80 |
<separator class="groove"/> |
81 |
|
81 |
|
82 |
<hbox align="center" pack="end"> |
82 |
<hbox align="center" pack="end"> |
83 |
<button label="&saveChanges.label;" oncommand="onAccept();" default="true"/> |
83 |
<button label="&saveChanges.label;" oncommand="onAccept();" default="true" icon="close"/> |
84 |
</hbox> |
84 |
</hbox> |
85 |
</vbox> |
85 |
</vbox> |
86 |
|
86 |
|
87 |
-- toolkit/content/finddialog.xul |
87 |
++ toolkit/content/finddialog.xul |
Lines 66-73
Link Here
|
66 |
</vbox> |
66 |
</vbox> |
67 |
<vbox flex="1"> |
67 |
<vbox flex="1"> |
68 |
<button id="btnFind" label="&findButton.label;" accesskey="&findButton.accesskey;" |
68 |
<button id="btnFind" label="&findButton.label;" accesskey="&findButton.accesskey;" |
69 |
dlgtype="accept"/> |
69 |
dlgtype="accept" icon="find"/> |
|
|
70 |
#ifdef XP_UNIX |
71 |
<button label="&closeButton.label;" icon="close" dlgtype="cancel"/> |
72 |
#else |
70 |
<button label="&cancelButton.label;" dlgtype="cancel"/> |
73 |
<button label="&cancelButton.label;" dlgtype="cancel"/> |
|
|
74 |
#endif |
71 |
</vbox> |
75 |
</vbox> |
72 |
</hbox> |
76 |
</hbox> |
73 |
</dialog> |
77 |
</dialog> |
74 |
-- toolkit/locales/en-US/chrome/global/finddialog.dtd |
78 |
++ toolkit/locales/en-US/chrome/global/finddialog.dtd |
Lines 13-19
Link Here
|
13 |
<!ENTITY findField.tooltip "Type one or more words to search for"> |
13 |
<!ENTITY findField.tooltip "Type one or more words to search for"> |
14 |
<!ENTITY findButton.label "Find Next"> |
14 |
<!ENTITY findButton.label "Find Next"> |
15 |
<!ENTITY findButton.accesskey "F"> |
15 |
<!ENTITY findButton.accesskey "F"> |
16 |
<!ENTITY cancelButton.label "Cancel"> |
16 |
<!ENTITY closeButton.label "Close"> |
17 |
<!ENTITY up.label "Up"> |
17 |
<!ENTITY up.label "Up"> |
18 |
<!ENTITY up.accesskey "U"> |
18 |
<!ENTITY up.accesskey "U"> |
19 |
<!ENTITY down.label "Down"> |
19 |
<!ENTITY down.label "Down"> |
20 |
-- toolkit/mozapps/downloads/content/pref-downloads.xul |
20 |
++ toolkit/mozapps/downloads/content/pref-downloads.xul |
Lines 59-65
Link Here
|
59 |
<radio id="alwaysAsk" label="&alwaysAsk.label;" value="false"/> |
59 |
<radio id="alwaysAsk" label="&alwaysAsk.label;" value="false"/> |
60 |
<hbox flex="1"> |
60 |
<hbox flex="1"> |
61 |
<radio id="neverAsk" label="&neverAsk.label;" value="true"/> |
61 |
<radio id="neverAsk" label="&neverAsk.label;" value="true"/> |
62 |
<button id="showFolder" label="&showFolder.label;" oncommand="showFolder();"/> |
62 |
<button id="showFolder" label="&showFolder.label;" oncommand="showFolder();" icon="open"/> |
63 |
</hbox> |
63 |
</hbox> |
64 |
</radiogroup> |
64 |
</radiogroup> |
65 |
</groupbox> |
65 |
</groupbox> |
Lines 154-166
Link Here
|
154 |
<separator class="thin"/> |
154 |
<separator class="thin"/> |
155 |
<hbox> |
155 |
<hbox> |
156 |
<button label="&editFileHandler.label;" accesskey="&editFileHandler.accesskey;" |
156 |
<button label="&editFileHandler.label;" accesskey="&editFileHandler.accesskey;" |
157 |
id="editFileHandler" oncommand="editFileHandler();"/> |
157 |
id="editFileHandler" oncommand="editFileHandler();" icon="properties"/> |
158 |
<button label="&removeFileHandler.label;" accesskey="&removeFileHandler.accesskey;" |
158 |
<button label="&removeFileHandler.label;" accesskey="&removeFileHandler.accesskey;" |
159 |
id="removeFileHandler" oncommand="removeFileHandler();"/> |
159 |
id="removeFileHandler" oncommand="removeFileHandler();" icon="remove"/> |
160 |
#ifdef MOZ_PHOENIX |
160 |
#ifdef MOZ_PHOENIX |
161 |
<spring flex="1"/> |
161 |
<spring flex="1"/> |
162 |
<button label="&plugins.label;" accesskey="&plugins.accesskey;" |
162 |
<button label="&plugins.label;" accesskey="&plugins.accesskey;" |
163 |
id="plugins" oncommand="showPlugins();"/> |
163 |
id="plugins" oncommand="showPlugins();" icon="properties"/> |
164 |
#endif |
164 |
#endif |
165 |
</hbox> |
165 |
</hbox> |
166 |
</vbox> |
166 |
</vbox> |
167 |
-- toolkit/mozapps/downloads/content/downloads.js |
167 |
++ toolkit/mozapps/downloads/content/downloads.js |
Lines 738-743
Link Here
|
738 |
#ifdef XP_OS2 |
738 |
#ifdef XP_OS2 |
739 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
739 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
740 |
#endif |
740 |
#endif |
|
|
741 |
#ifdef XP_UNIX |
742 |
return aFolderType == "Desktop" ? "Desktop" : "Home"; |
743 |
#endif |
741 |
return "Home"; |
744 |
return "Home"; |
742 |
} |
745 |
} |
743 |
|
746 |
|
744 |
-- toolkit/mozapps/downloads/content/pref-downloads.js |
747 |
++ toolkit/mozapps/downloads/content/pref-downloads.js |
Lines 322-327
Link Here
|
322 |
#ifdef XP_OS2 |
322 |
#ifdef XP_OS2 |
323 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
323 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
324 |
#endif |
324 |
#endif |
|
|
325 |
#ifdef XP_UNIX |
326 |
return aFolderType == "Desktop" ? "Desktop" : "Home"; |
327 |
#endif |
325 |
return "Home"; |
328 |
return "Home"; |
326 |
} |
329 |
} |
327 |
|
330 |
|
328 |
-- toolkit/mozapps/downloads/src/nsHelperAppDlg.js |
331 |
++ toolkit/mozapps/downloads/src/nsHelperAppDlg.js |
Line 0
Link Here
|
0 |
-- toolkit/mozapps/downloads/src/nsHelperAppDlg.js.in |
1 |
/* |
|
|
2 |
*/ |
3 |
|
4 |
/* This file implements the nsIHelperAppLauncherDialog interface. |
5 |
* |
6 |
* The implementation consists of a JavaScript "class" named nsUnknownContentTypeDialog, |
7 |
* comprised of: |
8 |
* - a JS constructor function |
9 |
* - a prototype providing all the interface methods and implementation stuff |
10 |
* |
11 |
* In addition, this file implements an nsIModule object that registers the |
12 |
* nsUnknownContentTypeDialog component. |
13 |
*/ |
14 |
|
15 |
|
16 |
/* ctor |
17 |
*/ |
18 |
function nsUnknownContentTypeDialog() { |
19 |
// Initialize data properties. |
20 |
this.mLauncher = null; |
21 |
this.mContext = null; |
22 |
this.mSourcePath = null; |
23 |
this.chosenApp = null; |
24 |
this.givenDefaultApp = false; |
25 |
this.updateSelf = true; |
26 |
this.mTitle = ""; |
27 |
} |
28 |
|
29 |
nsUnknownContentTypeDialog.prototype = { |
30 |
nsIMIMEInfo : Components.interfaces.nsIMIMEInfo, |
31 |
|
32 |
// This "class" supports nsIHelperAppLauncherDialog, and nsISupports. |
33 |
QueryInterface: function (iid) { |
34 |
if (!iid.equals(Components.interfaces.nsIHelperAppLauncherDialog) && |
35 |
!iid.equals(Components.interfaces.nsISupports)) { |
36 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
37 |
} |
38 |
return this; |
39 |
}, |
40 |
|
41 |
// ---------- nsIHelperAppLauncherDialog methods ---------- |
42 |
|
43 |
// show: Open XUL dialog using window watcher. Since the dialog is not |
44 |
// modal, it needs to be a top level window and the way to open |
45 |
// one of those is via that route). |
46 |
show: function(aLauncher, aContext) { |
47 |
this.mLauncher = aLauncher; |
48 |
this.mContext = aContext; |
49 |
// Display the dialog using the Window Watcher interface. |
50 |
|
51 |
var ir = aContext.QueryInterface(Components.interfaces.nsIInterfaceRequestor); |
52 |
var dwi = ir.getInterface(Components.interfaces.nsIDOMWindowInternal); |
53 |
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"] |
54 |
.getService(Components.interfaces.nsIWindowWatcher); |
55 |
this.mDialog = ww.openWindow(dwi, |
56 |
"chrome://mozapps/content/downloads/unknownContentType.xul", |
57 |
null, |
58 |
"chrome,centerscreen,titlebar,dialog=yes,dependent", |
59 |
null); |
60 |
// Hook this object to the dialog. |
61 |
this.mDialog.dialog = this; |
62 |
|
63 |
// Hook up utility functions. |
64 |
this.getSpecialFolderKey = this.mDialog.getSpecialFolderKey; |
65 |
|
66 |
// Watch for error notifications. |
67 |
this.progressListener.helperAppDlg = this; |
68 |
this.mLauncher.setWebProgressListener(this.progressListener); |
69 |
}, |
70 |
|
71 |
// promptForSaveToFile: Display file picker dialog and return selected file. |
72 |
// This is called by the External Helper App Service |
73 |
// after the ucth dialog calls |saveToDisk| with a null |
74 |
// target filename (no target, therefore user must pick). |
75 |
// |
76 |
// Alternatively, if the user has selected to have all |
77 |
// files download to a specific location, return that |
78 |
// location and don't ask via the dialog. |
79 |
// |
80 |
// Note - this function is called without a dialog, so it cannot access any part |
81 |
// of the dialog XUL as other functions on this object do. |
82 |
promptForSaveToFile: function(aLauncher, aContext, aDefaultFile, aSuggestedFileExtension) { |
83 |
var result = ""; |
84 |
|
85 |
this.mLauncher = aLauncher; |
86 |
|
87 |
// If the user is always downloading to the same location, the default download |
88 |
// folder is stored in preferences. If a value is found stored, use that |
89 |
// automatically and don't ask via a dialog. |
90 |
const kDownloadFolderPref = "browser.download.defaultFolder"; |
91 |
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); |
92 |
try { |
93 |
result = prefs.getComplexValue(kDownloadFolderPref, Components.interfaces.nsILocalFile); |
94 |
result = this.validateLeafName(result, aDefaultFile, aSuggestedFileExtension); |
95 |
} |
96 |
catch (e) { |
97 |
// If we get here, it's because we have a new profile and the user has never configured download |
98 |
// options, so "browser.download.defaultFolder" is not set yet. If the default is autodownload, |
99 |
// we need to discover the default save location. |
100 |
var autodownload = prefs.getBoolPref("browser.download.useDownloadDir"); |
101 |
if (autodownload) { |
102 |
function getSpecialFolderKey(aFolderType) |
103 |
{ |
104 |
return aFolderType == "Desktop" ? "Desktop" : "Home"; |
105 |
return "Home"; |
106 |
} |
107 |
|
108 |
function getDownloadsFolder(aFolder) |
109 |
{ |
110 |
var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties); |
111 |
|
112 |
var dir = fileLocator.get(getSpecialFolderKey(aFolder), Components.interfaces.nsILocalFile); |
113 |
|
114 |
var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); |
115 |
bundle = bundle.createBundle("chrome://mozapps/locale/downloads/unknownContentType.properties"); |
116 |
|
117 |
var description = bundle.GetStringFromName("myDownloads"); |
118 |
if (aFolder != "Desktop") |
119 |
dir.append(description); |
120 |
|
121 |
return dir; |
122 |
} |
123 |
|
124 |
var defaultFolder = null; |
125 |
switch (prefs.getIntPref("browser.download.folderList")) { |
126 |
case 0: |
127 |
defaultFolder = getDownloadsFolder("Desktop") |
128 |
break; |
129 |
case 1: |
130 |
defaultFolder = getDownloadsFolder("Downloads"); |
131 |
break; |
132 |
case 2: |
133 |
defaultFolder = prefs.getComplexValue("browser.download.dir", Components.interfaces.nsILocalFile); |
134 |
break; |
135 |
} |
136 |
|
137 |
// While we're here, set the pref too so that we don't keep coming back into this less efficient |
138 |
// code block. |
139 |
prefs.setComplexValue("browser.download.defaultFolder", Components.interfaces.nsILocalFile, defaultFolder); |
140 |
|
141 |
result = this.validateLeafName(defaultFolder, aDefaultFile, aSuggestedFileExtension); |
142 |
} |
143 |
} |
144 |
|
145 |
if (!result) { |
146 |
// Use file picker to show dialog. |
147 |
var nsIFilePicker = Components.interfaces.nsIFilePicker; |
148 |
var picker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); |
149 |
|
150 |
var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); |
151 |
bundle = bundle.createBundle("chrome://mozapps/locale/downloads/unknownContentType.properties"); |
152 |
|
153 |
var windowTitle = bundle.GetStringFromName("saveDialogTitle"); |
154 |
var parent = aContext.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowInternal); |
155 |
picker.init(parent, windowTitle, nsIFilePicker.modeSave); |
156 |
picker.defaultString = aDefaultFile; |
157 |
|
158 |
if (aSuggestedFileExtension) { |
159 |
// aSuggestedFileExtension includes the period, so strip it |
160 |
picker.defaultExtension = aSuggestedFileExtension.substring(1); |
161 |
} |
162 |
else { |
163 |
try { |
164 |
picker.defaultExtension = this.mLauncher.MIMEInfo.primaryExtension; |
165 |
} |
166 |
catch (ex) { } |
167 |
} |
168 |
|
169 |
var wildCardExtension = "*"; |
170 |
if (aSuggestedFileExtension) { |
171 |
wildCardExtension += aSuggestedFileExtension; |
172 |
picker.appendFilter(this.mLauncher.MIMEInfo.Description, wildCardExtension); |
173 |
} |
174 |
|
175 |
picker.appendFilters( nsIFilePicker.filterAll ); |
176 |
|
177 |
// Pull in the user's preferences and get the default download directory. |
178 |
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); |
179 |
try { |
180 |
var startDir = prefs.getComplexValue("browser.download.dir", Components.interfaces.nsILocalFile); |
181 |
if (startDir.exists()) { |
182 |
picker.displayDirectory = startDir; |
183 |
} |
184 |
} |
185 |
catch(exception) { } |
186 |
|
187 |
var dlgResult = picker.show(); |
188 |
|
189 |
if (dlgResult == nsIFilePicker.returnCancel) { |
190 |
// null result means user cancelled. |
191 |
return null; |
192 |
} |
193 |
|
194 |
|
195 |
// Be sure to save the directory the user chose through the Save As... |
196 |
// dialog as the new browser.download.dir |
197 |
result = picker.file; |
198 |
|
199 |
if (result) { |
200 |
var newDir = result.parent; |
201 |
prefs.setComplexValue("browser.download.dir", Components.interfaces.nsILocalFile, newDir); |
202 |
} |
203 |
} |
204 |
return result; |
205 |
}, |
206 |
|
207 |
validateLeafName: function (aLocalFile, aLeafName, aFileExt) |
208 |
{ |
209 |
if (aLeafName == "") |
210 |
aLeafName = "unnamed" + (aFileExt ? "." + aFileExt : ""); |
211 |
aLocalFile.append(aLeafName); |
212 |
|
213 |
this.makeFileUnique(aLocalFile); |
214 |
|
215 |
if (aLocalFile.isExecutable() && !this.mLauncher.targetFile.isExecutable()) { |
216 |
var f = aLocalFile.clone(); |
217 |
aLocalFile.leafName = aLocalFile.leafName + "." + this.mLauncher.MIMEInfo.primaryExtension; |
218 |
|
219 |
f.remove(false); |
220 |
this.makeFileUnique(aLocalFile); |
221 |
} |
222 |
return aLocalFile; |
223 |
}, |
224 |
|
225 |
makeFileUnique: function (aLocalFile) |
226 |
{ |
227 |
try { |
228 |
// Since we're automatically downloading, we don't get the file picker's |
229 |
// logic to check for existing files, so we need to do that here. |
230 |
// |
231 |
// Note - this code is identical to that in |
232 |
// browser/base/content/contentAreaUtils.js. |
233 |
// If you are updating this code, update that code too! We can't share code |
234 |
// here since this is called in a js component. |
235 |
while (aLocalFile.exists()) { |
236 |
var parts = /.+-(\d+)(\..*)?$/.exec(aLocalFile.leafName); |
237 |
if (parts) { |
238 |
aLocalFile.leafName = aLocalFile.leafName.replace(/((\d+)\.)|((\d+)$)/, |
239 |
function (str, dot, dotNum, noDot, noDotNum, pos, s) { |
240 |
return (parseInt(str) + 1) + (dot ? "." : ""); |
241 |
}); |
242 |
} |
243 |
else { |
244 |
aLocalFile.leafName = aLocalFile.leafName.replace(/\.|$/, "-1$&"); |
245 |
} |
246 |
} |
247 |
aLocalFile.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0600); |
248 |
} |
249 |
catch (e) { |
250 |
dump("*** exception in validateLeafName: " + e + "\n"); |
251 |
if (aLocalFile.leafName == "" || aLocalFile.isDirectory()) { |
252 |
aLocalFile.append("unnamed"); |
253 |
if (aLocalFile.exists()) |
254 |
aLocalFile.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0600); |
255 |
} |
256 |
} |
257 |
}, |
258 |
|
259 |
// ---------- implementation methods ---------- |
260 |
|
261 |
// Web progress listener so we can detect errors while mLauncher is |
262 |
// streaming the data to a temporary file. |
263 |
progressListener: { |
264 |
// Implementation properties. |
265 |
helperAppDlg: null, |
266 |
|
267 |
// nsIWebProgressListener methods. |
268 |
// Look for error notifications and display alert to user. |
269 |
onStatusChange: function( aWebProgress, aRequest, aStatus, aMessage ) { |
270 |
if ( aStatus != Components.results.NS_OK ) { |
271 |
// Get prompt service. |
272 |
var prompter = Components.classes[ "@mozilla.org/embedcomp/prompt-service;1" ] |
273 |
.getService( Components.interfaces.nsIPromptService ); |
274 |
// Display error alert (using text supplied by back-end). |
275 |
prompter.alert( this.dialog, this.helperAppDlg.mTitle, aMessage ); |
276 |
|
277 |
// Close the dialog. |
278 |
this.helperAppDlg.onCancel(); |
279 |
if ( this.helperAppDlg.mDialog ) { |
280 |
this.helperAppDlg.mDialog.close(); |
281 |
} |
282 |
} |
283 |
}, |
284 |
|
285 |
// Ignore onProgressChange, onStateChange, onLocationChange, and onSecurityChange notifications. |
286 |
onProgressChange: function( aWebProgress, |
287 |
aRequest, |
288 |
aCurSelfProgress, |
289 |
aMaxSelfProgress, |
290 |
aCurTotalProgress, |
291 |
aMaxTotalProgress ) { |
292 |
}, |
293 |
|
294 |
onStateChange: function( aWebProgress, aRequest, aStateFlags, aStatus ) { |
295 |
}, |
296 |
|
297 |
onLocationChange: function( aWebProgress, aRequest, aLocation ) { |
298 |
}, |
299 |
|
300 |
onSecurityChange: function( aWebProgress, aRequest, state ) { |
301 |
} |
302 |
}, |
303 |
|
304 |
// initDialog: Fill various dialog fields with initial content. |
305 |
initDialog : function() { |
306 |
// Put file name in window title. |
307 |
var win = this.dialogElement( "unknownContentType" ); |
308 |
var suggestedFileName = this.mLauncher.suggestedFileName; |
309 |
|
310 |
// Some URIs do not implement nsIURL, so we can't just QI. |
311 |
var url = this.mLauncher.source; |
312 |
var fname = ""; |
313 |
this.mSourcePath = url.prePath; |
314 |
try { |
315 |
url = url.QueryInterface( Components.interfaces.nsIURL ); |
316 |
// A url, use file name from it. |
317 |
fname = url.fileName; |
318 |
this.mSourcePath += url.directory; |
319 |
} catch (ex) { |
320 |
// A generic uri, use path. |
321 |
fname = url.path; |
322 |
this.mSourcePath += url.path; |
323 |
} |
324 |
|
325 |
if (suggestedFileName) |
326 |
fname = suggestedFileName; |
327 |
|
328 |
var displayName = fname.replace(/ +/g, " "); |
329 |
|
330 |
this.mTitle = this.dialogElement("strings").getFormattedString("title", [displayName]); |
331 |
win.setAttribute( "title", this.mTitle ); |
332 |
|
333 |
// Put content type, filename and location into intro. |
334 |
this.initIntro(url, fname, displayName); |
335 |
|
336 |
var iconString = "moz-icon://" + fname + "?size=16&contentType=" + this.mLauncher.MIMEInfo.MIMEType; |
337 |
this.dialogElement("contentTypeImage").setAttribute("src", iconString); |
338 |
|
339 |
this.initAppAndSaveToDiskValues(); |
340 |
|
341 |
// Initialize "always ask me" box. This should always be disabled |
342 |
// and set to true for the ambiguous type application/octet-stream. |
343 |
// We don't also check for application/x-msdownload here since we |
344 |
// want users to be able to autodownload .exe files. |
345 |
var rememberChoice = this.dialogElement("rememberChoice"); |
346 |
|
347 |
var mimeType = this.mLauncher.MIMEInfo.MIMEType; |
348 |
if (mimeType == "application/octet-stream" || |
349 |
mimeType == "application/x-msdownload" || |
350 |
this.mLauncher.targetFile.isExecutable()) { |
351 |
rememberChoice.checked = false; |
352 |
rememberChoice.disabled = true; |
353 |
} |
354 |
else { |
355 |
rememberChoice.checked = !this.mLauncher.MIMEInfo.alwaysAskBeforeHandling; |
356 |
} |
357 |
this.toggleRememberChoice(rememberChoice); |
358 |
|
359 |
// XXXben - menulist won't init properly, hack. |
360 |
var openHandler = this.dialogElement("openHandler"); |
361 |
openHandler.parentNode.removeChild(openHandler); |
362 |
var openHandlerBox = this.dialogElement("openHandlerBox"); |
363 |
openHandlerBox.appendChild(openHandler); |
364 |
|
365 |
this.mDialog.setTimeout("dialog.postShowCallback()", 0); |
366 |
|
367 |
this.mDialog.document.documentElement.getButton("accept").disabled = true; |
368 |
const nsITimer = Components.interfaces.nsITimer; |
369 |
this._timer = Components.classes["@mozilla.org/timer;1"] |
370 |
.createInstance(nsITimer); |
371 |
this._timer.initWithCallback(this, 250, nsITimer.TYPE_ONE_SHOT); |
372 |
}, |
373 |
|
374 |
_timer: null, |
375 |
notify: function (aTimer) { |
376 |
if (!this._blurred) |
377 |
this.mDialog.document.documentElement.getButton('accept').disabled = false; |
378 |
this._delayExpired = true; |
379 |
}, |
380 |
|
381 |
postShowCallback: function () { |
382 |
this.mDialog.sizeToContent(); |
383 |
|
384 |
// Set initial focus |
385 |
this.dialogElement("mode").focus(); |
386 |
}, |
387 |
|
388 |
// initIntro: |
389 |
initIntro: function(url, filename, displayname) { |
390 |
this.dialogElement( "location" ).value = displayname; |
391 |
this.dialogElement( "location" ).setAttribute("realname", filename); |
392 |
this.dialogElement( "location" ).setAttribute("tooltiptext", displayname); |
393 |
|
394 |
// if mSourcePath is a local file, then let's use the pretty path name instead of an ugly |
395 |
// url... |
396 |
var pathString = this.mSourcePath; |
397 |
try |
398 |
{ |
399 |
var fileURL = url.QueryInterface(Components.interfaces.nsIFileURL); |
400 |
if (fileURL) |
401 |
{ |
402 |
var fileObject = fileURL.file; |
403 |
if (fileObject) |
404 |
{ |
405 |
var parentObject = fileObject.parent; |
406 |
if (parentObject) |
407 |
{ |
408 |
pathString = parentObject.path; |
409 |
} |
410 |
} |
411 |
} |
412 |
} catch(ex) {} |
413 |
|
414 |
if (pathString == this.mSourcePath) |
415 |
{ |
416 |
// wasn't a fileURL |
417 |
var tmpurl = url.clone(); // don't want to change the real url |
418 |
tmpurl.userPass = ""; |
419 |
pathString = tmpurl.prePath; |
420 |
} |
421 |
|
422 |
// Set the location text, which is separate from the intro text so it can be cropped |
423 |
var location = this.dialogElement( "source" ); |
424 |
location.value = pathString; |
425 |
location.setAttribute("tooltiptext", this.mSourcePath); |
426 |
|
427 |
// Show the type of file. |
428 |
var type = this.dialogElement("type"); |
429 |
var mimeInfo = this.mLauncher.MIMEInfo; |
430 |
|
431 |
// 1. Try to use the pretty description of the type, if one is available. |
432 |
var typeString = mimeInfo.Description; |
433 |
|
434 |
if (typeString == "") { |
435 |
// 2. If there is none, use the extension to identify the file, e.g. "ZIP file" |
436 |
var primaryExtension = ""; |
437 |
try { |
438 |
primaryExtension = mimeInfo.primaryExtension; |
439 |
} |
440 |
catch (ex) { |
441 |
} |
442 |
if (primaryExtension != "") |
443 |
typeString = primaryExtension.toUpperCase() + " file"; |
444 |
// 3. If we can't even do that, just give up and show the MIME type. |
445 |
else |
446 |
typeString = mimeInfo.MIMEType; |
447 |
} |
448 |
|
449 |
type.value = typeString; |
450 |
}, |
451 |
|
452 |
_blurred: false, |
453 |
_delayExpired: false, |
454 |
onBlur: function(aEvent) { |
455 |
if (aEvent.target != this.mDialog.document) |
456 |
return; |
457 |
this._blurred = true; |
458 |
this.mDialog.document.documentElement.getButton("accept").disabled = true; |
459 |
}, |
460 |
|
461 |
onFocus: function(aEvent) { |
462 |
if (aEvent.target != this.mDialog.document) |
463 |
return; |
464 |
this._blurred = false; |
465 |
if (this._delayExpired) { |
466 |
var script = "document.documentElement.getButton('accept').disabled = false"; |
467 |
this.mDialog.setTimeout(script, 250); |
468 |
} |
469 |
}, |
470 |
|
471 |
// Returns true if opening the default application makes sense. |
472 |
openWithDefaultOK: function() { |
473 |
var result; |
474 |
|
475 |
// The checking is different on Windows... |
476 |
// On other platforms, default is Ok if there is a default app. |
477 |
// Note that nsIMIMEInfo providers need to ensure that this holds true |
478 |
// on each platform. |
479 |
return this.mLauncher.MIMEInfo.hasDefaultHandler; |
480 |
}, |
481 |
|
482 |
// Set "default" application description field. |
483 |
initDefaultApp: function() { |
484 |
// Use description, if we can get one. |
485 |
var desc = this.mLauncher.MIMEInfo.defaultDescription; |
486 |
if (desc) { |
487 |
var defaultApp = this.dialogElement("strings").getFormattedString("defaultApp", [desc]); |
488 |
this.dialogElement("defaultHandler").label = defaultApp; |
489 |
} |
490 |
else { |
491 |
this.dialogElement("modeDeck").setAttribute("selectedIndex", "1"); |
492 |
// Hide the default handler item too, in case the user picks a |
493 |
// custom handler at a later date which triggers the menulist to show. |
494 |
this.dialogElement("defaultHandler").hidden = true; |
495 |
} |
496 |
}, |
497 |
|
498 |
// getPath: |
499 |
getPath: function (aFile) { |
500 |
return aFile.path; |
501 |
}, |
502 |
|
503 |
// initAppAndSaveToDiskValues: |
504 |
initAppAndSaveToDiskValues: function() { |
505 |
var modeGroup = this.dialogElement("mode"); |
506 |
|
507 |
// We don't let users open .exe files or random binary data directly |
508 |
// from the browser at the moment because of security concerns. |
509 |
var openWithDefaultOK = this.openWithDefaultOK(); |
510 |
var mimeType = this.mLauncher.MIMEInfo.MIMEType; |
511 |
if (this.mLauncher.targetFile.isExecutable() || ( |
512 |
(mimeType == "application/octet-stream" || |
513 |
mimeType == "application/x-msdownload") && |
514 |
!openWithDefaultOK)) { |
515 |
this.dialogElement("open").disabled = true; |
516 |
var openHandler = this.dialogElement("openHandler"); |
517 |
openHandler.disabled = true; |
518 |
openHandler.label = ""; |
519 |
modeGroup.selectedItem = this.dialogElement("save"); |
520 |
return; |
521 |
} |
522 |
|
523 |
// Fill in helper app info, if there is any. |
524 |
this.chosenApp = this.mLauncher.MIMEInfo.preferredApplicationHandler; |
525 |
// Initialize "default application" field. |
526 |
this.initDefaultApp(); |
527 |
|
528 |
var otherHandler = this.dialogElement("otherHandler"); |
529 |
|
530 |
// Fill application name textbox. |
531 |
if (this.chosenApp && this.chosenApp.path) { |
532 |
otherHandler.setAttribute("path", this.getPath(this.chosenApp)); |
533 |
otherHandler.label = this.chosenApp.leafName; |
534 |
otherHandler.hidden = false; |
535 |
} |
536 |
|
537 |
var useDefault = this.dialogElement("useSystemDefault"); |
538 |
var openHandler = this.dialogElement("openHandler"); |
539 |
openHandler.selectedIndex = 0; |
540 |
|
541 |
if (this.mLauncher.MIMEInfo.preferredAction == this.nsIMIMEInfo.useSystemDefault) { |
542 |
// Open (using system default). |
543 |
modeGroup.selectedItem = this.dialogElement("open"); |
544 |
} else if (this.mLauncher.MIMEInfo.preferredAction == this.nsIMIMEInfo.useHelperApp) { |
545 |
// Open with given helper app. |
546 |
modeGroup.selectedItem = this.dialogElement("open"); |
547 |
openHandler.selectedIndex = 1; |
548 |
} else { |
549 |
// Save to disk. |
550 |
modeGroup.selectedItem = this.dialogElement("save"); |
551 |
} |
552 |
|
553 |
// If we don't have a "default app" then disable that choice. |
554 |
if (!openWithDefaultOK) { |
555 |
var useDefault = this.dialogElement("defaultHandler"); |
556 |
var isSelected = useDefault.selected; |
557 |
|
558 |
// Disable that choice. |
559 |
useDefault.hidden = true; |
560 |
// If that's the default, then switch to "save to disk." |
561 |
if (isSelected) { |
562 |
openHandler.selectedIndex = 1; |
563 |
modeGroup.selectedItem = this.dialogElement("save"); |
564 |
} |
565 |
} |
566 |
|
567 |
// otherHandler is always disabled on Mac |
568 |
otherHandler.nextSibling.hidden = otherHandler.nextSibling.nextSibling.hidden = false; |
569 |
this.updateOKButton(); |
570 |
}, |
571 |
|
572 |
// Returns the user-selected application |
573 |
helperAppChoice: function() { |
574 |
return this.chosenApp; |
575 |
}, |
576 |
|
577 |
get saveToDisk() { |
578 |
return this.dialogElement("save").selected; |
579 |
}, |
580 |
|
581 |
get useOtherHandler() { |
582 |
return this.dialogElement("open").selected && this.dialogElement("openHandler").selectedIndex == 1; |
583 |
}, |
584 |
|
585 |
get useSystemDefault() { |
586 |
return this.dialogElement("open").selected && this.dialogElement("openHandler").selectedIndex == 0; |
587 |
}, |
588 |
|
589 |
toggleRememberChoice: function (aCheckbox) { |
590 |
this.dialogElement("settingsChange").hidden = !aCheckbox.checked; |
591 |
this.mDialog.sizeToContent(); |
592 |
}, |
593 |
|
594 |
openHandlerCommand: function () { |
595 |
var openHandler = this.dialogElement("openHandler"); |
596 |
if (openHandler.selectedItem.id == "choose") |
597 |
this.chooseApp(); |
598 |
else |
599 |
openHandler.setAttribute("lastSelectedItemID", openHandler.selectedItem.id); |
600 |
}, |
601 |
|
602 |
updateOKButton: function() { |
603 |
var ok = false; |
604 |
if (this.dialogElement("save").selected) { |
605 |
// This is always OK. |
606 |
ok = true; |
607 |
} |
608 |
else if (this.dialogElement("open").selected) { |
609 |
switch (this.dialogElement("openHandler").selectedIndex) { |
610 |
case 0: |
611 |
// No app need be specified in this case. |
612 |
ok = true; |
613 |
break; |
614 |
case 1: |
615 |
// only enable the OK button if we have a default app to use or if |
616 |
// the user chose an app.... |
617 |
ok = this.chosenApp || /\S/.test(this.dialogElement("otherHandler").getAttribute("path")); |
618 |
break; |
619 |
} |
620 |
} |
621 |
|
622 |
// Enable Ok button if ok to press. |
623 |
this.mDialog.document.documentElement.getButton("accept").disabled = !ok; |
624 |
}, |
625 |
|
626 |
// Returns true iff the user-specified helper app has been modified. |
627 |
appChanged: function() { |
628 |
return this.helperAppChoice() != this.mLauncher.MIMEInfo.preferredApplicationHandler; |
629 |
}, |
630 |
|
631 |
updateMIMEInfo: function() { |
632 |
var needUpdate = false; |
633 |
// If current selection differs from what's in the mime info object, |
634 |
// then we need to update. |
635 |
if (this.saveToDisk) { |
636 |
needUpdate = this.mLauncher.MIMEInfo.preferredAction != this.nsIMIMEInfo.saveToDisk; |
637 |
if (needUpdate) |
638 |
this.mLauncher.MIMEInfo.preferredAction = this.nsIMIMEInfo.saveToDisk; |
639 |
} |
640 |
else if (this.useSystemDefault) { |
641 |
needUpdate = this.mLauncher.MIMEInfo.preferredAction != this.nsIMIMEInfo.useSystemDefault; |
642 |
if (needUpdate) |
643 |
this.mLauncher.MIMEInfo.preferredAction = this.nsIMIMEInfo.useSystemDefault; |
644 |
} |
645 |
else { |
646 |
// For "open with", we need to check both preferred action and whether the user chose |
647 |
// a new app. |
648 |
needUpdate = this.mLauncher.MIMEInfo.preferredAction != this.nsIMIMEInfo.useHelperApp || this.appChanged(); |
649 |
if (needUpdate) { |
650 |
this.mLauncher.MIMEInfo.preferredAction = this.nsIMIMEInfo.useHelperApp; |
651 |
// App may have changed - Update application and description |
652 |
var app = this.helperAppChoice(); |
653 |
this.mLauncher.MIMEInfo.preferredApplicationHandler = app; |
654 |
this.mLauncher.MIMEInfo.applicationDescription = ""; |
655 |
} |
656 |
} |
657 |
// We will also need to update if the "always ask" flag has changed. |
658 |
needUpdate = needUpdate || this.mLauncher.MIMEInfo.alwaysAskBeforeHandling != (!this.dialogElement("rememberChoice").checked); |
659 |
|
660 |
// One last special case: If the input "always ask" flag was false, then we always |
661 |
// update. In that case we are displaying the helper app dialog for the first |
662 |
// time for this mime type and we need to store the user's action in the mimeTypes.rdf |
663 |
// data source (whether that action has changed or not; if it didn't change, then we need |
664 |
// to store the "always ask" flag so the helper app dialog will or won't display |
665 |
// next time, per the user's selection). |
666 |
needUpdate = needUpdate || !this.mLauncher.MIMEInfo.alwaysAskBeforeHandling; |
667 |
|
668 |
// Make sure mime info has updated setting for the "always ask" flag. |
669 |
this.mLauncher.MIMEInfo.alwaysAskBeforeHandling = !this.dialogElement("rememberChoice").checked; |
670 |
|
671 |
return needUpdate; |
672 |
}, |
673 |
|
674 |
// See if the user changed things, and if so, update the |
675 |
// mimeTypes.rdf entry for this mime type. |
676 |
updateHelperAppPref: function() { |
677 |
var ha = new this.mDialog.HelperApps(); |
678 |
ha.updateTypeInfo(this.mLauncher.MIMEInfo); |
679 |
}, |
680 |
|
681 |
// onOK: |
682 |
onOK: function() { |
683 |
// Verify typed app path, if necessary. |
684 |
if (this.useOtherHandler) { |
685 |
var helperApp = this.helperAppChoice(); |
686 |
if (!helperApp || !helperApp.exists()) { |
687 |
// Show alert and try again. |
688 |
var bundle = this.dialogElement("strings"); |
689 |
var msg = bundle.getFormattedString("badApp", [this.dialogElement("otherHandler").path]); |
690 |
var svc = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); |
691 |
svc.alert(this.mDialog, bundle.getString("badApp.title"), msg); |
692 |
|
693 |
// Disable the OK button. |
694 |
this.mDialog.document.documentElement.getButton("accept").disabled = true; |
695 |
this.dialogElement("mode").focus(); |
696 |
|
697 |
// Clear chosen application. |
698 |
this.chosenApp = null; |
699 |
|
700 |
// Leave dialog up. |
701 |
return false; |
702 |
} |
703 |
} |
704 |
|
705 |
// Remove our web progress listener (a progress dialog will be |
706 |
// taking over). |
707 |
this.mLauncher.setWebProgressListener(null); |
708 |
|
709 |
// saveToDisk and launchWithApplication can return errors in |
710 |
// certain circumstances (e.g. The user clicks cancel in the |
711 |
// "Save to Disk" dialog. In those cases, we don't want to |
712 |
// update the helper application preferences in the RDF file. |
713 |
try { |
714 |
var needUpdate = this.updateMIMEInfo(); |
715 |
|
716 |
if (this.dialogElement("save").selected) { |
717 |
// If we're using a default download location, create a path |
718 |
// for the file to be saved to to pass to |saveToDisk| - otherwise |
719 |
// we must ask the user to pick a save name. |
720 |
|
721 |
this.mLauncher.saveToDisk(null, false); |
722 |
} |
723 |
else |
724 |
this.mLauncher.launchWithApplication(null, false); |
725 |
|
726 |
// Update user pref for this mime type (if necessary). We do not |
727 |
// store anything in the mime type preferences for the ambiguous |
728 |
// type application/octet-stream. We do NOT do this for |
729 |
// application/x-msdownload since we want users to be able to |
730 |
// autodownload these to disk. |
731 |
if (needUpdate && this.mLauncher.MIMEInfo.MIMEType != "application/octet-stream") |
732 |
this.updateHelperAppPref(); |
733 |
} catch(e) { } |
734 |
|
735 |
// Unhook dialog from this object. |
736 |
this.mDialog.dialog = null; |
737 |
|
738 |
// Close up dialog by returning true. |
739 |
return true; |
740 |
}, |
741 |
|
742 |
// onCancel: |
743 |
onCancel: function() { |
744 |
// Remove our web progress listener. |
745 |
this.mLauncher.setWebProgressListener(null); |
746 |
|
747 |
// Cancel app launcher. |
748 |
try { |
749 |
this.mLauncher.Cancel(); |
750 |
} catch(exception) { |
751 |
} |
752 |
|
753 |
// Unhook dialog from this object. |
754 |
this.mDialog.dialog = null; |
755 |
|
756 |
// Close up dialog by returning true. |
757 |
return true; |
758 |
}, |
759 |
|
760 |
// dialogElement: Convenience. |
761 |
dialogElement: function(id) { |
762 |
return this.mDialog.document.getElementById(id); |
763 |
}, |
764 |
|
765 |
// chooseApp: Open file picker and prompt user for application. |
766 |
chooseApp: function() { |
767 |
var nsIFilePicker = Components.interfaces.nsIFilePicker; |
768 |
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); |
769 |
fp.init(this.mDialog, |
770 |
this.dialogElement("strings").getString("chooseAppFilePickerTitle"), |
771 |
nsIFilePicker.modeOpen); |
772 |
|
773 |
fp.appendFilters(nsIFilePicker.filterApps); |
774 |
|
775 |
if (fp.show() == nsIFilePicker.returnOK && fp.file) { |
776 |
// Show the "handler" menulist since we have a (user-specified) |
777 |
// application now. |
778 |
this.dialogElement("modeDeck").setAttribute("selectedIndex", "0"); |
779 |
|
780 |
// Remember the file they chose to run. |
781 |
this.chosenApp = fp.file; |
782 |
// Update dialog. |
783 |
var otherHandler = this.dialogElement("otherHandler"); |
784 |
otherHandler.removeAttribute("hidden"); |
785 |
otherHandler.setAttribute("path", this.getPath(this.chosenApp)); |
786 |
otherHandler.label = this.chosenApp.leafName; |
787 |
this.dialogElement("openHandler").selectedIndex = 1; |
788 |
this.dialogElement("openHandler").setAttribute("lastSelectedItemID", "otherHandler"); |
789 |
|
790 |
this.dialogElement("mode").selectedItem = this.dialogElement("open"); |
791 |
} |
792 |
else { |
793 |
var openHandler = this.dialogElement("openHandler"); |
794 |
var lastSelectedID = openHandler.getAttribute("lastSelectedItemID"); |
795 |
if (!lastSelectedID) |
796 |
lastSelectedID = "defaultHandler"; |
797 |
openHandler.selectedItem = this.dialogElement(lastSelectedID); |
798 |
} |
799 |
}, |
800 |
|
801 |
// Turn this on to get debugging messages. |
802 |
debug: false, |
803 |
|
804 |
// Dump text (if debug is on). |
805 |
dump: function( text ) { |
806 |
if ( this.debug ) { |
807 |
dump( text ); |
808 |
} |
809 |
}, |
810 |
|
811 |
// dumpInfo: |
812 |
doDebug: function() { |
813 |
const nsIProgressDialog = Components.interfaces.nsIProgressDialog; |
814 |
// Open new progress dialog. |
815 |
var progress = Components.classes[ "@mozilla.org/progressdialog;1" ] |
816 |
.createInstance( nsIProgressDialog ); |
817 |
// Show it. |
818 |
progress.open( this.mDialog ); |
819 |
}, |
820 |
|
821 |
// dumpObj: |
822 |
dumpObj: function( spec ) { |
823 |
var val = "<undefined>"; |
824 |
try { |
825 |
val = eval( "this."+spec ).toString(); |
826 |
} catch( exception ) { |
827 |
} |
828 |
this.dump( spec + "=" + val + "\n" ); |
829 |
}, |
830 |
|
831 |
// dumpObjectProperties |
832 |
dumpObjectProperties: function( desc, obj ) { |
833 |
for( prop in obj ) { |
834 |
this.dump( desc + "." + prop + "=" ); |
835 |
var val = "<undefined>"; |
836 |
try { |
837 |
val = obj[ prop ]; |
838 |
} catch ( exception ) { |
839 |
} |
840 |
this.dump( val + "\n" ); |
841 |
} |
842 |
} |
843 |
} |
844 |
|
845 |
// This Component's module implementation. All the code below is used to get this |
846 |
// component registered and accessible via XPCOM. |
847 |
var module = { |
848 |
firstTime: true, |
849 |
|
850 |
// registerSelf: Register this component. |
851 |
registerSelf: function (compMgr, fileSpec, location, type) { |
852 |
if (this.firstTime) { |
853 |
this.firstTime = false; |
854 |
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN; |
855 |
} |
856 |
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar); |
857 |
|
858 |
compMgr.registerFactoryLocation( this.cid, |
859 |
"Unknown Content Type Dialog", |
860 |
this.contractId, |
861 |
fileSpec, |
862 |
location, |
863 |
type ); |
864 |
}, |
865 |
|
866 |
// getClassObject: Return this component's factory object. |
867 |
getClassObject: function (compMgr, cid, iid) { |
868 |
if (!cid.equals(this.cid)) { |
869 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
870 |
} |
871 |
|
872 |
if (!iid.equals(Components.interfaces.nsIFactory)) { |
873 |
throw Components.results.NS_ERROR_NOT_IMPLEMENTED; |
874 |
} |
875 |
|
876 |
return this.factory; |
877 |
}, |
878 |
|
879 |
/* CID for this class */ |
880 |
cid: Components.ID("{F68578EB-6EC2-4169-AE19-8C6243F0ABE1}"), |
881 |
|
882 |
/* Contract ID for this class */ |
883 |
contractId: "@mozilla.org/helperapplauncherdialog;1", |
884 |
|
885 |
/* factory object */ |
886 |
factory: { |
887 |
// createInstance: Return a new nsProgressDialog object. |
888 |
createInstance: function (outer, iid) { |
889 |
if (outer != null) |
890 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
891 |
|
892 |
return (new nsUnknownContentTypeDialog()).QueryInterface(iid); |
893 |
} |
894 |
}, |
895 |
|
896 |
// canUnload: n/a (returns true) |
897 |
canUnload: function(compMgr) { |
898 |
return true; |
899 |
} |
900 |
}; |
901 |
|
902 |
// NSGetModule: Return the nsIModule object. |
903 |
function NSGetModule(compMgr, fileSpec) { |
904 |
return module; |
905 |
} |
|
|
906 |
++ toolkit/mozapps/downloads/src/nsHelperAppDlg.js.in |
Lines 148-153
Link Here
|
148 |
#ifdef XP_OS2 |
148 |
#ifdef XP_OS2 |
149 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
149 |
return aFolderType == "Desktop" ? "Desk" : "Home"; |
150 |
#endif |
150 |
#endif |
|
|
151 |
#ifdef XP_UNIX |
152 |
return aFolderType == "Desktop" ? "Desktop" : "Home"; |
153 |
#endif |
151 |
return "Home"; |
154 |
return "Home"; |
152 |
} |
155 |
} |
153 |
|
156 |
|
154 |
-- toolkit/mozapps/extensions/content/extensions.js |
157 |
++ toolkit/mozapps/extensions/content/extensions.js |
Lines 678-684
Link Here
|
678 |
return !selectedItem || |
678 |
return !selectedItem || |
679 |
(selectedItem && |
679 |
(selectedItem && |
680 |
selectedItem.getAttribute("toBeUninstalled") != "true" && |
680 |
selectedItem.getAttribute("toBeUninstalled") != "true" && |
681 |
selectedItem.getAttribute("toBeInstalled") != "true"); |
681 |
selectedItem.getAttribute("toBeInstalled") != "true" && |
|
|
682 |
selectedItem.getAttribute("locked") != "true"); |
682 |
case "cmd_reallyEnable": |
683 |
case "cmd_reallyEnable": |
683 |
// controls whether to show Enable or Disable in extensions' context menu |
684 |
// controls whether to show Enable or Disable in extensions' context menu |
684 |
return selectedItem && |
685 |
return selectedItem && |
Lines 694-701
Link Here
|
694 |
case "cmd_disable": |
695 |
case "cmd_disable": |
695 |
return selectedItem && |
696 |
return selectedItem && |
696 |
!selectedItem.disabled && |
697 |
!selectedItem.disabled && |
697 |
selectedItem.getAttribute("toBeUninstalled") != "true" && |
698 |
selectedItem.getAttribute("toBeUninstalled") != "true"; |
698 |
selectedItem.getAttribute("locked") != "true"; |
|
|
699 |
case "cmd_movetop": |
699 |
case "cmd_movetop": |
700 |
return selectedItem && (gExtensionsView.children[0] != selectedItem); |
700 |
return selectedItem && (gExtensionsView.children[0] != selectedItem); |
701 |
case "cmd_moveup": |
701 |
case "cmd_moveup": |
702 |
-- toolkit/mozapps/extensions/content/extensions.xul |
702 |
++ toolkit/mozapps/extensions/content/extensions.xul |
Lines 268-276
Link Here
|
268 |
label="&cmd.uninstall.label;" accesskey="&cmd.uninstall.accesskey;" tooltiptext="&cmd.uninstall.tooltip;" |
268 |
label="&cmd.uninstall.label;" accesskey="&cmd.uninstall.accesskey;" tooltiptext="&cmd.uninstall.tooltip;" |
269 |
command="cmd_uninstall"/> |
269 |
command="cmd_uninstall"/> |
270 |
<separator class="commandBarSeparator"/> |
270 |
<separator class="commandBarSeparator"/> |
|
|
271 |
<!-- |
271 |
<button id="updateButton" |
272 |
<button id="updateButton" |
272 |
label="&cmd.update.label;" accesskey="&cmd.update.accesskey;" tooltiptext="&cmd.update.tooltip;" |
273 |
label="&cmd.update.label;" accesskey="&cmd.update.accesskey;" tooltiptext="&cmd.update.tooltip;" |
273 |
command="cmd_update"/> |
274 |
command="cmd_update"/> |
|
|
275 |
--> |
274 |
<separator class="commandBarSeparator"/> |
276 |
<separator class="commandBarSeparator"/> |
275 |
<button id="optionsButton" |
277 |
<button id="optionsButton" |
276 |
label="&cmd.options.label;" accesskey="&cmd.options.accesskey;" tooltiptext="&cmd.options.tooltip;" |
278 |
label="&cmd.options.label;" accesskey="&cmd.options.accesskey;" tooltiptext="&cmd.options.tooltip;" |
277 |
-- toolkit/mozapps/extensions/src/nsExtensionManager.js |
279 |
++ toolkit/mozapps/extensions/src/nsExtensionManager.js |
Line 0
Link Here
|
0 |
-- toolkit/mozapps/extensions/src/nsExtensionManager.js.in |
1 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is the Extension Manager. |
16 |
* |
17 |
* The Initial Developer of the Original Code is Ben Goodger. |
18 |
* Portions created by the Initial Developer are Copyright (C) 2004 |
19 |
* the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* Ben Goodger <ben@bengoodger.com> |
23 |
* Mike Hommey <mh@glandium.org> |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
const nsIExtensionManager = Components.interfaces.nsIExtensionManager; |
40 |
const nsIUpdateService = Components.interfaces.nsIUpdateService; |
41 |
const nsIUpdateItem = Components.interfaces.nsIUpdateItem; |
42 |
|
43 |
const PREF_EM_APP_ID = "app.id"; |
44 |
const PREF_EM_APP_VERSION = "app.version"; |
45 |
const PREF_EM_APP_EXTENSIONS_VERSION = "app.extensions.version"; |
46 |
const PREF_EM_APP_BUILDID = "app.build_id"; |
47 |
const PREF_EM_LAST_APP_VERSION = "extensions.lastAppVersion"; |
48 |
const PREF_UPDATE_COUNT = "extensions.update.count"; |
49 |
const PREF_UPDATE_DEFAULT_URL = "extensions.update.url"; |
50 |
const PREF_EM_WASINSAFEMODE = "extensions.wasInSafeMode"; |
51 |
const PREF_EM_DISABLEDOBSOLETE = "extensions.disabledObsolete"; |
52 |
const PREF_EM_LAST_SELECTED_SKIN = "extensions.lastSelectedSkin"; |
53 |
const PREF_EM_EXTENSION_FORMAT = "extensions.%UUID%."; |
54 |
const PREF_EM_ITEM_UPDATE_ENABLED = "extensions.%UUID%.update.enabled"; |
55 |
const PREF_EM_ITEM_UPDATE_URL = "extensions.%UUID%.update.url"; |
56 |
const PREF_EM_DSS_ENABLED = "extensions.dss.enabled"; |
57 |
|
58 |
const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin"; |
59 |
|
60 |
const DIR_EXTENSIONS = "extensions"; |
61 |
const DIR_UNINSTALL = "uninstall"; |
62 |
const DIR_TEMP = "temp"; |
63 |
const DIR_CHROME = "chrome"; |
64 |
const DIR_COMPONENTS = "components"; |
65 |
const DIR_DEFAULTS = "defaults"; |
66 |
const DIR_DEFAULTS_PREFS = "preferences"; |
67 |
const DIR_DEFAULTS_EXTENSIONS = "extensions"; |
68 |
const DIR_CR_CHROME = "chrome"; |
69 |
const DIR_CR_OVERLAYINFO = "overlayinfo"; |
70 |
const FILE_CR_CHROMEDS = "chrome.rdf"; |
71 |
const FILE_EXTENSIONS = "Extensions.rdf"; |
72 |
const FILE_UNINSTALL_LOG = "Uninstall"; |
73 |
const FILE_DEFAULTS = "defaults.ini"; |
74 |
const FILE_COMPONENT_MANIFEST = "components.ini"; |
75 |
const FILE_COMPAT_MANIFEST = "compatibility.ini"; |
76 |
const FILE_INSTALL_MANIFEST = "install.rdf"; |
77 |
const FILE_CHROME_MANIFEST = "contents.rdf"; |
78 |
const FILE_WASINSAFEMODE = "Safe Mode"; |
79 |
const FILE_INSTALLED_EXTENSIONS = "installed-extensions.txt" |
80 |
const FILE_INSTALLED_EXTENSIONS_PROCESSED = "installed-extensions-processed.txt" |
81 |
|
82 |
const KEY_PROFILEDIR = "ProfD"; |
83 |
const KEY_APPDIR = "XCurProcD"; |
84 |
const KEY_DEFAULTS = "ProfDefNoLoc"; |
85 |
const KEY_DEFAULT_THEME = "classic/1.0"; |
86 |
|
87 |
const ERROR_INVALID_VERSION = -1; |
88 |
const ERROR_PHONED_HOME = -2; |
89 |
const ERROR_EXTENSION_IS_THEME = -3; |
90 |
|
91 |
var gPref = null; |
92 |
var gRDF = null; |
93 |
var gOS = null; |
94 |
var gVersionChecker = null; |
95 |
|
96 |
function getVersionChecker() |
97 |
{ |
98 |
if (!gVersionChecker) { |
99 |
gVersionChecker = Components.classes["@mozilla.org/updates/version-checker;1"] |
100 |
.getService(Components.interfaces.nsIVersionChecker); |
101 |
} |
102 |
return gVersionChecker; |
103 |
} |
104 |
|
105 |
/////////////////////////////////////////////////////////////////////////////// |
106 |
// |
107 |
// Utility Functions |
108 |
// |
109 |
const EM_NS_PREFIX = "http://www.mozilla.org/2004/em-rdf#"; |
110 |
const CHROME_NS_PREFIX = "http://www.mozilla.org/rdf/chrome#"; |
111 |
|
112 |
function EM_NS(aProperty) |
113 |
{ |
114 |
return EM_NS_PREFIX + aProperty; |
115 |
} |
116 |
|
117 |
function CHROME_NS(aProperty) |
118 |
{ |
119 |
return CHROME_NS_PREFIX + aProperty; |
120 |
} |
121 |
|
122 |
// Returns the specified directory hierarchy under the special directory |
123 |
// specified by aKey, creating directories along the way if necessary. |
124 |
function getDir(aKey, aSubDirs) |
125 |
{ |
126 |
return getDirInternal(aKey, aSubDirs, true); |
127 |
} |
128 |
|
129 |
function getDirNoCreate(aKey, aSubDirs) |
130 |
{ |
131 |
return getDirInternal(aKey, aSubDirs, false); |
132 |
} |
133 |
|
134 |
function getDirInternal(aKey, aSubDirs, aCreate) |
135 |
{ |
136 |
var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"] |
137 |
.getService(Components.interfaces.nsIProperties); |
138 |
var dir = fileLocator.get(aKey, Components.interfaces.nsIFile); |
139 |
for (var i = 0; i < aSubDirs.length; ++i) { |
140 |
dir.append(aSubDirs[i]); |
141 |
if (aCreate && !dir.exists()) |
142 |
dir.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0755); |
143 |
} |
144 |
return dir; |
145 |
} |
146 |
|
147 |
// Returns the file at the appropriate point in a directory hierarchy under |
148 |
// the specified key. Does NOT create the file NOR the directories along the |
149 |
// way. |
150 |
function getFileNoCreateDir(aKey, aPathToFile) |
151 |
{ |
152 |
var subdirs = []; |
153 |
for (var i = 0; i < aPathToFile.length - 1; ++i) |
154 |
subdirs.push(aPathToFile[i]); |
155 |
var file = getDirNoCreate(aKey, subdirs); |
156 |
file.append(aPathToFile[aPathToFile.length - 1]); |
157 |
return file; |
158 |
} |
159 |
|
160 |
// Returns the file at the appropriate point in a directory hierarchy under |
161 |
// the specified key, creating directories along the way if necessary. Does |
162 |
// NOT create the file. |
163 |
function getFile(aKey, aPathToFile) |
164 |
{ |
165 |
var subdirs = []; |
166 |
for (var i = 0; i < aPathToFile.length - 1; ++i) |
167 |
subdirs.push(aPathToFile[i]); |
168 |
var file = getDir(aKey, subdirs); |
169 |
file.append(aPathToFile[aPathToFile.length - 1]); |
170 |
return file; |
171 |
} |
172 |
|
173 |
function getDirKey(aIsProfile) |
174 |
{ |
175 |
return aIsProfile ? KEY_PROFILEDIR : KEY_APPDIR; |
176 |
} |
177 |
|
178 |
function dumpFile(aFile) |
179 |
{ |
180 |
dump("*** file = " + aFile.path + ", exists = " + aFile.exists() + "\n"); |
181 |
} |
182 |
|
183 |
// We use this to force RDF to bypass the cache when loading certain types |
184 |
// of files. |
185 |
function getRandomFileName(aName, aExtension) |
186 |
{ |
187 |
var characters = "abcdefghijklmnopqrstuvwxyz0123456789"; |
188 |
var nameString = aName + "-"; |
189 |
for (var i = 0; i < 3; ++i) { |
190 |
var index = Math.round((Math.random()) * characters.length); |
191 |
nameString += characters.charAt(index); |
192 |
} |
193 |
return nameString + "." + aExtension; |
194 |
} |
195 |
|
196 |
const PREFIX_EXTENSION = "urn:mozilla:extension:"; |
197 |
const PREFIX_THEME = "urn:mozilla:theme:"; |
198 |
const ROOT_EXTENSION = "urn:mozilla:extension:root"; |
199 |
const ROOT_THEME = "urn:mozilla:theme:root"; |
200 |
|
201 |
function getItemPrefix(aItemType) |
202 |
{ |
203 |
var prefix = ""; |
204 |
if (aItemType & nsIUpdateItem.TYPE_EXTENSION) |
205 |
prefix = PREFIX_EXTENSION; |
206 |
else if (aItemType & nsIUpdateItem.TYPE_THEME) |
207 |
prefix = PREFIX_THEME; |
208 |
return prefix; |
209 |
} |
210 |
|
211 |
function getItemRoot(aItemType) |
212 |
{ |
213 |
var root = ""; |
214 |
if (aItemType & nsIUpdateItem.TYPE_EXTENSION) |
215 |
root = ROOT_EXTENSION; |
216 |
else if (aItemType & nsIUpdateItem.TYPE_THEME) |
217 |
root = ROOT_THEME; |
218 |
return root; |
219 |
} |
220 |
|
221 |
function getItemRoots(aItemType) |
222 |
{ |
223 |
var roots = []; |
224 |
if (aItemType == nsIUpdateItem.TYPE_ADDON) |
225 |
roots = roots.concat([getItemRoot(nsIUpdateItem.TYPE_EXTENSION), |
226 |
getItemRoot(nsIUpdateItem.TYPE_THEME)]); |
227 |
else |
228 |
roots.push(getItemRoot(aItemType)); |
229 |
return roots; |
230 |
} |
231 |
|
232 |
function getItemType(aURI) |
233 |
{ |
234 |
var type = -1; |
235 |
if (aURI.substr(0, PREFIX_EXTENSION.length) == PREFIX_EXTENSION) |
236 |
type = nsIUpdateItem.TYPE_EXTENSION; |
237 |
else if (aURI.substr(0, PREFIX_THEME.length) == PREFIX_THEME) |
238 |
type = nsIUpdateItem.TYPE_THEME; |
239 |
return type; |
240 |
} |
241 |
|
242 |
function stripPrefix(aURI, aItemType) |
243 |
{ |
244 |
var val = aURI; |
245 |
if (aItemType == nsIUpdateItem.TYPE_ADDON) |
246 |
val = stripPrefix(aURI, getItemType(aURI)); |
247 |
else { |
248 |
var prefix = getItemPrefix(aItemType); |
249 |
if (prefix && aURI.substr(0, prefix.length) == prefix) |
250 |
val = aURI.substr(prefix.length, aURI.length); |
251 |
} |
252 |
return val; |
253 |
} |
254 |
|
255 |
function stripPropertyPrefix(aProperty, aPrefix) |
256 |
{ |
257 |
return aProperty.substr(aPrefix.length, aProperty.length); |
258 |
} |
259 |
|
260 |
function getURLSpecFromFile(aFile) |
261 |
{ |
262 |
var ioServ = Components.classes["@mozilla.org/network/io-service;1"] |
263 |
.getService(Components.interfaces.nsIIOService); |
264 |
var fph = ioServ.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler); |
265 |
return fph.getURLSpecFromFile(aFile); |
266 |
} |
267 |
|
268 |
function ensureExtensionsFiles(aIsProfile) |
269 |
{ |
270 |
try { |
271 |
var extensionsFile = getFile(getDirKey(aIsProfile), |
272 |
[DIR_EXTENSIONS, FILE_EXTENSIONS]); |
273 |
|
274 |
// If the file does not exist at the current location, copy the default |
275 |
// version over so we can access the various roots. |
276 |
// This is a sign also that something may have gone wrong, such as the user |
277 |
// deleting /Extensions so we should remove the relative contents.rdf and |
278 |
// overlayinfo hierarchies too. |
279 |
if (extensionsFile && !extensionsFile.exists()) { |
280 |
var defaultFile = getFile(KEY_DEFAULTS, |
281 |
[DIR_DEFAULTS_EXTENSIONS, FILE_EXTENSIONS]); |
282 |
defaultFile.copyTo(extensionsFile.parent, extensionsFile.leafName); |
283 |
|
284 |
// XXXben - do this only for profile until we have a better protection |
285 |
// mechanism for global items. |
286 |
if (aIsProfile) { |
287 |
try { |
288 |
var chromedsFile = getFile(getDirKey(aIsProfile), [DIR_CR_CHROME, FILE_CR_CHROMEDS]); |
289 |
if (chromedsFile.exists()) |
290 |
chromedsFile.remove(false); |
291 |
var overlayinfoDir = getDir(getDirKey(aIsProfile), [DIR_CR_CHROME, DIR_CR_OVERLAYINFO]); |
292 |
if (overlayinfoDir.exists()) |
293 |
overlayinfoDir.remove(true); |
294 |
} |
295 |
catch (e) { |
296 |
dump("Extension System Warning: failed to remove chrome.rdf/overlay info because: " + e + "\n"); |
297 |
} |
298 |
} |
299 |
} |
300 |
} |
301 |
catch (e) { |
302 |
// Too early in the startup process to use the console, we may yet restart |
303 |
// the app. |
304 |
dump("Extension System Warning: Failed to set up default extensions" + |
305 |
" files probably because you do not have write privileges to this" + |
306 |
" location. While you can run Firefox like this, it is recommended" + |
307 |
" that you run it at least once with privileges that allow it to generate" + |
308 |
" these initial files to improve start performance. Running from a disk" + |
309 |
" image on MacOS X is not recommended."); |
310 |
} |
311 |
} |
312 |
|
313 |
function stringData(aLiteralOrResource) |
314 |
{ |
315 |
try { |
316 |
var obj = aLiteralOrResource.QueryInterface(Components.interfaces.nsIRDFLiteral); |
317 |
return obj.Value; |
318 |
} |
319 |
catch (e) { |
320 |
try { |
321 |
obj = aLiteralOrResource.QueryInterface(Components.interfaces.nsIRDFResource); |
322 |
return obj.Value; |
323 |
} |
324 |
catch (e) {} |
325 |
} |
326 |
return "--"; |
327 |
} |
328 |
|
329 |
function stackTraceFunctionFormat(aFunctionName) |
330 |
{ |
331 |
var classDelimiter = aFunctionName.indexOf("_"); |
332 |
var className = aFunctionName.substr(0, classDelimiter); |
333 |
if (!className) |
334 |
className == "<global>"; |
335 |
var functionName = aFunctionName.substr(classDelimiter + 1, aFunctionName.length); |
336 |
if (!functionName) |
337 |
functionName == "<anonymous>"; |
338 |
return className + "::" + functionName; |
339 |
} |
340 |
|
341 |
function stackTrace(aArguments, aMaxCount) |
342 |
{ |
343 |
dump("=[STACKTRACE]=====================================================\n"); |
344 |
dump("*** at: " + stackTraceFunctionFormat(aArguments.callee.name) + "()\n"); |
345 |
var temp = aArguments.callee.caller; |
346 |
var count = 0; |
347 |
while (temp) { |
348 |
dump("*** " + stackTraceFunctionFormat(temp.name) + "()\n"); |
349 |
|
350 |
temp = temp.arguments.callee.caller; |
351 |
if (aMaxCount > 0 && ++count == aMaxCount) |
352 |
break; |
353 |
} |
354 |
dump("==================================================================\n"); |
355 |
} |
356 |
|
357 |
/////////////////////////////////////////////////////////////////////////////// |
358 |
// Incompatible Item Error Message |
359 |
function showIncompatibleError(aDS) |
360 |
{ |
361 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
362 |
.getService(Components.interfaces.nsIStringBundleService); |
363 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
364 |
var params = [extensionStrings.GetStringFromName("extension")]; |
365 |
var title = extensionStrings.formatStringFromName("incompatibleTitle", |
366 |
params, params.length); |
367 |
|
368 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
369 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
370 |
|
371 |
var message; |
372 |
var metadata = {}; |
373 |
getItemMetadata(aDS, metadata); |
374 |
|
375 |
if (undefined === metadata.minAppVersion) { |
376 |
// getItemMetadata does not fill target application version range properties unless a |
377 |
// matching supported target application is found. |
378 |
params = [metadata.name, metadata.version, brandShortName]; |
379 |
message = extensionStrings.formatStringFromName("incompatibleMessageNoApp", |
380 |
params, params.length); |
381 |
} |
382 |
else if (metadata.minAppVersion == metadata.maxAppVersion) { |
383 |
// If the min target app version and the max target app version are the same, don't show |
384 |
// a message like, "Foo is only compatible with Firefox versions 0.7 to 0.7", rather just |
385 |
// show, "Foo is only compatible with Firefox 0.7" |
386 |
params = [metadata.name, metadata.version, brandShortName, metadata.name, |
387 |
metadata.version, brandShortName, metadata.minAppVersion]; |
388 |
message = extensionStrings.formatStringFromName("incompatibleMessageSingleAppVersion", |
389 |
params, params.length); |
390 |
} |
391 |
else { |
392 |
params = [metadata.name, metadata.version, brandShortName, metadata.name, |
393 |
metadata.version, brandShortName, metadata.minAppVersion, |
394 |
metadata.maxAppVersion]; |
395 |
message = extensionStrings.formatStringFromName("incompatibleMessage", params, params.length); |
396 |
} |
397 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
398 |
.getService(Components.interfaces.nsIPromptService); |
399 |
ps.alert(null, title, message); |
400 |
} |
401 |
|
402 |
function showMalformedError(aFile) |
403 |
{ |
404 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
405 |
.getService(Components.interfaces.nsIStringBundleService); |
406 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
407 |
var title = extensionStrings.GetStringFromName("malformedTitle"); |
408 |
|
409 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
410 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
411 |
var message = extensionStrings.formatStringFromName("malformedMessage", [brandShortName, aFile], 2); |
412 |
|
413 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
414 |
.getService(Components.interfaces.nsIPromptService); |
415 |
ps.alert(null, title, message); |
416 |
} |
417 |
|
418 |
function showInvalidVersionError(aItemName, aVersion) |
419 |
{ |
420 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
421 |
.getService(Components.interfaces.nsIStringBundleService); |
422 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
423 |
var title = extensionStrings.GetStringFromName("invalidVersionTitle"); |
424 |
|
425 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
426 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
427 |
var params = [brandShortName, aItemName, aVersion]; |
428 |
var message = extensionStrings.formatStringFromName("invalidVersionMessage", params, params.length); |
429 |
|
430 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
431 |
.getService(Components.interfaces.nsIPromptService); |
432 |
ps.alert(null, title, message); |
433 |
} |
434 |
|
435 |
function showOldThemeError(aDS) |
436 |
{ |
437 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
438 |
.getService(Components.interfaces.nsIStringBundleService); |
439 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
440 |
var params = [extensionStrings.GetStringFromName("theme")]; |
441 |
var title = extensionStrings.formatStringFromName("incompatibleTitle", |
442 |
params, params.length); |
443 |
|
444 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
445 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
446 |
var appVersion = extensionStrings.GetStringFromName("incompatibleOlder"); |
447 |
|
448 |
try { |
449 |
var rdfc = Components.classes["@mozilla.org/rdf/container;1"] |
450 |
.createInstance(Components.interfaces.nsIRDFContainer); |
451 |
rdfc.Init(aDS, gRDF.GetResource("urn:mozilla:skin:root")); |
452 |
|
453 |
var elts = rdfc.GetElements(); |
454 |
var nameArc = gRDF.GetResource(CHROME_NS("displayName")); |
455 |
while (elts.hasMoreElements()) { |
456 |
var elt = elts.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
457 |
themeName = stringData(aDS.GetTarget(elt, nameArc, true)); |
458 |
if (themeName) |
459 |
break; |
460 |
} |
461 |
} |
462 |
catch (e) { |
463 |
themeName = extensionStrings.GetStringFromName("incompatibleThemeName"); |
464 |
} |
465 |
|
466 |
params = [themeName, "", brandShortName, themeName, "", brandShortName, appVersion]; |
467 |
var message = extensionStrings.formatStringFromName("incompatibleMessageSingleAppVersion", |
468 |
params, params.length); |
469 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
470 |
.getService(Components.interfaces.nsIPromptService); |
471 |
ps.alert(null, title, message); |
472 |
} |
473 |
|
474 |
function showMissingFileError(aSourceFile, aMissingFileName) |
475 |
{ |
476 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
477 |
.getService(Components.interfaces.nsIStringBundleService); |
478 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
479 |
var title = extensionStrings.GetStringFromName("missingFileTitle"); |
480 |
|
481 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
482 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
483 |
var params = [brandShortName, aMissingFileName]; |
484 |
var message = extensionStrings.formatStringFromName("missingFileMessage", params, params.length); |
485 |
|
486 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
487 |
.getService(Components.interfaces.nsIPromptService); |
488 |
ps.alert(null, title, message); |
489 |
|
490 |
var consoleService = Components.classes["@mozilla.org/consoleservice;1"] |
491 |
.getService(Components.interfaces.nsIConsoleService); |
492 |
params = [aSourceFile, aMissingFileName]; |
493 |
var consoleMessage = extensionStrings.formatStringFromName("missingFileConsoleMessage", |
494 |
params, params.length); |
495 |
consoleService.logStringMessage(consoleMessage); |
496 |
} |
497 |
|
498 |
function showMalformedRegistrationError(aCRException) |
499 |
{ |
500 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
501 |
.getService(Components.interfaces.nsIStringBundleService); |
502 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
503 |
var title = extensionStrings.GetStringFromName("malformedRegistrationTitle"); |
504 |
|
505 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
506 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
507 |
var params = [brandShortName]; |
508 |
var message = extensionStrings.formatStringFromName("malformedRegistrationMessage", |
509 |
params, params.length); |
510 |
var detailsButtonMessage = extensionStrings.GetStringFromName("malformedRegistrationDetailsButton"); |
511 |
|
512 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
513 |
.getService(Components.interfaces.nsIPromptService); |
514 |
var flags = (ps.BUTTON_TITLE_IS_STRING * ps.BUTTON_POS_1) + |
515 |
(ps.BUTTON_TITLE_OK * ps.BUTTON_POS_0); |
516 |
var result = ps.confirmEx(null, title, message, flags, null, detailsButtonMessage, null, null, { } ); |
517 |
if (result == 1) { |
518 |
var consoleService = Components.classes["@mozilla.org/consoleservice;1"] |
519 |
.getService(Components.interfaces.nsIConsoleService); |
520 |
params = [aCRException.extensionID, aCRException.functionName, |
521 |
aCRException.chromePath, aCRException.isProfile, ]; |
522 |
var consoleMessage = extensionStrings.formatStringFromName("malformedRegistrationConsoleMessage", |
523 |
params, params.length); |
524 |
consoleService.logStringMessage(consoleMessage); |
525 |
|
526 |
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"] |
527 |
.getService(Components.interfaces.nsIWindowWatcher); |
528 |
ww.openWindow(null, "chrome://global/content/console.xul", |
529 |
"", "chrome,modal,centerscreen,resizable", null); |
530 |
} |
531 |
} |
532 |
|
533 |
function getItemMetadata(aDS, aResult) |
534 |
{ |
535 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
536 |
|
537 |
// Extension Name and Version |
538 |
var props = ["name", "version"]; |
539 |
for (var i = 0; i < props.length; ++i) { |
540 |
var prop = gRDF.GetResource(EM_NS(props[i])); |
541 |
aResult[props[i]] = stringData(aDS.GetTarget(manifestRoot, prop, true)); |
542 |
} |
543 |
|
544 |
// Target App Name and Version |
545 |
var appID = gPref.getCharPref(PREF_EM_APP_ID); |
546 |
|
547 |
var targets = aDS.GetTargets(manifestRoot, gRDF.GetResource(EM_NS("targetApplication")), true); |
548 |
var idRes = gRDF.GetResource(EM_NS("id")); |
549 |
var minVersionRes = gRDF.GetResource(EM_NS("minVersion")); |
550 |
var maxVersionRes = gRDF.GetResource(EM_NS("maxVersion")); |
551 |
while (targets.hasMoreElements()) { |
552 |
var targetApp = targets.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
553 |
var id = stringData(aDS.GetTarget(targetApp, idRes, true)); |
554 |
var minVersion = stringData(aDS.GetTarget(targetApp, minVersionRes, true)); |
555 |
var maxVersion = stringData(aDS.GetTarget(targetApp, maxVersionRes, true)); |
556 |
|
557 |
if (id == appID) { |
558 |
aResult.minAppVersion = minVersion; |
559 |
aResult.maxAppVersion = maxVersion; |
560 |
break; |
561 |
} |
562 |
} |
563 |
} |
564 |
|
565 |
function getInstallManifest(aFile) |
566 |
{ |
567 |
var fileURL = getURLSpecFromFile(aFile); |
568 |
var ds = gRDF.GetDataSourceBlocking(fileURL); |
569 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
570 |
var arcs = ds.ArcLabelsOut(manifestRoot); |
571 |
if (!arcs.hasMoreElements()) { |
572 |
ds = null; |
573 |
var uri = Components.classes["@mozilla.org/network/standard-url;1"] |
574 |
.createInstance(Components.interfaces.nsIURI); |
575 |
uri.spec = fileURL; |
576 |
var url = uri.QueryInterface(Components.interfaces.nsIURL); |
577 |
showMalformedError(url.fileName); |
578 |
} |
579 |
return ds; |
580 |
} |
581 |
|
582 |
function ArrayEnumerator(aItems) |
583 |
{ |
584 |
this._index = 0; |
585 |
|
586 |
if (aItems) { |
587 |
for (var i = 0; i < aItems.length; ++i) { |
588 |
if (!aItems[i]) |
589 |
aItems.splice(i, 1); |
590 |
} |
591 |
} |
592 |
|
593 |
this._contents = aItems; |
594 |
} |
595 |
|
596 |
ArrayEnumerator.prototype = { |
597 |
_index: 0, |
598 |
_contents: [], |
599 |
|
600 |
hasMoreElements: function ArrayEnumerator_hasMoreElements() |
601 |
{ |
602 |
return this._index < this._contents.length; |
603 |
}, |
604 |
|
605 |
getNext: function ArrayEnumerator_getNext() |
606 |
{ |
607 |
return this._contents[this._index++]; |
608 |
} |
609 |
}; |
610 |
|
611 |
/////////////////////////////////////////////////////////////////////////////// |
612 |
// |
613 |
// nsInstallLogBase |
614 |
// |
615 |
function nsInstallLogBase() |
616 |
{ |
617 |
} |
618 |
|
619 |
nsInstallLogBase.prototype = { |
620 |
CHROME_TYPE_PACKAGE : "package", |
621 |
CHROME_TYPE_SKIN : "skin", |
622 |
CHROME_TYPE_LOCALE : "locale", |
623 |
|
624 |
TOKEN_ADD_FILE : "add", |
625 |
TOKEN_REGISTER_CHROME : "register", |
626 |
TOKEN_PROFILE : "profile", |
627 |
TOKEN_GLOBAL : "global", |
628 |
TOKEN_SKIN : "skin" |
629 |
}; |
630 |
|
631 |
/////////////////////////////////////////////////////////////////////////////// |
632 |
// |
633 |
// nsInstallLogWriter |
634 |
// |
635 |
function nsInstallLogWriter(aExtensionID, aIsProfile) |
636 |
{ |
637 |
this._isProfile = aIsProfile; |
638 |
this._uninstallLog = getDir(getDirKey(aIsProfile), |
639 |
[DIR_EXTENSIONS, aExtensionID, DIR_UNINSTALL]); |
640 |
this._uninstallLog.append(FILE_UNINSTALL_LOG); |
641 |
} |
642 |
|
643 |
nsInstallLogWriter.prototype = { |
644 |
__proto__ : nsInstallLogBase.prototype, |
645 |
_uninstallLog : null, |
646 |
|
647 |
open: function nsInstallLogWriter_open () |
648 |
{ |
649 |
this._fos = Components.classes["@mozilla.org/network/file-output-stream;1"] |
650 |
.createInstance(Components.interfaces.nsIFileOutputStream); |
651 |
const MODE_WRONLY = 0x02; |
652 |
const MODE_CREATE = 0x08; |
653 |
const MODE_TRUNCATE = 0x20; |
654 |
this._fos.init(this._uninstallLog, MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE, 0644, 0); |
655 |
}, |
656 |
|
657 |
close: function nsInstallLogWriter_close () |
658 |
{ |
659 |
this._fos.close(); |
660 |
}, |
661 |
|
662 |
addFile: function nsInstallLogWriter_addFile (aFile) |
663 |
{ |
664 |
var line = "add\t" + aFile.persistentDescriptor + "\n"; |
665 |
this._fos.write(line, line.length); |
666 |
}, |
667 |
|
668 |
registerChrome: function nsInstallLogWriter_registerChrome (aProviderName, aChromeType, aIsProfile) |
669 |
{ |
670 |
var profile = aIsProfile ? "profile" : "global"; |
671 |
// register\tprofile\tpackage\t<provider_name> |
672 |
var line = "register\t" + profile + "\t" + aChromeType + "\t" + aProviderName + "\n"; |
673 |
this._fos.write(line, line.length); |
674 |
}, |
675 |
|
676 |
installSkin: function nsInstallLogWriter_installSkin (aSkinName, aIsProfile) |
677 |
{ |
678 |
var profile = aIsProfile ? "profile" : "global"; |
679 |
// register\tprofile\tpackage\t<provider_name> |
680 |
var line = "skin\t" + profile + "\t" + aSkinName + "\n"; |
681 |
this._fos.write(line, line.length); |
682 |
} |
683 |
}; |
684 |
|
685 |
/////////////////////////////////////////////////////////////////////////////// |
686 |
// |
687 |
// nsInstallLogReader |
688 |
// |
689 |
function nsInstallLogReader(aExtensionID, aIsProfile, aListener) |
690 |
{ |
691 |
this._isProfile = aIsProfile; |
692 |
this.uninstallLog = getFileNoCreateDir(getDirKey(aIsProfile), |
693 |
[DIR_EXTENSIONS, aExtensionID, |
694 |
DIR_UNINSTALL, FILE_UNINSTALL_LOG]); |
695 |
// If the uninstall Log doesn't exist in profile, let's give a try in |
696 |
// global extension pool. |
697 |
if (aIsProfile && !this.uninstallLog.exists()) { |
698 |
this._isProfile = false; |
699 |
this.uninstallLog = getFileNoCreateDir(getDirKey(false), |
700 |
[DIR_EXTENSIONS, aExtensionID, |
701 |
DIR_UNINSTALL, FILE_UNINSTALL_LOG]); |
702 |
} |
703 |
this._listener = aListener |
704 |
} |
705 |
|
706 |
nsInstallLogReader.prototype = { |
707 |
__proto__ : nsInstallLogBase.prototype, |
708 |
uninstallLog : null, |
709 |
_listener : null, |
710 |
|
711 |
read: function nsInstallLogReader_read () |
712 |
{ |
713 |
if (!this.uninstallLog.exists()) |
714 |
return; |
715 |
|
716 |
var fis = Components.classes["@mozilla.org/network/file-input-stream;1"] |
717 |
.createInstance(Components.interfaces.nsIFileInputStream); |
718 |
fis.init(this.uninstallLog, -1, -1, false); |
719 |
var lis = fis.QueryInterface(Components.interfaces.nsILineInputStream); |
720 |
var line = { value: "" }; |
721 |
var more = false; |
722 |
var lines = []; |
723 |
do { |
724 |
more = lis.readLine(line); |
725 |
lines.push(line.value); |
726 |
} |
727 |
while (more); |
728 |
fis.close(); |
729 |
|
730 |
// Now that we've closed the stream we can remove all the files, unregister |
731 |
// chrome, etc. |
732 |
// |
733 |
// The list of lines we pass to the uninstall handler should be in this |
734 |
// order: |
735 |
// 1) File additions |
736 |
// 2) Chrome Package Registrations |
737 |
// 3) Chrome Skin and Locale Registrations |
738 |
// |
739 |
// They must be in this order since skins and locales rely on packages, and |
740 |
// the packages they rely on is not stored in the registration line so we |
741 |
// simply "deselect" for every package installed by the extension. |
742 |
var dependentLines = []; |
743 |
for (var i = 0; i < lines.length; ++i) { |
744 |
var parts = lines[i].split("\t"); |
745 |
if (parts[1] == this.TOKEN_REGISTER_CHROME && |
746 |
(parts[2] == this.CHROME_TYPE_SKIN || |
747 |
parts[2] == this.CHROME_TYPE_LOCALE)) { |
748 |
dependentLines.push(lines.splice(i, 1)); |
749 |
} |
750 |
} |
751 |
lines.concat(dependentLines); |
752 |
|
753 |
for (var i = 0; i < lines.length; ++i) |
754 |
this._parseLine(lines[i]); |
755 |
}, |
756 |
|
757 |
_parseLine: function nsInstallLogReader__parseLine(aLine) |
758 |
{ |
759 |
var parts = aLine.split("\t"); |
760 |
switch (parts[0]) { |
761 |
case this.TOKEN_ADD_FILE: |
762 |
var prefix = this.TOKEN_ADD_FILE + "\t"; |
763 |
var filePD = aLine.substr(prefix.length, aLine.length); |
764 |
var lf = Components.classes["@mozilla.org/file/local;1"] |
765 |
.createInstance(Components.interfaces.nsILocalFile); |
766 |
try { |
767 |
lf.persistentDescriptor = filePD; |
768 |
this._listener.onAddFile(lf); |
769 |
} |
770 |
catch (e) { |
771 |
dump("*** nsInstallLogReader::_parseLine - failed to remove file " + e + "\n"); |
772 |
} |
773 |
break; |
774 |
case this.TOKEN_REGISTER_CHROME: |
775 |
var isProfile = parts[1] == this.TOKEN_PROFILE; |
776 |
try { |
777 |
this._listener.onRegisterChrome(parts[3], lf, parts[2], isProfile); |
778 |
} |
779 |
catch (e) { |
780 |
dump("*** nsInstallLogReader::_parseLine - failed to deregister chrome\n"); |
781 |
} |
782 |
break; |
783 |
case this.TOKEN_SKIN: |
784 |
var isProfile = parts[1] == this.TOKEN_PROFILE; |
785 |
try { |
786 |
this._listener.onInstallSkin(parts[2], isProfile); |
787 |
} |
788 |
catch (e) { |
789 |
dump("*** nsInstallLogReader::_parseLine - failed to uninstall skin\n"); |
790 |
} |
791 |
break; |
792 |
} |
793 |
} |
794 |
}; |
795 |
|
796 |
/////////////////////////////////////////////////////////////////////////////// |
797 |
// |
798 |
// nsInstalledExtensionReader |
799 |
// |
800 |
function nsInstalledExtensionReader(aManager) |
801 |
{ |
802 |
this._installedExtensions = getFile(KEY_APPDIR, |
803 |
[DIR_EXTENSIONS, |
804 |
FILE_INSTALLED_EXTENSIONS]); |
805 |
this._installedExtensionsProcessed = getFile(KEY_APPDIR, |
806 |
[DIR_EXTENSIONS, |
807 |
FILE_INSTALLED_EXTENSIONS_PROCESSED]); |
808 |
this._manager = aManager; |
809 |
} |
810 |
|
811 |
nsInstalledExtensionReader.prototype = { |
812 |
_manager : null, |
813 |
_installedExtensions: null, |
814 |
|
815 |
read: function nsInstalledExtensionReader_read () |
816 |
{ |
817 |
if (this._installedExtensionsProcessed.exists()) |
818 |
return; |
819 |
|
820 |
if (!this._installedExtensions.exists()) { |
821 |
var defaultsList = getFile(KEY_DEFAULTS, [DIR_DEFAULTS_EXTENSIONS, FILE_INSTALLED_EXTENSIONS]); |
822 |
defaultsList.copyTo(getDir(KEY_APPDIR, [DIR_EXTENSIONS]), FILE_INSTALLED_EXTENSIONS); |
823 |
} |
824 |
|
825 |
var fis = Components.classes["@mozilla.org/network/file-input-stream;1"] |
826 |
.createInstance(Components.interfaces.nsIFileInputStream); |
827 |
fis.init(this._installedExtensions, -1, -1, false); |
828 |
var lis = fis.QueryInterface(Components.interfaces.nsILineInputStream); |
829 |
var line = { value: "" }; |
830 |
var more = false; |
831 |
var lines = []; |
832 |
do { |
833 |
more = lis.readLine(line); |
834 |
lines.push(line.value); |
835 |
} |
836 |
while (more); |
837 |
fis.close(); |
838 |
|
839 |
// Now that we've closed the stream we can remove all the files |
840 |
for (var i = 0; i < lines.length; ++i) |
841 |
this._parseLine(lines[i]); |
842 |
|
843 |
this._installedExtensions.moveTo(getDir(KEY_APPDIR, [DIR_EXTENSIONS]), |
844 |
FILE_INSTALLED_EXTENSIONS_PROCESSED); |
845 |
}, |
846 |
|
847 |
TOKEN_EXTENSION : "extension", |
848 |
TOKEN_THEME : "theme", |
849 |
|
850 |
_parseLine: function nsInstalledExtensionReader__parseLine (aLine) |
851 |
{ |
852 |
// extension,{GUID} or theme,{GUID} |
853 |
var parts = aLine.split(","); |
854 |
var manifest = getFileNoCreateDir(KEY_APPDIR, |
855 |
[DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]); |
856 |
if (parts.length != 2) |
857 |
return; |
858 |
|
859 |
if (manifest.exists()) { |
860 |
switch (parts[0]) { |
861 |
case this.TOKEN_EXTENSION: |
862 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_EXTENSION, manifest); |
863 |
break; |
864 |
case this.TOKEN_THEME: |
865 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_THEME, manifest); |
866 |
break; |
867 |
} |
868 |
} |
869 |
} |
870 |
}; |
871 |
|
872 |
/////////////////////////////////////////////////////////////////////////////// |
873 |
// |
874 |
// nsChromeRegistrationException |
875 |
// |
876 |
function nsChromeRegistrationException(aChromePath, aIsProfile, aFunctionName) |
877 |
{ |
878 |
this.chromePath = aChromePath; |
879 |
this.isProfile = aIsProfile; |
880 |
this.functionName = aFunctionName; |
881 |
} |
882 |
nsChromeRegistrationException.prototype = { |
883 |
chromePath : null, |
884 |
isProfile : true, |
885 |
functionName : null, |
886 |
extensionID : null |
887 |
}; |
888 |
|
889 |
/////////////////////////////////////////////////////////////////////////////// |
890 |
// |
891 |
// nsExtensionInstaller |
892 |
// |
893 |
function nsExtensionInstaller (aExtensionDS) |
894 |
{ |
895 |
this._extensionDS = aExtensionDS; |
896 |
|
897 |
this._provTypePackage = gRDF.GetResource(EM_NS("package")); |
898 |
this._provTypeSkin = gRDF.GetResource(EM_NS("skin")); |
899 |
this._provTypeLocale = gRDF.GetResource(EM_NS("locale")); |
900 |
this._fileProperty = gRDF.GetResource(EM_NS("file")); |
901 |
this._sourceResource = gRDF.GetResource("urn:mozilla:install-manifest"); |
902 |
} |
903 |
|
904 |
nsExtensionInstaller.prototype = { |
905 |
// Utility services and helpers |
906 |
_rdf : null, |
907 |
_writer : null, |
908 |
|
909 |
// Extension metadata |
910 |
_extensionID : null, |
911 |
_isProfile : true, |
912 |
_extDirKey : KEY_PROFILEDIR, |
913 |
|
914 |
// Source and target datasources |
915 |
_metadataDS : null, |
916 |
_extensionDS : null, |
917 |
|
918 |
// RDF objects and properties |
919 |
_provTypePackage : null, |
920 |
_provTypeSkin : null, |
921 |
_provTypeLocale : null, |
922 |
_sourceResource : null, |
923 |
_fileProperty : null, |
924 |
|
925 |
install: function nsExtensionInstaller_install (aExtensionID, aIsProfile) |
926 |
{ |
927 |
// Initialize the installer for this extension |
928 |
this._extensionID = aExtensionID; |
929 |
this._isProfile = aIsProfile; |
930 |
this._extDirKey = getDirKey(this._isProfile); |
931 |
|
932 |
// Create a logger to log install operations for uninstall |
933 |
this._writer = new nsInstallLogWriter(this._extensionID, this._isProfile); |
934 |
this._writer.open(); |
935 |
|
936 |
// Move files from the staging dir into the extension's final home. |
937 |
// This function generates uninstall log files and creates backups of |
938 |
// existing files. |
939 |
// XXXben - would like to add exception handling here to test for file |
940 |
// I/O failures on uninstall log so that if there's a crash |
941 |
// and the uninstall log is incorrectly/incompletely written |
942 |
// we can roll back. It's not critical that we do so right now |
943 |
// since if this throws the extension's chrome is never |
944 |
// registered. |
945 |
this._installExtensionFiles(); |
946 |
|
947 |
// Load the metadata datasource |
948 |
var metadataFile = getFileNoCreateDir(this._extDirKey, |
949 |
[DIR_EXTENSIONS, aExtensionID, FILE_INSTALL_MANIFEST]); |
950 |
|
951 |
this._metadataDS = getInstallManifest(metadataFile); |
952 |
if (!this._metadataDS) return; |
953 |
|
954 |
// Add metadata for the extension to the global extension metadata set |
955 |
this._extensionDS.addItemMetadata(this._extensionID, nsIUpdateItem.TYPE_EXTENSION, |
956 |
this._metadataDS, this._isProfile); |
957 |
|
958 |
// Register chrome packages for files specified in the extension manifest |
959 |
try { |
960 |
this._registerChromeForExtension(); |
961 |
} |
962 |
catch (e) { |
963 |
// Failed to register chrome, for any number of reasons - non-existent |
964 |
// contents.rdf file at the location specified, malformed contents.rdf, |
965 |
// etc. Set the "toBeUninstalled" flag so that the extension is uninstalled |
966 |
// properly during the subsequent uninstall pass in |
967 |
// |nsExtensionManager::_finalizeOperations| |
968 |
|
969 |
this._extensionDS.setItemProperty(this._extensionID, |
970 |
this._extensionDS._emR("toBeUninstalled"), |
971 |
this._extensionDS._emL("true"), this._isProfile, |
972 |
nsIUpdateItem.TYPE_EXTENSION); |
973 |
e.extensionID = this._extensionID; |
974 |
showMalformedRegistrationError(e); |
975 |
} |
976 |
|
977 |
this._writer.close(); |
978 |
|
979 |
// Unset the "toBeInstalled" flag |
980 |
this._extensionDS.setItemProperty(this._extensionID, |
981 |
this._extensionDS._emR("toBeInstalled"), |
982 |
null, this._isProfile, |
983 |
nsIUpdateItem.TYPE_EXTENSION); |
984 |
}, |
985 |
|
986 |
_installExtensionFiles: function nsExtensionInstaller__installExtensionFiles () |
987 |
{ |
988 |
var sourceXPI = getFileNoCreateDir(this._extDirKey, |
989 |
[DIR_EXTENSIONS, DIR_TEMP, |
990 |
this._extensionID, |
991 |
this._extensionID + ".xpi"]); |
992 |
if (!sourceXPI.exists()) |
993 |
return; |
994 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
995 |
.createInstance(Components.interfaces.nsIZipReader); |
996 |
zipReader.init(sourceXPI); |
997 |
zipReader.open(); |
998 |
|
999 |
var entries = zipReader.findEntries("*"); |
1000 |
while (entries.hasMoreElements()) { |
1001 |
var entry = entries.getNext().QueryInterface(Components.interfaces.nsIZipEntry); |
1002 |
|
1003 |
var parts = entry.name.split("/"); |
1004 |
var subDirs = [DIR_EXTENSIONS, this._extensionID]; |
1005 |
for (var i = 0; i < parts.length; ++i) |
1006 |
subDirs.push(parts[i]); |
1007 |
|
1008 |
var fileName = parts[parts.length-1]; |
1009 |
if (fileName != "") { |
1010 |
var targetFile = getFile(this._extDirKey, subDirs); |
1011 |
zipReader.extract(entry.name, targetFile); |
1012 |
this._writer.addFile(targetFile.QueryInterface(Components.interfaces.nsILocalFile)); |
1013 |
} |
1014 |
} |
1015 |
zipReader.close(); |
1016 |
// Kick off the extraction on a new thread, then join to wait for it to |
1017 |
// complete. |
1018 |
// (new nsJarFileExtractor(aZipReader.file, dir)).extract(); |
1019 |
|
1020 |
this._cleanUpStagedXPI(); |
1021 |
}, |
1022 |
|
1023 |
_cleanUpStagedXPI: function nsExtensionInstaller__cleanUpStagedXPI () |
1024 |
{ |
1025 |
var stageDir = getDir(this._extDirKey, |
1026 |
[DIR_EXTENSIONS, DIR_TEMP, this._extensionID]); |
1027 |
var sourceXPI = stageDir.clone(); |
1028 |
sourceXPI.append(this._extensionID + ".xpi"); |
1029 |
sourceXPI.remove(false); |
1030 |
|
1031 |
// Remove the extension's stage dir |
1032 |
if (!stageDir.directoryEntries.hasMoreElements()) |
1033 |
stageDir.remove(false); |
1034 |
|
1035 |
// If the parent "temp" dir is empty, remove it. |
1036 |
try { // XXXben |
1037 |
if (!stageDir.parent.directoryEntries.hasMoreElements()) |
1038 |
stageDir.parent.remove(false); |
1039 |
} |
1040 |
catch (e) { } |
1041 |
}, |
1042 |
|
1043 |
_registerChromeForExtension: function nsExtensionInstaller__registerChromeForExtension () |
1044 |
{ |
1045 |
// Enumerate the metadata datasource files collection and register chrome |
1046 |
// for each file, calling _registerChrome for each. |
1047 |
var chromeDir = getDir(this._extDirKey, |
1048 |
[DIR_EXTENSIONS, this._extensionID, DIR_CHROME]); |
1049 |
|
1050 |
var files = this._metadataDS.GetTargets(this._sourceResource, this._fileProperty, true); |
1051 |
while (files.hasMoreElements()) { |
1052 |
var file = files.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
1053 |
var chromeFile = chromeDir.clone(); |
1054 |
var fileName = file.Value.substr("urn:mozilla:extension:file:".length, file.Value.length); |
1055 |
chromeFile.append(fileName); |
1056 |
|
1057 |
var providers = [this._provTypePackage, this._provTypeSkin, this._provTypeLocale]; |
1058 |
for (var i = 0; i < providers.length; ++i) { |
1059 |
var items = this._metadataDS.GetTargets(file, providers[i], true); |
1060 |
while (items.hasMoreElements()) { |
1061 |
var item = items.getNext().QueryInterface(Components.interfaces.nsIRDFLiteral); |
1062 |
this._registerChrome(chromeFile, providers[i], item.Value); |
1063 |
} |
1064 |
} |
1065 |
} |
1066 |
}, |
1067 |
|
1068 |
_registerChrome: function nsExtensionInstaller__registerChrome (aFile, aChromeType, aPath) |
1069 |
{ |
1070 |
var fileURL = getURLSpecFromFile(aFile); |
1071 |
if (!aFile.isDirectory()) // .jar files |
1072 |
fileURL = "jar:" + fileURL + "!/" + aPath; |
1073 |
else // flat chrome hierarchies |
1074 |
fileURL = fileURL + aPath; |
1075 |
|
1076 |
var cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1077 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1078 |
var type; |
1079 |
if (aChromeType.EqualsNode(this._provTypePackage)) { |
1080 |
try { |
1081 |
cr.installPackage(fileURL, this._isProfile); |
1082 |
} |
1083 |
catch (e) { |
1084 |
throw new nsChromeRegistrationException(fileURL, this._isProfile, "installPackage"); |
1085 |
} |
1086 |
type = this._writer.CHROME_TYPE_PACKAGE; |
1087 |
} |
1088 |
else if (aChromeType.EqualsNode(this._provTypeSkin)) { |
1089 |
try { |
1090 |
cr.installSkin(fileURL, this._isProfile, true); // Extension skins can execute scripts |
1091 |
} |
1092 |
catch (e) { |
1093 |
throw new nsChromeRegistrationException(fileURL, this._isProfile, "installSkin"); |
1094 |
} |
1095 |
type = this._writer.CHROME_TYPE_SKIN; |
1096 |
} |
1097 |
else if (aChromeType.EqualsNode(this._provTypeLocale)) { |
1098 |
try { |
1099 |
cr.installLocale(fileURL, this._isProfile); |
1100 |
} |
1101 |
catch (e) { |
1102 |
throw new nsChromeRegistrationException(fileURL, this._isProfile, "installLocale"); |
1103 |
} |
1104 |
type = this._writer.CHROME_TYPE_LOCALE; |
1105 |
} |
1106 |
var providerNames = this._getProviderNames(fileURL, type); |
1107 |
for (var i = 0; i < providerNames.length; ++i) { |
1108 |
this._writer.registerChrome(providerNames[i], type, this._isProfile); |
1109 |
|
1110 |
// Make sure we enable overlays for this extension so that if it is disabled by |
1111 |
// mismatch checking, installing a newer version (as opposed to enabling as a |
1112 |
// result of a version compatibility update) makes the extension's overlaid UI |
1113 |
// appear immediately. |
1114 |
cr.setAllowOverlaysForPackage(providerNames[i], true); |
1115 |
} |
1116 |
}, |
1117 |
|
1118 |
_getProviderNames: function nsExtensionInstaller__getProviderNames (aBaseURL, aType) |
1119 |
{ |
1120 |
if (aBaseURL.charAt(aBaseURL.length-1) != "/") |
1121 |
aBaseURL += "/"; |
1122 |
var manifestURL = aBaseURL + "contents.rdf"; |
1123 |
|
1124 |
var providerNames = []; |
1125 |
|
1126 |
try { |
1127 |
// Discover the list of provider names to register for the location |
1128 |
// specified in the provider arc. |
1129 |
// |
1130 |
// The contents.rdf file will look like this: |
1131 |
// |
1132 |
// <RDF:Seq about="urn:mozilla:<type>:root"> |
1133 |
// <RDF:li resource="urn:mozilla:<type>:itemName1"/> |
1134 |
// <RDF:li resource="urn:mozilla:<type>:itemName2"/> |
1135 |
// .. |
1136 |
// </RDF:Seq> |
1137 |
// |
1138 |
// We need to explicitly walk this list here, we don't need to do so |
1139 |
// for nsIXULChromeRegistry's |installPackage| method since that does |
1140 |
// this same thing itself. |
1141 |
|
1142 |
var ds = gRDF.GetDataSourceBlocking(manifestURL); |
1143 |
|
1144 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
1145 |
.createInstance(Components.interfaces.nsIRDFContainer); |
1146 |
ctr.Init(ds, gRDF.GetResource("urn:mozilla:" + aType + ":root")); |
1147 |
|
1148 |
var items = ctr.GetElements(); |
1149 |
while (items.hasMoreElements()) { |
1150 |
var item = items.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
1151 |
|
1152 |
var nameArc = gRDF.GetResource(CHROME_NS("name")); |
1153 |
var name; |
1154 |
if (ds.hasArcOut(item, nameArc)) |
1155 |
name = stringData(ds.GetTarget(item, nameArc, true)); |
1156 |
else { |
1157 |
var parts = item.Value.split(":"); |
1158 |
name = parts[parts.length-1]; |
1159 |
} |
1160 |
providerNames.push(name); |
1161 |
} |
1162 |
} |
1163 |
catch (e) { } |
1164 |
|
1165 |
return providerNames; |
1166 |
} |
1167 |
}; |
1168 |
|
1169 |
/////////////////////////////////////////////////////////////////////////////// |
1170 |
// |
1171 |
// nsExtensionUninstaller |
1172 |
// |
1173 |
function nsExtensionUninstaller(aExtensionDS) |
1174 |
{ |
1175 |
this._cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1176 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1177 |
this._extensionDS = aExtensionDS; |
1178 |
} |
1179 |
|
1180 |
nsExtensionUninstaller.prototype = { |
1181 |
_extensionDS : null, |
1182 |
_cr : null, |
1183 |
_isProfile : true, |
1184 |
_extDirKey : "", |
1185 |
_extensionsDir: null, |
1186 |
_extensionID : "", |
1187 |
|
1188 |
uninstall: function nsExtensionUninstaller_uninstall (aExtensionID, aIsProfile) |
1189 |
{ |
1190 |
// Initialize the installer for this extension |
1191 |
this._extensionID = aExtensionID; |
1192 |
this._isProfile = aIsProfile; |
1193 |
this._extDirKey = getDirKey(this._isProfile); |
1194 |
this._extensionsDir = getDir(this._extDirKey, [DIR_EXTENSIONS]); |
1195 |
|
1196 |
// Create a logger to log install operations for uninstall |
1197 |
this._reader = new nsInstallLogReader(this._extensionID, |
1198 |
this._isProfile, |
1199 |
this); |
1200 |
try { // XXXben don't let errors stop us. |
1201 |
this._reader.read(); |
1202 |
|
1203 |
// Now remove the uninstall log file. |
1204 |
this._removeFile(this._reader.uninstallLog); |
1205 |
} |
1206 |
catch (e) { |
1207 |
dump("******* Failed to remove extension uninstall log, with exception = " + e + "\n"); |
1208 |
} |
1209 |
|
1210 |
// Unset the "toBeUninstalled" flag |
1211 |
this._extensionDS.setItemProperty(this._extensionID, |
1212 |
this._extensionDS._emR("toBeUninstalled"), |
1213 |
null, this._isProfile, |
1214 |
nsIUpdateItem.TYPE_EXTENSION); |
1215 |
}, |
1216 |
|
1217 |
/////////////////////////////////////////////////////////////////////////////// |
1218 |
// nsIInstallLogReaderListener |
1219 |
onAddFile: function nsExtensionUninstaller_onAddFile (aFile) |
1220 |
{ |
1221 |
this._removeFile(aFile); |
1222 |
}, |
1223 |
|
1224 |
_removeFile: function nsExtensionUninstaller__removeFile (aFile) |
1225 |
{ |
1226 |
if (aFile.exists()) { |
1227 |
aFile.remove(false); |
1228 |
|
1229 |
// Clean up the parent hierarchy if possible |
1230 |
var parent = aFile.parent; |
1231 |
var e = parent.directoryEntries; |
1232 |
if (!e.hasMoreElements() && |
1233 |
!parent.equals(this._extensionsDir)) // stop at the extensions dir |
1234 |
this._removeFile(parent); |
1235 |
} |
1236 |
}, |
1237 |
|
1238 |
// XXXben - maybe we should find a way to |
1239 |
_packagesForExtension: [], |
1240 |
|
1241 |
onRegisterChrome: function nsExtensionUninstaller_onRegisterChrome (aProviderName, aFile, aChromeType, aIsProfile) |
1242 |
{ |
1243 |
switch (aChromeType) { |
1244 |
case this._reader.CHROME_TYPE_PACKAGE: |
1245 |
this._packagesForExtension.push(aProviderName); |
1246 |
this._cr.uninstallPackage(aProviderName, aIsProfile) |
1247 |
break; |
1248 |
case this._reader.CHROME_TYPE_SKIN: |
1249 |
for (var i = 0; i < this._packagesForExtension.length; ++i) { |
1250 |
this._cr.deselectSkinForPackage(aProviderName, |
1251 |
this._packagesForExtension[i], |
1252 |
aIsProfile); |
1253 |
} |
1254 |
// this._cr.uninstallSkin(aProviderName, aIsProfile) |
1255 |
break; |
1256 |
case this._reader.CHROME_TYPE_LOCALE: |
1257 |
for (var i = 0; i < this._packagesForExtension.length; ++i) { |
1258 |
this._cr.deselectLocaleForPackage(aProviderName, |
1259 |
this._packagesForExtension[i], |
1260 |
aIsProfile); |
1261 |
} |
1262 |
// this._cr.uninstallLocale(aProviderName, aIsProfile) |
1263 |
break; |
1264 |
} |
1265 |
} |
1266 |
}; |
1267 |
|
1268 |
/////////////////////////////////////////////////////////////////////////////// |
1269 |
// |
1270 |
// nsExtensionEnabler |
1271 |
// |
1272 |
function nsExtensionEnabler(aExtensionDS) |
1273 |
{ |
1274 |
this._cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1275 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1276 |
this._extensionDS = aExtensionDS; |
1277 |
} |
1278 |
|
1279 |
nsExtensionEnabler.prototype = { |
1280 |
_extensionDS : null, |
1281 |
_cr : null, |
1282 |
_enable : true, |
1283 |
_isProfile : true, |
1284 |
_extDirKey : "", |
1285 |
_extensionsDir: null, |
1286 |
|
1287 |
enable: function nsExtensionEnabler_enable (aExtensionID, aIsProfile, aDisable) |
1288 |
{ |
1289 |
// Initialize the installer for this extension |
1290 |
this._enable = !aDisable; |
1291 |
this._extensionID = aExtensionID; |
1292 |
this._isProfile = aIsProfile; |
1293 |
this._extDirKey = getDirKey(this._isProfile); |
1294 |
this._extensionsDir = getDir(this._extDirKey, [DIR_EXTENSIONS]); |
1295 |
|
1296 |
// Create a logger to log install operations for uninstall |
1297 |
this._reader = new nsInstallLogReader(this._extensionID, |
1298 |
this._isProfile, |
1299 |
this); |
1300 |
this._reader.read(); |
1301 |
}, |
1302 |
|
1303 |
onRegisterChrome: function nsExtensionEnabler_onRegisterChrome (aProviderName, aFile, aChromeType, aIsProfile) |
1304 |
{ |
1305 |
if (aChromeType == this._reader.CHROME_TYPE_PACKAGE) |
1306 |
this._cr.setAllowOverlaysForPackage(aProviderName, this._enable); |
1307 |
}, |
1308 |
|
1309 |
onAddFile: function nsExtensionEnabler_onAddFile (aFile) |
1310 |
{ |
1311 |
} |
1312 |
}; |
1313 |
|
1314 |
/////////////////////////////////////////////////////////////////////////////// |
1315 |
// |
1316 |
// nsThemeInstaller |
1317 |
// |
1318 |
function nsThemeInstaller(aExtensionDS, aManager) |
1319 |
{ |
1320 |
this._extensionDS = aExtensionDS; |
1321 |
this._em = aManager; |
1322 |
} |
1323 |
|
1324 |
nsThemeInstaller.prototype = { |
1325 |
_extensionDS : null, |
1326 |
_isProfile : true, |
1327 |
_extDirKey : "", |
1328 |
|
1329 |
install: function nsThemeInstaller_install (aJARFile, aIsProfile) |
1330 |
{ |
1331 |
var extDirKey = getDirKey(aIsProfile); |
1332 |
|
1333 |
// Since we're installing a "new type" theme, we assume a file layout |
1334 |
// within the JAR like so: |
1335 |
// foo.jar/ |
1336 |
// install.rdf <-- Theme Manager metadata |
1337 |
// contents.rdf <-- Chrome Registry metadata |
1338 |
// browser/ |
1339 |
// global/ |
1340 |
// ... |
1341 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
1342 |
.createInstance(Components.interfaces.nsIZipReader); |
1343 |
zipReader.init(aJARFile); |
1344 |
zipReader.open(); |
1345 |
|
1346 |
try { |
1347 |
zipReader.getEntry(FILE_INSTALL_MANIFEST); |
1348 |
} |
1349 |
catch (e) { |
1350 |
// If the zip reader returned an error code here it means that the install.rdf |
1351 |
// file was not found in the theme jar file - i.e. it was an old style theme. |
1352 |
// There's no reason for people to be installing or maintaining such themes |
1353 |
// anymore as there is no practical use for them, so we should throw an error |
1354 |
// here and bail. |
1355 |
try { |
1356 |
zipReader.getEntry(FILE_CHROME_MANIFEST); |
1357 |
|
1358 |
// Load the contents.rdf file from the .jar file if present and show a detailed |
1359 |
// error. |
1360 |
var tempChromeManifest = getFile(extDirKey, |
1361 |
[DIR_EXTENSIONS, DIR_TEMP, FILE_CHROME_MANIFEST]); |
1362 |
zipReader.extract(FILE_CHROME_MANIFEST, tempChromeManifest); |
1363 |
var rdfs = Components.classes["@mozilla.org/rdf/rdf-service;1"] |
1364 |
.getService(Components.interfaces.nsIRDFService); |
1365 |
showOldThemeError(rdfs.GetDataSourceBlocking(getURLSpecFromFile(tempChromeManifest))); |
1366 |
tempChromeManifest.remove(false); |
1367 |
} |
1368 |
catch (e) { |
1369 |
showMissingFileError(aJARFile, FILE_CHROME_MANIFEST); |
1370 |
} |
1371 |
} |
1372 |
|
1373 |
var themeManifest = getFile(extDirKey, |
1374 |
[DIR_EXTENSIONS, DIR_TEMP, getRandomFileName("install", "rdf")]); |
1375 |
zipReader.extract(FILE_INSTALL_MANIFEST, themeManifest); |
1376 |
|
1377 |
var chromeManifest = getFile(extDirKey, |
1378 |
[DIR_EXTENSIONS, DIR_TEMP, FILE_CHROME_MANIFEST]); |
1379 |
zipReader.extract(FILE_CHROME_MANIFEST, chromeManifest); |
1380 |
|
1381 |
var themeMetadata = getInstallManifest(themeManifest); |
1382 |
if (!themeMetadata) return; |
1383 |
var chromeMetadata = gRDF.GetDataSourceBlocking(getURLSpecFromFile(chromeManifest)); |
1384 |
|
1385 |
// We do a basic version check first just to make sure we somehow weren't |
1386 |
// tricked into installing an incompatible theme... |
1387 |
this._themeID = this._em.canInstallItem(themeMetadata); |
1388 |
if (isNaN(parseInt(this._themeID))) { |
1389 |
var canInstall = true; |
1390 |
|
1391 |
// Copy the file to its final location |
1392 |
var destinationDir = getDir(extDirKey, |
1393 |
[DIR_EXTENSIONS, this._themeID, DIR_CHROME]); |
1394 |
var destinationFile = destinationDir.clone(); |
1395 |
destinationFile.append(aJARFile.leafName); |
1396 |
if (destinationFile.exists()) |
1397 |
destinationFile.remove(false); |
1398 |
aJARFile.copyTo(destinationDir, aJARFile.leafName); |
1399 |
|
1400 |
var nameArc = gRDF.GetResource(CHROME_NS("name")); |
1401 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
1402 |
.createInstance(Components.interfaces.nsIRDFContainer); |
1403 |
ctr.Init(chromeMetadata, gRDF.GetResource("urn:mozilla:skin:root")); |
1404 |
|
1405 |
var elts = ctr.GetElements(); |
1406 |
while (elts.hasMoreElements()) { |
1407 |
var elt = elts.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
1408 |
var chromeSkinPrefix = "urn:mozilla:skin:"; |
1409 |
if (elt.Value.substr(0, chromeSkinPrefix.length) == chromeSkinPrefix) { |
1410 |
var name = chromeMetadata.GetTarget(elt, nameArc, true); |
1411 |
|
1412 |
// Check to see if the em:internalName property on the theme install |
1413 |
// manifest matches the chrome:name property on the theme's CR entry. |
1414 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
1415 |
var internalName = themeMetadata.GetTarget(manifestRoot, |
1416 |
gRDF.GetResource(EM_NS("internalName")), |
1417 |
true); |
1418 |
if (!internalName.EqualsNode(name)) { |
1419 |
var consoleService = Components.classes["@mozilla.org/consoleservice;1"] |
1420 |
.getService(Components.interfaces.nsIConsoleService); |
1421 |
consoleService.logStringMessage("Could not install theme because chrome:name arc in " + |
1422 |
"the theme's contents.rdf file (" + stringData(name) + |
1423 |
") does not match the em:internalName arc in the theme's " + |
1424 |
"install.rdf file (" + stringData(internalName) + ")"); |
1425 |
var fileURL = getURLSpecFromFile(themeManifest); |
1426 |
var uri = Components.classes["@mozilla.org/network/standard-url;1"] |
1427 |
.createInstance(Components.interfaces.nsIURI); |
1428 |
uri.spec = fileURL; |
1429 |
var url = uri.QueryInterface(Components.interfaces.nsIURL); |
1430 |
showMalformedError(url.fileName); |
1431 |
|
1432 |
destinationFile.remove(false); |
1433 |
destinationDir.remove(true); |
1434 |
this._em._cleanDirs(); |
1435 |
|
1436 |
canInstall = false; |
1437 |
} |
1438 |
|
1439 |
if (canInstall) { |
1440 |
name = name.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
1441 |
|
1442 |
// Create a logger to log install operations for uninstall |
1443 |
this._writer = new nsInstallLogWriter(this._themeID, aIsProfile); |
1444 |
this._writer.open(); |
1445 |
this._writer.installSkin(name, aIsProfile); |
1446 |
} |
1447 |
} |
1448 |
} |
1449 |
|
1450 |
if (canInstall) { |
1451 |
this._writer.addFile(destinationFile.QueryInterface(Components.interfaces.nsILocalFile)); |
1452 |
this._writer.close(); |
1453 |
|
1454 |
// Use the Chrome Registry API to install the theme there |
1455 |
var filePath = "jar:" + getURLSpecFromFile(destinationFile) + "!/"; |
1456 |
var cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1457 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1458 |
cr.installSkin(filePath, aIsProfile, false); |
1459 |
|
1460 |
// Insert the theme into the theme list. |
1461 |
this._extensionDS.insertForthcomingItem(this._themeID, nsIUpdateItem.TYPE_THEME, |
1462 |
aIsProfile); |
1463 |
|
1464 |
// Add metadata for the extension to the global extension metadata set |
1465 |
this._extensionDS.addItemMetadata(this._themeID, nsIUpdateItem.TYPE_THEME, |
1466 |
themeMetadata, aIsProfile); |
1467 |
} |
1468 |
|
1469 |
this._extensionDS.doneInstallingTheme(this._themeID); |
1470 |
} |
1471 |
else if (this._themeID == 0) |
1472 |
showIncompatibleError(themeMetadata); |
1473 |
|
1474 |
zipReader.close(); |
1475 |
themeManifest.remove(false); |
1476 |
chromeManifest.remove(false); |
1477 |
} |
1478 |
}; |
1479 |
|
1480 |
/////////////////////////////////////////////////////////////////////////////// |
1481 |
// |
1482 |
// nsThemeUninstaller |
1483 |
// |
1484 |
function nsThemeUninstaller(aExtensionDS) |
1485 |
{ |
1486 |
this._cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1487 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1488 |
} |
1489 |
|
1490 |
nsThemeUninstaller.prototype = { |
1491 |
_extensionsDir : null, |
1492 |
|
1493 |
uninstall: function nsThemeUninstaller_uninstall (aThemeID, aIsProfile) |
1494 |
{ |
1495 |
this._extensionsDir = getDir(getDirKey(aIsProfile), [DIR_EXTENSIONS]); |
1496 |
|
1497 |
// Create a logger to log install operations for uninstall |
1498 |
this._reader = new nsInstallLogReader(aThemeID, aIsProfile, this); |
1499 |
try { // XXXben don't let errors stop us. |
1500 |
this._reader.read(); |
1501 |
|
1502 |
// Now remove the uninstall log file. |
1503 |
this._removeFile(this._reader.uninstallLog); |
1504 |
} |
1505 |
catch (e) { |
1506 |
dump("******* Failed to remove theme uninstall log, with exception = " + e + "\n"); |
1507 |
} |
1508 |
}, |
1509 |
|
1510 |
/////////////////////////////////////////////////////////////////////////////// |
1511 |
// nsIInstallLogReaderListener |
1512 |
onAddFile: function nsThemeUninstaller_onAddFile (aFile) |
1513 |
{ |
1514 |
this._removeFile(aFile); |
1515 |
}, |
1516 |
|
1517 |
_removeFile: function nsThemeUninstaller__removeFile (aFile) |
1518 |
{ |
1519 |
if (aFile.exists()) { |
1520 |
aFile.remove(false); |
1521 |
|
1522 |
// Clean up the parent hierarchy if possible |
1523 |
var parent = aFile.parent; |
1524 |
var e = parent.directoryEntries; |
1525 |
if (!e.hasMoreElements() && |
1526 |
!parent.equals(this._extensionsDir)) // stop at the extensions dir |
1527 |
this._removeFile(parent); |
1528 |
} |
1529 |
}, |
1530 |
|
1531 |
onInstallSkin: function nsThemeUninstaller_onInstallSkin (aSkinName, aIsProfile) |
1532 |
{ |
1533 |
this._cr.uninstallSkin(aSkinName, aIsProfile); |
1534 |
} |
1535 |
}; |
1536 |
|
1537 |
/////////////////////////////////////////////////////////////////////////////// |
1538 |
// |
1539 |
// nsExtensionManager |
1540 |
// |
1541 |
function nsExtensionManager() |
1542 |
{ |
1543 |
gPref = Components.classes["@mozilla.org/preferences-service;1"] |
1544 |
.getService(Components.interfaces.nsIPrefBranch); |
1545 |
gRDF = Components.classes["@mozilla.org/rdf/rdf-service;1"] |
1546 |
.getService(Components.interfaces.nsIRDFService); |
1547 |
gOS = Components.classes["@mozilla.org/observer-service;1"] |
1548 |
.getService(Components.interfaces.nsIObserverService); |
1549 |
|
1550 |
gOS.addObserver(this, "xpcom-shutdown", false); |
1551 |
|
1552 |
ensureExtensionsFiles(false); |
1553 |
} |
1554 |
|
1555 |
nsExtensionManager.prototype = { |
1556 |
_extInstaller : null, |
1557 |
_extUninstaller : null, |
1558 |
_extEnabler : null, |
1559 |
_started : false, |
1560 |
|
1561 |
///////////////////////////////////////////////////////////////////////////// |
1562 |
// nsIObserver |
1563 |
observe: function nsExtensionManager_observe (aSubject, aTopic, aData) |
1564 |
{ |
1565 |
switch (aTopic) { |
1566 |
case "quit-application-requested": |
1567 |
if (this._downloadCount > 0) { |
1568 |
var result; |
1569 |
result = this._confirmCancelDownloads(this._downloadCount, |
1570 |
"quitCancelDownloadsAlertTitle", |
1571 |
"quitCancelDownloadsAlertMsgMultiple", |
1572 |
"quitCancelDownloadsAlertMsg", |
1573 |
"dontQuitButtonWin"); |
1574 |
if (!result) |
1575 |
this._cancelDownloads(); |
1576 |
var PRBool = aSubject.QueryInterface(Components.interfaces.nsISupportsPRBool); |
1577 |
PRBool.data = result; |
1578 |
} |
1579 |
break; |
1580 |
case "offline-requested": |
1581 |
if (this._downloadCount > 0) { |
1582 |
result = this._confirmCancelDownloads(this._downloadCount, |
1583 |
"offlineCancelDownloadsAlertTitle", |
1584 |
"offlineCancelDownloadsAlertMsgMultiple", |
1585 |
"offlineCancelDownloadsAlertMsg", |
1586 |
"dontGoOfflineButton"); |
1587 |
if (!result) |
1588 |
this._cancelDownloads(); |
1589 |
var PRBool = aSubject.QueryInterface(Components.interfaces.nsISupportsPRBool); |
1590 |
PRBool.data = result; |
1591 |
} |
1592 |
break; |
1593 |
case "xpcom-shutdown": |
1594 |
gOS.removeObserver(this, "xpcom-shutdown"); |
1595 |
|
1596 |
// Release strongly held services. |
1597 |
gPref = null; |
1598 |
gRDF = null; |
1599 |
gOS = null; |
1600 |
gVersionChecker = null; |
1601 |
break; |
1602 |
} |
1603 |
}, |
1604 |
|
1605 |
start: function nsExtensionManager_start (aIsDirty) |
1606 |
{ |
1607 |
this._started = true; |
1608 |
|
1609 |
var needsRestart = false; |
1610 |
|
1611 |
ensureExtensionsFiles(true); |
1612 |
|
1613 |
// Somehow the component list went away, and for that reason the new one |
1614 |
// generated by this function is going to result in a different compreg. |
1615 |
// We must force a restart. |
1616 |
var componentList = getFile(KEY_PROFILEDIR, [FILE_COMPONENT_MANIFEST]); |
1617 |
if (!componentList.exists()) |
1618 |
needsRestart = true; |
1619 |
|
1620 |
// XXXben - a bit of a hack - clean up any empty dirs that may not have been |
1621 |
// properly removed by [un]install... I should really investigate those |
1622 |
// cases to see what is stopping these dirs from being removed, but no |
1623 |
// time now. |
1624 |
this._cleanDirs(); |
1625 |
|
1626 |
var cmdLineSvc = Components.classes["@mozilla.org/appshell/commandLineService;1"] |
1627 |
.getService(Components.interfaces.nsICmdLineService); |
1628 |
var safeMode = cmdLineSvc.getCmdLineValue("-safe-mode") != null; |
1629 |
if (!safeMode) { |
1630 |
var wasInSafeModeFile = getFile(KEY_PROFILEDIR, [DIR_EXTENSIONS, FILE_WASINSAFEMODE]); |
1631 |
if (wasInSafeModeFile.exists()) { |
1632 |
// Clean up after we were in safe mode |
1633 |
var win = this._showProgressWindow(); |
1634 |
try { |
1635 |
this._ensureDS(); |
1636 |
|
1637 |
// Retrieve the skin that was selected prior to entering safe mode |
1638 |
// and select it. |
1639 |
var lastSelectedSkin = KEY_DEFAULT_THEME; |
1640 |
try { |
1641 |
lastSelectedSkin = gPref.getCharPref(PREF_EM_LAST_SELECTED_SKIN); |
1642 |
gPref.clearUserPref(PREF_EM_LAST_SELECTED_SKIN); |
1643 |
gPref.setCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN, lastSelectedSkin); |
1644 |
} |
1645 |
catch (e) { } |
1646 |
|
1647 |
// Walk the list of extensions and re-activate overlays for packages |
1648 |
// that aren't disabled. |
1649 |
var items = this._ds.getItemsWithFlagUnset("disabled", nsIUpdateItem.TYPE_EXTENSION); |
1650 |
for (var i = 0; i < items.length; ++i) |
1651 |
this._finalizeEnableDisable(items[i], false); |
1652 |
|
1653 |
wasInSafeModeFile.remove(false); |
1654 |
|
1655 |
this._writeDefaults(true); |
1656 |
try { |
1657 |
this._writeDefaults(false); |
1658 |
} |
1659 |
catch (e) { } |
1660 |
} |
1661 |
catch (e) { |
1662 |
dump("*** nsExtensionManager::start - failure, catching exception so finalize window can close = " + e + "\n"); |
1663 |
} |
1664 |
win.close(); |
1665 |
|
1666 |
needsRestart = true; |
1667 |
} |
1668 |
|
1669 |
if (aIsDirty) |
1670 |
needsRestart = this._finishOperations(); |
1671 |
} |
1672 |
else { |
1673 |
var win = this._showProgressWindow(); |
1674 |
try { |
1675 |
// Enter safe mode |
1676 |
this._ensureDS(); |
1677 |
|
1678 |
// Save the current theme (assumed to be the theme that styles the global |
1679 |
// package) and re-select the default theme ("classic/1.0") |
1680 |
if (!gPref.prefHasUserValue(PREF_EM_LAST_SELECTED_SKIN)) { |
1681 |
gPref.setCharPref(PREF_EM_LAST_SELECTED_SKIN, |
1682 |
gPref.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN)); |
1683 |
if (gPref.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN)) |
1684 |
gPref.clearUserPref(PREF_GENERAL_SKINS_SELECTEDSKIN); |
1685 |
} |
1686 |
|
1687 |
var items = this._ds.getItemList(null, nsIUpdateItem.TYPE_EXTENSION, {}); |
1688 |
for (var i = 0; i < items.length; ++i) |
1689 |
this._finalizeEnableDisable(items[i].id, true); |
1690 |
|
1691 |
this._ds.safeMode = true; |
1692 |
|
1693 |
this._writeDefaults(true); |
1694 |
try { |
1695 |
this._writeDefaults(false); |
1696 |
} |
1697 |
catch (e) { } |
1698 |
|
1699 |
needsRestart = true; |
1700 |
|
1701 |
var wasInSafeModeFile = getFile(KEY_PROFILEDIR, [DIR_EXTENSIONS, FILE_WASINSAFEMODE]); |
1702 |
if (!wasInSafeModeFile.exists()) |
1703 |
wasInSafeModeFile.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644); |
1704 |
else { |
1705 |
// If the "Safe Mode" file already exists, then we are in the second launch of an |
1706 |
// app launched with -safe-mode and so we don't want to provoke any further |
1707 |
// restarts or re-create the file, just continue starting normally. |
1708 |
needsRestart = false; |
1709 |
} |
1710 |
} |
1711 |
catch (e) { |
1712 |
dump("*** nsExtensionManager::start - (safe mode) failure, catching exception so finalize window can close = " + e + "\n"); |
1713 |
} |
1714 |
win.close(); |
1715 |
|
1716 |
} |
1717 |
return needsRestart; |
1718 |
}, |
1719 |
|
1720 |
handleCommandLineArgs: function nsExtensionManager_handleCommandLineArgs () |
1721 |
{ |
1722 |
var cmdLineSvc = Components.classes["@mozilla.org/appshell/commandLineService;1"] |
1723 |
.getService(Components.interfaces.nsICmdLineService); |
1724 |
var globalExtension = cmdLineSvc.getCmdLineValue("-install-global-extension"); |
1725 |
if (globalExtension) |
1726 |
this._checkForGlobalInstalls(globalExtension, nsIUpdateItem.TYPE_EXTENSION); |
1727 |
|
1728 |
var globalTheme = cmdLineSvc.getCmdLineValue("-install-global-theme"); |
1729 |
if (globalTheme) |
1730 |
this._checkForGlobalInstalls(globalTheme, nsIUpdateItem.TYPE_THEME); |
1731 |
|
1732 |
var showList = cmdLineSvc.getCmdLineValue("-list-global-items"); |
1733 |
if (showList) |
1734 |
this._showGlobalItemList(); |
1735 |
|
1736 |
var locked = cmdLineSvc.getCmdLineValue("-lock-item"); |
1737 |
if (locked) { |
1738 |
this._ensureDS(); |
1739 |
this._ds.lockUnlockItem(locked, true); |
1740 |
} |
1741 |
|
1742 |
var unlocked = cmdLineSvc.getCmdLineValue("-unlock-item"); |
1743 |
if (unlocked) { |
1744 |
this._ensureDS(); |
1745 |
this._ds.lockUnlockItem(unlocked, false); |
1746 |
} |
1747 |
|
1748 |
this._finishOperations(); |
1749 |
}, |
1750 |
|
1751 |
register: function nsExtensionManager_register () |
1752 |
{ |
1753 |
if (!this._started) { |
1754 |
// Loads the datasource and installs any pre-configured items. |
1755 |
this._ds = new nsExtensionsDataSource(); |
1756 |
this._ds.loadExtensions(false); |
1757 |
|
1758 |
// Write bin/extensions/Extensions.rdf |
1759 |
// bin/extensions/installed-extensions-processed.txt |
1760 |
(new nsInstalledExtensionReader(this)).read(); |
1761 |
|
1762 |
// Write bin/components.ini |
1763 |
var manifest = getFile(KEY_APPDIR, [FILE_COMPONENT_MANIFEST]); |
1764 |
this._writeProfileFile(manifest, this._getComponentsDir, false); |
1765 |
|
1766 |
// Update the Defaults Manifest |
1767 |
this._writeDefaults(false); |
1768 |
} |
1769 |
}, |
1770 |
|
1771 |
_cancelDownloads: function nsExtensionManager__cancelDownloads () |
1772 |
{ |
1773 |
for (var i = 0; i < this._transactions.length; ++i) |
1774 |
gOS.notifyObservers(this._transactions[i], "xpinstall-progress", "cancel"); |
1775 |
gOS.removeObserver(this, "offline-requested"); |
1776 |
gOS.removeObserver(this, "quit-application-requested"); |
1777 |
|
1778 |
this._removeAllDownloads(); |
1779 |
}, |
1780 |
|
1781 |
_confirmCancelDownloads: function nsExtensionManager__confirmCancelDownloads(aCount, |
1782 |
aTitle, aCancelMessageMultiple, aCancelMessageSingle, aDontCancelButton) |
1783 |
{ |
1784 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
1785 |
.getService(Components.interfaces.nsIStringBundleService); |
1786 |
var bundle = sbs.createBundle("chrome://mozapps/locale/downloads/downloads.properties"); |
1787 |
var title = bundle.GetStringFromName(aTitle); |
1788 |
var message, quitButton; |
1789 |
if (aCount > 1) { |
1790 |
message = bundle.formatStringFromName(aCancelMessageMultiple, [aCount], 1); |
1791 |
quitButton = bundle.formatStringFromName("cancelDownloadsOKTextMultiple", [aCount], 1); |
1792 |
} |
1793 |
else { |
1794 |
message = bundle.GetStringFromName(aCancelMessageSingle); |
1795 |
quitButton = bundle.GetStringFromName("cancelDownloadsOKText"); |
1796 |
} |
1797 |
var dontQuitButton = bundle.GetStringFromName(aDontCancelButton); |
1798 |
|
1799 |
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] |
1800 |
.getService(Components.interfaces.nsIWindowMediator); |
1801 |
var win = wm.getMostRecentWindow("Extension:Manager"); |
1802 |
const nsIPromptService = Components.interfaces.nsIPromptService; |
1803 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
1804 |
.getService(nsIPromptService); |
1805 |
var flags = (nsIPromptService.BUTTON_TITLE_IS_STRING * nsIPromptService.BUTTON_POS_0) + |
1806 |
(nsIPromptService.BUTTON_TITLE_IS_STRING * nsIPromptService.BUTTON_POS_1); |
1807 |
var rv = ps.confirmEx(win, title, message, flags, quitButton, dontQuitButton, null, null, { }); |
1808 |
return rv == 1; |
1809 |
}, |
1810 |
|
1811 |
// This function checks for and disables any "old-style" extensions |
1812 |
// from Firefox 0.8 and earlier created using the "chrome:extension=true" flag. |
1813 |
_disableObsoleteExtensions: function nsExtensionManager__disableObsoleteExtensions () |
1814 |
{ |
1815 |
if (!gPref.prefHasUserValue(PREF_EM_DISABLEDOBSOLETE) || !gPref.getBoolPref(PREF_EM_DISABLEDOBSOLETE)) { |
1816 |
var win = this._showProgressWindow(); |
1817 |
try { |
1818 |
var cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
1819 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
1820 |
var crDS = gRDF.GetDataSource("rdf:chrome"); |
1821 |
var disabled = false; |
1822 |
var sources = crDS.GetSources(gRDF.GetResource(CHROME_NS("extension")), gRDF.GetLiteral("true"), true); |
1823 |
while (sources.hasMoreElements()) { |
1824 |
disabled = true; |
1825 |
|
1826 |
var source = sources.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
1827 |
var name = crDS.GetTarget(source, gRDF.GetResource(CHROME_NS("name")), true); |
1828 |
if (name) { |
1829 |
name = name.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
1830 |
cr.setAllowOverlaysForPackage(name, false); |
1831 |
} |
1832 |
} |
1833 |
|
1834 |
// Re-select the default theme to prevent any incompatibilities with old-style |
1835 |
// themes. |
1836 |
cr.selectSkin(KEY_DEFAULT_THEME, true); |
1837 |
} |
1838 |
catch (e) { |
1839 |
// dump("*** nsExtensionManager::_disableObsoleteExtensions - failure, catching exception so finalize window can close\n"); |
1840 |
} |
1841 |
win.close(); |
1842 |
|
1843 |
if (disabled) { |
1844 |
const nsIPromptService = Components.interfaces.nsIPromptService; |
1845 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
1846 |
.getService(nsIPromptService); |
1847 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
1848 |
.getService(Components.interfaces.nsIStringBundleService); |
1849 |
var bundle = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
1850 |
var title = bundle.GetStringFromName("disabledObsoleteTitle"); |
1851 |
var message = bundle.GetStringFromName("disabledObsoleteMessage"); |
1852 |
ps.alert(null, title, message); |
1853 |
} |
1854 |
|
1855 |
gPref.setBoolPref(PREF_EM_DISABLEDOBSOLETE, true); |
1856 |
} |
1857 |
}, |
1858 |
|
1859 |
_checkForGlobalInstalls: function nsExtensionManager__checkForGlobalInstalls (aPath, aItemType) |
1860 |
{ |
1861 |
try { |
1862 |
var ioServ = Components.classes["@mozilla.org/network/io-service;1"] |
1863 |
.getService(Components.interfaces.nsIIOService); |
1864 |
var uri = ioServ.newURI(aPath, null, null); |
1865 |
aPath = uri.path; |
1866 |
} |
1867 |
catch (e) { } |
1868 |
|
1869 |
// First see if the path supplied is a file path |
1870 |
var file = Components.classes["@mozilla.org/file/local;1"] |
1871 |
.createInstance(Components.interfaces.nsILocalFile); |
1872 |
try { |
1873 |
file.initWithPath(aPath); |
1874 |
} |
1875 |
catch (e) { |
1876 |
// Try appending the path to the current proc dir. |
1877 |
file = getDir(KEY_APPDIR, []); |
1878 |
try { |
1879 |
file.append(aPath); |
1880 |
} |
1881 |
catch (e) { /* can't handle this */ } |
1882 |
} |
1883 |
|
1884 |
if (file.exists()) { |
1885 |
if (aItemType & nsIUpdateItem.TYPE_EXTENSION) |
1886 |
this.installExtension(file, nsIExtensionManager.FLAG_INSTALL_GLOBAL); |
1887 |
else if (aItemType & nsIUpdateItem.TYPE_THEME) |
1888 |
this.installTheme(file, nsIExtensionManager.FLAG_INSTALL_GLOBAL); |
1889 |
} |
1890 |
else |
1891 |
dump("Invalid XPI/JAR Path: " + aPath + "\n"); |
1892 |
}, |
1893 |
|
1894 |
_showGlobalItemList: function nsExtensionManager__showGlobalItemList () |
1895 |
{ |
1896 |
this._ensureDS(); |
1897 |
|
1898 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
1899 |
.getService(Components.interfaces.nsIStringBundleService); |
1900 |
var bundle = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
1901 |
|
1902 |
dump(bundle.GetStringFromName("globalItemList")); |
1903 |
dump(bundle.GetStringFromName("globalItemListExtensions")); |
1904 |
var items = this.getItemList(null, nsIUpdateItem.TYPE_EXTENSION, {}); |
1905 |
for (var i = 0; i < items.length; ++i) |
1906 |
dump(" " + items[i].id + " " + items[i].name + " " + items[i].version + "\n"); |
1907 |
dump(bundle.GetStringFromName("globalItemListThemes")); |
1908 |
items = this.getItemList(null, nsIUpdateItem.TYPE_THEME, {}); |
1909 |
for (var i = 0; i < items.length; ++i) |
1910 |
dump(" " + items[i].id + " " + items[i].name + " " + items[i].version + "\n"); |
1911 |
|
1912 |
dump("\n\n"); |
1913 |
}, |
1914 |
|
1915 |
_finishOperations: function nsExtensionManager__finishOperations () |
1916 |
{ |
1917 |
var win = this._showProgressWindow(); |
1918 |
|
1919 |
try { |
1920 |
// An existing autoreg file is an indication that something major has |
1921 |
// happened to the extensions datasource (install/uninstall/enable/disable) |
1922 |
// and as such we must load it now and see what needs to happen. |
1923 |
this._ensureDS(); |
1924 |
|
1925 |
// Look for items that need to be installed |
1926 |
var items = this._ds.getItemsWithFlagSet("toBeInstalled"); |
1927 |
for (var i = 0; i < items.length; ++i) |
1928 |
this._finalizeInstall(items[i]); |
1929 |
|
1930 |
// If there were any install operations, we need to restart (again!) after |
1931 |
// the component files have been properly installed are registered... |
1932 |
var needsRestart = items.length > 0; |
1933 |
|
1934 |
// Look for extensions that need to be enabled |
1935 |
items = this._ds.getItemsWithFlagSet("toBeEnabled"); |
1936 |
for (var i = 0; i < items.length; ++i) |
1937 |
this._finalizeEnableDisable(items[i], false); |
1938 |
|
1939 |
// Look for extensions that need to be disabled |
1940 |
items = this._ds.getItemsWithFlagSet("toBeDisabled"); |
1941 |
for (var i = 0; i < items.length; ++i) |
1942 |
this._finalizeEnableDisable(items[i], true); |
1943 |
|
1944 |
// Look for extensions that need to be removed. This MUST be done after |
1945 |
// the install operations since extensions to be installed may have to be |
1946 |
// uninstalled if there are errors during the installation process! |
1947 |
items = this._ds.getItemsWithFlagSet("toBeUninstalled"); |
1948 |
for (var i = 0; i < items.length; ++i) |
1949 |
this._finalizeUninstall(items[i]); |
1950 |
|
1951 |
// Clean up any helper objects |
1952 |
delete this._extInstaller; |
1953 |
delete this._extUninstaller; |
1954 |
delete this._extEnabler; |
1955 |
|
1956 |
this._updateManifests(); |
1957 |
// If no additional restart is required, it implies that there are |
1958 |
// no new components that need registering so we can inform the app |
1959 |
// not to do any extra startup checking next time round. |
1960 |
this._writeCompatibilityManifest(needsRestart); |
1961 |
} |
1962 |
catch (e) { |
1963 |
dump("*** nsExtensionManager::_finishOperations - failure, catching exception so finalize window can close " + e +"\n"); |
1964 |
} |
1965 |
win.close(); |
1966 |
|
1967 |
return needsRestart; |
1968 |
}, |
1969 |
|
1970 |
// XXXben - this is actually a cheap stunt to load all the chrome registry |
1971 |
// services required to register/unregister packages... the synchronous |
1972 |
// nature of this code ensures the window will never actually appear |
1973 |
// on screen. |
1974 |
_showProgressWindow: function nsExtensionManager__showProgressWindow () |
1975 |
{ |
1976 |
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"] |
1977 |
.getService(Components.interfaces.nsIWindowWatcher); |
1978 |
return ww.openWindow(null, "chrome://mozapps/content/extensions/finalize.xul", |
1979 |
"", "chrome,centerscreen,dialog", null); |
1980 |
}, |
1981 |
|
1982 |
_loadDefaults: function nsExtensionManager__loadDefaults () |
1983 |
{ |
1984 |
// Load default preferences files for all extensions |
1985 |
var defaultsManifest = getFile(KEY_PROFILEDIR, |
1986 |
[DIR_EXTENSIONS, FILE_DEFAULTS]); |
1987 |
if (defaultsManifest.exists()) { |
1988 |
var fis = Components.classes["@mozilla.org/network/file-input-stream;1"] |
1989 |
.createInstance(Components.interfaces.nsIFileInputStream); |
1990 |
fis.init(defaultsManifest, -1, -1, false); |
1991 |
var lis = fis.QueryInterface(Components.interfaces.nsILineInputStream); |
1992 |
var line = { value: "" }; |
1993 |
var more = false; |
1994 |
do { |
1995 |
more = lis.readLine(line); |
1996 |
var lf = Components.classes["@mozilla.org/file/local;1"] |
1997 |
.createInstance(Components.interfaces.nsILocalFile); |
1998 |
var path = line.value; |
1999 |
if (path) { |
2000 |
lf.initWithPath(path); |
2001 |
|
2002 |
if (lf.exists()) |
2003 |
gPref.readUserPrefs(lf); |
2004 |
} |
2005 |
} |
2006 |
while (more); |
2007 |
fis.close(); |
2008 |
} |
2009 |
}, |
2010 |
|
2011 |
ensurePreConfiguredItem: function nsExtensionManager_ensurePreConfiguredItem (aItemID, aItemType, aManifest) |
2012 |
{ |
2013 |
this._ds.insertForthcomingItem(aItemID, aItemType, false); |
2014 |
try { |
2015 |
var metadataDS = getInstallManifest(aManifest); |
2016 |
} |
2017 |
catch(e) { |
2018 |
return; |
2019 |
} |
2020 |
this._ds.addItemMetadata(aItemID, aItemType, metadataDS, false); |
2021 |
|
2022 |
// Check whether the extension is installable (firefox_version fitting between |
2023 |
// em:MaxVersion and em:MinVersion) |
2024 |
var extensionID = this.canInstallItem(metadataDS); |
2025 |
// |extensionID| must be a GUID string, not a number - a number means failure. |
2026 |
if (isNaN(parseInt(extensionID))) { |
2027 |
// Do install the extension, meaning we register its chrome and components |
2028 |
if (!this._extInstaller) |
2029 |
this._extInstaller = new nsExtensionInstaller(this._ds); |
2030 |
try { |
2031 |
this._extInstaller.install(aItemID, false); |
2032 |
} |
2033 |
catch (e) { |
2034 |
// If the installation failed, we disable the extension in addition |
2035 |
// to _not_ uninstalling it (which would fail anyway because it |
2036 |
// would be done at launch time... as a user). |
2037 |
this._ds.setItemProperty(aItemID, this._ds._emR("toBeUninstalled"), |
2038 |
null, false, aItemType); |
2039 |
this._ds.setItemProperty(aItemID, this._ds._emR("disabled"), |
2040 |
this._ds._emL("true"), false, aItemType); |
2041 |
} |
2042 |
} else { |
2043 |
// disable extensions that aren't installable |
2044 |
this._ds.setItemProperty(aItemID, this._ds._emR("disabled"), |
2045 |
this._ds._emL("true"), false, aItemType); |
2046 |
} |
2047 |
// Force locking pre-configured items. |
2048 |
this._ds.lockUnlockItem(aItemID, true); |
2049 |
}, |
2050 |
|
2051 |
checkForMismatches: function nsExtensionManager_checkForMismatches () |
2052 |
{ |
2053 |
var needsRestart = false; |
2054 |
|
2055 |
this._disableObsoleteExtensions(); |
2056 |
|
2057 |
// Check to see if the version of the application that is being started |
2058 |
// now is the same one that was started last time. |
2059 |
var currAppVersion = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
2060 |
try { |
2061 |
var lastAppVersion = gPref.getCharPref(PREF_EM_LAST_APP_VERSION); |
2062 |
} |
2063 |
catch (e) {} |
2064 |
if (currAppVersion != lastAppVersion) { |
2065 |
// Version mismatch, we're have to load the extensions datasource |
2066 |
// and do version checking. Time hit here doesn't matter since this |
2067 |
// doesn't happen all that often. |
2068 |
this._ensureDS(); |
2069 |
var currAppID = gPref.getCharPref(PREF_EM_APP_ID); |
2070 |
var items = this._ds.getIncompatibleItemList(currAppID, currAppVersion, |
2071 |
nsIUpdateItem.TYPE_ADDON); |
2072 |
if (items.length > 0) { |
2073 |
for (var i = 0; i < items.length; ++i) { |
2074 |
// Now disable the extension so it won't hurt anything. |
2075 |
var alreadyDisabled = this._ds.getItemProperty(items[i].id, "disabled"); |
2076 |
var itemType = getItemType(this._ds._getResourceForItem(items[i].id).Value); |
2077 |
if (itemType != -1 && itemType & nsIUpdateItem.TYPE_EXTENSION) |
2078 |
if (!alreadyDisabled) this.disableExtension(items[i].id); |
2079 |
else if (itemType & nsIUpdateItem.TYPE_THEME) { |
2080 |
if (gPref.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN)) |
2081 |
gPref.clearUserPref(PREF_GENERAL_SKINS_SELECTEDSKIN); |
2082 |
if (!alreadyDisabled) this._ds.disableTheme(items[i].id); |
2083 |
} |
2084 |
} |
2085 |
// We want to eliminate locked extensions |
2086 |
newitems = []; |
2087 |
for (var i = 0; i < items.length; ++i) { |
2088 |
if (!this._ds.getItemProperty(items[i].id, "locked")) |
2089 |
newitems.push(items[i]); |
2090 |
} |
2091 |
if (newitems.length > 0) { |
2092 |
var updates = Components.classes["@mozilla.org/updates/update-service;1"] |
2093 |
.getService(Components.interfaces.nsIUpdateService); |
2094 |
updates.checkForUpdates(newitems, newitems.length, nsIUpdateItem.TYPE_ADDON, |
2095 |
nsIUpdateService.SOURCE_EVENT_MISMATCH, |
2096 |
null); |
2097 |
|
2098 |
needsRestart = true; |
2099 |
} |
2100 |
} |
2101 |
} |
2102 |
|
2103 |
// Somehow the component list went away, and for that reason the new one |
2104 |
// generated by this function is going to result in a different compreg. |
2105 |
// We must force a restart. |
2106 |
var componentList = getFile(KEY_PROFILEDIR, [FILE_COMPONENT_MANIFEST]); |
2107 |
if (!componentList.exists()) |
2108 |
needsRestart = true; |
2109 |
|
2110 |
// Now update the last app version so we don't do this checking |
2111 |
// again. |
2112 |
gPref.setCharPref(PREF_EM_LAST_APP_VERSION, currAppVersion); |
2113 |
|
2114 |
// XXXben - I am not entirely sure this is needed, since components and |
2115 |
// defaults manifests are written by the disabling function. Not going to |
2116 |
// rock the boat now however. |
2117 |
this._updateManifests(); |
2118 |
|
2119 |
return needsRestart; |
2120 |
}, |
2121 |
|
2122 |
get inSafeMode() |
2123 |
{ |
2124 |
return this._ds.safeMode; |
2125 |
}, |
2126 |
|
2127 |
_updateManifests: function nsExtensionManager__updateManifests () |
2128 |
{ |
2129 |
// Update the components manifests with paths for compatible, enabled, |
2130 |
// extensions. |
2131 |
try { |
2132 |
// Wrap this in try..catch so that if the account is restricted we don't |
2133 |
// completely fail here for lack of permissions to write to the bin |
2134 |
// dir (and cause apprunner to go into a restart loop). |
2135 |
// |
2136 |
// This means that making changes to install-dir extensions only possible |
2137 |
// for people with write access to bin dir (i.e. uninstall, disable, |
2138 |
// enable) |
2139 |
this._writeComponentManifest(false); |
2140 |
this._writeDefaults(false); |
2141 |
} |
2142 |
catch (e) { |
2143 |
// dump("*** ExtensionManager:_updateManifests: no access privileges to application directory, skipping.\n"); |
2144 |
}; |
2145 |
this._writeComponentManifest(true); |
2146 |
this._writeDefaults(true); |
2147 |
}, |
2148 |
|
2149 |
// XXXben write to temporary file then move to final when done. |
2150 |
_writeProfileFile: function nsExtensionManager__writeProfileFile (aFile, aGetDirFunc, aIsProfile) |
2151 |
{ |
2152 |
// When an operation is performed that requires a component re-registration |
2153 |
// (extension enabled/disabled, installed, uninstalled), we must write the |
2154 |
// set of registry-relative paths of components to register to an .autoreg |
2155 |
// file which lives in the profile folder. |
2156 |
// |
2157 |
// To do this we must enumerate all installed extensions and write data |
2158 |
// about all valid items to the file. |
2159 |
this._ensureDS(); |
2160 |
|
2161 |
var fos = Components.classes["@mozilla.org/network/file-output-stream;1"] |
2162 |
.createInstance(Components.interfaces.nsIFileOutputStream); |
2163 |
const MODE_WRONLY = 0x02; |
2164 |
const MODE_CREATE = 0x08; |
2165 |
const MODE_TRUNCATE = 0x20; |
2166 |
fos.init(aFile, MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE, 0644, 0); |
2167 |
|
2168 |
var extensions = this.getItemList(null, nsIUpdateItem.TYPE_EXTENSION, { }); |
2169 |
var validExtensions = []; |
2170 |
for (var i = 0; i < extensions.length; ++i) { |
2171 |
var extension = extensions[i]; |
2172 |
|
2173 |
// An extension entry is valid only if it is not disabled, not about to |
2174 |
// be disabled, and not about to be uninstalled. |
2175 |
var toBeDisabled = this._ds.getItemProperty(extension.id, "toBeDisabled"); |
2176 |
var toBeUninstalled = this._ds.getItemProperty(extension.id, "toBeUninstalled"); |
2177 |
var toBeInstalled = this._ds.getItemProperty(extension.id, "toBeInstalled"); |
2178 |
var disabled = this._ds.getItemProperty(extension.id, "disabled"); |
2179 |
if (toBeDisabled == "true" || toBeUninstalled == "true" || |
2180 |
disabled == "true" || toBeInstalled == "true") |
2181 |
continue; |
2182 |
|
2183 |
var isProfile = this._ds.isProfileItem(extension.id); |
2184 |
var sourceDir = aGetDirFunc(isProfile, extension.id); |
2185 |
if (sourceDir.exists() && (aIsProfile == isProfile)) |
2186 |
validExtensions.push({ sourceDir: sourceDir, isProfile: isProfile }); |
2187 |
} |
2188 |
|
2189 |
// Debian hook to insert defaults/syspref into defaults.ini |
2190 |
if ((aFile.leafName == FILE_DEFAULTS) && aIsProfile == false) { |
2191 |
validExtensions.push({ sourceDir: getDirNoCreate(getDirKey(false), [DIR_DEFAULTS, "syspref"]), isProfile: false }); |
2192 |
} |
2193 |
|
2194 |
var lines = ["[Extra Files]\r\n", |
2195 |
"Count=" + validExtensions.length + "\r\n"]; |
2196 |
for (i = 0; i < lines.length; ++i) |
2197 |
fos.write(lines[i], lines[i].length); |
2198 |
|
2199 |
for (i = 0; i < validExtensions.length; ++i) { |
2200 |
var e = validExtensions[i]; |
2201 |
var relativeDir = getDir(e.isProfile ? KEY_PROFILEDIR : KEY_APPDIR, []); |
2202 |
var lf = e.sourceDir.QueryInterface(Components.interfaces.nsILocalFile); |
2203 |
var relDesc = lf.getRelativeDescriptor(relativeDir); |
2204 |
var line = "File" + i + "=" + relDesc + "\r\n"; |
2205 |
fos.write(line, line.length); |
2206 |
} |
2207 |
fos.close(); |
2208 |
}, |
2209 |
|
2210 |
_getComponentsDir: function nsExtensionManager__getComponentsDir (aIsProfile, aExtensionID) |
2211 |
{ |
2212 |
return getDirNoCreate(getDirKey(aIsProfile), |
2213 |
[DIR_EXTENSIONS, aExtensionID, DIR_COMPONENTS]); |
2214 |
}, |
2215 |
|
2216 |
_getPreferencesDir: function nsExtensionManager__getPreferencesDir (aIsProfile, aExtensionID) |
2217 |
{ |
2218 |
return getDirNoCreate(getDirKey(aIsProfile), |
2219 |
[DIR_EXTENSIONS, aExtensionID, |
2220 |
DIR_DEFAULTS, DIR_DEFAULTS_PREFS]); |
2221 |
}, |
2222 |
|
2223 |
_writeComponentManifest: function nsExtensionManager__writeComponentManifest (aIsProfile) |
2224 |
{ |
2225 |
var manifest = aIsProfile ? getFile(KEY_PROFILEDIR, [FILE_COMPONENT_MANIFEST]) : |
2226 |
getFile(KEY_APPDIR, [FILE_COMPONENT_MANIFEST]); |
2227 |
this._writeProfileFile(manifest, this._getComponentsDir, aIsProfile); |
2228 |
|
2229 |
// Now refresh the compatibility manifest. |
2230 |
this._writeCompatibilityManifest(true); |
2231 |
}, |
2232 |
|
2233 |
_writeCompatibilityManifest: function nsExtensionManager__writeCompatibilityManifest (aComponentListUpdated) |
2234 |
{ |
2235 |
var fos = Components.classes["@mozilla.org/network/file-output-stream;1"] |
2236 |
.createInstance(Components.interfaces.nsIFileOutputStream); |
2237 |
const MODE_WRONLY = 0x02; |
2238 |
const MODE_CREATE = 0x08; |
2239 |
const MODE_TRUNCATE = 0x20; |
2240 |
|
2241 |
// The compat file only lives in the Profile dir because we make the |
2242 |
// assumption that you can never have extensions prior to profile |
2243 |
// startup. |
2244 |
var compat = getFile(KEY_PROFILEDIR, [FILE_COMPAT_MANIFEST]); |
2245 |
fos.init(compat, MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE, 0644, 0); |
2246 |
|
2247 |
var currAppBuildID = gPref.getCharPref(PREF_EM_APP_BUILDID); |
2248 |
|
2249 |
var val = aComponentListUpdated ? 1 : 0; |
2250 |
var lines = ["[Compatibility]\r\n", |
2251 |
"Build ID=" + currAppBuildID + "\r\n", |
2252 |
"Components List Changed=" + val + "\r\n"]; |
2253 |
for (var i = 0; i < lines.length; ++i) |
2254 |
fos.write(lines[i], lines[i].length); |
2255 |
|
2256 |
fos.close(); |
2257 |
}, |
2258 |
|
2259 |
_writeDefaults: function nsExtensionManager__writeDefaults (aIsProfile) |
2260 |
{ |
2261 |
var manifest = aIsProfile ? getFile(KEY_PROFILEDIR, [FILE_DEFAULTS]) : |
2262 |
getFile(KEY_APPDIR, [FILE_DEFAULTS]); |
2263 |
this._writeProfileFile(manifest, this._getPreferencesDir, aIsProfile); |
2264 |
}, |
2265 |
|
2266 |
_cleanDirs: function nsExtensionManager__cleanDirs () |
2267 |
{ |
2268 |
var keys = [KEY_PROFILEDIR, KEY_APPDIR]; |
2269 |
for (var i = 0; i < keys.length; ++i) { |
2270 |
var extensions = getDir(keys[i], [DIR_EXTENSIONS]); |
2271 |
var entries = extensions.directoryEntries; |
2272 |
while (entries.hasMoreElements()) { |
2273 |
var entry = entries.getNext().QueryInterface(Components.interfaces.nsIFile); |
2274 |
if (entry.isDirectory() && !entry.directoryEntries.hasMoreElements()) { |
2275 |
try { |
2276 |
entry.remove(false); |
2277 |
} |
2278 |
catch (e) { } |
2279 |
} |
2280 |
} |
2281 |
} |
2282 |
}, |
2283 |
|
2284 |
///////////////////////////////////////////////////////////////////////////// |
2285 |
// nsIExtensionManager |
2286 |
installExtension: function nsExtensionManager_installExtension (aXPIFile, aFlags) |
2287 |
{ |
2288 |
// Since we're installing a "new type" extension, we assume a file layout |
2289 |
// within the XPI like so: |
2290 |
// foo.xpi/ |
2291 |
// extension.rdf |
2292 |
// chrome/ |
2293 |
// components/ |
2294 |
// defaults/ |
2295 |
// prefs/ |
2296 |
var installProfile = aFlags & nsIExtensionManager.FLAG_INSTALL_PROFILE; |
2297 |
|
2298 |
var tempDir = getDir(getDirKey(installProfile), [DIR_EXTENSIONS, DIR_TEMP]); |
2299 |
var fileName = getRandomFileName("temp", "xpi"); |
2300 |
aXPIFile.copyTo(tempDir, fileName); |
2301 |
var xpiFile = tempDir.clone(); |
2302 |
xpiFile.append(fileName); |
2303 |
|
2304 |
// if the source file was read-only, fix permissions |
2305 |
if (!xpiFile.isWritable()) { |
2306 |
xpiFile.permissions = 0644; |
2307 |
} |
2308 |
|
2309 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
2310 |
.createInstance(Components.interfaces.nsIZipReader); |
2311 |
zipReader.init(xpiFile); |
2312 |
zipReader.open(); |
2313 |
|
2314 |
var tempManifest = getFile(getDirKey(installProfile), |
2315 |
[DIR_EXTENSIONS, DIR_TEMP, getRandomFileName("install", "rdf")]); |
2316 |
if (!tempManifest.exists()) |
2317 |
tempManifest.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644); |
2318 |
zipReader.extract(FILE_INSTALL_MANIFEST, tempManifest); |
2319 |
|
2320 |
var extensionID = this.installExtensionInternal(xpiFile, tempManifest, installProfile); |
2321 |
switch (extensionID) { |
2322 |
case ERROR_EXTENSION_IS_THEME: |
2323 |
this.installTheme(aXPIFile, aFlags); |
2324 |
break; |
2325 |
case ERROR_INVALID_VERSION: |
2326 |
case ERROR_PHONED_HOME: |
2327 |
break; |
2328 |
default: |
2329 |
// Then we stage the extension's XPI into a temporary directory so we |
2330 |
// can extract them after the next restart. |
2331 |
this._stageExtensionXPI(zipReader, extensionID, installProfile); |
2332 |
|
2333 |
this._writeComponentManifest(installProfile); |
2334 |
} |
2335 |
|
2336 |
zipReader.close(); |
2337 |
tempManifest.remove(false); |
2338 |
|
2339 |
if (extensionID != ERROR_PHONED_HOME) |
2340 |
xpiFile.remove(false); |
2341 |
}, |
2342 |
|
2343 |
installExtensionInternal: function nsExtensionManager_installExtensionInternal (aXPIFile, aManifest, aIsProfile) |
2344 |
{ |
2345 |
var ds = getInstallManifest(aManifest); |
2346 |
if (!ds) return; |
2347 |
|
2348 |
// XXXben - this is a hack until we properly fix xpinstall to be able to install |
2349 |
// different chrome types from trusted script. At the moment, when we |
2350 |
// call initManagerFromChrome, we can only install extensions, since |
2351 |
// the code path that installs themes is not utilized. To minimize the |
2352 |
// level of changes happening at the lower level in xpinstall at this |
2353 |
// point I am inserting this hack which checks for a theme-only property |
2354 |
// in the install manifest. |
2355 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
2356 |
var internalName = gRDF.GetResource(EM_NS("internalName")); |
2357 |
if (stringData(ds.GetTarget(manifestRoot, internalName, true)) != "--") |
2358 |
return ERROR_EXTENSION_IS_THEME; |
2359 |
|
2360 |
// We do a basic version check first just to make sure we somehow weren't |
2361 |
// tricked into installing an incompatible extension... |
2362 |
this._ensureDS(); |
2363 |
var extensionID = this.canInstallItem(ds); |
2364 |
// |extensionID| must be a GUID string, not a number - a number means failure. |
2365 |
if (isNaN(parseInt(extensionID))) |
2366 |
this._configureForthcomingItem(ds, extensionID, aIsProfile); |
2367 |
else if (extensionID == 0) { |
2368 |
var io = new this.IncompatibleObserver(this); |
2369 |
var isChecking = io.checkForUpdates(ds, nsIUpdateItem.TYPE_EXTENSION, |
2370 |
aXPIFile, aIsProfile); |
2371 |
if (!isChecking) |
2372 |
showIncompatibleError(ds); |
2373 |
else { |
2374 |
extensionID = ERROR_PHONED_HOME; // caller uses this to distinguish |
2375 |
// phone-home attempt. |
2376 |
} |
2377 |
} |
2378 |
|
2379 |
return extensionID; |
2380 |
}, |
2381 |
|
2382 |
IncompatibleObserver: function nsExtensionManager_IncompatibleObserver (aEM) |
2383 |
{ |
2384 |
this._item = null; |
2385 |
this._em = aEM; |
2386 |
this._ds = null; |
2387 |
this._xpi = null; |
2388 |
this._extensionID = 0; |
2389 |
this._isProfile = true; |
2390 |
|
2391 |
this.checkForUpdates = function nsExtensionManager__iOcheckForUpdates (aDataSource, aType, |
2392 |
aXPIFile, aIsProfile) |
2393 |
{ |
2394 |
// Construct a nsIUpdateItem for this extension... |
2395 |
var item = this._em._getItemForIncompatibleID(aDataSource, aType); |
2396 |
if (item) { |
2397 |
this._item = item; |
2398 |
this._ds = aDataSource; |
2399 |
this._xpi = aXPIFile; |
2400 |
this._isProfile = true; |
2401 |
|
2402 |
gOS.addObserver(this, "Update:Extension:Started", false); |
2403 |
gOS.addObserver(this, "Update:Extension:Item-Ended", false); |
2404 |
gOS.addObserver(this, "Update:Extension:Item-Error", false); |
2405 |
gOS.addObserver(this, "Update:Extension:Ended", false); |
2406 |
|
2407 |
this._em.update([item], 1, true); |
2408 |
|
2409 |
return true; |
2410 |
} |
2411 |
return false; |
2412 |
} |
2413 |
|
2414 |
this.observe = function nsExtensionManager__iOobserve (aSubject, aTopic, aData) |
2415 |
{ |
2416 |
switch (aTopic) { |
2417 |
case "Update:Extension:Started": |
2418 |
break; |
2419 |
case "Update:Extension:Item-Ended": |
2420 |
if (aSubject) { |
2421 |
var item = aSubject.QueryInterface(Components.interfaces.nsIUpdateItem); |
2422 |
this._em._ds.setTargetApplicationInfo(item.id, |
2423 |
item.minAppVersion, |
2424 |
item.maxAppVersion, |
2425 |
this._ds, |
2426 |
this._item.type); |
2427 |
this._extensionID = this._em.canInstallItem(this._ds); |
2428 |
} |
2429 |
break; |
2430 |
case "Update:Extension:Item-Error": |
2431 |
break; |
2432 |
case "Update:Extension:Ended": |
2433 |
gOS.removeObserver(this, "Update:Extension:Started"); |
2434 |
gOS.removeObserver(this, "Update:Extension:Item-Ended"); |
2435 |
gOS.removeObserver(this, "Update:Extension:Item-Error"); |
2436 |
gOS.removeObserver(this, "Update:Extension:Ended"); |
2437 |
|
2438 |
if (isNaN(this._extensionID)) { |
2439 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
2440 |
.createInstance(Components.interfaces.nsIZipReader); |
2441 |
zipReader.init(this._xpi); |
2442 |
zipReader.open(); |
2443 |
|
2444 |
// Add the item after all |
2445 |
this._em._configureForthcomingItem(this._ds, this._extensionID, |
2446 |
this._isProfile); |
2447 |
this._em._stageExtensionXPI(zipReader, this._extensionID, this._isProfile); |
2448 |
this._em._writeComponentManifest(this._isProfile); |
2449 |
|
2450 |
zipReader.close(); |
2451 |
} |
2452 |
else |
2453 |
showIncompatibleError(this._ds); |
2454 |
|
2455 |
// Now really delete the temporary XPI file |
2456 |
this._xpi.remove(false); |
2457 |
break; |
2458 |
} |
2459 |
} |
2460 |
}, |
2461 |
|
2462 |
_configureForthcomingItem: function nsExtensionManager__configureForthcomingItem (aDataSource, |
2463 |
aExtensionID, |
2464 |
aIsProfile) |
2465 |
{ |
2466 |
// Clear any "disabled" flags that may have been set by the mismatch |
2467 |
// checking code at startup. |
2468 |
var props = { toBeDisabled : null, |
2469 |
disabled : null, |
2470 |
toBeInstalled : this._ds._emL("true"), |
2471 |
name : this.getManifestProperty(aDataSource, "name"), |
2472 |
version : this.getManifestProperty(aDataSource, "version") }; |
2473 |
for (var p in props) { |
2474 |
this._ds.setItemProperty(aExtensionID, this._ds._emR(p), |
2475 |
props[p], aIsProfile, |
2476 |
nsIUpdateItem.TYPE_EXTENSION); |
2477 |
} |
2478 |
|
2479 |
// Insert it into the child list NOW rather than later because: |
2480 |
// - extensions installed using the command line need to be a member |
2481 |
// of a container during the install phase for the code to be able |
2482 |
// to identify profile vs. global |
2483 |
// - extensions installed through the UI should show some kind of |
2484 |
// feedback to indicate their presence is forthcoming (i.e. they |
2485 |
// will be available after a restart). |
2486 |
this._ds.insertForthcomingItem(aExtensionID, nsIUpdateItem.TYPE_EXTENSION, |
2487 |
aIsProfile); |
2488 |
}, |
2489 |
|
2490 |
_getItemForIncompatibleID: function nsExtensionManager__getItemForID (aDataSource, aType) |
2491 |
{ |
2492 |
var newItem = null; |
2493 |
var id, version, targetAppInfo, name, updateURL; |
2494 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
2495 |
try { |
2496 |
function getProperty (aDataSource, aSourceResource, aProperty) |
2497 |
{ |
2498 |
var rv; |
2499 |
try { |
2500 |
var property = gRDF.GetResource(EM_NS(aProperty)); |
2501 |
rv = stringData(aDataSource.GetTarget(aSourceResource, property, true)); |
2502 |
if (rv == "--") |
2503 |
throw Components.results.NS_ERROR_FAILURE; |
2504 |
} |
2505 |
catch (e) { } |
2506 |
return rv; |
2507 |
} |
2508 |
|
2509 |
var root = gRDF.GetResource("urn:mozilla:install-manifest"); |
2510 |
id = getProperty(aDataSource, root, "id"); |
2511 |
version = getProperty(aDataSource, root, "version"); |
2512 |
targetAppInfo = this._ds.getTargetApplicationInfo(id, aDataSource, aType); |
2513 |
name = getProperty(aDataSource, root, "name"); |
2514 |
updateURL = getProperty(aDataSource, root, "updateURL"); |
2515 |
if (updateURL == "--") |
2516 |
updateURL = ""; |
2517 |
|
2518 |
newItem = Components.classes["@mozilla.org/updates/item;1"] |
2519 |
.createInstance(Components.interfaces.nsIUpdateItem); |
2520 |
newItem.init(id, version, targetAppInfo.minVersion, |
2521 |
targetAppInfo.maxVersion, |
2522 |
name, -1, "", "", updateURL, aType); |
2523 |
} |
2524 |
catch (e) { |
2525 |
return null; |
2526 |
} |
2527 |
return newItem; |
2528 |
}, |
2529 |
|
2530 |
canInstallItem: function nsExtensionManager_canInstallItem (aDataSource) |
2531 |
{ |
2532 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
2533 |
// First make sure the item has a valid "version" property. |
2534 |
var version = gRDF.GetResource(EM_NS("version")); |
2535 |
var versionLiteral = stringData(aDataSource.GetTarget(manifestRoot, version, true)); |
2536 |
if (!getVersionChecker().isValidVersion(versionLiteral)) { |
2537 |
var name = gRDF.GetResource(EM_NS("name")); |
2538 |
var nameLiteral = stringData(aDataSource.GetTarget(manifestRoot, name, true)); |
2539 |
showInvalidVersionError(nameLiteral, versionLiteral); |
2540 |
return ERROR_INVALID_VERSION; |
2541 |
} |
2542 |
|
2543 |
// Check the target application range specified by the extension metadata. |
2544 |
if (this._ds.isCompatible(aDataSource, manifestRoot)) { |
2545 |
var id = gRDF.GetResource(EM_NS("id")); |
2546 |
var idLiteral = aDataSource.GetTarget(manifestRoot, id, true); |
2547 |
return idLiteral.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
2548 |
} |
2549 |
return 0; |
2550 |
}, |
2551 |
|
2552 |
getManifestProperty: function nsExtensionManager_getManifestProperty (aDataSource, aProperty) |
2553 |
{ |
2554 |
var manifestRoot = gRDF.GetResource("urn:mozilla:install-manifest"); |
2555 |
var arc = gRDF.GetResource(EM_NS(aProperty)); |
2556 |
return aDataSource.GetTarget(manifestRoot, arc, true); |
2557 |
}, |
2558 |
|
2559 |
_stageExtensionXPI: function nsExtensionManager__stageExtensionXPI (aZipReader, aExtensionID, aInstallProfile) |
2560 |
{ |
2561 |
// Get the staging dir |
2562 |
var dir = getDir(getDirKey(aInstallProfile), |
2563 |
[DIR_EXTENSIONS, DIR_TEMP, aExtensionID]); |
2564 |
var extensionFileName = aExtensionID + ".xpi"; |
2565 |
var extensionFile = dir.clone(); |
2566 |
extensionFile.append(extensionFileName); |
2567 |
if (extensionFile.exists()) |
2568 |
extensionFile.remove(false); |
2569 |
aZipReader.file.copyTo(dir, extensionFileName); |
2570 |
|
2571 |
// if the source file was readonly, fix the permissions |
2572 |
if (!extensionFile.isWritable()) { |
2573 |
extensionFile.permissions = 0644; |
2574 |
} |
2575 |
}, |
2576 |
|
2577 |
// This function is called on the next startup |
2578 |
_finalizeInstall: function nsExtensionManager__finalizeInstall (aExtensionID) |
2579 |
{ |
2580 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2581 |
if (aExtensionID == 0 || aExtensionID == -1) { |
2582 |
this._ds.removeCorruptItem(aExtensionID, |
2583 |
nsIUpdateItem.TYPE_EXTENSION, |
2584 |
isProfile); |
2585 |
return; |
2586 |
} |
2587 |
|
2588 |
if (!this._extInstaller) |
2589 |
this._extInstaller = new nsExtensionInstaller(this._ds); |
2590 |
|
2591 |
this._extInstaller.install(aExtensionID, isProfile); |
2592 |
|
2593 |
// Update the Components Manifest |
2594 |
this._writeComponentManifest(isProfile); |
2595 |
|
2596 |
// Update the Defaults Manifest |
2597 |
this._writeDefaults(isProfile); |
2598 |
}, |
2599 |
|
2600 |
_finalizeEnableDisable: function nsExtensionManager__finalizeEnableDisable (aExtensionID, aDisable) |
2601 |
{ |
2602 |
if (!this._extEnabler) |
2603 |
this._extEnabler = new nsExtensionEnabler(this._ds); |
2604 |
|
2605 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2606 |
this._extEnabler.enable(aExtensionID, true, aDisable); |
2607 |
|
2608 |
// clear temporary flags |
2609 |
this._ds.setItemProperty(aExtensionID, |
2610 |
this._ds._emR("toBeEnabled"), |
2611 |
null, true, |
2612 |
nsIUpdateItem.TYPE_EXTENSION); |
2613 |
this._ds.setItemProperty(aExtensionID, |
2614 |
this._ds._emR("toBeDisabled"), |
2615 |
null, true, |
2616 |
nsIUpdateItem.TYPE_EXTENSION); |
2617 |
}, |
2618 |
|
2619 |
_finalizeUninstall: function nsExtensionManager__finalizeUninstall (aExtensionID) |
2620 |
{ |
2621 |
if (!this._extUninstaller) |
2622 |
this._extUninstaller = new nsExtensionUninstaller(this._ds); |
2623 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2624 |
this._extUninstaller.uninstall(aExtensionID, isProfile); |
2625 |
|
2626 |
// Clean the extension resource |
2627 |
this._ds.removeItemMetadata(aExtensionID, nsIUpdateItem.TYPE_EXTENSION); |
2628 |
|
2629 |
// Do this LAST since inferences are made about an item based on |
2630 |
// what container it's in. |
2631 |
this._ds.removeItemFromContainer(aExtensionID, |
2632 |
nsIUpdateItem.TYPE_EXTENSION, |
2633 |
isProfile); |
2634 |
}, |
2635 |
|
2636 |
uninstallExtension: function nsExtensionManager_uninstallExtension (aExtensionID) |
2637 |
{ |
2638 |
if (!this._ds.isDownloadItem(aExtensionID)) { |
2639 |
this._ds.uninstallExtension(aExtensionID); |
2640 |
|
2641 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2642 |
|
2643 |
// Update the Components Manifest |
2644 |
this._writeComponentManifest(isProfile); |
2645 |
|
2646 |
// Update the Defaults Manifest |
2647 |
this._writeDefaults(isProfile); |
2648 |
} |
2649 |
else { |
2650 |
// Bad download entry - uri is url, e.g. "http://www.foo.com/test.xpi" |
2651 |
// ... just remove it from the list. |
2652 |
this._ds.removeCorruptDLItem(aExtensionID, nsIUpdateItem.TYPE_EXTENSION); |
2653 |
} |
2654 |
}, |
2655 |
|
2656 |
enableExtension: function nsExtensionManager_enableExtension (aExtensionID) |
2657 |
{ |
2658 |
this._ds.enableExtension(aExtensionID); |
2659 |
|
2660 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2661 |
|
2662 |
// Update the Components Manifest |
2663 |
this._writeComponentManifest(isProfile); |
2664 |
|
2665 |
// Update the Defaults Manifest |
2666 |
this._writeDefaults(isProfile); |
2667 |
}, |
2668 |
|
2669 |
disableExtension: function nsExtensionManager_disableExtension (aExtensionID) |
2670 |
{ |
2671 |
this._ds.disableExtension(aExtensionID); |
2672 |
|
2673 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2674 |
|
2675 |
// Update the Components Manifest |
2676 |
this._writeComponentManifest(isProfile); |
2677 |
|
2678 |
// Update the Defaults Manifest |
2679 |
this._writeDefaults(isProfile); |
2680 |
}, |
2681 |
|
2682 |
enableTheme: function nsExtensionsDataSource_enableTheme (aThemeID) |
2683 |
{ |
2684 |
this._ds.enableTheme(aThemeID); |
2685 |
}, |
2686 |
|
2687 |
disableTheme: function nsExtensionsDataSource_disableTheme (aThemeID) |
2688 |
{ |
2689 |
this._ds.disableTheme(aThemeID); |
2690 |
}, |
2691 |
|
2692 |
update: function nsExtensionManager_update (aItems, aItemCount, aVersionUpdateOnly) |
2693 |
{ |
2694 |
var appID = gPref.getCharPref(PREF_EM_APP_ID); |
2695 |
var appVersion = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
2696 |
|
2697 |
if (aItems.length == 0) { |
2698 |
var addonType = nsIUpdateItem.TYPE_ADDON; |
2699 |
aItems = this.getItemList(null, addonType, { }); |
2700 |
} |
2701 |
var updater = new nsExtensionItemUpdater(appID, appVersion, this); |
2702 |
updater.checkForUpdates(aItems, aItems.length, aVersionUpdateOnly); |
2703 |
}, |
2704 |
|
2705 |
getItemList: function nsExtensionManager_getItemList (aItemID, aType, aCountRef) |
2706 |
{ |
2707 |
this._ensureDS(); |
2708 |
return this._ds.getItemList(aItemID, aType, aCountRef); |
2709 |
}, |
2710 |
|
2711 |
///////////////////////////////////////////////////////////////////////////// |
2712 |
// Themes |
2713 |
installTheme: function nsExtensionManager_installTheme (aJARFile, aFlags) |
2714 |
{ |
2715 |
this._ensureDS(); |
2716 |
|
2717 |
var isProfile = aFlags & nsIExtensionManager.FLAG_INSTALL_PROFILE; |
2718 |
var installer = new nsThemeInstaller(this._ds, this); |
2719 |
installer.install(aJARFile, isProfile); |
2720 |
// XPInstall selects the theme, if necessary. |
2721 |
}, |
2722 |
|
2723 |
uninstallTheme: function nsExtensionManager_uninstallTheme (aThemeID) |
2724 |
{ |
2725 |
if (!this._ds.isDownloadItem(aThemeID)) { |
2726 |
this._ensureDS(); |
2727 |
this._ds.uninstallTheme(aThemeID); |
2728 |
} |
2729 |
else { |
2730 |
// Bad download entry - uri is url, e.g. "http://www.foo.com/test.jar" |
2731 |
// ... just remove it from the list. |
2732 |
this._ds.removeCorruptDLItem(aThemeID, nsIUpdateItem.TYPE_THEME); |
2733 |
} |
2734 |
}, |
2735 |
|
2736 |
moveTop: function nsExtensionManager_moveTop (aItemID) |
2737 |
{ |
2738 |
this._ds.moveTop(aItemID); |
2739 |
}, |
2740 |
|
2741 |
moveUp: function nsExtensionManager_moveUp (aItemID) |
2742 |
{ |
2743 |
this._ds.moveUp(aItemID); |
2744 |
}, |
2745 |
|
2746 |
moveDown: function nsExtensionManager_moveDown (aItemID) |
2747 |
{ |
2748 |
this._ds.moveDown(aItemID); |
2749 |
}, |
2750 |
|
2751 |
get datasource() |
2752 |
{ |
2753 |
this._ensureDS(); |
2754 |
return this._ds; |
2755 |
}, |
2756 |
|
2757 |
///////////////////////////////////////////////////////////////////////////// |
2758 |
// Downloads |
2759 |
_transactions: [], |
2760 |
_downloadCount: 0, |
2761 |
addDownloads: function nsExtensionManager_addDownloads (aItems, aItemCount) |
2762 |
{ |
2763 |
this._downloadCount += aItemCount; |
2764 |
|
2765 |
var txn = new nsItemDownloadTransaction(this); |
2766 |
for (var i = 0; i < aItemCount; ++i) { |
2767 |
var currItem = aItems[i]; |
2768 |
var txnID = Math.round(Math.random() * 100); |
2769 |
txn.addDownload(currItem.name, currItem.xpiURL, currItem.iconURL, |
2770 |
currItem.type, txnID); |
2771 |
this._transactions.push(txn); |
2772 |
} |
2773 |
|
2774 |
// Kick off the download process for this transaction |
2775 |
gOS.addObserver(this, "offline-requested", false); |
2776 |
gOS.addObserver(this, "quit-application-requested", false); |
2777 |
gOS.notifyObservers(txn, "xpinstall-progress", "open"); |
2778 |
}, |
2779 |
|
2780 |
removeDownload: function nsExtensionManager_removeDownload (aURL, aType) |
2781 |
{ |
2782 |
for (var i = 0; i < this._transactions.length; ++i) { |
2783 |
if (this._transactions[i].containsURL(aURL)) { |
2784 |
this._transactions[i].removeDownload(aURL, aType); |
2785 |
return; |
2786 |
} |
2787 |
} |
2788 |
}, |
2789 |
|
2790 |
_removeAllDownloads: function nsExtensionManager__removeAllDownloads () |
2791 |
{ |
2792 |
for (var i = 0; i < this._transactions.length; ++i) |
2793 |
this._transactions[i].removeAllDownloads(); |
2794 |
}, |
2795 |
|
2796 |
// The nsIXPIProgressDialog implementation in the download transaction object |
2797 |
// forwards notifications through these methods which we then pass on to any |
2798 |
// front end objects implementing nsIExtensionDownloadProgressListener that |
2799 |
// are listening. We maintain the master state of download operations HERE, |
2800 |
// not in the front end, because if the user closes the extension or theme |
2801 |
// managers during the downloads we need to maintain state and not terminate |
2802 |
// the download/install process. |
2803 |
onStateChange: function nsExtensionManager_onStateChange (aTransaction, aURL, aState, aValue) |
2804 |
{ |
2805 |
if (!(aURL in this._progressData)) |
2806 |
this._progressData[aURL] = { }; |
2807 |
this._progressData[aURL].state = aState; |
2808 |
|
2809 |
for (var i = 0; i < this._downloadObservers.length; ++i) |
2810 |
this._downloadObservers[i].onStateChange(aURL, aState, aValue); |
2811 |
|
2812 |
const nsIXPIProgressDialog = Components.interfaces.nsIXPIProgressDialog; |
2813 |
switch (aState) { |
2814 |
case nsIXPIProgressDialog.INSTALL_DONE: |
2815 |
--this._downloadCount; |
2816 |
break; |
2817 |
case nsIXPIProgressDialog.DIALOG_CLOSE: |
2818 |
for (var i = 0; i < this._transactions.length; ++i) { |
2819 |
if (this._transactions[i].id == aTransaction.id) { |
2820 |
this._transactions.splice(i, 1); |
2821 |
delete aTransaction; |
2822 |
break; |
2823 |
} |
2824 |
} |
2825 |
break; |
2826 |
} |
2827 |
}, |
2828 |
|
2829 |
_progressData: { }, |
2830 |
onProgress: function nsExtensionManager_onProgress (aURL, aValue, aMaxValue) |
2831 |
{ |
2832 |
for (var i = 0; i < this._downloadObservers.length; ++i) |
2833 |
this._downloadObservers[i].onProgress(aURL, aValue, aMaxValue); |
2834 |
|
2835 |
if (!(aURL in this._progressData)) |
2836 |
this._progressData[aURL] = { }; |
2837 |
this._progressData[aURL].progress = Math.round((aValue / aMaxValue) * 100); |
2838 |
}, |
2839 |
|
2840 |
_downloadObservers: [], |
2841 |
addDownloadObserver: function nsExtensionManager_addDownloadObserver (aXPIProgressDialog) |
2842 |
{ |
2843 |
for (var i = 0; i < this._downloadObservers.length; ++i) { |
2844 |
if (this._downloadObservers[i] == aXPIProgressDialog) |
2845 |
return i; |
2846 |
} |
2847 |
this._downloadObservers.push(aXPIProgressDialog); |
2848 |
return this._downloadObservers.length - 1; |
2849 |
}, |
2850 |
|
2851 |
removeDownloadObserverAt: function nsExtensionManager_removeDownloadObserverAt (aIndex) |
2852 |
{ |
2853 |
this._downloadObservers.splice(aIndex, 1); |
2854 |
if (this._downloadCount != 0) |
2855 |
this._ds.flushProgressInfo(this._progressData); |
2856 |
}, |
2857 |
|
2858 |
// |
2859 |
_ds: null, |
2860 |
|
2861 |
///////////////////////////////////////////////////////////////////////////// |
2862 |
// Other |
2863 |
|
2864 |
// This should NOT be called until after the window is shown! |
2865 |
_ensureDS: function nsExtensionManager__ensureDS () |
2866 |
{ |
2867 |
if (!this._ds) { |
2868 |
dump("*** loading the extensions datasource\n"); |
2869 |
this._ds = new nsExtensionsDataSource(); |
2870 |
if (this._ds) { |
2871 |
this._ds.loadExtensions(false); |
2872 |
this._ds.loadExtensions(true); |
2873 |
} |
2874 |
|
2875 |
// Ensure any pre-configured items are initialized. |
2876 |
(new nsInstalledExtensionReader(this)).read(); |
2877 |
} |
2878 |
}, |
2879 |
|
2880 |
///////////////////////////////////////////////////////////////////////////// |
2881 |
// nsIClassInfo |
2882 |
getInterfaces: function nsExtensionManager_getInterfaces (aCount) |
2883 |
{ |
2884 |
var interfaces = [Components.interfaces.nsIExtensionManager, |
2885 |
Components.interfaces.nsIXPIProgressDialog, |
2886 |
Components.interfaces.nsIObserver]; |
2887 |
aCount.value = interfaces.length; |
2888 |
return interfaces; |
2889 |
}, |
2890 |
|
2891 |
getHelperForLanguage: function nsExtensionManager_getHelperForLanguage (aLanguage) |
2892 |
{ |
2893 |
return null; |
2894 |
}, |
2895 |
|
2896 |
get contractID() |
2897 |
{ |
2898 |
return "@mozilla.org/extensions/manager;1"; |
2899 |
}, |
2900 |
|
2901 |
get classDescription() |
2902 |
{ |
2903 |
return "Extension Manager"; |
2904 |
}, |
2905 |
|
2906 |
get classID() |
2907 |
{ |
2908 |
return Components.ID("{8A115FAA-7DCB-4e8f-979B-5F53472F51CF}"); |
2909 |
}, |
2910 |
|
2911 |
get implementationLanguage() |
2912 |
{ |
2913 |
return Components.interfaces.nsIProgrammingLanguage.JAVASCRIPT; |
2914 |
}, |
2915 |
|
2916 |
get flags() |
2917 |
{ |
2918 |
return Components.interfaces.nsIClassInfo.SINGLETON; |
2919 |
}, |
2920 |
|
2921 |
///////////////////////////////////////////////////////////////////////////// |
2922 |
// nsISupports |
2923 |
QueryInterface: function nsExtensionManager_QueryInterface (aIID) |
2924 |
{ |
2925 |
if (!aIID.equals(Components.interfaces.nsIExtensionManager) && |
2926 |
!aIID.equals(Components.interfaces.nsIObserver) && |
2927 |
!aIID.equals(Components.interfaces.nsISupports)) |
2928 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
2929 |
return this; |
2930 |
} |
2931 |
}; |
2932 |
|
2933 |
/////////////////////////////////////////////////////////////////////////////// |
2934 |
// |
2935 |
// nsItemDownloadTransaction |
2936 |
// |
2937 |
// This object implements nsIXPIProgressDialog and represents a collection of |
2938 |
// XPI/JAR download and install operations. There is one |
2939 |
// nsItemDownloadTransaction per back-end XPInstallManager object. We maintain |
2940 |
// a collection of separate transaction objects because it's possible to have |
2941 |
// multiple separate XPInstall download/install operations going on |
2942 |
// simultaneously, each with its own XPInstallManager instance. For instance |
2943 |
// you could start downloading two extensions and then download a theme. Each |
2944 |
// of these operations would open the appropriate FE and have to be able to |
2945 |
// track each operation independently. |
2946 |
// |
2947 |
function nsItemDownloadTransaction(aManager) |
2948 |
{ |
2949 |
this._manager = aManager; |
2950 |
this._downloads = []; |
2951 |
} |
2952 |
|
2953 |
nsItemDownloadTransaction.prototype = { |
2954 |
_manager : null, |
2955 |
_downloads : [], |
2956 |
id : -1, |
2957 |
|
2958 |
addDownload: function nsItemDownloadTransaction_addDownload (aName, aURL, aIconURL, aItemType, aID) |
2959 |
{ |
2960 |
this._downloads.push({ url: aURL, type: aItemType, waiting: true }); |
2961 |
this._manager._ds.addDownload(aName, aURL, aIconURL, aItemType); |
2962 |
this.id = aID; |
2963 |
}, |
2964 |
|
2965 |
removeDownload: function nsItemDownloadTransaction_removeDownload (aURL, aItemType) |
2966 |
{ |
2967 |
this._manager._ds.removeDownload(aURL, aItemType); |
2968 |
}, |
2969 |
|
2970 |
removeAllDownloads: function nsItemDownloadTransaction_removeAllDownloads () |
2971 |
{ |
2972 |
for (var i = 0; i < this._downloads.length; ++i) |
2973 |
this.removeDownload(this._downloads[i].url, this._downloads[i].type); |
2974 |
}, |
2975 |
|
2976 |
containsURL: function nsItemDownloadTransaction_containsURL (aURL) |
2977 |
{ |
2978 |
for (var i = 0; i < this._downloads.length; ++i) { |
2979 |
if (this._downloads[i].url == aURL) |
2980 |
return true; |
2981 |
} |
2982 |
return false; |
2983 |
}, |
2984 |
|
2985 |
///////////////////////////////////////////////////////////////////////////// |
2986 |
// nsIXPIProgressDialog |
2987 |
onStateChange: function nsItemDownloadTransaction_onStateChange (aIndex, aState, aValue) |
2988 |
{ |
2989 |
this._manager.onStateChange(this, this._downloads[aIndex].url, aState, aValue); |
2990 |
}, |
2991 |
|
2992 |
onProgress: function nsItemDownloadTransaction_onProgress (aIndex, aValue, aMaxValue) |
2993 |
{ |
2994 |
this._manager.onProgress(this._downloads[aIndex].url, aValue, aMaxValue); |
2995 |
}, |
2996 |
|
2997 |
///////////////////////////////////////////////////////////////////////////// |
2998 |
// nsISupports |
2999 |
QueryInterface: function nsItemDownloadTransaction_QueryInterface (aIID) |
3000 |
{ |
3001 |
if (!aIID.equals(Components.interfaces.nsIXPIProgressDialog) && |
3002 |
!aIID.equals(Components.interfaces.nsISupports)) |
3003 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
3004 |
return this; |
3005 |
} |
3006 |
}; |
3007 |
|
3008 |
/////////////////////////////////////////////////////////////////////////////// |
3009 |
// |
3010 |
// nsExtensionItemUpdater |
3011 |
// |
3012 |
function nsExtensionItemUpdater(aTargetAppID, aTargetAppVersion, aEM) |
3013 |
{ |
3014 |
this._appID = aTargetAppID; |
3015 |
this._appVersion = aTargetAppVersion; |
3016 |
this._emDS = aEM._ds; |
3017 |
this._em = aEM; |
3018 |
|
3019 |
getVersionChecker(); |
3020 |
} |
3021 |
|
3022 |
nsExtensionItemUpdater.prototype = { |
3023 |
_appID : "", |
3024 |
_appVersion : "", |
3025 |
_emDS : null, |
3026 |
_em : null, |
3027 |
_versionUpdateOnly : 0, |
3028 |
_items : [], |
3029 |
|
3030 |
///////////////////////////////////////////////////////////////////////////// |
3031 |
// nsIExtensionItemUpdater |
3032 |
// |
3033 |
// When we check for updates to an item, there are two pieces of information |
3034 |
// that are returned - 1) info about the newest available version, if any, |
3035 |
// and 2) info about the currently installed version. The latter is provided |
3036 |
// primarily to inform the client of changes to the application compatibility |
3037 |
// metadata for the current item. Depending on the situation, either 2 or |
3038 |
// 1&2 may be what is required. |
3039 |
// |
3040 |
// Callers: |
3041 |
// 1 - nsUpdateService.js, user event |
3042 |
// User clicked on the update icon to invoke an update check, |
3043 |
// user clicked on an Extension/Theme and clicked "Update". In this |
3044 |
// case we want to update compatibility metadata about the installed |
3045 |
// version, and look for newer versions to offer. |
3046 |
// 2 - nsUpdateService.js, background event |
3047 |
// Timer fired, background update is being performed. In this case |
3048 |
// we also want to update compatibility metadata and look for newer |
3049 |
// versions. |
3050 |
// 3 - Mismatch |
3051 |
// User upgraded to a newer version of the app, update compatibility |
3052 |
// metadata and look for newer versions. |
3053 |
// 4 - Install Phone Home |
3054 |
// User installed an item that was deemed incompatible based only |
3055 |
// on the information provided in the item's install.rdf manifest, |
3056 |
// we look ONLY for compatibility updates in this case to determine |
3057 |
// whether or not the item can be installed. |
3058 |
// |
3059 |
checkForUpdates: function nsExtensionItemUpdater_checkForUpdates (aItems, aItemCount, |
3060 |
aVersionUpdateOnly) |
3061 |
{ |
3062 |
gOS.notifyObservers(null, "Update:Extension:Started", ""); |
3063 |
this._versionUpdateOnly = aVersionUpdateOnly; |
3064 |
this._items = aItems; |
3065 |
this._responseCount = aItemCount; |
3066 |
|
3067 |
// This is the number of extensions/themes/etc that we found updates for. |
3068 |
this._updateCount = 0; |
3069 |
|
3070 |
for (var i = 0; i < aItemCount; ++i) { |
3071 |
var e = this._items[i]; |
3072 |
gOS.notifyObservers(e, "Update:Extension:Item-Started", ""); |
3073 |
(new nsRDFItemUpdater(this)).checkForUpdates(e, aVersionUpdateOnly); |
3074 |
} |
3075 |
}, |
3076 |
|
3077 |
///////////////////////////////////////////////////////////////////////////// |
3078 |
// nsExtensionItemUpdater |
3079 |
_applyVersionUpdates: function nsExtensionItemUpdater__applyVersionUpdates (aLocalItem, aRemoteItem) |
3080 |
{ |
3081 |
var r = this._emDS._getResourceForItem(aLocalItem.id); |
3082 |
if (!r) return; |
3083 |
var targetAppInfo = this._emDS.getTargetApplicationInfo(aLocalItem.id, this._emDS, |
3084 |
getItemType(r.Value)); |
3085 |
if (gVersionChecker.compare(targetAppInfo.maxVersion, aRemoteItem.maxAppVersion) < 0) { |
3086 |
// Remotely specified maxVersion is newer than the maxVersion |
3087 |
// for the installed Extension. Apply that change to the datasource. |
3088 |
this._emDS.setTargetApplicationInfo(aLocalItem.id, |
3089 |
aRemoteItem.minAppVersion, |
3090 |
aRemoteItem.maxAppVersion, |
3091 |
null, aLocalItem.type); |
3092 |
|
3093 |
// If we got here through |checkForMismatches|, this extension has |
3094 |
// already been disabled, re-enable it. |
3095 |
if (this._emDS.getItemProperty(aLocalItem.id, "disabled") == "true") |
3096 |
this._em.enableExtension(aLocalItem.id); |
3097 |
} |
3098 |
}, |
3099 |
|
3100 |
_isValidUpdate: function nsExtensionItemUpdater__isValidUpdate (aLocalItem, aRemoteItem) |
3101 |
{ |
3102 |
var appExtensionsVersion = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
3103 |
|
3104 |
// Check if the update will only run on a newer version of Firefox. |
3105 |
if (aRemoteItem.minAppVersion && |
3106 |
gVersionChecker.compare(appExtensionsVersion, aRemoteItem.minAppVersion) < 0) |
3107 |
return false; |
3108 |
|
3109 |
// Check if the update will only run on an older version of Firefox. |
3110 |
if (aRemoteItem.maxAppVersion && |
3111 |
gVersionChecker.compare(appExtensionsVersion, aRemoteItem.maxAppVersion) > 0) |
3112 |
return false; |
3113 |
|
3114 |
return true; |
3115 |
}, |
3116 |
|
3117 |
_checkForDone: function nsExtensionItemUpdater__checkForDone () |
3118 |
{ |
3119 |
if (--this._responseCount == 0) { |
3120 |
if (!this._versionUpdateOnly) |
3121 |
gPref.setIntPref(PREF_UPDATE_COUNT, this._updateCount); |
3122 |
|
3123 |
gOS.notifyObservers(null, "Update:Extension:Ended", ""); |
3124 |
} |
3125 |
}, |
3126 |
|
3127 |
///////////////////////////////////////////////////////////////////////////// |
3128 |
// nsISupports |
3129 |
QueryInterface: function nsExtensionItemUpdater_QueryInterface (aIID) |
3130 |
{ |
3131 |
if (!aIID.equals(Components.interfaces.nsIExtensionItemUpdater) && |
3132 |
!aIID.equals(Components.interfaces.nsISupports)) |
3133 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
3134 |
return this; |
3135 |
} |
3136 |
}; |
3137 |
|
3138 |
function nsRDFItemUpdater(aUpdater) |
3139 |
{ |
3140 |
this._updater = aUpdater; |
3141 |
} |
3142 |
|
3143 |
nsRDFItemUpdater.prototype = { |
3144 |
_updater : null, |
3145 |
_versionUpdateOnly : 0, |
3146 |
_item : null, |
3147 |
|
3148 |
checkForUpdates: function (aItem, aVersionUpdateOnly) |
3149 |
{ |
3150 |
// A preference setting can disable updating for this item |
3151 |
// We'll also skip locked items. |
3152 |
try { |
3153 |
if (this._updater._emDS.getItemProperty(aItem.id, "locked") || |
3154 |
!gPref.getBoolPref(PREF_EM_ITEM_UPDATE_ENABLED.replace(/%UUID%/, aItem.id))) { |
3155 |
gOS.notifyObservers(null, "Update:Extension:Item-Ended", ""); |
3156 |
this._updater._checkForDone(); |
3157 |
return; |
3158 |
} |
3159 |
} |
3160 |
catch (e) { } |
3161 |
|
3162 |
this._versionUpdateOnly = aVersionUpdateOnly; |
3163 |
this._item = aItem; |
3164 |
|
3165 |
// Look for a custom update URI: 1) supplied by a pref, 2) supplied by the |
3166 |
// install manifest, 3) the default configuration |
3167 |
try { |
3168 |
var dsURI = gPref.getComplexValue(PREF_EM_ITEM_UPDATE_URL.replace(/%UUID%/, aItem.id), |
3169 |
Components.interfaces.nsIPrefLocalizedString).data; |
3170 |
} |
3171 |
catch (e) { } |
3172 |
if (!dsURI) |
3173 |
dsURI = aItem.updateRDF; |
3174 |
if (!dsURI) { |
3175 |
dsURI = gPref.getComplexValue(PREF_UPDATE_DEFAULT_URL, |
3176 |
Components.interfaces.nsIPrefLocalizedString).data; |
3177 |
} |
3178 |
dsURI = dsURI.replace(/%ITEM_ID%/g, aItem.id); |
3179 |
dsURI = dsURI.replace(/%ITEM_VERSION%/g, aItem.version); |
3180 |
dsURI = dsURI.replace(/%ITEM_MAXAPPVERSION%/g, aItem.maxAppVersion); |
3181 |
dsURI = dsURI.replace(/%APP_ID%/g, this._updater._appID); |
3182 |
dsURI = dsURI.replace(/%APP_VERSION%/g, this._updater._appVersion); |
3183 |
dsURI = dsURI.replace(/%REQ_VERSION%/g, 1); |
3184 |
|
3185 |
// escape() does not properly encode + symbols in any embedded FVF strings. |
3186 |
dsURI = dsURI.replace(/\+/g, "%2B"); |
3187 |
|
3188 |
var ds = gRDF.GetDataSource(dsURI); |
3189 |
var rds = ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource) |
3190 |
if (rds.loaded) |
3191 |
this.onDatasourceLoaded(ds, aItem); |
3192 |
else { |
3193 |
var sink = ds.QueryInterface(Components.interfaces.nsIRDFXMLSink); |
3194 |
sink.addXMLSinkObserver(this); |
3195 |
} |
3196 |
}, |
3197 |
|
3198 |
onDatasourceLoaded: function nsExtensionItemUpdater_onDatasourceLoaded (aDatasource, aLocalItem) |
3199 |
{ |
3200 |
/////////////////////////////////////////////////////////////////////////// |
3201 |
// The extension update RDF file looks something like this: |
3202 |
// |
3203 |
// <RDF:Description about="urn:mozilla:extension:{GUID}"> |
3204 |
// <em:updates> |
3205 |
// <RDF:Seq> |
3206 |
// <RDF:li resource="urn:mozilla:extension:{GUID}:4.9"/> |
3207 |
// <RDF:li resource="urn:mozilla:extension:{GUID}:5.0"/> |
3208 |
// </RDF:Seq> |
3209 |
// </em:updates> |
3210 |
// <!-- the version of the extension being offered --> |
3211 |
// <em:version>5.0</em:version> |
3212 |
// <em:updateLink>http://www.mysite.com/myext-50.xpi</em:updateLink> |
3213 |
// </RDF:Description> |
3214 |
// |
3215 |
// <RDF:Description about="urn:mozilla:extension:{GUID}:4.9"> |
3216 |
// <em:version>4.9</em:version> |
3217 |
// <em:targetApplication> |
3218 |
// <RDF:Description> |
3219 |
// <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> |
3220 |
// <em:minVersion>0.9</em:minVersion> |
3221 |
// <em:maxVersion>1.0</em:maxVersion> |
3222 |
// <em:updateLink>http://www.mysite.com/myext-49.xpi</em:updateLink> |
3223 |
// </RDF:Description> |
3224 |
// </em:targetApplication> |
3225 |
// </RDF:Description> |
3226 |
// |
3227 |
// If we get here because the following happened: |
3228 |
// 1) User was using Firefox 0.9 with ExtensionX 0.5 (minVersion 0.8, |
3229 |
// maxVersion 0.9 for Firefox) |
3230 |
// 2) User upgraded Firefox to 1.0 |
3231 |
// 3) |checkForMismatches| deems ExtensionX 0.5 incompatible with this |
3232 |
// new version of Firefox on the basis of its maxVersion |
3233 |
// 4) ** We reach this point ** |
3234 |
// |
3235 |
// If the version of ExtensionX (0.5) matches that provided by the |
3236 |
// server, then this is a cue that the author updated the rdf file |
3237 |
// or central repository to say "0.5 is ALSO compatible with Firefox 1.0, |
3238 |
// no changes are necessary." In this event, the local metadata for |
3239 |
// installed ExtensionX (0.5) is freshened with the new maxVersion, |
3240 |
// and we advance to the next item WITHOUT any download/install |
3241 |
// updates. |
3242 |
|
3243 |
// Parse the response RDF |
3244 |
function UpdateData() {}; |
3245 |
UpdateData.prototype = { version: "0.0", updateLink: null, |
3246 |
minVersion: "0.0", maxVersion: "0.0" }; |
3247 |
|
3248 |
var versionUpdate = new UpdateData(); |
3249 |
var newestUpdate = new UpdateData(); |
3250 |
|
3251 |
var newerItem, sameItem; |
3252 |
|
3253 |
// Firefox 1.0PR+ update.rdf format |
3254 |
if (!this._versionUpdateOnly) { |
3255 |
// Look for newer versions of this item, we only do this in "normal" |
3256 |
// mode... see comment by nsExtensionItemUpdater_checkForUpdates |
3257 |
// about how we do this in all cases but Install Phone Home - which |
3258 |
// only needs to do a version check. |
3259 |
this._parseV20UpdateInfo(aDatasource, aLocalItem, newestUpdate, false); |
3260 |
if (!newestUpdate.updateLink) { |
3261 |
// Firefox 0.9 update.rdf format - does not contain any metadata |
3262 |
// that can be used for version updates, so performed in the "all updates" |
3263 |
// mode only. |
3264 |
this._parseV10UpdateInfo(aDatasource, aLocalItem, newestUpdate); |
3265 |
} |
3266 |
|
3267 |
newerItem = Components.classes["@mozilla.org/updates/item;1"] |
3268 |
.createInstance(Components.interfaces.nsIUpdateItem); |
3269 |
newerItem.init(aLocalItem.id, |
3270 |
newestUpdate.version, |
3271 |
newestUpdate.minVersion, |
3272 |
newestUpdate.maxVersion, |
3273 |
aLocalItem.name, |
3274 |
-1, newestUpdate.updateLink, "", "", |
3275 |
aLocalItem.type); |
3276 |
if (this._updater._isValidUpdate(aLocalItem, newerItem)) |
3277 |
++this._updater._updateCount; |
3278 |
else |
3279 |
newerItem = null; |
3280 |
} |
3281 |
|
3282 |
// Now look for updated version compatibility metadata for the currently |
3283 |
// installed version... |
3284 |
this._parseV20UpdateInfo(aDatasource, aLocalItem, versionUpdate, true); |
3285 |
|
3286 |
var result = gVersionChecker.compare(versionUpdate.version, |
3287 |
aLocalItem.version); |
3288 |
if (result == 0) { |
3289 |
// Local version exactly matches the "Version Update" remote version, |
3290 |
// Apply changes into local datasource. |
3291 |
sameItem = Components.classes["@mozilla.org/updates/item;1"] |
3292 |
.createInstance(Components.interfaces.nsIUpdateItem); |
3293 |
sameItem.init(aLocalItem.id, |
3294 |
versionUpdate.version, |
3295 |
versionUpdate.minVersion, |
3296 |
versionUpdate.maxVersion, |
3297 |
aLocalItem.name, |
3298 |
-1, "", "", "", |
3299 |
aLocalItem.type); |
3300 |
if (!this._versionUpdateOnly) { |
3301 |
if (this._updater._isValidUpdate(aLocalItem, sameItem)) { |
3302 |
// Install-time updates are not written to the DS because there is no |
3303 |
// entry yet, EM just uses the notifications to ascertain (by hand) |
3304 |
// whether or not there is a remote maxVersion tweak that makes the |
3305 |
// item being installed compatible. |
3306 |
this._updater._applyVersionUpdates(aLocalItem, sameItem); |
3307 |
} |
3308 |
else |
3309 |
sameItem = null; |
3310 |
} |
3311 |
} |
3312 |
|
3313 |
gOS.notifyObservers(!this._versionUpdateOnly ? newerItem : sameItem, |
3314 |
"Update:Extension:Item-Ended", ""); |
3315 |
|
3316 |
// Only one call of this._updater._checkForDone is needed for RDF |
3317 |
// responses, since there is only one response per item. |
3318 |
this._updater._checkForDone(); |
3319 |
}, |
3320 |
|
3321 |
// Parses Firefox 0.9 update.rdf format |
3322 |
_parseV10UpdateInfo: function nsExtensionItemUpdater__parseV10UpdateInfo (aDataSource, aLocalItem, aUpdateData) |
3323 |
{ |
3324 |
var extensionRes = gRDF.GetResource(getItemPrefix(aLocalItem.type) + aLocalItem.id); |
3325 |
|
3326 |
aUpdateData.version = this._getPropertyFromResource(aDataSource, extensionRes, |
3327 |
"version", aLocalItem); |
3328 |
aUpdateData.updateLink = this._getPropertyFromResource(aDataSource, extensionRes, |
3329 |
"updateLink", aLocalItem); |
3330 |
}, |
3331 |
|
3332 |
// Get a compulsory property from a resource. Reports an error if the |
3333 |
// property was not present. |
3334 |
_getPropertyFromResource: function nsExtensionItemUpdater__getPropertyFromResource (aDataSource, |
3335 |
aSourceResource, |
3336 |
aProperty, |
3337 |
aLocalItem) |
3338 |
{ |
3339 |
var rv; |
3340 |
try { |
3341 |
var property = gRDF.GetResource(EM_NS(aProperty)); |
3342 |
rv = stringData(aDataSource.GetTarget(aSourceResource, property, true)); |
3343 |
if (rv == "--") |
3344 |
throw Components.results.NS_ERROR_FAILURE; |
3345 |
} |
3346 |
catch (e) { |
3347 |
// XXXben show console message "aProperty" not found on aSourceResource. |
3348 |
return null; |
3349 |
} |
3350 |
return rv; |
3351 |
}, |
3352 |
|
3353 |
// Parses Firefox 1.0RC1+ update.rdf format |
3354 |
_parseV20UpdateInfo: function nsExtensionItemUpdater__parseV20UpdateInfo (aDataSource, |
3355 |
aLocalItem, |
3356 |
aUpdateData, |
3357 |
aVersionUpdatesOnly) |
3358 |
{ |
3359 |
var extensionRes = gRDF.GetResource(getItemPrefix(aLocalItem.type) + aLocalItem.id); |
3360 |
|
3361 |
var updatesArc = gRDF.GetResource(EM_NS("updates")); |
3362 |
var updates = aDataSource.GetTarget(extensionRes, updatesArc, true); |
3363 |
|
3364 |
try { |
3365 |
updates = updates.QueryInterface(Components.interfaces.nsIRDFResource); |
3366 |
} |
3367 |
catch (e) { return; } |
3368 |
|
3369 |
var cu = Components.classes["@mozilla.org/rdf/container-utils;1"] |
3370 |
.getService(Components.interfaces.nsIRDFContainerUtils); |
3371 |
if (cu.IsContainer(aDataSource, updates)) { |
3372 |
var c = Components.classes["@mozilla.org/rdf/container;1"] |
3373 |
.getService(Components.interfaces.nsIRDFContainer); |
3374 |
c.Init(aDataSource, updates); |
3375 |
|
3376 |
// In "all update types" mode, we look for newer versions, starting with the |
3377 |
// current installed version. |
3378 |
if (!aVersionUpdatesOnly) |
3379 |
aUpdateData.version = aLocalItem.version; |
3380 |
|
3381 |
var versions = c.GetElements(); |
3382 |
while (versions.hasMoreElements()) { |
3383 |
// There are two different methodologies for collecting version |
3384 |
// information depending on whether or not we've bene invoked in |
3385 |
// "version updates only" mode or "version+newest" mode. |
3386 |
var version = versions.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3387 |
this._parseV20Update(aDataSource, version, aLocalItem, aUpdateData, aVersionUpdatesOnly); |
3388 |
if (aVersionUpdatesOnly && aUpdateData.updateLink) |
3389 |
break; |
3390 |
} |
3391 |
} |
3392 |
}, |
3393 |
|
3394 |
_parseV20Update: function nsExtensionItemUpdater__parseV20Update (aDataSource, |
3395 |
aUpdateResource, |
3396 |
aLocalItem, |
3397 |
aUpdateData, |
3398 |
aVersionUpdatesOnly) |
3399 |
{ |
3400 |
var version = this._getPropertyFromResource(aDataSource, aUpdateResource, |
3401 |
"version", aLocalItem); |
3402 |
var taArc = gRDF.GetResource(EM_NS("targetApplication")); |
3403 |
var targetApps = aDataSource.GetTargets(aUpdateResource, taArc, true); |
3404 |
while (targetApps.hasMoreElements()) { |
3405 |
var targetApp = targetApps.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3406 |
var id = this._getPropertyFromResource(aDataSource, targetApp, "id", aLocalItem); |
3407 |
if (id != this._updater._appID) |
3408 |
continue; |
3409 |
|
3410 |
var result = gVersionChecker.compare(version, aLocalItem.version); |
3411 |
if (aVersionUpdatesOnly ? result == 0 : result > 0) { |
3412 |
aUpdateData.version = version; |
3413 |
aUpdateData.updateLink = this._getPropertyFromResource(aDataSource, targetApp, "updateLink", aLocalItem); |
3414 |
aUpdateData.minVersion = this._getPropertyFromResource(aDataSource, targetApp, "minVersion", aLocalItem); |
3415 |
aUpdateData.maxVersion = this._getPropertyFromResource(aDataSource, targetApp, "maxVersion", aLocalItem); |
3416 |
} |
3417 |
} |
3418 |
}, |
3419 |
|
3420 |
onDatasourceError: function nsExtensionItemUpdater_onDatasourceError (aItem, aError) |
3421 |
{ |
3422 |
gOS.notifyObservers(aItem, "Update:Extension:Item-Error", aError); |
3423 |
this._updater._checkForDone(); |
3424 |
}, |
3425 |
|
3426 |
///////////////////////////////////////////////////////////////////////////// |
3427 |
// nsIRDFXMLSinkObserver |
3428 |
onBeginLoad: function(aSink) |
3429 |
{ |
3430 |
}, |
3431 |
onInterrupt: function(aSink) |
3432 |
{ |
3433 |
}, |
3434 |
onResume: function(aSink) |
3435 |
{ |
3436 |
}, |
3437 |
|
3438 |
onEndLoad: function(aSink) |
3439 |
{ |
3440 |
try { |
3441 |
aSink.removeXMLSinkObserver(this); |
3442 |
|
3443 |
var ds = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource); |
3444 |
this.onDatasourceLoaded(ds, this._item); |
3445 |
} |
3446 |
catch (e) { } |
3447 |
}, |
3448 |
|
3449 |
onError: function(aSink, aStatus, aErrorMsg) |
3450 |
{ |
3451 |
try { |
3452 |
aSink.removeXMLSinkObserver(this); |
3453 |
|
3454 |
this.onDatasourceError(this._item, aStatus.toString()); |
3455 |
} |
3456 |
catch (e) { } |
3457 |
} |
3458 |
}; |
3459 |
|
3460 |
/////////////////////////////////////////////////////////////////////////////// |
3461 |
// |
3462 |
// nsExtensionsDataSource |
3463 |
// |
3464 |
function nsExtensionsDataSource() |
3465 |
{ |
3466 |
} |
3467 |
|
3468 |
nsExtensionsDataSource.prototype = { |
3469 |
_appExtensions : null, |
3470 |
_profileExtensions : null, |
3471 |
_composite : null, |
3472 |
safeMode : false, |
3473 |
|
3474 |
_emR: function nsExtensionsDataSource__emR (aProperty) |
3475 |
{ |
3476 |
return gRDF.GetResource(EM_NS(aProperty)); |
3477 |
}, |
3478 |
|
3479 |
_emL: function nsExtensionsDataSource__emL (aLiteral) |
3480 |
{ |
3481 |
return gRDF.GetLiteral(aLiteral); |
3482 |
}, |
3483 |
|
3484 |
isCompatible: function nsExtensionsDataSource__isCompatible (aDS, aSource) |
3485 |
{ |
3486 |
// XXXben - cheap hack. Our bundled items are always compatible. |
3487 |
if (aSource.EqualsNode(gRDF.GetResource(getItemPrefix(nsIUpdateItem.TYPE_THEME) + "{972ce4c6-7e08-4474-a285-3208198ce6fd}")) || |
3488 |
aSource.EqualsNode(gRDF.GetResource(getItemPrefix(nsIUpdateItem.TYPE_EXTENSION) + "{641d8d09-7dda-4850-8228-ac0ab65e2ac9}"))) |
3489 |
return true; |
3490 |
|
3491 |
var appVersion = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
3492 |
var appID = gPref.getCharPref(PREF_EM_APP_ID); |
3493 |
|
3494 |
var targets = aDS.GetTargets(aSource, this._emR("targetApplication"), true); |
3495 |
var idRes = this._emR("id"); |
3496 |
var minVersionRes = this._emR("minVersion"); |
3497 |
var maxVersionRes = this._emR("maxVersion"); |
3498 |
while (targets.hasMoreElements()) { |
3499 |
var targetApp = targets.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3500 |
var id = stringData(aDS.GetTarget(targetApp, idRes, true)); |
3501 |
var minVersion = stringData(aDS.GetTarget(targetApp, minVersionRes, true)); |
3502 |
var maxVersion = stringData(aDS.GetTarget(targetApp, maxVersionRes, true)); |
3503 |
|
3504 |
if (id == appID) { |
3505 |
var versionChecker = getVersionChecker(); |
3506 |
return ((versionChecker.compare(appVersion, minVersion) >= 0) && |
3507 |
(versionChecker.compare(appVersion, maxVersion) <= 0)); |
3508 |
} |
3509 |
} |
3510 |
return false; |
3511 |
}, |
3512 |
|
3513 |
getIncompatibleItemList: function nsExtensionsDataSource_getIncompatibleItemList (aAppID, aAppVersion, aItemType) |
3514 |
{ |
3515 |
var items = []; |
3516 |
var roots = getItemRoots(aItemType); |
3517 |
for (var i = 0; i < roots.length; ++i) { |
3518 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3519 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3520 |
ctr.Init(this._composite, gRDF.GetResource(roots[i])); |
3521 |
|
3522 |
var elements = ctr.GetElements(); |
3523 |
while (elements.hasMoreElements()) { |
3524 |
var e = elements.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3525 |
var itemType = getItemType(e.Value); |
3526 |
if (itemType != -1 && !this.isCompatible(this, e)) |
3527 |
items.push(this.getItemForID(stripPrefix(e.Value, itemType))); |
3528 |
} |
3529 |
} |
3530 |
return items; |
3531 |
}, |
3532 |
|
3533 |
getItemList: function nsExtensionsDataSource_getItemList(aItemID, aType, aCountRef) |
3534 |
{ |
3535 |
var items = []; |
3536 |
if (aItemID) |
3537 |
items.push(this.getItemForID(aItemID)); |
3538 |
else { |
3539 |
var roots = getItemRoots(aType); |
3540 |
for (var i = 0; i < roots.length; ++i) { |
3541 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3542 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3543 |
ctr.Init(this, gRDF.GetResource(roots[i])); |
3544 |
|
3545 |
var elements = ctr.GetElements(); |
3546 |
while (elements.hasMoreElements()) { |
3547 |
var e = elements.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3548 |
var itemType = getItemType(e.Value); |
3549 |
if (itemType != -1) |
3550 |
items.push(this.getItemForID(stripPrefix(e.Value, itemType))); |
3551 |
} |
3552 |
} |
3553 |
} |
3554 |
aCountRef.value = items.length; |
3555 |
return items; |
3556 |
}, |
3557 |
|
3558 |
// XXXben this function is a little weird since it returns an array of strings, not |
3559 |
// an array of nsIUpdateItems... |
3560 |
getItemsWithFlagSet: function nsExtensionsDataSource_getItemsWithFlagSet (aFlag) |
3561 |
{ |
3562 |
var items = []; |
3563 |
var sources = this.GetSources(this._emR(aFlag), this._emL("true"), true); |
3564 |
while (sources.hasMoreElements()) { |
3565 |
var e = sources.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3566 |
|
3567 |
items.push(stripPrefix(e.Value, getItemType(e.Value))); |
3568 |
} |
3569 |
return items; |
3570 |
}, |
3571 |
|
3572 |
getItemsWithFlagUnset: function nsExtensionsDataSource_getItemsWithFlagUnset (aFlag, aItemType) |
3573 |
{ |
3574 |
var items = []; |
3575 |
|
3576 |
var roots = getItemRoots(aItemType); |
3577 |
for (var i = 0; i < roots.length; ++i) { |
3578 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3579 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3580 |
ctr.Init(this, gRDF.GetResource(roots[i])); |
3581 |
|
3582 |
var elements = ctr.GetElements(); |
3583 |
while (elements.hasMoreElements()) { |
3584 |
var e = elements.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3585 |
if (getItemType(e.Value) != -1) { |
3586 |
var value = this.GetTarget(e, this._emR(aFlag), true); |
3587 |
if (!value) |
3588 |
items.push(stripPrefix(e.Value, getItemType(e.Value))); |
3589 |
} |
3590 |
} |
3591 |
} |
3592 |
return items; |
3593 |
}, |
3594 |
|
3595 |
getItemForID: function nsExtensionsDataSource_getItemForID (aItemID) |
3596 |
{ |
3597 |
var item = Components.classes["@mozilla.org/updates/item;1"] |
3598 |
.createInstance(Components.interfaces.nsIUpdateItem); |
3599 |
|
3600 |
var r = this._getResourceForItem(aItemID); |
3601 |
if (!r) |
3602 |
return null; |
3603 |
|
3604 |
var targetAppInfo = this.getTargetApplicationInfo(aItemID, this, getItemType(r.Value)); |
3605 |
item.init(aItemID, |
3606 |
this.getItemProperty(aItemID, "version"), |
3607 |
targetAppInfo ? targetAppInfo.minVersion : "", |
3608 |
targetAppInfo ? targetAppInfo.maxVersion : "", |
3609 |
this.getItemProperty(aItemID, "name"), |
3610 |
-1, |
3611 |
"", /* XPI Update URL */ |
3612 |
this.getItemProperty(aItemID, "iconURL"), |
3613 |
this.getItemProperty(aItemID, "updateURL"), |
3614 |
getItemType(r.Value)); |
3615 |
return item; |
3616 |
}, |
3617 |
|
3618 |
isProfileItem: function nsExtensionsDataSource_isProfileItem (aItemID) |
3619 |
{ |
3620 |
return this.getItemProperty(aItemID, "installLocation") == "profile"; |
3621 |
}, |
3622 |
|
3623 |
_setProperty: function nsExtensionsDataSource__setProperty (aDS, aSource, aProperty, aNewValue) |
3624 |
{ |
3625 |
var oldValue = aDS.GetTarget(aSource, aProperty, true); |
3626 |
if (oldValue) { |
3627 |
if (aNewValue) |
3628 |
aDS.Change(aSource, aProperty, oldValue, aNewValue); |
3629 |
else |
3630 |
aDS.Unassert(aSource, aProperty, oldValue); |
3631 |
} |
3632 |
else if (aNewValue) |
3633 |
aDS.Assert(aSource, aProperty, aNewValue, true); |
3634 |
}, |
3635 |
|
3636 |
// Given a GUID, get the RDF resource representing the item. This |
3637 |
// will be of the form urn:mozilla:extension:{GUID} or |
3638 |
// urn:mozilla:theme:{GUID} depending on the item type. |
3639 |
_getResourceForItem: function nsExtensionsDataSource__getResourceForItem(aItemID) |
3640 |
{ |
3641 |
var res = null; |
3642 |
|
3643 |
// We can try and infer the resource URI from presence in one of the |
3644 |
// item lists. |
3645 |
var rdfc = Components.classes["@mozilla.org/rdf/container;1"] |
3646 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3647 |
rdfc.Init(this, gRDF.GetResource(ROOT_EXTENSION)); |
3648 |
res = gRDF.GetResource(PREFIX_EXTENSION + aItemID); |
3649 |
if (rdfc.IndexOf(res) != -1) |
3650 |
return res; |
3651 |
|
3652 |
rdfc.Init(this, gRDF.GetResource(ROOT_THEME)); |
3653 |
res = gRDF.GetResource(PREFIX_THEME + aItemID); |
3654 |
if (rdfc.IndexOf(res) != -1) |
3655 |
return res; |
3656 |
|
3657 |
return null; |
3658 |
}, |
3659 |
|
3660 |
getTargetApplicationInfo: function nsExtensionsDataSource_getTargetApplicationInfo (aExtensionID, aDataSource, aType) |
3661 |
{ |
3662 |
var internalName = this.getItemProperty(aExtensionID, "internalName"); |
3663 |
// The default theme is always compatible. |
3664 |
if (internalName == KEY_DEFAULT_THEME) { |
3665 |
var ver = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
3666 |
return { minVersion: ver, maxVersion: ver }; |
3667 |
} |
3668 |
|
3669 |
var appID = gPref.getCharPref(PREF_EM_APP_ID); |
3670 |
var r = gRDF.GetResource(getItemPrefix(aType) + aExtensionID); |
3671 |
var targetApps = aDataSource.GetTargets(r, this._emR("targetApplication"), true); |
3672 |
if (!targetApps.hasMoreElements()) { |
3673 |
r = gRDF.GetResource("urn:mozilla:install-manifest"); |
3674 |
targetApps = aDataSource.GetTargets(r, this._emR("targetApplication"), true); |
3675 |
} |
3676 |
while (targetApps.hasMoreElements()) { |
3677 |
var targetApp = targetApps.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3678 |
if (targetApp) { |
3679 |
try { |
3680 |
var id = stringData(aDataSource.GetTarget(targetApp, this._emR("id"), true)); |
3681 |
if (id != appID) // Different target application |
3682 |
continue; |
3683 |
|
3684 |
return { minVersion: stringData(aDataSource.GetTarget(targetApp, this._emR("minVersion"), true)), |
3685 |
maxVersion: stringData(aDataSource.GetTarget(targetApp, this._emR("maxVersion"), true)) }; |
3686 |
} |
3687 |
catch (e) { |
3688 |
continue; |
3689 |
} |
3690 |
} |
3691 |
} |
3692 |
return null; |
3693 |
}, |
3694 |
|
3695 |
setTargetApplicationInfo: function nsExtensionsDataSource_setTargetApplicationInfo(aExtensionID, aMinVersion, |
3696 |
aMaxVersion, aDataSource, aType) |
3697 |
{ |
3698 |
var targetDataSource = aDataSource; |
3699 |
if (!targetDataSource) |
3700 |
targetDataSource = this; |
3701 |
|
3702 |
var appID = gPref.getCharPref(PREF_EM_APP_ID); |
3703 |
var r = gRDF.GetResource(getItemPrefix(aType) + aExtensionID); |
3704 |
var targetApps = targetDataSource.GetTargets(r, this._emR("targetApplication"), true); |
3705 |
if (!targetApps.hasMoreElements()) { |
3706 |
r = gRDF.GetResource("urn:mozilla:install-manifest"); |
3707 |
targetApps = aDataSource.GetTargets(r, this._emR("targetApplication"), true); |
3708 |
} |
3709 |
while (targetApps.hasMoreElements()) { |
3710 |
var targetApp = targetApps.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3711 |
if (targetApp) { |
3712 |
var id = stringData(targetDataSource.GetTarget(targetApp, this._emR("id"), true)); |
3713 |
if (id != appID) // Different target application |
3714 |
continue; |
3715 |
|
3716 |
if (!aDataSource) { |
3717 |
var isProfile = this.isProfileItem(aExtensionID); |
3718 |
targetDataSource = isProfile ? this._profileExtensions : this._appExtensions; |
3719 |
} |
3720 |
this._setProperty(targetDataSource, targetApp, this._emR("minVersion"), this._emL(aMinVersion)); |
3721 |
this._setProperty(targetDataSource, targetApp, this._emR("maxVersion"), this._emL(aMaxVersion)); |
3722 |
|
3723 |
if (!aDataSource) |
3724 |
this._flush(isProfile); |
3725 |
} |
3726 |
} |
3727 |
}, |
3728 |
|
3729 |
getItemProperty: function nsExtensionsDataSource_getItemProperty (aItemID, aProperty) |
3730 |
{ |
3731 |
var item = this._getResourceForItem(aItemID); |
3732 |
if (!item) { |
3733 |
dump("*** getItemProperty failing for lack of an item. This means getResourceForItem \ |
3734 |
failed to locate a resource for aItemID (item ID = " + aItemID + ", property = " + aProperty + ")\n"); |
3735 |
} |
3736 |
else |
3737 |
return this._getItemProperty(item, aProperty); |
3738 |
return undefined; |
3739 |
}, |
3740 |
|
3741 |
_getItemProperty: function nsExtensionsDataSource__getItemProperty (aItemResource, aProperty) |
3742 |
{ |
3743 |
try { |
3744 |
return this.GetTarget(aItemResource, this._emR(aProperty), true).QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
3745 |
} |
3746 |
catch (e) {} |
3747 |
return ""; |
3748 |
}, |
3749 |
|
3750 |
setItemProperty: function nsExtensionsDataSource_setItemProperty( |
3751 |
aItemID, aPropertyArc, aPropertyValue, aIsProfile, aItemType) |
3752 |
{ |
3753 |
var item = gRDF.GetResource(getItemPrefix(aItemType) + aItemID); |
3754 |
var ds = aIsProfile ? this._profileExtensions : this._appExtensions; |
3755 |
this._setProperty(ds, item, aPropertyArc, aPropertyValue); |
3756 |
|
3757 |
this._flush(aIsProfile); |
3758 |
}, |
3759 |
|
3760 |
insertForthcomingItem: function nsExtensionsDataSource_insertForthcomingItem (aItemID, aItemType, aIsProfile) |
3761 |
{ |
3762 |
// Get the target container and resource |
3763 |
var targetDS = aIsProfile ? this._profileExtensions : this._appExtensions; |
3764 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3765 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3766 |
ctr.Init(targetDS, gRDF.GetResource(getItemRoot(aItemType))); |
3767 |
|
3768 |
var targetRes = gRDF.GetResource(getItemPrefix(aItemType) + aItemID); |
3769 |
// Don't bother adding the extension to the list if it's already there. |
3770 |
// (i.e. we're upgrading) |
3771 |
var oldIndex = ctr.IndexOf(targetRes); |
3772 |
if (oldIndex == -1) |
3773 |
ctr.AppendElement(targetRes); |
3774 |
|
3775 |
this._flush(aIsProfile); |
3776 |
}, |
3777 |
|
3778 |
removeItemFromContainer: function nsExtensionsDataSource_removeItemFromContainer(aItemID, aItemType, aIsProfile) |
3779 |
{ |
3780 |
var targetDS = aIsProfile ? this._profileExtensions : this._appExtensions; |
3781 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3782 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3783 |
ctr.Init(targetDS, gRDF.GetResource(getItemRoot(aItemType))); |
3784 |
|
3785 |
var item = gRDF.GetResource(getItemPrefix(aItemType) + aItemID); |
3786 |
ctr.RemoveElement(item, true); |
3787 |
|
3788 |
this._flush(aIsProfile); |
3789 |
}, |
3790 |
|
3791 |
// Removes a corrupt item entry from the extension list added due to |
3792 |
// buggy code in previous EM versions! |
3793 |
removeCorruptItem: function nsExtensionsDataSource_removeCorruptItem (aItemID, aItemType, aIsProfile) |
3794 |
{ |
3795 |
this.removeItemMetadata(aItemID, aItemType); |
3796 |
this.removeItemFromContainer(aItemID, aItemType, aIsProfile); |
3797 |
}, |
3798 |
|
3799 |
// Removes a corrupt download entry from the list. |
3800 |
removeCorruptDLItem: function nsExtensionsDataSource_removeCorruptDLItem (aItemURI, aItemType) |
3801 |
{ |
3802 |
var itemResource = gRDF.GetResource(aItemURI); |
3803 |
var itemRoot = gRDF.GetResource(getItemRoot(aItemType)); |
3804 |
var dses = [this._profileExtensions, this._appExtensions]; |
3805 |
var isProfile = [true, false]; |
3806 |
for (var i = 0; i < dses.length; ++i) { |
3807 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
3808 |
.createInstance(Components.interfaces.nsIRDFContainer); |
3809 |
ctr.Init(dses[i], itemRoot); |
3810 |
if (ctr.IndexOf(itemResource) != -1) { |
3811 |
ctr.RemoveElement(itemResource, true); |
3812 |
this._cleanResource(itemResource, dses[i]); |
3813 |
this._flush(isProfile[i]); |
3814 |
break; |
3815 |
} |
3816 |
} |
3817 |
}, |
3818 |
|
3819 |
addItemMetadata: function nsExtensionsDataSource_addItemMetadata (aItemID, aItemType, aSourceDS, aIsProfile) |
3820 |
{ |
3821 |
var targetDS = aIsProfile ? this._profileExtensions : this._appExtensions; |
3822 |
var targetRes = gRDF.GetResource(getItemPrefix(aItemType) + aItemID); |
3823 |
|
3824 |
// Copy the assertions over from the source datasource. |
3825 |
|
3826 |
// Assert properties with single values |
3827 |
var singleProps = ["version", "name", "description", "creator", "homepageURL", |
3828 |
"updateURL", "updateService", "optionsURL", "aboutURL", |
3829 |
"iconURL", "internalName"]; |
3830 |
|
3831 |
// Global extensions and themes can also be locked (can't be removed or disabled). |
3832 |
if (!aIsProfile) |
3833 |
singleProps = singleProps.concat(["locked"]); |
3834 |
var sourceRes = gRDF.GetResource("urn:mozilla:install-manifest"); |
3835 |
for (var i = 0; i < singleProps.length; ++i) { |
3836 |
var property = this._emR(singleProps[i]); |
3837 |
var literal = aSourceDS.GetTarget(sourceRes, property, true); |
3838 |
if (!literal) |
3839 |
continue; // extension didn't specify this property, no big deal, continue. |
3840 |
|
3841 |
var val = literal.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
3842 |
|
3843 |
var oldValue = targetDS.GetTarget(targetRes, property, true); |
3844 |
if (!oldValue) |
3845 |
targetDS.Assert(targetRes, property, literal, true); |
3846 |
else |
3847 |
targetDS.Change(targetRes, property, oldValue, literal); |
3848 |
} |
3849 |
|
3850 |
// Assert properties with multiple values |
3851 |
var manyProps = ["contributor"]; |
3852 |
for (var i = 0; i < singleProps.length; ++i) { |
3853 |
var property = this._emR(manyProps[i]); |
3854 |
var literals = aSourceDS.GetTargets(sourceRes, property, true); |
3855 |
|
3856 |
var oldValues = targetDS.GetTargets(targetRes, property, true); |
3857 |
while (oldValues.hasMoreElements()) { |
3858 |
var oldValue = oldValues.getNext().QueryInterface(Components.interfaces.nsIRDFNode); |
3859 |
targetDS.Unassert(targetRes, property, oldValue); |
3860 |
} |
3861 |
while (literals.hasMoreElements()) { |
3862 |
var literal = literals.getNext().QueryInterface(Components.interfaces.nsIRDFNode); |
3863 |
targetDS.Assert(targetRes, property, literal, true); |
3864 |
} |
3865 |
} |
3866 |
|
3867 |
// Version/Dependency Info |
3868 |
var versionProps = ["targetApplication", "requires"]; |
3869 |
var idRes = this._emR("id"); |
3870 |
var minVersionRes = this._emR("minVersion"); |
3871 |
var maxVersionRes = this._emR("maxVersion"); |
3872 |
for (var i = 0; i < versionProps.length; ++i) { |
3873 |
var property = this._emR(versionProps[i]); |
3874 |
var newVersionInfos = aSourceDS.GetTargets(sourceRes, property, true); |
3875 |
|
3876 |
var oldVersionInfos = targetDS.GetTargets(targetRes, property, true); |
3877 |
while (oldVersionInfos.hasMoreElements()) { |
3878 |
var oldVersionInfo = oldVersionInfos.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3879 |
this._cleanResource(oldVersionInfo, targetDS); |
3880 |
targetDS.Unassert(targetRes, property, oldVersionInfo); |
3881 |
} |
3882 |
while (newVersionInfos.hasMoreElements()) { |
3883 |
var newVersionInfo = newVersionInfos.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
3884 |
var anon = gRDF.GetAnonymousResource(); |
3885 |
targetDS.Assert(anon, idRes, aSourceDS.GetTarget(newVersionInfo, idRes, true), true); |
3886 |
targetDS.Assert(anon, minVersionRes, aSourceDS.GetTarget(newVersionInfo, minVersionRes, true), true); |
3887 |
targetDS.Assert(anon, maxVersionRes, aSourceDS.GetTarget(newVersionInfo, maxVersionRes, true), true); |
3888 |
targetDS.Assert(targetRes, property, anon, true); |
3889 |
} |
3890 |
} |
3891 |
|
3892 |
this._flush(aIsProfile); |
3893 |
}, |
3894 |
|
3895 |
lockUnlockItem: function nsExtensionsDataSource_lockUnlockItem (aItemID, aLocked) |
3896 |
{ |
3897 |
var item = this._getResourceForItem(aItemID); |
3898 |
if (item) { |
3899 |
var val = aLocked ? this._emL("true") : this._emL("false"); |
3900 |
this.setItemProperty(aItemID, this._emR("locked"), val, false, getItemType(item.Value)); |
3901 |
this._flush(false); |
3902 |
} |
3903 |
}, |
3904 |
|
3905 |
enableExtension: function nsExtensionsDataSource_enableExtension (aExtensionID) |
3906 |
{ |
3907 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3908 |
this._emL("true"), true, |
3909 |
nsIUpdateItem.TYPE_EXTENSION); |
3910 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3911 |
null, true, |
3912 |
nsIUpdateItem.TYPE_EXTENSION); |
3913 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3914 |
null, true, |
3915 |
nsIUpdateItem.TYPE_EXTENSION); |
3916 |
}, |
3917 |
|
3918 |
disableExtension: function nsExtensionsDataSource_disableExtension (aExtensionID) |
3919 |
{ |
3920 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3921 |
this._emL("true"), true, |
3922 |
nsIUpdateItem.TYPE_EXTENSION); |
3923 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3924 |
null, true, |
3925 |
nsIUpdateItem.TYPE_EXTENSION); |
3926 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3927 |
this._emL("true"), true, |
3928 |
nsIUpdateItem.TYPE_EXTENSION); |
3929 |
}, |
3930 |
|
3931 |
uninstallExtension: function nsExtensionsDataSource_uninstallExtension (aExtensionID) |
3932 |
{ |
3933 |
// We have to do this check BEFORE we unhook all the metadata from this |
3934 |
// extension's resource, otherwise we'll think it's a global extension. |
3935 |
var isProfile = this.isProfileItem(aExtensionID); |
3936 |
|
3937 |
this.setItemProperty(aExtensionID, this._emR("toBeInstalled"), |
3938 |
null, isProfile, |
3939 |
nsIUpdateItem.TYPE_EXTENSION); |
3940 |
this.setItemProperty(aExtensionID, this._emR("toBeUninstalled"), |
3941 |
this._emL("true"), isProfile, |
3942 |
nsIUpdateItem.TYPE_EXTENSION); |
3943 |
this._flush(isProfile); |
3944 |
}, |
3945 |
|
3946 |
doneInstallingTheme: function nsExtensionsDataSource_doneInstallingTheme (aThemeID) |
3947 |
{ |
3948 |
// Notify observers of a change in the iconURL property to cause the UI to |
3949 |
// refresh. |
3950 |
var theme = this._getResourceForItem(aThemeID); |
3951 |
var iconURLArc = this._emR("iconURL"); |
3952 |
var iconURL = this.GetTarget(theme, iconURLArc, true); |
3953 |
if (theme, iconURLArc, iconURL) { |
3954 |
for (var i = 0; i < this._observers.length; ++i) |
3955 |
this._observers[i].onAssert(this, theme, iconURLArc, iconURL); |
3956 |
} |
3957 |
}, |
3958 |
|
3959 |
enableTheme: function nsExtensionsDataSource_enableTheme (aThemeID) |
3960 |
{ |
3961 |
this.setItemProperty(aThemeID, this._emR("disabled"), |
3962 |
null, this.isProfileItem(aThemeID), |
3963 |
nsIUpdateItem.TYPE_THEME); |
3964 |
}, |
3965 |
|
3966 |
disableTheme: function nsExtensionsDataSource_disableTheme (aThemeID) |
3967 |
{ |
3968 |
this.setItemProperty(aThemeID, this._emR("disabled"), |
3969 |
this._emL("true"), this.isProfileItem(aThemeID), |
3970 |
nsIUpdateItem.TYPE_THEME); |
3971 |
}, |
3972 |
|
3973 |
uninstallTheme: function nsExtensionsDataSource_uninstallTheme(aThemeID) |
3974 |
{ |
3975 |
// We have to do this check BEFORE we unhook all the metadata from this |
3976 |
// extension's resource, otherwise we'll think it's a global extension. |
3977 |
var isProfile = this.isProfileItem(aThemeID); |
3978 |
|
3979 |
// Clean the extension resource |
3980 |
this.removeItemMetadata(aThemeID, nsIUpdateItem.TYPE_THEME); |
3981 |
|
3982 |
var uninstaller = new nsThemeUninstaller(this); |
3983 |
uninstaller.uninstall(aThemeID, isProfile); |
3984 |
|
3985 |
// Do this LAST since inferences are made about an item based on |
3986 |
// what container it's in. |
3987 |
this.removeItemFromContainer(aThemeID, nsIUpdateItem.TYPE_THEME, isProfile); |
3988 |
}, |
3989 |
|
3990 |
// Cleans the resource of all its assertionss |
3991 |
removeItemMetadata: function nsExtensionsDataSource_removeItemMetadata (aItemID, aItemType) |
3992 |
{ |
3993 |
var item = gRDF.GetResource(getItemPrefix(aItemType) + aItemID); |
3994 |
var isProfile = this.isProfileItem(aItemID); |
3995 |
var ds = isProfile ? this._profileExtensions : this._appExtensions; |
3996 |
|
3997 |
var resources = ["targetApplication", "requires"]; |
3998 |
for (var i = 0; i < resources.length; ++i) { |
3999 |
var targetApps = ds.GetTargets(item, this._emR(resources[i]), true); |
4000 |
while (targetApps.hasMoreElements()) { |
4001 |
var targetApp = targetApps.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
4002 |
this._cleanResource(targetApp, ds); |
4003 |
} |
4004 |
} |
4005 |
|
4006 |
this._cleanResource(item, ds); |
4007 |
}, |
4008 |
|
4009 |
_cleanResource: function nsExtensionsDataSource__cleanResource (aResource, aDS) |
4010 |
{ |
4011 |
// Remove outward arcs |
4012 |
var arcs = aDS.ArcLabelsOut(aResource); |
4013 |
while (arcs.hasMoreElements()) { |
4014 |
var arc = arcs.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
4015 |
var value = aDS.GetTarget(aResource, arc, true); |
4016 |
if (value) |
4017 |
aDS.Unassert(aResource, arc, value); |
4018 |
} |
4019 |
}, |
4020 |
|
4021 |
moveTop: function nsExtensionsDataSource_moveTop (aItemID) |
4022 |
{ |
4023 |
var extensions = gRDF.GetResource("urn:mozilla:extension:root"); |
4024 |
var item = this._getResourceForItem(aItemID); |
4025 |
var ds = this._getTargetDSFromSource(item); |
4026 |
var container = Components.classes["@mozilla.org/rdf/container;1"] |
4027 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4028 |
container.Init(ds, extensions); |
4029 |
|
4030 |
var index = container.IndexOf(item); |
4031 |
if (index > 1) { |
4032 |
container.RemoveElement(item, false); |
4033 |
container.InsertElementAt(item, 1, true); |
4034 |
} |
4035 |
this._flush(this.isProfileItem(aItemID)); |
4036 |
}, |
4037 |
|
4038 |
moveUp: function nsExtensionsDataSource_moveUp (aItemID) |
4039 |
{ |
4040 |
var extensions = gRDF.GetResource("urn:mozilla:extension:root"); |
4041 |
var item = this._getResourceForItem(aItemID); |
4042 |
var ds = this._getTargetDSFromSource(item); |
4043 |
var container = Components.classes["@mozilla.org/rdf/container;1"] |
4044 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4045 |
container.Init(ds, extensions); |
4046 |
|
4047 |
var item = this._getResourceForItem(aItemID); |
4048 |
var index = container.IndexOf(item); |
4049 |
if (index > 1) { |
4050 |
container.RemoveElement(item, false); |
4051 |
container.InsertElementAt(item, index - 1, true); |
4052 |
} |
4053 |
this._flush(this.isProfileItem(aItemID)); |
4054 |
}, |
4055 |
|
4056 |
moveDown: function nsExtensionsDataSource_moveDown (aItemID) |
4057 |
{ |
4058 |
var extensions = gRDF.GetResource("urn:mozilla:extension:root"); |
4059 |
var item = this._getResourceForItem(aItemID); |
4060 |
var ds = this._getTargetDSFromSource(item); |
4061 |
var container = Components.classes["@mozilla.org/rdf/container;1"] |
4062 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4063 |
container.Init(ds, extensions); |
4064 |
|
4065 |
var item = this._getResourceForItem(aItemID); |
4066 |
var index = container.IndexOf(item); |
4067 |
var count = container.GetCount(); |
4068 |
if (index < count) { |
4069 |
container.RemoveElement(item, true); |
4070 |
container.InsertElementAt(item, index + 1, true); |
4071 |
} |
4072 |
this._flush(this.isProfileItem(aItemID)); |
4073 |
}, |
4074 |
|
4075 |
isDownloadItem: function nsExtensionsDataSource_isDownloadItem (aItemID) |
4076 |
{ |
4077 |
return this.getItemProperty(aItemID, "downloadURL") != ""; |
4078 |
}, |
4079 |
|
4080 |
addDownload: function nsExtensionsDataSource_addDownload (aName, aURL, aIconURL, aItemType) |
4081 |
{ |
4082 |
var root = gRDF.GetResource(getItemRoot(aItemType)); |
4083 |
|
4084 |
var res = gRDF.GetResource(aURL); |
4085 |
this._setProperty(this._profileExtensions, res, |
4086 |
this._emR("name"), |
4087 |
gRDF.GetLiteral(aName)) |
4088 |
this._setProperty(this._profileExtensions, res, |
4089 |
this._emR("version"), |
4090 |
gRDF.GetLiteral(" ")); |
4091 |
this._setProperty(this._profileExtensions, res, |
4092 |
this._emR("iconURL"), |
4093 |
gRDF.GetLiteral(aIconURL)); |
4094 |
this._setProperty(this._profileExtensions, res, |
4095 |
this._emR("downloadURL"), |
4096 |
gRDF.GetLiteral(aURL)); |
4097 |
|
4098 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
4099 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4100 |
ctr.Init(this._profileExtensions, root); |
4101 |
if (ctr.IndexOf(res) == -1) |
4102 |
ctr.InsertElementAt(res, 1, true); |
4103 |
|
4104 |
this._flush(true); |
4105 |
}, |
4106 |
|
4107 |
removeDownload: function nsExtensionsDataSource_removeDownload (aURL, aItemType) |
4108 |
{ |
4109 |
var root = gRDF.GetResource(getItemRoot(aItemType)); |
4110 |
var res = gRDF.GetResource(aURL); |
4111 |
var ctr = Components.classes["@mozilla.org/rdf/container;1"] |
4112 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4113 |
ctr.Init(this._profileExtensions, root); |
4114 |
ctr.RemoveElement(res, true); |
4115 |
this._cleanResource(res, this._profileExtensions); |
4116 |
|
4117 |
this._flush(true); |
4118 |
}, |
4119 |
|
4120 |
flushProgressInfo: function nsExtensionsDataSource_flushProgressInfo (aData) |
4121 |
{ |
4122 |
for (var url in aData) { |
4123 |
var res = gRDF.GetResource(url); |
4124 |
this._setProperty(this._profileExtensions, res, |
4125 |
this._emR("state"), |
4126 |
gRDF.GetIntLiteral(aData[url].state)); |
4127 |
this._setProperty(this._profileExtensions, res, |
4128 |
this._emR("progress"), |
4129 |
gRDF.GetIntLiteral(aData[url].progress)); |
4130 |
} |
4131 |
this._flush(true); |
4132 |
}, |
4133 |
|
4134 |
loadExtensions: function nsExtensionsDataSource_loadExtensions (aProfile) |
4135 |
{ |
4136 |
var extensionsFile = getFile(getDirKey(aProfile), |
4137 |
[DIR_EXTENSIONS, FILE_EXTENSIONS]); |
4138 |
ensureExtensionsFiles(aProfile); |
4139 |
|
4140 |
var ds = gRDF.GetDataSourceBlocking(getURLSpecFromFile(extensionsFile)); |
4141 |
if (aProfile) { |
4142 |
this._profileExtensions = ds; |
4143 |
if (!this._composite) |
4144 |
this._composite = Components.classes["@mozilla.org/rdf/datasource;1?name=composite-datasource"] |
4145 |
.createInstance(Components.interfaces.nsIRDFDataSource); |
4146 |
if (this._appExtensions) |
4147 |
this._composite.RemoveDataSource(this._appExtensions); |
4148 |
this._composite.AddDataSource(this._profileExtensions); |
4149 |
if (this._appExtensions) |
4150 |
this._composite.AddDataSource(this._appExtensions); |
4151 |
} |
4152 |
else { |
4153 |
this._appExtensions = ds; |
4154 |
|
4155 |
if (!this._composite) |
4156 |
this._composite = Components.classes["@mozilla.org/rdf/datasource;1?name=composite-datasource"] |
4157 |
.createInstance(Components.interfaces.nsIRDFCompositeDataSource); |
4158 |
this._composite.AddDataSource(this._appExtensions); |
4159 |
} |
4160 |
}, |
4161 |
|
4162 |
///////////////////////////////////////////////////////////////////////////// |
4163 |
// nsIRDFDataSource |
4164 |
get URI() |
4165 |
{ |
4166 |
return "rdf:extensions"; |
4167 |
}, |
4168 |
|
4169 |
GetSource: function nsExtensionsDataSource_GetSource (aProperty, aTarget, aTruthValue) |
4170 |
{ |
4171 |
return this._composite.GetSource(aProperty, aTarget, aTruthValue); |
4172 |
}, |
4173 |
|
4174 |
GetSources: function nsExtensionsDataSource_GetSources (aProperty, aTarget, aTruthValue) |
4175 |
{ |
4176 |
return this._composite.GetSources(aProperty, aTarget, aTruthValue); |
4177 |
}, |
4178 |
|
4179 |
_getThemeJARURL: function nsExtensionsDataSource__getThemeJARURL (aSource, aFileName, aFallbackURL) |
4180 |
{ |
4181 |
var id = stripPrefix(aSource.Value, nsIUpdateItem.TYPE_THEME); |
4182 |
var chromeDir = getDir(this.isProfileItem(id) ? KEY_PROFILEDIR : KEY_APPDIR, |
4183 |
[DIR_EXTENSIONS, id, DIR_CHROME]); |
4184 |
|
4185 |
var jarFile = null; |
4186 |
// XXXben hack for pre-configured classic.jar |
4187 |
if ((!chromeDir.exists() || !chromeDir.directoryEntries.hasMoreElements()) && |
4188 |
aSource.EqualsNode(gRDF.GetResource("urn:mozilla:theme:{972ce4c6-7e08-4474-a285-3208198ce6fd}"))) |
4189 |
jarFile = getFile(KEY_APPDIR, ["chrome", "classic.jar"]); |
4190 |
if (chromeDir.directoryEntries.hasMoreElements() || jarFile) { |
4191 |
if (!jarFile) |
4192 |
jarFile = chromeDir.directoryEntries.getNext().QueryInterface(Components.interfaces.nsIFile); |
4193 |
|
4194 |
if (jarFile.exists()) { |
4195 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
4196 |
.createInstance(Components.interfaces.nsIZipReader); |
4197 |
zipReader.init(jarFile); |
4198 |
zipReader.open(); |
4199 |
var url = aFallbackURL; |
4200 |
try { |
4201 |
zipReader.getEntry(aFileName); |
4202 |
url = "jar:" + getURLSpecFromFile(jarFile) + "!/" + aFileName; |
4203 |
} |
4204 |
catch (e) { } |
4205 |
zipReader.close(); |
4206 |
|
4207 |
if (url) |
4208 |
return gRDF.GetResource(url); |
4209 |
} |
4210 |
} |
4211 |
return null; |
4212 |
}, |
4213 |
|
4214 |
GetTarget: function nsExtensionsDataSource_GetTarget(aSource, aProperty, aTruthValue) |
4215 |
{ |
4216 |
if (!aSource) |
4217 |
return null; |
4218 |
|
4219 |
if (aProperty.EqualsNode(this._emR("iconURL"))) { |
4220 |
var itemType = getItemType(aSource.Value); |
4221 |
if (itemType != -1 && itemType & nsIUpdateItem.TYPE_EXTENSION) { |
4222 |
var hasIconURL = this._composite.hasArcOut(aSource, aProperty); |
4223 |
// If the download entry doesn't have a IconURL property, use a |
4224 |
// generic icon URL instead. |
4225 |
if (!hasIconURL) |
4226 |
return gRDF.GetResource("chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png"); |
4227 |
else { |
4228 |
var iconURL = this._composite.GetTarget(aSource, aProperty, true); |
4229 |
iconURL = iconURL.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; |
4230 |
var cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
4231 |
.getService(Components.interfaces.nsIChromeRegistry); |
4232 |
var ioServ = Components.classes["@mozilla.org/network/io-service;1"] |
4233 |
.getService(Components.interfaces.nsIIOService); |
4234 |
var uri = ioServ.newURI(iconURL, null, null); |
4235 |
try { |
4236 |
cr.convertChromeURL(uri); |
4237 |
} |
4238 |
catch(e) { |
4239 |
// bogus URI, supply a generic icon. |
4240 |
return gRDF.GetResource("chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png"); |
4241 |
} |
4242 |
} |
4243 |
} |
4244 |
else if (itemType != -1 && itemType & nsIUpdateItem.TYPE_THEME) { |
4245 |
var res = this._getThemeJARURL(aSource, "icon.png", "chrome://mozapps/skin/extensions/themeGeneric.png"); |
4246 |
if (res) |
4247 |
return res; |
4248 |
} |
4249 |
} |
4250 |
else if (aProperty.EqualsNode(this._emR("previewImage"))) { |
4251 |
var itemType = getItemType(aSource.Value); |
4252 |
if (itemType != -1 && itemType & nsIUpdateItem.TYPE_THEME) { |
4253 |
var res = this._getThemeJARURL(aSource, "preview.png", null); |
4254 |
if (res) |
4255 |
return res; |
4256 |
} |
4257 |
} |
4258 |
else if (aProperty.EqualsNode(this._emR("installLocation"))) { |
4259 |
var arcs = this._profileExtensions.ArcLabelsOut(aSource); |
4260 |
return arcs.hasMoreElements() ? this._emL("profile") : this._emL("global"); |
4261 |
} |
4262 |
else if (aProperty.EqualsNode(this._emR("disabled"))) { |
4263 |
if (this.safeMode) |
4264 |
return this._emL("true"); |
4265 |
// fall through to default. |
4266 |
} |
4267 |
else if (aProperty.EqualsNode(this._emR("itemType"))) { |
4268 |
// We can try and infer the type from presence in one of the |
4269 |
// item lists. |
4270 |
var rdfc = Components.classes["@mozilla.org/rdf/container;1"] |
4271 |
.createInstance(Components.interfaces.nsIRDFContainer); |
4272 |
rdfc.Init(this, gRDF.GetResource(ROOT_EXTENSION)); |
4273 |
if (rdfc.IndexOf(aSource) != -1) |
4274 |
return this._emL("extension"); |
4275 |
|
4276 |
rdfc.Init(this, gRDF.GetResource(ROOT_THEME)); |
4277 |
if (rdfc.IndexOf(aSource) != -1) |
4278 |
return this._emL("theme"); |
4279 |
} |
4280 |
else if (aProperty.EqualsNode(this._emR("compatible"))) { |
4281 |
var type = getItemType(aSource.Value); |
4282 |
var id = stripPrefix(aSource.Value, type); |
4283 |
var targetAppInfo = this.getTargetApplicationInfo(id, this, type); |
4284 |
if (!targetAppInfo) |
4285 |
return this._emL("false"); |
4286 |
getVersionChecker(); |
4287 |
|
4288 |
var appVersion = gPref.getCharPref(PREF_EM_APP_EXTENSIONS_VERSION); |
4289 |
if (gVersionChecker.compare(targetAppInfo.maxVersion, appVersion) < 0 || |
4290 |
gVersionChecker.compare(appVersion, targetAppInfo.minVersion) < 0) { |
4291 |
// OK, this item is incompatible. |
4292 |
return this._emL("false"); |
4293 |
} |
4294 |
return this._emL("true"); |
4295 |
} |
4296 |
else if (aProperty.EqualsNode(this._emR("displayDescription"))) { |
4297 |
// We have a separate property for the description of the extension items |
4298 |
// which is displayed in the EM list - because we overload this value with |
4299 |
// alternative messages when the extension is disabled because of |
4300 |
// incompatibility. |
4301 |
var disabled = this.getItemProperty(stripPrefix(aSource.Value, getItemType(aSource.Value)), |
4302 |
"disabled"); |
4303 |
if (disabled == "true") { |
4304 |
// See if this item was disabled because it was incompatible. |
4305 |
// XXXben potential visual-glitch bug here with extensions whose install.rdf |
4306 |
// manifests state that they are incompatible but when phone home checking |
4307 |
// reveals that they are compatible and they are installed the |
4308 |
// incompatible metadata is written anyway and will remain in the ds |
4309 |
// until the next background update check corrects it - this means that |
4310 |
// when a compatible extension is installed in this manner it is |
4311 |
// likely that when it is disabled it will show this special-case |
4312 |
// error message. |
4313 |
var compatible = this.getItemProperty(stripPrefix(aSource.Value, getItemType(aSource.Value)), |
4314 |
"compatible"); |
4315 |
if (compatible != "true") { |
4316 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
4317 |
.getService(Components.interfaces.nsIStringBundleService); |
4318 |
var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties"); |
4319 |
var brandStrings = sbs.createBundle("chrome://global/locale/brand.properties"); |
4320 |
var brandShortName = brandStrings.GetStringFromName("brandShortName"); |
4321 |
var appVersion = gPref.getCharPref(PREF_EM_APP_VERSION); |
4322 |
var incompatibleMessage = extensionStrings.formatStringFromName("incompatibleExtension", |
4323 |
[brandShortName, appVersion], 2); |
4324 |
return this._emL(incompatibleMessage); |
4325 |
} |
4326 |
} |
4327 |
// Use the "description" property. |
4328 |
return this.GetTarget(aSource, this._emR("description"), aTruthValue); |
4329 |
} |
4330 |
else if (aProperty.EqualsNode(this._emR("name")) || |
4331 |
aProperty.EqualsNode(this._emR("description")) || |
4332 |
aProperty.EqualsNode(this._emR("creator")) || |
4333 |
aProperty.EqualsNode(this._emR("homepageURL"))) { |
4334 |
// These are localizable properties that a language pack supplied by the |
4335 |
// Extension may override. |
4336 |
var prefName = PREF_EM_EXTENSION_FORMAT.replace(/%UUID%/, |
4337 |
stripPrefix(aSource.Value, |
4338 |
nsIUpdateItem.TYPE_EXTENSION)) + |
4339 |
stripPropertyPrefix(aProperty.Value, EM_NS_PREFIX); |
4340 |
try { |
4341 |
var value = gPref.getComplexValue(prefName, |
4342 |
Components.interfaces.nsIPrefLocalizedString); |
4343 |
if (value.data) |
4344 |
return this._emL(value.data); |
4345 |
} |
4346 |
catch (e) { |
4347 |
} |
4348 |
} |
4349 |
|
4350 |
return this._composite.GetTarget(aSource, aProperty, aTruthValue); |
4351 |
}, |
4352 |
|
4353 |
GetTargets: function nsExtensionsDataSource_GetTargets (aSource, aProperty, aTruthValue) |
4354 |
{ |
4355 |
if (aProperty.EqualsNode(this._emR("name")) || |
4356 |
aProperty.EqualsNode(this._emR("contributor"))) { |
4357 |
// These are localizable properties that a language pack supplied by the |
4358 |
// Extension may override. |
4359 |
var contributors = []; |
4360 |
var prefName = PREF_EM_EXTENSION_FORMAT.replace(/%UUID%/, |
4361 |
stripPrefix(aSource.Value, |
4362 |
nsIUpdateItem.TYPE_EXTENSION)) + |
4363 |
stripPropertyPrefix(aProperty.Value, EM_NS_PREFIX); |
4364 |
var i = 0; |
4365 |
do { |
4366 |
try { |
4367 |
var value = gPref.getComplexValue(prefName + "." + ++i, |
4368 |
Components.interfaces.nsIPrefLocalizedString); |
4369 |
if (value.data) |
4370 |
contributors.push(this._emL(value.data)); |
4371 |
} |
4372 |
catch (e) { |
4373 |
try { |
4374 |
var value = gPref.getComplexValue(prefName, |
4375 |
Components.interfaces.nsIPrefLocalizedString); |
4376 |
if (value.data) |
4377 |
contributors.push(this._emL(value.data)); |
4378 |
} |
4379 |
catch (e) { |
4380 |
} |
4381 |
break; |
4382 |
} |
4383 |
} |
4384 |
while (1); |
4385 |
if (contributors.length > 0) |
4386 |
return new ArrayEnumerator(contributors); |
4387 |
} |
4388 |
return this._composite.GetTargets(aSource, aProperty, aTruthValue); |
4389 |
}, |
4390 |
|
4391 |
_getTargetDSFromSource: function nsExtensionsDataSource__getTargetDSFromSource (aSource) |
4392 |
{ |
4393 |
var itemID = stripPrefix(aSource.Value, nsIUpdateItem.TYPE_ADDON); |
4394 |
return this.isProfileItem(itemID) ? this._profileExtensions : this._appExtensions; |
4395 |
}, |
4396 |
|
4397 |
Assert: function nsExtensionsDataSource_Assert (aSource, aProperty, aTarget, aTruthValue) |
4398 |
{ |
4399 |
var targetDS = this._getTargetDSFromSource(aSource); |
4400 |
targetDS.Assert(aSource, aProperty, aTarget, aTruthValue); |
4401 |
}, |
4402 |
|
4403 |
Unassert: function nsExtensionsDataSource_Unassert (aSource, aProperty, aTarget) |
4404 |
{ |
4405 |
var targetDS = this._getTargetDSFromSource(aSource); |
4406 |
targetDS.Unassert(aSource, aProperty, aTarget); |
4407 |
}, |
4408 |
|
4409 |
Change: function nsExtensionsDataSource_Change (aSource, aProperty, aOldTarget, aNewTarget) |
4410 |
{ |
4411 |
var targetDS = this._getTargetDSFromSource(aSource); |
4412 |
targetDS.Change(aSource, aProperty, aOldTarget, aNewTarget); |
4413 |
}, |
4414 |
|
4415 |
Move: function nsExtensionsDataSource_Move (aSource, aNewSource, aProperty, aTarget) |
4416 |
{ |
4417 |
var targetDS = this._getTargetDSFromSource(aSource); |
4418 |
targetDS.Move(aSource, aNewSource, aProperty, aTarget); |
4419 |
}, |
4420 |
|
4421 |
HasAssertion: function nsExtensionsDataSource_HasAssertion (aSource, aProperty, aTarget, aTruthValue) |
4422 |
{ |
4423 |
if (!aSource || !aProperty || !aTarget) |
4424 |
return false; |
4425 |
return this._composite.HasAssertion(aSource, aProperty, aTarget, aTruthValue); |
4426 |
}, |
4427 |
|
4428 |
_observers: [], |
4429 |
AddObserver: function nsExtensionsDataSource_AddObserver (aObserver) |
4430 |
{ |
4431 |
for (var i = 0; i < this._observers.length; ++i) { |
4432 |
if (this._observers[i] == aObserver) |
4433 |
return; |
4434 |
} |
4435 |
this._observers.push(aObserver); |
4436 |
this._composite.AddObserver(aObserver); |
4437 |
}, |
4438 |
|
4439 |
RemoveObserver: function nsExtensionsDataSource_RemoveObserver (aObserver) |
4440 |
{ |
4441 |
for (var i = 0; i < this._observers.length; ++i) { |
4442 |
if (this._observers[i] == aObserver) |
4443 |
this._observers.splice(i, 1); |
4444 |
} |
4445 |
this._composite.RemoveObserver(aObserver); |
4446 |
}, |
4447 |
|
4448 |
ArcLabelsIn: function nsExtensionsDataSource_ArcLabelsIn (aNode) |
4449 |
{ |
4450 |
return this._composite.ArcLabelsIn(aNode); |
4451 |
}, |
4452 |
|
4453 |
ArcLabelsOut: function nsExtensionsDataSource_ArcLabelsOut (aSource) |
4454 |
{ |
4455 |
return this._composite.ArcLabelsOut(aSource); |
4456 |
}, |
4457 |
|
4458 |
GetAllResources: function nsExtensionsDataSource_GetAllResources () |
4459 |
{ |
4460 |
return this._composite.GetAllResources(); |
4461 |
}, |
4462 |
|
4463 |
IsCommandEnabled: function nsExtensionsDataSource_IsCommandEnabled (aSources, aCommand, aArguments) |
4464 |
{ |
4465 |
return this._composite.IsCommandEnabled(aSources, aCommand, aArguments); |
4466 |
}, |
4467 |
|
4468 |
DoCommand: function nsExtensionsDataSource_DoCommand (aSources, aCommand, aArguments) |
4469 |
{ |
4470 |
this._composite.DoCommand(aSources, aCommand, aArguments); |
4471 |
}, |
4472 |
|
4473 |
GetAllCmds: function nsExtensionsDataSource_GetAllCmds (aSource) |
4474 |
{ |
4475 |
return this._composite.GetAllCmds(aSource); |
4476 |
}, |
4477 |
|
4478 |
hasArcIn: function nsExtensionsDataSource_hasArcIn (aNode, aArc) |
4479 |
{ |
4480 |
return this._composite.hasArcIn(aNode, aArc); |
4481 |
}, |
4482 |
|
4483 |
hasArcOut: function nsExtensionsDataSource_hasArcOut (aSource, aArc) |
4484 |
{ |
4485 |
return this._composite.hasArcOut(aSource, aArc); |
4486 |
}, |
4487 |
|
4488 |
beginUpdateBatch: function nsExtensionsDataSource_beginUpdateBatch () |
4489 |
{ |
4490 |
return this._composite.beginUpdateBatch(); |
4491 |
}, |
4492 |
|
4493 |
endUpdateBatch: function nsExtensionsDataSource_endUpdateBatch () |
4494 |
{ |
4495 |
return this._composite.endUpdateBatch(); |
4496 |
}, |
4497 |
|
4498 |
///////////////////////////////////////////////////////////////////////////// |
4499 |
// nsIRDFRemoteDataSource |
4500 |
|
4501 |
get loaded() |
4502 |
{ |
4503 |
throw Components.results.NS_ERROR_NOT_IMPLEMENTED; |
4504 |
}, |
4505 |
|
4506 |
Init: function nsExtensionsDataSource_Init (aURI) |
4507 |
{ |
4508 |
}, |
4509 |
|
4510 |
Refresh: function nsExtensionsDataSource_Refresh (aBlocking) |
4511 |
{ |
4512 |
}, |
4513 |
|
4514 |
Flush: function nsExtensionsDataSource_Flush () |
4515 |
{ |
4516 |
this._flush(false); |
4517 |
this._flush(true); |
4518 |
}, |
4519 |
|
4520 |
FlushTo: function nsExtensionsDataSource_FlushTo (aURI) |
4521 |
{ |
4522 |
}, |
4523 |
|
4524 |
_flush: function nsExtensionsDataSource__flush (aIsProfile) |
4525 |
{ |
4526 |
var ds = aIsProfile ? this._profileExtensions : this._appExtensions; |
4527 |
var rds = ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); |
4528 |
rds.Flush(); |
4529 |
}, |
4530 |
|
4531 |
///////////////////////////////////////////////////////////////////////////// |
4532 |
// nsISupports |
4533 |
QueryInterface: function nsExtensionsDataSource_QueryInterface (aIID) |
4534 |
{ |
4535 |
if (!aIID.equals(Components.interfaces.nsIRDFDataSource) && |
4536 |
!aIID.equals(Components.interfaces.nsIRDFRemoteDataSource) && |
4537 |
!aIID.equals(Components.interfaces.nsISupports)) |
4538 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
4539 |
return this; |
4540 |
} |
4541 |
}; |
4542 |
|
4543 |
|
4544 |
var gModule = { |
4545 |
_firstTime: true, |
4546 |
|
4547 |
registerSelf: function (aComponentManager, aFileSpec, aLocation, aType) |
4548 |
{ |
4549 |
if (this._firstTime) { |
4550 |
this._firstTime = false; |
4551 |
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN; |
4552 |
} |
4553 |
aComponentManager = aComponentManager.QueryInterface(Components.interfaces.nsIComponentRegistrar); |
4554 |
|
4555 |
for (var key in this._objects) { |
4556 |
var obj = this._objects[key]; |
4557 |
aComponentManager.registerFactoryLocation(obj.CID, obj.className, obj.contractID, |
4558 |
aFileSpec, aLocation, aType); |
4559 |
} |
4560 |
|
4561 |
/* |
4562 |
// Make the Extension Manager a startup observer |
4563 |
var categoryManager = Components.classes["@mozilla.org/categorymanager;1"] |
4564 |
.getService(Components.interfaces.nsICategoryManager); |
4565 |
categoryManager.addCategoryEntry("app-startup", this._objects.manager.className, |
4566 |
"service," + this._objects.manager.contractID, |
4567 |
true, true, null); |
4568 |
*/ |
4569 |
}, |
4570 |
|
4571 |
getClassObject: function (aComponentManager, aCID, aIID) |
4572 |
{ |
4573 |
if (!aIID.equals(Components.interfaces.nsIFactory)) |
4574 |
throw Components.results.NS_ERROR_NOT_IMPLEMENTED; |
4575 |
|
4576 |
for (var key in this._objects) { |
4577 |
if (aCID.equals(this._objects[key].CID)) |
4578 |
return this._objects[key].factory; |
4579 |
} |
4580 |
|
4581 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
4582 |
}, |
4583 |
|
4584 |
_objects: { |
4585 |
manager: { CID : nsExtensionManager.prototype.classID, |
4586 |
contractID : nsExtensionManager.prototype.contractID, |
4587 |
className : nsExtensionManager.prototype.classDescription, |
4588 |
factory : { |
4589 |
createInstance: function (aOuter, aIID) |
4590 |
{ |
4591 |
if (aOuter != null) |
4592 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
4593 |
|
4594 |
return (new nsExtensionManager()).QueryInterface(aIID); |
4595 |
} |
4596 |
} |
4597 |
} |
4598 |
}, |
4599 |
|
4600 |
canUnload: function (aComponentManager) |
4601 |
{ |
4602 |
return true; |
4603 |
} |
4604 |
}; |
4605 |
|
4606 |
function NSGetModule(compMgr, fileSpec) |
4607 |
{ |
4608 |
return gModule; |
4609 |
} |
|
|
4610 |
++ toolkit/mozapps/extensions/src/nsExtensionManager.js.in |
Lines 20-25
Link Here
|
20 |
* |
20 |
* |
21 |
* Contributor(s): |
21 |
* Contributor(s): |
22 |
* Ben Goodger <ben@bengoodger.com> |
22 |
* Ben Goodger <ben@bengoodger.com> |
|
|
23 |
* Mike Hommey <mh@glandium.org> |
23 |
* |
24 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
Lines 144-149
Link Here
|
144 |
} |
145 |
} |
145 |
|
146 |
|
146 |
// Returns the file at the appropriate point in a directory hierarchy under |
147 |
// Returns the file at the appropriate point in a directory hierarchy under |
|
|
148 |
// the specified key. Does NOT create the file NOR the directories along the |
149 |
// way. |
150 |
function getFileNoCreateDir(aKey, aPathToFile) |
151 |
{ |
152 |
var subdirs = []; |
153 |
for (var i = 0; i < aPathToFile.length - 1; ++i) |
154 |
subdirs.push(aPathToFile[i]); |
155 |
var file = getDirNoCreate(aKey, subdirs); |
156 |
file.append(aPathToFile[aPathToFile.length - 1]); |
157 |
return file; |
158 |
} |
159 |
|
160 |
// Returns the file at the appropriate point in a directory hierarchy under |
147 |
// the specified key, creating directories along the way if necessary. Does |
161 |
// the specified key, creating directories along the way if necessary. Does |
148 |
// NOT create the file. |
162 |
// NOT create the file. |
149 |
function getFile(aKey, aPathToFile) |
163 |
function getFile(aKey, aPathToFile) |
Lines 675-683
Link Here
|
675 |
function nsInstallLogReader(aExtensionID, aIsProfile, aListener) |
689 |
function nsInstallLogReader(aExtensionID, aIsProfile, aListener) |
676 |
{ |
690 |
{ |
677 |
this._isProfile = aIsProfile; |
691 |
this._isProfile = aIsProfile; |
678 |
this.uninstallLog = getFile(getDirKey(aIsProfile), |
692 |
this.uninstallLog = getFileNoCreateDir(getDirKey(aIsProfile), |
679 |
[DIR_EXTENSIONS, aExtensionID, |
693 |
[DIR_EXTENSIONS, aExtensionID, |
680 |
DIR_UNINSTALL, FILE_UNINSTALL_LOG]); |
694 |
DIR_UNINSTALL, FILE_UNINSTALL_LOG]); |
|
|
695 |
// If the uninstall Log doesn't exist in profile, let's give a try in |
696 |
// global extension pool. |
697 |
if (aIsProfile && !this.uninstallLog.exists()) { |
698 |
this._isProfile = false; |
699 |
this.uninstallLog = getFileNoCreateDir(getDirKey(false), |
700 |
[DIR_EXTENSIONS, aExtensionID, |
701 |
DIR_UNINSTALL, FILE_UNINSTALL_LOG]); |
702 |
} |
681 |
this._listener = aListener |
703 |
this._listener = aListener |
682 |
} |
704 |
} |
683 |
|
705 |
|
Lines 829-854
Link Here
|
829 |
{ |
851 |
{ |
830 |
// extension,{GUID} or theme,{GUID} |
852 |
// extension,{GUID} or theme,{GUID} |
831 |
var parts = aLine.split(","); |
853 |
var parts = aLine.split(","); |
832 |
var manifest = getFile(KEY_APPDIR, |
854 |
var manifest = getFileNoCreateDir(KEY_APPDIR, |
833 |
[DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]); |
855 |
[DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]); |
834 |
if (parts.length != 2) |
856 |
if (parts.length != 2) |
835 |
return; |
857 |
return; |
836 |
|
858 |
|
837 |
if (!manifest.exists()) { |
859 |
if (manifest.exists()) { |
838 |
defaultManifest = defaultFile = getFile(KEY_DEFAULTS, |
860 |
switch (parts[0]) { |
839 |
[DIR_DEFAULTS_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]); |
861 |
case this.TOKEN_EXTENSION: |
840 |
var extensionDir = getDir(KEY_APPDIR, [DIR_EXTENSIONS, parts[1]]); |
862 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_EXTENSION, manifest); |
841 |
defaultManifest.copyTo(extensionDir, FILE_INSTALL_MANIFEST); |
863 |
break; |
842 |
manifest = getFile(KEY_APPDIR, |
864 |
case this.TOKEN_THEME: |
843 |
[DIR_EXTENSIONS, parts[1], FILE_INSTALL_MANIFEST]); |
865 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_THEME, manifest); |
844 |
} |
866 |
break; |
845 |
switch (parts[0]) { |
867 |
} |
846 |
case this.TOKEN_EXTENSION: |
|
|
847 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_EXTENSION, manifest); |
848 |
break; |
849 |
case this.TOKEN_THEME: |
850 |
this._manager.ensurePreConfiguredItem(parts[1], nsIUpdateItem.TYPE_THEME, manifest); |
851 |
break; |
852 |
} |
868 |
} |
853 |
} |
869 |
} |
854 |
}; |
870 |
}; |
Lines 929-935
Link Here
|
929 |
this._installExtensionFiles(); |
945 |
this._installExtensionFiles(); |
930 |
|
946 |
|
931 |
// Load the metadata datasource |
947 |
// Load the metadata datasource |
932 |
var metadataFile = getFile(this._extDirKey, |
948 |
var metadataFile = getFileNoCreateDir(this._extDirKey, |
933 |
[DIR_EXTENSIONS, aExtensionID, FILE_INSTALL_MANIFEST]); |
949 |
[DIR_EXTENSIONS, aExtensionID, FILE_INSTALL_MANIFEST]); |
934 |
|
950 |
|
935 |
this._metadataDS = getInstallManifest(metadataFile); |
951 |
this._metadataDS = getInstallManifest(metadataFile); |
Lines 969-978
Link Here
|
969 |
|
985 |
|
970 |
_installExtensionFiles: function nsExtensionInstaller__installExtensionFiles () |
986 |
_installExtensionFiles: function nsExtensionInstaller__installExtensionFiles () |
971 |
{ |
987 |
{ |
972 |
var sourceXPI = getFile(this._extDirKey, |
988 |
var sourceXPI = getFileNoCreateDir(this._extDirKey, |
973 |
[DIR_EXTENSIONS, DIR_TEMP, |
989 |
[DIR_EXTENSIONS, DIR_TEMP, |
974 |
this._extensionID, |
990 |
this._extensionID, |
975 |
this._extensionID + ".xpi"]); |
991 |
this._extensionID + ".xpi"]); |
|
|
992 |
if (!sourceXPI.exists()) |
993 |
return; |
976 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
994 |
var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] |
977 |
.createInstance(Components.interfaces.nsIZipReader); |
995 |
.createInstance(Components.interfaces.nsIZipReader); |
978 |
zipReader.init(sourceXPI); |
996 |
zipReader.init(sourceXPI); |
Lines 1752-1757
Link Here
|
1752 |
// Write bin/components.ini |
1770 |
// Write bin/components.ini |
1753 |
var manifest = getFile(KEY_APPDIR, [FILE_COMPONENT_MANIFEST]); |
1771 |
var manifest = getFile(KEY_APPDIR, [FILE_COMPONENT_MANIFEST]); |
1754 |
this._writeProfileFile(manifest, this._getComponentsDir, false); |
1772 |
this._writeProfileFile(manifest, this._getComponentsDir, false); |
|
|
1773 |
|
1774 |
// Update the Defaults Manifest |
1775 |
this._writeDefaults(false); |
1755 |
} |
1776 |
} |
1756 |
}, |
1777 |
}, |
1757 |
|
1778 |
|
Lines 1823-1829
Link Here
|
1823 |
cr.selectSkin(KEY_DEFAULT_THEME, true); |
1844 |
cr.selectSkin(KEY_DEFAULT_THEME, true); |
1824 |
} |
1845 |
} |
1825 |
catch (e) { |
1846 |
catch (e) { |
1826 |
dump("*** nsExtensionManager::_disableObsoleteExtensions - failure, catching exception so finalize window can close\n"); |
1847 |
// dump("*** nsExtensionManager::_disableObsoleteExtensions - failure, catching exception so finalize window can close\n"); |
1827 |
} |
1848 |
} |
1828 |
win.close(); |
1849 |
win.close(); |
1829 |
|
1850 |
|
Lines 2000-2007
Link Here
|
2000 |
ensurePreConfiguredItem: function nsExtensionManager_ensurePreConfiguredItem (aItemID, aItemType, aManifest) |
2021 |
ensurePreConfiguredItem: function nsExtensionManager_ensurePreConfiguredItem (aItemID, aItemType, aManifest) |
2001 |
{ |
2022 |
{ |
2002 |
this._ds.insertForthcomingItem(aItemID, aItemType, false); |
2023 |
this._ds.insertForthcomingItem(aItemID, aItemType, false); |
2003 |
var metadataDS = getInstallManifest(aManifest); |
2024 |
try { |
|
|
2025 |
var metadataDS = getInstallManifest(aManifest); |
2026 |
} |
2027 |
catch(e) { |
2028 |
return; |
2029 |
} |
2004 |
this._ds.addItemMetadata(aItemID, aItemType, metadataDS, false); |
2030 |
this._ds.addItemMetadata(aItemID, aItemType, metadataDS, false); |
|
|
2031 |
|
2032 |
// Check whether the extension is installable (firefox_version fitting between |
2033 |
// em:MaxVersion and em:MinVersion) |
2034 |
var extensionID = this.canInstallItem(metadataDS); |
2035 |
// |extensionID| must be a GUID string, not a number - a number means failure. |
2036 |
if (isNaN(parseInt(extensionID))) { |
2037 |
// Do install the extension, meaning we register its chrome and components |
2038 |
if (!this._extInstaller) |
2039 |
this._extInstaller = new nsExtensionInstaller(this._ds); |
2040 |
try { |
2041 |
this._extInstaller.install(aItemID, false); |
2042 |
} |
2043 |
catch (e) { |
2044 |
// If the installation failed, we disable the extension in addition |
2045 |
// to _not_ uninstalling it (which would fail anyway because it |
2046 |
// would be done at launch time... as a user). |
2047 |
this._ds.setItemProperty(aItemID, this._ds._emR("toBeUninstalled"), |
2048 |
null, false, aItemType); |
2049 |
this._ds.setItemProperty(aItemID, this._ds._emR("disabled"), |
2050 |
this._ds._emL("true"), false, aItemType); |
2051 |
} |
2052 |
} else { |
2053 |
// disable extensions that aren't installable |
2054 |
this._ds.setItemProperty(aItemID, this._ds._emR("disabled"), |
2055 |
this._ds._emL("true"), false, aItemType); |
2056 |
} |
2057 |
// Force locking pre-configured items. |
2058 |
this._ds.lockUnlockItem(aItemID, true); |
2005 |
}, |
2059 |
}, |
2006 |
|
2060 |
|
2007 |
checkForMismatches: function nsExtensionManager_checkForMismatches () |
2061 |
checkForMismatches: function nsExtensionManager_checkForMismatches () |
Lines 2028-2049
Link Here
|
2028 |
if (items.length > 0) { |
2082 |
if (items.length > 0) { |
2029 |
for (var i = 0; i < items.length; ++i) { |
2083 |
for (var i = 0; i < items.length; ++i) { |
2030 |
// Now disable the extension so it won't hurt anything. |
2084 |
// Now disable the extension so it won't hurt anything. |
|
|
2085 |
var alreadyDisabled = this._ds.getItemProperty(items[i].id, "disabled"); |
2031 |
var itemType = getItemType(this._ds._getResourceForItem(items[i].id).Value); |
2086 |
var itemType = getItemType(this._ds._getResourceForItem(items[i].id).Value); |
2032 |
if (itemType != -1 && itemType & nsIUpdateItem.TYPE_EXTENSION) |
2087 |
if (itemType != -1 && itemType & nsIUpdateItem.TYPE_EXTENSION) |
2033 |
this.disableExtension(items[i].id); |
2088 |
if (!alreadyDisabled) this.disableExtension(items[i].id); |
2034 |
else if (itemType & nsIUpdateItem.TYPE_THEME) { |
2089 |
else if (itemType & nsIUpdateItem.TYPE_THEME) { |
2035 |
if (gPref.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN)) |
2090 |
if (gPref.prefHasUserValue(PREF_GENERAL_SKINS_SELECTEDSKIN)) |
2036 |
gPref.clearUserPref(PREF_GENERAL_SKINS_SELECTEDSKIN); |
2091 |
gPref.clearUserPref(PREF_GENERAL_SKINS_SELECTEDSKIN); |
2037 |
this._ds.disableTheme(items[i].id); |
2092 |
if (!alreadyDisabled) this._ds.disableTheme(items[i].id); |
2038 |
} |
2093 |
} |
2039 |
} |
2094 |
} |
2040 |
var updates = Components.classes["@mozilla.org/updates/update-service;1"] |
2095 |
// We want to eliminate locked extensions |
2041 |
.getService(Components.interfaces.nsIUpdateService); |
2096 |
newitems = []; |
2042 |
updates.checkForUpdates(items, items.length, nsIUpdateItem.TYPE_ADDON, |
2097 |
for (var i = 0; i < items.length; ++i) { |
2043 |
nsIUpdateService.SOURCE_EVENT_MISMATCH, |
2098 |
if (!this._ds.getItemProperty(items[i].id, "locked")) |
2044 |
null); |
2099 |
newitems.push(items[i]); |
|
|
2100 |
} |
2101 |
if (newitems.length > 0) { |
2102 |
var updates = Components.classes["@mozilla.org/updates/update-service;1"] |
2103 |
.getService(Components.interfaces.nsIUpdateService); |
2104 |
updates.checkForUpdates(newitems, newitems.length, nsIUpdateItem.TYPE_ADDON, |
2105 |
nsIUpdateService.SOURCE_EVENT_MISMATCH, |
2106 |
null); |
2045 |
|
2107 |
|
2046 |
needsRestart = true; |
2108 |
needsRestart = true; |
|
|
2109 |
} |
2047 |
} |
2110 |
} |
2048 |
} |
2111 |
} |
2049 |
|
2112 |
|
Lines 2087-2093
Link Here
|
2087 |
this._writeDefaults(false); |
2150 |
this._writeDefaults(false); |
2088 |
} |
2151 |
} |
2089 |
catch (e) { |
2152 |
catch (e) { |
2090 |
dump("*** ExtensionManager:_updateManifests: no access privileges to application directory, skipping.\n"); |
2153 |
// dump("*** ExtensionManager:_updateManifests: no access privileges to application directory, skipping.\n"); |
2091 |
}; |
2154 |
}; |
2092 |
this._writeComponentManifest(true); |
2155 |
this._writeComponentManifest(true); |
2093 |
this._writeDefaults(true); |
2156 |
this._writeDefaults(true); |
Lines 2133-2138
Link Here
|
2133 |
validExtensions.push({ sourceDir: sourceDir, isProfile: isProfile }); |
2196 |
validExtensions.push({ sourceDir: sourceDir, isProfile: isProfile }); |
2134 |
} |
2197 |
} |
2135 |
|
2198 |
|
|
|
2199 |
// Debian hook to insert defaults/syspref into defaults.ini |
2200 |
if ((aFile.leafName == FILE_DEFAULTS) && aIsProfile == false) { |
2201 |
validExtensions.push({ sourceDir: getDirNoCreate(getDirKey(false), [DIR_DEFAULTS, "syspref"]), isProfile: false }); |
2202 |
} |
2203 |
|
2136 |
var lines = ["[Extra Files]\r\n", |
2204 |
var lines = ["[Extra Files]\r\n", |
2137 |
"Count=" + validExtensions.length + "\r\n"]; |
2205 |
"Count=" + validExtensions.length + "\r\n"]; |
2138 |
for (i = 0; i < lines.length; ++i) |
2206 |
for (i = 0; i < lines.length; ++i) |
Lines 2545-2560
Link Here
|
2545 |
this._extEnabler = new nsExtensionEnabler(this._ds); |
2613 |
this._extEnabler = new nsExtensionEnabler(this._ds); |
2546 |
|
2614 |
|
2547 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2615 |
var isProfile = this._ds.isProfileItem(aExtensionID); |
2548 |
this._extEnabler.enable(aExtensionID, isProfile, aDisable); |
2616 |
this._extEnabler.enable(aExtensionID, true, aDisable); |
2549 |
|
2617 |
|
2550 |
// clear temporary flags |
2618 |
// clear temporary flags |
2551 |
this._ds.setItemProperty(aExtensionID, |
2619 |
this._ds.setItemProperty(aExtensionID, |
2552 |
this._ds._emR("toBeEnabled"), |
2620 |
this._ds._emR("toBeEnabled"), |
2553 |
null, isProfile, |
2621 |
null, true, |
2554 |
nsIUpdateItem.TYPE_EXTENSION); |
2622 |
nsIUpdateItem.TYPE_EXTENSION); |
2555 |
this._ds.setItemProperty(aExtensionID, |
2623 |
this._ds.setItemProperty(aExtensionID, |
2556 |
this._ds._emR("toBeDisabled"), |
2624 |
this._ds._emR("toBeDisabled"), |
2557 |
null, isProfile, |
2625 |
null, true, |
2558 |
nsIUpdateItem.TYPE_EXTENSION); |
2626 |
nsIUpdateItem.TYPE_EXTENSION); |
2559 |
}, |
2627 |
}, |
2560 |
|
2628 |
|
Lines 3090-3097
Link Here
|
3090 |
checkForUpdates: function (aItem, aVersionUpdateOnly) |
3158 |
checkForUpdates: function (aItem, aVersionUpdateOnly) |
3091 |
{ |
3159 |
{ |
3092 |
// A preference setting can disable updating for this item |
3160 |
// A preference setting can disable updating for this item |
|
|
3161 |
// We'll also skip locked items. |
3093 |
try { |
3162 |
try { |
3094 |
if (!gPref.getBoolPref(PREF_EM_ITEM_UPDATE_ENABLED.replace(/%UUID%/, aItem.id))) { |
3163 |
if (this._updater._emDS.getItemProperty(aItem.id, "locked") || |
|
|
3164 |
!gPref.getBoolPref(PREF_EM_ITEM_UPDATE_ENABLED.replace(/%UUID%/, aItem.id))) { |
3095 |
gOS.notifyObservers(null, "Update:Extension:Item-Ended", ""); |
3165 |
gOS.notifyObservers(null, "Update:Extension:Item-Ended", ""); |
3096 |
this._updater._checkForDone(); |
3166 |
this._updater._checkForDone(); |
3097 |
return; |
3167 |
return; |
Lines 3557-3563
Link Here
|
3557 |
|
3627 |
|
3558 |
isProfileItem: function nsExtensionsDataSource_isProfileItem (aItemID) |
3628 |
isProfileItem: function nsExtensionsDataSource_isProfileItem (aItemID) |
3559 |
{ |
3629 |
{ |
3560 |
return this.getItemProperty(aItemID, "installLocation") != "global"; |
3630 |
return this.getItemProperty(aItemID, "installLocation") == "profile"; |
3561 |
}, |
3631 |
}, |
3562 |
|
3632 |
|
3563 |
_setProperty: function nsExtensionsDataSource__setProperty (aDS, aSource, aProperty, aNewValue) |
3633 |
_setProperty: function nsExtensionsDataSource__setProperty (aDS, aSource, aProperty, aNewValue) |
Lines 3845-3870
Link Here
|
3845 |
enableExtension: function nsExtensionsDataSource_enableExtension (aExtensionID) |
3915 |
enableExtension: function nsExtensionsDataSource_enableExtension (aExtensionID) |
3846 |
{ |
3916 |
{ |
3847 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3917 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3848 |
this._emL("true"), this.isProfileItem(aExtensionID), |
3918 |
this._emL("true"), true, |
3849 |
nsIUpdateItem.TYPE_EXTENSION); |
3919 |
nsIUpdateItem.TYPE_EXTENSION); |
3850 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3920 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3851 |
null, this.isProfileItem(aExtensionID), |
3921 |
null, true, |
3852 |
nsIUpdateItem.TYPE_EXTENSION); |
3922 |
nsIUpdateItem.TYPE_EXTENSION); |
3853 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3923 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3854 |
null, this.isProfileItem(aExtensionID), |
3924 |
null, true, |
3855 |
nsIUpdateItem.TYPE_EXTENSION); |
3925 |
nsIUpdateItem.TYPE_EXTENSION); |
3856 |
}, |
3926 |
}, |
3857 |
|
3927 |
|
3858 |
disableExtension: function nsExtensionsDataSource_disableExtension (aExtensionID) |
3928 |
disableExtension: function nsExtensionsDataSource_disableExtension (aExtensionID) |
3859 |
{ |
3929 |
{ |
3860 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3930 |
this.setItemProperty(aExtensionID, this._emR("toBeDisabled"), |
3861 |
this._emL("true"), this.isProfileItem(aExtensionID), |
3931 |
this._emL("true"), true, |
3862 |
nsIUpdateItem.TYPE_EXTENSION); |
3932 |
nsIUpdateItem.TYPE_EXTENSION); |
3863 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3933 |
this.setItemProperty(aExtensionID, this._emR("toBeEnabled"), |
3864 |
null, this.isProfileItem(aExtensionID), |
3934 |
null, true, |
3865 |
nsIUpdateItem.TYPE_EXTENSION); |
3935 |
nsIUpdateItem.TYPE_EXTENSION); |
3866 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3936 |
this.setItemProperty(aExtensionID, this._emR("disabled"), |
3867 |
this._emL("true"), this.isProfileItem(aExtensionID), |
3937 |
this._emL("true"), true, |
3868 |
nsIUpdateItem.TYPE_EXTENSION); |
3938 |
nsIUpdateItem.TYPE_EXTENSION); |
3869 |
}, |
3939 |
}, |
3870 |
|
3940 |
|
3871 |
-- toolkit/mozapps/update/src/nsUpdateService.js.in |
3941 |
++ toolkit/mozapps/update/src/nsUpdateService.js.in |
Lines 178-186
Link Here
|
178 |
if (aRequestedTypes & nsIUpdateItem.TYPE_THEME) |
178 |
if (aRequestedTypes & nsIUpdateItem.TYPE_THEME) |
179 |
types |= nsIUpdateItem.TYPE_THEME; |
179 |
types |= nsIUpdateItem.TYPE_THEME; |
180 |
} |
180 |
} |
181 |
if (appUpdateEnabled && |
181 |
// Disable application updates |
182 |
(aRequestedTypes & nsIUpdateItem.TYPE_APP)) |
182 |
//if (appUpdateEnabled && |
183 |
types |= nsIUpdateItem.TYPE_APP; |
183 |
// (aRequestedTypes & nsIUpdateItem.TYPE_APP)) |
|
|
184 |
// types |= nsIUpdateItem.TYPE_APP; |
184 |
|
185 |
|
185 |
return types; |
186 |
return types; |
186 |
}, |
187 |
}, |
187 |
-- toolkit/mozapps/update/src/nsUpdateService.js |
188 |
++ toolkit/mozapps/update/src/nsUpdateService.js |
Line 0
Link Here
|
0 |
-- toolkit/mozapps/jar.mn |
1 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is the Update Service. |
16 |
* |
17 |
* The Initial Developer of the Original Code is Ben Goodger. |
18 |
* Portions created by the Initial Developer are Copyright (C) 2004 |
19 |
* the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* Ben Goodger <ben@bengoodger.com> |
23 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
27 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
28 |
* of those above. If you wish to allow use of your version of this file only |
29 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
30 |
* use your version of this file under the terms of the MPL, indicate your |
31 |
* decision by deleting the provisions above and replace them with the notice |
32 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
33 |
* the provisions above, a recipient may use your version of this file under |
34 |
* the terms of any one of the MPL, the GPL or the LGPL. |
35 |
* |
36 |
* ***** END LICENSE BLOCK ***** */ |
37 |
|
38 |
const PREF_APP_ID = "app.id"; |
39 |
const PREF_APP_VERSION = "app.version"; |
40 |
const PREF_UPDATE_APP_ENABLED = "app.update.enabled"; |
41 |
const PREF_UPDATE_APP_AUTOUPDATEENABLED = "app.update.autoUpdateEnabled"; |
42 |
const PREF_UPDATE_APP_URI = "app.update.url"; |
43 |
const PREF_UPDATE_APP_UPDATESAVAILABLE = "app.update.updatesAvailable"; |
44 |
const PREF_UPDATE_APP_INTERVAL = "app.update.interval"; |
45 |
const PREF_UPDATE_APP_LASTUPDATEDATE = "app.update.lastUpdateDate"; |
46 |
const PREF_UPDATE_APP_PERFORMED = "app.update.performed"; |
47 |
|
48 |
const PREF_UPDATE_EXTENSIONS_ENABLED = "extensions.update.enabled"; |
49 |
const PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED = "extensions.update.autoUpdateEnabled"; |
50 |
const PREF_UPDATE_EXTENSIONS_AUTOUPDATE = "extensions.update.autoUpdate"; |
51 |
const PREF_UPDATE_EXTENSIONS_COUNT = "extensions.update.count"; |
52 |
const PREF_UPDATE_EXTENSIONS_INTERVAL = "extensions.update.interval"; |
53 |
const PREF_UPDATE_EXTENSIONS_LASTUPDATEDATE = "extensions.update.lastUpdateDate"; |
54 |
const PREF_UPDATE_EXTENSIONS_SEVERITY_THRESHOLD = "extensions.update.severity.threshold"; |
55 |
|
56 |
const PREF_UPDATE_INTERVAL = "update.interval"; |
57 |
const PREF_UPDATE_SEVERITY = "update.severity"; |
58 |
const PREF_UPDATE_SHOW_SLIDING_NOTIFICATION = "update.showSlidingNotification"; |
59 |
|
60 |
const nsIExtensionManager = Components.interfaces.nsIExtensionManager; |
61 |
const nsIUpdateService = Components.interfaces.nsIUpdateService; |
62 |
const nsIUpdateItem = Components.interfaces.nsIUpdateItem; |
63 |
|
64 |
const UPDATED_EXTENSIONS = 0x01; |
65 |
const UPDATED_APP = 0x02; |
66 |
|
67 |
function APP_NS(aProperty) |
68 |
{ |
69 |
return "http://www.mozilla.org/2004/app-rdf#" + aProperty; |
70 |
} |
71 |
|
72 |
function getOSKey() |
73 |
{ |
74 |
return "linux"; |
75 |
} |
76 |
|
77 |
function stackTraceFunctionFormat(aFunctionName) |
78 |
{ |
79 |
var classDelimiter = aFunctionName.indexOf("_"); |
80 |
var className = aFunctionName.substr(0, classDelimiter); |
81 |
if (!className) |
82 |
className == "<global>"; |
83 |
var functionName = aFunctionName.substr(classDelimiter + 1, aFunctionName.length); |
84 |
if (!functionName) |
85 |
functionName == "<anonymous>"; |
86 |
return className + "::" + functionName; |
87 |
} |
88 |
|
89 |
function stackTrace(aArguments, aMaxCount) |
90 |
{ |
91 |
dump("=[STACKTRACE]=====================================================\n"); |
92 |
dump("*** at: " + stackTraceFunctionFormat(aArguments.callee.name) + "()\n"); |
93 |
var temp = aArguments.callee.caller; |
94 |
var count = 0; |
95 |
while (temp) { |
96 |
dump("*** " + stackTraceFunctionFormat(temp.name) + ")\n"); |
97 |
temp = temp.arguments.callee.caller; |
98 |
if (aMaxCount > 0 && ++count == aMaxCount) |
99 |
break; |
100 |
} |
101 |
dump("==================================================================\n"); |
102 |
} |
103 |
|
104 |
var gPref = null; |
105 |
var gOS = null; |
106 |
var gRDF = null; |
107 |
|
108 |
function nsUpdateService() |
109 |
{ |
110 |
gPref = Components.classes["@mozilla.org/preferences-service;1"] |
111 |
.getService(Components.interfaces.nsIPrefBranch); |
112 |
gOS = Components.classes["@mozilla.org/observer-service;1"] |
113 |
.getService(Components.interfaces.nsIObserverService); |
114 |
gRDF = Components.classes["@mozilla.org/rdf/rdf-service;1"] |
115 |
.getService(Components.interfaces.nsIRDFService); |
116 |
|
117 |
this.watchForUpdates(); |
118 |
|
119 |
var pbi = gPref.QueryInterface(Components.interfaces.nsIPrefBranchInternal); |
120 |
pbi.addObserver(PREF_UPDATE_APP_AUTOUPDATEENABLED, this, false); |
121 |
pbi.addObserver(PREF_UPDATE_APP_ENABLED, this, false); |
122 |
pbi.addObserver(PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED, this, false); |
123 |
pbi.addObserver(PREF_UPDATE_EXTENSIONS_ENABLED, this, false); |
124 |
pbi.addObserver(PREF_UPDATE_INTERVAL, this, false); |
125 |
pbi.addObserver(PREF_UPDATE_APP_INTERVAL, this, false); |
126 |
pbi.addObserver(PREF_UPDATE_EXTENSIONS_INTERVAL, this, false); |
127 |
|
128 |
// Observe xpcom-shutdown to unhook pref branch observers above to avoid |
129 |
// shutdown leaks. |
130 |
gOS.addObserver(this, "xpcom-shutdown", false); |
131 |
|
132 |
// Reset update state from previous session if an app update was installed. |
133 |
if (gPref.prefHasUserValue(PREF_UPDATE_APP_PERFORMED)) |
134 |
gPref.clearUserPref(PREF_UPDATE_APP_PERFORMED); |
135 |
} |
136 |
|
137 |
nsUpdateService.prototype = { |
138 |
_updateObserver: null, |
139 |
_appAutoUpdateEnabled: true, |
140 |
_extAutoUpdateEnabled: true, |
141 |
|
142 |
///////////////////////////////////////////////////////////////////////////// |
143 |
// nsIUpdateService |
144 |
watchForUpdates: function nsUpdateService_watchForUpdates () |
145 |
{ |
146 |
// This is called when the app starts, so check to see if the time interval |
147 |
// expired between now and the last time an automated update was performed. |
148 |
// now is the same one that was started last time. |
149 |
this._appAutoUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_APP_AUTOUPDATEENABLED); |
150 |
this._extAutoUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED); |
151 |
if (!this._appAutoUpdateEnabled && !this._extAutoUpdateEnabled) |
152 |
return; |
153 |
|
154 |
this._makeTimer(gPref.getIntPref(PREF_UPDATE_INTERVAL)); |
155 |
}, |
156 |
|
157 |
_getAllowedTypes: function nsUpdateService__getAllowedTypes(aRequestedTypes) |
158 |
{ |
159 |
// Figure out what types we're allowed to update. These options |
160 |
// differ from PREF_UPDATE_*_AUTOUPDATEENABLED since they effectively |
161 |
// shut down the update UI if the administrator/distributor has configured |
162 |
// a build to have disallowed these types of update. |
163 |
var extUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_EXTENSIONS_ENABLED); |
164 |
var appUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_APP_ENABLED); |
165 |
|
166 |
var types = 0; |
167 |
if (extUpdateEnabled) { |
168 |
if (aRequestedTypes & nsIUpdateItem.TYPE_EXTENSION) |
169 |
types |= nsIUpdateItem.TYPE_EXTENSION; |
170 |
if (aRequestedTypes & nsIUpdateItem.TYPE_THEME) |
171 |
types |= nsIUpdateItem.TYPE_THEME; |
172 |
} |
173 |
if (appUpdateEnabled && |
174 |
(aRequestedTypes & nsIUpdateItem.TYPE_APP)) |
175 |
types |= nsIUpdateItem.TYPE_APP; |
176 |
|
177 |
return types; |
178 |
}, |
179 |
|
180 |
checkForUpdates: function nsUpdateService_checkForUpdates (aItems, aItemCount, aUpdateTypes, aSourceEvent, aParentWindow) |
181 |
{ |
182 |
var types = this._getAllowedTypes(aUpdateTypes); |
183 |
|
184 |
// Nothing to update |
185 |
if (!types) { |
186 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
187 |
.getService(Components.interfaces.nsIStringBundleService); |
188 |
var bundle = sbs.createBundle("chrome://mozapps/locale/update/update.properties"); |
189 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
190 |
.getService(Components.interfaces.nsIPromptService); |
191 |
ps.alert(aParentWindow, |
192 |
bundle.GetStringFromName("updatesdisabledtitle"), |
193 |
bundle.GetStringFromName("updatesdisabledmessage")); |
194 |
return; |
195 |
} |
196 |
|
197 |
switch (aSourceEvent) { |
198 |
case nsIUpdateService.SOURCE_EVENT_MISMATCH: |
199 |
case nsIUpdateService.SOURCE_EVENT_USER: |
200 |
if (aSourceEvent == nsIUpdateService.SOURCE_EVENT_USER && |
201 |
gPref.getBoolPref(PREF_UPDATE_APP_PERFORMED)) { |
202 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
203 |
.getService(Components.interfaces.nsIStringBundleService); |
204 |
var bundle = sbs.createBundle("chrome://mozapps/locale/update/update.properties"); |
205 |
var brandBundle = sbs.createBundle("chrome://global/locale/brand.properties"); |
206 |
var brandShortName = brandBundle.GetStringFromName("brandShortName"); |
207 |
var message = bundle.formatStringFromName("appupdateperformedmessage", |
208 |
[brandShortName, brandShortName], 2); |
209 |
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] |
210 |
.getService(Components.interfaces.nsIPromptService); |
211 |
ps.alert(aParentWindow, |
212 |
bundle.GetStringFromName("appupdateperformedtitle"), |
213 |
message); |
214 |
return; |
215 |
} |
216 |
|
217 |
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] |
218 |
.getService(Components.interfaces.nsIWindowMediator); |
219 |
var wizard = wm.getMostRecentWindow("Update:Wizard"); |
220 |
if (wizard) |
221 |
wizard.focus(); |
222 |
else { |
223 |
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"] |
224 |
.getService(Components.interfaces.nsIWindowWatcher); |
225 |
var ary = Components.classes["@mozilla.org/supports-array;1"] |
226 |
.createInstance(Components.interfaces.nsISupportsArray); |
227 |
var updateTypes = Components.classes["@mozilla.org/supports-PRUint8;1"] |
228 |
.createInstance(Components.interfaces.nsISupportsPRUint8); |
229 |
updateTypes.data = types; |
230 |
ary.AppendElement(updateTypes); |
231 |
var sourceEvent = Components.classes["@mozilla.org/supports-PRUint8;1"] |
232 |
.createInstance(Components.interfaces.nsISupportsPRUint8); |
233 |
sourceEvent.data = aSourceEvent; |
234 |
ary.AppendElement(sourceEvent); |
235 |
for (var i = 0; i < aItems.length; ++i) |
236 |
ary.AppendElement(aItems[i]); |
237 |
|
238 |
var features = "chrome,centerscreen"; |
239 |
if (aSourceEvent == nsIUpdateService.SOURCE_EVENT_MISMATCH) { |
240 |
features += ",modal"; // Must block in mismatch mode since there's |
241 |
// no main evt loop yet. |
242 |
} |
243 |
// This *must* be modal so as not to break startup! This code is invoked before |
244 |
// the main event loop is initiated (via checkForMismatches). |
245 |
ww.openWindow(aParentWindow, "chrome://mozapps/content/update/update.xul", |
246 |
"", features, ary); |
247 |
} |
248 |
break; |
249 |
case nsIUpdateService.SOURCE_EVENT_BACKGROUND: |
250 |
// Rather than show a UI, call the checkForUpdates function directly here. |
251 |
// The Browser's inline front end update notification system listens for the |
252 |
// updates that this function broadcasts. |
253 |
this.checkForUpdatesInternal([], 0, types, aSourceEvent); |
254 |
|
255 |
break; |
256 |
} |
257 |
}, |
258 |
|
259 |
_canUpdate: function (aPreference, aSourceEvent, aUpdateTypes) |
260 |
{ |
261 |
// Always can update if the autoupdate preference is set, otherwise, |
262 |
// allow updates only when not in backround update mode, i.e. when the user |
263 |
// explicitly asked. |
264 |
return aPreference ? true |
265 |
: aSourceEvent != nsIUpdateService.SOURCE_EVENT_BACKGROUND; |
266 |
}, |
267 |
|
268 |
checkForUpdatesInternal: function nsUpdateService_checkForUpdatesInternal (aItems, aItemCount, aUpdateTypes, aSourceEvent) |
269 |
{ |
270 |
var types = this._getAllowedTypes(aUpdateTypes); |
271 |
|
272 |
// Listen for notifications sent out by the app updater (implemented here) and the |
273 |
// extension updater (implemented in nsExtensionItemUpdater) |
274 |
var canUpdate; |
275 |
this._updateObserver = new nsUpdateObserver(types, aSourceEvent, this); |
276 |
var os = Components.classes["@mozilla.org/observer-service;1"] |
277 |
.getService(Components.interfaces.nsIObserverService); |
278 |
if (types & nsIUpdateItem.TYPE_APP) { |
279 |
if (this._canUpdate(this._appAutoUpdateEnabled, aSourceEvent, types)) { |
280 |
gOS.addObserver(this._updateObserver, "Update:App:Ended", false); |
281 |
|
282 |
this._currentVersion = new nsAppUpdateInfo(); |
283 |
this._newestVersion = new nsAppUpdateInfo(); |
284 |
|
285 |
if (!this._updateObserver.appUpdater) { |
286 |
this._updateObserver.appUpdater = new nsAppUpdater(this); |
287 |
this._updateObserver.appUpdater.checkForUpdates(); |
288 |
} |
289 |
} |
290 |
} |
291 |
if (types & nsIUpdateItem.TYPE_ADDON) { // TYPE_EXTENSION, TYPE_ANY, etc. |
292 |
if (this._canUpdate(this._extAutoUpdateEnabled, aSourceEvent, types)) { |
293 |
gOS.addObserver(this._updateObserver, "Update:Extension:Started", false); |
294 |
gOS.addObserver(this._updateObserver, "Update:Extension:Item-Ended", false); |
295 |
gOS.addObserver(this._updateObserver, "Update:Extension:Ended", false); |
296 |
|
297 |
var em = Components.classes["@mozilla.org/extensions/manager;1"] |
298 |
.getService(Components.interfaces.nsIExtensionManager); |
299 |
em.update(aItems, aItems.length, false); |
300 |
} |
301 |
} |
302 |
|
303 |
if (aSourceEvent == nsIUpdateService.SOURCE_EVENT_BACKGROUND && |
304 |
(this._appAutoUpdateEnabled || this._extAutoUpdateEnabled)) { |
305 |
if (types & nsIUpdateItem.TYPE_ADDON) |
306 |
gPref.setIntPref(PREF_UPDATE_EXTENSIONS_LASTUPDATEDATE, this._nowInMilliseconds / 1000); |
307 |
if (types & nsIUpdateItem.TYPE_APP) |
308 |
gPref.setIntPref(PREF_UPDATE_APP_LASTUPDATEDATE, this._nowInMilliseconds / 1000); |
309 |
} |
310 |
}, |
311 |
|
312 |
get updateCount() |
313 |
{ |
314 |
// The number of available updates is the number of extension/theme/other |
315 |
// updates + 1 for an application update, if one is available. |
316 |
var updateCount = this.extensionUpdatesAvailable; |
317 |
if (this.appUpdatesAvailable) |
318 |
++updateCount; |
319 |
return updateCount; |
320 |
}, |
321 |
|
322 |
get updateSeverity() |
323 |
{ |
324 |
return gPref.getIntPref(PREF_UPDATE_SEVERITY); |
325 |
}, |
326 |
|
327 |
_appUpdatesAvailable: undefined, |
328 |
get appUpdatesAvailable() |
329 |
{ |
330 |
if (this._appUpdatesAvailable === undefined) { |
331 |
return (gPref.prefHasUserValue(PREF_UPDATE_APP_UPDATESAVAILABLE) && |
332 |
gPref.getBoolPref(PREF_UPDATE_APP_UPDATESAVAILABLE)); |
333 |
} |
334 |
return this._appUpdatesAvailable; |
335 |
}, |
336 |
set appUpdatesAvailable(aValue) |
337 |
{ |
338 |
this._appUpdatesAvailable = aValue; |
339 |
return aValue; |
340 |
}, |
341 |
|
342 |
_extensionUpdatesAvailable: undefined, |
343 |
get extensionUpdatesAvailable() |
344 |
{ |
345 |
if (this._extensionUpdatesAvailable === undefined) |
346 |
return gPref.getIntPref(PREF_UPDATE_EXTENSIONS_COUNT); |
347 |
return this._extensionUpdatesAvailable; |
348 |
}, |
349 |
set extensionUpdatesAvailable(aValue) |
350 |
{ |
351 |
this._extensionUpdatesAvailable = aValue; |
352 |
return aValue; |
353 |
}, |
354 |
|
355 |
_newestVersion: null, |
356 |
get newestVersion() |
357 |
{ |
358 |
return this._newestVersion; |
359 |
}, |
360 |
_currentVersion: null, |
361 |
get currentVersion() |
362 |
{ |
363 |
return this._currentVersion; |
364 |
}, |
365 |
|
366 |
///////////////////////////////////////////////////////////////////////////// |
367 |
// nsITimerCallback |
368 |
_shouldUpdate: function nsUpdateService__shouldUpdate (aIntervalPref, aLastCheckPref) |
369 |
{ |
370 |
var interval = gPref.getIntPref(aIntervalPref); |
371 |
var lastUpdateTime = gPref.getIntPref(aLastCheckPref); |
372 |
return ((Math.round(this._nowInMilliseconds/1000) - lastUpdateTime) > Math.round(interval/1000)); |
373 |
}, |
374 |
|
375 |
notify: function nsUpdateService_notify (aTimer) |
376 |
{ |
377 |
var types = 0; |
378 |
if (this._shouldUpdate(PREF_UPDATE_EXTENSIONS_INTERVAL, |
379 |
PREF_UPDATE_EXTENSIONS_LASTUPDATEDATE)) { |
380 |
types |= nsIUpdateItem.TYPE_ADDON; |
381 |
} |
382 |
if (this._shouldUpdate(PREF_UPDATE_APP_INTERVAL, |
383 |
PREF_UPDATE_APP_LASTUPDATEDATE)) { |
384 |
types |= nsIUpdateItem.TYPE_APP; |
385 |
} |
386 |
if (types) |
387 |
this.checkForUpdatesInternal([], 0, types, |
388 |
nsIUpdateService.SOURCE_EVENT_BACKGROUND); |
389 |
}, |
390 |
|
391 |
///////////////////////////////////////////////////////////////////////////// |
392 |
// nsIObserver |
393 |
observe: function nsUpdateService_observe (aSubject, aTopic, aData) |
394 |
{ |
395 |
switch (aTopic) { |
396 |
case "nsPref:changed": |
397 |
var needsNotification = false; |
398 |
switch (aData) { |
399 |
case PREF_UPDATE_APP_AUTOUPDATEENABLED: |
400 |
case PREF_UPDATE_APP_ENABLED: |
401 |
this._appAutoUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_APP_AUTOUPDATEENABLED); |
402 |
if (!this._appAutoUpdateEnabled) { |
403 |
this._clearAppUpdatePrefs(); |
404 |
needsNotification = true; |
405 |
} |
406 |
else { |
407 |
// Do an initial check NOW to update any FE components and kick off the |
408 |
// timer. |
409 |
this.checkForUpdatesInternal([], 0, nsIUpdateItem.TYPE_APP, |
410 |
nsIUpdateService.SOURCE_EVENT_BACKGROUND); |
411 |
} |
412 |
break; |
413 |
case PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED: |
414 |
case PREF_UPDATE_EXTENSIONS_ENABLED: |
415 |
this._extAutoUpdateEnabled = gPref.getBoolPref(PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED); |
416 |
if (!this._extAutoUpdateEnabled) { |
417 |
// Unset prefs used by the update service to signify extension updates |
418 |
if (gPref.prefHasUserValue(PREF_UPDATE_EXTENSIONS_COUNT)) |
419 |
gPref.clearUserPref(PREF_UPDATE_EXTENSIONS_COUNT); |
420 |
needsNotification = true; |
421 |
} |
422 |
else { |
423 |
// Do an initial check NOW to update any FE components and kick off the |
424 |
// timer. |
425 |
this.checkForUpdatesInternal([], 0, nsIUpdateItem.TYPE_ADDON, |
426 |
nsIUpdateService.SOURCE_EVENT_BACKGROUND); |
427 |
} |
428 |
break; |
429 |
case PREF_UPDATE_INTERVAL: |
430 |
case PREF_UPDATE_APP_INTERVAL: |
431 |
case PREF_UPDATE_EXTENSIONS_INTERVAL: |
432 |
this._makeTimer(gPref.getIntPref(PREF_UPDATE_INTERVAL)); |
433 |
break; |
434 |
} |
435 |
|
436 |
if (needsNotification) { |
437 |
var os = Components.classes["@mozilla.org/observer-service;1"] |
438 |
.getService(Components.interfaces.nsIObserverService); |
439 |
var backgroundEvt = Components.interfaces.nsIUpdateService.SOURCE_EVENT_BACKGROUND; |
440 |
gOS.notifyObservers(null, "Update:Ended", backgroundEvt.toString()); |
441 |
} |
442 |
break; |
443 |
case "xpcom-shutdown": |
444 |
gOS.removeObserver(this, "xpcom-shutdown"); |
445 |
|
446 |
// Clean up held observers etc to avoid leaks. |
447 |
var pbi = gPref.QueryInterface(Components.interfaces.nsIPrefBranchInternal); |
448 |
pbi.removeObserver(PREF_UPDATE_APP_AUTOUPDATEENABLED, this); |
449 |
pbi.removeObserver(PREF_UPDATE_APP_ENABLED, this); |
450 |
pbi.removeObserver(PREF_UPDATE_EXTENSIONS_AUTOUPDATEENABLED, this); |
451 |
pbi.removeObserver(PREF_UPDATE_EXTENSIONS_ENABLED, this); |
452 |
pbi.removeObserver(PREF_UPDATE_INTERVAL, this); |
453 |
pbi.removeObserver(PREF_UPDATE_EXTENSIONS_INTERVAL, this); |
454 |
|
455 |
// Release strongly held services. |
456 |
gPref = null; |
457 |
gRDF = null; |
458 |
gOS = null; |
459 |
if (this._timer) { |
460 |
this._timer.cancel(); |
461 |
this._timer = null; |
462 |
} |
463 |
break; |
464 |
} |
465 |
}, |
466 |
|
467 |
///////////////////////////////////////////////////////////////////////////// |
468 |
// nsUpdateService |
469 |
_timer: null, |
470 |
_makeTimer: function nsUpdateService__makeTimer (aDelay) |
471 |
{ |
472 |
if (!this._timer) |
473 |
this._timer = Components.classes["@mozilla.org/timer;1"] |
474 |
.createInstance(Components.interfaces.nsITimer); |
475 |
this._timer.cancel(); |
476 |
this._timer.initWithCallback(this, aDelay, |
477 |
Components.interfaces.nsITimer.TYPE_REPEATING_SLACK); |
478 |
}, |
479 |
|
480 |
get _nowInMilliseconds () |
481 |
{ |
482 |
var d = new Date(); |
483 |
return Date.UTC(d.getUTCFullYear(), |
484 |
d.getUTCMonth(), |
485 |
d.getUTCDay(), |
486 |
d.getUTCHours(), |
487 |
d.getUTCMinutes(), |
488 |
d.getUTCSeconds(), |
489 |
d.getUTCMilliseconds()); |
490 |
}, |
491 |
|
492 |
_clearAppUpdatePrefs: function nsUpdateService__clearAppUpdatePrefs () |
493 |
{ |
494 |
// Unset prefs used by the update service to signify application updates |
495 |
if (gPref.prefHasUserValue(PREF_UPDATE_APP_UPDATESAVAILABLE)) |
496 |
gPref.clearUserPref(PREF_UPDATE_APP_UPDATESAVAILABLE); |
497 |
}, |
498 |
|
499 |
///////////////////////////////////////////////////////////////////////////// |
500 |
// nsISupports |
501 |
QueryInterface: function nsUpdateService_QueryInterface (aIID) |
502 |
{ |
503 |
if (!aIID.equals(Components.interfaces.nsIUpdateService) && |
504 |
!aIID.equals(Components.interfaces.nsIObserver) && |
505 |
!aIID.equals(Components.interfaces.nsISupports)) |
506 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
507 |
return this; |
508 |
} |
509 |
}; |
510 |
|
511 |
function nsUpdateObserver(aUpdateTypes, aSourceEvent, aService) |
512 |
{ |
513 |
this._updateTypes = aUpdateTypes; |
514 |
this._sourceEvent = aSourceEvent; |
515 |
this._service = aService; |
516 |
} |
517 |
|
518 |
nsUpdateObserver.prototype = { |
519 |
_updateTypes: 0, |
520 |
_sourceEvent: 0, |
521 |
_updateState: 0, |
522 |
_endedTimer : null, |
523 |
|
524 |
appUpdater: null, |
525 |
|
526 |
get _doneUpdating() |
527 |
{ |
528 |
var notBackground = this._sourceEvent != nsIUpdateService.SOURCE_EVENT_BACKGROUND; |
529 |
var canUpdateApp = this._service._appAutoUpdateEnabled || |
530 |
(notBackground ? gPref.getBoolPref(PREF_UPDATE_APP_ENABLED) |
531 |
: false); |
532 |
var canUpdateExt = this._service._extAutoUpdateEnabled || |
533 |
(notBackground ? gPref.getBoolPref(PREF_UPDATE_EXTENSIONS_ENABLED) |
534 |
: false); |
535 |
|
536 |
var test = 0; |
537 |
var updatingApp = (this._updateTypes & nsIUpdateItem.TYPE_APP) && |
538 |
canUpdateApp; |
539 |
var updatingExt = (this._updateTypes & nsIUpdateItem.TYPE_ADDON) && |
540 |
canUpdateExt; |
541 |
|
542 |
if (updatingApp) |
543 |
test |= UPDATED_APP; |
544 |
if (updatingExt) |
545 |
test |= UPDATED_EXTENSIONS; |
546 |
|
547 |
return (this._updateState & test) == test; |
548 |
}, |
549 |
|
550 |
///////////////////////////////////////////////////////////////////////////// |
551 |
// nsIObserver |
552 |
observe: function nsUpdateObserver_observe (aSubject, aTopic, aData) |
553 |
{ |
554 |
switch (aTopic) { |
555 |
case "Update:Extension:Started": |
556 |
// Reset the count |
557 |
gPref.setIntPref(PREF_UPDATE_EXTENSIONS_COUNT, 0); |
558 |
break; |
559 |
case "Update:Extension:Item-Ended": |
560 |
var newCount = gPref.getIntPref(PREF_UPDATE_EXTENSIONS_COUNT) + 1; |
561 |
gPref.setIntPref(PREF_UPDATE_EXTENSIONS_COUNT, newCount); |
562 |
var threshold = gPref.getIntPref(PREF_UPDATE_EXTENSIONS_SEVERITY_THRESHOLD); |
563 |
if (this._service.updateSeverity < nsIUpdateService.SEVERITY_HIGH) { |
564 |
if (newCount > threshold) |
565 |
gPref.setIntPref(PREF_UPDATE_SEVERITY, nsIUpdateService.SEVERITY_MEDIUM); |
566 |
else |
567 |
gPref.setIntPref(PREF_UPDATE_SEVERITY, nsIUpdateService.SEVERITY_LOW); |
568 |
} |
569 |
break; |
570 |
case "Update:Extension:Ended": |
571 |
this._updateState |= UPDATED_EXTENSIONS; |
572 |
break; |
573 |
case "Update:App:Ended": |
574 |
this._updateState |= UPDATED_APP; |
575 |
|
576 |
this.appUpdater.destroy(); |
577 |
this.appUpdater = null; |
578 |
break; |
579 |
} |
580 |
|
581 |
if (this._doneUpdating) { |
582 |
// Do the finalize stuff on a timer to let other observers have a chance to |
583 |
// handle |
584 |
if (this._endedTimer) |
585 |
this._endedTimer.cancel(); |
586 |
this._endedTimer = Components.classes["@mozilla.org/timer;1"] |
587 |
.createInstance(Components.interfaces.nsITimer); |
588 |
this._endedTimer.initWithCallback(this, 0, |
589 |
Components.interfaces.nsITimer.TYPE_ONE_SHOT); |
590 |
} |
591 |
}, |
592 |
|
593 |
notify: function nsUpdateObserver_notify (aTimer) |
594 |
{ |
595 |
// The Inline Browser Update UI uses this notification to refresh its update |
596 |
// UI if necessary. |
597 |
gOS.notifyObservers(null, "Update:Ended", this._sourceEvent.toString()); |
598 |
|
599 |
// Show update notification UI if: |
600 |
// We were updating any types and any item was found |
601 |
// We were updating extensions and an extension update was found. |
602 |
// We were updating app and an app update was found. |
603 |
var updatesAvailable = (((this._updateTypes & nsIUpdateItem.TYPE_EXTENSION) || |
604 |
(this._updateTypes & nsIUpdateItem.TYPE_ANY)) && |
605 |
gPref.getIntPref(PREF_UPDATE_EXTENSIONS_COUNT) != 0); |
606 |
if (!updatesAvailable) { |
607 |
updatesAvailable = ((this._updateTypes & nsIUpdateItem.TYPE_APP) || |
608 |
(this._updateTypes & nsIUpdateItem.TYPE_ANY)) && |
609 |
gPref.getBoolPref(PREF_UPDATE_APP_UPDATESAVAILABLE); |
610 |
} |
611 |
|
612 |
var showNotification = gPref.getBoolPref(PREF_UPDATE_SHOW_SLIDING_NOTIFICATION); |
613 |
if (showNotification && updatesAvailable && |
614 |
this._sourceEvent == nsIUpdateService.SOURCE_EVENT_BACKGROUND) { |
615 |
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"] |
616 |
.getService(Components.interfaces.nsIStringBundleService); |
617 |
var bundle = sbs.createBundle("chrome://mozapps/locale/update/update.properties"); |
618 |
|
619 |
var alertTitle = bundle.GetStringFromName("updatesAvailableTitle"); |
620 |
var alertText = bundle.GetStringFromName("updatesAvailableText"); |
621 |
|
622 |
var alerts = Components.classes["@mozilla.org/alerts-service;1"] |
623 |
.getService(Components.interfaces.nsIAlertsService); |
624 |
alerts.showAlertNotification("chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png", |
625 |
alertTitle, alertText, true, "", this); |
626 |
} |
627 |
|
628 |
this.destroy(); |
629 |
}, |
630 |
|
631 |
destroy: function nsUpdateObserver_destroy () |
632 |
{ |
633 |
try { gOS.removeObserver(this, "Update:Extension:Started"); } catch (e) { } |
634 |
try { gOS.removeObserver(this, "Update:Extension:Item-Ended"); } catch (e) { } |
635 |
try { gOS.removeObserver(this, "Update:Extension:Ended"); } catch (e) { } |
636 |
try { gOS.removeObserver(this, "Update:App:Ended"); } catch (e) { } |
637 |
|
638 |
if (this._endedTimer) { |
639 |
this._endedTimer.cancel(); |
640 |
this._endedTimer = null; |
641 |
} |
642 |
}, |
643 |
|
644 |
//////////////////////////////////////////////////////////////////////////// |
645 |
// nsIAlertListener |
646 |
onAlertFinished: function nsUpdateObserver_onAlertFinished () |
647 |
{ |
648 |
}, |
649 |
|
650 |
onAlertClickCallback: function nsUpdateObserver_onAlertClickCallback (aCookie) |
651 |
{ |
652 |
var updates = Components.classes["@mozilla.org/updates/update-service;1"] |
653 |
.getService(Components.interfaces.nsIUpdateService); |
654 |
updates.checkForUpdates([], 0, Components.interfaces.nsIUpdateItem.TYPE_ANY, |
655 |
Components.interfaces.nsIUpdateService.SOURCE_EVENT_USER, |
656 |
null); |
657 |
}, |
658 |
|
659 |
///////////////////////////////////////////////////////////////////////////// |
660 |
// nsISupports |
661 |
QueryInterface: function nsUpdateObserver_QueryInterface (aIID) |
662 |
{ |
663 |
if (!aIID.equals(Components.interfaces.nsIObserver) && |
664 |
!aIID.equals(Components.interfaces.nsIAlertListener) && |
665 |
!aIID.equals(Components.interfaces.nsISupports)) |
666 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
667 |
return this; |
668 |
} |
669 |
}; |
670 |
|
671 |
/////////////////////////////////////////////////////////////////////////////// |
672 |
// App Updater |
673 |
function nsAppUpdater(aUpdateService) |
674 |
{ |
675 |
this._service = aUpdateService; |
676 |
} |
677 |
|
678 |
nsAppUpdater.prototype = { |
679 |
_service : null, |
680 |
|
681 |
checkForUpdates: function () |
682 |
{ |
683 |
var dsURI = gPref.getComplexValue(PREF_UPDATE_APP_URI, |
684 |
Components.interfaces.nsIPrefLocalizedString).data; |
685 |
dsURI += "?" + Math.round(Math.random() * 1000); |
686 |
this._ds = gRDF.GetDataSource(dsURI); |
687 |
var rds = this._ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource) |
688 |
if (rds.loaded) |
689 |
this.onDatasourceLoaded(this._ds); |
690 |
else { |
691 |
var sink = this._ds.QueryInterface(Components.interfaces.nsIRDFXMLSink); |
692 |
|
693 |
// Creates a strong ref that holds this object past when it falls out of |
694 |
// scope in the calling function |
695 |
sink.addXMLSinkObserver(this); |
696 |
} |
697 |
}, |
698 |
|
699 |
destroy: function () |
700 |
{ |
701 |
var sink = this._ds.QueryInterface(Components.interfaces.nsIRDFXMLSink); |
702 |
sink.removeXMLSinkObserver(this); |
703 |
this._service = null; |
704 |
}, |
705 |
|
706 |
///////////////////////////////////////////////////////////////////////////// |
707 |
// |
708 |
_ncR: function nsUpdateService__ncR (aProperty) |
709 |
{ |
710 |
return gRDF.GetResource("http://home.netscape.com/NC-rdf#" + aProperty); |
711 |
}, |
712 |
|
713 |
_getPropertyFromResource: function nsAppUpdater__getPropertyFromResource (aDataSource, |
714 |
aSourceResource, |
715 |
aProperty) |
716 |
{ |
717 |
var rv; |
718 |
try { |
719 |
var property = gRDF.GetResource(APP_NS(aProperty)); |
720 |
rv = this._stringData(aDataSource.GetTarget(aSourceResource, property, true)); |
721 |
if (rv == "--") |
722 |
throw Components.results.NS_ERROR_FAILURE; |
723 |
} |
724 |
catch (e) { |
725 |
return null; |
726 |
} |
727 |
return rv; |
728 |
}, |
729 |
|
730 |
_stringData: function nsAppUpdater__stringData (aLiteralOrResource) |
731 |
{ |
732 |
try { |
733 |
var obj = aLiteralOrResource.QueryInterface(Components.interfaces.nsIRDFLiteral); |
734 |
return obj.Value; |
735 |
} |
736 |
catch (e) { |
737 |
try { |
738 |
obj = aLiteralOrResource.QueryInterface(Components.interfaces.nsIRDFResource); |
739 |
return obj.Value; |
740 |
} |
741 |
catch (e) {} |
742 |
} |
743 |
return "--"; |
744 |
}, |
745 |
|
746 |
///////////////////////////////////////////////////////////////////////////// |
747 |
// |
748 |
onDatasourceLoaded: function nsAppUpdater_onDatasourceLoaded (aDataSource) |
749 |
{ |
750 |
var appID = gPref.getCharPref(PREF_APP_ID); |
751 |
var appVersion = gPref.getCharPref(PREF_APP_VERSION); |
752 |
|
753 |
var appResource = gRDF.GetResource("urn:mozilla:app:" + appID); |
754 |
var updatesArc = gRDF.GetResource(APP_NS("updates")); |
755 |
var updatesResource = aDataSource.GetTarget(appResource, updatesArc, true); |
756 |
|
757 |
try { |
758 |
updatesResource = updatesResource.QueryInterface(Components.interfaces.nsIRDFResource); |
759 |
} |
760 |
catch (e) { |
761 |
gOS.notifyObservers(null, "Update:App:Error", ""); |
762 |
gOS.notifyObservers(null, "Update:App:Ended", ""); |
763 |
return; |
764 |
} |
765 |
|
766 |
var cu = Components.classes["@mozilla.org/rdf/container-utils;1"] |
767 |
.getService(Components.interfaces.nsIRDFContainerUtils); |
768 |
if (cu.IsContainer(aDataSource, updatesResource)) { |
769 |
var c = Components.classes["@mozilla.org/rdf/container;1"] |
770 |
.getService(Components.interfaces.nsIRDFContainer); |
771 |
c.Init(aDataSource, updatesResource); |
772 |
|
773 |
var versionChecker = Components.classes["@mozilla.org/updates/version-checker;1"] |
774 |
.getService(Components.interfaces.nsIVersionChecker); |
775 |
|
776 |
var newestVersionObj = { version: appVersion, resource: null }; |
777 |
var updates = c.GetElements(); |
778 |
while (updates.hasMoreElements()) { |
779 |
var update = updates.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
780 |
var version = this._getPropertyFromResource(aDataSource, update, "version"); |
781 |
if (!version) |
782 |
continue; |
783 |
if (versionChecker.compare(appVersion, version) == 0) |
784 |
this._parseVersionData(aDataSource, update, this._service._currentVersion); |
785 |
else if (versionChecker.compare(newestVersionObj.version, version) < 0) { |
786 |
newestVersionObj.version = version; |
787 |
newestVersionObj.resource = update; |
788 |
} |
789 |
} |
790 |
if (newestVersionObj.resource) |
791 |
this._parseVersionData(aDataSource, newestVersionObj.resource, this._service._newestVersion); |
792 |
|
793 |
// There is a newer version of the app available or there are any critical |
794 |
// patches available update the severity and available updates preferences. |
795 |
// XXXben also note if there are langpacks available that match the user's |
796 |
// preference if they previously installed an app update when a |
797 |
// langpack for their language was not available and they used another |
798 |
// in the meantime. |
799 |
var haveLanguage = false; |
800 |
var patches = this._service._currentVersion.patches; |
801 |
var languages = this._service._newestVersion.languages; |
802 |
if (languages) { |
803 |
var cr = Components.classes["@mozilla.org/chrome/chrome-registry;1"] |
804 |
.getService(Components.interfaces.nsIXULChromeRegistry); |
805 |
var selectedLocale = cr.getSelectedLocale("global"); |
806 |
for (var i = 0; i < languages.length; ++i) { |
807 |
if (languages[i].internalName == selectedLocale) |
808 |
haveLanguage = true; |
809 |
} |
810 |
} |
811 |
|
812 |
if ((haveLanguage && (newestVersionObj.version != appVersion)) || |
813 |
(patches && patches.length > 0)) { |
814 |
gPref.setIntPref(PREF_UPDATE_SEVERITY, 2); |
815 |
gPref.setBoolPref(PREF_UPDATE_APP_UPDATESAVAILABLE, true); |
816 |
} |
817 |
else |
818 |
gPref.setBoolPref(PREF_UPDATE_APP_UPDATESAVAILABLE, false); |
819 |
|
820 |
if (!gPref.getBoolPref(PREF_UPDATE_APP_UPDATESAVAILABLE)) { |
821 |
this._service._clearAppUpdatePrefs(); |
822 |
|
823 |
// Lower the severity to reflect the fact that there are now only Extension/ |
824 |
// Theme updates available |
825 |
var newCount = gPref.getIntPref(PREF_UPDATE_EXTENSIONS_COUNT); |
826 |
var threshold = gPref.getIntPref(PREF_UPDATE_EXTENSIONS_SEVERITY_THRESHOLD); |
827 |
if (newCount >= threshold) |
828 |
gPref.setIntPref(PREF_UPDATE_SEVERITY, nsIUpdateService.SEVERITY_MEDIUM); |
829 |
else |
830 |
gPref.setIntPref(PREF_UPDATE_SEVERITY, nsIUpdateService.SEVERITY_LOW); |
831 |
} |
832 |
} |
833 |
|
834 |
// The Update Wizard uses this notification to determine that the application |
835 |
// update process is now complete. |
836 |
gOS.notifyObservers(null, "Update:App:Ended", ""); |
837 |
}, |
838 |
|
839 |
_parseVersionData: function nsAppUpdater__parseVersionData (aDataSource, |
840 |
aUpdateResource, |
841 |
aTargetObj) |
842 |
{ |
843 |
aTargetObj.updateVersion = this._getPropertyFromResource(aDataSource, aUpdateResource, "version"); |
844 |
aTargetObj.updateDisplayVersion = this._getPropertyFromResource(aDataSource, aUpdateResource, "displayVersion"); |
845 |
if (!aTargetObj.updateDisplayVersion) |
846 |
aTargetObj.updateDisplayVersion = this._getPropertyFromResource(aDataSource, aUpdateResource, "version"); |
847 |
aTargetObj.updateInfoURL = this._getPropertyFromResource(aDataSource, aUpdateResource, "infoURL"); |
848 |
|
849 |
aTargetObj.features = this._parseUpdateCollection(aDataSource, aUpdateResource, "features"); |
850 |
aTargetObj.files = this._parseUpdateCollection(aDataSource, aUpdateResource, "files"); |
851 |
aTargetObj.optional = this._parseUpdateCollection(aDataSource, aUpdateResource, "optional"); |
852 |
aTargetObj.languages = this._parseUpdateCollection(aDataSource, aUpdateResource, "languages"); |
853 |
aTargetObj.patches = this._parseUpdateCollection(aDataSource, aUpdateResource, "patches"); |
854 |
}, |
855 |
|
856 |
_parseUpdateCollection: function nsAppUpdater__parseUpdateCollection (aDataSource, |
857 |
aUpdateResource, |
858 |
aCollectionName) |
859 |
{ |
860 |
if (!aUpdateResource) |
861 |
return null; |
862 |
|
863 |
var result = []; |
864 |
|
865 |
var collectionArc = gRDF.GetResource(APP_NS(aCollectionName)); |
866 |
var collectionResource = aDataSource.GetTarget(aUpdateResource, collectionArc, true); |
867 |
|
868 |
try { |
869 |
collectionResource = collectionResource.QueryInterface(Components.interfaces.nsIRDFResource); |
870 |
} |
871 |
catch (e) { return null; } |
872 |
|
873 |
var cu = Components.classes["@mozilla.org/rdf/container-utils;1"] |
874 |
.getService(Components.interfaces.nsIRDFContainerUtils); |
875 |
if (cu.IsContainer(aDataSource, collectionResource)) { |
876 |
var c = Components.classes["@mozilla.org/rdf/container;1"] |
877 |
.getService(Components.interfaces.nsIRDFContainer); |
878 |
c.Init(aDataSource, collectionResource); |
879 |
|
880 |
var elements = c.GetElements(); |
881 |
var fileArc = gRDF.GetResource(APP_NS("file")); |
882 |
var platform = getOSKey(); |
883 |
while (elements.hasMoreElements()) { |
884 |
var element = elements.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
885 |
var info = new nsAppUpdateInfoItem(); |
886 |
info.name = this._getPropertyFromResource(aDataSource, element, "name"); |
887 |
info.internalName = this._getPropertyFromResource(aDataSource, element, "internalName"); |
888 |
|
889 |
// Each Component has a set of app:file arcs out, which reference resources with two |
890 |
// properties: app:platform and app:URL. If we find a resource whose app:platform value |
891 |
// matches the platform we're running on, we use the app:URL property on that resource |
892 |
// as the XPI URL, otherwise we use the default app:URL property on the Component |
893 |
// resource. (It must be a cross-platform piece, e.g. a language pack) |
894 |
// XXXben - what to do when platform not supported? We need some way to abort |
895 |
// and tell the app that this update is not available. |
896 |
var files = aDataSource.GetTargets(element, fileArc, true); |
897 |
while (files.hasMoreElements()) { |
898 |
var file = files.getNext().QueryInterface(Components.interfaces.nsIRDFResource); |
899 |
if (platform == this._getPropertyFromResource(aDataSource, file, "platform")) { |
900 |
info.URL = this._getPropertyFromResource(aDataSource, file, "URL"); |
901 |
break; |
902 |
} |
903 |
} |
904 |
if (!info.URL) |
905 |
info.URL = this._getPropertyFromResource(aDataSource, element, "URL"); |
906 |
info.infoURL = this._getPropertyFromResource(aDataSource, element, "infoURL"); |
907 |
info.description = this._getPropertyFromResource(aDataSource, element, "description"); |
908 |
result.push(info); |
909 |
} |
910 |
} |
911 |
|
912 |
return result; |
913 |
}, |
914 |
|
915 |
onDatasourceError: function (aStatus, aErrorMsg) |
916 |
{ |
917 |
gOS.notifyObservers(null, "Update:App:Error", ""); |
918 |
gOS.notifyObservers(null, "Update:App:Ended", ""); |
919 |
}, |
920 |
|
921 |
///////////////////////////////////////////////////////////////////////////// |
922 |
// nsIRDFXMLSinkObserver |
923 |
onBeginLoad: function(aSink) |
924 |
{ |
925 |
}, |
926 |
onInterrupt: function(aSink) |
927 |
{ |
928 |
}, |
929 |
onResume: function(aSink) |
930 |
{ |
931 |
}, |
932 |
|
933 |
onEndLoad: function(aSink) |
934 |
{ |
935 |
try { |
936 |
this._ds = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource); |
937 |
this.onDatasourceLoaded(this._ds); |
938 |
} |
939 |
catch (e) { } |
940 |
}, |
941 |
|
942 |
onError: function(aSink, aStatus, aErrorMsg) |
943 |
{ |
944 |
try { |
945 |
this._ds = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource); |
946 |
this.onDatasourceError(aStatus, aErrorMsg); |
947 |
} |
948 |
catch (e) { } |
949 |
}, |
950 |
|
951 |
///////////////////////////////////////////////////////////////////////////// |
952 |
// nsISupports |
953 |
QueryInterface: function nsAppUpdater_QueryInterface (aIID) |
954 |
{ |
955 |
if (!aIID.equals(Components.interfaces.nsIRDFXMLSinkObserver) && |
956 |
!aIID.equals(Components.interfaces.nsISupports)) |
957 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
958 |
return this; |
959 |
} |
960 |
} |
961 |
|
962 |
function UpdateItem () |
963 |
{ |
964 |
} |
965 |
|
966 |
UpdateItem.prototype = { |
967 |
init: function UpdateItem_init (aID, |
968 |
aVersion, |
969 |
aMinAppVersion, |
970 |
aMaxAppVersion, |
971 |
aName, |
972 |
aRow, |
973 |
aXPIURL, |
974 |
aIconURL, |
975 |
aUpdateRDF, |
976 |
aType) |
977 |
{ |
978 |
this._id = aID; |
979 |
this._version = aVersion; |
980 |
this._minAppVersion = aMinAppVersion; |
981 |
this._maxAppVersion = aMaxAppVersion; |
982 |
this._name = aName; |
983 |
this._row = aRow; |
984 |
this._xpiURL = aXPIURL; |
985 |
this._iconURL = aIconURL; |
986 |
this._updateRDF = aUpdateRDF; |
987 |
this._type = aType; |
988 |
}, |
989 |
|
990 |
get id() { return this._id; }, |
991 |
get version() { return this._version; }, |
992 |
get minAppVersion() { return this._minAppVersion; }, |
993 |
get maxAppVersion() { return this._maxAppVersion; }, |
994 |
get name() { return this._name; }, |
995 |
get row() { return this._row; }, |
996 |
get xpiURL() { return this._xpiURL; }, |
997 |
get iconURL() { return this._iconURL }, |
998 |
get updateRDF() { return this._updateRDF; }, |
999 |
get type() { return this._type; }, |
1000 |
|
1001 |
get objectSource() |
1002 |
{ |
1003 |
return { id : this._id, |
1004 |
version : this._version, |
1005 |
minAppVersion : this._minAppVersion, |
1006 |
maxAppVersion : this._maxAppVersion, |
1007 |
name : this._name, |
1008 |
row : this._row, |
1009 |
xpiURL : this._xpiURL, |
1010 |
iconURL : this._iconURL, |
1011 |
updateRDF : this._updateRDF, |
1012 |
type : this._type |
1013 |
}.toSource(); |
1014 |
}, |
1015 |
|
1016 |
///////////////////////////////////////////////////////////////////////////// |
1017 |
// nsISupports |
1018 |
QueryInterface: function UpdateItem_QueryInterface (aIID) |
1019 |
{ |
1020 |
if (!aIID.equals(Components.interfaces.nsIUpdateItem) && |
1021 |
!aIID.equals(Components.interfaces.nsISupports)) |
1022 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
1023 |
return this; |
1024 |
} |
1025 |
}; |
1026 |
|
1027 |
function nsAppUpdateInfoItem () |
1028 |
{ |
1029 |
} |
1030 |
nsAppUpdateInfoItem.prototype = { |
1031 |
internalName: "", |
1032 |
name : "", |
1033 |
URL : "", |
1034 |
infoURL : "", |
1035 |
|
1036 |
///////////////////////////////////////////////////////////////////////////// |
1037 |
// nsISupports |
1038 |
QueryInterface: function nsAppUpdater_QueryInterface (aIID) |
1039 |
{ |
1040 |
if (!aIID.equals(Components.interfaces.nsIAppUpdateInfo) && |
1041 |
!aIID.equals(Components.interfaces.nsISupports)) |
1042 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
1043 |
return this; |
1044 |
} |
1045 |
}; |
1046 |
|
1047 |
function nsAppUpdateInfo () |
1048 |
{ |
1049 |
} |
1050 |
nsAppUpdateInfo.prototype = { |
1051 |
updateVersion : "", |
1052 |
updateDisplayVersion: "", |
1053 |
updateInfoURL : "", |
1054 |
|
1055 |
features : [], |
1056 |
files : [], |
1057 |
optional : [], |
1058 |
languages : [], |
1059 |
patches : [], |
1060 |
|
1061 |
getCollection: function (aCollectionName, aItemCount) |
1062 |
{ |
1063 |
var collection = aCollectionName in this ? this[aCollectionName] : null; |
1064 |
aItemCount.value = collection ? collection.length : 0; |
1065 |
return collection; |
1066 |
}, |
1067 |
|
1068 |
///////////////////////////////////////////////////////////////////////////// |
1069 |
// nsISupports |
1070 |
QueryInterface: function nsAppUpdater_QueryInterface (aIID) |
1071 |
{ |
1072 |
if (!aIID.equals(Components.interfaces.nsIAppUpdateInfoCollection) && |
1073 |
!aIID.equals(Components.interfaces.nsISupports)) |
1074 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
1075 |
return this; |
1076 |
} |
1077 |
}; |
1078 |
|
1079 |
function Version(aMajor, aMinor, aRelease, aBuild, aPlus) |
1080 |
{ |
1081 |
this.major = aMajor || 0; |
1082 |
this.minor = aMinor || 0; |
1083 |
this.release = aRelease || 0; |
1084 |
this.build = aBuild || 0; |
1085 |
this.plus = aPlus || 0; |
1086 |
} |
1087 |
|
1088 |
Version.prototype = { |
1089 |
toString: function Version_toString() |
1090 |
{ |
1091 |
return this.major + "." + this.minor + "." + this.subminor + "." + this.release + (this.plus ? "+" : ""); |
1092 |
}, |
1093 |
|
1094 |
compare: function (aVersion) |
1095 |
{ |
1096 |
var fields = ["major", "minor", "release", "build", "plus"]; |
1097 |
|
1098 |
for (var i = 0; i < fields.length; ++i) { |
1099 |
var field = fields[i]; |
1100 |
if (aVersion[field] > this[field]) |
1101 |
return -1; |
1102 |
else if (aVersion[field] < this[field]) |
1103 |
return 1; |
1104 |
} |
1105 |
return 0; |
1106 |
} |
1107 |
} |
1108 |
|
1109 |
function nsVersionChecker() |
1110 |
{ |
1111 |
} |
1112 |
|
1113 |
nsVersionChecker.prototype = { |
1114 |
///////////////////////////////////////////////////////////////////////////// |
1115 |
// nsIVersionChecker |
1116 |
|
1117 |
// -ve if B is newer |
1118 |
// equal if A == B |
1119 |
// +ve if A is newer |
1120 |
compare: function nsVersionChecker_compare (aVersionA, aVersionB) |
1121 |
{ |
1122 |
var a = this._decomposeVersion(aVersionA); |
1123 |
var b = this._decomposeVersion(aVersionB); |
1124 |
|
1125 |
return a.compare(b); |
1126 |
}, |
1127 |
|
1128 |
_decomposeVersion: function nsVersionChecker__decomposeVersion (aVersion) |
1129 |
{ |
1130 |
var plus = 0; |
1131 |
if (aVersion.charAt(aVersion.length-1) == "+") { |
1132 |
aVersion = aVersion.substr(0, aVersion.length-1); |
1133 |
plus = 1; |
1134 |
} |
1135 |
|
1136 |
var parts = aVersion.split("."); |
1137 |
|
1138 |
return new Version(this._getValidInt(parts[0]), |
1139 |
this._getValidInt(parts[1]), |
1140 |
this._getValidInt(parts[2]), |
1141 |
this._getValidInt(parts[3]), |
1142 |
plus); |
1143 |
}, |
1144 |
|
1145 |
_getValidInt: function nsVersionChecker__getValidInt (aPartString) |
1146 |
{ |
1147 |
var integer = parseInt(aPartString); |
1148 |
if (isNaN(integer)) |
1149 |
return 0; |
1150 |
return integer; |
1151 |
}, |
1152 |
|
1153 |
isValidVersion: function nsVersionChecker_isValidVersion (aVersion) |
1154 |
{ |
1155 |
var parts = aVersion.split("."); |
1156 |
if (parts.length == 0) |
1157 |
return false; |
1158 |
for (var i = 0; i < parts.length; ++i) { |
1159 |
var part = parts[i]; |
1160 |
if (i == parts.length - 1) { |
1161 |
if (part.lastIndexOf("+") != -1) |
1162 |
parts[i] = part.substr(0, part.length - 1); |
1163 |
} |
1164 |
var integer = parseInt(part); |
1165 |
if (isNaN(integer)) |
1166 |
return false; |
1167 |
} |
1168 |
return true; |
1169 |
}, |
1170 |
|
1171 |
///////////////////////////////////////////////////////////////////////////// |
1172 |
// nsISupports |
1173 |
QueryInterface: function nsVersionChecker_QueryInterface (aIID) |
1174 |
{ |
1175 |
if (!aIID.equals(Components.interfaces.nsIVersionChecker) && |
1176 |
!aIID.equals(Components.interfaces.nsISupports)) |
1177 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
1178 |
return this; |
1179 |
} |
1180 |
}; |
1181 |
|
1182 |
var gModule = { |
1183 |
_firstTime: true, |
1184 |
|
1185 |
registerSelf: function (aComponentManager, aFileSpec, aLocation, aType) |
1186 |
{ |
1187 |
if (this._firstTime) { |
1188 |
this._firstTime = false; |
1189 |
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN; |
1190 |
} |
1191 |
aComponentManager = aComponentManager.QueryInterface(Components.interfaces.nsIComponentRegistrar); |
1192 |
|
1193 |
for (var key in this._objects) { |
1194 |
var obj = this._objects[key]; |
1195 |
aComponentManager.registerFactoryLocation(obj.CID, obj.className, obj.contractID, |
1196 |
aFileSpec, aLocation, aType); |
1197 |
} |
1198 |
}, |
1199 |
|
1200 |
getClassObject: function (aComponentManager, aCID, aIID) |
1201 |
{ |
1202 |
if (!aIID.equals(Components.interfaces.nsIFactory)) |
1203 |
throw Components.results.NS_ERROR_NOT_IMPLEMENTED; |
1204 |
|
1205 |
for (var key in this._objects) { |
1206 |
if (aCID.equals(this._objects[key].CID)) |
1207 |
return this._objects[key].factory; |
1208 |
} |
1209 |
|
1210 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
1211 |
}, |
1212 |
|
1213 |
_objects: { |
1214 |
manager: { CID: Components.ID("{B3C290A6-3943-4B89-8BBE-C01EB7B3B311}"), |
1215 |
contractID: "@mozilla.org/updates/update-service;1", |
1216 |
className: "Update Service", |
1217 |
factory: { |
1218 |
createInstance: function (aOuter, aIID) |
1219 |
{ |
1220 |
if (aOuter != null) |
1221 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
1222 |
|
1223 |
return (new nsUpdateService()).QueryInterface(aIID); |
1224 |
} |
1225 |
} |
1226 |
}, |
1227 |
version: { CID: Components.ID("{9408E0A5-509E-45E7-80C1-0F35B99FF7A9}"), |
1228 |
contractID: "@mozilla.org/updates/version-checker;1", |
1229 |
className: "Version Checker", |
1230 |
factory: { |
1231 |
createInstance: function (aOuter, aIID) |
1232 |
{ |
1233 |
if (aOuter != null) |
1234 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
1235 |
|
1236 |
return (new nsVersionChecker()).QueryInterface(aIID); |
1237 |
} |
1238 |
} |
1239 |
}, |
1240 |
item: { CID: Components.ID("{F3294B1C-89F4-46F8-98A0-44E1EAE92518}"), |
1241 |
contractID: "@mozilla.org/updates/item;1", |
1242 |
className: "Extension Item", |
1243 |
factory: { |
1244 |
createInstance: function (aOuter, aIID) |
1245 |
{ |
1246 |
if (aOuter != null) |
1247 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
1248 |
|
1249 |
return new UpdateItem().QueryInterface(aIID); |
1250 |
} |
1251 |
} |
1252 |
} |
1253 |
}, |
1254 |
|
1255 |
canUnload: function (aComponentManager) |
1256 |
{ |
1257 |
return true; |
1258 |
} |
1259 |
}; |
1260 |
|
1261 |
function NSGetModule(compMgr, fileSpec) |
1262 |
{ |
1263 |
return gModule; |
1264 |
} |
1265 |
|
|
|
1266 |
++ toolkit/mozapps/jar.mn |
Lines 22-28
Link Here
|
22 |
* content/mozapps/extensions/finalize.xul (extensions/content/finalize.xul) |
22 |
* content/mozapps/extensions/finalize.xul (extensions/content/finalize.xul) |
23 |
* content/mozapps/update/update.xul (update/content/update.xul) |
23 |
* content/mozapps/update/update.xul (update/content/update.xul) |
24 |
* content/mozapps/update/update.js (update/content/update.js) |
24 |
* content/mozapps/update/update.js (update/content/update.js) |
25 |
* content/mozapps/update/updates.xml (update/content/updates.xml) |
|
|
26 |
* content/mozapps/update/update.css (update/content/update.css) |
25 |
* content/mozapps/update/update.css (update/content/update.css) |
27 |
* content/mozapps/update/errors.xul (update/content/errors.xul) |
26 |
* content/mozapps/update/errors.xul (update/content/errors.xul) |
28 |
* content/mozapps/shared/richview.xml (shared/content/richview.xml) |
27 |
* content/mozapps/shared/richview.xml (shared/content/richview.xml) |
29 |
-- toolkit/themes/gnomestripe/global/button.css |
28 |
++ toolkit/themes/gnomestripe/global/button.css |
Lines 162-164
Link Here
|
162 |
list-style-image: url("chrome://global/skin/tree/twisty-open.png"); |
162 |
list-style-image: url("chrome://global/skin/tree/twisty-open.png"); |
163 |
} |
163 |
} |
164 |
|
164 |
|
165 |
-- toolkit/xre/nsXREDirProvider.cpp |
165 |
/* |
|
|
166 |
* GNOME Stock Icon Styles |
167 |
*/ |
168 |
|
169 |
button[icon="accept"] .button-icon { |
170 |
list-style-image: url("moz-icon://stock/gtk-ok?size=button"); |
171 |
} |
172 |
|
173 |
button[icon="cancel"] .button-icon { |
174 |
list-style-image: url("moz-icon://stock/gtk-cancel?size=button"); |
175 |
} |
176 |
|
177 |
button[icon="help"] .button-icon { |
178 |
list-style-image: url("moz-icon://stock/gtk-help?size=button"); |
179 |
} |
180 |
|
181 |
button[icon="open"] .button-icon { |
182 |
list-style-image: url("moz-icon://stock/gtk-open?size=button"); |
183 |
} |
184 |
|
185 |
button[icon="save"] .button-icon { |
186 |
list-style-image: url(moz-icon://stock/gtk-save?size=button); |
187 |
} |
188 |
|
189 |
button[icon="find"] .button-icon { |
190 |
list-style-image: url("moz-icon://stock/gtk-find?size=button"); |
191 |
} |
192 |
|
193 |
button[icon="clear"] .button-icon { |
194 |
list-style-image: url("moz-icon://stock/gtk-clear?size=button"); |
195 |
} |
196 |
|
197 |
button[icon="yes"] .button-icon { |
198 |
list-style-image: url("moz-icon://stock/gtk-yes?size=button"); |
199 |
} |
200 |
|
201 |
button[icon="no"] .button-icon { |
202 |
list-style-image: url("moz-icon://stock/gtk-no?size=button"); |
203 |
} |
204 |
|
205 |
button[icon="apply"] .button-icon { |
206 |
list-style-image: url("moz-icon://stock/gtk-apply?size=button"); |
207 |
} |
208 |
|
209 |
button[icon="close"] .button-icon { |
210 |
list-style-image: url("moz-icon://stock/gtk-close?size=button"); |
211 |
} |
212 |
|
213 |
button[icon="print"] .button-icon { |
214 |
list-style-image: url("moz-icon://stock/gtk-print?size=button"); |
215 |
} |
216 |
|
217 |
button[icon="add"] .button-icon { |
218 |
list-style-image: url("moz-icon://stock/gtk-add?size=button"); |
219 |
} |
220 |
|
221 |
button[icon="remove"] .button-icon { |
222 |
list-style-image: url("moz-icon://stock/gtk-remove?size=button"); |
223 |
} |
224 |
|
225 |
button[icon="refresh"] .button-icon { |
226 |
list-style-image: url("moz-icon://stock/gtk-refresh?size=button"); |
227 |
} |
228 |
|
229 |
button[icon="go-forward"] .button-icon { |
230 |
list-style-image: url("moz-icon://stock/gtk-go-forward?size=button"); |
231 |
} |
232 |
|
233 |
button[icon="go-back"] .button-icon { |
234 |
list-style-image: url("moz-icon://stock/gtk-go-back?size=button"); |
235 |
} |
236 |
|
237 |
button[icon="properties"] .button-icon { |
238 |
list-style-image: url("moz-icon://stock/gtk-properties?size=button"); |
239 |
} |
240 |
|
241 |
button[icon="select-font"] .button-icon { |
242 |
list-style-image: url("moz-icon://stock/gtk-select-font?size=button"); |
243 |
} |
244 |
|
245 |
button[icon="network"] .button-icon { |
246 |
list-style-image: url("moz-icon://stock/gtk-network?size=button"); |
247 |
} |
|
|
248 |
++ toolkit/xre/nsXREDirProvider.cpp |
Lines 287-292
Link Here
|
287 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
287 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
288 |
rv |= file->AppendNative(nsDependentCString("chrome")); |
288 |
rv |= file->AppendNative(nsDependentCString("chrome")); |
289 |
} |
289 |
} |
|
|
290 |
else if (!strcmp(aProperty, NS_APP_USER_SEARCH_50_DIR)) { |
291 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
292 |
rv |= file->AppendNative(NS_LITERAL_CSTRING("search")); |
293 |
} |
290 |
else if (!strcmp(aProperty, NS_APP_LOCALSTORE_50_FILE)) { |
294 |
else if (!strcmp(aProperty, NS_APP_LOCALSTORE_50_FILE)) { |
291 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
295 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
292 |
rv |= file->AppendNative(nsDependentCString("localstore.rdf")); |
296 |
rv |= file->AppendNative(nsDependentCString("localstore.rdf")); |
Lines 314-324
Link Here
|
314 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
318 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
315 |
rv |= file->AppendNative(nsDependentCString("downloads.rdf")); |
319 |
rv |= file->AppendNative(nsDependentCString("downloads.rdf")); |
316 |
} |
320 |
} |
317 |
else if (!strcmp(aProperty, NS_APP_SEARCH_50_FILE)) { |
|
|
318 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
319 |
rv |= file->AppendNative(nsDependentCString("search.rdf")); |
320 |
EnsureProfileFileExists(file); |
321 |
} |
322 |
else if (!strcmp(aProperty, NS_APP_MAIL_50_DIR)) { |
321 |
else if (!strcmp(aProperty, NS_APP_MAIL_50_DIR)) { |
323 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
322 |
rv = mProfileDir->Clone(getter_AddRefs(file)); |
324 |
rv |= file->AppendNative(nsDependentCString("Mail")); |
323 |
rv |= file->AppendNative(nsDependentCString("Mail")); |
325 |
-- toolkit/xre/nsAppRunner.cpp |
324 |
++ toolkit/xre/nsAppRunner.cpp |
Lines 1522-1527
Link Here
|
1522 |
}; |
1522 |
}; |
1523 |
#endif |
1523 |
#endif |
1524 |
|
1524 |
|
|
|
1525 |
#ifdef MOZ_WIDGET_GTK2 |
1526 |
#include "prlink.h" |
1527 |
typedef void (*_g_set_application_name_fn)(const gchar *application_name); |
1528 |
#endif |
1529 |
|
1525 |
int xre_main(int argc, char* argv[], const nsXREAppData* aAppData) |
1530 |
int xre_main(int argc, char* argv[], const nsXREAppData* aAppData) |
1526 |
{ |
1531 |
{ |
1527 |
nsresult rv; |
1532 |
nsresult rv; |
Lines 1650-1655
Link Here
|
1650 |
#endif |
1655 |
#endif |
1651 |
gtk_init(&gArgc, &gArgv); |
1656 |
gtk_init(&gArgc, &gArgv); |
1652 |
|
1657 |
|
|
|
1658 |
#if defined(MOZ_WIDGET_GTK2) |
1659 |
// g_set_application_name is only defined in glib2.2 and higher |
1660 |
PRLibrary *glib2; |
1661 |
_g_set_application_name_fn _g_set_application_name = |
1662 |
(_g_set_application_name_fn)PR_FindFunctionSymbolAndLibrary("g_set_application_name", &glib2); |
1663 |
if (_g_set_application_name) { |
1664 |
_g_set_application_name(gAppData->appName); |
1665 |
} |
1666 |
if (glib2) { |
1667 |
PR_UnloadLibrary(glib2); |
1668 |
} |
1669 |
#endif |
1670 |
|
1653 |
gtk_widget_set_default_visual(gdk_rgb_get_visual()); |
1671 |
gtk_widget_set_default_visual(gdk_rgb_get_visual()); |
1654 |
gtk_widget_set_default_colormap(gdk_rgb_get_cmap()); |
1672 |
gtk_widget_set_default_colormap(gdk_rgb_get_cmap()); |
1655 |
#endif /* MOZ_WIDGET_GTK || MOZ_WIDGET_GTK2 */ |
1673 |
#endif /* MOZ_WIDGET_GTK || MOZ_WIDGET_GTK2 */ |
1656 |
-- extensions/cookie/resources/content/cookieAcceptDialog.js |
1674 |
++ extensions/cookie/resources/content/cookieAcceptDialog.js |
Lines 62-67
Link Here
|
62 |
document.getElementById("cancel").label = dialog.getAttribute("cancelLabel"); |
62 |
document.getElementById("cancel").label = dialog.getAttribute("cancelLabel"); |
63 |
document.getElementById("cancel").accessKey = dialog.getAttribute("cancelKey"); |
63 |
document.getElementById("cancel").accessKey = dialog.getAttribute("cancelKey"); |
64 |
|
64 |
|
|
|
65 |
// hook up GNOME stock icons where implemented |
66 |
document.getElementById("ok").setAttribute("icon","accept"); |
67 |
document.getElementById("cancel").setAttribute("icon","cancel"); |
68 |
document.getElementById("Button2").setAttribute("icon","accept"); |
69 |
document.getElementById("disclosureButton").setAttribute("icon","properties"); |
70 |
|
65 |
if (!gDateService) { |
71 |
if (!gDateService) { |
66 |
const nsScriptableDateFormat_CONTRACTID = "@mozilla.org/intl/scriptabledateformat;1"; |
72 |
const nsScriptableDateFormat_CONTRACTID = "@mozilla.org/intl/scriptabledateformat;1"; |
67 |
const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; |
73 |
const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat; |
68 |
-- extensions/typeaheadfind/public/Makefile.in |
74 |
++ extensions/typeaheadfind/public/Makefile.in |
Lines 31-41
Link Here
|
31 |
|
31 |
|
32 |
include $(DEPTH)/config/autoconf.mk |
32 |
include $(DEPTH)/config/autoconf.mk |
33 |
|
33 |
|
34 |
MODULE=typeaheadfind |
34 |
MODULE=typeaheadfindsea |
35 |
XPIDL_MODULE=typeaheadfind |
35 |
XPIDL_MODULE=typeaheadfindsea |
36 |
GRE_MODULE = 1 |
36 |
GRE_MODULE = 1 |
37 |
|
37 |
|
38 |
XPIDLSRCS= ./nsITypeAheadFind.idl \ |
38 |
XPIDLSRCS= ./nsITypeAheadFindSea.idl \ |
39 |
$(NULL) |
39 |
$(NULL) |
40 |
|
40 |
|
41 |
|
41 |
|
42 |
-- extensions/typeaheadfind/public/nsITypeAheadFindSea.idl |
42 |
++ extensions/typeaheadfind/public/nsITypeAheadFindSea.idl |
Line 0
Link Here
|
0 |
-- extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js |
1 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is mozilla.org code. |
16 |
* |
17 |
* The Initial Developer of the Original Code is |
18 |
* Netscape Communications Corporation. |
19 |
* Portions created by the Initial Developer are Copyright (C) 1998 |
20 |
* the Initial Developer. All Rights Reserved. |
21 |
* |
22 |
* Contributor(s): |
23 |
* Original Author: Aaron Leventhal (aaronl@netscape.com) |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
#include "nsISupports.idl" |
40 |
#include "domstubs.idl" |
41 |
#include "nsISupportsPrimitives.idl" |
42 |
|
43 |
%{ C++ |
44 |
#include "nsIDOMEvent.h" |
45 |
|
46 |
#define NS_TYPEAHEADFINDSEA_CID \ |
47 |
{0x46590685, 0xbc00, 0x4aac, {0xab, 0xed, 0x2c, 0x10, 0xa5, 0xb9, 0x45, 0xa4}} |
48 |
|
49 |
#define NS_TYPEAHEADFINDSEA_CONTRACTID "@mozilla.org/typeaheadfindsea;1" |
50 |
%} |
51 |
|
52 |
interface nsIDOMEvent; |
53 |
|
54 |
[scriptable, uuid(a565f6e0-d521-4ffe-8cea-569fbb163cd1)] |
55 |
interface nsITypeAheadFindSea : nsISupports |
56 |
{ |
57 |
/** Is type ahead find mode currently on? */ |
58 |
readonly attribute boolean isActive; |
59 |
|
60 |
/** Manually start type ahead find mode */ |
61 |
void startNewFind(in nsIDOMWindow aWindow, in boolean aLinksOnly); |
62 |
|
63 |
/** Manually cancel type ahead find mode */ |
64 |
void cancelFind(); |
65 |
|
66 |
/** |
67 |
* Will find as you type start automatically if the user |
68 |
* types with the focus on page content other than a textfield or select? |
69 |
* If autostart is off, the startNewFind() method can be used to enact |
70 |
* type ahead find, as well as cmd_findTypeLinks or cmd_findTypeText. |
71 |
*/ |
72 |
void setAutoStart(in nsIDOMWindow aWindow, in boolean aIsAutoStartOn); |
73 |
boolean getAutoStart(in nsIDOMWindow aWindow); |
74 |
|
75 |
/** |
76 |
* Find next recurrence if typeaheadfind was the last used find, |
77 |
* as opposed to regular find. Returns false in nsISupportsPRBool if we |
78 |
* don't handle the request. |
79 |
*/ |
80 |
void findNext(in boolean aReverse, in nsISupportsInterfacePointer aCallerWindowSupports); |
81 |
|
82 |
/* |
83 |
* Go back and remove one character from find string |
84 |
* Returns true if backspace used |
85 |
*/ |
86 |
boolean backOneChar(); |
87 |
}; |
88 |
|
|
|
89 |
++ extensions/typeaheadfind/resources/content/prefs/typeaheadfind.js |
Lines 36-42
Link Here
|
36 |
* |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
38 |
|
39 |
pref("accessibility.typeaheadfind", true); |
39 |
pref("accessibility.typeaheadfindsea", false); |
40 |
pref("accessibility.typeaheadfind.linksonly", true); |
40 |
pref("accessibility.typeaheadfindsea.linksonly", true); |
41 |
pref("accessibility.typeaheadfind.startlinksonly", false); |
41 |
pref("accessibility.typeaheadfindsea.startlinksonly", false); |
42 |
pref("accessibility.typeaheadfind.timeout", 5000); |
42 |
pref("accessibility.typeaheadfindsea.timeout", 5000); |
43 |
-- extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties |
43 |
++ extensions/typeaheadfind/resources/locale/en-US/typeaheadfindsea.properties |
Line 0
Link Here
|
0 |
-- extensions/typeaheadfind/resources/jar.mn |
1 |
openparen = ( |
|
|
2 |
closeparen = ) |
3 |
textfound = Text found: " |
4 |
textnotfound = Text not found: " |
5 |
linkfound = Link found: " |
6 |
linknotfound = Link not found: " |
7 |
closequote = " |
8 |
stopfind = Find stopped. |
9 |
starttextfind = Starting -- find text as you type |
10 |
startlinkfind = Starting -- find links as you type |
11 |
repeated = repeated |
12 |
nextmatch = - next match |
13 |
prevmatch = - previous match |
|
|
14 |
++ extensions/typeaheadfind/resources/jar.mn |
Lines 1-5
Link Here
|
1 |
en-US.jar: |
1 |
en-US.jar: |
2 |
locale/en-US/global/typeaheadfind.properties (locale/en-US/typeaheadfind.properties) |
2 |
locale/en-US/global/typeaheadfindsea.properties (locale/en-US/typeaheadfindsea.properties) |
3 |
|
3 |
|
4 |
toolkit.jar: |
4 |
toolkit.jar: |
5 |
content/global/notfound.wav (content/notfound.wav) |
5 |
content/global/notfound.wav (content/notfound.wav) |
6 |
-- extensions/typeaheadfind/src/Makefile.in |
6 |
++ extensions/typeaheadfind/src/Makefile.in |
Lines 31-44
Link Here
|
31 |
|
31 |
|
32 |
include $(DEPTH)/config/autoconf.mk |
32 |
include $(DEPTH)/config/autoconf.mk |
33 |
|
33 |
|
34 |
MODULE = typeaheadfind |
34 |
MODULE = typeaheadfindsea |
35 |
LIBRARY_NAME = typeaheadfind |
35 |
LIBRARY_NAME = typeaheadfindsea |
36 |
ifneq ($(OS_ARCH),WINNT) |
36 |
ifneq ($(OS_ARCH),WINNT) |
37 |
SHORT_LIBNAME = typahead |
37 |
SHORT_LIBNAME = typaheadsea |
38 |
endif |
38 |
endif |
39 |
GRE_MODULE = 1 |
39 |
GRE_MODULE = 1 |
40 |
|
40 |
|
41 |
PACKAGE_FILE = typeaheadfind.pkg |
41 |
PACKAGE_FILE = typeaheadfindsea.pkg |
42 |
|
42 |
|
43 |
REQUIRES = appcomps \ |
43 |
REQUIRES = appcomps \ |
44 |
embedcomponents \ |
44 |
embedcomponents \ |
Lines 66-72
Link Here
|
66 |
|
66 |
|
67 |
EXPORT_LIBRARY = 1 |
67 |
EXPORT_LIBRARY = 1 |
68 |
IS_COMPONENT = 1 |
68 |
IS_COMPONENT = 1 |
69 |
MODULE_NAME = nsTypeAheadFind |
69 |
MODULE_NAME = nsTypeAheadFindSea |
70 |
|
70 |
|
71 |
CPPSRCS = \ |
71 |
CPPSRCS = \ |
72 |
nsTypeAheadFind.cpp \ |
72 |
nsTypeAheadFind.cpp \ |
73 |
-- extensions/typeaheadfind/src/nsTypeAheadFind.cpp |
73 |
++ extensions/typeaheadfind/src/nsTypeAheadFind.cpp |
Lines 117-124
Link Here
|
117 |
//////////////////////////////////////////////////////////////////////// |
117 |
//////////////////////////////////////////////////////////////////////// |
118 |
|
118 |
|
119 |
|
119 |
|
120 |
NS_INTERFACE_MAP_BEGIN(nsTypeAheadFind) |
120 |
NS_INTERFACE_MAP_BEGIN(nsTypeAheadFindSea) |
121 |
NS_INTERFACE_MAP_ENTRY(nsITypeAheadFind) |
121 |
NS_INTERFACE_MAP_ENTRY(nsITypeAheadFindSea) |
122 |
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) |
122 |
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) |
123 |
NS_INTERFACE_MAP_ENTRY(nsITimerCallback) |
123 |
NS_INTERFACE_MAP_ENTRY(nsITimerCallback) |
124 |
NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener) |
124 |
NS_INTERFACE_MAP_ENTRY(nsIScrollPositionListener) |
Lines 131-138
Link Here
|
131 |
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMKeyListener) |
131 |
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIDOMEventListener, nsIDOMKeyListener) |
132 |
NS_INTERFACE_MAP_END |
132 |
NS_INTERFACE_MAP_END |
133 |
|
133 |
|
134 |
NS_IMPL_ADDREF(nsTypeAheadFind) |
134 |
NS_IMPL_ADDREF(nsTypeAheadFindSea) |
135 |
NS_IMPL_RELEASE(nsTypeAheadFind) |
135 |
NS_IMPL_RELEASE(nsTypeAheadFindSea) |
136 |
|
136 |
|
137 |
static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID); |
137 |
static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID); |
138 |
static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID); |
138 |
static NS_DEFINE_CID(kStringBundleServiceCID, NS_STRINGBUNDLESERVICE_CID); |
Lines 141-151
Link Here
|
141 |
|
141 |
|
142 |
#define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1" |
142 |
#define NS_FIND_CONTRACTID "@mozilla.org/embedcomp/rangefind;1" |
143 |
|
143 |
|
144 |
nsTypeAheadFind* nsTypeAheadFind::sInstance = nsnull; |
144 |
nsTypeAheadFindSea* nsTypeAheadFindSea::sInstance = nsnull; |
145 |
PRInt32 nsTypeAheadFind::sAccelKey = -1; // magic value of -1 when unitialized |
145 |
PRInt32 nsTypeAheadFindSea::sAccelKey = -1; // magic value of -1 when unitialized |
146 |
|
146 |
|
147 |
|
147 |
|
148 |
nsTypeAheadFind::nsTypeAheadFind(): |
148 |
nsTypeAheadFindSea::nsTypeAheadFindSea(): |
149 |
mIsFindAllowedInWindow(PR_FALSE), mAutoStartPref(PR_FALSE), |
149 |
mIsFindAllowedInWindow(PR_FALSE), mAutoStartPref(PR_FALSE), |
150 |
mLinksOnlyPref(PR_FALSE), mStartLinksOnlyPref(PR_FALSE), |
150 |
mLinksOnlyPref(PR_FALSE), mStartLinksOnlyPref(PR_FALSE), |
151 |
mLinksOnly(PR_FALSE), mIsTypeAheadOn(PR_FALSE), mCaretBrowsingOn(PR_FALSE), |
151 |
mLinksOnly(PR_FALSE), mIsTypeAheadOn(PR_FALSE), mCaretBrowsingOn(PR_FALSE), |
Lines 164-188
Link Here
|
164 |
static PRInt32 gInstanceCount; |
164 |
static PRInt32 gInstanceCount; |
165 |
++gInstanceCount; |
165 |
++gInstanceCount; |
166 |
NS_ASSERTION(gInstanceCount == 1, |
166 |
NS_ASSERTION(gInstanceCount == 1, |
167 |
"There should be only 1 instance of nsTypeAheadFind!"); |
167 |
"There should be only 1 instance of nsTypeAheadFindSea!"); |
168 |
#endif |
168 |
#endif |
169 |
} |
169 |
} |
170 |
|
170 |
|
171 |
|
171 |
|
172 |
nsTypeAheadFind::~nsTypeAheadFind() |
172 |
nsTypeAheadFindSea::~nsTypeAheadFindSea() |
173 |
{ |
173 |
{ |
174 |
RemoveDocListeners(); |
174 |
RemoveDocListeners(); |
175 |
mTimer = nsnull; |
175 |
mTimer = nsnull; |
176 |
|
176 |
|
177 |
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
177 |
nsCOMPtr<nsIPrefBranchInternal> prefInternal(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
178 |
if (prefInternal) { |
178 |
if (prefInternal) { |
179 |
prefInternal->RemoveObserver("accessibility.typeaheadfind", this); |
179 |
prefInternal->RemoveObserver("accessibility.typeaheadfindsea", this); |
180 |
prefInternal->RemoveObserver("accessibility.browsewithcaret", this); |
180 |
prefInternal->RemoveObserver("accessibility.browsewithcaret", this); |
181 |
} |
181 |
} |
182 |
} |
182 |
} |
183 |
|
183 |
|
184 |
nsresult |
184 |
nsresult |
185 |
nsTypeAheadFind::Init() |
185 |
nsTypeAheadFindSea::Init() |
186 |
{ |
186 |
{ |
187 |
nsresult rv = NS_NewISupportsArray(getter_AddRefs(mManualFindWindows)); |
187 |
nsresult rv = NS_NewISupportsArray(getter_AddRefs(mManualFindWindows)); |
188 |
NS_ENSURE_SUCCESS(rv, rv); |
188 |
NS_ENSURE_SUCCESS(rv, rv); |
Lines 199-205
Link Here
|
199 |
} |
199 |
} |
200 |
|
200 |
|
201 |
// ----------- Listen to prefs ------------------ |
201 |
// ----------- Listen to prefs ------------------ |
202 |
rv = prefInternal->AddObserver("accessibility.typeaheadfind", this, PR_FALSE); |
202 |
rv = prefInternal->AddObserver("accessibility.typeaheadfindsea", this, PR_FALSE); |
203 |
NS_ENSURE_SUCCESS(rv, rv); |
203 |
NS_ENSURE_SUCCESS(rv, rv); |
204 |
|
204 |
|
205 |
rv = prefInternal->AddObserver("accessibility.browsewithcaret", this, PR_FALSE); |
205 |
rv = prefInternal->AddObserver("accessibility.browsewithcaret", this, PR_FALSE); |
Lines 220-230
Link Here
|
220 |
return rv; |
220 |
return rv; |
221 |
} |
221 |
} |
222 |
|
222 |
|
223 |
nsTypeAheadFind * |
223 |
nsTypeAheadFindSea * |
224 |
nsTypeAheadFind::GetInstance() |
224 |
nsTypeAheadFindSea::GetInstance() |
225 |
{ |
225 |
{ |
226 |
if (!sInstance) { |
226 |
if (!sInstance) { |
227 |
sInstance = new nsTypeAheadFind(); |
227 |
sInstance = new nsTypeAheadFindSea(); |
228 |
if (!sInstance) |
228 |
if (!sInstance) |
229 |
return nsnull; |
229 |
return nsnull; |
230 |
|
230 |
|
Lines 244-257
Link Here
|
244 |
|
244 |
|
245 |
|
245 |
|
246 |
void |
246 |
void |
247 |
nsTypeAheadFind::ReleaseInstance() |
247 |
nsTypeAheadFindSea::ReleaseInstance() |
248 |
{ |
248 |
{ |
249 |
NS_IF_RELEASE(sInstance); |
249 |
NS_IF_RELEASE(sInstance); |
250 |
} |
250 |
} |
251 |
|
251 |
|
252 |
|
252 |
|
253 |
void |
253 |
void |
254 |
nsTypeAheadFind::Shutdown() |
254 |
nsTypeAheadFindSea::Shutdown() |
255 |
{ |
255 |
{ |
256 |
// Application shutdown |
256 |
// Application shutdown |
257 |
mTimer = nsnull; |
257 |
mTimer = nsnull; |
Lines 267-280
Link Here
|
267 |
// ------- Pref Callbacks (2) --------------- |
267 |
// ------- Pref Callbacks (2) --------------- |
268 |
|
268 |
|
269 |
nsresult |
269 |
nsresult |
270 |
nsTypeAheadFind::PrefsReset() |
270 |
nsTypeAheadFindSea::PrefsReset() |
271 |
{ |
271 |
{ |
272 |
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
272 |
nsCOMPtr<nsIPrefBranch> prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID)); |
273 |
NS_ENSURE_TRUE(prefBranch, NS_ERROR_FAILURE); |
273 |
NS_ENSURE_TRUE(prefBranch, NS_ERROR_FAILURE); |
274 |
|
274 |
|
275 |
PRBool wasTypeAheadOn = mIsTypeAheadOn; |
275 |
PRBool wasTypeAheadOn = mIsTypeAheadOn; |
276 |
|
276 |
|
277 |
prefBranch->GetBoolPref("accessibility.typeaheadfind", &mIsTypeAheadOn); |
277 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea", &mIsTypeAheadOn); |
278 |
|
278 |
|
279 |
if (mIsTypeAheadOn != wasTypeAheadOn) { |
279 |
if (mIsTypeAheadOn != wasTypeAheadOn) { |
280 |
if (!mIsTypeAheadOn) { |
280 |
if (!mIsTypeAheadOn) { |
Lines 294-300
Link Here
|
294 |
do_GetService(kStringBundleServiceCID); |
294 |
do_GetService(kStringBundleServiceCID); |
295 |
|
295 |
|
296 |
if (stringBundleService) |
296 |
if (stringBundleService) |
297 |
stringBundleService->CreateBundle(TYPEAHEADFIND_BUNDLE_URL, |
297 |
stringBundleService->CreateBundle(TYPEAHEADFINDSEA_BUNDLE_URL, |
298 |
getter_AddRefs(mStringBundle)); |
298 |
getter_AddRefs(mStringBundle)); |
299 |
|
299 |
|
300 |
// Observe find again commands. We'll handle them if we were the last find |
300 |
// Observe find again commands. We'll handle them if we were the last find |
Lines 309-342
Link Here
|
309 |
} |
309 |
} |
310 |
|
310 |
|
311 |
PRBool oldAutoStartPref = mAutoStartPref; |
311 |
PRBool oldAutoStartPref = mAutoStartPref; |
312 |
prefBranch->GetBoolPref("accessibility.typeaheadfind.autostart", |
312 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea.autostart", |
313 |
&mAutoStartPref); |
313 |
&mAutoStartPref); |
314 |
if (mAutoStartPref != oldAutoStartPref) { |
314 |
if (mAutoStartPref != oldAutoStartPref) { |
315 |
ResetGlobalAutoStart(mAutoStartPref); |
315 |
ResetGlobalAutoStart(mAutoStartPref); |
316 |
} |
316 |
} |
317 |
|
317 |
|
318 |
prefBranch->GetBoolPref("accessibility.typeaheadfind.linksonly", |
318 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea.linksonly", |
319 |
&mLinksOnlyPref); |
319 |
&mLinksOnlyPref); |
320 |
|
320 |
|
321 |
prefBranch->GetBoolPref("accessibility.typeaheadfind.startlinksonly", |
321 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea.startlinksonly", |
322 |
&mStartLinksOnlyPref); |
322 |
&mStartLinksOnlyPref); |
323 |
|
323 |
|
324 |
PRBool isSoundEnabled = PR_TRUE; |
324 |
PRBool isSoundEnabled = PR_TRUE; |
325 |
prefBranch->GetBoolPref("accessibility.typeaheadfind.enablesound", |
325 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enablesound", |
326 |
&isSoundEnabled); |
326 |
&isSoundEnabled); |
327 |
nsXPIDLCString soundStr; |
327 |
nsXPIDLCString soundStr; |
328 |
if (isSoundEnabled) { |
328 |
if (isSoundEnabled) { |
329 |
prefBranch->GetCharPref("accessibility.typeaheadfind.soundURL", |
329 |
prefBranch->GetCharPref("accessibility.typeaheadfindsea.soundURL", |
330 |
getter_Copies(soundStr)); |
330 |
getter_Copies(soundStr)); |
331 |
} |
331 |
} |
332 |
mNotFoundSoundURL = soundStr; |
332 |
mNotFoundSoundURL = soundStr; |
333 |
|
333 |
|
334 |
PRBool isTimeoutEnabled; |
334 |
PRBool isTimeoutEnabled; |
335 |
prefBranch->GetBoolPref("accessibility.typeaheadfind.enabletimeout", |
335 |
prefBranch->GetBoolPref("accessibility.typeaheadfindsea.enabletimeout", |
336 |
&isTimeoutEnabled); |
336 |
&isTimeoutEnabled); |
337 |
PRInt32 timeoutLength = 0; |
337 |
PRInt32 timeoutLength = 0; |
338 |
if (isTimeoutEnabled) { |
338 |
if (isTimeoutEnabled) { |
339 |
prefBranch->GetIntPref("accessibility.typeaheadfind.timeout", |
339 |
prefBranch->GetIntPref("accessibility.typeaheadfindsea.timeout", |
340 |
&timeoutLength); |
340 |
&timeoutLength); |
341 |
} |
341 |
} |
342 |
mTimeoutLength = timeoutLength; |
342 |
mTimeoutLength = timeoutLength; |
Lines 352-358
Link Here
|
352 |
// ------- nsITimer Methods (1) --------------- |
352 |
// ------- nsITimer Methods (1) --------------- |
353 |
|
353 |
|
354 |
NS_IMETHODIMP |
354 |
NS_IMETHODIMP |
355 |
nsTypeAheadFind::Notify(nsITimer *timer) |
355 |
nsTypeAheadFindSea::Notify(nsITimer *timer) |
356 |
{ |
356 |
{ |
357 |
CancelFind(); |
357 |
CancelFind(); |
358 |
return NS_OK; |
358 |
return NS_OK; |
Lines 361-367
Link Here
|
361 |
// ----------- nsIObserver Methods (1) ------------------- |
361 |
// ----------- nsIObserver Methods (1) ------------------- |
362 |
|
362 |
|
363 |
NS_IMETHODIMP |
363 |
NS_IMETHODIMP |
364 |
nsTypeAheadFind::Observe(nsISupports *aSubject, const char *aTopic, |
364 |
nsTypeAheadFindSea::Observe(nsISupports *aSubject, const char *aTopic, |
365 |
const PRUnichar *aData) |
365 |
const PRUnichar *aData) |
366 |
{ |
366 |
{ |
367 |
PRBool isOpening; |
367 |
PRBool isOpening; |
Lines 475-481
Link Here
|
475 |
|
475 |
|
476 |
|
476 |
|
477 |
nsresult |
477 |
nsresult |
478 |
nsTypeAheadFind::UseInWindow(nsIDOMWindow *aDOMWin) |
478 |
nsTypeAheadFindSea::UseInWindow(nsIDOMWindow *aDOMWin) |
479 |
{ |
479 |
{ |
480 |
NS_ENSURE_ARG_POINTER(aDOMWin); |
480 |
NS_ENSURE_ARG_POINTER(aDOMWin); |
481 |
|
481 |
|
Lines 528-534
Link Here
|
528 |
// ------- nsIDOMEventListener Methods (1) --------------- |
528 |
// ------- nsIDOMEventListener Methods (1) --------------- |
529 |
|
529 |
|
530 |
NS_IMETHODIMP |
530 |
NS_IMETHODIMP |
531 |
nsTypeAheadFind::HandleEvent(nsIDOMEvent* aEvent) |
531 |
nsTypeAheadFindSea::HandleEvent(nsIDOMEvent* aEvent) |
532 |
{ |
532 |
{ |
533 |
nsAutoString eventType; |
533 |
nsAutoString eventType; |
534 |
aEvent->GetType(eventType); |
534 |
aEvent->GetType(eventType); |
Lines 588-608
Link Here
|
588 |
// ------- nsIDOMKeyListener Methods (3) --------------- |
588 |
// ------- nsIDOMKeyListener Methods (3) --------------- |
589 |
|
589 |
|
590 |
NS_IMETHODIMP |
590 |
NS_IMETHODIMP |
591 |
nsTypeAheadFind::KeyDown(nsIDOMEvent* aEvent) |
591 |
nsTypeAheadFindSea::KeyDown(nsIDOMEvent* aEvent) |
592 |
{ |
592 |
{ |
593 |
return NS_OK; |
593 |
return NS_OK; |
594 |
} |
594 |
} |
595 |
|
595 |
|
596 |
|
596 |
|
597 |
NS_IMETHODIMP |
597 |
NS_IMETHODIMP |
598 |
nsTypeAheadFind::KeyUp(nsIDOMEvent* aEvent) |
598 |
nsTypeAheadFindSea::KeyUp(nsIDOMEvent* aEvent) |
599 |
{ |
599 |
{ |
600 |
return NS_OK; |
600 |
return NS_OK; |
601 |
} |
601 |
} |
602 |
|
602 |
|
603 |
|
603 |
|
604 |
NS_IMETHODIMP |
604 |
NS_IMETHODIMP |
605 |
nsTypeAheadFind::KeyPress(nsIDOMEvent* aEvent) |
605 |
nsTypeAheadFindSea::KeyPress(nsIDOMEvent* aEvent) |
606 |
{ |
606 |
{ |
607 |
if (!mIsTypeAheadOn || mIsMenuBarActive || mIsMenuPopupActive) { |
607 |
if (!mIsTypeAheadOn || mIsMenuBarActive || mIsMenuPopupActive) { |
608 |
return NS_OK; |
608 |
return NS_OK; |
Lines 725-738
Link Here
|
725 |
return NS_OK; |
725 |
return NS_OK; |
726 |
} |
726 |
} |
727 |
|
727 |
|
728 |
aEvent->StopPropagation(); // We're using this key, no one else should |
728 |
// We're using this key, no one else should |
|
|
729 |
aEvent->PreventDefault(); |
729 |
|
730 |
|
730 |
return HandleChar(charCode); |
731 |
return HandleChar(charCode); |
731 |
} |
732 |
} |
732 |
|
733 |
|
733 |
|
734 |
|
734 |
NS_IMETHODIMP |
735 |
NS_IMETHODIMP |
735 |
nsTypeAheadFind::BackOneChar(PRBool *aIsBackspaceUsed) |
736 |
nsTypeAheadFindSea::BackOneChar(PRBool *aIsBackspaceUsed) |
736 |
{ |
737 |
{ |
737 |
if (!mFocusedDocSelection) { |
738 |
if (!mFocusedDocSelection) { |
738 |
*aIsBackspaceUsed = PR_FALSE; |
739 |
*aIsBackspaceUsed = PR_FALSE; |
Lines 862-868
Link Here
|
862 |
|
863 |
|
863 |
|
864 |
|
864 |
nsresult |
865 |
nsresult |
865 |
nsTypeAheadFind::HandleChar(PRUnichar aChar) |
866 |
nsTypeAheadFindSea::HandleChar(PRUnichar aChar) |
866 |
{ |
867 |
{ |
867 |
// Add a printable char to mTypeAheadBuffer, then search for buffer contents |
868 |
// Add a printable char to mTypeAheadBuffer, then search for buffer contents |
868 |
|
869 |
|
Lines 1027-1033
Link Here
|
1027 |
|
1028 |
|
1028 |
|
1029 |
|
1029 |
void |
1030 |
void |
1030 |
nsTypeAheadFind::SaveFind() |
1031 |
nsTypeAheadFindSea::SaveFind() |
1031 |
{ |
1032 |
{ |
1032 |
// Store find string for find-next |
1033 |
// Store find string for find-next |
1033 |
mFindNextBuffer = mTypeAheadBuffer; |
1034 |
mFindNextBuffer = mTypeAheadBuffer; |
Lines 1055-1061
Link Here
|
1055 |
|
1056 |
|
1056 |
|
1057 |
|
1057 |
void |
1058 |
void |
1058 |
nsTypeAheadFind::PlayNotFoundSound() |
1059 |
nsTypeAheadFindSea::PlayNotFoundSound() |
1059 |
{ |
1060 |
{ |
1060 |
if (mNotFoundSoundURL.IsEmpty()) // no sound |
1061 |
if (mNotFoundSoundURL.IsEmpty()) // no sound |
1061 |
return; |
1062 |
return; |
Lines 1085-1091
Link Here
|
1085 |
|
1086 |
|
1086 |
|
1087 |
|
1087 |
NS_IMETHODIMP |
1088 |
NS_IMETHODIMP |
1088 |
nsTypeAheadFind::HandleText(nsIDOMEvent* aTextEvent) |
1089 |
nsTypeAheadFindSea::HandleText(nsIDOMEvent* aTextEvent) |
1089 |
{ |
1090 |
{ |
1090 |
// This is called multiple times in the middle of an |
1091 |
// This is called multiple times in the middle of an |
1091 |
// IME composition |
1092 |
// IME composition |
Lines 1133-1139
Link Here
|
1133 |
|
1134 |
|
1134 |
|
1135 |
|
1135 |
NS_IMETHODIMP |
1136 |
NS_IMETHODIMP |
1136 |
nsTypeAheadFind::HandleStartComposition(nsIDOMEvent* aCompositionEvent) |
1137 |
nsTypeAheadFindSea::HandleStartComposition(nsIDOMEvent* aCompositionEvent) |
1137 |
{ |
1138 |
{ |
1138 |
// This is called once at the start of an IME composition |
1139 |
// This is called once at the start of an IME composition |
1139 |
|
1140 |
|
Lines 1155-1161
Link Here
|
1155 |
|
1156 |
|
1156 |
|
1157 |
|
1157 |
NS_IMETHODIMP |
1158 |
NS_IMETHODIMP |
1158 |
nsTypeAheadFind::HandleEndComposition(nsIDOMEvent* aCompositionEvent) |
1159 |
nsTypeAheadFindSea::HandleEndComposition(nsIDOMEvent* aCompositionEvent) |
1159 |
{ |
1160 |
{ |
1160 |
// This is called once at the end of an IME composition |
1161 |
// This is called once at the end of an IME composition |
1161 |
|
1162 |
|
Lines 1186-1206
Link Here
|
1186 |
|
1187 |
|
1187 |
|
1188 |
|
1188 |
NS_IMETHODIMP |
1189 |
NS_IMETHODIMP |
1189 |
nsTypeAheadFind::HandleQueryComposition(nsIDOMEvent* aCompositionEvent) |
1190 |
nsTypeAheadFindSea::HandleQueryComposition(nsIDOMEvent* aCompositionEvent) |
1190 |
{ |
1191 |
{ |
1191 |
return NS_OK; |
1192 |
return NS_OK; |
1192 |
} |
1193 |
} |
1193 |
|
1194 |
|
1194 |
|
1195 |
|
1195 |
NS_IMETHODIMP |
1196 |
NS_IMETHODIMP |
1196 |
nsTypeAheadFind::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent) |
1197 |
nsTypeAheadFindSea::HandleQueryReconversion(nsIDOMEvent* aCompositionEvent) |
1197 |
{ |
1198 |
{ |
1198 |
return NS_OK; |
1199 |
return NS_OK; |
1199 |
} |
1200 |
} |
1200 |
|
1201 |
|
1201 |
|
1202 |
|
1202 |
nsresult |
1203 |
nsresult |
1203 |
nsTypeAheadFind::FindItNow(nsIPresShell *aPresShell, |
1204 |
nsTypeAheadFindSea::FindItNow(nsIPresShell *aPresShell, |
1204 |
PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly, |
1205 |
PRBool aIsRepeatingSameChar, PRBool aIsLinksOnly, |
1205 |
PRBool aIsFirstVisiblePreferred) |
1206 |
PRBool aIsFirstVisiblePreferred) |
1206 |
{ |
1207 |
{ |
Lines 1225-1231
Link Here
|
1225 |
|
1226 |
|
1226 |
nsCOMPtr<nsISupports> startingContainer = presContext->GetContainer(); |
1227 |
nsCOMPtr<nsISupports> startingContainer = presContext->GetContainer(); |
1227 |
nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(startingContainer)); |
1228 |
nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(startingContainer)); |
1228 |
NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFind::FindItNow]"); |
1229 |
NS_ASSERTION(treeItem, "Bug 175321 Crashes with Type Ahead Find [@ nsTypeAheadFindSea::FindItNow]"); |
1229 |
if (!treeItem) { |
1230 |
if (!treeItem) { |
1230 |
return NS_ERROR_FAILURE; |
1231 |
return NS_ERROR_FAILURE; |
1231 |
} |
1232 |
} |
Lines 1450-1456
Link Here
|
1450 |
|
1451 |
|
1451 |
|
1452 |
|
1452 |
nsresult |
1453 |
nsresult |
1453 |
nsTypeAheadFind::GetSearchContainers(nsISupports *aContainer, |
1454 |
nsTypeAheadFindSea::GetSearchContainers(nsISupports *aContainer, |
1454 |
PRBool aIsRepeatingSameChar, |
1455 |
PRBool aIsRepeatingSameChar, |
1455 |
PRBool aIsFirstVisiblePreferred, |
1456 |
PRBool aIsFirstVisiblePreferred, |
1456 |
PRBool aCanUseDocSelection, |
1457 |
PRBool aCanUseDocSelection, |
Lines 1561-1567
Link Here
|
1561 |
|
1562 |
|
1562 |
|
1563 |
|
1563 |
void |
1564 |
void |
1564 |
nsTypeAheadFind::RangeStartsInsideLink(nsIDOMRange *aRange, |
1565 |
nsTypeAheadFindSea::RangeStartsInsideLink(nsIDOMRange *aRange, |
1565 |
nsIPresShell *aPresShell, |
1566 |
nsIPresShell *aPresShell, |
1566 |
PRBool *aIsInsideLink, |
1567 |
PRBool *aIsInsideLink, |
1567 |
PRBool *aIsStartingLink) |
1568 |
PRBool *aIsStartingLink) |
Lines 1673-1679
Link Here
|
1673 |
|
1674 |
|
1674 |
|
1675 |
|
1675 |
NS_IMETHODIMP |
1676 |
NS_IMETHODIMP |
1676 |
nsTypeAheadFind::ScrollPositionWillChange(nsIScrollableView *aView, |
1677 |
nsTypeAheadFindSea::ScrollPositionWillChange(nsIScrollableView *aView, |
1677 |
nscoord aX, nscoord aY) |
1678 |
nscoord aX, nscoord aY) |
1678 |
{ |
1679 |
{ |
1679 |
return NS_OK; |
1680 |
return NS_OK; |
Lines 1681-1687
Link Here
|
1681 |
|
1682 |
|
1682 |
|
1683 |
|
1683 |
NS_IMETHODIMP |
1684 |
NS_IMETHODIMP |
1684 |
nsTypeAheadFind::ScrollPositionDidChange(nsIScrollableView *aScrollableView, |
1685 |
nsTypeAheadFindSea::ScrollPositionDidChange(nsIScrollableView *aScrollableView, |
1685 |
nscoord aX, nscoord aY) |
1686 |
nscoord aX, nscoord aY) |
1686 |
{ |
1687 |
{ |
1687 |
if (!mIsFindingText) |
1688 |
if (!mIsFindingText) |
Lines 1692-1698
Link Here
|
1692 |
|
1693 |
|
1693 |
|
1694 |
|
1694 |
NS_IMETHODIMP |
1695 |
NS_IMETHODIMP |
1695 |
nsTypeAheadFind::NotifySelectionChanged(nsIDOMDocument *aDoc, |
1696 |
nsTypeAheadFindSea::NotifySelectionChanged(nsIDOMDocument *aDoc, |
1696 |
nsISelection *aSel, short aReason) |
1697 |
nsISelection *aSel, short aReason) |
1697 |
{ |
1698 |
{ |
1698 |
if (!mIsFindingText) { |
1699 |
if (!mIsFindingText) { |
Lines 1709-1718
Link Here
|
1709 |
} |
1710 |
} |
1710 |
|
1711 |
|
1711 |
|
1712 |
|
1712 |
// ---------------- nsITypeAheadFind -------------------- |
1713 |
// ---------------- nsITypeAheadFindSea -------------------- |
1713 |
|
1714 |
|
1714 |
NS_IMETHODIMP |
1715 |
NS_IMETHODIMP |
1715 |
nsTypeAheadFind::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports) |
1716 |
nsTypeAheadFindSea::FindNext(PRBool aFindBackwards, nsISupportsInterfacePointer *aCallerWindowSupports) |
1716 |
{ |
1717 |
{ |
1717 |
NS_ENSURE_TRUE(aCallerWindowSupports, NS_ERROR_FAILURE); |
1718 |
NS_ENSURE_TRUE(aCallerWindowSupports, NS_ERROR_FAILURE); |
1718 |
|
1719 |
|
Lines 1826-1832
Link Here
|
1826 |
|
1827 |
|
1827 |
|
1828 |
|
1828 |
NS_IMETHODIMP |
1829 |
NS_IMETHODIMP |
1829 |
nsTypeAheadFind::GetIsActive(PRBool *aIsActive) |
1830 |
nsTypeAheadFindSea::GetIsActive(PRBool *aIsActive) |
1830 |
{ |
1831 |
{ |
1831 |
*aIsActive = mLinksOnlyManuallySet || !mTypeAheadBuffer.IsEmpty(); |
1832 |
*aIsActive = mLinksOnlyManuallySet || !mTypeAheadBuffer.IsEmpty(); |
1832 |
|
1833 |
|
Lines 1839-1845
Link Here
|
1839 |
*/ |
1840 |
*/ |
1840 |
|
1841 |
|
1841 |
NS_IMETHODIMP |
1842 |
NS_IMETHODIMP |
1842 |
nsTypeAheadFind::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly) |
1843 |
nsTypeAheadFindSea::StartNewFind(nsIDOMWindow *aWindow, PRBool aLinksOnly) |
1843 |
{ |
1844 |
{ |
1844 |
if (!mFind || !mIsTypeAheadOn || !aWindow) |
1845 |
if (!mFind || !mIsTypeAheadOn || !aWindow) |
1845 |
return NS_ERROR_FAILURE; // Type Ahead Find not correctly initialized |
1846 |
return NS_ERROR_FAILURE; // Type Ahead Find not correctly initialized |
Lines 1872-1878
Link Here
|
1872 |
} |
1873 |
} |
1873 |
|
1874 |
|
1874 |
void |
1875 |
void |
1875 |
nsTypeAheadFind::ResetGlobalAutoStart(PRBool aAutoStart) |
1876 |
nsTypeAheadFindSea::ResetGlobalAutoStart(PRBool aAutoStart) |
1876 |
{ |
1877 |
{ |
1877 |
// Enumerate through the current top level windows |
1878 |
// Enumerate through the current top level windows |
1878 |
// and either attach or remove window listeners |
1879 |
// and either attach or remove window listeners |
Lines 1910-1916
Link Here
|
1910 |
|
1911 |
|
1911 |
|
1912 |
|
1912 |
NS_IMETHODIMP |
1913 |
NS_IMETHODIMP |
1913 |
nsTypeAheadFind::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn) |
1914 |
nsTypeAheadFindSea::SetAutoStart(nsIDOMWindow *aDOMWin, PRBool aAutoStartOn) |
1914 |
{ |
1915 |
{ |
1915 |
if (!aDOMWin) { |
1916 |
if (!aDOMWin) { |
1916 |
return NS_ERROR_FAILURE; |
1917 |
return NS_ERROR_FAILURE; |
Lines 1940-1946
Link Here
|
1940 |
|
1941 |
|
1941 |
|
1942 |
|
1942 |
NS_IMETHODIMP |
1943 |
NS_IMETHODIMP |
1943 |
nsTypeAheadFind::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn) |
1944 |
nsTypeAheadFindSea::GetAutoStart(nsIDOMWindow *aDOMWin, PRBool *aIsAutoStartOn) |
1944 |
{ |
1945 |
{ |
1945 |
*aIsAutoStartOn = PR_FALSE; |
1946 |
*aIsAutoStartOn = PR_FALSE; |
1946 |
|
1947 |
|
Lines 2008-2014
Link Here
|
2008 |
|
2009 |
|
2009 |
|
2010 |
|
2010 |
NS_IMETHODIMP |
2011 |
NS_IMETHODIMP |
2011 |
nsTypeAheadFind::CancelFind() |
2012 |
nsTypeAheadFindSea::CancelFind() |
2012 |
{ |
2013 |
{ |
2013 |
// Stop current find if: |
2014 |
// Stop current find if: |
2014 |
// 1. Escape pressed |
2015 |
// 1. Escape pressed |
Lines 2065-2071
Link Here
|
2065 |
// ------- Helper Methods --------------- |
2066 |
// ------- Helper Methods --------------- |
2066 |
|
2067 |
|
2067 |
void |
2068 |
void |
2068 |
nsTypeAheadFind::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem, |
2069 |
nsTypeAheadFindSea::GetTopContentPresShell(nsIDocShellTreeItem *aDocShellTreeItem, |
2069 |
nsIPresShell **aPresShell) |
2070 |
nsIPresShell **aPresShell) |
2070 |
{ |
2071 |
{ |
2071 |
*aPresShell = nsnull; |
2072 |
*aPresShell = nsnull; |
Lines 2081-2087
Link Here
|
2081 |
} |
2082 |
} |
2082 |
|
2083 |
|
2083 |
void |
2084 |
void |
2084 |
nsTypeAheadFind::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow) |
2085 |
nsTypeAheadFindSea::GetStartWindow(nsIDOMWindow *aWindow, nsIDOMWindow **aStartWindow) |
2085 |
{ |
2086 |
{ |
2086 |
// Return the root ancestor content window of aWindow |
2087 |
// Return the root ancestor content window of aWindow |
2087 |
|
2088 |
|
Lines 2113-2119
Link Here
|
2113 |
} |
2114 |
} |
2114 |
|
2115 |
|
2115 |
nsresult |
2116 |
nsresult |
2116 |
nsTypeAheadFind::GetWebBrowserFind(nsIDOMWindow *aWin, |
2117 |
nsTypeAheadFindSea::GetWebBrowserFind(nsIDOMWindow *aWin, |
2117 |
nsIWebBrowserFind **aWebBrowserFind) |
2118 |
nsIWebBrowserFind **aWebBrowserFind) |
2118 |
{ |
2119 |
{ |
2119 |
NS_ENSURE_ARG_POINTER(aWin); |
2120 |
NS_ENSURE_ARG_POINTER(aWin); |
Lines 2138-2144
Link Here
|
2138 |
|
2139 |
|
2139 |
|
2140 |
|
2140 |
void |
2141 |
void |
2141 |
nsTypeAheadFind::StartTimeout() |
2142 |
nsTypeAheadFindSea::StartTimeout() |
2142 |
{ |
2143 |
{ |
2143 |
if (mTimeoutLength) { |
2144 |
if (mTimeoutLength) { |
2144 |
if (!mTimer) { |
2145 |
if (!mTimer) { |
Lines 2154-2160
Link Here
|
2154 |
} |
2155 |
} |
2155 |
|
2156 |
|
2156 |
void |
2157 |
void |
2157 |
nsTypeAheadFind::SetSelectionLook(nsIPresShell *aPresShell, |
2158 |
nsTypeAheadFindSea::SetSelectionLook(nsIPresShell *aPresShell, |
2158 |
PRBool aChangeColor, |
2159 |
PRBool aChangeColor, |
2159 |
PRBool aEnabled) |
2160 |
PRBool aEnabled) |
2160 |
{ |
2161 |
{ |
Lines 2210-2216
Link Here
|
2210 |
|
2211 |
|
2211 |
|
2212 |
|
2212 |
void |
2213 |
void |
2213 |
nsTypeAheadFind::RemoveDocListeners() |
2214 |
nsTypeAheadFindSea::RemoveDocListeners() |
2214 |
{ |
2215 |
{ |
2215 |
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mFocusedWeakShell)); |
2216 |
nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mFocusedWeakShell)); |
2216 |
nsIViewManager* vm = nsnull; |
2217 |
nsIViewManager* vm = nsnull; |
Lines 2244-2250
Link Here
|
2244 |
|
2245 |
|
2245 |
|
2246 |
|
2246 |
void |
2247 |
void |
2247 |
nsTypeAheadFind::AttachDocListeners(nsIPresShell *aPresShell) |
2248 |
nsTypeAheadFindSea::AttachDocListeners(nsIPresShell *aPresShell) |
2248 |
{ |
2249 |
{ |
2249 |
if (!aPresShell) { |
2250 |
if (!aPresShell) { |
2250 |
return; |
2251 |
return; |
Lines 2274-2280
Link Here
|
2274 |
|
2275 |
|
2275 |
|
2276 |
|
2276 |
void |
2277 |
void |
2277 |
nsTypeAheadFind::RemoveWindowListeners(nsIDOMWindow *aDOMWin) |
2278 |
nsTypeAheadFindSea::RemoveWindowListeners(nsIDOMWindow *aDOMWin) |
2278 |
{ |
2279 |
{ |
2279 |
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler; |
2280 |
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler; |
2280 |
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler)); |
2281 |
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler)); |
Lines 2331-2337
Link Here
|
2331 |
|
2332 |
|
2332 |
|
2333 |
|
2333 |
void |
2334 |
void |
2334 |
nsTypeAheadFind::AttachWindowListeners(nsIDOMWindow *aDOMWin) |
2335 |
nsTypeAheadFindSea::AttachWindowListeners(nsIDOMWindow *aDOMWin) |
2335 |
{ |
2336 |
{ |
2336 |
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler; |
2337 |
nsCOMPtr<nsIDOMEventTarget> chromeEventHandler; |
2337 |
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler)); |
2338 |
GetChromeEventHandler(aDOMWin, getter_AddRefs(chromeEventHandler)); |
Lines 2384-2390
Link Here
|
2384 |
|
2385 |
|
2385 |
|
2386 |
|
2386 |
void |
2387 |
void |
2387 |
nsTypeAheadFind::GetChromeEventHandler(nsIDOMWindow *aDOMWin, |
2388 |
nsTypeAheadFindSea::GetChromeEventHandler(nsIDOMWindow *aDOMWin, |
2388 |
nsIDOMEventTarget **aChromeTarget) |
2389 |
nsIDOMEventTarget **aChromeTarget) |
2389 |
{ |
2390 |
{ |
2390 |
nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(aDOMWin)); |
2391 |
nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(aDOMWin)); |
Lines 2400-2406
Link Here
|
2400 |
} |
2401 |
} |
2401 |
|
2402 |
|
2402 |
PRBool |
2403 |
PRBool |
2403 |
nsTypeAheadFind::IsTargetContentOkay(nsIContent *aContent) |
2404 |
nsTypeAheadFindSea::IsTargetContentOkay(nsIContent *aContent) |
2404 |
{ |
2405 |
{ |
2405 |
if (!aContent) { |
2406 |
if (!aContent) { |
2406 |
return PR_FALSE; |
2407 |
return PR_FALSE; |
Lines 2438-2444
Link Here
|
2438 |
|
2439 |
|
2439 |
|
2440 |
|
2440 |
nsresult |
2441 |
nsresult |
2441 |
nsTypeAheadFind::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent, |
2442 |
nsTypeAheadFindSea::GetTargetIfTypeAheadOkay(nsIDOMEvent *aEvent, |
2442 |
nsIContent **aTargetContent, |
2443 |
nsIContent **aTargetContent, |
2443 |
nsIPresShell **aTargetPresShell) |
2444 |
nsIPresShell **aTargetPresShell) |
2444 |
{ |
2445 |
{ |
Lines 2524-2530
Link Here
|
2524 |
|
2525 |
|
2525 |
|
2526 |
|
2526 |
void |
2527 |
void |
2527 |
nsTypeAheadFind::GetSelection(nsIPresShell *aPresShell, |
2528 |
nsTypeAheadFindSea::GetSelection(nsIPresShell *aPresShell, |
2528 |
nsISelectionController **aSelCon, |
2529 |
nsISelectionController **aSelCon, |
2529 |
nsISelection **aDOMSel) |
2530 |
nsISelection **aDOMSel) |
2530 |
{ |
2531 |
{ |
Lines 2548-2554
Link Here
|
2548 |
|
2549 |
|
2549 |
|
2550 |
|
2550 |
PRBool |
2551 |
PRBool |
2551 |
nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell, |
2552 |
nsTypeAheadFindSea::IsRangeVisible(nsIPresShell *aPresShell, |
2552 |
nsIPresContext *aPresContext, |
2553 |
nsIPresContext *aPresContext, |
2553 |
nsIDOMRange *aRange, PRBool aMustBeInViewPort, |
2554 |
nsIDOMRange *aRange, PRBool aMustBeInViewPort, |
2554 |
PRBool aGetTopVisibleLeaf, |
2555 |
PRBool aGetTopVisibleLeaf, |
Lines 2703-2709
Link Here
|
2703 |
|
2704 |
|
2704 |
|
2705 |
|
2705 |
nsresult |
2706 |
nsresult |
2706 |
nsTypeAheadFind::GetTranslatedString(const nsAString& aKey, |
2707 |
nsTypeAheadFindSea::GetTranslatedString(const nsAString& aKey, |
2707 |
nsAString& aStringOut) |
2708 |
nsAString& aStringOut) |
2708 |
{ |
2709 |
{ |
2709 |
nsXPIDLString xsValue; |
2710 |
nsXPIDLString xsValue; |
Lines 2721-2727
Link Here
|
2721 |
|
2722 |
|
2722 |
|
2723 |
|
2723 |
void |
2724 |
void |
2724 |
nsTypeAheadFind::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent, |
2725 |
nsTypeAheadFindSea::DisplayStatus(PRBool aSuccess, nsIContent *aFocusedContent, |
2725 |
PRBool aClearStatus, const PRUnichar *aText) |
2726 |
PRBool aClearStatus, const PRUnichar *aText) |
2726 |
{ |
2727 |
{ |
2727 |
// pres shell -> pres context -> container -> tree item -> |
2728 |
// pres shell -> pres context -> container -> tree item -> |
Lines 2869-2875
Link Here
|
2869 |
// Make sure we're not focused on a text field, listbox |
2870 |
// Make sure we're not focused on a text field, listbox |
2870 |
// or other form control that needs typeahead keystrokes |
2871 |
// or other form control that needs typeahead keystrokes |
2871 |
if (focusedContent) { |
2872 |
if (focusedContent) { |
2872 |
*aResult = nsTypeAheadFind::IsTargetContentOkay(focusedContent); |
2873 |
*aResult = nsTypeAheadFindSea::IsTargetContentOkay(focusedContent); |
2873 |
return NS_OK; |
2874 |
return NS_OK; |
2874 |
} |
2875 |
} |
2875 |
|
2876 |
|
Lines 2934-2941
Link Here
|
2934 |
EnsureContentWindow(domWinInternal, getter_AddRefs(startContentWin)); |
2935 |
EnsureContentWindow(domWinInternal, getter_AddRefs(startContentWin)); |
2935 |
NS_ENSURE_TRUE(startContentWin, NS_ERROR_FAILURE); |
2936 |
NS_ENSURE_TRUE(startContentWin, NS_ERROR_FAILURE); |
2936 |
|
2937 |
|
2937 |
nsCOMPtr<nsITypeAheadFind> typeAhead = |
2938 |
nsCOMPtr<nsITypeAheadFindSea> typeAhead = |
2938 |
do_GetService(NS_TYPEAHEADFIND_CONTRACTID); |
2939 |
do_GetService(NS_TYPEAHEADFINDSEA_CONTRACTID); |
2939 |
NS_ENSURE_TRUE(typeAhead, NS_ERROR_FAILURE); |
2940 |
NS_ENSURE_TRUE(typeAhead, NS_ERROR_FAILURE); |
2940 |
|
2941 |
|
2941 |
return typeAhead->StartNewFind(startContentWin, isLinkSearch); |
2942 |
return typeAhead->StartNewFind(startContentWin, isLinkSearch); |
2942 |
-- extensions/typeaheadfind/src/nsTypeAheadFind.h |
2943 |
++ extensions/typeaheadfind/src/nsTypeAheadFind.h |
Lines 62-74
Link Here
|
62 |
#include "nsIDOMRange.h" |
62 |
#include "nsIDOMRange.h" |
63 |
#include "nsIDOMWindow.h" |
63 |
#include "nsIDOMWindow.h" |
64 |
#include "nsIDocShellTreeItem.h" |
64 |
#include "nsIDocShellTreeItem.h" |
65 |
#include "nsITypeAheadFind.h" |
65 |
#include "nsITypeAheadFindSea.h" |
66 |
#include "nsIStringBundle.h" |
66 |
#include "nsIStringBundle.h" |
67 |
#include "nsISupportsArray.h" |
67 |
#include "nsISupportsArray.h" |
68 |
#include "nsISound.h" |
68 |
#include "nsISound.h" |
69 |
|
69 |
|
70 |
#define TYPEAHEADFIND_BUNDLE_URL \ |
70 |
#define TYPEAHEADFINDSEA_BUNDLE_URL \ |
71 |
"chrome://global/locale/typeaheadfind.properties" |
71 |
"chrome://global/locale/typeaheadfindsea.properties" |
72 |
#define TYPEAHEADFIND_NOTFOUND_WAV_URL \ |
72 |
#define TYPEAHEADFIND_NOTFOUND_WAV_URL \ |
73 |
"chrome://global/content/notfound.wav" |
73 |
"chrome://global/content/notfound.wav" |
74 |
|
74 |
|
Lines 82-88
Link Here
|
82 |
|
82 |
|
83 |
const int kMaxBadCharsBeforeCancel = 3; |
83 |
const int kMaxBadCharsBeforeCancel = 3; |
84 |
|
84 |
|
85 |
class nsTypeAheadFind : public nsITypeAheadFind, |
85 |
class nsTypeAheadFindSea : public nsITypeAheadFindSea, |
86 |
public nsIDOMKeyListener, |
86 |
public nsIDOMKeyListener, |
87 |
public nsIDOMTextListener, |
87 |
public nsIDOMTextListener, |
88 |
public nsIDOMCompositionListener, |
88 |
public nsIDOMCompositionListener, |
Lines 93-105
Link Here
|
93 |
public nsSupportsWeakReference |
93 |
public nsSupportsWeakReference |
94 |
{ |
94 |
{ |
95 |
public: |
95 |
public: |
96 |
nsTypeAheadFind(); |
96 |
nsTypeAheadFindSea(); |
97 |
virtual ~nsTypeAheadFind(); |
97 |
virtual ~nsTypeAheadFindSea(); |
98 |
|
98 |
|
99 |
NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFIND_CID); |
99 |
NS_DEFINE_STATIC_CID_ACCESSOR(NS_TYPEAHEADFINDSEA_CID); |
100 |
|
100 |
|
101 |
NS_DECL_ISUPPORTS |
101 |
NS_DECL_ISUPPORTS |
102 |
NS_DECL_NSITYPEAHEADFIND |
102 |
NS_DECL_NSITYPEAHEADFINDSEA |
103 |
NS_DECL_NSIOBSERVER |
103 |
NS_DECL_NSIOBSERVER |
104 |
NS_DECL_NSIDOMEVENTLISTENER |
104 |
NS_DECL_NSIDOMEVENTLISTENER |
105 |
NS_DECL_NSISELECTIONLISTENER |
105 |
NS_DECL_NSISELECTIONLISTENER |
Lines 127-133
Link Here
|
127 |
// ----- nsITimerCallback ----------------------------- |
127 |
// ----- nsITimerCallback ----------------------------- |
128 |
NS_DECL_NSITIMERCALLBACK |
128 |
NS_DECL_NSITIMERCALLBACK |
129 |
|
129 |
|
130 |
static nsTypeAheadFind *GetInstance(); |
130 |
static nsTypeAheadFindSea *GetInstance(); |
131 |
static void ReleaseInstance(void); |
131 |
static void ReleaseInstance(void); |
132 |
static PRBool IsTargetContentOkay(nsIContent *aContent); |
132 |
static PRBool IsTargetContentOkay(nsIContent *aContent); |
133 |
|
133 |
|
Lines 185-191
Link Here
|
185 |
nsresult GetTranslatedString(const nsAString& aKey, nsAString& aStringOut); |
185 |
nsresult GetTranslatedString(const nsAString& aKey, nsAString& aStringOut); |
186 |
|
186 |
|
187 |
// Used by GetInstance and ReleaseInstance |
187 |
// Used by GetInstance and ReleaseInstance |
188 |
static nsTypeAheadFind *sInstance; |
188 |
static nsTypeAheadFindSea *sInstance; |
189 |
|
189 |
|
190 |
// Current find state |
190 |
// Current find state |
191 |
nsString mTypeAheadBuffer; |
191 |
nsString mTypeAheadBuffer; |
192 |
-- extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp |
192 |
++ extensions/typeaheadfind/src/nsTypeAheadFindRegistration.cpp |
Lines 55-61
Link Here
|
55 |
|
55 |
|
56 |
// This function is called at component registration time |
56 |
// This function is called at component registration time |
57 |
static NS_METHOD |
57 |
static NS_METHOD |
58 |
nsTypeAheadFindRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath, |
58 |
nsTypeAheadFindSeaRegistrationProc(nsIComponentManager *aCompMgr, nsIFile *aPath, |
59 |
const char *registryLocation, |
59 |
const char *registryLocation, |
60 |
const char *componentType, |
60 |
const char *componentType, |
61 |
const nsModuleComponentInfo *info) |
61 |
const nsModuleComponentInfo *info) |
Lines 72-80
Link Here
|
72 |
|
72 |
|
73 |
if (NS_SUCCEEDED(rv)) { |
73 |
if (NS_SUCCEEDED(rv)) { |
74 |
rv = categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY, |
74 |
rv = categoryManager->AddCategoryEntry(APPSTARTUP_CATEGORY, |
75 |
"Type Ahead Find", |
75 |
"Type Ahead Find Sea", |
76 |
"service," |
76 |
"service," |
77 |
NS_TYPEAHEADFIND_CONTRACTID, |
77 |
NS_TYPEAHEADFINDSEA_CONTRACTID, |
78 |
PR_TRUE, PR_TRUE, nsnull); |
78 |
PR_TRUE, PR_TRUE, nsnull); |
79 |
} |
79 |
} |
80 |
|
80 |
|
Lines 82-103
Link Here
|
82 |
} |
82 |
} |
83 |
|
83 |
|
84 |
|
84 |
|
85 |
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFind, |
85 |
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsTypeAheadFindSea, |
86 |
nsTypeAheadFind::GetInstance) |
86 |
nsTypeAheadFindSea::GetInstance) |
87 |
|
87 |
|
88 |
static void PR_CALLBACK |
88 |
static void PR_CALLBACK |
89 |
TypeAheadFindModuleDtor(nsIModule* self) |
89 |
TypeAheadFindSeaModuleDtor(nsIModule* self) |
90 |
{ |
90 |
{ |
91 |
nsTypeAheadFind::ReleaseInstance(); |
91 |
nsTypeAheadFindSea::ReleaseInstance(); |
92 |
} |
92 |
} |
93 |
|
93 |
|
94 |
static const nsModuleComponentInfo components[] = |
94 |
static const nsModuleComponentInfo components[] = |
95 |
{ |
95 |
{ |
96 |
{ "TypeAheadFind Component", NS_TYPEAHEADFIND_CID, |
96 |
{ "TypeAheadFindSea Component", NS_TYPEAHEADFINDSEA_CID, |
97 |
NS_TYPEAHEADFIND_CONTRACTID, nsTypeAheadFindConstructor, |
97 |
NS_TYPEAHEADFINDSEA_CONTRACTID, nsTypeAheadFindSeaConstructor, |
98 |
nsTypeAheadFindRegistrationProc, nsnull // Unregistration proc |
98 |
nsTypeAheadFindSeaRegistrationProc, nsnull // Unregistration proc |
99 |
} |
99 |
} |
100 |
}; |
100 |
}; |
101 |
|
101 |
|
102 |
NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFind, components, |
102 |
NS_IMPL_NSGETMODULE_WITH_DTOR(nsTypeAheadFindSea, components, |
103 |
TypeAheadFindModuleDtor) |
103 |
TypeAheadFindSeaModuleDtor) |
104 |
-- extensions/typeaheadfind/src/typeaheadfindsea.pkg |
104 |
++ extensions/typeaheadfind/src/typeaheadfindsea.pkg |
Line 0
Link Here
|
0 |
-- extensions/typeaheadfind/Makefile.in |
1 |
# why not ship this with GRE/embedding, if we're building it? |
|
|
2 |
|
3 |
[xpfe-browser browser] |
4 |
#if SHARED_LIBRARY |
5 |
dist/bin/components/@SHARED_LIBRARY@ |
6 |
#else |
7 |
!staticcomp @LIBRARY@ @MODULE_NAME@ |
8 |
#endif |
9 |
!xpt dist/bin/components/typeaheadfind.xpt |
|
|
10 |
++ extensions/typeaheadfind/Makefile.in |
Lines 31-37
Link Here
|
31 |
|
31 |
|
32 |
include $(DEPTH)/config/autoconf.mk |
32 |
include $(DEPTH)/config/autoconf.mk |
33 |
|
33 |
|
34 |
MODULE = typeaheadfind |
34 |
MODULE = typeaheadfindsea |
35 |
DIRS = public src resources |
35 |
DIRS = public src resources |
36 |
|
36 |
|
37 |
include $(topsrcdir)/config/rules.mk |
37 |
include $(topsrcdir)/config/rules.mk |
38 |
-- caps/src/nsScriptSecurityManager.cpp |
38 |
++ caps/src/nsScriptSecurityManager.cpp |
Lines 1233-1238
Link Here
|
1233 |
// to increase performance |
1233 |
// to increase performance |
1234 |
{ "http", AllowProtocol }, |
1234 |
{ "http", AllowProtocol }, |
1235 |
{ "chrome", ChromeProtocol }, |
1235 |
{ "chrome", ChromeProtocol }, |
|
|
1236 |
{ "moz-icon", ChromeProtocol }, |
1236 |
{ "file", PrefControlled }, |
1237 |
{ "file", PrefControlled }, |
1237 |
{ "https", AllowProtocol }, |
1238 |
{ "https", AllowProtocol }, |
1238 |
{ "mailbox", DenyProtocol }, |
1239 |
{ "mailbox", DenyProtocol }, |
Lines 1366-1374
Link Here
|
1366 |
} |
1367 |
} |
1367 |
|
1368 |
|
1368 |
NS_IMETHODIMP |
1369 |
NS_IMETHODIMP |
1369 |
nsScriptSecurityManager::CheckLoadURIStr(const char* aSourceURIStr, const char* aTargetURIStr, |
1370 |
nsScriptSecurityManager::CheckLoadURIStr(const char* aSourceURIStr, |
|
|
1371 |
const char* aTargetURIStr, |
1370 |
PRUint32 aFlags) |
1372 |
PRUint32 aFlags) |
1371 |
{ |
1373 |
{ |
|
|
1374 |
NS_ENSURE_ARG_POINTER(aSourceURIStr); |
1375 |
NS_ENSURE_ARG_POINTER(aTargetURIStr); |
1376 |
|
1372 |
nsCOMPtr<nsIURI> source; |
1377 |
nsCOMPtr<nsIURI> source; |
1373 |
nsresult rv = NS_NewURI(getter_AddRefs(source), |
1378 |
nsresult rv = NS_NewURI(getter_AddRefs(source), |
1374 |
nsDependentCString(aSourceURIStr), |
1379 |
nsDependentCString(aSourceURIStr), |
1375 |
-- config/mkdepend/imakemdep.h |
1380 |
++ config/mkdepend/imakemdep.h |
Lines 277-282
Link Here
|
277 |
# ifdef __i386__ |
277 |
# ifdef __i386__ |
278 |
"-D__i386__", |
278 |
"-D__i386__", |
279 |
# endif |
279 |
# endif |
|
|
280 |
# ifdef __x86_64__ |
281 |
"-D__x86_64__", |
282 |
# endif |
280 |
# ifdef __GNUC__ |
283 |
# ifdef __GNUC__ |
281 |
"-traditional", |
284 |
"-traditional", |
282 |
# endif |
285 |
# endif |
283 |
-- config/autoconf.mk.in |
286 |
++ config/autoconf.mk.in |
Lines 32-44
Link Here
|
32 |
prefix = @prefix@ |
32 |
prefix = @prefix@ |
33 |
exec_prefix = @exec_prefix@ |
33 |
exec_prefix = @exec_prefix@ |
34 |
bindir = @bindir@ |
34 |
bindir = @bindir@ |
35 |
includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) |
35 |
includedir = @includedir@/mozilla-firefox |
36 |
libdir = @libdir@ |
36 |
libdir = @libdir@ |
37 |
datadir = @datadir@ |
37 |
datadir = @datadir@ |
38 |
mandir = @mandir@ |
38 |
mandir = @mandir@ |
39 |
idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) |
39 |
idldir = @datadir@/idl/mozilla-firefox |
40 |
|
40 |
|
41 |
mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) |
41 |
mozappdir = $(libdir)/mozilla-firefox |
42 |
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION) |
42 |
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION) |
43 |
mrelibdir = $(mredir)/lib |
43 |
mrelibdir = $(mredir)/lib |
44 |
|
44 |
|
Lines 165-172
Link Here
|
165 |
endif |
165 |
endif |
166 |
endif |
166 |
endif |
167 |
MOZ_LIBART_LIBS = @MOZ_LIBART_LIBS@ |
167 |
MOZ_LIBART_LIBS = @MOZ_LIBART_LIBS@ |
|
|
168 |
|
168 |
MOZ_CAIRO_LIBS = @MOZ_CAIRO_LIBS@ |
169 |
MOZ_CAIRO_LIBS = @MOZ_CAIRO_LIBS@ |
169 |
|
170 |
|
|
|
171 |
MOZ_ENABLE_GNOMEUI = @MOZ_ENABLE_GNOMEUI@ |
172 |
MOZ_GNOMEUI_CFLAGS = @MOZ_GNOMEUI_CFLAGS@ |
173 |
MOZ_GNOMEUI_LIBS = @MOZ_GNOMEUI_LIBS@ |
174 |
|
175 |
|
170 |
MOZ_GNOMEVFS_CFLAGS = @MOZ_GNOMEVFS_CFLAGS@ |
176 |
MOZ_GNOMEVFS_CFLAGS = @MOZ_GNOMEVFS_CFLAGS@ |
171 |
MOZ_GNOMEVFS_LIBS = @MOZ_GNOMEVFS_LIBS@ |
177 |
MOZ_GNOMEVFS_LIBS = @MOZ_GNOMEVFS_LIBS@ |
172 |
|
178 |
|
Lines 388-393
Link Here
|
388 |
MOZ_XFT_LIBS = @MOZ_XFT_LIBS@ |
394 |
MOZ_XFT_LIBS = @MOZ_XFT_LIBS@ |
389 |
MOZ_ENABLE_COREXFONTS = @MOZ_ENABLE_COREXFONTS@ |
395 |
MOZ_ENABLE_COREXFONTS = @MOZ_ENABLE_COREXFONTS@ |
390 |
|
396 |
|
|
|
397 |
MOZ_ENABLE_PANGO = @MOZ_ENABLE_PANGO@ |
398 |
MOZ_PANGO_CFLAGS = @MOZ_PANGO_CFLAGS@ |
399 |
MOZ_PANGO_LIBS = @MOZ_PANGO_LIBS@ |
400 |
|
391 |
MOZ_EXTRA_X11CONVERTERS = @MOZ_EXTRA_X11CONVERTERS@ |
401 |
MOZ_EXTRA_X11CONVERTERS = @MOZ_EXTRA_X11CONVERTERS@ |
392 |
|
402 |
|
393 |
MOZ_ENABLE_XINERAMA = @MOZ_ENABLE_XINERAMA@ |
403 |
MOZ_ENABLE_XINERAMA = @MOZ_ENABLE_XINERAMA@ |
394 |
-- config/rules.mk |
404 |
++ config/rules.mk |
Lines 455-461
Link Here
|
455 |
|
455 |
|
456 |
ifeq ($(OS_ARCH),Linux) |
456 |
ifeq ($(OS_ARCH),Linux) |
457 |
ifneq (,$(filter mips mipsel,$(OS_TEST))) |
457 |
ifneq (,$(filter mips mipsel,$(OS_TEST))) |
458 |
ifeq ($(MODULE),layout) |
458 |
ifneq (,$(filter layout content xul xuldoc xultmpl svg_doc view dom jsurl,$(MODULE))) |
459 |
OS_CFLAGS += -Wa,-xgot |
459 |
OS_CFLAGS += -Wa,-xgot |
460 |
OS_CXXFLAGS += -Wa,-xgot |
460 |
OS_CXXFLAGS += -Wa,-xgot |
461 |
endif |
461 |
endif |
462 |
-- embedding/browser/gtk/src/EmbedWindow.cpp |
462 |
++ embedding/browser/gtk/src/EmbedWindow.cpp |
Lines 366-371
Link Here
|
366 |
|
366 |
|
367 |
// nsITooltipListener |
367 |
// nsITooltipListener |
368 |
|
368 |
|
|
|
369 |
static gint |
370 |
tooltips_paint_window(GtkWidget *window) |
371 |
{ |
372 |
// draw tooltip style border around the text |
373 |
gtk_paint_flat_box(window->style, window->window, |
374 |
GTK_STATE_NORMAL, GTK_SHADOW_OUT, |
375 |
NULL, window, "tooltip", |
376 |
0, 0, |
377 |
window->allocation.width, window->allocation.height); |
378 |
|
379 |
return FALSE; |
380 |
} |
381 |
|
369 |
NS_IMETHODIMP |
382 |
NS_IMETHODIMP |
370 |
EmbedWindow::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, |
383 |
EmbedWindow::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, |
371 |
const PRUnichar *aTipText) |
384 |
const PRUnichar *aTipText) |
Lines 416-427
Link Here
|
416 |
// realize the widget |
429 |
// realize the widget |
417 |
gtk_widget_realize(sTipWindow); |
430 |
gtk_widget_realize(sTipWindow); |
418 |
|
431 |
|
|
|
432 |
gtk_signal_connect(GTK_OBJECT(sTipWindow), "expose_event", |
433 |
GTK_SIGNAL_FUNC(tooltips_paint_window), NULL); |
434 |
|
419 |
// set up the label for the tooltip |
435 |
// set up the label for the tooltip |
420 |
GtkWidget *label = gtk_label_new(tipString); |
436 |
GtkWidget *label = gtk_label_new(tipString); |
421 |
// wrap automatically |
437 |
// wrap automatically |
422 |
gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
438 |
gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
423 |
gtk_container_add(GTK_CONTAINER(sTipWindow), label); |
439 |
gtk_container_add(GTK_CONTAINER(sTipWindow), label); |
424 |
gtk_container_set_border_width(GTK_CONTAINER(sTipWindow), 3); |
440 |
gtk_container_set_border_width(GTK_CONTAINER(sTipWindow), 4); |
425 |
// set the coords for the widget |
441 |
// set the coords for the widget |
426 |
gtk_widget_set_uposition(sTipWindow, aXCoords + root_x, |
442 |
gtk_widget_set_uposition(sTipWindow, aXCoords + root_x, |
427 |
aYCoords + root_y); |
443 |
aYCoords + root_y); |
Lines 429-441
Link Here
|
429 |
// and show it. |
445 |
// and show it. |
430 |
gtk_widget_show_all(sTipWindow); |
446 |
gtk_widget_show_all(sTipWindow); |
431 |
|
447 |
|
432 |
// draw tooltip style border around the text |
|
|
433 |
gtk_paint_flat_box(sTipWindow->style, sTipWindow->window, |
434 |
GTK_STATE_NORMAL, GTK_SHADOW_OUT, |
435 |
NULL, GTK_WIDGET(sTipWindow), "tooltip", |
436 |
0, 0, |
437 |
sTipWindow->allocation.width, sTipWindow->allocation.height); |
438 |
|
439 |
#ifdef MOZ_WIDGET_GTK |
448 |
#ifdef MOZ_WIDGET_GTK |
440 |
gtk_widget_popup(sTipWindow, aXCoords + root_x, aYCoords + root_y); |
449 |
gtk_widget_popup(sTipWindow, aXCoords + root_x, aYCoords + root_y); |
441 |
#endif /* MOZ_WIDGET_GTK */ |
450 |
#endif /* MOZ_WIDGET_GTK */ |
442 |
-- embedding/browser/gtk/src/GtkPromptService.cpp |
451 |
++ embedding/browser/gtk/src/GtkPromptService.cpp |
Lines 75-80
Link Here
|
75 |
const PRUnichar* aDialogText, |
75 |
const PRUnichar* aDialogText, |
76 |
const PRUnichar* aCheckMsg, PRBool* aCheckValue) |
76 |
const PRUnichar* aCheckMsg, PRBool* aCheckValue) |
77 |
{ |
77 |
{ |
|
|
78 |
NS_ENSURE_ARG_POINTER(aCheckValue); |
79 |
|
78 |
EmbedPrompter prompter; |
80 |
EmbedPrompter prompter; |
79 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Alert").get()); |
81 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Alert").get()); |
80 |
prompter.SetMessageText(aDialogText); |
82 |
prompter.SetMessageText(aDialogText); |
Lines 109-114
Link Here
|
109 |
const PRUnichar* aCheckMsg, |
111 |
const PRUnichar* aCheckMsg, |
110 |
PRBool* aCheckValue, PRBool* aConfirm) |
112 |
PRBool* aCheckValue, PRBool* aConfirm) |
111 |
{ |
113 |
{ |
|
|
114 |
NS_ENSURE_ARG_POINTER(aCheckValue); |
115 |
|
112 |
EmbedPrompter prompter; |
116 |
EmbedPrompter prompter; |
113 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Confirm").get()); |
117 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Confirm").get()); |
114 |
prompter.SetMessageText(aDialogText); |
118 |
prompter.SetMessageText(aDialogText); |
Lines 171-180
Link Here
|
171 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Prompt").get()); |
175 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Prompt").get()); |
172 |
prompter.SetMessageText(aDialogText); |
176 |
prompter.SetMessageText(aDialogText); |
173 |
prompter.SetTextValue(*aValue); |
177 |
prompter.SetTextValue(*aValue); |
174 |
if (aCheckMsg) { |
178 |
if (aCheckMsg) |
175 |
prompter.SetCheckMessage(aCheckMsg); |
179 |
prompter.SetCheckMessage(aCheckMsg); |
|
|
180 |
if (aCheckValue) |
176 |
prompter.SetCheckValue(*aCheckValue); |
181 |
prompter.SetCheckValue(*aCheckValue); |
177 |
} |
182 |
|
178 |
prompter.Create(EmbedPrompter::TYPE_PROMPT, |
183 |
prompter.Create(EmbedPrompter::TYPE_PROMPT, |
179 |
GetGtkWindowForDOMWindow(aParent)); |
184 |
GetGtkWindowForDOMWindow(aParent)); |
180 |
prompter.Run(); |
185 |
prompter.Run(); |
Lines 204-213
Link Here
|
204 |
prompter.SetMessageText(aDialogText); |
209 |
prompter.SetMessageText(aDialogText); |
205 |
prompter.SetUser(*aUsername); |
210 |
prompter.SetUser(*aUsername); |
206 |
prompter.SetPassword(*aPassword); |
211 |
prompter.SetPassword(*aPassword); |
207 |
if (aCheckMsg) { |
212 |
if (aCheckMsg) |
208 |
prompter.SetCheckMessage(aCheckMsg); |
213 |
prompter.SetCheckMessage(aCheckMsg); |
|
|
214 |
if (aCheckValue) |
209 |
prompter.SetCheckValue(*aCheckValue); |
215 |
prompter.SetCheckValue(*aCheckValue); |
210 |
} |
216 |
|
211 |
prompter.Create(EmbedPrompter::TYPE_PROMPT_USER_PASS, |
217 |
prompter.Create(EmbedPrompter::TYPE_PROMPT_USER_PASS, |
212 |
GetGtkWindowForDOMWindow(aParent)); |
218 |
GetGtkWindowForDOMWindow(aParent)); |
213 |
prompter.Run(); |
219 |
prompter.Run(); |
Lines 238-247
Link Here
|
238 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Prompt").get()); |
244 |
prompter.SetTitle(aDialogTitle ? aDialogTitle : NS_LITERAL_STRING("Prompt").get()); |
239 |
prompter.SetMessageText(aDialogText); |
245 |
prompter.SetMessageText(aDialogText); |
240 |
prompter.SetPassword(*aPassword); |
246 |
prompter.SetPassword(*aPassword); |
241 |
if (aCheckMsg) { |
247 |
if (aCheckMsg) |
242 |
prompter.SetCheckMessage(aCheckMsg); |
248 |
prompter.SetCheckMessage(aCheckMsg); |
|
|
249 |
if (aCheckValue) |
243 |
prompter.SetCheckValue(*aCheckValue); |
250 |
prompter.SetCheckValue(*aCheckValue); |
244 |
} |
251 |
|
245 |
prompter.Create(EmbedPrompter::TYPE_PROMPT_PASS, |
252 |
prompter.Create(EmbedPrompter::TYPE_PROMPT_PASS, |
246 |
GetGtkWindowForDOMWindow(aParent)); |
253 |
GetGtkWindowForDOMWindow(aParent)); |
247 |
prompter.Run(); |
254 |
prompter.Run(); |
248 |
-- js/src/jsstr.c |
255 |
++ js/src/jsstr.c |
Lines 1378-1388
Link Here
|
1378 |
JSBool ok; |
1378 |
JSBool ok; |
1379 |
|
1379 |
|
1380 |
/* |
1380 |
/* |
1381 |
* Save the rightContext from the current regexp, since it |
1381 |
* Save the regExpStatics from the current regexp, since they may be |
1382 |
* gets stuck at the end of the replacement string and may |
1382 |
* clobbered by a RegExp usage in the lambda function. Note that all |
1383 |
* be clobbered by a RegExp usage in the lambda function. |
1383 |
* members of JSRegExpStatics are JSSubStrings, so not GC roots, save |
|
|
1384 |
* input, which is rooted otherwise via argv[-1] in str_replace. |
1385 |
* |
1386 |
* We need to clear moreParens in the top-of-stack cx->regExpStatics |
1387 |
* to it won't be possibly realloc'ed, leaving the bottom-of-stack |
1388 |
* moreParens pointing to freed memory. |
1384 |
*/ |
1389 |
*/ |
1385 |
JSSubString saveRightContext = cx->regExpStatics.rightContext; |
1390 |
JSRegExpStatics save = cx->regExpStatics; |
|
|
1391 |
cx->regExpStatics.moreParens = NULL; |
1386 |
|
1392 |
|
1387 |
/* |
1393 |
/* |
1388 |
* In the lambda case, not only do we find the replacement string's |
1394 |
* In the lambda case, not only do we find the replacement string's |
Lines 1460-1466
Link Here
|
1460 |
|
1466 |
|
1461 |
lambda_out: |
1467 |
lambda_out: |
1462 |
js_FreeStack(cx, mark); |
1468 |
js_FreeStack(cx, mark); |
1463 |
cx->regExpStatics.rightContext = saveRightContext; |
1469 |
if (cx->regExpStatics.moreParens) |
|
|
1470 |
JS_free(cx, cx->regExpStatics.moreParens); |
1471 |
cx->regExpStatics = save; |
1464 |
return ok; |
1472 |
return ok; |
1465 |
} |
1473 |
} |
1466 |
#endif /* JS_HAS_REPLACE_LAMBDA */ |
1474 |
#endif /* JS_HAS_REPLACE_LAMBDA */ |
1467 |
-- netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp |
1475 |
++ netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp |
Lines 1051-1072
Link Here
|
1051 |
mResponseMsg = ""; |
1051 |
mResponseMsg = ""; |
1052 |
|
1052 |
|
1053 |
if (mAnonymous) { |
1053 |
if (mAnonymous) { |
1054 |
char* anonPassword = nsnull; |
1054 |
if (!mPassword.IsEmpty()) { |
1055 |
PRBool useRealEmail = PR_FALSE; |
1055 |
// XXX Is UTF-8 the best choice? |
1056 |
nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); |
1056 |
AppendUTF16toUTF8(mPassword, passwordStr); |
1057 |
if (prefs) { |
1057 |
} else { |
1058 |
rv = prefs->GetBoolPref("advanced.mailftp", &useRealEmail); |
1058 |
nsXPIDLCString anonPassword; |
1059 |
if (NS_SUCCEEDED(rv) && useRealEmail) |
1059 |
PRBool useRealEmail = PR_FALSE; |
1060 |
prefs->GetCharPref("network.ftp.anonymous_password", &anonPassword); |
1060 |
nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); |
1061 |
} |
1061 |
if (prefs) { |
1062 |
if (useRealEmail && anonPassword && *anonPassword != '\0') { |
1062 |
rv = prefs->GetBoolPref("advanced.mailftp", &useRealEmail); |
1063 |
passwordStr.Append(anonPassword); |
1063 |
if (NS_SUCCEEDED(rv) && useRealEmail) |
1064 |
nsMemory::Free(anonPassword); |
1064 |
prefs->GetCharPref("network.ftp.anonymous_password", getter_Copies(anonPassword)); |
1065 |
} |
1065 |
} |
1066 |
else { |
1066 |
if (!anonPassword.IsEmpty()) { |
1067 |
// We need to default to a valid email address - bug 101027 |
1067 |
passwordStr.Append(anonPassword); |
1068 |
// example.com is reserved (rfc2606), so use that |
1068 |
} else { |
1069 |
passwordStr.Append("mozilla@example.com"); |
1069 |
// We need to default to a valid email address - bug 101027 |
|
|
1070 |
// example.com is reserved (rfc2606), so use that |
1071 |
passwordStr.Append("mozilla@example.com"); |
1072 |
} |
1070 |
} |
1073 |
} |
1071 |
} else { |
1074 |
} else { |
1072 |
if (mPassword.IsEmpty() || mRetryPass) { |
1075 |
if (mPassword.IsEmpty() || mRetryPass) { |
Lines 1146-1151
Link Here
|
1146 |
} |
1149 |
} |
1147 |
} |
1150 |
} |
1148 |
|
1151 |
|
|
|
1152 |
// If the login was anonymous, and it failed, try again with a username |
1153 |
if (mAnonymous) { |
1154 |
mAnonymous = PR_FALSE; |
1155 |
return FTP_S_USER; |
1156 |
} |
1157 |
|
1149 |
mRetryPass = PR_TRUE; |
1158 |
mRetryPass = PR_TRUE; |
1150 |
return FTP_ERROR; |
1159 |
return FTP_ERROR; |
1151 |
} |
1160 |
} |
1152 |
-- netwerk/protocol/http/src/nsHttpHandler.cpp |
1161 |
++ netwerk/protocol/http/src/nsHttpHandler.cpp |
Lines 669-676
Link Here
|
669 |
if (ret >= 0) { |
669 |
if (ret >= 0) { |
670 |
nsCString buf; |
670 |
nsCString buf; |
671 |
buf = (char*)name.sysname; |
671 |
buf = (char*)name.sysname; |
672 |
buf += ' '; |
672 |
|
673 |
buf += (char*)name.machine; |
673 |
if (strcmp(name.machine, "x86_64") == 0 && |
|
|
674 |
sizeof(long) == sizeof(PRInt32)) { |
675 |
// We're running 32-bit code on x86_64. Make this browser |
676 |
// look like it's running on i686 hardware, but append " |
677 |
// (x86_64)" to the end of the oscpu identifier to be able |
678 |
// to differentiate this from someone running 64-bit code |
679 |
// on x86_64.. |
680 |
|
681 |
buf += " i686 (x86_64)"; |
682 |
} else { |
683 |
buf += ' '; |
684 |
|
685 |
buf += (char*)name.machine; |
686 |
} |
687 |
|
674 |
mOscpu.Assign(buf); |
688 |
mOscpu.Assign(buf); |
675 |
} |
689 |
} |
676 |
#endif |
690 |
#endif |
677 |
-- netwerk/necko-config.h |
691 |
++ netwerk/necko-config.h |
Line 0
Link Here
|
0 |
-- profile/dirserviceprovider/public/nsProfileDirServiceProvider.h |
1 |
/* netwerk/necko-config.h. Generated automatically by configure. */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: NPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Netscape Public License |
6 |
* Version 1.1 (the "License"); you may not use this file except in |
7 |
* compliance with the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/NPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is mozilla.org code. |
16 |
* |
17 |
* The Initial Developer of the Original Code is |
18 |
* Netscape Communications Corporation. |
19 |
* Portions created by the Initial Developer are Copyright (C) 2003 |
20 |
* the Initial Developer. All Rights Reserved. |
21 |
* |
22 |
* Contributor(s): |
23 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
27 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
28 |
* of those above. If you wish to allow use of your version of this file only |
29 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
30 |
* use your version of this file under the terms of the NPL, indicate your |
31 |
* decision by deleting the provisions above and replace them with the notice |
32 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
33 |
* the provisions above, a recipient may use your version of this file under |
34 |
* the terms of any one of the NPL, the GPL or the LGPL. |
35 |
* |
36 |
* ***** END LICENSE BLOCK ***** */ |
37 |
|
38 |
#ifndef _NECKO_CONFIG_H_ |
39 |
#define _NECKO_CONFIG_H_ |
40 |
|
41 |
#define NECKO_DISK_CACHE 1 |
42 |
|
43 |
/* #undef NECKO_SMALL_BUFFERS */ |
44 |
|
45 |
#define NECKO_COOKIES 1 |
46 |
|
47 |
#define NECKO_PROTOCOL_about 1 |
48 |
#define NECKO_PROTOCOL_data 1 |
49 |
#define NECKO_PROTOCOL_file 1 |
50 |
#define NECKO_PROTOCOL_ftp 1 |
51 |
#define NECKO_PROTOCOL_gopher 1 |
52 |
#define NECKO_PROTOCOL_http 1 |
53 |
#define NECKO_PROTOCOL_jar 1 |
54 |
#define NECKO_PROTOCOL_keyword 1 |
55 |
#define NECKO_PROTOCOL_res 1 |
56 |
#define NECKO_PROTOCOL_viewsource 1 |
57 |
|
58 |
#endif |
|
|
59 |
++ profile/dirserviceprovider/public/nsProfileDirServiceProvider.h |
Lines 107-112
Link Here
|
107 |
static nsIAtom* sApp_PreferencesFile50; |
107 |
static nsIAtom* sApp_PreferencesFile50; |
108 |
static nsIAtom* sApp_UserProfileDirectory50; |
108 |
static nsIAtom* sApp_UserProfileDirectory50; |
109 |
static nsIAtom* sApp_UserChromeDirectory; |
109 |
static nsIAtom* sApp_UserChromeDirectory; |
|
|
110 |
static nsIAtom* sApp_UserSearchDirectory50; |
110 |
static nsIAtom* sApp_LocalStore50; |
111 |
static nsIAtom* sApp_LocalStore50; |
111 |
static nsIAtom* sApp_History50; |
112 |
static nsIAtom* sApp_History50; |
112 |
static nsIAtom* sApp_UsersPanels50; |
113 |
static nsIAtom* sApp_UsersPanels50; |
113 |
-- profile/dirserviceprovider/src/nsProfileDirServiceProvider.cpp |
114 |
++ profile/dirserviceprovider/src/nsProfileDirServiceProvider.cpp |
Lines 56-68
Link Here
|
56 |
|
56 |
|
57 |
#define PREFS_FILE_50_NAME NS_LITERAL_CSTRING("prefs.js") |
57 |
#define PREFS_FILE_50_NAME NS_LITERAL_CSTRING("prefs.js") |
58 |
#define USER_CHROME_DIR_50_NAME NS_LITERAL_CSTRING("chrome") |
58 |
#define USER_CHROME_DIR_50_NAME NS_LITERAL_CSTRING("chrome") |
|
|
59 |
#define USER_SEARCH_DIR_50_NAME NS_LITERAL_CSTRING("search") |
59 |
#define LOCAL_STORE_FILE_50_NAME NS_LITERAL_CSTRING("localstore.rdf") |
60 |
#define LOCAL_STORE_FILE_50_NAME NS_LITERAL_CSTRING("localstore.rdf") |
60 |
#define HISTORY_FILE_50_NAME NS_LITERAL_CSTRING("history.dat") |
61 |
#define HISTORY_FILE_50_NAME NS_LITERAL_CSTRING("history.dat") |
61 |
#define PANELS_FILE_50_NAME NS_LITERAL_CSTRING("panels.rdf") |
62 |
#define PANELS_FILE_50_NAME NS_LITERAL_CSTRING("panels.rdf") |
62 |
#define MIME_TYPES_FILE_50_NAME NS_LITERAL_CSTRING("mimeTypes.rdf") |
63 |
#define MIME_TYPES_FILE_50_NAME NS_LITERAL_CSTRING("mimeTypes.rdf") |
63 |
#define BOOKMARKS_FILE_50_NAME NS_LITERAL_CSTRING("bookmarks.html") |
64 |
#define BOOKMARKS_FILE_50_NAME NS_LITERAL_CSTRING("bookmarks.html") |
64 |
#define DOWNLOADS_FILE_50_NAME NS_LITERAL_CSTRING("downloads.rdf") |
65 |
#define DOWNLOADS_FILE_50_NAME NS_LITERAL_CSTRING("downloads.rdf") |
65 |
#define SEARCH_FILE_50_NAME NS_LITERAL_CSTRING("search.rdf" ) |
|
|
66 |
#define MAIL_DIR_50_NAME NS_LITERAL_CSTRING("Mail") |
66 |
#define MAIL_DIR_50_NAME NS_LITERAL_CSTRING("Mail") |
67 |
#define IMAP_MAIL_DIR_50_NAME NS_LITERAL_CSTRING("ImapMail") |
67 |
#define IMAP_MAIL_DIR_50_NAME NS_LITERAL_CSTRING("ImapMail") |
68 |
#define NEWS_DIR_50_NAME NS_LITERAL_CSTRING("News") |
68 |
#define NEWS_DIR_50_NAME NS_LITERAL_CSTRING("News") |
Lines 74-79
Link Here
|
74 |
nsIAtom* nsProfileDirServiceProvider::sApp_PreferencesFile50; |
74 |
nsIAtom* nsProfileDirServiceProvider::sApp_PreferencesFile50; |
75 |
nsIAtom* nsProfileDirServiceProvider::sApp_UserProfileDirectory50; |
75 |
nsIAtom* nsProfileDirServiceProvider::sApp_UserProfileDirectory50; |
76 |
nsIAtom* nsProfileDirServiceProvider::sApp_UserChromeDirectory; |
76 |
nsIAtom* nsProfileDirServiceProvider::sApp_UserChromeDirectory; |
|
|
77 |
nsIAtom* nsProfileDirServiceProvider::sApp_UserSearchDirectory50; |
77 |
nsIAtom* nsProfileDirServiceProvider::sApp_LocalStore50; |
78 |
nsIAtom* nsProfileDirServiceProvider::sApp_LocalStore50; |
78 |
nsIAtom* nsProfileDirServiceProvider::sApp_History50; |
79 |
nsIAtom* nsProfileDirServiceProvider::sApp_History50; |
79 |
nsIAtom* nsProfileDirServiceProvider::sApp_UsersPanels50; |
80 |
nsIAtom* nsProfileDirServiceProvider::sApp_UsersPanels50; |
Lines 261-266
Link Here
|
261 |
if (NS_SUCCEEDED(rv)) |
262 |
if (NS_SUCCEEDED(rv)) |
262 |
rv = localFile->AppendNative(USER_CHROME_DIR_50_NAME); |
263 |
rv = localFile->AppendNative(USER_CHROME_DIR_50_NAME); |
263 |
} |
264 |
} |
|
|
265 |
else if (inAtom == sApp_UserSearchDirectory50) { |
266 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
267 |
if (NS_SUCCEEDED(rv)) |
268 |
rv = localFile->AppendNative(USER_SEARCH_DIR_50_NAME); |
269 |
} |
264 |
else if (inAtom == sApp_LocalStore50) { |
270 |
else if (inAtom == sApp_LocalStore50) { |
265 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
271 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
266 |
if (NS_SUCCEEDED(rv)) { |
272 |
if (NS_SUCCEEDED(rv)) { |
Lines 303-316
Link Here
|
303 |
if (NS_SUCCEEDED(rv)) |
309 |
if (NS_SUCCEEDED(rv)) |
304 |
rv = localFile->AppendNative(DOWNLOADS_FILE_50_NAME); |
310 |
rv = localFile->AppendNative(DOWNLOADS_FILE_50_NAME); |
305 |
} |
311 |
} |
306 |
else if (inAtom == sApp_SearchFile50) { |
|
|
307 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
308 |
if (NS_SUCCEEDED(rv)) { |
309 |
rv = localFile->AppendNative(SEARCH_FILE_50_NAME); |
310 |
if (NS_SUCCEEDED(rv)) |
311 |
rv = EnsureProfileFileExists(localFile, domainDir); |
312 |
} |
313 |
} |
314 |
else if (inAtom == sApp_MailDirectory50) { |
312 |
else if (inAtom == sApp_MailDirectory50) { |
315 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
313 |
rv = domainDir->Clone(getter_AddRefs(localFile)); |
316 |
if (NS_SUCCEEDED(rv)) |
314 |
if (NS_SUCCEEDED(rv)) |
Lines 370-382
Link Here
|
370 |
{ NS_APP_PREFS_50_FILE, &sApp_PreferencesFile50 }, |
368 |
{ NS_APP_PREFS_50_FILE, &sApp_PreferencesFile50 }, |
371 |
{ NS_APP_USER_PROFILE_50_DIR, &sApp_UserProfileDirectory50 }, |
369 |
{ NS_APP_USER_PROFILE_50_DIR, &sApp_UserProfileDirectory50 }, |
372 |
{ NS_APP_USER_CHROME_DIR, &sApp_UserChromeDirectory }, |
370 |
{ NS_APP_USER_CHROME_DIR, &sApp_UserChromeDirectory }, |
|
|
371 |
{ NS_APP_USER_SEARCH_50_DIR, &sApp_UserSearchDirectory50 }, |
373 |
{ NS_APP_LOCALSTORE_50_FILE, &sApp_LocalStore50 }, |
372 |
{ NS_APP_LOCALSTORE_50_FILE, &sApp_LocalStore50 }, |
374 |
{ NS_APP_HISTORY_50_FILE, &sApp_History50 }, |
373 |
{ NS_APP_HISTORY_50_FILE, &sApp_History50 }, |
375 |
{ NS_APP_USER_PANELS_50_FILE, &sApp_UsersPanels50 }, |
374 |
{ NS_APP_USER_PANELS_50_FILE, &sApp_UsersPanels50 }, |
376 |
{ NS_APP_USER_MIMETYPES_50_FILE, &sApp_UsersMimeTypes50 }, |
375 |
{ NS_APP_USER_MIMETYPES_50_FILE, &sApp_UsersMimeTypes50 }, |
377 |
{ NS_APP_BOOKMARKS_50_FILE, &sApp_BookmarksFile50 }, |
376 |
{ NS_APP_BOOKMARKS_50_FILE, &sApp_BookmarksFile50 }, |
378 |
{ NS_APP_DOWNLOADS_50_FILE, &sApp_DownloadsFile50 }, |
377 |
{ NS_APP_DOWNLOADS_50_FILE, &sApp_DownloadsFile50 }, |
379 |
{ NS_APP_SEARCH_50_FILE, &sApp_SearchFile50 }, |
|
|
380 |
{ NS_APP_MAIL_50_DIR, &sApp_MailDirectory50 }, |
378 |
{ NS_APP_MAIL_50_DIR, &sApp_MailDirectory50 }, |
381 |
{ NS_APP_IMAP_MAIL_50_DIR, &sApp_ImapMailDirectory50 }, |
379 |
{ NS_APP_IMAP_MAIL_50_DIR, &sApp_ImapMailDirectory50 }, |
382 |
{ NS_APP_NEWS_50_DIR, &sApp_NewsDirectory50 }, |
380 |
{ NS_APP_NEWS_50_DIR, &sApp_NewsDirectory50 }, |
Lines 534-546
Link Here
|
534 |
(void) directoryService->Undefine(NS_APP_PREFS_50_FILE); |
532 |
(void) directoryService->Undefine(NS_APP_PREFS_50_FILE); |
535 |
(void) directoryService->Undefine(NS_APP_USER_PROFILE_50_DIR); |
533 |
(void) directoryService->Undefine(NS_APP_USER_PROFILE_50_DIR); |
536 |
(void) directoryService->Undefine(NS_APP_USER_CHROME_DIR); |
534 |
(void) directoryService->Undefine(NS_APP_USER_CHROME_DIR); |
|
|
535 |
(void) directoryService->Undefine(NS_APP_USER_SEARCH_50_DIR); |
537 |
(void) directoryService->Undefine(NS_APP_LOCALSTORE_50_FILE); |
536 |
(void) directoryService->Undefine(NS_APP_LOCALSTORE_50_FILE); |
538 |
(void) directoryService->Undefine(NS_APP_HISTORY_50_FILE); |
537 |
(void) directoryService->Undefine(NS_APP_HISTORY_50_FILE); |
539 |
(void) directoryService->Undefine(NS_APP_USER_PANELS_50_FILE); |
538 |
(void) directoryService->Undefine(NS_APP_USER_PANELS_50_FILE); |
540 |
(void) directoryService->Undefine(NS_APP_USER_MIMETYPES_50_FILE); |
539 |
(void) directoryService->Undefine(NS_APP_USER_MIMETYPES_50_FILE); |
541 |
(void) directoryService->Undefine(NS_APP_BOOKMARKS_50_FILE); |
540 |
(void) directoryService->Undefine(NS_APP_BOOKMARKS_50_FILE); |
542 |
(void) directoryService->Undefine(NS_APP_DOWNLOADS_50_FILE); |
541 |
(void) directoryService->Undefine(NS_APP_DOWNLOADS_50_FILE); |
543 |
(void) directoryService->Undefine(NS_APP_SEARCH_50_FILE); |
|
|
544 |
(void) directoryService->Undefine(NS_APP_MAIL_50_DIR); |
542 |
(void) directoryService->Undefine(NS_APP_MAIL_50_DIR); |
545 |
(void) directoryService->Undefine(NS_APP_IMAP_MAIL_50_DIR); |
543 |
(void) directoryService->Undefine(NS_APP_IMAP_MAIL_50_DIR); |
546 |
(void) directoryService->Undefine(NS_APP_NEWS_50_DIR); |
544 |
(void) directoryService->Undefine(NS_APP_NEWS_50_DIR); |
547 |
-- uriloader/exthandler/unix/nsGNOMERegistry.cpp |
545 |
++ uriloader/exthandler/unix/nsGNOMERegistry.cpp |
Lines 283-288
Link Here
|
283 |
|
283 |
|
284 |
gchar *nativeCommand = g_filename_from_utf8(handlerApp->command, |
284 |
gchar *nativeCommand = g_filename_from_utf8(handlerApp->command, |
285 |
-1, NULL, NULL, NULL); |
285 |
-1, NULL, NULL, NULL); |
|
|
286 |
|
287 |
// Some versions of the mime stuff will add whitespace to the end or |
288 |
// beginning of the command |
289 |
nativeCommand = g_strstrip(nativeCommand); |
290 |
|
286 |
if (!nativeCommand) { |
291 |
if (!nativeCommand) { |
287 |
NS_ERROR("Could not convert helper app command to filesystem encoding"); |
292 |
NS_ERROR("Could not convert helper app command to filesystem encoding"); |
288 |
_gnome_vfs_mime_application_free(handlerApp); |
293 |
_gnome_vfs_mime_application_free(handlerApp); |
289 |
-- xpcom/io/nsDirectoryService.cpp |
294 |
++ xpcom/io/nsDirectoryService.cpp |
Lines 400-405
Link Here
|
400 |
nsIAtom* nsDirectoryService::sLocalDirectory = nsnull; |
400 |
nsIAtom* nsDirectoryService::sLocalDirectory = nsnull; |
401 |
nsIAtom* nsDirectoryService::sLibDirectory = nsnull; |
401 |
nsIAtom* nsDirectoryService::sLibDirectory = nsnull; |
402 |
nsIAtom* nsDirectoryService::sHomeDirectory = nsnull; |
402 |
nsIAtom* nsDirectoryService::sHomeDirectory = nsnull; |
|
|
403 |
nsIAtom* nsDirectoryService::sDesktopDirectory = nsnull; |
403 |
#elif defined (XP_OS2) |
404 |
#elif defined (XP_OS2) |
404 |
nsIAtom* nsDirectoryService::sSystemDirectory = nsnull; |
405 |
nsIAtom* nsDirectoryService::sSystemDirectory = nsnull; |
405 |
nsIAtom* nsDirectoryService::sOS2Directory = nsnull; |
406 |
nsIAtom* nsDirectoryService::sOS2Directory = nsnull; |
Lines 509-514
Link Here
|
509 |
{ NS_UNIX_LOCAL_DIR, &nsDirectoryService::sLocalDirectory }, |
510 |
{ NS_UNIX_LOCAL_DIR, &nsDirectoryService::sLocalDirectory }, |
510 |
{ NS_UNIX_LIB_DIR, &nsDirectoryService::sLibDirectory }, |
511 |
{ NS_UNIX_LIB_DIR, &nsDirectoryService::sLibDirectory }, |
511 |
{ NS_UNIX_HOME_DIR, &nsDirectoryService::sHomeDirectory }, |
512 |
{ NS_UNIX_HOME_DIR, &nsDirectoryService::sHomeDirectory }, |
|
|
513 |
{ NS_UNIX_DESKTOP_DIR, &nsDirectoryService::sDesktopDirectory }, |
512 |
#elif defined (XP_OS2) |
514 |
#elif defined (XP_OS2) |
513 |
{ NS_OS_SYSTEM_DIR, &nsDirectoryService::sSystemDirectory }, |
515 |
{ NS_OS_SYSTEM_DIR, &nsDirectoryService::sSystemDirectory }, |
514 |
{ NS_OS2_DIR, &nsDirectoryService::sOS2Directory }, |
516 |
{ NS_OS2_DIR, &nsDirectoryService::sOS2Directory }, |
Lines 1098-1103
Link Here
|
1098 |
{ |
1100 |
{ |
1099 |
rv = GetSpecialSystemDirectory(Unix_HomeDirectory, getter_AddRefs(localFile)); |
1101 |
rv = GetSpecialSystemDirectory(Unix_HomeDirectory, getter_AddRefs(localFile)); |
1100 |
} |
1102 |
} |
|
|
1103 |
else if (inAtom == nsDirectoryService::sDesktopDirectory) |
1104 |
{ |
1105 |
rv = GetSpecialSystemDirectory(Unix_DesktopDirectory, getter_AddRefs(localFile)); |
1106 |
} |
1101 |
#elif defined (XP_OS2) |
1107 |
#elif defined (XP_OS2) |
1102 |
else if (inAtom == nsDirectoryService::sSystemDirectory) |
1108 |
else if (inAtom == nsDirectoryService::sSystemDirectory) |
1103 |
{ |
1109 |
{ |
1104 |
-- xpcom/io/nsAppDirectoryServiceDefs.h |
1110 |
++ xpcom/io/nsAppDirectoryServiceDefs.h |
Lines 75-82
Link Here
|
75 |
#define NS_APP_CHROME_DIR "AChrom" |
75 |
#define NS_APP_CHROME_DIR "AChrom" |
76 |
#define NS_APP_PLUGINS_DIR "APlugns" // Deprecated - use NS_APP_PLUGINS_DIR_LIST |
76 |
#define NS_APP_PLUGINS_DIR "APlugns" // Deprecated - use NS_APP_PLUGINS_DIR_LIST |
77 |
#define NS_APP_SEARCH_DIR "SrchPlugns" |
77 |
#define NS_APP_SEARCH_DIR "SrchPlugns" |
|
|
78 |
#define NS_USER_SEARCH_DIR "UsrSrchPlugns" |
78 |
|
79 |
|
79 |
#define NS_APP_PLUGINS_DIR_LIST "APluginsDL" |
80 |
#define NS_APP_PLUGINS_DIR_LIST "APluginsDL" |
|
|
81 |
#define NS_APP_SEARCH_DIR_LIST "ASearchDL" |
80 |
|
82 |
|
81 |
// -------------------------------------------------------------------------------------- |
83 |
// -------------------------------------------------------------------------------------- |
82 |
// Files and directories which exist on a per-profile basis |
84 |
// Files and directories which exist on a per-profile basis |
Lines 108-114
Link Here
|
108 |
|
110 |
|
109 |
#define NS_APP_DOWNLOADS_50_FILE "DLoads" |
111 |
#define NS_APP_DOWNLOADS_50_FILE "DLoads" |
110 |
|
112 |
|
111 |
#define NS_APP_SEARCH_50_FILE "SrchF" |
113 |
#define NS_APP_USER_SEARCH_50_DIR "USrchD" |
112 |
|
114 |
|
113 |
#define NS_APP_MAIL_50_DIR "MailD" |
115 |
#define NS_APP_MAIL_50_DIR "MailD" |
114 |
#define NS_APP_IMAP_MAIL_50_DIR "IMapMD" |
116 |
#define NS_APP_IMAP_MAIL_50_DIR "IMapMD" |
115 |
-- xpcom/io/nsAppFileLocationProvider.cpp |
117 |
++ xpcom/io/nsAppFileLocationProvider.cpp |
Lines 252-257
Link Here
|
252 |
if (NS_SUCCEEDED(rv)) |
252 |
if (NS_SUCCEEDED(rv)) |
253 |
rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME); |
253 |
rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME); |
254 |
} |
254 |
} |
|
|
255 |
else if (nsCRT::strcmp(prop, NS_USER_SEARCH_DIR) == 0) |
256 |
{ |
257 |
rv = GetProductDirectory(getter_AddRefs(localFile)); |
258 |
if (NS_SUCCEEDED(rv)) |
259 |
rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME); |
260 |
} |
255 |
else if (nsCRT::strcmp(prop, NS_APP_INSTALL_CLEANUP_DIR) == 0) |
261 |
else if (nsCRT::strcmp(prop, NS_APP_INSTALL_CLEANUP_DIR) == 0) |
256 |
{ |
262 |
{ |
257 |
// This is cloned so that embeddors will have a hook to override |
263 |
// This is cloned so that embeddors will have a hook to override |
Lines 589-593
Link Here
|
589 |
NS_IF_ADDREF(*_retval); |
595 |
NS_IF_ADDREF(*_retval); |
590 |
rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY; |
596 |
rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY; |
591 |
} |
597 |
} |
|
|
598 |
if (!nsCRT::strcmp(prop, NS_APP_SEARCH_DIR_LIST)) |
599 |
{ |
600 |
static const char* keys[] = { nsnull, NS_USER_SEARCH_DIR, NS_APP_SEARCH_DIR, nsnull }; |
601 |
if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_SEARCH_ENGINE_PATH"))) { |
602 |
static const char nullstr = 0; |
603 |
keys[0] = &nullstr; |
604 |
} |
605 |
*_retval = new nsPathsDirectoryEnumerator(this, keys); |
606 |
NS_IF_ADDREF(*_retval); |
607 |
rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY; |
608 |
} |
592 |
return rv; |
609 |
return rv; |
593 |
} |
610 |
} |
594 |
-- xpcom/io/SpecialSystemDirectory.cpp |
611 |
++ xpcom/io/SpecialSystemDirectory.cpp |
Lines 567-572
Link Here
|
567 |
PR_TRUE, |
567 |
PR_TRUE, |
568 |
aFile); |
568 |
aFile); |
569 |
|
569 |
|
|
|
570 |
case Unix_DesktopDirectory: |
571 |
{ |
572 |
nsCAutoString desktopDir(PR_GetEnv("HOME")); |
573 |
if (!desktopDir.IsEmpty() || !(desktopDir.Equals("/"))) |
574 |
{ |
575 |
desktopDir.Append("/Desktop"); |
576 |
} else { |
577 |
desktopDir = ""; |
578 |
} |
579 |
return NS_NewNativeLocalFile(desktopDir, PR_TRUE, aFile); |
580 |
} |
581 |
|
570 |
case Unix_HomeDirectory: |
582 |
case Unix_HomeDirectory: |
571 |
#ifdef VMS |
583 |
#ifdef VMS |
572 |
{ |
584 |
{ |
573 |
-- xpcom/io/SpecialSystemDirectory.h |
585 |
++ xpcom/io/SpecialSystemDirectory.h |
Lines 96-101
Link Here
|
96 |
Unix_LocalDirectory = 301, |
96 |
Unix_LocalDirectory = 301, |
97 |
Unix_LibDirectory = 302, |
97 |
Unix_LibDirectory = 302, |
98 |
Unix_HomeDirectory = 303, |
98 |
Unix_HomeDirectory = 303, |
|
|
99 |
Unix_DesktopDirectory = 304, |
99 |
|
100 |
|
100 |
BeOS_SettingsDirectory = 401, |
101 |
BeOS_SettingsDirectory = 401, |
101 |
BeOS_HomeDirectory = 402, |
102 |
BeOS_HomeDirectory = 402, |
102 |
-- xpcom/io/nsDirectoryService.h |
103 |
++ xpcom/io/nsDirectoryService.h |
Lines 157-162
Link Here
|
157 |
static nsIAtom *sLocalDirectory; |
157 |
static nsIAtom *sLocalDirectory; |
158 |
static nsIAtom *sLibDirectory; |
158 |
static nsIAtom *sLibDirectory; |
159 |
static nsIAtom *sHomeDirectory; |
159 |
static nsIAtom *sHomeDirectory; |
|
|
160 |
static nsIAtom *sDesktopDirectory; |
160 |
#elif defined (XP_OS2) |
161 |
#elif defined (XP_OS2) |
161 |
static nsIAtom *sSystemDirectory; |
162 |
static nsIAtom *sSystemDirectory; |
162 |
static nsIAtom *sOS2Directory; |
163 |
static nsIAtom *sOS2Directory; |
163 |
-- xpcom/io/nsDirectoryServiceDefs.h |
164 |
++ xpcom/io/nsDirectoryServiceDefs.h |
Lines 178-183
Link Here
|
178 |
#define NS_UNIX_LOCAL_DIR "Locl" |
178 |
#define NS_UNIX_LOCAL_DIR "Locl" |
179 |
#define NS_UNIX_LIB_DIR "LibD" |
179 |
#define NS_UNIX_LIB_DIR "LibD" |
180 |
#define NS_UNIX_HOME_DIR "Home" |
180 |
#define NS_UNIX_HOME_DIR "Home" |
|
|
181 |
#define NS_UNIX_DESKTOP_DIR "Desktop" |
181 |
#elif defined (XP_OS2) |
182 |
#elif defined (XP_OS2) |
182 |
#define NS_OS2_DIR "OS2Dir" |
183 |
#define NS_OS2_DIR "OS2Dir" |
183 |
#define NS_OS2_HOME_DIR "Home" |
184 |
#define NS_OS2_HOME_DIR "Home" |
184 |
-- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp |
185 |
++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp |
Lines 21-27
Link Here
|
21 |
* Contributor(s): |
21 |
* Contributor(s): |
22 |
* Stuart Parmenter <pavlov@netscape.com> |
22 |
* Stuart Parmenter <pavlov@netscape.com> |
23 |
* Brendan Eich <brendan@mozilla.org> |
23 |
* Brendan Eich <brendan@mozilla.org> |
24 |
* |
24 |
* Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> |
25 |
*/ |
25 |
*/ |
26 |
|
26 |
|
27 |
/* This code is for MIPS using the O32 ABI. */ |
27 |
/* This code is for MIPS using the O32 ABI. */ |
Lines 37-46
Link Here
|
37 |
// Count a word for a0 even though it's never stored or loaded |
37 |
// Count a word for a0 even though it's never stored or loaded |
38 |
// We do this only for alignment of register pairs. |
38 |
// We do this only for alignment of register pairs. |
39 |
PRUint32 result = 1; |
39 |
PRUint32 result = 1; |
40 |
for (PRUint32 i = 0; i < paramCount; i++, s++) |
40 |
for (PRUint32 i = 0; i < paramCount; i++, result++, s++) |
41 |
{ |
41 |
{ |
42 |
result++; |
|
|
43 |
|
44 |
if (s->IsPtrData()) |
42 |
if (s->IsPtrData()) |
45 |
continue; |
43 |
continue; |
46 |
|
44 |
|
Lines 53-58
Link Here
|
53 |
result++; |
51 |
result++; |
54 |
result++; |
52 |
result++; |
55 |
break; |
53 |
break; |
|
|
54 |
|
55 |
default: |
56 |
break; |
56 |
} |
57 |
} |
57 |
} |
58 |
} |
58 |
return (result + 1) & ~(PRUint32)1; |
59 |
return (result + 1) & ~(PRUint32)1; |
Lines 73-80
Link Here
|
73 |
continue; |
74 |
continue; |
74 |
} |
75 |
} |
75 |
|
76 |
|
76 |
*((void**)d) = s->val.p; |
|
|
77 |
|
78 |
switch(s->type) |
77 |
switch(s->type) |
79 |
{ |
78 |
{ |
80 |
case nsXPTType::T_I64 : |
79 |
case nsXPTType::T_I64 : |
Lines 89-94
Link Here
|
89 |
if ((PRWord)d & 4) d++; |
88 |
if ((PRWord)d & 4) d++; |
90 |
*((double*) d) = s->val.d; d++; |
89 |
*((double*) d) = s->val.d; d++; |
91 |
break; |
90 |
break; |
|
|
91 |
default: |
92 |
*((void**)d) = s->val.p; |
93 |
break; |
92 |
} |
94 |
} |
93 |
} |
95 |
} |
94 |
} |
96 |
} |
Lines 103-107
Link Here
|
103 |
PRUint32 paramCount, nsXPTCVariant* params) |
105 |
PRUint32 paramCount, nsXPTCVariant* params) |
104 |
{ |
106 |
{ |
105 |
return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params); |
107 |
return _XPTC_InvokeByIndex(that, methodIndex, paramCount, params); |
106 |
} |
108 |
} |
107 |
|
|
|
108 |
-- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp |
109 |
++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp |
Lines 20-25
Link Here
|
20 |
* the Initial Developer. All Rights Reserved. |
20 |
* the Initial Developer. All Rights Reserved. |
21 |
* |
21 |
* |
22 |
* Contributor(s): |
22 |
* Contributor(s): |
|
|
23 |
* Glen Nakamura <glen@imodulo.com> |
23 |
* |
24 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
Lines 37-44
Link Here
|
37 |
|
38 |
|
38 |
/* Platform specific code to invoke XPCOM methods on native objects */ |
39 |
/* Platform specific code to invoke XPCOM methods on native objects */ |
39 |
|
40 |
|
40 |
/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ |
|
|
41 |
|
42 |
#include "xptcprivate.h" |
41 |
#include "xptcprivate.h" |
43 |
|
42 |
|
44 |
/* Prototype specifies unmangled function name and disables unused warning */ |
43 |
/* Prototype specifies unmangled function name and disables unused warning */ |
Lines 163-169
Link Here
|
163 |
"bis $16,$16,$1\n\t" /* load "this" */ |
162 |
"bis $16,$16,$1\n\t" /* load "this" */ |
164 |
"ldq $2,16($15)\n\t" /* load "methodIndex" */ |
163 |
"ldq $2,16($15)\n\t" /* load "methodIndex" */ |
165 |
"ldq $1,0($1)\n\t" /* load vtable */ |
164 |
"ldq $1,0($1)\n\t" /* load vtable */ |
|
|
165 |
#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ |
166 |
"s8addq $2,$31,$2\n\t" /* vtable index = "methodIndex" * 8 */ |
167 |
#else /* not G++ V3 ABI */ |
166 |
"s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */ |
168 |
"s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */ |
|
|
169 |
#endif /* G++ V3 ABI */ |
167 |
"addq $1,$2,$1\n\t" |
170 |
"addq $1,$2,$1\n\t" |
168 |
"ldq $27,0($1)\n\t" /* load address of function */ |
171 |
"ldq $27,0($1)\n\t" /* load address of function */ |
169 |
"jsr $26,($27),0\n\t" /* call virtual function */ |
172 |
"jsr $26,($27),0\n\t" /* call virtual function */ |
Lines 176-179
Link Here
|
176 |
"ret $31,($26),1\n\t" |
179 |
"ret $31,($26),1\n\t" |
177 |
".end XPTC_InvokeByIndex" |
180 |
".end XPTC_InvokeByIndex" |
178 |
); |
181 |
); |
179 |
|
182 |
++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp |
180 |
-- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp |
|
|
Lines 20-25
Link Here
|
20 |
* the Initial Developer. All Rights Reserved. |
20 |
* the Initial Developer. All Rights Reserved. |
21 |
* |
21 |
* |
22 |
* Contributor(s): |
22 |
* Contributor(s): |
|
|
23 |
* Glen Nakamura <glen@imodulo.com> |
23 |
* |
24 |
* |
24 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* Alternatively, the contents of this file may be used under the terms of |
25 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
Lines 37-44
Link Here
|
37 |
|
38 |
|
38 |
/* Implement shared vtbl methods. */ |
39 |
/* Implement shared vtbl methods. */ |
39 |
|
40 |
|
40 |
/* contributed by Glen Nakamura <glen.nakamura@usa.net> */ |
|
|
41 |
|
42 |
#include "xptcprivate.h" |
41 |
#include "xptcprivate.h" |
43 |
|
42 |
|
44 |
/* Prototype specifies unmangled function name and disables unused warning */ |
43 |
/* Prototype specifies unmangled function name and disables unused warning */ |
Lines 188-210
Link Here
|
188 |
* nsresult nsXPTCStubBase::Stub##n() |
187 |
* nsresult nsXPTCStubBase::Stub##n() |
189 |
* Sets register $1 to "methodIndex" and jumps to SharedStub. |
188 |
* Sets register $1 to "methodIndex" and jumps to SharedStub. |
190 |
*/ |
189 |
*/ |
|
|
190 |
#define STUB_MANGLED_ENTRY(n, symbol) \ |
191 |
"#### Stub"#n" ####" "\n\t" \ |
192 |
".text" "\n\t" \ |
193 |
".align 5" "\n\t" \ |
194 |
".globl " symbol "\n\t" \ |
195 |
".ent " symbol "\n" \ |
196 |
symbol ":" "\n\t" \ |
197 |
".frame $30,0,$26,0" "\n\t" \ |
198 |
"ldgp $29,0($27)" "\n" \ |
199 |
"$" symbol "..ng:" "\n\t" \ |
200 |
".prologue 1" "\n\t" \ |
201 |
"lda $1,"#n "\n\t" \ |
202 |
"br $31,$SharedStub..ng" "\n\t" \ |
203 |
".end " symbol |
204 |
|
205 |
#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ |
206 |
|
207 |
#define STUB_ENTRY(n) \ |
208 |
__asm__( \ |
209 |
".if "#n" < 10" "\n\t" \ |
210 |
STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase5Stub"#n"Ev") "\n\t" \ |
211 |
".elseif "#n" < 100" "\n\t" \ |
212 |
STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase6Stub"#n"Ev") "\n\t" \ |
213 |
".elseif "#n" < 1000" "\n\t" \ |
214 |
STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase7Stub"#n"Ev") "\n\t" \ |
215 |
".else" "\n\t" \ |
216 |
".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \ |
217 |
".endif" \ |
218 |
); |
219 |
|
220 |
#else /* not G++ V3 ABI */ |
221 |
|
191 |
#define STUB_ENTRY(n) \ |
222 |
#define STUB_ENTRY(n) \ |
192 |
__asm__( \ |
223 |
__asm__( \ |
193 |
"#### Stub"#n" ####\n" \ |
224 |
STUB_MANGLED_ENTRY(n, "Stub"#n"__14nsXPTCStubBase") \ |
194 |
".text\n\t" \ |
|
|
195 |
".align 5\n\t" \ |
196 |
".globl Stub"#n"__14nsXPTCStubBase\n\t" \ |
197 |
".ent Stub"#n"__14nsXPTCStubBase\n" \ |
198 |
"Stub"#n"__14nsXPTCStubBase:\n\t" \ |
199 |
".frame $30,0,$26,0\n\t" \ |
200 |
"ldgp $29,0($27)\n" \ |
201 |
"$Stub"#n"__14nsXPTCStubBase..ng:\n\t" \ |
202 |
".prologue 1\n\t" \ |
203 |
"lda $1,"#n"\n\t" \ |
204 |
"br $31,$SharedStub..ng\n\t" \ |
205 |
".end Stub"#n"__14nsXPTCStubBase" \ |
206 |
); |
225 |
); |
207 |
|
226 |
|
|
|
227 |
#endif /* G++ V3 ABI */ |
228 |
|
208 |
#define SENTINEL_ENTRY(n) \ |
229 |
#define SENTINEL_ENTRY(n) \ |
209 |
nsresult nsXPTCStubBase::Sentinel##n() \ |
230 |
nsresult nsXPTCStubBase::Sentinel##n() \ |
210 |
{ \ |
231 |
{ \ |
Lines 213-216
Link Here
|
213 |
} |
234 |
} |
214 |
|
235 |
|
215 |
#include "xptcstubsdef.inc" |
236 |
#include "xptcstubsdef.inc" |
216 |
|
237 |
++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s |
217 |
-- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s |
|
|
Line 0
Link Here
|
0 |
-- xpcom/reflect/xptcall/src/md/unix/Makefile.in |
1 |
/* -*- Mode: asm; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- |
|
|
2 |
* Version: MPL 1.1 |
3 |
* |
4 |
* The contents of this file are subject to the Mozilla Public License Version |
5 |
* 1.1 (the "License"); you may not use this file except in compliance with |
6 |
* the License. You may obtain a copy of the License at |
7 |
* http://www.mozilla.org/MPL/ |
8 |
* |
9 |
* Software distributed under the License is distributed on an "AS IS" basis, |
10 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
11 |
* for the specific language governing rights and limitations under the |
12 |
* License. |
13 |
* |
14 |
* The Original Code is mozilla.org code. |
15 |
* |
16 |
* The Initial Developer of the Original Code is |
17 |
* Netscape Communications Corp, Inc. |
18 |
* Portions created by the Initial Developer are Copyright (C) 2001 |
19 |
* the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* Stuart Parmenter <pavlov@netscape.com> |
23 |
* Chris Waterson <waterson@netscape.com> |
24 |
* Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> |
25 |
*/ |
26 |
|
27 |
/* This code is for MIPS using the O32 ABI. */ |
28 |
|
29 |
#include <sys/regdef.h> |
30 |
#include <sys/asm.h> |
31 |
|
32 |
# NARGSAVE is the argument space in the callers frame, including extra |
33 |
# 'shadowed' space for the argument registers. The minimum of 4 |
34 |
# argument slots is sometimes predefined in the header files. |
35 |
#ifndef NARGSAVE |
36 |
#define NARGSAVE 4 |
37 |
#endif |
38 |
|
39 |
#define LOCALSZ 2 /* gp, ra */ |
40 |
#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK) |
41 |
|
42 |
#define RAOFF (FRAMESZ - (1*SZREG)) |
43 |
#define GPOFF (FRAMESZ - (2*SZREG)) |
44 |
|
45 |
#define A0OFF (FRAMESZ + (0*SZREG)) |
46 |
#define A1OFF (FRAMESZ + (1*SZREG)) |
47 |
#define A2OFF (FRAMESZ + (2*SZREG)) |
48 |
#define A3OFF (FRAMESZ + (3*SZREG)) |
49 |
|
50 |
.text |
51 |
|
52 |
#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ |
53 |
#define STUB_ENTRY(x) \ |
54 |
.if x < 10; \ |
55 |
.globl _ZN14nsXPTCStubBase5Stub ##x ##Ev; \ |
56 |
.type _ZN14nsXPTCStubBase5Stub ##x ##Ev,@function; \ |
57 |
.aent _ZN14nsXPTCStubBase5Stub ##x ##Ev,0; \ |
58 |
_ZN14nsXPTCStubBase5Stub ##x ##Ev:; \ |
59 |
SETUP_GP; \ |
60 |
li t0,x; \ |
61 |
b sharedstub; \ |
62 |
.elseif x < 100; \ |
63 |
.globl _ZN14nsXPTCStubBase6Stub ##x ##Ev; \ |
64 |
.type _ZN14nsXPTCStubBase6Stub ##x ##Ev,@function; \ |
65 |
.aent _ZN14nsXPTCStubBase6Stub ##x ##Ev,0; \ |
66 |
_ZN14nsXPTCStubBase6Stub ##x ##Ev:; \ |
67 |
SETUP_GP; \ |
68 |
li t0,x; \ |
69 |
b sharedstub; \ |
70 |
.elseif x < 1000; \ |
71 |
.globl _ZN14nsXPTCStubBase7Stub ##x ##Ev; \ |
72 |
.type _ZN14nsXPTCStubBase7Stub ##x ##Ev,@function; \ |
73 |
.aent _ZN14nsXPTCStubBase7Stub ##x ##Ev,0; \ |
74 |
_ZN14nsXPTCStubBase7Stub ##x ##Ev:; \ |
75 |
SETUP_GP; \ |
76 |
li t0,x; \ |
77 |
b sharedstub; \ |
78 |
.else; \ |
79 |
.err; \ |
80 |
.endif |
81 |
#else /* not G++ V3 ABI */ |
82 |
#define STUB_ENTRY(x) \ |
83 |
.globl Stub ##x ##__14nsXPTCStubBase; \ |
84 |
.type Stub ##x ##__14nsXPTCStubBase,@function; \ |
85 |
.aent Stub ##x ##__14nsXPTCStubBase,0; \ |
86 |
Stub ##x ##__14nsXPTCStubBase:; \ |
87 |
SETUP_GP; \ |
88 |
li t0,x; \ |
89 |
b sharedstub |
90 |
#endif /* G++ V3 ABI */ |
91 |
|
92 |
# SENTINEL_ENTRY is handled in the cpp file. |
93 |
#define SENTINEL_ENTRY(x) |
94 |
|
95 |
# |
96 |
# open a dummy frame for the function entries |
97 |
# |
98 |
.align 2 |
99 |
.type dummy,@function |
100 |
.ent dummy, 0 |
101 |
.frame sp, FRAMESZ, ra |
102 |
dummy: |
103 |
SETUP_GP |
104 |
|
105 |
#include "xptcstubsdef.inc" |
106 |
|
107 |
sharedstub: |
108 |
subu sp, FRAMESZ |
109 |
|
110 |
# specify the save register mask for gp, ra, a0-a3 |
111 |
.mask 0x900000F0, RAOFF-FRAMESZ |
112 |
|
113 |
sw ra, RAOFF(sp) |
114 |
SAVE_GP(GPOFF) |
115 |
|
116 |
# Micro-optimization: a0 is already loaded, and its slot gets |
117 |
# ignored by PrepareAndDispatch, so no need to save it here. |
118 |
# sw a0, A0OFF(sp) |
119 |
sw a1, A1OFF(sp) |
120 |
sw a2, A2OFF(sp) |
121 |
sw a3, A3OFF(sp) |
122 |
|
123 |
la t9, PrepareAndDispatch |
124 |
|
125 |
# t0 is methodIndex |
126 |
move a1, t0 |
127 |
# have a2 point to the begin of the argument space on stack |
128 |
addiu a2, sp, FRAMESZ |
129 |
|
130 |
# PrepareAndDispatch(that, methodIndex, args) |
131 |
jalr t9 |
132 |
|
133 |
# Micro-optimization: Using jalr explicitly has the side-effect |
134 |
# of not triggering .cprestore. This is ok because we have no |
135 |
# gp reference below this point. It also allows better |
136 |
# instruction sscheduling. |
137 |
# lw gp, GPOFF(fp) |
138 |
|
139 |
lw ra, RAOFF(sp) |
140 |
addiu sp, FRAMESZ |
141 |
j ra |
142 |
END(dummy) |
|
|
143 |
++ xpcom/reflect/xptcall/src/md/unix/Makefile.in |
Lines 210-220
Link Here
|
210 |
ifneq (,$(findstring mips, $(OS_TEST))) |
210 |
ifneq (,$(findstring mips, $(OS_TEST))) |
211 |
CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp |
211 |
CPPSRCS := xptcinvoke_mips.cpp xptcstubs_mips.cpp |
212 |
ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s |
212 |
ASFILES := xptcinvoke_asm_mips.s xptcstubs_asm_mips.s |
213 |
#xptcstubs_mips.cpp |
213 |
AS := $(CC) $(CFLAGS) $(INCLUDES) -c -x assembler-with-cpp |
214 |
# xptcstubs_asm_mips.s |
|
|
215 |
ifdef GNU_CC |
216 |
ASFLAGS += $(INCLUDES) -x assembler-with-cpp -D__GNUC__ |
217 |
endif |
218 |
endif |
214 |
endif |
219 |
endif |
215 |
endif |
220 |
|
216 |
|
Lines 359-368
Link Here
|
359 |
|
355 |
|
360 |
ifeq ($(OS_ARCH),Linux) |
356 |
ifeq ($(OS_ARCH),Linux) |
361 |
ifneq (,$(findstring mips, $(OS_TEST))) |
357 |
ifneq (,$(findstring mips, $(OS_TEST))) |
362 |
xptcstubs_asm_mips.o: xptcstubs_asm_mips.s.m4 $(PUBLIC)/xptcstubsdef.inc |
358 |
xptcstubs_asm_mips.o: xptcstubs_asm_mips.s $(PUBLIC)/xptcstubsdef.inc |
363 |
m4 $(INCLUDES) $< > ./xptcstubs_asm_mips.s && \ |
359 |
$(AS) -o $@ $< |
364 |
$(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) ./xptcstubs_asm_mips.s |
|
|
365 |
$(RM) -f ./xptcstubs_asm_mips.s |
366 |
endif |
360 |
endif |
367 |
endif |
361 |
endif |
368 |
|
362 |
|
369 |
-- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s |
363 |
++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s |
Lines 21-26
Link Here
|
21 |
* Contributor(s): |
21 |
* Contributor(s): |
22 |
* Brendan Eich <brendan@mozilla.org> |
22 |
* Brendan Eich <brendan@mozilla.org> |
23 |
* Stuart Parmenter <pavlov@netscape.com> |
23 |
* Stuart Parmenter <pavlov@netscape.com> |
|
|
24 |
* Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> |
24 |
*/ |
25 |
*/ |
25 |
|
26 |
|
26 |
/* This code is for MIPS using the O32 ABI. */ |
27 |
/* This code is for MIPS using the O32 ABI. */ |
Lines 28-166
Link Here
|
28 |
#include <sys/regdef.h> |
29 |
#include <sys/regdef.h> |
29 |
#include <sys/asm.h> |
30 |
#include <sys/asm.h> |
30 |
|
31 |
|
31 |
.text |
32 |
# NARGSAVE is the argument space in the callers frame, including extra |
32 |
.globl invoke_count_words |
33 |
# 'shadowed' space for the argument registers. The minimum of 4 |
33 |
.globl invoke_copy_to_stack |
34 |
# argument slots is sometimes predefined in the header files. |
34 |
|
35 |
#ifndef NARGSAVE |
35 |
# We need a variable number of words allocated from the stack for copies of |
36 |
#define NARGSAVE 4 |
36 |
# the params, and this space must come between the high frame (where ra, gp, |
37 |
#endif |
37 |
# and s0 are saved) and the low frame (where a0-a3 are saved by the callee |
38 |
|
38 |
# functions we invoke). |
39 |
#define LOCALSZ 3 /* gp, fp, ra */ |
39 |
|
40 |
#define FRAMESZ ((((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK) |
40 |
LOCALSZ=4 # s0, s1, ra, gp |
41 |
|
41 |
NARGSAVE=4 # a0, a1, a2, a3 |
42 |
#define RAOFF (FRAMESZ - (1*SZREG)) |
42 |
HIFRAMESZ=(LOCALSZ*SZREG) |
43 |
#define FPOFF (FRAMESZ - (2*SZREG)) |
43 |
LOFRAMESZ=(NARGSAVE*SZREG) |
44 |
#define GPOFF (FRAMESZ - (3*SZREG)) |
44 |
FRAMESZ=(HIFRAMESZ+LOFRAMESZ+ALSZ)&ALMASK |
45 |
|
45 |
|
46 |
#define A0OFF (FRAMESZ + (0*SZREG)) |
46 |
# XXX these 2*SZREG, etc. are very magic -- we *know* that ALSZ&ALMASK cause |
47 |
#define A1OFF (FRAMESZ + (1*SZREG)) |
47 |
# FRAMESZ to be 0 mod 8, in this case to be 16 and not 12. |
48 |
#define A2OFF (FRAMESZ + (2*SZREG)) |
48 |
RAOFF=FRAMESZ - (2*SZREG) |
49 |
#define A3OFF (FRAMESZ + (3*SZREG)) |
49 |
GPOFF=FRAMESZ - (3*SZREG) |
50 |
|
50 |
S0OFF=FRAMESZ - (4*SZREG) |
51 |
.text |
51 |
S1OFF=FRAMESZ - (5*SZREG) |
52 |
|
52 |
|
53 |
# |
53 |
# These are not magic -- they are just our argsave slots in the caller frame. |
54 |
# _XPTC_InvokeByIndex(that, methodIndex, paramCount, params) |
54 |
A0OFF=FRAMESZ |
55 |
# a0 a1 a2 a3 |
55 |
A1OFF=FRAMESZ + (1*SZREG) |
56 |
|
56 |
A2OFF=FRAMESZ + (2*SZREG) |
57 |
.globl _XPTC_InvokeByIndex |
57 |
A3OFF=FRAMESZ + (3*SZREG) |
58 |
.align 2 |
58 |
|
59 |
.type _XPTC_InvokeByIndex,@function |
59 |
# |
60 |
.ent _XPTC_InvokeByIndex,0 |
60 |
# _XPTC_InvokeByIndex(that, methodIndex, paramCount, params) |
61 |
.frame fp, FRAMESZ, ra |
61 |
# a0 a1 a2 a3 |
62 |
_XPTC_InvokeByIndex: |
62 |
|
63 |
SETUP_GP |
63 |
NESTED(_XPTC_InvokeByIndex, FRAMESZ, ra) |
|
|
64 |
|
65 |
.set noreorder |
66 |
.cpload t9 |
67 |
.set reorder |
68 |
|
69 |
subu sp, FRAMESZ |
64 |
subu sp, FRAMESZ |
70 |
|
65 |
|
71 |
# specify the save register mask -- XXX do we want the a0-a3 here, given |
66 |
# specify the save register mask for gp, fp, ra, a3 - a0 |
72 |
# our "split" frame where the args are saved below a dynamicly allocated |
67 |
.mask 0xD00000F0, RAOFF-FRAMESZ |
73 |
# region under the high frame? |
|
|
74 |
# |
75 |
# 10010000000000010000000011110000 |
76 |
.mask 0x900100F0, -((NARGSAVE+LOCALSZ)*SZREG) |
77 |
|
78 |
# thou shalt not use .cprestore if yer frame has variable size... |
79 |
# .cprestore GPOFF |
80 |
|
81 |
REG_S ra, RAOFF(sp) |
82 |
|
83 |
# this happens automatically with .cprestore, but we cannot use that op... |
84 |
REG_S gp, GPOFF(sp) |
85 |
REG_S s0, S0OFF(sp) |
86 |
REG_S s1, S1OFF(sp) |
87 |
|
88 |
REG_S a0, A0OFF(sp) |
89 |
REG_S a1, A1OFF(sp) |
90 |
REG_S a2, A2OFF(sp) |
91 |
REG_S a3, A3OFF(sp) |
92 |
|
68 |
|
93 |
# invoke_count_words(paramCount, params) |
69 |
sw ra, RAOFF(sp) |
94 |
move a0, a2 |
70 |
sw fp, FPOFF(sp) |
95 |
move a1, a3 |
|
|
96 |
|
71 |
|
97 |
jal invoke_count_words |
72 |
# we can't use .cprestore in a variable stack frame |
98 |
lw gp, GPOFF(sp) |
73 |
sw gp, GPOFF(sp) |
99 |
|
74 |
|
100 |
# save the old sp so we can pop the param area and any "low frame" |
75 |
sw a0, A0OFF(sp) |
101 |
# needed as an argsave area below the param block for callees that |
76 |
sw a1, A1OFF(sp) |
102 |
# we invoke. |
77 |
sw a2, A2OFF(sp) |
103 |
move s0, sp |
78 |
sw a3, A3OFF(sp) |
104 |
|
79 |
|
105 |
REG_L a1, A2OFF(sp) # a1 = paramCount |
80 |
# save bottom of fixed frame |
106 |
REG_L a2, A3OFF(sp) # a2 = params |
81 |
move fp, sp |
107 |
|
82 |
|
108 |
# we define a word as 4 bytes, period end of story! |
83 |
# extern "C" uint32 |
109 |
sll v0, 2 # 4 bytes * result of invoke_copy_words |
84 |
# invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s); |
110 |
subu v0, LOFRAMESZ # but we take back the argsave area built into |
85 |
la t9, invoke_count_words |
111 |
# our stack frame -- SWEET! |
86 |
move a0, a2 |
112 |
subu sp, sp, v0 # make room |
87 |
move a1, a3 |
113 |
move a0, sp # a0 = param stack address |
88 |
jalr t9 |
114 |
move s1, a0 # save it for later -- it should be safe here |
89 |
lw gp, GPOFF(fp) |
115 |
|
|
|
116 |
# the old sp is still saved in s0, but we now need another argsave |
117 |
# area ("low frame") for the invoke_copy_to_stack call. |
118 |
subu sp, sp, LOFRAMESZ |
119 |
|
90 |
|
120 |
# copy the param into the stack areas |
91 |
# allocate variable stack, with a size of: |
|
|
92 |
# wordsize (of 4 bytes) * result (already aligned to dword) |
93 |
# but a minimum of 16 byte |
94 |
sll v0, 2 |
95 |
slt t0, v0, 16 |
96 |
beqz t0, 1f |
97 |
li v0, 16 |
98 |
1: subu sp, v0 |
99 |
|
100 |
# let a0 point to the bottom of the variable stack, allocate |
101 |
# another fixed stack for: |
102 |
# extern "C" void |
121 |
# invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, |
103 |
# invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, |
122 |
# nsXPTCVariant* s) |
104 |
# nsXPTCVariant* s); |
123 |
jal invoke_copy_to_stack |
105 |
la t9, invoke_copy_to_stack |
124 |
lw gp, GPOFF(s0) |
106 |
move a0, sp |
125 |
|
107 |
lw a1, A2OFF(fp) |
126 |
move sp, s0 # get orig sp back, popping params and argsave |
108 |
lw a2, A3OFF(fp) |
127 |
|
109 |
subu sp, 16 |
128 |
REG_L a0, A0OFF(sp) # a0 = set "that" to be "this" |
110 |
jalr t9 |
129 |
REG_L a1, A1OFF(sp) # a1 = methodIndex |
111 |
lw gp, GPOFF(fp) |
130 |
|
112 |
|
131 |
# t1 = methodIndex * 4 |
113 |
# back to the variable stack frame |
132 |
# (use shift instead of mult) |
114 |
addu sp, 16 |
133 |
sll t1, a1, 2 |
115 |
|
134 |
|
116 |
# calculate the function we need to jump to, which must then be |
135 |
# calculate the function we need to jump to, |
117 |
# stored in t9 |
136 |
# which must then be saved in t9 |
118 |
lw a0, A0OFF(fp) # a0 = set "that" to be "this" |
|
|
119 |
lw t0, A1OFF(fp) # a1 = methodIndex |
137 |
lw t9, 0(a0) |
120 |
lw t9, 0(a0) |
138 |
addu t9, t9, t1 |
121 |
# t0 = methodIndex << PTRLOG |
139 |
lw t9, 8(t9) |
122 |
sll t0, t0, PTRLOG |
140 |
|
123 |
addu t9, t0 |
141 |
# a1..a3 and f13..f14 should now be set to what |
124 |
#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */ |
142 |
# invoke_copy_to_stack told us. skip a0 and f12 |
125 |
lw t9, (t9) |
143 |
# because that is the "this" pointer |
126 |
#else /* not G++ V3 ABI */ |
144 |
|
127 |
lw t9, 2*PTRSIZE(t9) |
145 |
REG_L a1, 1*SZREG(s1) |
128 |
#endif /* G++ V3 ABI */ |
146 |
REG_L a2, 2*SZREG(s1) |
129 |
|
147 |
REG_L a3, 3*SZREG(s1) |
130 |
# Set a1-a3 to what invoke_copy_to_stack told us. a0 is already |
148 |
|
131 |
# the "this" pointer. We don't have to care about floating |
149 |
l.d $f13, 8(s1) |
132 |
# point arguments, the non-FP "this" pointer as first argument |
150 |
l.d $f14, 16(s1) |
133 |
# means they'll never be used. |
151 |
|
134 |
lw a1, 1*SZREG(sp) |
152 |
# Create the stack pointer for the function, which must have 4 words |
135 |
lw a2, 2*SZREG(sp) |
153 |
# of space for callee-saved args. invoke_count_words allocated space |
136 |
lw a3, 3*SZREG(sp) |
154 |
# for a0 starting at s1, so we just move s1 into sp. |
137 |
|
155 |
move sp, s1 |
138 |
jalr t9 |
|
|
139 |
# Micro-optimization: There's no gp usage below this point, so |
140 |
# we don't reload. |
141 |
# lw gp, GPOFF(fp) |
156 |
|
142 |
|
157 |
jalr ra, t9 |
143 |
# leave variable stack frame |
158 |
lw gp, GPOFF(s0) |
144 |
move sp, fp |
159 |
|
145 |
|
160 |
move sp, s0 |
146 |
lw ra, RAOFF(sp) |
|
|
147 |
lw fp, FPOFF(sp) |
161 |
|
148 |
|
162 |
REG_L ra, RAOFF(sp) |
149 |
addiu sp, FRAMESZ |
163 |
REG_L s0, S0OFF(sp) |
|
|
164 |
addu sp, FRAMESZ |
165 |
j ra |
150 |
j ra |
166 |
.end _XPTC_InvokeByIndex |
151 |
END(_XPTC_InvokeByIndex) |
167 |
-- xpcom/xpcom-private.h |
152 |
++ xpcom/xpcom-private.h |
Line 0
Link Here
|
0 |
-- xpcom/xpcom-config.h |
1 |
/* xpcom/xpcom-private.h. Generated automatically by configure. */ |
|
|
2 |
/* The following defines are only used by the xpcom implementation */ |
3 |
|
4 |
#ifndef _XPCOM_PRIVATE_H_ |
5 |
#define _XPCOM_PRIVATE_H_ |
6 |
|
7 |
/* Define to build the static component loader */ |
8 |
#define ENABLE_STATIC_COMPONENT_LOADER 1 |
9 |
|
10 |
/* Define if getpagesize() is available */ |
11 |
#define HAVE_GETPAGESIZE 1 |
12 |
|
13 |
/* Define if iconv() is available */ |
14 |
#define HAVE_ICONV 1 |
15 |
|
16 |
/* Define if iconv() supports const input */ |
17 |
/* #undef HAVE_ICONV_WITH_CONST_INPUT */ |
18 |
|
19 |
/* Define if mbrtowc() is available */ |
20 |
#define HAVE_MBRTOWC 1 |
21 |
|
22 |
/* Define if <sys/mount.h> is present */ |
23 |
#define HAVE_SYS_MOUNT_H 1 |
24 |
|
25 |
/* Define if <sys/vfs.h> is present */ |
26 |
#define HAVE_SYS_VFS_H 1 |
27 |
|
28 |
/* Define if wcrtomb() is available */ |
29 |
#define HAVE_WCRTOMB 1 |
30 |
|
31 |
#endif /* _XPCOM_PRIVATE_H_ */ |
32 |
|
|
|
33 |
++ xpcom/xpcom-config.h |
Line 0
Link Here
|
0 |
-- xpinstall/packager/unix/browser.jst |
1 |
/* xpcom/xpcom-config.h. Generated automatically by configure. */ |
|
|
2 |
/* Global defines needed by xpcom clients */ |
3 |
|
4 |
#ifndef _XPCOM_CONFIG_H_ |
5 |
#define _XPCOM_CONFIG_H_ |
6 |
|
7 |
/* Define this to throw() if the compiler complains about |
8 |
* constructors returning NULL |
9 |
*/ |
10 |
#define CPP_THROW_NEW throw() |
11 |
|
12 |
/* Define if the c++ compiler supports a 2-byte wchar_t */ |
13 |
#define HAVE_CPP_2BYTE_WCHAR_T 1 |
14 |
|
15 |
/* Define if the c++ compiler supports changing access with |using| */ |
16 |
#define HAVE_CPP_ACCESS_CHANGING_USING 1 |
17 |
|
18 |
/* Define if the c++ compiler can resolve ambiguity with |using| */ |
19 |
#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1 |
20 |
|
21 |
/* Define if the c++ compiler has builtin Bool type */ |
22 |
/* #undef HAVE_CPP_BOOL */ |
23 |
|
24 |
/* Define if a dyanmic_cast to void* gives the most derived object */ |
25 |
#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1 |
26 |
|
27 |
/* Define if the c++ compiler supports the |explicit| keyword */ |
28 |
#define HAVE_CPP_EXPLICIT 1 |
29 |
|
30 |
/* Define if the c++ compiler supports the modern template |
31 |
* specialization syntax |
32 |
*/ |
33 |
#define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX 1 |
34 |
|
35 |
/* Define if the c++ compiler supports the |std| namespace */ |
36 |
#define HAVE_CPP_NAMESPACE_STD 1 |
37 |
|
38 |
/* Define if the c++ compiler supports reinterpret_cast */ |
39 |
#define HAVE_CPP_NEW_CASTS 1 |
40 |
|
41 |
/* Define if the c++ compiler supports partial template specialization */ |
42 |
#define HAVE_CPP_PARTIAL_SPECIALIZATION 1 |
43 |
|
44 |
/* Define if the c++ compiler has trouble comparing a constant |
45 |
* reference to a templatized class to zero |
46 |
*/ |
47 |
/* #undef HAVE_CPP_TROUBLE_COMPARING_TO_ZERO */ |
48 |
|
49 |
/* Define if the c++ compiler supports the |typename| keyword */ |
50 |
#define HAVE_CPP_TYPENAME 1 |
51 |
|
52 |
/* Define if the stanard template operator!=() is ambiguous */ |
53 |
#define HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL 1 |
54 |
|
55 |
/* Define if statvfs() is available */ |
56 |
#define HAVE_STATVFS 1 |
57 |
|
58 |
/* Define if the c++ compiler requires implementations of |
59 |
* unused virtual methods |
60 |
*/ |
61 |
#define NEED_CPP_UNUSED_IMPLEMENTATIONS 1 |
62 |
|
63 |
/* Define to either <new> or <new.h> */ |
64 |
#define NEW_H <new> |
65 |
|
66 |
#endif /* _XPCOM_CONFIG_H_ */ |
|
|
67 |
++ xpinstall/packager/unix/browser.jst |
Lines 77-111
Link Here
|
77 |
logComment("dirCreate() returned: " + ignoreErr); |
77 |
logComment("dirCreate() returned: " + ignoreErr); |
78 |
|
78 |
|
79 |
var cf = getFolder("Chrome"); |
79 |
var cf = getFolder("Chrome"); |
80 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-platform/"); |
|
|
81 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-platform/"); |
82 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-platform/"); |
83 |
|
84 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global-region/"); |
85 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator-region/"); |
86 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor-region/"); |
87 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator-region/"); |
88 |
|
89 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global/"); |
80 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"toolkit.jar"),"content/global/"); |
90 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/autoconfig/"); |
81 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/autoconfig/"); |
91 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/cookie/"); |
82 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/cookie/"); |
92 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/wallet/"); |
83 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/wallet/"); |
93 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"content-packs.jar"),"content/content-packs/"); |
84 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"content-packs.jar"),"content/content-packs/"); |
94 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator/"); |
85 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/communicator/"); |
95 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/editor/"); |
|
|
96 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator/"); |
86 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/navigator/"); |
97 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/necko/"); |
87 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/necko/"); |
98 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/mozldap/"); |
88 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/mozldap/"); |
99 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/communicator/"); |
89 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/communicator/"); |
100 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/editor/"); |
|
|
101 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/global/"); |
90 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/global/"); |
102 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/messenger/"); |
|
|
103 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/navigator/"); |
91 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"classic.jar"),"skin/classic/navigator/"); |
104 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/communicator/"); |
|
|
105 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/editor/"); |
106 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/global/"); |
107 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/messenger/"); |
108 |
registerChrome(SKIN | DELAYED_CHROME, getFolder(cf,"modern.jar"),"skin/modern/navigator/"); |
109 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"help.jar"),"content/help/"); |
92 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"help.jar"),"content/help/"); |
110 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/xbl-marquee/"); |
93 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/xbl-marquee/"); |
111 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/p3p/"); |
94 |
registerChrome(CONTENT | DELAYED_CHROME, getFolder(cf,"comm.jar"),"content/p3p/"); |
112 |
-- content/events/src/nsEventStateManager.cpp |
95 |
++ content/events/src/nsEventStateManager.cpp |
Lines 22-27
Link Here
|
22 |
* Contributor(s): |
22 |
* Contributor(s): |
23 |
* Makoto Kato <m_kato@ga2.so-net.ne.jp> |
23 |
* Makoto Kato <m_kato@ga2.so-net.ne.jp> |
24 |
* Dean Tessman <dean_tessman@hotmail.com> |
24 |
* Dean Tessman <dean_tessman@hotmail.com> |
|
|
25 |
* Andrew Wellington <proton@wiretapped.net> |
26 |
* Graham Dennis <u3952328@anu.edu.au> |
27 |
* Thomas Kleffel <thomas.kleffel@maintech.de> |
25 |
* |
28 |
* |
26 |
* Alternatively, the contents of this file may be used under the terms of |
29 |
* Alternatively, the contents of this file may be used under the terms of |
27 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
30 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
Lines 1981-1986
Link Here
|
1981 |
} |
1984 |
} |
1982 |
} |
1985 |
} |
1983 |
break; |
1986 |
break; |
|
|
1987 |
case NS_USER_DEFINED_EVENT: // In reality an extended mouse event |
1988 |
{ |
1989 |
nsExtendedMouseEventStatus *eMEStatus; |
1990 |
nsMouseEvent *mEvent = (nsMouseEvent* )aEvent; |
1991 |
eMEStatus = (nsExtendedMouseEventStatus *)&mEvent->clickCount; |
1992 |
nsresult rv; |
1993 |
char ourbutton=0; |
1994 |
char *string, *suffix, *straction, *strnumlines; |
1995 |
PRInt32 action; |
1996 |
PRInt32 numLines; |
1997 |
|
1998 |
rv = getPrefBranch(); |
1999 |
if (NS_FAILED(rv)) return rv; |
2000 |
|
2001 |
// adding 2 below so the maximum number of mouse buttons we can |
2002 |
// support is 99 but to represent the buttons in buttonlist |
2003 |
// we're going to map 10->35 onto 'a'->'z' |
2004 |
// the storage actually supports 256 |
2005 |
if(eMEStatus->button > 35) break; |
2006 |
if(eMEStatus->button > 9) |
2007 |
ourbutton = 'a' + eMEStatus->button -9; |
2008 |
else |
2009 |
ourbutton = '0' + eMEStatus->button; |
2010 |
mPrefBranch->GetCharPref("mousebuttonsextended.buttonlist", &string); |
2011 |
if(!string) break; |
2012 |
if(!strchr(string, ourbutton)) { |
2013 |
free(string); |
2014 |
break; |
2015 |
} |
2016 |
free(string); |
2017 |
switch(eMEStatus->event) |
2018 |
{ |
2019 |
case nsExtendedMouseEventStatus_up: |
2020 |
suffix=strdup(".up"); |
2021 |
break; |
2022 |
|
2023 |
case nsExtendedMouseEventStatus_down: |
2024 |
suffix=strdup(".down"); |
2025 |
break; |
2026 |
default: |
2027 |
return NS_OK; |
2028 |
} |
2029 |
straction= (char *)memset(malloc(100), 0, 100); |
2030 |
strnumlines=(char *)memset(malloc(100), 0, 100); |
2031 |
|
2032 |
strcpy(straction, "mousebuttonsextended.buttons.X.action"); |
2033 |
strcpy(strnumlines, "mousebuttonsextended.buttons.X.numlines"); |
2034 |
strcpy(straction+strlen(straction), suffix); |
2035 |
strcpy(strnumlines+strlen(strnumlines), suffix); |
2036 |
|
2037 |
string = strchr(straction, 'X'); *string = ourbutton; |
2038 |
string = strchr(strnumlines, 'X'); *string = ourbutton; |
2039 |
|
2040 |
mPrefBranch->GetIntPref(straction, &action); |
2041 |
mPrefBranch->GetIntPref(strnumlines, &numLines); |
2042 |
|
2043 |
switch (action) { |
2044 |
|
2045 |
#if 0 // Because we would have to create a msEvent |
2046 |
case MOUSE_SCROLL_N_LINES: |
2047 |
case MOUSE_SCROLL_PAGE: |
2048 |
{ |
2049 |
DoWheelScroll(aPresContext, aTargetFrame, msEvent, numLines, |
2050 |
(msEvent->scrollFlags & nsMouseScrollEvent::kIsHorizontal), |
2051 |
(action == MOUSE_SCROLL_PAGE), PR_FALSE); |
2052 |
|
2053 |
} |
2054 |
break; |
2055 |
#endif |
2056 |
case MOUSE_SCROLL_HISTORY: |
2057 |
{ |
2058 |
nsCOMPtr<nsISupports> pcContainer; |
2059 |
pcContainer = mPresContext->GetContainer(); |
2060 |
if (pcContainer) { |
2061 |
nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(pcContainer)); |
2062 |
if (webNav) { |
2063 |
if (numLines < 0) |
2064 |
webNav->GoBack(); |
2065 |
else |
2066 |
webNav->GoForward(); |
2067 |
} |
2068 |
} |
2069 |
} |
2070 |
break; |
2071 |
|
2072 |
case MOUSE_SCROLL_TEXTSIZE: |
2073 |
{ |
2074 |
// Exclude form controls and XUL content. |
2075 |
nsIContent* content = aTargetFrame->GetContent(); |
2076 |
if (content && |
2077 |
!content->IsContentOfType(nsIContent::eHTML_FORM_CONTROL) && |
2078 |
!content->IsContentOfType(nsIContent::eXUL)) |
2079 |
{ |
2080 |
ChangeTextSize((numLines > 0) ? 1 : -1); |
2081 |
} |
2082 |
} |
2083 |
break; |
2084 |
|
2085 |
default: // Including -1 (do nothing) |
2086 |
break; |
2087 |
} |
2088 |
} |
2089 |
break; |
1984 |
case NS_MOUSE_SCROLL: |
2090 |
case NS_MOUSE_SCROLL: |
1985 |
if (nsEventStatus_eConsumeNoDefault != *aStatus) { |
2091 |
if (nsEventStatus_eConsumeNoDefault != *aStatus) { |
1986 |
nsresult rv; |
2092 |
nsresult rv; |
1987 |
-- dom/src/base/nsJSEnvironment.cpp |
2093 |
++ dom/src/base/nsJSEnvironment.cpp |
Lines 459-465
Link Here
|
459 |
|
459 |
|
460 |
NS_NAMED_LITERAL_STRING(title, "Script warning"); |
460 |
NS_NAMED_LITERAL_STRING(title, "Script warning"); |
461 |
NS_NAMED_MULTILINE_LITERAL_STRING(msg, |
461 |
NS_NAMED_MULTILINE_LITERAL_STRING(msg, |
462 |
NS_L("A script on this page is causing mozilla to ") |
462 |
NS_L("A script on this page is causing Firefox to ") |
463 |
NS_L("run slowly. If it continues to run, your ") |
463 |
NS_L("run slowly. If it continues to run, your ") |
464 |
NS_L("computer may become unresponsive.\n\nDo you ") |
464 |
NS_L("computer may become unresponsive.\n\nDo you ") |
465 |
NS_L("want to abort the script?")); |
465 |
NS_L("want to abort the script?")); |
466 |
-- gfx/idl/Makefile.in |
466 |
++ gfx/idl/Makefile.in |
Lines 39-52
Link Here
|
39 |
nsIPrintOptions.idl \ |
39 |
nsIPrintOptions.idl \ |
40 |
nsIPrintSettings.idl \ |
40 |
nsIPrintSettings.idl \ |
41 |
nsIPrintSettingsService.idl \ |
41 |
nsIPrintSettingsService.idl \ |
42 |
nsIFontCatalogService.idl \ |
|
|
43 |
nsIFreeType2.idl \ |
44 |
nsIPrintSession.idl \ |
42 |
nsIPrintSession.idl \ |
45 |
gfxIFormats.idl \ |
43 |
gfxIFormats.idl \ |
46 |
gfxIImageFrame.idl \ |
44 |
gfxIImageFrame.idl \ |
47 |
gfxtypes.idl \ |
45 |
gfxtypes.idl \ |
48 |
$(NULL) |
46 |
$(NULL) |
49 |
|
47 |
|
|
|
48 |
ifdef MOZ_ENABLE_FREETYPE2 |
49 |
XPIDLSRCS += \ |
50 |
nsIFontCatalogService.idl \ |
51 |
nsIFreeType2.idl \ |
52 |
$(NULL) |
53 |
endif |
54 |
|
50 |
ifneq (,$(filter mac cocoa,$(MOZ_GFX_TOOLKIT))) |
55 |
ifneq (,$(filter mac cocoa,$(MOZ_GFX_TOOLKIT))) |
51 |
XPIDLSRCS += nsIPrintSettingsX.idl \ |
56 |
XPIDLSRCS += nsIPrintSettingsX.idl \ |
52 |
nsIPrintSessionX.idl \ |
57 |
nsIPrintSessionX.idl \ |
53 |
-- gfx/public/nsIRenderingContext.h |
58 |
++ gfx/public/nsIRenderingContext.h |
Lines 824-829
Link Here
|
824 |
NS_IMETHOD DrawTile(imgIContainer *aImage, |
824 |
NS_IMETHOD DrawTile(imgIContainer *aImage, |
825 |
nscoord aXImageStart, nscoord aYImageStart, |
825 |
nscoord aXImageStart, nscoord aYImageStart, |
826 |
const nsRect * aTargetRect) = 0; |
826 |
const nsRect * aTargetRect) = 0; |
|
|
827 |
|
828 |
/** |
829 |
* Get cluster details for a chunk of text. |
830 |
* |
831 |
* This will fill in the aClusterStarts array with information about |
832 |
* what characters are the start of clusters for display. |
833 |
* |
834 |
* @param aText Text on which to get details. |
835 |
* @param aLength Length of the text. |
836 |
* @param aClusterStarts Array of ints that will be populated |
837 |
* with information about which characters are the starts |
838 |
* of clusters. |
839 |
* |
840 |
*/ |
841 |
NS_IMETHOD GetClusterInfo(const PRUnichar *aText, |
842 |
PRUint32 aLength, |
843 |
PRUint32 *aClusterStarts) = 0; |
844 |
|
845 |
/** |
846 |
* Find the closest cursor position for a given x coordinate. |
847 |
* |
848 |
* This will find the closest byte index for a given x coordinate. |
849 |
* This takes into account grapheme clusters and bidi text. |
850 |
* |
851 |
* @param aText Text on which to operate. |
852 |
* @param aLength Length of the text. |
853 |
* @param aCoord The distance into the string to check. |
854 |
* @param aInx Index of character where the cursor falls - note that |
855 |
* this can be after the last character if the cursor happens to |
856 |
* the right of the last character in the text! |
857 |
* |
858 |
*/ |
859 |
NS_IMETHOD GetPosition(const PRUnichar *aText, |
860 |
PRUint32 aLength, |
861 |
nscoord aCoord, |
862 |
PRUint32 &aInx) = 0; |
863 |
|
864 |
/** |
865 |
* Get the width for the specific range of a given string. |
866 |
* |
867 |
* This function is similar to other GetWidth functions, except that |
868 |
* it gets the width for a part of the string instead of the entire |
869 |
* string. This is useful when you're interested in finding out the |
870 |
* length of a chunk in the middle of the string. Lots of languages |
871 |
* require you to include surrounding information to accurately |
872 |
* determine the length of a substring. |
873 |
* |
874 |
* @param aText Text on which to operate |
875 |
* @param aLength Length of the text |
876 |
* @param aStart Start index into the string |
877 |
* @param aEnd End index into the string (inclusive) |
878 |
* @param aWidth Returned with in app coordinates |
879 |
* |
880 |
*/ |
881 |
NS_IMETHOD GetRangeWidth(const PRUnichar *aText, |
882 |
PRUint32 aLength, |
883 |
PRUint32 aStart, |
884 |
PRUint32 aEnd, |
885 |
PRUint32 &aWidth) = 0; |
886 |
|
827 |
}; |
887 |
}; |
828 |
|
888 |
|
829 |
//modifiers for text rendering |
889 |
//modifiers for text rendering |
Lines 866-871
Link Here
|
866 |
*/ |
926 |
*/ |
867 |
#define NS_RENDERING_HINT_FAST_MEASURE 0x10 |
927 |
#define NS_RENDERING_HINT_FAST_MEASURE 0x10 |
868 |
|
928 |
|
|
|
929 |
/** |
930 |
* This bit, when set, indicates that the gfx supports describing |
931 |
* cluster information in a string |
932 |
*/ |
933 |
#define NS_RENDERING_HINT_TEXT_CLUSTERS 0x20 |
934 |
|
935 |
/** |
936 |
* This bit, when set, indicates that gfx renders runs with character or word |
937 |
* spacing in a single operation, not character by character |
938 |
*/ |
939 |
#define NS_RENDERING_HINT_SPACING_RUNS 0x40 |
940 |
|
869 |
//flags for copy CopyOffScreenBits |
941 |
//flags for copy CopyOffScreenBits |
870 |
|
942 |
|
871 |
//when performing the blit, use the region, if any, |
943 |
//when performing the blit, use the region, if any, |
872 |
-- gfx/src/gtk/Makefile.in |
944 |
++ gfx/src/gtk/Makefile.in |
Lines 66-78
Link Here
|
66 |
# Code shared between GTK+, Xlib and Xprint gfx modules |
66 |
# Code shared between GTK+, Xlib and Xprint gfx modules |
67 |
X11SHARED_LCPPSRCS = \ |
67 |
X11SHARED_LCPPSRCS = \ |
68 |
nsAntiAliasedGlyph.cpp \ |
68 |
nsAntiAliasedGlyph.cpp \ |
69 |
nsFontFreeType.cpp \ |
|
|
70 |
nsFT2FontNode.cpp \ |
71 |
nsFT2FontCatalog.cpp \ |
72 |
nsX11AlphaBlend.cpp \ |
69 |
nsX11AlphaBlend.cpp \ |
73 |
nsXFontAAScaledBitmap.cpp \ |
70 |
nsXFontAAScaledBitmap.cpp \ |
74 |
nsXFontNormal.cpp \ |
71 |
nsXFontNormal.cpp \ |
75 |
$(NULL) |
72 |
$(NULL) |
|
|
73 |
|
74 |
ifdef MOZ_ENABLE_FREETYPE2 |
75 |
X11SHARED_LCPPSRCS += \ |
76 |
nsFontFreeType.cpp \ |
77 |
nsFT2FontNode.cpp \ |
78 |
nsFT2FontCatalog.cpp \ |
79 |
$(NULL) |
80 |
endif |
76 |
|
81 |
|
77 |
CPPSRCS = \ |
82 |
CPPSRCS = \ |
78 |
nsDeviceContextGTK.cpp \ |
83 |
nsDeviceContextGTK.cpp \ |
Lines 102-107
Link Here
|
102 |
nsFontMetricsXft.cpp |
107 |
nsFontMetricsXft.cpp |
103 |
endif |
108 |
endif |
104 |
|
109 |
|
|
|
110 |
ifdef MOZ_ENABLE_PANGO |
111 |
CPPSRCS += \ |
112 |
nsFontMetricsPango.cpp \ |
113 |
mozilla-decoder.cpp |
114 |
endif |
115 |
|
105 |
ifdef MOZ_ENABLE_GTK |
116 |
ifdef MOZ_ENABLE_GTK |
106 |
CPPSRCS += \ |
117 |
CPPSRCS += \ |
107 |
nsRegionGTK.cpp \ |
118 |
nsRegionGTK.cpp \ |
Lines 155-164
Link Here
|
155 |
endif |
166 |
endif |
156 |
|
167 |
|
157 |
ifdef MOZ_ENABLE_XFT |
168 |
ifdef MOZ_ENABLE_XFT |
158 |
libs:: fontEncoding.properties |
169 |
libs:: fontEncoding.properties pangoFontEncoding.properties |
159 |
$(INSTALL) $^ $(DIST)/bin/res/fonts |
170 |
$(INSTALL) $^ $(DIST)/bin/res/fonts |
160 |
|
171 |
|
161 |
install:: fontEncoding.properties |
172 |
install:: fontEncoding.properties pangoFontEncoding.properties |
162 |
$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/res/fonts |
173 |
$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/res/fonts |
163 |
endif |
174 |
endif |
164 |
|
175 |
|
Lines 208-220
Link Here
|
208 |
-I$(srcdir)/. \ |
219 |
-I$(srcdir)/. \ |
209 |
-I$(srcdir)/.. \ |
220 |
-I$(srcdir)/.. \ |
210 |
-I$(srcdir)/../shared \ |
221 |
-I$(srcdir)/../shared \ |
211 |
-I$(srcdir)/../freetype \ |
|
|
212 |
-I$(srcdir)/../x11shared \ |
222 |
-I$(srcdir)/../x11shared \ |
213 |
$(MOZ_XFT_CFLAGS) \ |
223 |
$(MOZ_XFT_CFLAGS) \ |
214 |
$(NULL) |
224 |
$(NULL) |
215 |
|
225 |
|
216 |
ifdef MOZ_ENABLE_FREETYPE2 |
226 |
ifdef MOZ_ENABLE_FREETYPE2 |
217 |
INCLUDES += $(FT2_CFLAGS) |
227 |
INCLUDES += $(FT2_CFLAGS) |
|
|
228 |
LOCAL_INCLUDES += -I$(srcdir)/../freetype |
218 |
endif |
229 |
endif |
219 |
|
230 |
|
220 |
ifdef MOZ_ENABLE_XPRINT |
231 |
ifdef MOZ_ENABLE_XPRINT |
221 |
-- gfx/src/gtk/fontEncoding.properties |
232 |
++ gfx/src/gtk/fontEncoding.properties |
Lines 54-61
Link Here
|
54 |
# font, you do need them. |
54 |
# font, you do need them. |
55 |
|
55 |
|
56 |
# Symbol font |
56 |
# Symbol font |
57 |
#encoding.symbol.ttf = Adobe-Symbol-Encoding |
57 |
encoding.symbol.ttf = Adobe-Symbol-Encoding |
58 |
#encoding.symbol.ftcmap = mac_roman |
58 |
encoding.symbol.ftcmap = mac_roman |
59 |
|
59 |
|
60 |
# TeX's Computer Modern fonts (Roman, Math Italic, Symbol and Extension) |
60 |
# TeX's Computer Modern fonts (Roman, Math Italic, Symbol and Extension) |
61 |
|
61 |
|
62 |
-- gfx/src/gtk/gfxgtk.pkg |
62 |
++ gfx/src/gtk/gfxgtk.pkg |
Lines 7-9
Link Here
|
7 |
#if MOZ_ENABLE_XFT |
7 |
#if MOZ_ENABLE_XFT |
8 |
dist/bin/res/fonts/fontEncoding.properties |
8 |
dist/bin/res/fonts/fontEncoding.properties |
9 |
#endif |
9 |
#endif |
10 |
-- gfx/src/gtk/nsFontMetricsGTK.cpp |
10 |
#if MOZ_ENABLE_PANGO |
|
|
11 |
dist/bin/res/fonts/pangoFontEncoding.properties |
12 |
#endif |
|
|
13 |
++ gfx/src/gtk/nsFontMetricsGTK.cpp |
Lines 62-69
Link Here
|
62 |
#include "nsAString.h" |
62 |
#include "nsAString.h" |
63 |
#include "nsXPIDLString.h" |
63 |
#include "nsXPIDLString.h" |
64 |
#include "nsFontDebug.h" |
64 |
#include "nsFontDebug.h" |
|
|
65 |
#ifdef MOZ_ENABLE_FREETYPE2 |
65 |
#include "nsFT2FontNode.h" |
66 |
#include "nsFT2FontNode.h" |
66 |
#include "nsFontFreeType.h" |
67 |
#include "nsFontFreeType.h" |
|
|
68 |
#endif |
67 |
#include "nsXFontNormal.h" |
69 |
#include "nsXFontNormal.h" |
68 |
#include "nsX11AlphaBlend.h" |
70 |
#include "nsX11AlphaBlend.h" |
69 |
#include "nsXFontAAScaledBitmap.h" |
71 |
#include "nsXFontAAScaledBitmap.h" |
Lines 102-107
Link Here
|
102 |
#undef NOISY_FONTS |
104 |
#undef NOISY_FONTS |
103 |
#undef REALLY_NOISY_FONTS |
105 |
#undef REALLY_NOISY_FONTS |
104 |
|
106 |
|
|
|
107 |
#ifndef MOZ_ENABLE_FREETYPE2 |
108 |
static PRUint32 gFontDebug = 0 | NS_FONT_DEBUG_FONT_SCAN; |
109 |
#endif |
110 |
|
105 |
struct nsFontCharSetMap; |
111 |
struct nsFontCharSetMap; |
106 |
struct nsFontFamilyName; |
112 |
struct nsFontFamilyName; |
107 |
struct nsFontPropertyName; |
113 |
struct nsFontPropertyName; |
Lines 114-121
Link Here
|
114 |
const char* mCharSet; |
120 |
const char* mCharSet; |
115 |
nsFontCharSetConverter Convert; |
121 |
nsFontCharSetConverter Convert; |
116 |
PRUint8 mSpecialUnderline; |
122 |
PRUint8 mSpecialUnderline; |
|
|
123 |
#ifdef MOZ_ENABLE_FREETYPE2 |
117 |
PRInt32 mCodeRange1Bits; |
124 |
PRInt32 mCodeRange1Bits; |
118 |
PRInt32 mCodeRange2Bits; |
125 |
PRInt32 mCodeRange2Bits; |
|
|
126 |
#endif |
119 |
PRUint16* mCCMap; |
127 |
PRUint16* mCCMap; |
120 |
nsIUnicodeEncoder* mConverter; |
128 |
nsIUnicodeEncoder* mConverter; |
121 |
nsIAtom* mLangGroup; |
129 |
nsIAtom* mLangGroup; |
Lines 220-225
Link Here
|
220 |
static nsFontCharSetInfo Unknown = { nsnull }; |
228 |
static nsFontCharSetInfo Unknown = { nsnull }; |
221 |
static nsFontCharSetInfo Special = { nsnull }; |
229 |
static nsFontCharSetInfo Special = { nsnull }; |
222 |
|
230 |
|
|
|
231 |
#ifdef MOZ_ENABLE_FREETYPE2 |
223 |
static nsFontCharSetInfo USASCII = |
232 |
static nsFontCharSetInfo USASCII = |
224 |
{ "us-ascii", SingleByteConvert, 0, |
233 |
{ "us-ascii", SingleByteConvert, 0, |
225 |
TT_OS2_CPR1_LATIN1 | TT_OS2_CPR1_MAC_ROMAN, |
234 |
TT_OS2_CPR1_LATIN1 | TT_OS2_CPR1_MAC_ROMAN, |
Lines 425-431
Link Here
|
425 |
{ "x-mathematica4", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
434 |
{ "x-mathematica4", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
426 |
static nsFontCharSetInfo Mathematica5 = |
435 |
static nsFontCharSetInfo Mathematica5 = |
427 |
{ "x-mathematica5", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
436 |
{ "x-mathematica5", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
428 |
#endif |
437 |
#endif /* MATHML */ |
|
|
438 |
|
439 |
#else |
440 |
|
441 |
static nsFontCharSetInfo USASCII = |
442 |
{ "us-ascii", SingleByteConvert, 0 }; |
443 |
static nsFontCharSetInfo ISO88591 = |
444 |
{ "ISO-8859-1", SingleByteConvert, 0 }; |
445 |
static nsFontCharSetInfo ISO88592 = |
446 |
{ "ISO-8859-2", SingleByteConvert, 0 }; |
447 |
static nsFontCharSetInfo ISO88593 = |
448 |
{ "ISO-8859-3", SingleByteConvert, 0 }; |
449 |
static nsFontCharSetInfo ISO88594 = |
450 |
{ "ISO-8859-4", SingleByteConvert, 0 }; |
451 |
static nsFontCharSetInfo ISO88595 = |
452 |
{ "ISO-8859-5", SingleByteConvert, 0 }; |
453 |
static nsFontCharSetInfo ISO88596 = |
454 |
{ "ISO-8859-6", SingleByteConvert, 0 }; |
455 |
static nsFontCharSetInfo ISO885968x = |
456 |
{ "x-iso-8859-6-8-x", SingleByteConvert, 0 }; |
457 |
static nsFontCharSetInfo ISO8859616 = |
458 |
{ "x-iso-8859-6-16", SingleByteConvert, 0 }; |
459 |
static nsFontCharSetInfo IBM1046 = |
460 |
{ "x-IBM1046", SingleByteConvert, 0 }; |
461 |
static nsFontCharSetInfo ISO88597 = |
462 |
{ "ISO-8859-7", SingleByteConvert, 0 }; |
463 |
static nsFontCharSetInfo ISO88598 = |
464 |
{ "ISO-8859-8", SingleByteConvert, 0 }; |
465 |
// change from |
466 |
// { "ISO-8859-8", SingleByteConvertReverse, 0, 0, 0 }; |
467 |
// untill we fix the layout and ensure we only call this with pure RTL text |
468 |
static nsFontCharSetInfo ISO88599 = |
469 |
{ "ISO-8859-9", SingleByteConvert, 0 }; |
470 |
// no support for iso-8859-10 (Nordic/Icelandic) currently |
471 |
// static nsFontCharSetInfo ISO885910 = |
472 |
// { "ISO-8859-10", SingleByteConvert, 0, |
473 |
// 0, TT_OS2_CPR2_NORDIC | TT_OS2_CPR2_ICELANDIC }; |
474 |
// no support for iso-8859-12 (Vietnamese) currently |
475 |
// static nsFontCharSetInfo ISO885912 = |
476 |
// { "ISO-8859-12", SingleByteConvert, 0, |
477 |
// TT_OS2_CPR1_VIETNAMESE, 0 }; |
478 |
static nsFontCharSetInfo ISO885913 = |
479 |
{ "ISO-8859-13", SingleByteConvert, 0 }; |
480 |
static nsFontCharSetInfo ISO885915 = |
481 |
{ "ISO-8859-15", SingleByteConvert, 0 }; |
482 |
static nsFontCharSetInfo JISX0201 = |
483 |
{ "jis_0201", SingleByteConvert, 1 }; |
484 |
static nsFontCharSetInfo KOI8R = |
485 |
{ "KOI8-R", SingleByteConvert, 0 }; |
486 |
static nsFontCharSetInfo KOI8U = |
487 |
{ "KOI8-U", SingleByteConvert, 0 }; |
488 |
static nsFontCharSetInfo TIS6202 = |
489 |
/* Added to support thai context sensitive shaping if |
490 |
* CTL extension is is in force */ |
491 |
#ifdef SUNCTL |
492 |
{ "tis620-2", SingleByteConvert, 0 }; |
493 |
#else |
494 |
{ "windows-874", SingleByteConvert, 0 }; |
495 |
#endif /* SUNCTL */ |
496 |
static nsFontCharSetInfo TIS620 = |
497 |
{ "TIS-620", SingleByteConvert, 0 }; |
498 |
static nsFontCharSetInfo ISO885911 = |
499 |
{ "ISO-8859-11", SingleByteConvert, 0 }; |
500 |
static nsFontCharSetInfo Big5 = |
501 |
{ "x-x-big5", DoubleByteConvert, 1 }; |
502 |
// a kludge to distinguish zh-TW only fonts in Big5 (such as hpbig5-) |
503 |
// from zh-TW/zh-HK common fonts in Big5 (such as big5-1) |
504 |
static nsFontCharSetInfo Big5TWHK = |
505 |
{ "x-x-big5", DoubleByteConvert, 1 }; |
506 |
static nsFontCharSetInfo CNS116431 = |
507 |
{ "x-cns-11643-1", DoubleByteConvert, 1 }; |
508 |
static nsFontCharSetInfo CNS116432 = |
509 |
{ "x-cns-11643-2", DoubleByteConvert, 1 }; |
510 |
static nsFontCharSetInfo CNS116433 = |
511 |
{ "x-cns-11643-3", DoubleByteConvert, 1 }; |
512 |
static nsFontCharSetInfo CNS116434 = |
513 |
{ "x-cns-11643-4", DoubleByteConvert, 1 }; |
514 |
static nsFontCharSetInfo CNS116435 = |
515 |
{ "x-cns-11643-5", DoubleByteConvert, 1 }; |
516 |
static nsFontCharSetInfo CNS116436 = |
517 |
{ "x-cns-11643-6", DoubleByteConvert, 1 }; |
518 |
static nsFontCharSetInfo CNS116437 = |
519 |
{ "x-cns-11643-7", DoubleByteConvert, 1 }; |
520 |
static nsFontCharSetInfo GB2312 = |
521 |
{ "gb_2312-80", DoubleByteConvert, 1 }; |
522 |
static nsFontCharSetInfo GB18030_0 = |
523 |
{ "gb18030.2000-0", DoubleByteConvert, 1 }; |
524 |
static nsFontCharSetInfo GB18030_1 = |
525 |
{ "gb18030.2000-1", DoubleByteConvert, 1 }; |
526 |
static nsFontCharSetInfo GBK = |
527 |
{ "x-gbk-noascii", DoubleByteConvert, 1 }; |
528 |
static nsFontCharSetInfo HKSCS = |
529 |
{ "hkscs-1", DoubleByteConvert, 1 }; |
530 |
static nsFontCharSetInfo JISX0208 = |
531 |
{ "jis_0208-1983", DoubleByteConvert, 1 }; |
532 |
static nsFontCharSetInfo JISX0212 = |
533 |
{ "jis_0212-1990", DoubleByteConvert, 1 }; |
534 |
static nsFontCharSetInfo KSC5601 = |
535 |
{ "ks_c_5601-1987", DoubleByteConvert, 1 }; |
536 |
static nsFontCharSetInfo X11Johab = |
537 |
{ "x-x11johab", DoubleByteConvert, 1 }; |
538 |
static nsFontCharSetInfo JohabNoAscii = |
539 |
{ "x-johab-noascii", DoubleByteConvert, 1 }; |
540 |
static nsFontCharSetInfo JamoTTF = |
541 |
{ "x-koreanjamo-0", DoubleByteConvert, 1 }; |
542 |
static nsFontCharSetInfo TamilTTF = |
543 |
{ "x-tamilttf-0", DoubleByteConvert, 0 }; |
544 |
static nsFontCharSetInfo CP1250 = |
545 |
{ "windows-1250", SingleByteConvert, 0 }; |
546 |
static nsFontCharSetInfo CP1251 = |
547 |
{ "windows-1251", SingleByteConvert, 0 }; |
548 |
static nsFontCharSetInfo CP1252 = |
549 |
{ "windows-1252", SingleByteConvert, 0 }; |
550 |
static nsFontCharSetInfo CP1253 = |
551 |
{ "windows-1253", SingleByteConvert, 0 }; |
552 |
static nsFontCharSetInfo CP1257 = |
553 |
{ "windows-1257", SingleByteConvert, 0 }; |
554 |
|
555 |
#ifdef SUNCTL |
556 |
/* Hindi range currently unsupported in FT2 range. Change TT* once we |
557 |
arrive at a way to identify hindi */ |
558 |
static nsFontCharSetInfo SunIndic = |
559 |
{ "x-sun-unicode-india-0", DoubleByteConvert, 0 }; |
560 |
#endif /* SUNCTL */ |
561 |
|
562 |
static nsFontCharSetInfo ISO106461 = |
563 |
{ nsnull, ISO10646Convert, 1}; |
564 |
|
565 |
static nsFontCharSetInfo AdobeSymbol = |
566 |
{ "Adobe-Symbol-Encoding", SingleByteConvert, 0 }; |
567 |
static nsFontCharSetInfo AdobeEuro = |
568 |
{ "x-adobe-euro", SingleByteConvert, 0 }; |
569 |
|
570 |
#ifdef MOZ_MATHML |
571 |
static nsFontCharSetInfo CMCMEX = |
572 |
{ "x-t1-cmex", SingleByteConvert, 0}; |
573 |
static nsFontCharSetInfo CMCMSY = |
574 |
{ "x-t1-cmsy", SingleByteConvert, 0}; |
575 |
static nsFontCharSetInfo CMCMR = |
576 |
{ "x-t1-cmr", SingleByteConvert, 0}; |
577 |
static nsFontCharSetInfo CMCMMI = |
578 |
{ "x-t1-cmmi", SingleByteConvert, 0}; |
579 |
static nsFontCharSetInfo Mathematica1 = |
580 |
{ "x-mathematica1", SingleByteConvert, 0}; |
581 |
static nsFontCharSetInfo Mathematica2 = |
582 |
{ "x-mathematica2", SingleByteConvert, 0}; |
583 |
static nsFontCharSetInfo Mathematica3 = |
584 |
{ "x-mathematica3", SingleByteConvert, 0}; |
585 |
static nsFontCharSetInfo Mathematica4 = |
586 |
{ "x-mathematica4", SingleByteConvert, 0}; |
587 |
static nsFontCharSetInfo Mathematica5 = |
588 |
{ "x-mathematica5", SingleByteConvert, 0}; |
589 |
#endif /* MATHML */ |
590 |
#endif /* FREETYPE2 */ |
429 |
|
591 |
|
430 |
static nsFontLangGroup FLG_WESTERN = { "x-western", nsnull }; |
592 |
static nsFontLangGroup FLG_WESTERN = { "x-western", nsnull }; |
431 |
static nsFontLangGroup FLG_RUSSIAN = { "x-cyrillic", nsnull }; |
593 |
static nsFontLangGroup FLG_RUSSIAN = { "x-cyrillic", nsnull }; |
Lines 821-827
Link Here
|
821 |
|
983 |
|
822 |
gInitialized = 0; |
984 |
gInitialized = 0; |
823 |
|
985 |
|
|
|
986 |
#ifdef MOZ_ENABLE_FREETYPE2 |
824 |
nsFT2FontNode::FreeGlobals(); |
987 |
nsFT2FontNode::FreeGlobals(); |
|
|
988 |
#endif |
825 |
|
989 |
|
826 |
#ifdef ENABLE_X_FONT_BANNING |
990 |
#ifdef ENABLE_X_FONT_BANNING |
827 |
if (gFontRejectRegEx) { |
991 |
if (gFontRejectRegEx) { |
Lines 1221-1231
Link Here
|
1221 |
} |
1385 |
} |
1222 |
#endif /* ENABLE_X_FONT_BANNING */ |
1386 |
#endif /* ENABLE_X_FONT_BANNING */ |
1223 |
|
1387 |
|
|
|
1388 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1224 |
rv = nsFT2FontNode::InitGlobals(); |
1389 |
rv = nsFT2FontNode::InitGlobals(); |
1225 |
if (NS_FAILED(rv)) { |
1390 |
if (NS_FAILED(rv)) { |
1226 |
FreeGlobals(); |
1391 |
FreeGlobals(); |
1227 |
return NS_ERROR_OUT_OF_MEMORY; |
1392 |
return NS_ERROR_OUT_OF_MEMORY; |
1228 |
} |
1393 |
} |
|
|
1394 |
#endif |
1229 |
|
1395 |
|
1230 |
gInitialized = 1; |
1396 |
gInitialized = 1; |
1231 |
|
1397 |
|
Lines 1557-1562
Link Here
|
1557 |
float f; |
1723 |
float f; |
1558 |
f = mDeviceContext->DevUnitsToAppUnits(); |
1724 |
f = mDeviceContext->DevUnitsToAppUnits(); |
1559 |
|
1725 |
|
|
|
1726 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1560 |
if (mWesternFont->IsFreeTypeFont()) { |
1727 |
if (mWesternFont->IsFreeTypeFont()) { |
1561 |
nsFreeTypeFont *ft = (nsFreeTypeFont *)mWesternFont; |
1728 |
nsFreeTypeFont *ft = (nsFreeTypeFont *)mWesternFont; |
1562 |
if (!ft) |
1729 |
if (!ft) |
Lines 1565-1571
Link Here
|
1565 |
// and TrueType fonts) there should be a common set of methods |
1732 |
// and TrueType fonts) there should be a common set of methods |
1566 |
// to get the metrics info from the font object. These methods |
1733 |
// to get the metrics info from the font object. These methods |
1567 |
// probably should be virtual functions defined in nsFontGTK. |
1734 |
// probably should be virtual functions defined in nsFontGTK. |
1568 |
#if (defined(MOZ_ENABLE_FREETYPE2)) |
|
|
1569 |
int lineSpacing = ft->ascent() + ft->descent(); |
1735 |
int lineSpacing = ft->ascent() + ft->descent(); |
1570 |
if (lineSpacing > mWesternFont->mSize) { |
1736 |
if (lineSpacing > mWesternFont->mSize) { |
1571 |
mLeading = nscoord((lineSpacing - mWesternFont->mSize) * f); |
1737 |
mLeading = nscoord((lineSpacing - mWesternFont->mSize) * f); |
Lines 1637-1644
Link Here
|
1637 |
mStrikeoutSize = mUnderlineSize; |
1803 |
mStrikeoutSize = mUnderlineSize; |
1638 |
|
1804 |
|
1639 |
return; |
1805 |
return; |
1640 |
#endif /* (defined(MOZ_ENABLE_FREETYPE2)) */ |
|
|
1641 |
} |
1806 |
} |
|
|
1807 |
#endif |
1642 |
nsXFont *xFont = mWesternFont->GetXFont(); |
1808 |
nsXFont *xFont = mWesternFont->GetXFont(); |
1643 |
XFontStruct *fontInfo = xFont->GetXFontStruct(); |
1809 |
XFontStruct *fontInfo = xFont->GetXFontStruct(); |
1644 |
f = mDeviceContext->DevUnitsToAppUnits(); |
1810 |
f = mDeviceContext->DevUnitsToAppUnits(); |
Lines 3255-3260
Link Here
|
3255 |
nsFontMetricsGTK::PickASizeAndLoad(nsFontStretch* aStretch, |
3421 |
nsFontMetricsGTK::PickASizeAndLoad(nsFontStretch* aStretch, |
3256 |
nsFontCharSetInfo* aCharSet, PRUint32 aChar, const char *aName) |
3422 |
nsFontCharSetInfo* aCharSet, PRUint32 aChar, const char *aName) |
3257 |
{ |
3423 |
{ |
|
|
3424 |
|
3425 |
#ifdef MOZ_ENABLE_FREETYPE2 |
3258 |
if (aStretch->mFreeTypeFaceID) { |
3426 |
if (aStretch->mFreeTypeFaceID) { |
3259 |
//FREETYPE_FONT_PRINTF(("mFreeTypeFaceID = 0x%p", aStretch->mFreeTypeFaceID)); |
3427 |
//FREETYPE_FONT_PRINTF(("mFreeTypeFaceID = 0x%p", aStretch->mFreeTypeFaceID)); |
3260 |
nsFreeTypeFont *ftfont = nsFreeTypeFont::NewFont(aStretch->mFreeTypeFaceID, |
3428 |
nsFreeTypeFont *ftfont = nsFreeTypeFont::NewFont(aStretch->mFreeTypeFaceID, |
Lines 3287-3292
Link Here
|
3287 |
// SURROGATE is only supported by FreeType |
3455 |
// SURROGATE is only supported by FreeType |
3288 |
return nsnull; |
3456 |
return nsnull; |
3289 |
} |
3457 |
} |
|
|
3458 |
#endif |
3290 |
|
3459 |
|
3291 |
PRBool use_scaled_font = PR_FALSE; |
3460 |
PRBool use_scaled_font = PR_FALSE; |
3292 |
PRBool have_nearly_rightsized_bitmap = PR_FALSE; |
3461 |
PRBool have_nearly_rightsized_bitmap = PR_FALSE; |
Lines 4600-4605
Link Here
|
4600 |
return mCurrentFont->GetGDKFont(); |
4769 |
return mCurrentFont->GetGDKFont(); |
4601 |
} |
4770 |
} |
4602 |
|
4771 |
|
|
|
4772 |
nsresult |
4773 |
nsFontMetricsGTK::SetRightToLeftText(PRBool aIsRTL) |
4774 |
{ |
4775 |
return NS_OK; |
4776 |
} |
4777 |
|
4778 |
nsresult |
4779 |
nsFontMetricsGTK::GetClusterInfo(const PRUnichar *aText, |
4780 |
PRUint32 aLength, |
4781 |
PRUint32 *aClusterStarts) |
4782 |
{ |
4783 |
return NS_ERROR_NOT_IMPLEMENTED; |
4784 |
} |
4785 |
|
4786 |
nsresult |
4787 |
nsFontMetricsGTK::GetPosition(const PRUnichar *aText, |
4788 |
PRUint32 aLength, |
4789 |
nscoord aCoord, |
4790 |
PRUint32 &aInx) |
4791 |
{ |
4792 |
return NS_ERROR_NOT_IMPLEMENTED; |
4793 |
} |
4794 |
|
4795 |
|
4796 |
nsresult |
4797 |
nsFontMetricsGTK::GetRangeWidth(const PRUnichar *aText, |
4798 |
PRUint32 aLength, |
4799 |
PRUint32 aStart, |
4800 |
PRUint32 aEnd, |
4801 |
PRUint32 &aWidth) |
4802 |
{ |
4803 |
return NS_ERROR_NOT_IMPLEMENTED; |
4804 |
} |
4805 |
|
4603 |
PR_BEGIN_EXTERN_C |
4806 |
PR_BEGIN_EXTERN_C |
4604 |
static int |
4807 |
static int |
4605 |
CompareSizes(const void* aArg1, const void* aArg2, void *data) |
4808 |
CompareSizes(const void* aArg1, const void* aArg2, void *data) |
Lines 5195-5202
Link Here
|
5195 |
} |
5398 |
} |
5196 |
#endif |
5399 |
#endif |
5197 |
|
5400 |
|
|
|
5401 |
#ifdef MOZ_ENABLE_FREETYPE2 |
5198 |
// get FreeType fonts |
5402 |
// get FreeType fonts |
5199 |
nsFT2FontNode::GetFontNames(aPattern, aNodes); |
5403 |
nsFT2FontNode::GetFontNames(aPattern, aNodes); |
|
|
5404 |
#endif |
5200 |
|
5405 |
|
5201 |
nsCAutoString previousNodeName; |
5406 |
nsCAutoString previousNodeName; |
5202 |
nsHashtable* node_hash; |
5407 |
nsHashtable* node_hash; |
Lines 6569-6574
Link Here
|
6569 |
return charSetMap; |
6774 |
return charSetMap; |
6570 |
} |
6775 |
} |
6571 |
|
6776 |
|
|
|
6777 |
#ifdef MOZ_ENABLE_FREETYPE2 |
6572 |
void |
6778 |
void |
6573 |
CharSetNameToCodeRangeBits(const char *aCharset, |
6779 |
CharSetNameToCodeRangeBits(const char *aCharset, |
6574 |
PRUint32 *aCodeRange1, PRUint32 *aCodeRange2) |
6780 |
PRUint32 *aCodeRange1, PRUint32 *aCodeRange2) |
Lines 6579-6582
Link Here
|
6579 |
*aCodeRange1 = charSetInfo->mCodeRange1Bits; |
6785 |
*aCodeRange1 = charSetInfo->mCodeRange1Bits; |
6580 |
*aCodeRange2 = charSetInfo->mCodeRange2Bits; |
6786 |
*aCodeRange2 = charSetInfo->mCodeRange2Bits; |
6581 |
} |
6787 |
} |
|
|
6788 |
#endif |
6582 |
|
6789 |
|
6583 |
-- gfx/src/gtk/nsFontMetricsGTK.h |
6790 |
++ gfx/src/gtk/nsFontMetricsGTK.h |
Lines 52-58
Link Here
|
52 |
#include "nsICharRepresentable.h" |
52 |
#include "nsICharRepresentable.h" |
53 |
#include "nsCompressedCharMap.h" |
53 |
#include "nsCompressedCharMap.h" |
54 |
#include "nsIFontMetricsGTK.h" |
54 |
#include "nsIFontMetricsGTK.h" |
|
|
55 |
#ifdef MOZ_ENABLE_FREETYPE2 |
55 |
#include "nsIFontCatalogService.h" |
56 |
#include "nsIFontCatalogService.h" |
|
|
57 |
#endif |
56 |
|
58 |
|
57 |
#include <gdk/gdk.h> |
59 |
#include <gdk/gdk.h> |
58 |
#include <gdk/gdkx.h> |
60 |
#include <gdk/gdkx.h> |
Lines 92-98
Link Here
|
92 |
char* mScalable; |
94 |
char* mScalable; |
93 |
PRBool mOutlineScaled; |
95 |
PRBool mOutlineScaled; |
94 |
nsVoidArray mScaledFonts; |
96 |
nsVoidArray mScaledFonts; |
|
|
97 |
#ifdef MOZ_ENABLE_FREETYPE2 |
95 |
nsITrueTypeFontCatalogEntry* mFreeTypeFaceID; |
98 |
nsITrueTypeFontCatalogEntry* mFreeTypeFaceID; |
|
|
99 |
#endif |
96 |
}; |
100 |
}; |
97 |
|
101 |
|
98 |
struct nsFontStyle |
102 |
struct nsFontStyle |
Lines 344-349
Link Here
|
344 |
|
348 |
|
345 |
virtual GdkFont* GetCurrentGDKFont(void); |
349 |
virtual GdkFont* GetCurrentGDKFont(void); |
346 |
|
350 |
|
|
|
351 |
virtual nsresult SetRightToLeftText(PRBool aIsRTL); |
352 |
|
353 |
virtual nsresult GetClusterInfo(const PRUnichar *aText, |
354 |
PRUint32 aLength, |
355 |
PRUint32 *aClusterStarts); |
356 |
|
357 |
virtual nsresult GetPosition(const PRUnichar *aText, |
358 |
PRUint32 aLength, |
359 |
nscoord aCoord, |
360 |
PRUint32 &aInx); |
361 |
|
362 |
virtual nsresult GetRangeWidth(const PRUnichar *aText, |
363 |
PRUint32 aLength, |
364 |
PRUint32 aStart, |
365 |
PRUint32 aEnd, |
366 |
PRUint32 &aWidth); |
367 |
|
347 |
static nsresult FamilyExists(nsIDeviceContext *aDevice, const nsString& aName); |
368 |
static nsresult FamilyExists(nsIDeviceContext *aDevice, const nsString& aName); |
348 |
static PRUint32 GetHints(void); |
369 |
static PRUint32 GetHints(void); |
349 |
|
370 |
|
Lines 411-417
Link Here
|
411 |
class nsHashKey; |
432 |
class nsHashKey; |
412 |
PRBool FreeNode(nsHashKey* aKey, void* aData, void* aClosure); |
433 |
PRBool FreeNode(nsHashKey* aKey, void* aData, void* aClosure); |
413 |
nsFontCharSetInfo *GetCharSetInfo(const char *aCharSetName); |
434 |
nsFontCharSetInfo *GetCharSetInfo(const char *aCharSetName); |
|
|
435 |
#ifdef MOZ_ENABLE_FREETYPE2 |
414 |
void CharSetNameToCodeRangeBits(const char*, PRUint32*, PRUint32*); |
436 |
void CharSetNameToCodeRangeBits(const char*, PRUint32*, PRUint32*); |
|
|
437 |
#endif |
415 |
nsFontCharSetMap *GetCharSetMap(const char *aCharSetName); |
438 |
nsFontCharSetMap *GetCharSetMap(const char *aCharSetName); |
416 |
|
439 |
|
417 |
|
440 |
|
418 |
-- gfx/src/gtk/nsFontMetricsUtils.cpp |
441 |
++ gfx/src/gtk/nsFontMetricsUtils.cpp |
Lines 50-60
Link Here
|
50 |
#include "nsFontMetricsGTK.h" |
50 |
#include "nsFontMetricsGTK.h" |
51 |
#endif |
51 |
#endif |
52 |
|
52 |
|
|
|
53 |
#ifdef MOZ_ENABLE_PANGO |
54 |
#include "nsFontMetricsPango.h" |
55 |
#endif |
56 |
|
53 |
#include "nsFontMetricsUtils.h" |
57 |
#include "nsFontMetricsUtils.h" |
54 |
|
58 |
|
55 |
PRUint32 |
59 |
PRUint32 |
56 |
NS_FontMetricsGetHints(void) |
60 |
NS_FontMetricsGetHints(void) |
57 |
{ |
61 |
{ |
|
|
62 |
#ifdef MOZ_ENABLE_PANGO |
63 |
if (NS_IsPangoEnabled()) { |
64 |
return nsFontMetricsPango::GetHints(); |
65 |
} |
66 |
#endif |
58 |
#ifdef MOZ_ENABLE_XFT |
67 |
#ifdef MOZ_ENABLE_XFT |
59 |
if (NS_IsXftEnabled()) { |
68 |
if (NS_IsXftEnabled()) { |
60 |
return nsFontMetricsXft::GetHints(); |
69 |
return nsFontMetricsXft::GetHints(); |
Lines 69-74
Link Here
|
69 |
nsresult |
78 |
nsresult |
70 |
NS_FontMetricsFamilyExists(nsIDeviceContext *aDevice, const nsString &aName) |
79 |
NS_FontMetricsFamilyExists(nsIDeviceContext *aDevice, const nsString &aName) |
71 |
{ |
80 |
{ |
|
|
81 |
#ifdef MOZ_ENABLE_PANGO |
82 |
if (NS_IsPangoEnabled()) { |
83 |
return nsFontMetricsPango::FamilyExists(aDevice, aName); |
84 |
} |
85 |
#endif |
72 |
#ifdef MOZ_ENABLE_XFT |
86 |
#ifdef MOZ_ENABLE_XFT |
73 |
// try to fall through to the core fonts if xft fails |
87 |
// try to fall through to the core fonts if xft fails |
74 |
if (NS_IsXftEnabled()) { |
88 |
if (NS_IsXftEnabled()) { |
Lines 121-123
Link Here
|
121 |
} |
135 |
} |
122 |
|
136 |
|
123 |
#endif /* MOZ_ENABLE_XFT */ |
137 |
#endif /* MOZ_ENABLE_XFT */ |
124 |
-- gfx/src/gtk/nsFontMetricsUtils.h |
138 |
|
|
|
139 |
#ifdef MOZ_ENABLE_PANGO |
140 |
|
141 |
PRBool |
142 |
NS_IsPangoEnabled(void) |
143 |
{ |
144 |
char *val = PR_GetEnv("MOZ_ENABLE_PANGO"); |
145 |
if (val) |
146 |
return TRUE; |
147 |
|
148 |
return FALSE; |
149 |
} |
150 |
|
151 |
#endif |
|
|
152 |
++ gfx/src/gtk/nsFontMetricsUtils.h |
Lines 42-50
Link Here
|
42 |
extern PRUint32 NS_FontMetricsGetHints (void); |
42 |
extern PRUint32 NS_FontMetricsGetHints (void); |
43 |
extern nsresult NS_FontMetricsFamilyExists(nsIDeviceContext *aDevice, |
43 |
extern nsresult NS_FontMetricsFamilyExists(nsIDeviceContext *aDevice, |
44 |
const nsString &aName); |
44 |
const nsString &aName); |
45 |
|
|
|
46 |
#ifdef MOZ_ENABLE_XFT |
45 |
#ifdef MOZ_ENABLE_XFT |
47 |
extern PRBool NS_IsXftEnabled(void); |
46 |
extern PRBool NS_IsXftEnabled(void); |
48 |
#endif |
47 |
#endif |
49 |
|
48 |
|
|
|
49 |
#ifdef MOZ_ENABLE_PANGO |
50 |
extern PRBool NS_IsPangoEnabled(void); |
51 |
#endif |
52 |
|
50 |
#endif /* __nsFontMetricsUtils_h */ |
53 |
#endif /* __nsFontMetricsUtils_h */ |
51 |
-- gfx/src/gtk/nsFontMetricsXft.h |
54 |
++ gfx/src/gtk/nsFontMetricsXft.h |
Lines 202-207
Link Here
|
202 |
|
202 |
|
203 |
virtual GdkFont* GetCurrentGDKFont(void); |
203 |
virtual GdkFont* GetCurrentGDKFont(void); |
204 |
|
204 |
|
|
|
205 |
virtual nsresult SetRightToLeftText(PRBool aIsRTL); |
206 |
|
207 |
virtual nsresult GetClusterInfo(const PRUnichar *aText, |
208 |
PRUint32 aLength, |
209 |
PRUint32 *aClusterStarts); |
210 |
|
211 |
virtual nsresult GetPosition(const PRUnichar *aText, |
212 |
PRUint32 aLength, |
213 |
nscoord aCoord, |
214 |
PRUint32 &aInx); |
215 |
|
216 |
virtual nsresult GetRangeWidth(const PRUnichar *aText, |
217 |
PRUint32 aLength, |
218 |
PRUint32 aStart, |
219 |
PRUint32 aEnd, |
220 |
PRUint32 &aWidth); |
221 |
|
205 |
// get hints for the font |
222 |
// get hints for the font |
206 |
static PRUint32 GetHints (void); |
223 |
static PRUint32 GetHints (void); |
207 |
|
224 |
|
208 |
-- gfx/src/gtk/nsGCCache.cpp |
225 |
++ gfx/src/gtk/nsGCCache.cpp |
Lines 232-329
Link Here
|
232 |
// We have old GC, reuse it and check what |
232 |
// We have old GC, reuse it and check what |
233 |
// we have to change |
233 |
// we have to change |
234 |
|
234 |
|
235 |
XGCValues xvalues; |
235 |
GdkGCValues xvalues; |
236 |
unsigned long xvalues_mask=0; |
236 |
int xvalues_mask = 0; |
237 |
|
237 |
|
238 |
if (entry->clipRegion) { |
238 |
if (entry->clipRegion) { |
239 |
// set it to none here and then set the clip region with |
239 |
// set it to none here and then set the clip region with |
240 |
// gdk_gc_set_clip_region in GetGC() |
240 |
// gdk_gc_set_clip_region in GetGC() |
241 |
xvalues.clip_mask = None; |
241 |
xvalues.clip_mask = None; |
242 |
xvalues_mask |= GCClipMask; |
242 |
xvalues_mask |= GDK_GC_CLIP_MASK; |
243 |
gdk_region_destroy(entry->clipRegion); |
243 |
gdk_region_destroy(entry->clipRegion); |
244 |
entry->clipRegion = NULL; |
244 |
entry->clipRegion = NULL; |
245 |
} |
245 |
} |
246 |
|
246 |
|
247 |
if (entry->gcv.foreground.pixel != gcv->foreground.pixel) { |
247 |
if (entry->gcv.foreground.pixel != gcv->foreground.pixel) { |
248 |
xvalues.foreground = gcv->foreground.pixel; |
248 |
xvalues.foreground.pixel = gcv->foreground.pixel; |
249 |
xvalues_mask |= GCForeground; |
249 |
xvalues_mask |= GDK_GC_FOREGROUND; |
250 |
} |
250 |
} |
251 |
|
251 |
|
252 |
if (entry->gcv.function != gcv->function) { |
252 |
if (entry->gcv.function != gcv->function) { |
253 |
switch (gcv->function) { |
253 |
xvalues.function = gcv->function; |
254 |
case GDK_COPY: |
254 |
xvalues_mask |= GDK_GC_FUNCTION; |
255 |
xvalues.function = GXcopy; |
|
|
256 |
break; |
257 |
case GDK_INVERT: |
258 |
xvalues.function = GXinvert; |
259 |
break; |
260 |
case GDK_XOR: |
261 |
xvalues.function = GXxor; |
262 |
break; |
263 |
case GDK_CLEAR: |
264 |
xvalues.function = GXclear; |
265 |
break; |
266 |
case GDK_AND: |
267 |
xvalues.function = GXand; |
268 |
break; |
269 |
case GDK_AND_REVERSE: |
270 |
xvalues.function = GXandReverse; |
271 |
break; |
272 |
case GDK_AND_INVERT: |
273 |
xvalues.function = GXandInverted; |
274 |
break; |
275 |
case GDK_NOOP: |
276 |
xvalues.function = GXnoop; |
277 |
break; |
278 |
case GDK_OR: |
279 |
xvalues.function = GXor; |
280 |
break; |
281 |
case GDK_EQUIV: |
282 |
xvalues.function = GXequiv; |
283 |
break; |
284 |
case GDK_OR_REVERSE: |
285 |
xvalues.function = GXorReverse; |
286 |
break; |
287 |
case GDK_COPY_INVERT: |
288 |
xvalues.function = GXcopyInverted; |
289 |
break; |
290 |
case GDK_OR_INVERT: |
291 |
xvalues.function = GXorInverted; |
292 |
break; |
293 |
case GDK_NAND: |
294 |
xvalues.function = GXnand; |
295 |
break; |
296 |
case GDK_SET: |
297 |
xvalues.function = GXset; |
298 |
break; |
299 |
} |
300 |
xvalues_mask |= GCFunction; |
301 |
} |
255 |
} |
302 |
|
256 |
|
303 |
if(entry->gcv.font != gcv->font && flags & GDK_GC_FONT) { |
257 |
if(entry->gcv.font != gcv->font && flags & GDK_GC_FONT) { |
304 |
xvalues.font = ((XFontStruct *)GDK_FONT_XFONT(gcv->font))->fid; |
258 |
xvalues.font = gcv->font; |
305 |
xvalues_mask |= GCFont; |
259 |
xvalues_mask |= GDK_GC_FONT; |
306 |
} |
260 |
} |
307 |
|
261 |
|
308 |
if (entry->gcv.line_style != gcv->line_style) { |
262 |
if (entry->gcv.line_style != gcv->line_style) { |
309 |
switch (gcv->line_style) { |
263 |
xvalues.line_style = gcv->line_style; |
310 |
case GDK_LINE_SOLID: |
264 |
xvalues_mask |= GDK_GC_LINE_STYLE; |
311 |
xvalues.line_style = LineSolid; |
|
|
312 |
break; |
313 |
case GDK_LINE_ON_OFF_DASH: |
314 |
xvalues.line_style = LineOnOffDash; |
315 |
break; |
316 |
case GDK_LINE_DOUBLE_DASH: |
317 |
xvalues.line_style = LineDoubleDash; |
318 |
break; |
319 |
} |
320 |
xvalues_mask |= GCLineStyle; |
321 |
} |
265 |
} |
322 |
|
266 |
|
323 |
if (xvalues_mask != 0) { |
267 |
if (xvalues_mask != 0) { |
324 |
XChangeGC(GDK_GC_XDISPLAY(entry->gc), GDK_GC_XGC(entry->gc), |
268 |
gdk_gc_set_values(entry->gc, &xvalues, (GdkGCValuesMask)xvalues_mask); |
325 |
xvalues_mask, &xvalues); |
|
|
326 |
} |
269 |
} |
|
|
270 |
|
327 |
entry->flags = flags; |
271 |
entry->flags = flags; |
328 |
entry->gcv = *gcv; |
272 |
entry->gcv = *gcv; |
329 |
} |
273 |
} |
330 |
-- gfx/src/gtk/nsGfxFactoryGTK.cpp |
274 |
++ gfx/src/gtk/nsGfxFactoryGTK.cpp |
Lines 62-67
Link Here
|
62 |
#ifdef NATIVE_THEME_SUPPORT |
62 |
#ifdef NATIVE_THEME_SUPPORT |
63 |
#include "nsNativeThemeGTK.h" |
63 |
#include "nsNativeThemeGTK.h" |
64 |
#endif |
64 |
#endif |
|
|
65 |
#ifdef MOZ_ENABLE_PANGO |
66 |
#include "nsFontMetricsPango.h" |
67 |
#endif |
65 |
#ifdef MOZ_ENABLE_XFT |
68 |
#ifdef MOZ_ENABLE_XFT |
66 |
#include "nsFontMetricsXft.h" |
69 |
#include "nsFontMetricsXft.h" |
67 |
#endif |
70 |
#endif |
Lines 71-78
Link Here
|
71 |
#include "nsFontMetricsUtils.h" |
74 |
#include "nsFontMetricsUtils.h" |
72 |
#include "nsPrintSession.h" |
75 |
#include "nsPrintSession.h" |
73 |
#include "gfxImageFrame.h" |
76 |
#include "gfxImageFrame.h" |
|
|
77 |
#ifdef MOZ_ENABLE_FREETYPE2 |
74 |
#include "nsFT2FontCatalog.h" |
78 |
#include "nsFT2FontCatalog.h" |
75 |
#include "nsFreeType.h" |
79 |
#include "nsFreeType.h" |
|
|
80 |
#endif |
76 |
|
81 |
|
77 |
// objects that just require generic constructors |
82 |
// objects that just require generic constructors |
78 |
|
83 |
|
Lines 92-99
Link Here
|
92 |
#endif |
97 |
#endif |
93 |
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSession, Init) |
98 |
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSession, Init) |
94 |
NS_GENERIC_FACTORY_CONSTRUCTOR(gfxImageFrame) |
99 |
NS_GENERIC_FACTORY_CONSTRUCTOR(gfxImageFrame) |
95 |
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFT2FontCatalog) |
|
|
96 |
#ifdef MOZ_ENABLE_FREETYPE2 |
100 |
#ifdef MOZ_ENABLE_FREETYPE2 |
|
|
101 |
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFT2FontCatalog) |
97 |
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFreeType2, Init) |
102 |
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsFreeType2, Init) |
98 |
#endif |
103 |
#endif |
99 |
|
104 |
|
Lines 112-117
Link Here
|
112 |
if (aOuter) |
117 |
if (aOuter) |
113 |
return NS_ERROR_NO_AGGREGATION; |
118 |
return NS_ERROR_NO_AGGREGATION; |
114 |
|
119 |
|
|
|
120 |
#ifdef MOZ_ENABLE_PANGO |
121 |
if (NS_IsPangoEnabled()) { |
122 |
result = new nsFontMetricsPango(); |
123 |
if (!result) |
124 |
return NS_ERROR_OUT_OF_MEMORY; |
125 |
} else { |
126 |
#endif |
115 |
#ifdef MOZ_ENABLE_XFT |
127 |
#ifdef MOZ_ENABLE_XFT |
116 |
if (NS_IsXftEnabled()) { |
128 |
if (NS_IsXftEnabled()) { |
117 |
result = new nsFontMetricsXft(); |
129 |
result = new nsFontMetricsXft(); |
Lines 127-132
Link Here
|
127 |
#ifdef MOZ_ENABLE_XFT |
139 |
#ifdef MOZ_ENABLE_XFT |
128 |
} |
140 |
} |
129 |
#endif |
141 |
#endif |
|
|
142 |
#ifdef MOZ_ENABLE_PANGO |
143 |
} |
144 |
#endif |
130 |
|
145 |
|
131 |
NS_ADDREF(result); |
146 |
NS_ADDREF(result); |
132 |
nsresult rv = result->QueryInterface(aIID, aResult); |
147 |
nsresult rv = result->QueryInterface(aIID, aResult); |
Lines 148-153
Link Here
|
148 |
if (aOuter) |
163 |
if (aOuter) |
149 |
return NS_ERROR_NO_AGGREGATION; |
164 |
return NS_ERROR_NO_AGGREGATION; |
150 |
|
165 |
|
|
|
166 |
#ifdef MOZ_ENABLE_PANGO |
167 |
if (NS_IsPangoEnabled()) { |
168 |
result = new nsFontEnumeratorPango(); |
169 |
if (!result) |
170 |
return NS_ERROR_OUT_OF_MEMORY; |
171 |
} else { |
172 |
#endif |
151 |
#ifdef MOZ_ENABLE_XFT |
173 |
#ifdef MOZ_ENABLE_XFT |
152 |
if (NS_IsXftEnabled()) { |
174 |
if (NS_IsXftEnabled()) { |
153 |
result = new nsFontEnumeratorXft(); |
175 |
result = new nsFontEnumeratorXft(); |
Lines 163-168
Link Here
|
163 |
#ifdef MOZ_ENABLE_XFT |
185 |
#ifdef MOZ_ENABLE_XFT |
164 |
} |
186 |
} |
165 |
#endif |
187 |
#endif |
|
|
188 |
#ifdef MOZ_ENABLE_PANGO |
189 |
} |
190 |
#endif |
166 |
|
191 |
|
167 |
NS_ADDREF(result); |
192 |
NS_ADDREF(result); |
168 |
nsresult rv = result->QueryInterface(aIID, aResult); |
193 |
nsresult rv = result->QueryInterface(aIID, aResult); |
Lines 291-301
Link Here
|
291 |
NS_PRINTSESSION_CID, |
316 |
NS_PRINTSESSION_CID, |
292 |
"@mozilla.org/gfx/printsession;1", |
317 |
"@mozilla.org/gfx/printsession;1", |
293 |
nsPrintSessionConstructor }, |
318 |
nsPrintSessionConstructor }, |
|
|
319 |
#ifdef MOZ_ENABLE_FREETYPE2 |
294 |
{ "TrueType Font Catalog Service", |
320 |
{ "TrueType Font Catalog Service", |
295 |
NS_FONTCATALOGSERVICE_CID, |
321 |
NS_FONTCATALOGSERVICE_CID, |
296 |
"@mozilla.org/gfx/xfontcatalogservice;1", |
322 |
"@mozilla.org/gfx/xfontcatalogservice;1", |
297 |
nsFT2FontCatalogConstructor }, |
323 |
nsFT2FontCatalogConstructor }, |
298 |
#ifdef MOZ_ENABLE_FREETYPE2 |
|
|
299 |
{ "FreeType2 routines", |
324 |
{ "FreeType2 routines", |
300 |
NS_FREETYPE2_CID, |
325 |
NS_FREETYPE2_CID, |
301 |
NS_FREETYPE2_CONTRACTID, |
326 |
NS_FREETYPE2_CONTRACTID, |
302 |
-- gfx/src/gtk/nsIFontMetricsGTK.h |
327 |
++ gfx/src/gtk/nsIFontMetricsGTK.h |
Lines 121-126
Link Here
|
121 |
// particular handle. |
121 |
// particular handle. |
122 |
virtual GdkFont* GetCurrentGDKFont(void) = 0; |
122 |
virtual GdkFont* GetCurrentGDKFont(void) = 0; |
123 |
|
123 |
|
|
|
124 |
// Set the direction of the text rendering |
125 |
virtual nsresult SetRightToLeftText(PRBool aIsRTL) = 0; |
126 |
|
127 |
virtual nsresult GetClusterInfo(const PRUnichar *aText, |
128 |
PRUint32 aLength, |
129 |
PRUint32 *aClusterStarts) = 0; |
130 |
|
131 |
virtual nsresult GetPosition(const PRUnichar *aText, |
132 |
PRUint32 aLength, |
133 |
nscoord aCoord, |
134 |
PRUint32 &aInx) = 0; |
135 |
|
136 |
virtual nsresult GetRangeWidth(const PRUnichar *aText, |
137 |
PRUint32 aLength, |
138 |
PRUint32 aStart, |
139 |
PRUint32 aEnd, |
140 |
PRUint32 &aWidth) = 0; |
141 |
|
124 |
}; |
142 |
}; |
125 |
|
143 |
|
126 |
#endif /* __nsIFontMetricsGTK_h */ |
144 |
#endif /* __nsIFontMetricsGTK_h */ |
127 |
-- gfx/src/gtk/nsRenderingContextGTK.cpp |
145 |
++ gfx/src/gtk/nsRenderingContextGTK.cpp |
Lines 524-529
Link Here
|
524 |
|
524 |
|
525 |
values.foreground.pixel = |
525 |
values.foreground.pixel = |
526 |
gdk_rgb_xpixel_from_rgb(NS_TO_GDK_RGB(mCurrentColor)); |
526 |
gdk_rgb_xpixel_from_rgb(NS_TO_GDK_RGB(mCurrentColor)); |
|
|
527 |
values.foreground.red = (NS_GET_R(mCurrentColor) << 8) | NS_GET_R(mCurrentColor); |
528 |
values.foreground.green = (NS_GET_G(mCurrentColor) << 8) | NS_GET_G(mCurrentColor); |
529 |
values.foreground.blue = (NS_GET_B(mCurrentColor) << 8) | NS_GET_B(mCurrentColor); |
527 |
valuesMask = GDK_GC_FOREGROUND; |
530 |
valuesMask = GDK_GC_FOREGROUND; |
528 |
|
531 |
|
529 |
#ifdef MOZ_ENABLE_COREXFONTS |
532 |
#ifdef MOZ_ENABLE_COREXFONTS |
Lines 1438-1443
Link Here
|
1438 |
|
1441 |
|
1439 |
#endif /* MOZ_MATHML */ |
1442 |
#endif /* MOZ_MATHML */ |
1440 |
|
1443 |
|
|
|
1444 |
NS_IMETHODIMP nsRenderingContextGTK::SetRightToLeftText(PRBool aIsRTL) |
1445 |
{ |
1446 |
return mFontMetrics->SetRightToLeftText(aIsRTL); |
1447 |
} |
1448 |
|
1449 |
NS_IMETHODIMP nsRenderingContextGTK::GetClusterInfo(const PRUnichar *aText, |
1450 |
PRUint32 aLength, |
1451 |
PRUint32 *aClusterStarts) |
1452 |
{ |
1453 |
return mFontMetrics->GetClusterInfo(aText, aLength, aClusterStarts); |
1454 |
} |
1455 |
|
1456 |
NS_IMETHODIMP nsRenderingContextGTK::GetPosition(const PRUnichar *aText, PRUint32 aLength, |
1457 |
nscoord aCoord, PRUint32 &aInx) |
1458 |
{ |
1459 |
return mFontMetrics->GetPosition(aText, aLength, aCoord, aInx); |
1460 |
} |
1461 |
|
1462 |
NS_IMETHODIMP nsRenderingContextGTK::GetRangeWidth(const PRUnichar *aText, PRUint32 aLength, |
1463 |
PRUint32 aStart, PRUint32 aEnd, |
1464 |
PRUint32 &aWidth) |
1465 |
{ |
1466 |
return mFontMetrics->GetRangeWidth(aText, aLength, aStart, aEnd, aWidth); |
1467 |
} |
1468 |
|
1441 |
NS_IMETHODIMP nsRenderingContextGTK::DrawImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsPoint * aDestPoint) |
1469 |
NS_IMETHODIMP nsRenderingContextGTK::DrawImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsPoint * aDestPoint) |
1442 |
{ |
1470 |
{ |
1443 |
UpdateGC(); |
1471 |
UpdateGC(); |
1444 |
-- gfx/src/gtk/nsRenderingContextGTK.h |
1472 |
++ gfx/src/gtk/nsRenderingContextGTK.h |
Lines 194-199
Link Here
|
194 |
const nsRect &aDestBounds, PRUint32 aCopyFlags); |
194 |
const nsRect &aDestBounds, PRUint32 aCopyFlags); |
195 |
NS_IMETHOD RetrieveCurrentNativeGraphicData(PRUint32 * ngd); |
195 |
NS_IMETHOD RetrieveCurrentNativeGraphicData(PRUint32 * ngd); |
196 |
|
196 |
|
|
|
197 |
NS_IMETHOD SetRightToLeftText(PRBool aIsRTL); |
198 |
NS_IMETHOD GetClusterInfo(const PRUnichar *aText, PRUint32 aLength, |
199 |
PRUint32 *aClusterStarts); |
200 |
NS_IMETHOD GetPosition(const PRUnichar *aText, PRUint32 aLength, |
201 |
nscoord aCoord, PRUint32 &aInx); |
202 |
NS_IMETHOD GetRangeWidth(const PRUnichar *aText, |
203 |
PRUint32 aLength, |
204 |
PRUint32 aStart, |
205 |
PRUint32 aEnd, |
206 |
PRUint32 &aWidth); |
207 |
|
197 |
NS_IMETHOD DrawImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsPoint * aDestPoint); |
208 |
NS_IMETHOD DrawImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsPoint * aDestPoint); |
198 |
NS_IMETHOD DrawScaledImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsRect * aDestRect); |
209 |
NS_IMETHOD DrawScaledImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsRect * aDestRect); |
199 |
|
210 |
|
200 |
-- gfx/src/gtk/nsFontMetricsPango.h |
211 |
++ gfx/src/gtk/nsFontMetricsPango.h |
Line 0
Link Here
|
0 |
-- gfx/src/gtk/nsFontMetricsXft.cpp |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* vim:expandtab:shiftwidth=4:tabstop=4: |
3 |
*/ |
4 |
/* ***** BEGIN LICENSE BLOCK ***** |
5 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
6 |
* |
7 |
* The contents of this file are subject to the Mozilla Public License Version |
8 |
* 1.1 (the "License"); you may not use this file except in compliance with |
9 |
* the License. You may obtain a copy of the License at |
10 |
* http://www.mozilla.org/MPL/ |
11 |
* |
12 |
* Software distributed under the License is distributed on an "AS IS" basis, |
13 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
14 |
* for the specific language governing rights and limitations under the |
15 |
* License. |
16 |
* |
17 |
* The Original Code is mozilla.org code. |
18 |
* |
19 |
* The Initial Developer of the Original Code Christopher Blizzard |
20 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
21 |
* are Copyright (C) 2002 the Initial Developer. All Rights Reserved. |
22 |
* |
23 |
* Contributor(s): |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
#include "nsIFontMetrics.h" |
40 |
#include "nsIFontEnumerator.h" |
41 |
#include "nsCRT.h" |
42 |
#include "nsIAtom.h" |
43 |
#include "nsString.h" |
44 |
#include "nsVoidArray.h" |
45 |
#include "nsIFontMetricsGTK.h" |
46 |
|
47 |
#include <pango/pango.h> |
48 |
|
49 |
class nsFontMetricsPango : public nsIFontMetricsGTK |
50 |
{ |
51 |
public: |
52 |
nsFontMetricsPango(); |
53 |
virtual ~nsFontMetricsPango(); |
54 |
|
55 |
NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW |
56 |
|
57 |
// nsISupports |
58 |
NS_DECL_ISUPPORTS |
59 |
|
60 |
// nsIFontMetrics |
61 |
NS_IMETHOD Init (const nsFont& aFont, nsIAtom* aLangGroup, |
62 |
nsIDeviceContext *aContext); |
63 |
NS_IMETHOD Destroy(); |
64 |
NS_IMETHOD GetFont (const nsFont *&aFont); |
65 |
NS_IMETHOD GetLangGroup (nsIAtom** aLangGroup); |
66 |
NS_IMETHOD GetFontHandle (nsFontHandle &aHandle); |
67 |
|
68 |
NS_IMETHOD GetXHeight (nscoord& aResult) |
69 |
{ aResult = mXHeight; return NS_OK; }; |
70 |
|
71 |
NS_IMETHOD GetSuperscriptOffset (nscoord& aResult) |
72 |
{ aResult = mSuperscriptOffset; |
73 |
return NS_OK; }; |
74 |
|
75 |
NS_IMETHOD GetSubscriptOffset (nscoord& aResult) |
76 |
{ aResult = mSubscriptOffset; |
77 |
return NS_OK; }; |
78 |
|
79 |
NS_IMETHOD GetStrikeout (nscoord& aOffset, nscoord& aSize) |
80 |
{ aOffset = mStrikeoutOffset; |
81 |
aSize = mStrikeoutSize; |
82 |
return NS_OK; }; |
83 |
|
84 |
NS_IMETHOD GetUnderline (nscoord& aOffset, nscoord& aSize) |
85 |
{ aOffset = mUnderlineOffset; |
86 |
aSize = mUnderlineSize; |
87 |
return NS_OK; }; |
88 |
|
89 |
NS_IMETHOD GetHeight (nscoord &aHeight) |
90 |
{ aHeight = mMaxHeight; |
91 |
return NS_OK; }; |
92 |
|
93 |
NS_IMETHOD GetNormalLineHeight (nscoord &aHeight) |
94 |
{ aHeight = mEmHeight + mLeading; |
95 |
return NS_OK; }; |
96 |
|
97 |
NS_IMETHOD GetLeading (nscoord &aLeading) |
98 |
{ aLeading = mLeading; |
99 |
return NS_OK; }; |
100 |
|
101 |
NS_IMETHOD GetEmHeight (nscoord &aHeight) |
102 |
{ aHeight = mEmHeight; |
103 |
return NS_OK; }; |
104 |
|
105 |
NS_IMETHOD GetEmAscent (nscoord &aAscent) |
106 |
{ aAscent = mEmAscent; |
107 |
return NS_OK; }; |
108 |
|
109 |
NS_IMETHOD GetEmDescent (nscoord &aDescent) |
110 |
{ aDescent = mEmDescent; |
111 |
return NS_OK; }; |
112 |
|
113 |
NS_IMETHOD GetMaxHeight (nscoord &aHeight) |
114 |
{ aHeight = mMaxHeight; |
115 |
return NS_OK; }; |
116 |
|
117 |
NS_IMETHOD GetMaxAscent (nscoord &aAscent) |
118 |
{ aAscent = mMaxAscent; |
119 |
return NS_OK; }; |
120 |
|
121 |
NS_IMETHOD GetMaxDescent (nscoord &aDescent) |
122 |
{ aDescent = mMaxDescent; |
123 |
return NS_OK; }; |
124 |
|
125 |
NS_IMETHOD GetMaxAdvance (nscoord &aAdvance) |
126 |
{ aAdvance = mMaxAdvance; |
127 |
return NS_OK; }; |
128 |
|
129 |
NS_IMETHOD GetSpaceWidth (nscoord &aSpaceCharWidth) |
130 |
{ aSpaceCharWidth = mSpaceWidth; |
131 |
return NS_OK; }; |
132 |
|
133 |
NS_IMETHOD GetAveCharWidth (nscoord &aAveCharWidth) |
134 |
{ aAveCharWidth = mAveCharWidth; |
135 |
return NS_OK; }; |
136 |
|
137 |
// nsIFontMetricsGTK (calls from the font rendering layer) |
138 |
virtual nsresult GetWidth(const char* aString, PRUint32 aLength, |
139 |
nscoord& aWidth, |
140 |
nsRenderingContextGTK *aContext); |
141 |
virtual nsresult GetWidth(const PRUnichar* aString, PRUint32 aLength, |
142 |
nscoord& aWidth, PRInt32 *aFontID, |
143 |
nsRenderingContextGTK *aContext); |
144 |
|
145 |
virtual nsresult GetTextDimensions(const PRUnichar* aString, |
146 |
PRUint32 aLength, |
147 |
nsTextDimensions& aDimensions, |
148 |
PRInt32* aFontID, |
149 |
nsRenderingContextGTK *aContext); |
150 |
virtual nsresult GetTextDimensions(const char* aString, |
151 |
PRInt32 aLength, |
152 |
PRInt32 aAvailWidth, |
153 |
PRInt32* aBreaks, |
154 |
PRInt32 aNumBreaks, |
155 |
nsTextDimensions& aDimensions, |
156 |
PRInt32& aNumCharsFit, |
157 |
nsTextDimensions& aLastWordDimensions, |
158 |
PRInt32* aFontID, |
159 |
nsRenderingContextGTK *aContext); |
160 |
virtual nsresult GetTextDimensions(const PRUnichar* aString, |
161 |
PRInt32 aLength, |
162 |
PRInt32 aAvailWidth, |
163 |
PRInt32* aBreaks, |
164 |
PRInt32 aNumBreaks, |
165 |
nsTextDimensions& aDimensions, |
166 |
PRInt32& aNumCharsFit, |
167 |
nsTextDimensions& aLastWordDimensions, |
168 |
PRInt32* aFontID, |
169 |
nsRenderingContextGTK *aContext); |
170 |
|
171 |
virtual nsresult DrawString(const char *aString, PRUint32 aLength, |
172 |
nscoord aX, nscoord aY, |
173 |
const nscoord* aSpacing, |
174 |
nsRenderingContextGTK *aContext, |
175 |
nsDrawingSurfaceGTK *aSurface); |
176 |
virtual nsresult DrawString(const PRUnichar* aString, PRUint32 aLength, |
177 |
nscoord aX, nscoord aY, |
178 |
PRInt32 aFontID, |
179 |
const nscoord* aSpacing, |
180 |
nsRenderingContextGTK *aContext, |
181 |
nsDrawingSurfaceGTK *aSurface); |
182 |
|
183 |
#ifdef MOZ_MATHML |
184 |
virtual nsresult GetBoundingMetrics(const char *aString, PRUint32 aLength, |
185 |
nsBoundingMetrics &aBoundingMetrics, |
186 |
nsRenderingContextGTK *aContext); |
187 |
virtual nsresult GetBoundingMetrics(const PRUnichar *aString, |
188 |
PRUint32 aLength, |
189 |
nsBoundingMetrics &aBoundingMetrics, |
190 |
PRInt32 *aFontID, |
191 |
nsRenderingContextGTK *aContext); |
192 |
#endif /* MOZ_MATHML */ |
193 |
|
194 |
virtual GdkFont* GetCurrentGDKFont(void); |
195 |
|
196 |
virtual nsresult SetRightToLeftText(PRBool aIsRTL); |
197 |
|
198 |
virtual nsresult GetClusterInfo(const PRUnichar *aText, |
199 |
PRUint32 aLength, |
200 |
PRUint32 *aClusterStarts); |
201 |
|
202 |
virtual nsresult GetPosition(const PRUnichar *aText, |
203 |
PRUint32 aLength, |
204 |
nscoord aCoord, |
205 |
PRUint32 &aInx); |
206 |
|
207 |
virtual nsresult GetRangeWidth(const PRUnichar *aText, |
208 |
PRUint32 aLength, |
209 |
PRUint32 aStart, |
210 |
PRUint32 aEnd, |
211 |
PRUint32 &aWidth); |
212 |
|
213 |
// get hints for the font |
214 |
static PRUint32 GetHints (void); |
215 |
|
216 |
// drawing surface methods |
217 |
static nsresult FamilyExists (nsIDeviceContext *aDevice, |
218 |
const nsString &aName); |
219 |
|
220 |
private: |
221 |
|
222 |
// generic font metrics class bits |
223 |
nsCStringArray mFontList; |
224 |
nsAutoVoidArray mFontIsGeneric; |
225 |
|
226 |
nsIDeviceContext *mDeviceContext; |
227 |
nsCOMPtr<nsIAtom> mLangGroup; |
228 |
nsCString *mGenericFont; |
229 |
nsFont *mFont; |
230 |
float mPointSize; |
231 |
|
232 |
nsCAutoString mDefaultFont; |
233 |
|
234 |
// Pango-related items |
235 |
PangoFontDescription *mPangoFontDesc; |
236 |
PangoContext *mPangoContext; |
237 |
PangoContext *mLTRPangoContext; |
238 |
PangoContext *mRTLPangoContext; |
239 |
PangoAttrList *mPangoAttrList; |
240 |
PRBool mIsRTL; |
241 |
|
242 |
// Cached font metrics |
243 |
nscoord mXHeight; |
244 |
nscoord mSuperscriptOffset; |
245 |
nscoord mSubscriptOffset; |
246 |
nscoord mStrikeoutOffset; |
247 |
nscoord mStrikeoutSize; |
248 |
nscoord mUnderlineOffset; |
249 |
nscoord mUnderlineSize; |
250 |
nscoord mMaxHeight; |
251 |
nscoord mLeading; |
252 |
nscoord mEmHeight; |
253 |
nscoord mEmAscent; |
254 |
nscoord mEmDescent; |
255 |
nscoord mMaxAscent; |
256 |
nscoord mMaxDescent; |
257 |
nscoord mMaxAdvance; |
258 |
nscoord mSpaceWidth; |
259 |
nscoord mPangoSpaceWidth; |
260 |
nscoord mAveCharWidth; |
261 |
|
262 |
// Private methods |
263 |
nsresult RealizeFont(void); |
264 |
nsresult CacheFontMetrics(void); |
265 |
|
266 |
static PRBool EnumFontCallback(const nsString &aFamily, |
267 |
PRBool aIsGeneric, void *aData); |
268 |
|
269 |
void DrawStringSlowly(const gchar *aText, |
270 |
const PRUnichar *aOrigString, |
271 |
PRUint32 aLength, |
272 |
GdkDrawable *aDrawable, |
273 |
GdkGC *aGC, gint aX, gint aY, |
274 |
PangoLayoutLine *aLine, |
275 |
const nscoord *aSpacing); |
276 |
|
277 |
nsresult GetTextDimensionsInternal(const gchar* aString, |
278 |
PRInt32 aLength, |
279 |
PRInt32 aAvailWidth, |
280 |
PRInt32* aBreaks, |
281 |
PRInt32 aNumBreaks, |
282 |
nsTextDimensions& aDimensions, |
283 |
PRInt32& aNumCharsFit, |
284 |
nsTextDimensions& aLastWordDimensions, |
285 |
nsRenderingContextGTK *aContext); |
286 |
|
287 |
void FixupSpaceWidths (PangoLayout *aLayout, const char *aString); |
288 |
}; |
289 |
|
290 |
class nsFontEnumeratorPango : public nsIFontEnumerator |
291 |
{ |
292 |
public: |
293 |
nsFontEnumeratorPango(); |
294 |
NS_DECL_ISUPPORTS |
295 |
NS_DECL_NSIFONTENUMERATOR |
296 |
}; |
|
|
297 |
++ gfx/src/gtk/nsFontMetricsXft.cpp |
Lines 64-69
Link Here
|
64 |
#include "nsNetUtil.h" |
64 |
#include "nsNetUtil.h" |
65 |
#include "nsClassHashtable.h" |
65 |
#include "nsClassHashtable.h" |
66 |
#include "nsAutoBuffer.h" |
66 |
#include "nsAutoBuffer.h" |
|
|
67 |
#include "nsFontConfigUtils.h" |
67 |
|
68 |
|
68 |
#include <gdk/gdkx.h> |
69 |
#include <gdk/gdkx.h> |
69 |
#include <freetype/tttables.h> |
70 |
#include <freetype/tttables.h> |
Lines 197-222
Link Here
|
197 |
FT_Encoding mFT_Encoding; |
198 |
FT_Encoding mFT_Encoding; |
198 |
}; |
199 |
}; |
199 |
|
200 |
|
200 |
struct MozXftLangGroup { |
|
|
201 |
const char *mozLangGroup; |
202 |
FcChar32 character; |
203 |
const FcChar8 *XftLang; |
204 |
}; |
205 |
|
206 |
static const MozXftLangGroup MozXftLangGroups[] = { |
207 |
{ "x-western", 0x0041, (const FcChar8 *)"en" }, |
208 |
{ "x-central-euro", 0x0100, (const FcChar8 *)"pl" }, |
209 |
{ "x-cyrillic", 0x0411, (const FcChar8 *)"ru" }, |
210 |
{ "x-baltic", 0x0104, (const FcChar8 *)"lv" }, |
211 |
{ "x-devanagari", 0x0905, (const FcChar8 *)"hi" }, |
212 |
{ "x-tamil", 0x0B85, (const FcChar8 *)"ta" }, |
213 |
{ "x-unicode", 0x0000, 0 }, |
214 |
{ "x-user-def", 0x0000, 0 }, |
215 |
}; |
216 |
|
217 |
#define NUM_XFT_LANG_GROUPS (sizeof (MozXftLangGroups) / \ |
218 |
sizeof (MozXftLangGroups[0])) |
219 |
|
220 |
struct DrawStringData { |
201 |
struct DrawStringData { |
221 |
nscoord x; |
202 |
nscoord x; |
222 |
nscoord y; |
203 |
nscoord y; |
Lines 239-259
Link Here
|
239 |
#define AUTO_BUFFER_SIZE 3000 |
220 |
#define AUTO_BUFFER_SIZE 3000 |
240 |
typedef nsAutoBuffer<FcChar32, AUTO_BUFFER_SIZE> nsAutoFcChar32Buffer; |
221 |
typedef nsAutoBuffer<FcChar32, AUTO_BUFFER_SIZE> nsAutoFcChar32Buffer; |
241 |
|
222 |
|
242 |
static int CalculateSlant (PRUint8 aStyle); |
|
|
243 |
static int CalculateWeight (PRUint16 aWeight); |
244 |
static void AddLangGroup (FcPattern *aPattern, nsIAtom *aLangGroup); |
245 |
static void AddFFRE (FcPattern *aPattern, nsCString *aFamily, |
246 |
PRBool aWeak); |
247 |
static void FFREToFamily (nsACString &aFFREName, nsACString &oFamily); |
248 |
static int FFRECountHyphens (nsACString &aFFREName); |
249 |
static int CompareFontNames (const void* aArg1, const void* aArg2, |
223 |
static int CompareFontNames (const void* aArg1, const void* aArg2, |
250 |
void* aClosure); |
224 |
void* aClosure); |
251 |
static PRBool IsASCIIFontName (const nsString& aName); |
|
|
252 |
static nsresult EnumFontsXft (nsIAtom* aLangGroup, const char* aGeneric, |
225 |
static nsresult EnumFontsXft (nsIAtom* aLangGroup, const char* aGeneric, |
253 |
PRUint32* aCount, PRUnichar*** aResult); |
226 |
PRUint32* aCount, PRUnichar*** aResult); |
254 |
|
227 |
|
255 |
static const MozXftLangGroup* FindFCLangGroup (nsACString &aLangGroup); |
|
|
256 |
|
257 |
static void ConvertCharToUCS4 (const char *aString, |
228 |
static void ConvertCharToUCS4 (const char *aString, |
258 |
PRUint32 aLength, |
229 |
PRUint32 aLength, |
259 |
nsAutoFcChar32Buffer &aOutBuffer, |
230 |
nsAutoFcChar32Buffer &aOutBuffer, |
Lines 452-458
Link Here
|
452 |
// Make sure that the pixel size is at least greater than zero |
423 |
// Make sure that the pixel size is at least greater than zero |
453 |
if (mPixelSize < 1) { |
424 |
if (mPixelSize < 1) { |
454 |
#ifdef DEBUG |
425 |
#ifdef DEBUG |
455 |
printf("*** Warning: nsFontMetricsXft was passed a pixel size of %d\n", |
426 |
printf("*** Warning: nsFontMetricsXft was passed a pixel size of %f\n", |
456 |
mPixelSize); |
427 |
mPixelSize); |
457 |
#endif |
428 |
#endif |
458 |
mPixelSize = 1; |
429 |
mPixelSize = 1; |
Lines 477-482
Link Here
|
477 |
if (NS_FAILED(RealizeFont())) |
448 |
if (NS_FAILED(RealizeFont())) |
478 |
return NS_ERROR_FAILURE; |
449 |
return NS_ERROR_FAILURE; |
479 |
|
450 |
|
|
|
451 |
#ifdef DEBUG_foo |
452 |
printf("%i\n", mXHeight); |
453 |
printf("%i\n", mSuperscriptOffset); |
454 |
printf("%i\n", mSubscriptOffset); |
455 |
printf("%i\n", mStrikeoutOffset); |
456 |
printf("%i\n", mStrikeoutSize); |
457 |
printf("%i\n", mUnderlineOffset); |
458 |
printf("%i\n", mUnderlineSize); |
459 |
printf("%i\n", mMaxHeight); |
460 |
printf("%i\n", mLeading); |
461 |
printf("%i\n", mEmHeight); |
462 |
printf("%i\n", mEmAscent); |
463 |
printf("%i\n", mEmDescent); |
464 |
printf("%i\n", mMaxAscent); |
465 |
printf("%i\n", mMaxDescent); |
466 |
printf("%i\n", mMaxAdvance); |
467 |
printf("%i\n", mSpaceWidth); |
468 |
printf("%i\n", mAveCharWidth); |
469 |
#endif /* DEBUG_foo */ |
470 |
|
480 |
return NS_OK; |
471 |
return NS_OK; |
481 |
} |
472 |
} |
482 |
|
473 |
|
Lines 532-537
Link Here
|
532 |
f = mDeviceContext->DevUnitsToAppUnits(); |
523 |
f = mDeviceContext->DevUnitsToAppUnits(); |
533 |
aWidth = NSToCoordRound(glyphInfo.xOff * f); |
524 |
aWidth = NSToCoordRound(glyphInfo.xOff * f); |
534 |
|
525 |
|
|
|
526 |
#ifdef DEBUG_foo |
527 |
printf("GetWidth (char *) %d\n", aWidth); |
528 |
#endif |
529 |
|
535 |
return NS_OK; |
530 |
return NS_OK; |
536 |
} |
531 |
} |
537 |
|
532 |
|
Lines 555-560
Link Here
|
555 |
if (aFontID) |
550 |
if (aFontID) |
556 |
*aFontID = 0; |
551 |
*aFontID = 0; |
557 |
|
552 |
|
|
|
553 |
#ifdef DEBUG_foo |
554 |
printf("GetWidth %d\n", aWidth); |
555 |
#endif |
556 |
|
558 |
return NS_OK; |
557 |
return NS_OK; |
559 |
} |
558 |
} |
560 |
|
559 |
|
Lines 588-593
Link Here
|
588 |
if (nsnull != aFontID) |
587 |
if (nsnull != aFontID) |
589 |
*aFontID = 0; |
588 |
*aFontID = 0; |
590 |
|
589 |
|
|
|
590 |
#ifdef DEBUG_foo |
591 |
printf("GetTextDimensions %d %d %d\n", aDimensions.width, |
592 |
aDimensions.ascent, aDimensions.descent); |
593 |
#endif |
594 |
|
591 |
return NS_OK; |
595 |
return NS_OK; |
592 |
} |
596 |
} |
593 |
|
597 |
|
Lines 647-652
Link Here
|
647 |
nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color); |
651 |
nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color); |
648 |
data.drawBuffer = &drawBuffer; |
652 |
data.drawBuffer = &drawBuffer; |
649 |
|
653 |
|
|
|
654 |
#ifdef DEBUG_foo |
655 |
printf("DrawString (char *)\n"); |
656 |
#endif |
657 |
|
650 |
return EnumerateGlyphs(aString, aLength, |
658 |
return EnumerateGlyphs(aString, aLength, |
651 |
&nsFontMetricsXft::DrawStringCallback, &data); |
659 |
&nsFontMetricsXft::DrawStringCallback, &data); |
652 |
} |
660 |
} |
Lines 677-682
Link Here
|
677 |
nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color); |
685 |
nsAutoDrawSpecBuffer drawBuffer(data.draw, &data.color); |
678 |
data.drawBuffer = &drawBuffer; |
686 |
data.drawBuffer = &drawBuffer; |
679 |
|
687 |
|
|
|
688 |
#ifdef DEBUG_foo |
689 |
printf("DrawString\n"); |
690 |
#endif |
691 |
|
680 |
return EnumerateGlyphs(aString, aLength, |
692 |
return EnumerateGlyphs(aString, aLength, |
681 |
&nsFontMetricsXft::DrawStringCallback, &data); |
693 |
&nsFontMetricsXft::DrawStringCallback, &data); |
682 |
} |
694 |
} |
Lines 716-721
Link Here
|
716 |
aBoundingMetrics.ascent = NSToCoordRound(aBoundingMetrics.ascent * P2T); |
728 |
aBoundingMetrics.ascent = NSToCoordRound(aBoundingMetrics.ascent * P2T); |
717 |
aBoundingMetrics.descent = NSToCoordRound(aBoundingMetrics.descent * P2T); |
729 |
aBoundingMetrics.descent = NSToCoordRound(aBoundingMetrics.descent * P2T); |
718 |
|
730 |
|
|
|
731 |
#ifdef DEBUG_foo |
732 |
printf("GetBoundingMetrics (char *)%d %d %d %d %d\n", |
733 |
aBoundingMetrics.leftBearing, |
734 |
aBoundingMetrics.rightBearing, |
735 |
aBoundingMetrics.width, |
736 |
aBoundingMetrics.ascent, |
737 |
aBoundingMetrics.descent); |
738 |
#endif |
739 |
|
719 |
return NS_OK; |
740 |
return NS_OK; |
720 |
} |
741 |
} |
721 |
|
742 |
|
Lines 757-762
Link Here
|
757 |
if (nsnull != aFontID) |
778 |
if (nsnull != aFontID) |
758 |
*aFontID = 0; |
779 |
*aFontID = 0; |
759 |
|
780 |
|
|
|
781 |
#ifdef DEBUG_foo |
782 |
printf("GetBoundingMetrics %d %d %d %d %d\n", |
783 |
aBoundingMetrics.leftBearing, |
784 |
aBoundingMetrics.rightBearing, |
785 |
aBoundingMetrics.width, |
786 |
aBoundingMetrics.ascent, |
787 |
aBoundingMetrics.descent); |
788 |
#endif |
789 |
|
760 |
return NS_OK; |
790 |
return NS_OK; |
761 |
} |
791 |
} |
762 |
|
792 |
|
Lines 768-773
Link Here
|
768 |
return nsnull; |
798 |
return nsnull; |
769 |
} |
799 |
} |
770 |
|
800 |
|
|
|
801 |
nsresult |
802 |
nsFontMetricsXft::SetRightToLeftText(PRBool aIsRTL) |
803 |
{ |
804 |
return NS_OK; |
805 |
} |
806 |
|
807 |
nsresult |
808 |
nsFontMetricsXft::GetClusterInfo(const PRUnichar *aText, |
809 |
PRUint32 aLength, |
810 |
PRUint32 *aClusterStarts) |
811 |
{ |
812 |
return NS_ERROR_NOT_IMPLEMENTED; |
813 |
} |
814 |
|
815 |
nsresult |
816 |
nsFontMetricsXft::GetPosition(const PRUnichar *aText, |
817 |
PRUint32 aLength, |
818 |
nscoord aCoord, |
819 |
PRUint32 &aInx) |
820 |
{ |
821 |
return NS_ERROR_NOT_IMPLEMENTED; |
822 |
} |
823 |
|
824 |
nsresult |
825 |
nsFontMetricsXft::GetRangeWidth(const PRUnichar *aText, |
826 |
PRUint32 aLength, |
827 |
PRUint32 aStart, |
828 |
PRUint32 aEnd, |
829 |
PRUint32 &aWidth) |
830 |
{ |
831 |
return NS_ERROR_NOT_IMPLEMENTED; |
832 |
} |
833 |
|
771 |
PRUint32 |
834 |
PRUint32 |
772 |
nsFontMetricsXft::GetHints(void) |
835 |
nsFontMetricsXft::GetHints(void) |
773 |
{ |
836 |
{ |
Lines 1041-1053
Link Here
|
1041 |
break;; |
1104 |
break;; |
1042 |
|
1105 |
|
1043 |
nsCString *familyName = mFontList.CStringAt(i); |
1106 |
nsCString *familyName = mFontList.CStringAt(i); |
1044 |
AddFFRE(mPattern, familyName, PR_FALSE); |
1107 |
NS_AddFFRE(mPattern, familyName, PR_FALSE); |
1045 |
} |
1108 |
} |
1046 |
|
1109 |
|
1047 |
// Add the language group. Note that we do this before adding any |
1110 |
// Add the language group. Note that we do this before adding any |
1048 |
// generics. That's because the language is more important than |
1111 |
// generics. That's because the language is more important than |
1049 |
// any generic font. |
1112 |
// any generic font. |
1050 |
AddLangGroup (mPattern, mLangGroup); |
1113 |
NS_AddLangGroup (mPattern, mLangGroup); |
1051 |
|
1114 |
|
1052 |
// If there's a generic add a pref for the generic if there's one |
1115 |
// If there's a generic add a pref for the generic if there's one |
1053 |
// set. |
1116 |
// set. |
Lines 1071-1077
Link Here
|
1071 |
|
1134 |
|
1072 |
// we ignore prefs that have three hypens since they are X |
1135 |
// we ignore prefs that have three hypens since they are X |
1073 |
// style prefs. |
1136 |
// style prefs. |
1074 |
if (FFRECountHyphens(value) < 3) { |
1137 |
if (NS_FFRECountHyphens(value) < 3) { |
1075 |
nsCString tmpstr; |
1138 |
nsCString tmpstr; |
1076 |
tmpstr.Append(value); |
1139 |
tmpstr.Append(value); |
1077 |
|
1140 |
|
Lines 1080-1093
Link Here
|
1080 |
tmpstr.get()); |
1143 |
tmpstr.get()); |
1081 |
} |
1144 |
} |
1082 |
|
1145 |
|
1083 |
AddFFRE(mPattern, &tmpstr, PR_FALSE); |
1146 |
NS_AddFFRE(mPattern, &tmpstr, PR_FALSE); |
1084 |
} |
1147 |
} |
1085 |
} |
1148 |
} |
1086 |
} |
1149 |
} |
1087 |
|
1150 |
|
1088 |
// Add the generic if there is one. |
1151 |
// Add the generic if there is one. |
1089 |
if (mGenericFont && !mFont->systemFont) |
1152 |
if (mGenericFont && !mFont->systemFont) |
1090 |
AddFFRE(mPattern, mGenericFont, PR_FALSE); |
1153 |
NS_AddFFRE(mPattern, mGenericFont, PR_FALSE); |
1091 |
|
1154 |
|
1092 |
if (PR_LOG_TEST(gXftFontLoad, PR_LOG_DEBUG)) { |
1155 |
if (PR_LOG_TEST(gXftFontLoad, PR_LOG_DEBUG)) { |
1093 |
// generic font |
1156 |
// generic font |
Lines 1114-1120
Link Here
|
1114 |
|
1177 |
|
1115 |
// weight |
1178 |
// weight |
1116 |
printf("\tweight: (orig,calc) %d,%d\n", |
1179 |
printf("\tweight: (orig,calc) %d,%d\n", |
1117 |
mFont->weight, CalculateWeight(mFont->weight)); |
1180 |
mFont->weight, NS_CalculateWeight(mFont->weight)); |
1118 |
|
1181 |
|
1119 |
} |
1182 |
} |
1120 |
|
1183 |
|
Lines 1126-1136
Link Here
|
1126 |
|
1189 |
|
1127 |
// Add the slant type |
1190 |
// Add the slant type |
1128 |
FcPatternAddInteger(mPattern, FC_SLANT, |
1191 |
FcPatternAddInteger(mPattern, FC_SLANT, |
1129 |
CalculateSlant(mFont->style)); |
1192 |
NS_CalculateSlant(mFont->style)); |
1130 |
|
1193 |
|
1131 |
// Add the weight |
1194 |
// Add the weight |
1132 |
FcPatternAddInteger(mPattern, FC_WEIGHT, |
1195 |
FcPatternAddInteger(mPattern, FC_WEIGHT, |
1133 |
CalculateWeight(mFont->weight)); |
1196 |
NS_CalculateWeight(mFont->weight)); |
1134 |
|
1197 |
|
1135 |
// Set up the default substitutions for this font |
1198 |
// Set up the default substitutions for this font |
1136 |
FcConfigSubstitute(0, mPattern, FcMatchPattern); |
1199 |
FcConfigSubstitute(0, mPattern, FcMatchPattern); |
Lines 1292-1298
Link Here
|
1292 |
FcPatternAddInteger(pattern, FC_PIXEL_SIZE, int(0.5 * mPixelSize)); |
1355 |
FcPatternAddInteger(pattern, FC_PIXEL_SIZE, int(0.5 * mPixelSize)); |
1293 |
|
1356 |
|
1294 |
FcPatternAddInteger(pattern, FC_WEIGHT, |
1357 |
FcPatternAddInteger(pattern, FC_WEIGHT, |
1295 |
CalculateWeight(mFont->weight)); |
1358 |
NS_CalculateWeight(mFont->weight)); |
1296 |
|
1359 |
|
1297 |
FcConfigSubstitute(0, pattern, FcMatchPattern); |
1360 |
FcConfigSubstitute(0, pattern, FcMatchPattern); |
1298 |
XftDefaultSubstitute(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY()), |
1361 |
XftDefaultSubstitute(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY()), |
Lines 1708-1714
Link Here
|
1708 |
nsFontMetricsXft::FamilyExists(nsIDeviceContext *aDevice, |
1771 |
nsFontMetricsXft::FamilyExists(nsIDeviceContext *aDevice, |
1709 |
const nsString &aName) |
1772 |
const nsString &aName) |
1710 |
{ |
1773 |
{ |
1711 |
if (!IsASCIIFontName(aName)) |
1774 |
if (!NS_IsASCIIFontName(aName)) |
1712 |
return NS_ERROR_FAILURE; |
1775 |
return NS_ERROR_FAILURE; |
1713 |
|
1776 |
|
1714 |
NS_ConvertUCS2toUTF8 name(aName); |
1777 |
NS_ConvertUCS2toUTF8 name(aName); |
Lines 1766-1772
Link Here
|
1766 |
{ |
1829 |
{ |
1767 |
// make sure it's an ascii name, if not then return and continue |
1830 |
// make sure it's an ascii name, if not then return and continue |
1768 |
// enumerating |
1831 |
// enumerating |
1769 |
if (!IsASCIIFontName(aFamily)) |
1832 |
if (!NS_IsASCIIFontName(aFamily)) |
1770 |
return PR_TRUE; |
1833 |
return PR_TRUE; |
1771 |
|
1834 |
|
1772 |
nsCAutoString name; |
1835 |
nsCAutoString name; |
Lines 1864-1870
Link Here
|
1864 |
|
1927 |
|
1865 |
if (aLangGroup && *aLangGroup) { |
1928 |
if (aLangGroup && *aLangGroup) { |
1866 |
nsCOMPtr<nsIAtom> langGroup = do_GetAtom(aLangGroup); |
1929 |
nsCOMPtr<nsIAtom> langGroup = do_GetAtom(aLangGroup); |
1867 |
AddLangGroup(match_pattern, langGroup); |
1930 |
NS_AddLangGroup(match_pattern, langGroup); |
1868 |
} |
1931 |
} |
1869 |
|
1932 |
|
1870 |
FcConfigSubstitute(0, match_pattern, FcMatchPattern); |
1933 |
FcConfigSubstitute(0, match_pattern, FcMatchPattern); |
Lines 2239-2387
Link Here
|
2239 |
|
2302 |
|
2240 |
/* static */ |
2303 |
/* static */ |
2241 |
int |
2304 |
int |
2242 |
CalculateSlant(PRUint8 aStyle) |
|
|
2243 |
{ |
2244 |
int fcSlant; |
2245 |
|
2246 |
switch(aStyle) { |
2247 |
case NS_FONT_STYLE_ITALIC: |
2248 |
fcSlant = FC_SLANT_ITALIC; |
2249 |
break; |
2250 |
case NS_FONT_STYLE_OBLIQUE: |
2251 |
fcSlant = FC_SLANT_OBLIQUE; |
2252 |
break; |
2253 |
default: |
2254 |
fcSlant = FC_SLANT_ROMAN; |
2255 |
break; |
2256 |
} |
2257 |
|
2258 |
return fcSlant; |
2259 |
} |
2260 |
|
2261 |
/* static */ |
2262 |
int |
2263 |
CalculateWeight (PRUint16 aWeight) |
2264 |
{ |
2265 |
/* |
2266 |
* weights come in two parts crammed into one |
2267 |
* integer -- the "base" weight is weight / 100, |
2268 |
* the rest of the value is the "offset" from that |
2269 |
* weight -- the number of steps to move to adjust |
2270 |
* the weight in the list of supported font weights, |
2271 |
* this value can be negative or positive. |
2272 |
*/ |
2273 |
PRInt32 baseWeight = (aWeight + 50) / 100; |
2274 |
PRInt32 offset = aWeight - baseWeight * 100; |
2275 |
|
2276 |
/* clip weights to range 0 to 9 */ |
2277 |
if (baseWeight < 0) |
2278 |
baseWeight = 0; |
2279 |
if (baseWeight > 9) |
2280 |
baseWeight = 9; |
2281 |
|
2282 |
/* Map from weight value to fcWeights index */ |
2283 |
static int fcWeightLookup[10] = { |
2284 |
0, 0, 0, 0, 1, 1, 2, 3, 3, 4, |
2285 |
}; |
2286 |
|
2287 |
PRInt32 fcWeight = fcWeightLookup[baseWeight]; |
2288 |
|
2289 |
/* |
2290 |
* adjust by the offset value, make sure we stay inside the |
2291 |
* fcWeights table |
2292 |
*/ |
2293 |
fcWeight += offset; |
2294 |
|
2295 |
if (fcWeight < 0) |
2296 |
fcWeight = 0; |
2297 |
if (fcWeight > 4) |
2298 |
fcWeight = 4; |
2299 |
|
2300 |
/* Map to final FC_WEIGHT value */ |
2301 |
static int fcWeights[5] = { |
2302 |
FC_WEIGHT_LIGHT, /* 0 */ |
2303 |
FC_WEIGHT_MEDIUM, /* 1 */ |
2304 |
FC_WEIGHT_DEMIBOLD, /* 2 */ |
2305 |
FC_WEIGHT_BOLD, /* 3 */ |
2306 |
FC_WEIGHT_BLACK, /* 4 */ |
2307 |
}; |
2308 |
|
2309 |
return fcWeights[fcWeight]; |
2310 |
|
2311 |
} |
2312 |
|
2313 |
/* static */ |
2314 |
void |
2315 |
AddLangGroup(FcPattern *aPattern, nsIAtom *aLangGroup) |
2316 |
{ |
2317 |
// Find the FC lang group for this lang group |
2318 |
nsCAutoString cname; |
2319 |
aLangGroup->ToUTF8String(cname); |
2320 |
|
2321 |
// see if the lang group needs to be translated from mozilla's |
2322 |
// internal mapping into fontconfig's |
2323 |
const struct MozXftLangGroup *langGroup; |
2324 |
langGroup = FindFCLangGroup(cname); |
2325 |
|
2326 |
// if there's no lang group, just use the lang group as it was |
2327 |
// passed to us |
2328 |
// |
2329 |
// we're casting away the const here for the strings - should be |
2330 |
// safe. |
2331 |
if (!langGroup) |
2332 |
FcPatternAddString(aPattern, FC_LANG, (FcChar8 *)cname.get()); |
2333 |
else if (langGroup->XftLang) |
2334 |
FcPatternAddString(aPattern, FC_LANG, (FcChar8 *)langGroup->XftLang); |
2335 |
} |
2336 |
|
2337 |
/* static */ |
2338 |
void |
2339 |
AddFFRE(FcPattern *aPattern, nsCString *aFamily, PRBool aWeak) |
2340 |
{ |
2341 |
nsCAutoString family; |
2342 |
FFREToFamily(*aFamily, family); |
2343 |
|
2344 |
FcValue v; |
2345 |
v.type = FcTypeString; |
2346 |
// casting away the const here, should be safe |
2347 |
v.u.s = (FcChar8 *)family.get(); |
2348 |
|
2349 |
if (aWeak) |
2350 |
FcPatternAddWeak(aPattern, FC_FAMILY, v, FcTrue); |
2351 |
else |
2352 |
FcPatternAdd(aPattern, FC_FAMILY, v, FcTrue); |
2353 |
} |
2354 |
|
2355 |
/* static */ |
2356 |
void |
2357 |
FFREToFamily(nsACString &aFFREName, nsACString &oFamily) |
2358 |
{ |
2359 |
if (FFRECountHyphens(aFFREName) == 3) { |
2360 |
PRInt32 familyHyphen = aFFREName.FindChar('-') + 1; |
2361 |
PRInt32 registryHyphen = aFFREName.FindChar('-',familyHyphen); |
2362 |
oFamily.Append(Substring(aFFREName, familyHyphen, |
2363 |
registryHyphen-familyHyphen)); |
2364 |
} |
2365 |
else { |
2366 |
oFamily.Append(aFFREName); |
2367 |
} |
2368 |
} |
2369 |
|
2370 |
/* static */ |
2371 |
int |
2372 |
FFRECountHyphens (nsACString &aFFREName) |
2373 |
{ |
2374 |
int h = 0; |
2375 |
PRInt32 hyphen = 0; |
2376 |
while ((hyphen = aFFREName.FindChar('-', hyphen)) >= 0) { |
2377 |
++h; |
2378 |
++hyphen; |
2379 |
} |
2380 |
return h; |
2381 |
} |
2382 |
|
2383 |
/* static */ |
2384 |
int |
2385 |
CompareFontNames (const void* aArg1, const void* aArg2, void* aClosure) |
2305 |
CompareFontNames (const void* aArg1, const void* aArg2, void* aClosure) |
2386 |
{ |
2306 |
{ |
2387 |
const PRUnichar* str1 = *((const PRUnichar**) aArg1); |
2307 |
const PRUnichar* str1 = *((const PRUnichar**) aArg1); |
Lines 2390-2412
Link Here
|
2390 |
return nsCRT::strcmp(str1, str2); |
2310 |
return nsCRT::strcmp(str1, str2); |
2391 |
} |
2311 |
} |
2392 |
|
2312 |
|
2393 |
PRBool |
|
|
2394 |
IsASCIIFontName(const nsString& aName) |
2395 |
{ |
2396 |
PRUint32 len = aName.Length(); |
2397 |
const PRUnichar* str = aName.get(); |
2398 |
for (PRUint32 i = 0; i < len; i++) { |
2399 |
/* |
2400 |
* X font names are printable ASCII, ignore others (for now) |
2401 |
*/ |
2402 |
if ((str[i] < 0x20) || (str[i] > 0x7E)) { |
2403 |
return PR_FALSE; |
2404 |
} |
2405 |
} |
2406 |
|
2407 |
return PR_TRUE; |
2408 |
} |
2409 |
|
2410 |
/* static */ |
2313 |
/* static */ |
2411 |
nsresult |
2314 |
nsresult |
2412 |
EnumFontsXft(nsIAtom* aLangGroup, const char* aGeneric, |
2315 |
EnumFontsXft(nsIAtom* aLangGroup, const char* aGeneric, |
Lines 2434-2440
Link Here
|
2434 |
|
2337 |
|
2435 |
// take the pattern and add the lang group to it |
2338 |
// take the pattern and add the lang group to it |
2436 |
if (aLangGroup) |
2339 |
if (aLangGroup) |
2437 |
AddLangGroup(pat, aLangGroup); |
2340 |
NS_AddLangGroup(pat, aLangGroup); |
2438 |
|
2341 |
|
2439 |
// get the font list |
2342 |
// get the font list |
2440 |
fs = FcFontList(0, pat, os); |
2343 |
fs = FcFontList(0, pat, os); |
Lines 2542-2561
Link Here
|
2542 |
} |
2445 |
} |
2543 |
|
2446 |
|
2544 |
/* static */ |
2447 |
/* static */ |
2545 |
const MozXftLangGroup* |
|
|
2546 |
FindFCLangGroup (nsACString &aLangGroup) |
2547 |
{ |
2548 |
for (unsigned int i=0; i < NUM_XFT_LANG_GROUPS; ++i) { |
2549 |
if (aLangGroup.Equals(MozXftLangGroups[i].mozLangGroup, |
2550 |
nsCaseInsensitiveCStringComparator())) { |
2551 |
return &MozXftLangGroups[i]; |
2552 |
} |
2553 |
} |
2554 |
|
2555 |
return nsnull; |
2556 |
} |
2557 |
|
2558 |
/* static */ |
2559 |
void |
2448 |
void |
2560 |
ConvertCharToUCS4(const char *aString, PRUint32 aLength, |
2449 |
ConvertCharToUCS4(const char *aString, PRUint32 aLength, |
2561 |
nsAutoFcChar32Buffer &aOutBuffer, PRUint32 *aOutLen) |
2450 |
nsAutoFcChar32Buffer &aOutBuffer, PRUint32 *aOutLen) |
2562 |
-- gfx/src/gtk/mozilla-decoder.cpp |
2451 |
++ gfx/src/gtk/mozilla-decoder.cpp |
Line 0
Link Here
|
0 |
-- gfx/src/gtk/mozilla-decoder.h |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* vim:expandtab:shiftwidth=4:tabstop=4: |
3 |
*/ |
4 |
/* ***** BEGIN LICENSE BLOCK ***** |
5 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
6 |
* |
7 |
* The contents of this file are subject to the Mozilla Public License Version |
8 |
* 1.1 (the "License"); you may not use this file except in compliance with |
9 |
* the License. You may obtain a copy of the License at |
10 |
* http://www.mozilla.org/MPL/ |
11 |
* |
12 |
* Software distributed under the License is distributed on an "AS IS" basis, |
13 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
14 |
* for the specific language governing rights and limitations under the |
15 |
* License. |
16 |
* |
17 |
* The Original Code is mozilla.org code. |
18 |
* |
19 |
* The Initial Developer of the Original Code is Christopher Blizzard |
20 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
21 |
* are Copyright (C) 2004 the Initial Developer. All Rights Reserved. |
22 |
* |
23 |
* Contributor(s): |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
#define PANGO_ENABLE_BACKEND |
40 |
#define PANGO_ENABLE_ENGINE |
41 |
|
42 |
#include "mozilla-decoder.h" |
43 |
#include <pango/pangoxft.h> |
44 |
#include <pango/pangofc-fontmap.h> |
45 |
#include <pango/pangofc-font.h> |
46 |
#include <gdk/gdkx.h> |
47 |
|
48 |
#include "nsString.h" |
49 |
#include "nsIPersistentProperties2.h" |
50 |
#include "nsNetUtil.h" |
51 |
#include "nsReadableUtils.h" |
52 |
#include "nsICharsetConverterManager.h" |
53 |
#include "nsICharRepresentable.h" |
54 |
#include "nsCompressedCharMap.h" |
55 |
|
56 |
#undef DEBUG_CUSTOM_ENCODER |
57 |
|
58 |
G_DEFINE_TYPE (MozillaDecoder, mozilla_decoder, PANGO_TYPE_FC_DECODER) |
59 |
|
60 |
MozillaDecoder *mozilla_decoder_new (void); |
61 |
|
62 |
static FcCharSet *mozilla_decoder_get_charset (PangoFcDecoder *decoder, |
63 |
PangoFcFont *fcfont); |
64 |
static PangoGlyph mozilla_decoder_get_glyph (PangoFcDecoder *decoder, |
65 |
PangoFcFont *fcfont, |
66 |
guint32 wc); |
67 |
|
68 |
static PangoFcDecoder *mozilla_find_decoder (FcPattern *pattern, |
69 |
gpointer user_data); |
70 |
|
71 |
typedef struct _MozillaDecoderPrivate MozillaDecoderPrivate; |
72 |
|
73 |
#define MOZILLA_DECODER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), MOZILLA_TYPE_DECODER, MozillaDecoderPrivate)) |
74 |
|
75 |
struct _MozillaDecoderPrivate { |
76 |
char *family; |
77 |
char *encoder; |
78 |
char *cmap; |
79 |
gboolean is_wide; |
80 |
FcCharSet *charset; |
81 |
nsCOMPtr<nsIUnicodeEncoder> uEncoder; |
82 |
}; |
83 |
|
84 |
static nsICharsetConverterManager *gCharsetManager = NULL; |
85 |
|
86 |
static NS_DEFINE_CID(kCharsetConverterManagerCID, |
87 |
NS_ICHARSETCONVERTERMANAGER_CID); |
88 |
|
89 |
// Hash tables that hold the custom encodings and custom cmaps used in |
90 |
// various fonts. |
91 |
GHashTable *encoder_hash = NULL; |
92 |
GHashTable *cmap_hash = NULL; |
93 |
GHashTable *wide_hash = NULL; |
94 |
|
95 |
void |
96 |
mozilla_decoder_init (MozillaDecoder *decoder) |
97 |
{ |
98 |
} |
99 |
|
100 |
void |
101 |
mozilla_decoder_class_init (MozillaDecoderClass *klass) |
102 |
{ |
103 |
GObjectClass *object_class = G_OBJECT_CLASS(klass); |
104 |
PangoFcDecoderClass *parent_class = PANGO_FC_DECODER_CLASS (klass); |
105 |
|
106 |
/* object_class->finalize = test_finalize; */ |
107 |
|
108 |
parent_class->get_charset = mozilla_decoder_get_charset; |
109 |
parent_class->get_glyph = mozilla_decoder_get_glyph; |
110 |
|
111 |
g_type_class_add_private (object_class, sizeof (MozillaDecoderPrivate)); |
112 |
} |
113 |
|
114 |
MozillaDecoder * |
115 |
mozilla_decoder_new(void) |
116 |
{ |
117 |
return (MozillaDecoder *)g_object_new(MOZILLA_TYPE_DECODER, NULL); |
118 |
} |
119 |
|
120 |
#ifdef DEBUG_CUSTOM_ENCODER |
121 |
void |
122 |
dump_hash(char *key, char *val, void *arg) |
123 |
{ |
124 |
printf("%s -> %s\n", key, val); |
125 |
} |
126 |
#endif |
127 |
|
128 |
/** |
129 |
* mozilla_decoders_init: |
130 |
* |
131 |
* #mozilla_decoders_init: |
132 |
* |
133 |
* This initializes all of the application-specific custom decoders |
134 |
* that Mozilla uses. This should only be called once during the |
135 |
* lifetime of the application. |
136 |
* |
137 |
* Return value: zero on success, not zero on failure. |
138 |
* |
139 |
**/ |
140 |
|
141 |
int |
142 |
mozilla_decoders_init(void) |
143 |
{ |
144 |
static PRBool initialized = PR_FALSE; |
145 |
if (initialized) |
146 |
return 0; |
147 |
|
148 |
encoder_hash = g_hash_table_new(g_str_hash, g_str_equal); |
149 |
cmap_hash = g_hash_table_new(g_str_hash, g_str_equal); |
150 |
wide_hash = g_hash_table_new(g_str_hash, g_str_equal); |
151 |
|
152 |
PRBool dumb = PR_FALSE; |
153 |
nsCOMPtr<nsIPersistentProperties> props; |
154 |
nsCOMPtr<nsISimpleEnumerator> encodeEnum; |
155 |
|
156 |
NS_LoadPersistentPropertiesFromURISpec(getter_AddRefs(props), |
157 |
NS_LITERAL_CSTRING("resource://gre/res/fonts/pangoFontEncoding.properties")); |
158 |
|
159 |
if (!props) |
160 |
goto loser; |
161 |
|
162 |
// Enumerate the properties in this file and figure out all of the |
163 |
// fonts for which we have custom encodings. |
164 |
props->Enumerate(getter_AddRefs(encodeEnum)); |
165 |
if (!encodeEnum) |
166 |
goto loser; |
167 |
|
168 |
while (encodeEnum->HasMoreElements(&dumb), dumb) { |
169 |
nsCOMPtr<nsIPropertyElement> prop; |
170 |
encodeEnum->GetNext(getter_AddRefs(prop)); |
171 |
if (!prop) |
172 |
goto loser; |
173 |
|
174 |
nsCAutoString name; |
175 |
prop->GetKey(name); |
176 |
nsAutoString value; |
177 |
prop->GetValue(value); |
178 |
|
179 |
if (!StringBeginsWith(name, NS_LITERAL_CSTRING("encoding."))) { |
180 |
printf("string doesn't begin with encoding?\n"); |
181 |
continue; |
182 |
} |
183 |
|
184 |
name = Substring(name, 9); |
185 |
|
186 |
if (StringEndsWith(name, NS_LITERAL_CSTRING(".ttf"))) { |
187 |
name = Substring(name, 0, name.Length() - 4); |
188 |
|
189 |
// Strip off a .wide if it's there. |
190 |
if (StringEndsWith(value, NS_LITERAL_STRING(".wide"))) { |
191 |
g_hash_table_insert(wide_hash, g_strdup(name.get()), |
192 |
g_strdup("wide")); |
193 |
value = Substring(value, 0, name.Length() - 5); |
194 |
} |
195 |
|
196 |
g_hash_table_insert(encoder_hash, |
197 |
g_strdup(name.get()), |
198 |
g_strdup(NS_ConvertUTF16toUTF8(value).get())); |
199 |
} |
200 |
else if (StringEndsWith(name, NS_LITERAL_CSTRING(".ftcmap"))) { |
201 |
name = Substring(name, 0, name.Length() - 7); |
202 |
g_hash_table_insert(cmap_hash, |
203 |
g_strdup(name.get()), |
204 |
g_strdup(NS_ConvertUTF16toUTF8(value).get())); |
205 |
} |
206 |
else { |
207 |
printf("unknown suffix used for mapping\n"); |
208 |
} |
209 |
} |
210 |
|
211 |
pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())), |
212 |
mozilla_find_decoder, |
213 |
NULL, |
214 |
NULL); |
215 |
|
216 |
initialized = PR_TRUE; |
217 |
|
218 |
#ifdef DEBUG_CUSTOM_ENCODER |
219 |
printf("*** encoders\n"); |
220 |
g_hash_table_foreach(encoder_hash, (GHFunc)dump_hash, NULL); |
221 |
|
222 |
printf("*** cmaps\n"); |
223 |
g_hash_table_foreach(cmap_hash, (GHFunc)dump_hash, NULL); |
224 |
#endif |
225 |
|
226 |
return 0; |
227 |
|
228 |
loser: |
229 |
return -1; |
230 |
} |
231 |
|
232 |
FcCharSet * |
233 |
mozilla_decoder_get_charset (PangoFcDecoder *decoder, |
234 |
PangoFcFont *fcfont) |
235 |
{ |
236 |
MozillaDecoderPrivate *priv = MOZILLA_DECODER_GET_PRIVATE(decoder); |
237 |
|
238 |
if (priv->charset) |
239 |
return priv->charset; |
240 |
|
241 |
// First time this has been accessed. Populate the charset. |
242 |
priv->charset = FcCharSetCreate(); |
243 |
|
244 |
if (!gCharsetManager) { |
245 |
nsServiceManager::GetService(kCharsetConverterManagerCID, |
246 |
NS_GET_IID(nsICharsetConverterManager), (nsISupports**)&gCharsetManager); |
247 |
} |
248 |
|
249 |
nsCOMPtr<nsIUnicodeEncoder> encoder; |
250 |
nsCOMPtr<nsICharRepresentable> represent; |
251 |
|
252 |
if (!gCharsetManager) |
253 |
goto end; |
254 |
|
255 |
gCharsetManager->GetUnicodeEncoderRaw(priv->encoder, getter_AddRefs(encoder)); |
256 |
if (!encoder) |
257 |
goto end; |
258 |
|
259 |
encoder->SetOutputErrorBehavior(encoder->kOnError_Replace, nsnull, '?'); |
260 |
|
261 |
priv->uEncoder = encoder; |
262 |
|
263 |
represent = do_QueryInterface(encoder); |
264 |
if (!represent) |
265 |
goto end; |
266 |
|
267 |
PRUint32 map[UCS2_MAP_LEN]; |
268 |
memset(map, 0, sizeof(map)); |
269 |
|
270 |
represent->FillInfo(map); |
271 |
|
272 |
for (int i = 0; i < NUM_UNICODE_CHARS; i++) { |
273 |
if (IS_REPRESENTABLE(map, i)) |
274 |
FcCharSetAddChar(priv->charset, i); |
275 |
} |
276 |
|
277 |
end: |
278 |
return priv->charset; |
279 |
} |
280 |
|
281 |
PangoGlyph |
282 |
mozilla_decoder_get_glyph (PangoFcDecoder *decoder, |
283 |
PangoFcFont *fcfont, |
284 |
guint32 wc) |
285 |
{ |
286 |
MozillaDecoderPrivate *priv = MOZILLA_DECODER_GET_PRIVATE(decoder); |
287 |
|
288 |
PangoGlyph retval = 0; |
289 |
PRUnichar inchar = wc; |
290 |
PRInt32 inlen = 1; |
291 |
char outchar[2] = {0,0}; |
292 |
PRInt32 outlen = 2; |
293 |
|
294 |
priv->uEncoder->Convert(&inchar, &inlen, outchar, &outlen); |
295 |
if (outlen != 1) { |
296 |
printf("Warning: mozilla_decoder_get_glyph doesn't support more than one character conversions.\n"); |
297 |
return 0; |
298 |
} |
299 |
|
300 |
FT_Face face = pango_fc_font_lock_face(fcfont); |
301 |
|
302 |
#ifdef DEBUG_CUSTOM_ENCODER |
303 |
char *filename; |
304 |
FcPatternGetString(fcfont->font_pattern, FC_FILE, 0, (FcChar8 **)&filename); |
305 |
printf("filename is %s\n", filename); |
306 |
#endif |
307 |
|
308 |
// Make sure to set the right charmap before trying to get the |
309 |
// glyph |
310 |
if (priv->cmap) { |
311 |
if (!strcmp(priv->cmap, "mac_roman")) { |
312 |
FT_Select_Charmap(face, ft_encoding_apple_roman); |
313 |
} |
314 |
else if (!strcmp(priv->cmap, "unicode")) { |
315 |
FT_Select_Charmap(face, ft_encoding_unicode); |
316 |
} |
317 |
else { |
318 |
printf("Warning: Invalid charmap entry for family %s\n", |
319 |
priv->family); |
320 |
} |
321 |
} |
322 |
|
323 |
// Standard 8 bit to glyph translation |
324 |
if (!priv->is_wide) { |
325 |
FcChar32 blah = PRUint8(outchar[0]); |
326 |
retval = FT_Get_Char_Index(face, blah); |
327 |
#ifdef DEBUG_CUSTOM_ENCODER |
328 |
printf("wc 0x%x outchar[0] 0x%x index 0x%x retval 0x%x face %p\n", |
329 |
wc, outchar[0], blah, retval, (void *)face); |
330 |
#endif |
331 |
} |
332 |
else { |
333 |
printf("Warning: We don't support .wide fonts!\n"); |
334 |
retval = 0; |
335 |
} |
336 |
|
337 |
pango_fc_font_unlock_face(fcfont); |
338 |
|
339 |
return retval; |
340 |
} |
341 |
|
342 |
PangoFcDecoder * |
343 |
mozilla_find_decoder (FcPattern *pattern, gpointer user_data) |
344 |
{ |
345 |
// Compare the family name of the font that's been opened to see |
346 |
// if we have a custom decoder. |
347 |
const char *orig = NULL; |
348 |
FcPatternGetString(pattern, FC_FAMILY, 0, (FcChar8 **)&orig); |
349 |
|
350 |
nsCAutoString family; |
351 |
family.Assign(orig); |
352 |
|
353 |
family.StripWhitespace(); |
354 |
ToLowerCase(family); |
355 |
|
356 |
char *encoder = (char *)g_hash_table_lookup(encoder_hash, family.get()); |
357 |
if (!encoder) |
358 |
return NULL; |
359 |
|
360 |
MozillaDecoder *decoder = mozilla_decoder_new(); |
361 |
|
362 |
MozillaDecoderPrivate *priv = MOZILLA_DECODER_GET_PRIVATE(decoder); |
363 |
|
364 |
priv->family = g_strdup(family.get()); |
365 |
priv->encoder = g_strdup(encoder); |
366 |
|
367 |
char *cmap = (char *)g_hash_table_lookup(cmap_hash, family.get()); |
368 |
if (cmap) |
369 |
priv->cmap = g_strdup(cmap); |
370 |
|
371 |
char *wide = (char *)g_hash_table_lookup(wide_hash, family.get()); |
372 |
if (wide) |
373 |
priv->is_wide = TRUE; |
374 |
|
375 |
return PANGO_FC_DECODER(decoder); |
376 |
} |
|
|
377 |
++ gfx/src/gtk/mozilla-decoder.h |
Line 0
Link Here
|
0 |
-- gfx/src/gtk/pangoFontEncoding.properties |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* vim:expandtab:shiftwidth=4:tabstop=4: |
3 |
*/ |
4 |
/* ***** BEGIN LICENSE BLOCK ***** |
5 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
6 |
* |
7 |
* The contents of this file are subject to the Mozilla Public License Version |
8 |
* 1.1 (the "License"); you may not use this file except in compliance with |
9 |
* the License. You may obtain a copy of the License at |
10 |
* http://www.mozilla.org/MPL/ |
11 |
* |
12 |
* Software distributed under the License is distributed on an "AS IS" basis, |
13 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
14 |
* for the specific language governing rights and limitations under the |
15 |
* License. |
16 |
* |
17 |
* The Original Code is mozilla.org code. |
18 |
* |
19 |
* The Initial Developer of the Original Code is Christopher Blizzard |
20 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
21 |
* are Copyright (C) 2004 the Initial Developer. All Rights Reserved. |
22 |
* |
23 |
* Contributor(s): |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
#ifndef _MOZILLA_DECODER_H |
40 |
#define _MOZILLA_DECODER_H |
41 |
|
42 |
#include <pango/pangofc-decoder.h> |
43 |
|
44 |
G_BEGIN_DECLS |
45 |
|
46 |
#define MOZILLA_TYPE_DECODER (mozilla_decoder_get_type()) |
47 |
#define MOZILLA_DECODER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), MOZILLA_TYPE_DECODER, MozillaDecoder)) |
48 |
#define MOZILLA_IS_DECODER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), MOZILLA_TYPE_DECODER)) |
49 |
|
50 |
typedef struct _MozillaDecoder MozillaDecoder; |
51 |
typedef struct _MozillaDecoderClass MozillaDecoderClass; |
52 |
|
53 |
#define MOZILLA_DECODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOZILLA_TYPE_DECODER, MozillaDecoderClass)) |
54 |
#define MOZILLA_IS_DECODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOZILLA_TYPE_DECODER)) |
55 |
#define MOZILLA_DECODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOZILLA_TYPE_DECODER, MozillaDecoderClass)) |
56 |
|
57 |
struct _MozillaDecoder |
58 |
{ |
59 |
PangoFcDecoder parent_instance; |
60 |
}; |
61 |
|
62 |
struct _MozillaDecoderClass |
63 |
{ |
64 |
PangoFcDecoderClass parent_class; |
65 |
}; |
66 |
|
67 |
GType mozilla_decoder_get_type (void); |
68 |
int mozilla_decoders_init (void); |
69 |
|
70 |
G_END_DECLS |
71 |
|
72 |
#endif /*_MOZILLA_DECODER_H */ |
|
|
73 |
++ gfx/src/gtk/pangoFontEncoding.properties |
Line 0
Link Here
|
0 |
-- gfx/src/gtk/nsFontMetricsPango.cpp |
1 |
# ***** BEGIN LICENSE BLOCK ***** |
|
|
2 |
# Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
3 |
# |
4 |
# The contents of this file are subject to the Mozilla Public License Version |
5 |
# 1.1 (the "License"); you may not use this file except in compliance with |
6 |
# the License. You may obtain a copy of the License at |
7 |
# http://www.mozilla.org/MPL/ |
8 |
# |
9 |
# Software distributed under the License is distributed on an "AS IS" basis, |
10 |
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
11 |
# for the specific language governing rights and limitations under the |
12 |
# License. |
13 |
# |
14 |
# The Original Code is Mozilla MathML Project. |
15 |
# |
16 |
# The Initial Developer of the Original Code is |
17 |
# The University of Queensland. |
18 |
# Portions created by the Initial Developer are Copyright (C) 2001 |
19 |
# the Initial Developer. All Rights Reserved. |
20 |
# |
21 |
# Contributor(s): |
22 |
# Roger B. Sidje <rbs@maths.uq.edu.au> |
23 |
# Jungshik Shin <jshin@mailaps.org> |
24 |
# Christopher Blizzard <blizzard@mozilla.org> |
25 |
# |
26 |
# Alternatively, the contents of this file may be used under the terms of |
27 |
# either the GNU General Public License Version 2 or later (the "GPL"), or |
28 |
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
29 |
# in which case the provisions of the GPL or the LGPL are applicable instead |
30 |
# of those above. If you wish to allow use of your version of this file only |
31 |
# under the terms of either the GPL or the LGPL, and not to allow others to |
32 |
# use your version of this file under the terms of the MPL, indicate your |
33 |
# decision by deleting the provisions above and replace them with the notice |
34 |
# and other provisions required by the GPL or the LGPL. If you do not delete |
35 |
# the provisions above, a recipient may use your version of this file under |
36 |
# the terms of any one of the MPL, the GPL or the LGPL. |
37 |
# |
38 |
# ***** END LICENSE BLOCK ***** |
39 |
|
40 |
# LOCALIZATION NOTE: FILE |
41 |
# Do not translate anything in this file |
42 |
|
43 |
# This file contains supported custom encodings for pango font |
44 |
# rendering. For information about the specific encodings, look at |
45 |
# fontEncoding.properties. It contains a lot more verbiage than you |
46 |
# will find here. There are a lot of encodings supported in the old |
47 |
# encoding file that pango supports directly, so there should be |
48 |
# little reason to use those custom encodings. The pango custom code |
49 |
# doesn't support .wide fonts, so consider yourself warned! |
50 |
# |
51 |
|
52 |
# To be honest, we basically support mathml and that's about it. |
53 |
|
54 |
encoding.cmr10.ttf = x-ttf-cmr |
55 |
encoding.cmmi10.ttf = x-ttf-cmmi |
56 |
encoding.cmsy10.ttf = x-ttf-cmsy |
57 |
encoding.cmex10.ttf = x-ttf-cmex |
58 |
|
59 |
encoding.cmr10.ftcmap = unicode |
60 |
encoding.cmmi10.ftcmap = unicode |
61 |
encoding.cmsy10.ftcmap = unicode |
62 |
encoding.cmex10.ftcmap = unicode |
63 |
|
64 |
encoding.math1.ttf = x-mathematica1 |
65 |
encoding.math1-bold.ttf = x-mathematica1 |
66 |
encoding.math1mono.ttf = x-mathematica1 |
67 |
encoding.math1mono-bold.ttf = x-mathematica1 |
68 |
|
69 |
encoding.math2.ttf = x-mathematica2 |
70 |
encoding.math2-bold.ttf = x-mathematica2 |
71 |
encoding.math2mono.ttf = x-mathematica2 |
72 |
encoding.math2mono-bold.ttf = x-mathematica2 |
73 |
|
74 |
encoding.math3.ttf = x-mathematica3 |
75 |
encoding.math3-bold.ttf = x-mathematica3 |
76 |
encoding.math3mono.ttf = x-mathematica3 |
77 |
encoding.math3mono-bold.ttf = x-mathematica3 |
78 |
|
79 |
encoding.math4.ttf = x-mathematica4 |
80 |
encoding.math4-bold.ttf = x-mathematica4 |
81 |
encoding.math4mono.ttf = x-mathematica4 |
82 |
encoding.math4mono-bold.ttf = x-mathematica4 |
83 |
|
84 |
encoding.math5.ttf = x-mathematica5 |
85 |
encoding.math5-bold.ttf = x-mathematica5 |
86 |
encoding.math5bold.ttf = x-mathematica5 |
87 |
encoding.math5mono.ttf = x-mathematica5 |
88 |
encoding.math5mono-bold.ttf = x-mathematica5 |
89 |
encoding.math5monobold.ttf = x-mathematica5 |
90 |
|
91 |
encoding.math1.ftcmap = mac_roman |
92 |
encoding.math1-bold.ftcmap = mac_roman |
93 |
encoding.math1mono.ftcmap = mac_roman |
94 |
encoding.math1mono-bold.ftcmap = mac_roman |
95 |
|
96 |
encoding.math2.ftcmap = mac_roman |
97 |
encoding.math2-bold.ftcmap = mac_roman |
98 |
encoding.math2mono.ftcmap = mac_roman |
99 |
encoding.math2mono-bold.ftcmap = mac_roman |
100 |
|
101 |
encoding.math3.ftcmap = mac_roman |
102 |
encoding.math3-bold.ftcmap = mac_roman |
103 |
encoding.math3mono.ftcmap = mac_roman |
104 |
encoding.math3mono-bold.ftcmap = mac_roman |
105 |
|
106 |
encoding.math4.ftcmap = mac_roman |
107 |
encoding.math4-bold.ftcmap = mac_roman |
108 |
encoding.math4mono.ftcmap = mac_roman |
109 |
encoding.math4mono-bold.ftcmap = mac_roman |
110 |
|
111 |
encoding.math5.ftcmap = mac_roman |
112 |
encoding.math5-bold.ftcmap = mac_roman |
113 |
encoding.math5bold.ftcmap = mac_roman |
114 |
encoding.math5mono.ftcmap = mac_roman |
115 |
encoding.math5mono-bold.ftcmap = mac_roman |
116 |
encoding.math5monobold.ftcmap = mac_roman |
117 |
|
118 |
encoding.mtextra.ttf = x-mtextra |
119 |
encoding.mtextra.ftcmap = mac_roman |
120 |
|
|
|
121 |
++ gfx/src/gtk/nsFontMetricsPango.cpp |
Line 0
Link Here
|
0 |
-- gfx/src/ps/Makefile.in |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* vim:expandtab:shiftwidth=4:tabstop=4: |
3 |
*/ |
4 |
/* ***** BEGIN LICENSE BLOCK ***** |
5 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
6 |
* |
7 |
* The contents of this file are subject to the Mozilla Public License Version |
8 |
* 1.1 (the "License"); you may not use this file except in compliance with |
9 |
* the License. You may obtain a copy of the License at |
10 |
* http://www.mozilla.org/MPL/ |
11 |
* |
12 |
* Software distributed under the License is distributed on an "AS IS" basis, |
13 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
14 |
* for the specific language governing rights and limitations under the |
15 |
* License. |
16 |
* |
17 |
* The Original Code is mozilla.org code. |
18 |
* |
19 |
* The Initial Developer of the Original Code is Christopher Blizzard |
20 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
21 |
* are Copyright (C) 2004 the Initial Developer. All Rights Reserved. |
22 |
* |
23 |
* Contributor(s): |
24 |
* |
25 |
* Alternatively, the contents of this file may be used under the terms of |
26 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
27 |
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
28 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
29 |
* of those above. If you wish to allow use of your version of this file only |
30 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
31 |
* use your version of this file under the terms of the MPL, indicate your |
32 |
* decision by deleting the provisions above and replace them with the notice |
33 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
34 |
* the provisions above, a recipient may use your version of this file under |
35 |
* the terms of any one of the MPL, the GPL or the LGPL. |
36 |
* |
37 |
* ***** END LICENSE BLOCK ***** */ |
38 |
|
39 |
#include "nsFont.h" |
40 |
#include "nsIDeviceContext.h" |
41 |
#include "nsICharsetConverterManager.h" |
42 |
#include "nsIPref.h" |
43 |
#include "nsIServiceManagerUtils.h" |
44 |
|
45 |
#define PANGO_ENABLE_BACKEND |
46 |
#define PANGO_ENABLE_ENGINE |
47 |
|
48 |
#include "nsFontMetricsPango.h" |
49 |
#include "nsRenderingContextGTK.h" |
50 |
#include "nsDeviceContextGTK.h" |
51 |
|
52 |
#include "nsUnicharUtils.h" |
53 |
#include "nsQuickSort.h" |
54 |
|
55 |
#include <pango/pangoxft.h> |
56 |
#include <fontconfig/fontconfig.h> |
57 |
#include <gdk/gdk.h> |
58 |
#include <gdk/gdkx.h> |
59 |
#include <freetype/tttables.h> |
60 |
|
61 |
#include "mozilla-decoder.h" |
62 |
|
63 |
#define FORCE_PR_LOG |
64 |
#include "prlog.h" |
65 |
|
66 |
// Globals |
67 |
|
68 |
static PRLogModuleInfo *gPangoFontLog; |
69 |
static int gNumInstances; |
70 |
|
71 |
// Defines |
72 |
|
73 |
// This is the scaling factor that we keep fonts limited to against |
74 |
// the display size. If a pixel size is requested that is more than |
75 |
// this factor larger than the height of the display, it's clamped to |
76 |
// that value instead of the requested size. |
77 |
#define FONT_MAX_FONT_SCALE 2 |
78 |
|
79 |
static NS_DEFINE_CID(kCharsetConverterManagerCID, |
80 |
NS_ICHARSETCONVERTERMANAGER_CID); |
81 |
|
82 |
struct MozPangoLangGroup { |
83 |
const char *mozLangGroup; |
84 |
const char *PangoLang; |
85 |
}; |
86 |
|
87 |
static const MozPangoLangGroup MozPangoLangGroups[] = { |
88 |
{ "x-western", "en" }, |
89 |
{ "x-central-euro", "pl" }, |
90 |
{ "x-cyrillic", "ru" }, |
91 |
{ "x-baltic", "lv" }, |
92 |
{ "x-devanagari", "hi" }, |
93 |
{ "x-tamil", "ta" }, |
94 |
{ "x-unicode", 0 }, |
95 |
{ "x-user-def", 0 }, |
96 |
}; |
97 |
|
98 |
#define NUM_PANGO_LANG_GROUPS (sizeof (MozPangoLangGroups) / \ |
99 |
sizeof (MozPangoLangGroups[0])) |
100 |
|
101 |
#ifdef DEBUG |
102 |
#define DUMP_PRUNICHAR(ustr, ulen) for (PRUint32 llen=0;llen<ulen;llen++) \ |
103 |
printf("0x%x ", ustr[llen]); \ |
104 |
printf("\n"); |
105 |
#endif |
106 |
|
107 |
// rounding and truncation functions for a Freetype floating point number |
108 |
// (FT26Dot6) stored in a 32bit integer with high 26 bits for the integer |
109 |
// part and low 6 bits for the fractional part. |
110 |
#define MOZ_FT_ROUND(x) (((x) + 32) & ~63) // 63 = 2^6 - 1 |
111 |
#define MOZ_FT_TRUNC(x) ((x) >> 6) |
112 |
#define CONVERT_DESIGN_UNITS_TO_PIXELS(v, s) \ |
113 |
MOZ_FT_TRUNC(MOZ_FT_ROUND(FT_MulFix((v) , (s)))) |
114 |
|
115 |
// Static function decls |
116 |
|
117 |
static PRBool IsASCIIFontName (const nsString& aName); |
118 |
static int FFRECountHyphens (nsACString &aFFREName); |
119 |
|
120 |
static PangoLanguage *GetPangoLanguage(nsIAtom *aLangGroup); |
121 |
static const MozPangoLangGroup* FindPangoLangGroup (nsACString &aLangGroup); |
122 |
|
123 |
static void FreeGlobals (void); |
124 |
|
125 |
static PangoStyle CalculateStyle (PRUint8 aStyle); |
126 |
static PangoWeight CalculateWeight (PRUint16 aWeight); |
127 |
|
128 |
static nsresult EnumFontsPango (nsIAtom* aLangGroup, const char* aGeneric, |
129 |
PRUint32* aCount, PRUnichar*** aResult); |
130 |
static int CompareFontNames (const void* aArg1, const void* aArg2, |
131 |
void* aClosure); |
132 |
|
133 |
extern void NS_AddLangGroup (FcPattern *aPattern, nsIAtom *aLangGroup); |
134 |
|
135 |
nsFontMetricsPango::nsFontMetricsPango() |
136 |
{ |
137 |
if (!gPangoFontLog) |
138 |
gPangoFontLog = PR_NewLogModule("PangoFont"); |
139 |
|
140 |
gNumInstances++; |
141 |
|
142 |
mPangoFontDesc = nsnull; |
143 |
mPangoContext = nsnull; |
144 |
mLTRPangoContext = nsnull; |
145 |
mRTLPangoContext = nsnull; |
146 |
mPangoAttrList = nsnull; |
147 |
mIsRTL = PR_FALSE; |
148 |
mPangoSpaceWidth = 0; |
149 |
|
150 |
static PRBool initialized = PR_FALSE; |
151 |
if (initialized) |
152 |
return; |
153 |
|
154 |
// Initialized the custom decoders |
155 |
if (!mozilla_decoders_init()) |
156 |
initialized = PR_TRUE; |
157 |
} |
158 |
|
159 |
nsFontMetricsPango::~nsFontMetricsPango() |
160 |
{ |
161 |
delete mFont; |
162 |
|
163 |
if (mDeviceContext) |
164 |
mDeviceContext->FontMetricsDeleted(this); |
165 |
|
166 |
if (mPangoFontDesc) |
167 |
pango_font_description_free(mPangoFontDesc); |
168 |
|
169 |
if (mLTRPangoContext) |
170 |
g_object_unref(mLTRPangoContext); |
171 |
|
172 |
if (mRTLPangoContext) |
173 |
g_object_unref(mRTLPangoContext); |
174 |
|
175 |
if (mPangoAttrList) |
176 |
pango_attr_list_unref(mPangoAttrList); |
177 |
|
178 |
// XXX clean up all the pango objects |
179 |
|
180 |
if (--gNumInstances == 0) |
181 |
FreeGlobals(); |
182 |
} |
183 |
|
184 |
|
185 |
NS_IMPL_ISUPPORTS1(nsFontMetricsPango, nsIFontMetrics) |
186 |
|
187 |
// nsIFontMetrics impl |
188 |
|
189 |
NS_IMETHODIMP |
190 |
nsFontMetricsPango::Init(const nsFont& aFont, nsIAtom* aLangGroup, |
191 |
nsIDeviceContext *aContext) |
192 |
{ |
193 |
mFont = new nsFont(aFont); |
194 |
mLangGroup = aLangGroup; |
195 |
|
196 |
// Hang on to the device context |
197 |
mDeviceContext = aContext; |
198 |
|
199 |
mPointSize = NSTwipsToFloatPoints(mFont->size); |
200 |
|
201 |
// Make sure to clamp the pixel size to something reasonable so we |
202 |
// don't make the X server blow up. |
203 |
nscoord screenPixels = gdk_screen_height(); |
204 |
mPointSize = PR_MIN(screenPixels * FONT_MAX_FONT_SCALE, mPointSize); |
205 |
|
206 |
// enumerate over the font names passed in |
207 |
mFont->EnumerateFamilies(nsFontMetricsPango::EnumFontCallback, this); |
208 |
|
209 |
nsCOMPtr<nsIPref> prefService; |
210 |
prefService = do_GetService(NS_PREF_CONTRACTID); |
211 |
if (!prefService) |
212 |
return NS_ERROR_FAILURE; |
213 |
|
214 |
nsXPIDLCString value; |
215 |
|
216 |
// Set up the default font name if it's not set |
217 |
if (!mGenericFont) { |
218 |
prefService->CopyCharPref("font.default", getter_Copies(value)); |
219 |
|
220 |
if (value.get()) |
221 |
mDefaultFont = value.get(); |
222 |
else |
223 |
mDefaultFont = "serif"; |
224 |
|
225 |
mGenericFont = &mDefaultFont; |
226 |
} |
227 |
|
228 |
// set up the minimum sizes for fonts |
229 |
if (mLangGroup) { |
230 |
nsCAutoString name("font.min-size."); |
231 |
|
232 |
if (mGenericFont->Equals("monospace")) |
233 |
name.Append("fixed"); |
234 |
else |
235 |
name.Append("variable"); |
236 |
|
237 |
name.Append(char('.')); |
238 |
|
239 |
const char* langGroup; |
240 |
mLangGroup->GetUTF8String(&langGroup); |
241 |
|
242 |
name.Append(langGroup); |
243 |
|
244 |
PRInt32 minimumInt = 0; |
245 |
float minimum; |
246 |
nsresult res; |
247 |
res = prefService->GetIntPref(name.get(), &minimumInt); |
248 |
if (NS_FAILED(res)) |
249 |
prefService->GetDefaultIntPref(name.get(), &minimumInt); |
250 |
|
251 |
if (minimumInt < 0) |
252 |
minimumInt = 0; |
253 |
|
254 |
minimum = minimumInt; |
255 |
|
256 |
// The minimum size is specified in pixels, not in points. |
257 |
// Convert the size from pixels to points. |
258 |
minimum = NSTwipsToFloatPoints(NSFloatPixelsToTwips(minimum, mDeviceContext->DevUnitsToAppUnits())); |
259 |
if (mPointSize < minimum) |
260 |
mPointSize = minimum; |
261 |
} |
262 |
|
263 |
// Make sure that the pixel size is at least greater than zero |
264 |
if (mPointSize < 1) { |
265 |
#ifdef DEBUG |
266 |
printf("*** Warning: nsFontMetricsPango created with point size %f\n", |
267 |
mPointSize); |
268 |
#endif |
269 |
mPointSize = 1; |
270 |
} |
271 |
|
272 |
nsresult rv = RealizeFont(); |
273 |
if (NS_FAILED(rv)) |
274 |
return rv; |
275 |
|
276 |
// Cache font metrics for the 'x' character |
277 |
return CacheFontMetrics(); |
278 |
} |
279 |
|
280 |
nsresult |
281 |
nsFontMetricsPango::CacheFontMetrics(void) |
282 |
{ |
283 |
// Get our scale factor |
284 |
float f; |
285 |
float val; |
286 |
f = mDeviceContext->DevUnitsToAppUnits(); |
287 |
|
288 |
mPangoAttrList = pango_attr_list_new(); |
289 |
|
290 |
GList *items = pango_itemize(mPangoContext, |
291 |
"a", 0, 1, mPangoAttrList, NULL); |
292 |
|
293 |
if (!items) |
294 |
return NS_ERROR_FAILURE; |
295 |
|
296 |
guint nitems = g_list_length(items); |
297 |
if (nitems != 1) |
298 |
return NS_ERROR_FAILURE; |
299 |
|
300 |
PangoItem *item = (PangoItem *)items->data; |
301 |
PangoFcFont *fcfont = PANGO_FC_FONT(item->analysis.font); |
302 |
if (!fcfont) |
303 |
return NS_ERROR_FAILURE; |
304 |
|
305 |
// Get our font face |
306 |
FT_Face face; |
307 |
TT_OS2 *os2; |
308 |
XftFont *xftFont = pango_xft_font_get_font(PANGO_FONT(fcfont)); |
309 |
if (!xftFont) |
310 |
return NS_ERROR_NOT_AVAILABLE; |
311 |
|
312 |
face = XftLockFace(xftFont); |
313 |
os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); |
314 |
|
315 |
// mEmHeight (size in pixels of EM height) |
316 |
int size; |
317 |
if (FcPatternGetInteger(fcfont->font_pattern, FC_PIXEL_SIZE, 0, &size) != |
318 |
FcResultMatch) { |
319 |
size = 12; |
320 |
} |
321 |
mEmHeight = PR_MAX(1, nscoord(size * f)); |
322 |
|
323 |
// mMaxAscent |
324 |
mMaxAscent = nscoord(xftFont->ascent * f); |
325 |
|
326 |
// mMaxDescent |
327 |
mMaxDescent = nscoord(xftFont->descent * f); |
328 |
|
329 |
nscoord lineHeight = mMaxAscent + mMaxDescent; |
330 |
|
331 |
// mLeading (needs ascent and descent and EM height) |
332 |
if (lineHeight > mEmHeight) |
333 |
mLeading = lineHeight - mEmHeight; |
334 |
else |
335 |
mLeading = 0; |
336 |
|
337 |
// mMaxHeight (needs ascent and descent) |
338 |
mMaxHeight = lineHeight; |
339 |
|
340 |
// mEmAscent (needs maxascent, EM height, ascent and descent) |
341 |
mEmAscent = nscoord(mMaxAscent * mEmHeight / lineHeight); |
342 |
|
343 |
// mEmDescent (needs EM height and EM ascent |
344 |
mEmDescent = mEmHeight - mEmAscent; |
345 |
|
346 |
// mMaxAdvance |
347 |
mMaxAdvance = nscoord(xftFont->max_advance_width * f); |
348 |
|
349 |
// mPangoSpaceWidth |
350 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
351 |
pango_layout_set_text(layout, " ", 1); |
352 |
int pswidth, psheight; |
353 |
pango_layout_get_size(layout, &pswidth, &psheight); |
354 |
mPangoSpaceWidth = pswidth; |
355 |
g_object_unref(layout); |
356 |
|
357 |
// mSpaceWidth (width of a space) |
358 |
nscoord tmpWidth; |
359 |
GetWidth(" ", 1, tmpWidth, NULL); |
360 |
mSpaceWidth = tmpWidth; |
361 |
|
362 |
// mAveCharWidth (width of an 'average' char) |
363 |
// XftTextExtents16(GDK_DISPLAY(), xftFont, &xUnichar, 1, &extents); |
364 |
//rawWidth = extents.width; |
365 |
//mAveCharWidth = NSToCoordRound(rawWidth * f); |
366 |
GetWidth("x", 1, tmpWidth, NULL); |
367 |
mAveCharWidth = tmpWidth; |
368 |
|
369 |
// mXHeight (height of an 'x' character) |
370 |
PRUnichar xUnichar('x'); |
371 |
XGlyphInfo extents; |
372 |
if (FcCharSetHasChar(xftFont->charset, xUnichar)) { |
373 |
XftTextExtents16(GDK_DISPLAY(), xftFont, &xUnichar, 1, &extents); |
374 |
mXHeight = extents.height; |
375 |
} |
376 |
else { |
377 |
// 56% of ascent, best guess for non-true type or asian fonts |
378 |
mXHeight = nscoord(((float)mMaxAscent) * 0.56); |
379 |
} |
380 |
mXHeight = nscoord(mXHeight * f); |
381 |
|
382 |
// mUnderlineOffset (offset for underlines) |
383 |
val = CONVERT_DESIGN_UNITS_TO_PIXELS(face->underline_position, |
384 |
face->size->metrics.y_scale); |
385 |
if (val) { |
386 |
mUnderlineOffset = NSToIntRound(val * f); |
387 |
} |
388 |
else { |
389 |
mUnderlineOffset = |
390 |
-NSToIntRound(PR_MAX(1, floor(0.1 * xftFont->height + 0.5)) * f); |
391 |
} |
392 |
|
393 |
// mUnderlineSize (thickness of an underline) |
394 |
val = CONVERT_DESIGN_UNITS_TO_PIXELS(face->underline_thickness, |
395 |
face->size->metrics.y_scale); |
396 |
if (val) { |
397 |
mUnderlineSize = nscoord(PR_MAX(f, NSToIntRound(val * f))); |
398 |
} |
399 |
else { |
400 |
mUnderlineSize = |
401 |
NSToIntRound(PR_MAX(1, floor(0.05 * xftFont->height + 0.5)) * f); |
402 |
} |
403 |
|
404 |
// mSuperscriptOffset |
405 |
if (os2 && os2->ySuperscriptYOffset) { |
406 |
val = CONVERT_DESIGN_UNITS_TO_PIXELS(os2->ySuperscriptYOffset, |
407 |
face->size->metrics.y_scale); |
408 |
mSuperscriptOffset = nscoord(PR_MAX(f, NSToIntRound(val * f))); |
409 |
} |
410 |
else { |
411 |
mSuperscriptOffset = mXHeight; |
412 |
} |
413 |
|
414 |
// mSubscriptOffset |
415 |
if (os2 && os2->ySubscriptYOffset) { |
416 |
val = CONVERT_DESIGN_UNITS_TO_PIXELS(os2->ySubscriptYOffset, |
417 |
face->size->metrics.y_scale); |
418 |
// some fonts have the incorrect sign. |
419 |
val = (val < 0) ? -val : val; |
420 |
mSubscriptOffset = nscoord(PR_MAX(f, NSToIntRound(val * f))); |
421 |
} |
422 |
else { |
423 |
mSubscriptOffset = mXHeight; |
424 |
} |
425 |
|
426 |
// mStrikeoutOffset |
427 |
mStrikeoutOffset = NSToCoordRound(mXHeight / 2.0); |
428 |
|
429 |
// mStrikeoutSize |
430 |
mStrikeoutSize = mUnderlineSize; |
431 |
|
432 |
XftUnlockFace(xftFont); |
433 |
|
434 |
/* |
435 |
printf("%i\n", mXHeight); |
436 |
printf("%i\n", mSuperscriptOffset); |
437 |
printf("%i\n", mSubscriptOffset); |
438 |
printf("%i\n", mStrikeoutOffset); |
439 |
printf("%i\n", mStrikeoutSize); |
440 |
printf("%i\n", mUnderlineOffset); |
441 |
printf("%i\n", mUnderlineSize); |
442 |
printf("%i\n", mMaxHeight); |
443 |
printf("%i\n", mLeading); |
444 |
printf("%i\n", mEmHeight); |
445 |
printf("%i\n", mEmAscent); |
446 |
printf("%i\n", mEmDescent); |
447 |
printf("%i\n", mMaxAscent); |
448 |
printf("%i\n", mMaxDescent); |
449 |
printf("%i\n", mMaxAdvance); |
450 |
printf("%i\n", mSpaceWidth); |
451 |
printf("%i\n", mAveCharWidth); |
452 |
*/ |
453 |
|
454 |
return NS_OK; |
455 |
} |
456 |
|
457 |
NS_IMETHODIMP |
458 |
nsFontMetricsPango::Destroy() |
459 |
{ |
460 |
mDeviceContext = nsnull; |
461 |
return NS_OK; |
462 |
} |
463 |
|
464 |
NS_IMETHODIMP |
465 |
nsFontMetricsPango::GetFont(const nsFont *&aFont) |
466 |
{ |
467 |
aFont = mFont; |
468 |
return NS_OK; |
469 |
} |
470 |
|
471 |
NS_IMETHODIMP |
472 |
nsFontMetricsPango::GetLangGroup(nsIAtom** aLangGroup) |
473 |
{ |
474 |
*aLangGroup = mLangGroup; |
475 |
NS_IF_ADDREF(*aLangGroup); |
476 |
|
477 |
return NS_OK; |
478 |
} |
479 |
|
480 |
NS_IMETHODIMP |
481 |
nsFontMetricsPango::GetFontHandle(nsFontHandle &aHandle) |
482 |
{ |
483 |
return NS_ERROR_NOT_IMPLEMENTED; |
484 |
} |
485 |
|
486 |
// nsIFontMetricsPango impl |
487 |
|
488 |
nsresult |
489 |
nsFontMetricsPango::GetWidth(const char* aString, PRUint32 aLength, |
490 |
nscoord& aWidth, |
491 |
nsRenderingContextGTK *aContext) |
492 |
{ |
493 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
494 |
|
495 |
pango_layout_set_text(layout, aString, aLength); |
496 |
|
497 |
if (mPangoSpaceWidth) |
498 |
FixupSpaceWidths(layout, aString); |
499 |
|
500 |
int width, height; |
501 |
|
502 |
pango_layout_get_size(layout, &width, &height); |
503 |
|
504 |
g_object_unref(layout); |
505 |
|
506 |
float f; |
507 |
f = mDeviceContext->DevUnitsToAppUnits(); |
508 |
aWidth = NSToCoordRound(width * f / PANGO_SCALE); |
509 |
|
510 |
// printf("GetWidth (char *) %d\n", aWidth); |
511 |
|
512 |
return NS_OK; |
513 |
} |
514 |
|
515 |
nsresult |
516 |
nsFontMetricsPango::GetWidth(const PRUnichar* aString, PRUint32 aLength, |
517 |
nscoord& aWidth, PRInt32 *aFontID, |
518 |
nsRenderingContextGTK *aContext) |
519 |
{ |
520 |
nsresult rv = NS_OK; |
521 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
522 |
|
523 |
gchar *text = g_utf16_to_utf8(aString, aLength, |
524 |
NULL, NULL, NULL); |
525 |
|
526 |
if (!text) { |
527 |
aWidth = 0; |
528 |
#ifdef DEBUG |
529 |
NS_WARNING("nsFontMetricsPango::GetWidth invalid unicode to follow"); |
530 |
DUMP_PRUNICHAR(aString, aLength) |
531 |
#endif |
532 |
rv = NS_ERROR_FAILURE; |
533 |
goto loser; |
534 |
} |
535 |
|
536 |
gint width, height; |
537 |
|
538 |
pango_layout_set_text(layout, text, strlen(text)); |
539 |
FixupSpaceWidths(layout, text); |
540 |
pango_layout_get_size(layout, &width, &height); |
541 |
|
542 |
|
543 |
float f; |
544 |
f = mDeviceContext->DevUnitsToAppUnits(); |
545 |
aWidth = NSToCoordRound(width * f / PANGO_SCALE); |
546 |
|
547 |
// printf("GetWidth %d\n", aWidth); |
548 |
|
549 |
loser: |
550 |
g_free(text); |
551 |
g_object_unref(layout); |
552 |
|
553 |
return rv; |
554 |
} |
555 |
|
556 |
|
557 |
nsresult |
558 |
nsFontMetricsPango::GetTextDimensions(const PRUnichar* aString, |
559 |
PRUint32 aLength, |
560 |
nsTextDimensions& aDimensions, |
561 |
PRInt32* aFontID, |
562 |
nsRenderingContextGTK *aContext) |
563 |
{ |
564 |
nsresult rv = NS_OK; |
565 |
|
566 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
567 |
|
568 |
gchar *text = g_utf16_to_utf8(aString, aLength, |
569 |
NULL, NULL, NULL); |
570 |
|
571 |
if (!text) { |
572 |
#ifdef DEBUG |
573 |
NS_WARNING("nsFontMetricsPango::GetTextDimensions invalid unicode to follow"); |
574 |
DUMP_PRUNICHAR(aString, aLength) |
575 |
#endif |
576 |
aDimensions.width = 0; |
577 |
aDimensions.ascent = 0; |
578 |
aDimensions.descent = 0; |
579 |
|
580 |
rv = NS_ERROR_FAILURE; |
581 |
goto loser; |
582 |
} |
583 |
|
584 |
|
585 |
pango_layout_set_text(layout, text, strlen(text)); |
586 |
FixupSpaceWidths(layout, text); |
587 |
|
588 |
// Get the logical extents |
589 |
PangoLayoutLine *line; |
590 |
if (pango_layout_get_line_count(layout) != 1) { |
591 |
printf("Warning: more than one line!\n"); |
592 |
} |
593 |
line = pango_layout_get_line(layout, 0); |
594 |
|
595 |
PangoRectangle rect; |
596 |
pango_layout_line_get_extents(line, NULL, &rect); |
597 |
|
598 |
float P2T; |
599 |
P2T = mDeviceContext->DevUnitsToAppUnits(); |
600 |
|
601 |
aDimensions.width = NSToCoordRound(rect.width * P2T / PANGO_SCALE) ; |
602 |
aDimensions.ascent = NSToCoordRound(PANGO_ASCENT(rect) * P2T / PANGO_SCALE); |
603 |
aDimensions.descent = NSToCoordRound(PANGO_DESCENT(rect) * P2T / PANGO_SCALE); |
604 |
|
605 |
// printf("GetTextDimensions %d %d %d\n", aDimensions.width, |
606 |
//aDimensions.ascent, aDimensions.descent); |
607 |
|
608 |
loser: |
609 |
g_free(text); |
610 |
g_object_unref(layout); |
611 |
|
612 |
return rv; |
613 |
} |
614 |
|
615 |
nsresult |
616 |
nsFontMetricsPango::GetTextDimensions(const char* aString, |
617 |
PRInt32 aLength, |
618 |
PRInt32 aAvailWidth, |
619 |
PRInt32* aBreaks, |
620 |
PRInt32 aNumBreaks, |
621 |
nsTextDimensions& aDimensions, |
622 |
PRInt32& aNumCharsFit, |
623 |
nsTextDimensions& aLastWordDimensions, |
624 |
PRInt32* aFontID, |
625 |
nsRenderingContextGTK *aContext) |
626 |
{ |
627 |
|
628 |
return GetTextDimensionsInternal(aString, aLength, aAvailWidth, aBreaks, |
629 |
aNumBreaks, aDimensions, aNumCharsFit, |
630 |
aLastWordDimensions, aContext); |
631 |
|
632 |
} |
633 |
|
634 |
nsresult |
635 |
nsFontMetricsPango::GetTextDimensions(const PRUnichar* aString, |
636 |
PRInt32 aLength, |
637 |
PRInt32 aAvailWidth, |
638 |
PRInt32* aBreaks, |
639 |
PRInt32 aNumBreaks, |
640 |
nsTextDimensions& aDimensions, |
641 |
PRInt32& aNumCharsFit, |
642 |
nsTextDimensions& aLastWordDimensions, |
643 |
PRInt32* aFontID, |
644 |
nsRenderingContextGTK *aContext) |
645 |
{ |
646 |
nsresult rv = NS_OK; |
647 |
PRInt32 curBreak = 0; |
648 |
gchar *curChar; |
649 |
|
650 |
PRInt32 *utf8Breaks = new PRInt32[aNumBreaks]; |
651 |
|
652 |
gchar *text = g_utf16_to_utf8(aString, (PRInt32)aLength, |
653 |
NULL, NULL, NULL); |
654 |
|
655 |
curChar = text; |
656 |
|
657 |
if (!text) { |
658 |
#ifdef DEBUG |
659 |
NS_WARNING("nsFontMetricsPango::GetWidth invalid unicode to follow"); |
660 |
DUMP_PRUNICHAR(aString, (PRUint32)aLength) |
661 |
#endif |
662 |
rv = NS_ERROR_FAILURE; |
663 |
goto loser; |
664 |
} |
665 |
|
666 |
// Covert the utf16 break offsets to utf8 break offsets |
667 |
for (PRInt32 curOffset=0; curOffset < aLength; |
668 |
curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) { |
669 |
if (aBreaks[curBreak] == curOffset) { |
670 |
utf8Breaks[curBreak] = curChar - text; |
671 |
curBreak++; |
672 |
} |
673 |
|
674 |
if (IS_HIGH_SURROGATE(aString[curOffset])) |
675 |
curOffset++; |
676 |
} |
677 |
|
678 |
// Always catch the last break |
679 |
utf8Breaks[curBreak] = curChar - text; |
680 |
|
681 |
#if 0 |
682 |
if (strlen(text) != aLength) { |
683 |
printf("Different lengths for utf16 %d and utf8 %d\n", aLength, strlen(text)); |
684 |
DUMP_PRUNICHAR(aString, aLength) |
685 |
DUMP_PRUNICHAR(text, strlen(text)) |
686 |
for (PRInt32 i = 0; i < aNumBreaks; ++i) { |
687 |
printf(" break %d utf16 %d utf8 %d\n", i, aBreaks[i], utf8Breaks[i]); |
688 |
} |
689 |
} |
690 |
#endif |
691 |
|
692 |
// We'll use curBreak to indicate which of the breaks end up being |
693 |
// used for the break point for this line. |
694 |
curBreak = 0; |
695 |
rv = GetTextDimensionsInternal(text, strlen(text), aAvailWidth, utf8Breaks, |
696 |
aNumBreaks, aDimensions, aNumCharsFit, |
697 |
aLastWordDimensions, aContext); |
698 |
|
699 |
// Figure out which of the breaks we ended up using to convert |
700 |
// back to utf16 - start from the end. |
701 |
for (PRInt32 i = aNumBreaks - 1; i >= 0; --i) { |
702 |
if (utf8Breaks[i] == aNumCharsFit) { |
703 |
// if (aNumCharsFit != aBreaks[i]) |
704 |
// printf("Fixing utf8 -> utf16 %d -> %d\n", aNumCharsFit, aBreaks[i]); |
705 |
aNumCharsFit = aBreaks[i]; |
706 |
break; |
707 |
} |
708 |
} |
709 |
|
710 |
loser: |
711 |
if (text) |
712 |
g_free(text); |
713 |
|
714 |
delete[] utf8Breaks; |
715 |
|
716 |
return rv; |
717 |
} |
718 |
|
719 |
nsresult |
720 |
nsFontMetricsPango::DrawString(const char *aString, PRUint32 aLength, |
721 |
nscoord aX, nscoord aY, |
722 |
const nscoord* aSpacing, |
723 |
nsRenderingContextGTK *aContext, |
724 |
nsDrawingSurfaceGTK *aSurface) |
725 |
{ |
726 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
727 |
|
728 |
pango_layout_set_text(layout, aString, aLength); |
729 |
FixupSpaceWidths(layout, aString); |
730 |
|
731 |
int x = aX; |
732 |
int y = aY; |
733 |
|
734 |
aContext->GetTranMatrix()->TransformCoord(&x, &y); |
735 |
|
736 |
PangoLayoutLine *line; |
737 |
if (pango_layout_get_line_count(layout) != 1) { |
738 |
printf("Warning: more than one line!\n"); |
739 |
} |
740 |
line = pango_layout_get_line(layout, 0); |
741 |
|
742 |
aContext->UpdateGC(); |
743 |
GdkGC *gc = aContext->GetGC(); |
744 |
|
745 |
if (aSpacing && *aSpacing) { |
746 |
DrawStringSlowly(aString, NULL, aLength, aSurface->GetDrawable(), |
747 |
gc, x, y, line, aSpacing); |
748 |
} |
749 |
else { |
750 |
gdk_draw_layout_line(aSurface->GetDrawable(), gc, |
751 |
x, y, |
752 |
line); |
753 |
} |
754 |
|
755 |
g_object_unref(gc); |
756 |
g_object_unref(layout); |
757 |
|
758 |
// printf("DrawString (char *)\n"); |
759 |
|
760 |
return NS_OK; |
761 |
} |
762 |
|
763 |
nsresult |
764 |
nsFontMetricsPango::DrawString(const PRUnichar* aString, PRUint32 aLength, |
765 |
nscoord aX, nscoord aY, |
766 |
PRInt32 aFontID, |
767 |
const nscoord* aSpacing, |
768 |
nsRenderingContextGTK *aContext, |
769 |
nsDrawingSurfaceGTK *aSurface) |
770 |
{ |
771 |
nsresult rv = NS_OK; |
772 |
int x = aX; |
773 |
int y = aY; |
774 |
|
775 |
aContext->UpdateGC(); |
776 |
GdkGC *gc = aContext->GetGC(); |
777 |
|
778 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
779 |
|
780 |
gchar *text = g_utf16_to_utf8(aString, aLength, |
781 |
NULL, NULL, NULL); |
782 |
|
783 |
if (!text) { |
784 |
#ifdef DEBUG |
785 |
NS_WARNING("nsFontMetricsPango::DrawString invalid unicode to follow"); |
786 |
DUMP_PRUNICHAR(aString, aLength) |
787 |
#endif |
788 |
rv = NS_ERROR_FAILURE; |
789 |
goto loser; |
790 |
} |
791 |
|
792 |
pango_layout_set_text(layout, text, strlen(text)); |
793 |
FixupSpaceWidths(layout, text); |
794 |
|
795 |
aContext->GetTranMatrix()->TransformCoord(&x, &y); |
796 |
|
797 |
PangoLayoutLine *line; |
798 |
if (pango_layout_get_line_count(layout) != 1) { |
799 |
printf("Warning: more than one line!\n"); |
800 |
} |
801 |
line = pango_layout_get_line(layout, 0); |
802 |
|
803 |
if (aSpacing && *aSpacing) { |
804 |
DrawStringSlowly(text, aString, aLength, aSurface->GetDrawable(), |
805 |
gc, x, y, line, aSpacing); |
806 |
} |
807 |
else { |
808 |
gdk_draw_layout_line(aSurface->GetDrawable(), gc, |
809 |
x, y, |
810 |
line); |
811 |
} |
812 |
|
813 |
loser: |
814 |
|
815 |
g_free(text); |
816 |
g_object_unref(gc); |
817 |
g_object_unref(layout); |
818 |
|
819 |
// printf("DrawString\n"); |
820 |
|
821 |
return rv; |
822 |
} |
823 |
|
824 |
#ifdef MOZ_MATHML |
825 |
nsresult |
826 |
nsFontMetricsPango::GetBoundingMetrics(const char *aString, PRUint32 aLength, |
827 |
nsBoundingMetrics &aBoundingMetrics, |
828 |
nsRenderingContextGTK *aContext) |
829 |
{ |
830 |
printf("GetBoundingMetrics (char *)\n"); |
831 |
return NS_ERROR_FAILURE; |
832 |
} |
833 |
|
834 |
nsresult |
835 |
nsFontMetricsPango::GetBoundingMetrics(const PRUnichar *aString, |
836 |
PRUint32 aLength, |
837 |
nsBoundingMetrics &aBoundingMetrics, |
838 |
PRInt32 *aFontID, |
839 |
nsRenderingContextGTK *aContext) |
840 |
{ |
841 |
nsresult rv = NS_OK; |
842 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
843 |
|
844 |
gchar *text = g_utf16_to_utf8(aString, aLength, |
845 |
NULL, NULL, NULL); |
846 |
|
847 |
if (!text) { |
848 |
#ifdef DEBUG |
849 |
NS_WARNING("nsFontMetricsPango::GetBoundingMetrics invalid unicode to follow"); |
850 |
DUMP_PRUNICHAR(aString, aLength) |
851 |
#endif |
852 |
aBoundingMetrics.leftBearing = 0; |
853 |
aBoundingMetrics.rightBearing = 0; |
854 |
aBoundingMetrics.width = 0; |
855 |
aBoundingMetrics.ascent = 0; |
856 |
aBoundingMetrics.descent = 0; |
857 |
|
858 |
rv = NS_ERROR_FAILURE; |
859 |
goto loser; |
860 |
} |
861 |
|
862 |
pango_layout_set_text(layout, text, strlen(text)); |
863 |
FixupSpaceWidths(layout, text); |
864 |
|
865 |
// Get the logical extents |
866 |
PangoLayoutLine *line; |
867 |
if (pango_layout_get_line_count(layout) != 1) { |
868 |
printf("Warning: more than one line!\n"); |
869 |
} |
870 |
line = pango_layout_get_line(layout, 0); |
871 |
|
872 |
// Get the ink extents |
873 |
PangoRectangle rect; |
874 |
pango_layout_line_get_extents(line, NULL, &rect); |
875 |
|
876 |
float P2T; |
877 |
P2T = mDeviceContext->DevUnitsToAppUnits(); |
878 |
|
879 |
aBoundingMetrics.leftBearing = |
880 |
NSToCoordRound(rect.x * P2T / PANGO_SCALE); |
881 |
aBoundingMetrics.rightBearing = |
882 |
NSToCoordRound(rect.width * P2T / PANGO_SCALE); |
883 |
aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE); |
884 |
aBoundingMetrics.ascent = NSToCoordRound(rect.y * P2T / PANGO_SCALE); |
885 |
aBoundingMetrics.descent = NSToCoordRound(rect.height * P2T / PANGO_SCALE); |
886 |
|
887 |
loser: |
888 |
g_free(text); |
889 |
g_object_unref(layout); |
890 |
|
891 |
return rv; |
892 |
} |
893 |
|
894 |
#endif /* MOZ_MATHML */ |
895 |
|
896 |
GdkFont* |
897 |
nsFontMetricsPango::GetCurrentGDKFont(void) |
898 |
{ |
899 |
return nsnull; |
900 |
} |
901 |
|
902 |
nsresult |
903 |
nsFontMetricsPango::SetRightToLeftText(PRBool aIsRTL) |
904 |
{ |
905 |
if (aIsRTL) { |
906 |
if (!mRTLPangoContext) { |
907 |
mRTLPangoContext = pango_xft_get_context(GDK_DISPLAY(), 0); |
908 |
pango_context_set_base_dir(mRTLPangoContext, PANGO_DIRECTION_RTL); |
909 |
|
910 |
gdk_pango_context_set_colormap(mRTLPangoContext, gdk_rgb_get_cmap()); |
911 |
pango_context_set_language(mRTLPangoContext, GetPangoLanguage(mLangGroup)); |
912 |
pango_context_set_font_description(mRTLPangoContext, mPangoFontDesc); |
913 |
} |
914 |
mPangoContext = mRTLPangoContext; |
915 |
} |
916 |
else { |
917 |
mPangoContext = mLTRPangoContext; |
918 |
} |
919 |
|
920 |
mIsRTL = aIsRTL; |
921 |
return NS_OK; |
922 |
} |
923 |
|
924 |
nsresult |
925 |
nsFontMetricsPango::GetClusterInfo(const PRUnichar *aText, |
926 |
PRUint32 aLength, |
927 |
PRUint32 *aClusterStarts) |
928 |
{ |
929 |
nsresult rv = NS_OK; |
930 |
PangoLogAttr *attrs = NULL; |
931 |
gint n_attrs = 0; |
932 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
933 |
|
934 |
// Convert the incoming UTF-16 to UTF-8 |
935 |
gchar *text = g_utf16_to_utf8(aText, aLength, NULL, NULL, NULL); |
936 |
|
937 |
if (!text) { |
938 |
#ifdef DEBUG |
939 |
NS_WARNING("nsFontMetricsPango::GetWidth invalid unicode to follow"); |
940 |
DUMP_PRUNICHAR(aText, aLength) |
941 |
#endif |
942 |
rv = NS_ERROR_FAILURE; |
943 |
goto loser; |
944 |
} |
945 |
|
946 |
// Set up the pango layout |
947 |
pango_layout_set_text(layout, text, strlen(text)); |
948 |
FixupSpaceWidths(layout, text); |
949 |
|
950 |
// Convert back to UTF-16 while filling in the cluster info |
951 |
// structure. |
952 |
pango_layout_get_log_attrs(layout, &attrs, &n_attrs); |
953 |
|
954 |
for (PRUint32 pos = 0; pos < aLength; pos++) { |
955 |
if (IS_HIGH_SURROGATE(aText[pos])) { |
956 |
aClusterStarts[pos] = 1; |
957 |
pos++; |
958 |
} |
959 |
else { |
960 |
aClusterStarts[pos] = attrs[pos].is_cursor_position; |
961 |
} |
962 |
} |
963 |
|
964 |
loser: |
965 |
if (attrs) |
966 |
g_free(attrs); |
967 |
if (text) |
968 |
g_free(text); |
969 |
if (layout) |
970 |
g_object_unref(layout); |
971 |
|
972 |
return rv; |
973 |
} |
974 |
|
975 |
nsresult |
976 |
nsFontMetricsPango::GetPosition(const PRUnichar *aText, PRUint32 aLength, |
977 |
nscoord aCoord, PRUint32 &aInx) |
978 |
{ |
979 |
nsresult rv = NS_OK; |
980 |
int trailing = 0; |
981 |
int inx = 0; |
982 |
gboolean found = FALSE; |
983 |
const gchar *curChar; |
984 |
|
985 |
float f = mDeviceContext->AppUnitsToDevUnits(); |
986 |
|
987 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
988 |
PRUint32 localCoord = (PRUint32)(aCoord * PANGO_SCALE * f); |
989 |
|
990 |
// Convert the incoming UTF-16 to UTF-8 |
991 |
gchar *text = g_utf16_to_utf8(aText, aLength, NULL, NULL, NULL); |
992 |
|
993 |
if (!text) { |
994 |
#ifdef DEBUG |
995 |
NS_WARNING("nsFontMetricsPango::GetWidth invalid unicode to follow"); |
996 |
DUMP_PRUNICHAR(aText, aLength) |
997 |
#endif |
998 |
rv = NS_ERROR_FAILURE; |
999 |
goto loser; |
1000 |
} |
1001 |
|
1002 |
// Set up the pango layout |
1003 |
pango_layout_set_text(layout, text, strlen(text)); |
1004 |
FixupSpaceWidths(layout, text); |
1005 |
|
1006 |
found = pango_layout_xy_to_index(layout, localCoord, 0, |
1007 |
&inx, &trailing); |
1008 |
|
1009 |
// Convert the index back to the utf-16 index |
1010 |
curChar = text; |
1011 |
aInx = 0; |
1012 |
|
1013 |
// Jump to the end if it's not found. |
1014 |
if (!found) { |
1015 |
if (inx = 0) |
1016 |
aInx = 0; |
1017 |
else if (trailing) |
1018 |
aInx = aLength; |
1019 |
|
1020 |
goto loser; |
1021 |
} |
1022 |
|
1023 |
for (PRUint32 curOffset=0; curOffset < aLength; |
1024 |
curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) { |
1025 |
|
1026 |
// Check for a match before checking for a surrogate pair |
1027 |
if (curChar - text == inx) { |
1028 |
aInx = curOffset; |
1029 |
break; |
1030 |
} |
1031 |
|
1032 |
if (IS_HIGH_SURROGATE(aText[curOffset])) |
1033 |
curOffset++; |
1034 |
} |
1035 |
|
1036 |
// If there was a trailing result, advance the index pointer the |
1037 |
// number of characters equal to the trailing result. |
1038 |
while (trailing) { |
1039 |
aInx++; |
1040 |
// Yes, this can make aInx > length to indicate the end of the |
1041 |
// string. |
1042 |
if (aInx < aLength && IS_HIGH_SURROGATE(aText[aInx])) |
1043 |
aInx++; |
1044 |
trailing--; |
1045 |
} |
1046 |
|
1047 |
loser: |
1048 |
if (text) |
1049 |
g_free(text); |
1050 |
if (layout) |
1051 |
g_object_unref(layout); |
1052 |
|
1053 |
return rv; |
1054 |
} |
1055 |
|
1056 |
nsresult |
1057 |
nsFontMetricsPango::GetRangeWidth(const PRUnichar *aText, |
1058 |
PRUint32 aLength, |
1059 |
PRUint32 aStart, |
1060 |
PRUint32 aEnd, |
1061 |
PRUint32 &aWidth) |
1062 |
{ |
1063 |
nsresult rv = NS_OK; |
1064 |
int *ranges = NULL; |
1065 |
int n_ranges = 0; |
1066 |
PRUint32 utf8Start = 0; |
1067 |
PRUint32 utf8End = 0; |
1068 |
float f; |
1069 |
|
1070 |
aWidth = 0; |
1071 |
|
1072 |
// Convert the incoming UTF-16 to UTF-8 |
1073 |
gchar *text = g_utf16_to_utf8(aText, aLength, NULL, NULL, NULL); |
1074 |
gchar *curChar = text; |
1075 |
|
1076 |
PangoLayout *layout = pango_layout_new(mPangoContext); |
1077 |
|
1078 |
if (!text) { |
1079 |
#ifdef DEBUG |
1080 |
NS_WARNING("nsFontMetricsPango::GetWidth invalid unicode to follow"); |
1081 |
DUMP_PRUNICHAR(aText, aLength) |
1082 |
#endif |
1083 |
rv = NS_ERROR_FAILURE; |
1084 |
goto loser; |
1085 |
} |
1086 |
|
1087 |
// Convert the utf16 offsets into utf8 offsets |
1088 |
for (PRUint32 curOffset = 0; curOffset < aLength; |
1089 |
curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) { |
1090 |
|
1091 |
if (curOffset == aStart) |
1092 |
utf8Start = curChar - text; |
1093 |
|
1094 |
if (curOffset == aEnd) |
1095 |
utf8End = curChar - text; |
1096 |
|
1097 |
if (IS_HIGH_SURROGATE(aText[curOffset])) |
1098 |
curOffset++; |
1099 |
} |
1100 |
|
1101 |
// Special case where the end index is the same as the length |
1102 |
if (aLength == aEnd) |
1103 |
utf8End = strlen(text); |
1104 |
|
1105 |
pango_layout_set_text(layout, text, strlen(text)); |
1106 |
FixupSpaceWidths(layout, text); |
1107 |
|
1108 |
PangoLayoutLine *line; |
1109 |
if (pango_layout_get_line_count(layout) != 1) { |
1110 |
printf("Warning: more than one line!\n"); |
1111 |
} |
1112 |
line = pango_layout_get_line(layout, 0); |
1113 |
|
1114 |
pango_layout_line_get_x_ranges(line, utf8Start, utf8End, &ranges, &n_ranges); |
1115 |
|
1116 |
// Convert the width into app units |
1117 |
for (int i = 0; i < n_ranges; i++) { |
1118 |
aWidth += (ranges[(i * 2) + 1] - ranges[(i * 2)]); |
1119 |
} |
1120 |
|
1121 |
f = mDeviceContext-> DevUnitsToAppUnits(); |
1122 |
aWidth = nscoord(aWidth * f / PANGO_SCALE); |
1123 |
|
1124 |
loser: |
1125 |
if (ranges) |
1126 |
g_free(ranges); |
1127 |
if (text) |
1128 |
g_free(text); |
1129 |
if (layout) |
1130 |
g_object_unref(layout); |
1131 |
|
1132 |
return rv; |
1133 |
} |
1134 |
|
1135 |
/* static */ |
1136 |
PRUint32 |
1137 |
nsFontMetricsPango::GetHints(void) |
1138 |
{ |
1139 |
return (NS_RENDERING_HINT_BIDI_REORDERING | |
1140 |
NS_RENDERING_HINT_ARABIC_SHAPING | |
1141 |
NS_RENDERING_HINT_FAST_MEASURE | |
1142 |
NS_RENDERING_HINT_TEXT_CLUSTERS | |
1143 |
NS_RENDERING_HINT_SPACING_RUNS); |
1144 |
} |
1145 |
|
1146 |
/* static */ |
1147 |
nsresult |
1148 |
nsFontMetricsPango::FamilyExists(nsIDeviceContext *aDevice, |
1149 |
const nsString &aName) |
1150 |
{ |
1151 |
if (!IsASCIIFontName(aName)) |
1152 |
return NS_ERROR_FAILURE; |
1153 |
|
1154 |
NS_ConvertUCS2toUTF8 name(aName); |
1155 |
|
1156 |
nsresult rv = NS_ERROR_FAILURE; |
1157 |
PangoContext *context = pango_xft_get_context(GDK_DISPLAY(), 0); |
1158 |
PangoFontFamily **familyList; |
1159 |
int n; |
1160 |
|
1161 |
pango_context_list_families(context, &familyList, &n); |
1162 |
|
1163 |
for (int i=0; i < n; i++) { |
1164 |
const char *tmpname = pango_font_family_get_name(familyList[i]); |
1165 |
if (!Compare(nsDependentCString(tmpname), name, |
1166 |
nsCaseInsensitiveCStringComparator())) { |
1167 |
rv = NS_OK; |
1168 |
break; |
1169 |
} |
1170 |
} |
1171 |
|
1172 |
g_free(familyList); |
1173 |
g_object_unref(context); |
1174 |
|
1175 |
return rv; |
1176 |
} |
1177 |
|
1178 |
// Private Methods |
1179 |
|
1180 |
nsresult |
1181 |
nsFontMetricsPango::RealizeFont(void) |
1182 |
{ |
1183 |
nsCString familyList; |
1184 |
// Create and fill out the font description. |
1185 |
mPangoFontDesc = pango_font_description_new(); |
1186 |
|
1187 |
// Add CSS names - walk the list of fonts, adding the generic as |
1188 |
// the last font |
1189 |
for (int i=0; i < mFontList.Count(); ++i) { |
1190 |
// if this was a generic name, break out of the loop since we |
1191 |
// don't want to add it to the pattern yet |
1192 |
if (mFontIsGeneric[i]) |
1193 |
break;; |
1194 |
|
1195 |
nsCString *familyName = mFontList.CStringAt(i); |
1196 |
familyList.Append(familyName->get()); |
1197 |
familyList.Append(','); |
1198 |
} |
1199 |
|
1200 |
// If there's a generic add a pref for the generic if there's one |
1201 |
// set. |
1202 |
if (mGenericFont && !mFont->systemFont) { |
1203 |
nsCString name; |
1204 |
name += "font.name."; |
1205 |
name += mGenericFont->get(); |
1206 |
name += "."; |
1207 |
|
1208 |
nsString langGroup; |
1209 |
mLangGroup->ToString(langGroup); |
1210 |
|
1211 |
name.AppendWithConversion(langGroup); |
1212 |
|
1213 |
nsCOMPtr<nsIPref> pref; |
1214 |
pref = do_GetService(NS_PREF_CONTRACTID); |
1215 |
if (pref) { |
1216 |
nsresult rv; |
1217 |
nsXPIDLCString value; |
1218 |
rv = pref->GetCharPref(name.get(), getter_Copies(value)); |
1219 |
|
1220 |
// we ignore prefs that have three hypens since they are X |
1221 |
// style prefs. |
1222 |
if (FFRECountHyphens(value) < 3) { |
1223 |
nsCString tmpstr; |
1224 |
tmpstr.Append(value); |
1225 |
|
1226 |
familyList.Append(tmpstr); |
1227 |
familyList.Append(','); |
1228 |
} |
1229 |
} |
1230 |
} |
1231 |
|
1232 |
// Add the generic if there is one. |
1233 |
if (mGenericFont && !mFont->systemFont) { |
1234 |
familyList.Append(mGenericFont->get()); |
1235 |
familyList.Append(','); |
1236 |
} |
1237 |
|
1238 |
// Set the family |
1239 |
pango_font_description_set_family(mPangoFontDesc, |
1240 |
familyList.get()); |
1241 |
|
1242 |
// Set the point size |
1243 |
pango_font_description_set_size(mPangoFontDesc, |
1244 |
(gint)(mPointSize * PANGO_SCALE)); |
1245 |
|
1246 |
// Set the style |
1247 |
pango_font_description_set_style(mPangoFontDesc, |
1248 |
CalculateStyle(mFont->style)); |
1249 |
|
1250 |
// Set the weight |
1251 |
pango_font_description_set_weight(mPangoFontDesc, |
1252 |
CalculateWeight(mFont->weight)); |
1253 |
|
1254 |
// Now that we have the font description set up, create the |
1255 |
// context. |
1256 |
mLTRPangoContext = pango_xft_get_context(GDK_DISPLAY(), 0); |
1257 |
mPangoContext = mLTRPangoContext; |
1258 |
|
1259 |
// Set the color map so we can draw later. |
1260 |
gdk_pango_context_set_colormap(mPangoContext, gdk_rgb_get_cmap()); |
1261 |
|
1262 |
// Set the pango language now that we have a context |
1263 |
pango_context_set_language(mPangoContext, GetPangoLanguage(mLangGroup)); |
1264 |
|
1265 |
// And attach the font description to this context |
1266 |
pango_context_set_font_description(mPangoContext, mPangoFontDesc); |
1267 |
|
1268 |
return NS_OK; |
1269 |
} |
1270 |
|
1271 |
/* static */ |
1272 |
PRBool |
1273 |
nsFontMetricsPango::EnumFontCallback(const nsString &aFamily, |
1274 |
PRBool aIsGeneric, void *aData) |
1275 |
{ |
1276 |
// make sure it's an ascii name, if not then return and continue |
1277 |
// enumerating |
1278 |
if (!IsASCIIFontName(aFamily)) |
1279 |
return PR_TRUE; |
1280 |
|
1281 |
nsCAutoString name; |
1282 |
name.AssignWithConversion(aFamily.get()); |
1283 |
ToLowerCase(name); |
1284 |
nsFontMetricsPango *metrics = (nsFontMetricsPango *)aData; |
1285 |
metrics->mFontList.AppendCString(name); |
1286 |
metrics->mFontIsGeneric.AppendElement((void *)aIsGeneric); |
1287 |
if (aIsGeneric) { |
1288 |
metrics->mGenericFont = |
1289 |
metrics->mFontList.CStringAt(metrics->mFontList.Count() - 1); |
1290 |
return PR_FALSE; // stop processing |
1291 |
} |
1292 |
|
1293 |
return PR_TRUE; // keep processing |
1294 |
} |
1295 |
|
1296 |
/* |
1297 |
* This is only used when there's per-character spacing happening. |
1298 |
* Well, really it can be either line or character spacing but it's |
1299 |
* just turtles all the way down! |
1300 |
*/ |
1301 |
|
1302 |
void |
1303 |
nsFontMetricsPango::DrawStringSlowly(const gchar *aText, |
1304 |
const PRUnichar *aOrigString, |
1305 |
PRUint32 aLength, |
1306 |
GdkDrawable *aDrawable, |
1307 |
GdkGC *aGC, gint aX, gint aY, |
1308 |
PangoLayoutLine *aLine, |
1309 |
const nscoord *aSpacing) |
1310 |
{ |
1311 |
float app2dev; |
1312 |
app2dev = mDeviceContext->AppUnitsToDevUnits(); |
1313 |
gint offset = 0; |
1314 |
|
1315 |
/* |
1316 |
* We walk the list of glyphs returned in each layout run, |
1317 |
* matching up the glyphs with the characters in the source text. |
1318 |
* We use the aSpacing argument to figure out where to place those |
1319 |
* glyphs. It's important to note that since the string we're |
1320 |
* working with is in UTF-8 while the spacing argument assumes |
1321 |
* that offset will be part of the UTF-16 string. Logical |
1322 |
* attributes in pango are in byte offsets in the UTF-8 string, so |
1323 |
* we need to store the offsets based on the UTF-8 string. |
1324 |
*/ |
1325 |
nscoord *utf8spacing = new nscoord[strlen(aText)]; |
1326 |
|
1327 |
if (aOrigString) { |
1328 |
const gchar *curChar = aText; |
1329 |
bzero(utf8spacing, sizeof(nscoord) * strlen(aText)); |
1330 |
|
1331 |
// Covert the utf16 spacing offsets to utf8 spacing offsets |
1332 |
for (PRUint32 curOffset=0; curOffset < aLength; |
1333 |
curOffset++, curChar = g_utf8_find_next_char(curChar, NULL)) { |
1334 |
utf8spacing[curChar - aText] = aSpacing[curOffset]; |
1335 |
|
1336 |
if (IS_HIGH_SURROGATE(aOrigString[curOffset])) |
1337 |
curOffset++; |
1338 |
} |
1339 |
} |
1340 |
else { |
1341 |
memcpy(utf8spacing, aSpacing, (sizeof(nscoord *) * aLength)); |
1342 |
} |
1343 |
|
1344 |
gint curRun = 0; |
1345 |
|
1346 |
for (GSList *tmpList = aLine->runs; tmpList && tmpList->data; |
1347 |
tmpList = tmpList->next, curRun++) { |
1348 |
PangoLayoutRun *layoutRun = (PangoLayoutRun *)tmpList->data; |
1349 |
gint tmpOffset = 0; |
1350 |
|
1351 |
/* printf(" Rendering run %d: \"%s\"\n", curRun, |
1352 |
&aText[layoutRun->item->offset]); */ |
1353 |
|
1354 |
for (gint i=0; i < layoutRun->glyphs->num_glyphs; i++) { |
1355 |
/* printf("glyph %d offset %d orig width %d new width %d\n", i, |
1356 |
* layoutRun->glyphs->log_clusters[i] + layoutRun->item->offset, |
1357 |
* layoutRun->glyphs->glyphs[i].geometry.width, |
1358 |
* (gint)(utf8spacing[layoutRun->glyphs->log_clusters[i] + layoutRun->item->offset] * app2dev * PANGO_SCALE)); |
1359 |
*/ |
1360 |
gint thisOffset = (gint)(utf8spacing[layoutRun->glyphs->log_clusters[i] + layoutRun->item->offset] |
1361 |
* app2dev * PANGO_SCALE); |
1362 |
layoutRun->glyphs->glyphs[i].geometry.width = thisOffset; |
1363 |
tmpOffset += thisOffset; |
1364 |
} |
1365 |
|
1366 |
/* printf(" rendering at X coord %d\n", aX + offset); */ |
1367 |
offset += tmpOffset; |
1368 |
} |
1369 |
|
1370 |
gdk_draw_layout_line(aDrawable, aGC, aX, aY, aLine); |
1371 |
|
1372 |
delete[] utf8spacing; |
1373 |
} |
1374 |
|
1375 |
nsresult |
1376 |
nsFontMetricsPango::GetTextDimensionsInternal(const gchar* aString, |
1377 |
PRInt32 aLength, |
1378 |
PRInt32 aAvailWidth, |
1379 |
PRInt32* aBreaks, |
1380 |
PRInt32 aNumBreaks, |
1381 |
nsTextDimensions& aDimensions, |
1382 |
PRInt32& aNumCharsFit, |
1383 |
nsTextDimensions& aLastWordDimensions, |
1384 |
nsRenderingContextGTK *aContext) |
1385 |
{ |
1386 |
NS_PRECONDITION(aBreaks[aNumBreaks - 1] == aLength, "invalid break array"); |
1387 |
|
1388 |
// If we need to back up this state represents the last place |
1389 |
// we could break. We can use this to avoid remeasuring text |
1390 |
PRInt32 prevBreakState_BreakIndex = -1; // not known |
1391 |
// (hasn't been computed) |
1392 |
nscoord prevBreakState_Width = 0; // accumulated width to this point |
1393 |
|
1394 |
// Initialize OUT parameters |
1395 |
GetMaxAscent(aLastWordDimensions.ascent); |
1396 |
GetMaxDescent(aLastWordDimensions.descent); |
1397 |
aLastWordDimensions.width = -1; |
1398 |
aNumCharsFit = 0; |
1399 |
|
1400 |
// Iterate each character in the string and determine which font to use |
1401 |
nscoord width = 0; |
1402 |
PRInt32 start = 0; |
1403 |
nscoord aveCharWidth; |
1404 |
GetAveCharWidth(aveCharWidth); |
1405 |
|
1406 |
while (start < aLength) { |
1407 |
// Estimate how many characters will fit. Do that by |
1408 |
// diving the available space by the average character |
1409 |
// width. Make sure the estimated number of characters is |
1410 |
// at least 1 |
1411 |
PRInt32 estimatedNumChars = 0; |
1412 |
|
1413 |
if (aveCharWidth > 0) |
1414 |
estimatedNumChars = (aAvailWidth - width) / aveCharWidth; |
1415 |
|
1416 |
if (estimatedNumChars < 1) |
1417 |
estimatedNumChars = 1; |
1418 |
|
1419 |
// Find the nearest break offset |
1420 |
PRInt32 estimatedBreakOffset = start + estimatedNumChars; |
1421 |
PRInt32 breakIndex; |
1422 |
nscoord numChars; |
1423 |
|
1424 |
// Find the nearest place to break that is less than or equal to |
1425 |
// the estimated break offset |
1426 |
if (aLength <= estimatedBreakOffset) { |
1427 |
// All the characters should fit |
1428 |
numChars = aLength - start; |
1429 |
breakIndex = aNumBreaks - 1; |
1430 |
} |
1431 |
else { |
1432 |
breakIndex = prevBreakState_BreakIndex; |
1433 |
while (((breakIndex + 1) < aNumBreaks) && |
1434 |
(aBreaks[breakIndex + 1] <= estimatedBreakOffset)) { |
1435 |
++breakIndex; |
1436 |
} |
1437 |
|
1438 |
if (breakIndex == prevBreakState_BreakIndex) { |
1439 |
++breakIndex; // make sure we advanced past the |
1440 |
// previous break index |
1441 |
} |
1442 |
|
1443 |
numChars = aBreaks[breakIndex] - start; |
1444 |
} |
1445 |
|
1446 |
// Measure the text |
1447 |
nscoord twWidth = 0; |
1448 |
if ((1 == numChars) && (aString[start] == ' ')) |
1449 |
GetSpaceWidth(twWidth); |
1450 |
else if (numChars > 0) |
1451 |
GetWidth(&aString[start], numChars, twWidth, aContext); |
1452 |
|
1453 |
// See if the text fits |
1454 |
PRBool textFits = (twWidth + width) <= aAvailWidth; |
1455 |
|
1456 |
// If the text fits then update the width and the number of |
1457 |
// characters that fit |
1458 |
if (textFits) { |
1459 |
aNumCharsFit += numChars; |
1460 |
width += twWidth; |
1461 |
start += numChars; |
1462 |
|
1463 |
// This is a good spot to back up to if we need to so remember |
1464 |
// this state |
1465 |
prevBreakState_BreakIndex = breakIndex; |
1466 |
prevBreakState_Width = width; |
1467 |
} |
1468 |
else { |
1469 |
// See if we can just back up to the previous saved |
1470 |
// state and not have to measure any text |
1471 |
if (prevBreakState_BreakIndex > 0) { |
1472 |
// If the previous break index is just before the |
1473 |
// current break index then we can use it |
1474 |
if (prevBreakState_BreakIndex == (breakIndex - 1)) { |
1475 |
aNumCharsFit = aBreaks[prevBreakState_BreakIndex]; |
1476 |
width = prevBreakState_Width; |
1477 |
break; |
1478 |
} |
1479 |
} |
1480 |
|
1481 |
// We can't just revert to the previous break state |
1482 |
if (0 == breakIndex) { |
1483 |
// There's no place to back up to, so even though |
1484 |
// the text doesn't fit return it anyway |
1485 |
aNumCharsFit += numChars; |
1486 |
width += twWidth; |
1487 |
break; |
1488 |
} |
1489 |
|
1490 |
// Repeatedly back up until we get to where the text |
1491 |
// fits or we're all the way back to the first word |
1492 |
width += twWidth; |
1493 |
while ((breakIndex >= 1) && (width > aAvailWidth)) { |
1494 |
twWidth = 0; |
1495 |
start = aBreaks[breakIndex - 1]; |
1496 |
numChars = aBreaks[breakIndex] - start; |
1497 |
|
1498 |
if ((1 == numChars) && (aString[start] == ' ')) |
1499 |
GetSpaceWidth(twWidth); |
1500 |
else if (numChars > 0) |
1501 |
GetWidth(&aString[start], numChars, twWidth, |
1502 |
aContext); |
1503 |
width -= twWidth; |
1504 |
aNumCharsFit = start; |
1505 |
breakIndex--; |
1506 |
} |
1507 |
break; |
1508 |
} |
1509 |
} |
1510 |
|
1511 |
aDimensions.width = width; |
1512 |
GetMaxAscent(aDimensions.ascent); |
1513 |
GetMaxDescent(aDimensions.descent); |
1514 |
|
1515 |
/* printf("aDimensions %d %d %d aLastWordDimensions %d %d %d aNumCharsFit %d\n", |
1516 |
aDimensions.width, aDimensions.ascent, aDimensions.descent, |
1517 |
aLastWordDimensions.width, aLastWordDimensions.ascent, aLastWordDimensions.descent, |
1518 |
aNumCharsFit); */ |
1519 |
|
1520 |
return NS_OK; |
1521 |
} |
1522 |
|
1523 |
void |
1524 |
nsFontMetricsPango::FixupSpaceWidths (PangoLayout *aLayout, |
1525 |
const char *aString) |
1526 |
{ |
1527 |
PangoLayoutLine *line = pango_layout_get_line(aLayout, 0); |
1528 |
|
1529 |
gint curRun = 0; |
1530 |
|
1531 |
for (GSList *tmpList = line->runs; tmpList && tmpList->data; |
1532 |
tmpList = tmpList->next, curRun++) { |
1533 |
PangoLayoutRun *layoutRun = (PangoLayoutRun *)tmpList->data; |
1534 |
|
1535 |
for (gint i=0; i < layoutRun->glyphs->num_glyphs; i++) { |
1536 |
gint thisOffset = (gint)layoutRun->glyphs->log_clusters[i] + layoutRun->item->offset; |
1537 |
if (aString[thisOffset] == ' ') |
1538 |
layoutRun->glyphs->glyphs[i].geometry.width = mPangoSpaceWidth; |
1539 |
} |
1540 |
} |
1541 |
} |
1542 |
|
1543 |
/* static */ |
1544 |
PRBool |
1545 |
IsASCIIFontName(const nsString& aName) |
1546 |
{ |
1547 |
PRUint32 len = aName.Length(); |
1548 |
const PRUnichar* str = aName.get(); |
1549 |
for (PRUint32 i = 0; i < len; i++) { |
1550 |
/* |
1551 |
* X font names are printable ASCII, ignore others (for now) |
1552 |
*/ |
1553 |
if ((str[i] < 0x20) || (str[i] > 0x7E)) { |
1554 |
return PR_FALSE; |
1555 |
} |
1556 |
} |
1557 |
|
1558 |
return PR_TRUE; |
1559 |
} |
1560 |
|
1561 |
/* static */ |
1562 |
int |
1563 |
FFRECountHyphens (nsACString &aFFREName) |
1564 |
{ |
1565 |
int h = 0; |
1566 |
PRInt32 hyphen = 0; |
1567 |
while ((hyphen = aFFREName.FindChar('-', hyphen)) >= 0) { |
1568 |
++h; |
1569 |
++hyphen; |
1570 |
} |
1571 |
return h; |
1572 |
} |
1573 |
|
1574 |
/* static */ |
1575 |
PangoLanguage * |
1576 |
GetPangoLanguage(nsIAtom *aLangGroup) |
1577 |
{ |
1578 |
// Find the FC lang group for this lang group |
1579 |
nsCAutoString cname; |
1580 |
aLangGroup->ToUTF8String(cname); |
1581 |
|
1582 |
// see if the lang group needs to be translated from mozilla's |
1583 |
// internal mapping into fontconfig's |
1584 |
const struct MozPangoLangGroup *langGroup; |
1585 |
langGroup = FindPangoLangGroup(cname); |
1586 |
|
1587 |
// if there's no lang group, just use the lang group as it was |
1588 |
// passed to us |
1589 |
// |
1590 |
// we're casting away the const here for the strings - should be |
1591 |
// safe. |
1592 |
if (!langGroup) |
1593 |
return pango_language_from_string(cname.get()); |
1594 |
else if (langGroup->PangoLang) |
1595 |
return pango_language_from_string(langGroup->PangoLang); |
1596 |
|
1597 |
return pango_language_from_string("en"); |
1598 |
} |
1599 |
|
1600 |
/* static */ |
1601 |
const MozPangoLangGroup* |
1602 |
FindPangoLangGroup (nsACString &aLangGroup) |
1603 |
{ |
1604 |
for (unsigned int i=0; i < NUM_PANGO_LANG_GROUPS; ++i) { |
1605 |
if (aLangGroup.Equals(MozPangoLangGroups[i].mozLangGroup, |
1606 |
nsCaseInsensitiveCStringComparator())) { |
1607 |
return &MozPangoLangGroups[i]; |
1608 |
} |
1609 |
} |
1610 |
|
1611 |
return nsnull; |
1612 |
} |
1613 |
|
1614 |
/* static */ |
1615 |
void |
1616 |
FreeGlobals(void) |
1617 |
{ |
1618 |
} |
1619 |
|
1620 |
/* static */ |
1621 |
PangoStyle |
1622 |
CalculateStyle(PRUint8 aStyle) |
1623 |
{ |
1624 |
switch(aStyle) { |
1625 |
case NS_FONT_STYLE_ITALIC: |
1626 |
return PANGO_STYLE_OBLIQUE; |
1627 |
break; |
1628 |
case NS_FONT_STYLE_OBLIQUE: |
1629 |
return PANGO_STYLE_OBLIQUE; |
1630 |
break; |
1631 |
} |
1632 |
|
1633 |
return PANGO_STYLE_NORMAL; |
1634 |
} |
1635 |
|
1636 |
/* static */ |
1637 |
PangoWeight |
1638 |
CalculateWeight (PRUint16 aWeight) |
1639 |
{ |
1640 |
/* |
1641 |
* weights come in two parts crammed into one |
1642 |
* integer -- the "base" weight is weight / 100, |
1643 |
* the rest of the value is the "offset" from that |
1644 |
* weight -- the number of steps to move to adjust |
1645 |
* the weight in the list of supported font weights, |
1646 |
* this value can be negative or positive. |
1647 |
*/ |
1648 |
PRInt32 baseWeight = (aWeight + 50) / 100; |
1649 |
PRInt32 offset = aWeight - baseWeight * 100; |
1650 |
|
1651 |
/* clip weights to range 0 to 9 */ |
1652 |
if (baseWeight < 0) |
1653 |
baseWeight = 0; |
1654 |
if (baseWeight > 9) |
1655 |
baseWeight = 9; |
1656 |
|
1657 |
/* Map from weight value to fcWeights index */ |
1658 |
static int fcWeightLookup[10] = { |
1659 |
0, 0, 0, 0, 1, 1, 2, 3, 3, 4, |
1660 |
}; |
1661 |
|
1662 |
PRInt32 fcWeight = fcWeightLookup[baseWeight]; |
1663 |
|
1664 |
/* |
1665 |
* adjust by the offset value, make sure we stay inside the |
1666 |
* fcWeights table |
1667 |
*/ |
1668 |
fcWeight += offset; |
1669 |
|
1670 |
if (fcWeight < 0) |
1671 |
fcWeight = 0; |
1672 |
if (fcWeight > 4) |
1673 |
fcWeight = 4; |
1674 |
|
1675 |
/* Map to final PANGO_WEIGHT value */ |
1676 |
static int fcWeights[5] = { |
1677 |
349, |
1678 |
499, |
1679 |
649, |
1680 |
749, |
1681 |
999 |
1682 |
}; |
1683 |
|
1684 |
return (PangoWeight)fcWeights[fcWeight]; |
1685 |
} |
1686 |
|
1687 |
/* static */ |
1688 |
nsresult |
1689 |
EnumFontsPango(nsIAtom* aLangGroup, const char* aGeneric, |
1690 |
PRUint32* aCount, PRUnichar*** aResult) |
1691 |
{ |
1692 |
FcPattern *pat = NULL; |
1693 |
FcObjectSet *os = NULL; |
1694 |
FcFontSet *fs = NULL; |
1695 |
nsresult rv = NS_ERROR_FAILURE; |
1696 |
|
1697 |
PRUnichar **array = NULL; |
1698 |
PRUint32 narray = 0; |
1699 |
PRInt32 serif = 0, sansSerif = 0, monospace = 0, nGenerics; |
1700 |
|
1701 |
*aCount = 0; |
1702 |
*aResult = nsnull; |
1703 |
|
1704 |
pat = FcPatternCreate(); |
1705 |
if (!pat) |
1706 |
goto end; |
1707 |
|
1708 |
os = FcObjectSetBuild(FC_FAMILY, FC_FOUNDRY, 0); |
1709 |
if (!os) |
1710 |
goto end; |
1711 |
|
1712 |
// take the pattern and add the lang group to it |
1713 |
if (aLangGroup) |
1714 |
NS_AddLangGroup(pat, aLangGroup); |
1715 |
|
1716 |
// get the font list |
1717 |
fs = FcFontList(0, pat, os); |
1718 |
|
1719 |
if (!fs) |
1720 |
goto end; |
1721 |
|
1722 |
if (!fs->nfont) { |
1723 |
rv = NS_OK; |
1724 |
goto end; |
1725 |
} |
1726 |
|
1727 |
// Fontconfig supports 3 generic fonts, "serif", "sans-serif", and |
1728 |
// "monospace", slightly different from CSS's 5. |
1729 |
if (!aGeneric) |
1730 |
serif = sansSerif = monospace = 1; |
1731 |
else if (!strcmp(aGeneric, "serif")) |
1732 |
serif = 1; |
1733 |
else if (!strcmp(aGeneric, "sans-serif")) |
1734 |
sansSerif = 1; |
1735 |
else if (!strcmp(aGeneric, "monospace")) |
1736 |
monospace = 1; |
1737 |
else if (!strcmp(aGeneric, "cursive") || !strcmp(aGeneric, "fantasy")) |
1738 |
serif = sansSerif = 1; |
1739 |
else |
1740 |
NS_NOTREACHED("unexpected generic family"); |
1741 |
nGenerics = serif + sansSerif + monospace; |
1742 |
|
1743 |
array = NS_STATIC_CAST(PRUnichar **, |
1744 |
nsMemory::Alloc((fs->nfont + nGenerics) * sizeof(PRUnichar *))); |
1745 |
if (!array) |
1746 |
goto end; |
1747 |
|
1748 |
if (serif) { |
1749 |
PRUnichar *name = ToNewUnicode(NS_LITERAL_STRING("serif")); |
1750 |
if (!name) |
1751 |
goto end; |
1752 |
array[narray++] = name; |
1753 |
} |
1754 |
|
1755 |
if (sansSerif) { |
1756 |
PRUnichar *name = ToNewUnicode(NS_LITERAL_STRING("sans-serif")); |
1757 |
if (!name) |
1758 |
goto end; |
1759 |
array[narray++] = name; |
1760 |
} |
1761 |
|
1762 |
if (monospace) { |
1763 |
PRUnichar *name = ToNewUnicode(NS_LITERAL_STRING("monospace")); |
1764 |
if (!name) |
1765 |
goto end; |
1766 |
array[narray++] = name; |
1767 |
} |
1768 |
|
1769 |
for (int i=0; i < fs->nfont; ++i) { |
1770 |
char *family; |
1771 |
PRUnichar *name; |
1772 |
|
1773 |
// if there's no family, just move to the next iteration |
1774 |
if (FcPatternGetString (fs->fonts[i], FC_FAMILY, 0, |
1775 |
(FcChar8 **) &family) != FcResultMatch) { |
1776 |
continue; |
1777 |
} |
1778 |
|
1779 |
name = NS_STATIC_CAST(PRUnichar *, |
1780 |
nsMemory::Alloc ((strlen (family) + 1) |
1781 |
* sizeof (PRUnichar))); |
1782 |
|
1783 |
if (!name) |
1784 |
goto end; |
1785 |
|
1786 |
PRUnichar *r = name; |
1787 |
for (char *f = family; *f; ++f) |
1788 |
*r++ = *f; |
1789 |
*r = '\0'; |
1790 |
|
1791 |
array[narray++] = name; |
1792 |
} |
1793 |
|
1794 |
NS_QuickSort(array + nGenerics, narray - nGenerics, sizeof (PRUnichar*), |
1795 |
CompareFontNames, nsnull); |
1796 |
|
1797 |
*aCount = narray; |
1798 |
if (narray) |
1799 |
*aResult = array; |
1800 |
else |
1801 |
nsMemory::Free(array); |
1802 |
|
1803 |
rv = NS_OK; |
1804 |
|
1805 |
end: |
1806 |
if (NS_FAILED(rv) && array) { |
1807 |
while (narray) |
1808 |
nsMemory::Free (array[--narray]); |
1809 |
nsMemory::Free (array); |
1810 |
} |
1811 |
if (pat) |
1812 |
FcPatternDestroy(pat); |
1813 |
if (os) |
1814 |
FcObjectSetDestroy(os); |
1815 |
if (fs) |
1816 |
FcFontSetDestroy(fs); |
1817 |
|
1818 |
return rv; |
1819 |
} |
1820 |
|
1821 |
/* static */ |
1822 |
int |
1823 |
CompareFontNames (const void* aArg1, const void* aArg2, void* aClosure) |
1824 |
{ |
1825 |
const PRUnichar* str1 = *((const PRUnichar**) aArg1); |
1826 |
const PRUnichar* str2 = *((const PRUnichar**) aArg2); |
1827 |
|
1828 |
return nsCRT::strcmp(str1, str2); |
1829 |
} |
1830 |
|
1831 |
// nsFontEnumeratorPango class |
1832 |
|
1833 |
nsFontEnumeratorPango::nsFontEnumeratorPango() |
1834 |
{ |
1835 |
} |
1836 |
|
1837 |
NS_IMPL_ISUPPORTS1(nsFontEnumeratorPango, nsIFontEnumerator) |
1838 |
|
1839 |
NS_IMETHODIMP |
1840 |
nsFontEnumeratorPango::EnumerateAllFonts(PRUint32 *aCount, |
1841 |
PRUnichar ***aResult) |
1842 |
{ |
1843 |
NS_ENSURE_ARG_POINTER(aResult); |
1844 |
*aResult = nsnull; |
1845 |
NS_ENSURE_ARG_POINTER(aCount); |
1846 |
*aCount = 0; |
1847 |
|
1848 |
return EnumFontsPango(nsnull, nsnull, aCount, aResult); |
1849 |
} |
1850 |
|
1851 |
NS_IMETHODIMP |
1852 |
nsFontEnumeratorPango::EnumerateFonts(const char *aLangGroup, |
1853 |
const char *aGeneric, |
1854 |
PRUint32 *aCount, |
1855 |
PRUnichar ***aResult) |
1856 |
{ |
1857 |
NS_ENSURE_ARG_POINTER(aResult); |
1858 |
*aResult = nsnull; |
1859 |
NS_ENSURE_ARG_POINTER(aCount); |
1860 |
*aCount = 0; |
1861 |
|
1862 |
// aLangGroup=null or "" means any (i.e., don't care) |
1863 |
// aGeneric=null or "" means any (i.e, don't care) |
1864 |
nsCOMPtr<nsIAtom> langGroup; |
1865 |
if (aLangGroup && *aLangGroup) |
1866 |
langGroup = do_GetAtom(aLangGroup); |
1867 |
const char* generic = nsnull; |
1868 |
if (aGeneric && *aGeneric) |
1869 |
generic = aGeneric; |
1870 |
|
1871 |
return EnumFontsPango(langGroup, generic, aCount, aResult); |
1872 |
} |
1873 |
|
1874 |
NS_IMETHODIMP |
1875 |
nsFontEnumeratorPango::HaveFontFor(const char *aLangGroup, |
1876 |
PRBool *aResult) |
1877 |
{ |
1878 |
NS_ENSURE_ARG_POINTER(aResult); |
1879 |
*aResult = PR_FALSE; |
1880 |
NS_ENSURE_ARG_POINTER(aLangGroup); |
1881 |
|
1882 |
*aResult = PR_TRUE; // always return true for now. |
1883 |
// Finish me - ftang |
1884 |
return NS_OK; |
1885 |
} |
1886 |
|
1887 |
NS_IMETHODIMP |
1888 |
nsFontEnumeratorPango::GetDefaultFont(const char *aLangGroup, |
1889 |
const char *aGeneric, |
1890 |
PRUnichar **aResult) |
1891 |
{ |
1892 |
NS_ENSURE_ARG_POINTER(aResult); |
1893 |
*aResult = nsnull; |
1894 |
|
1895 |
// Have a look at nsFontEnumeratorXft::GetDefaultFont for some |
1896 |
// possible code for this function. |
1897 |
|
1898 |
return NS_OK; |
1899 |
} |
1900 |
|
1901 |
NS_IMETHODIMP |
1902 |
nsFontEnumeratorPango::UpdateFontList(PRBool *_retval) |
1903 |
{ |
1904 |
*_retval = PR_FALSE; // always return false for now |
1905 |
return NS_OK; |
1906 |
} |
|
|
1907 |
++ gfx/src/ps/Makefile.in |
Lines 77-83
Link Here
|
77 |
$(MOZ_UNICHARUTIL_LIBS) \ |
77 |
$(MOZ_UNICHARUTIL_LIBS) \ |
78 |
$(NULL) |
78 |
$(NULL) |
79 |
|
79 |
|
80 |
ifdef MOZ_ENABLE_FREETYPE2 |
80 |
ifdef MOZ_ENABLE_XFT |
|
|
81 |
EXTRA_DSO_LDOPTS += \ |
82 |
$(MOZ_XFT_LIBS) \ |
83 |
$(NULL) |
84 |
endif |
85 |
|
86 |
ifneq (,$(MOZ_ENABLE_FREETYPE2)$(MOZ_ENABLE_XFT)) |
81 |
CPPSRCS += \ |
87 |
CPPSRCS += \ |
82 |
nsCidMap.cpp \ |
88 |
nsCidMap.cpp \ |
83 |
nsType1.cpp \ |
89 |
nsType1.cpp \ |
Lines 87-96
Link Here
|
87 |
|
93 |
|
88 |
include $(topsrcdir)/config/rules.mk |
94 |
include $(topsrcdir)/config/rules.mk |
89 |
|
95 |
|
90 |
ifdef MOZ_ENABLE_FREETYPE2 |
|
|
91 |
INCLUDES += $(FT2_CFLAGS) |
92 |
endif |
93 |
|
94 |
CFLAGS += $(TK_CFLAGS) |
96 |
CFLAGS += $(TK_CFLAGS) |
95 |
CXXFLAGS += $(TK_CFLAGS) |
97 |
CXXFLAGS += $(TK_CFLAGS) |
96 |
|
98 |
|
Lines 99-104
Link Here
|
99 |
-I$(srcdir)/.. \ |
101 |
-I$(srcdir)/.. \ |
100 |
$(NULL) |
102 |
$(NULL) |
101 |
|
103 |
|
|
|
104 |
ifdef MOZ_ENABLE_XFT |
105 |
INCLUDES += $(MOZ_XFT_CFLAGS) |
106 |
LOCAL_INCLUDES += -I$(srcdir)/../shared |
107 |
else |
108 |
ifdef MOZ_ENABLE_FREETYPE2 |
109 |
INCLUDES += $(FT2_CFLAGS) |
110 |
endif |
111 |
endif |
112 |
|
102 |
libs:: |
113 |
libs:: |
103 |
$(INSTALL) $(EXPORT_RESOURCE) $(DIST)/bin/res |
114 |
$(INSTALL) $(EXPORT_RESOURCE) $(DIST)/bin/res |
104 |
|
115 |
|
105 |
-- gfx/src/ps/nsDeviceContextPS.cpp |
116 |
++ gfx/src/ps/nsDeviceContextPS.cpp |
Lines 213-218
Link Here
|
213 |
|
213 |
|
214 |
nsresult rv; |
214 |
nsresult rv; |
215 |
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID, &rv)); |
215 |
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID, &rv)); |
|
|
216 |
#ifdef MOZ_ENABLE_XFT |
217 |
if (NS_SUCCEEDED(rv)) { |
218 |
rv = pref->GetBoolPref("font.FreeType2.printing", &mFTPEnable); |
219 |
if (NS_FAILED(rv)) |
220 |
mFTPEnable = PR_FALSE; |
221 |
} |
222 |
#else |
223 |
mFTPEnable = PR_FALSE; |
224 |
#ifdef MOZ_ENABLE_FREETYPE2 |
216 |
if (NS_SUCCEEDED(rv)) { |
225 |
if (NS_SUCCEEDED(rv)) { |
217 |
rv = pref->GetBoolPref("font.FreeType2.enable", &mFTPEnable); |
226 |
rv = pref->GetBoolPref("font.FreeType2.enable", &mFTPEnable); |
218 |
if (NS_FAILED(rv)) |
227 |
if (NS_FAILED(rv)) |
Lines 223-228
Link Here
|
223 |
mFTPEnable = PR_FALSE; |
232 |
mFTPEnable = PR_FALSE; |
224 |
} |
233 |
} |
225 |
} |
234 |
} |
|
|
235 |
#endif |
236 |
#endif |
226 |
|
237 |
|
227 |
// the user's locale |
238 |
// the user's locale |
228 |
nsCOMPtr<nsILanguageAtomService> langService; |
239 |
nsCOMPtr<nsILanguageAtomService> langService; |
Lines 435-441
Link Here
|
435 |
|
446 |
|
436 |
NS_ENSURE_TRUE(mPSObj != nsnull, NS_ERROR_NULL_POINTER); |
447 |
NS_ENSURE_TRUE(mPSObj != nsnull, NS_ERROR_NULL_POINTER); |
437 |
|
448 |
|
438 |
#ifdef MOZ_ENABLE_FREETYPE2 |
449 |
#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) |
439 |
// Before output Type8 font, check whether printer support CID font |
450 |
// Before output Type8 font, check whether printer support CID font |
440 |
if (mFTPEnable && mPSFontGeneratorList) |
451 |
if (mFTPEnable && mPSFontGeneratorList) |
441 |
if (mPSFontGeneratorList->Count() > 0) |
452 |
if (mPSFontGeneratorList->Count() > 0) |
442 |
-- gfx/src/ps/nsFontMetricsPS.cpp |
453 |
++ gfx/src/ps/nsFontMetricsPS.cpp |
Lines 21-26
Link Here
|
21 |
* |
21 |
* |
22 |
* Contributor(s): |
22 |
* Contributor(s): |
23 |
* Roland Mainz <roland.mainz@informatik.med.uni-giessen.de> |
23 |
* Roland Mainz <roland.mainz@informatik.med.uni-giessen.de> |
|
|
24 |
* Ervin Yan <Ervin.Yan@sun.com> |
25 |
* Christopher Blizzard <blizzard@mozilla.org> |
26 |
* Jungshik Shin <jshin@i18nl10n.com> |
24 |
* |
27 |
* |
25 |
* |
28 |
* |
26 |
* Alternatively, the contents of this file may be used under the terms of |
29 |
* Alternatively, the contents of this file may be used under the terms of |
Lines 47-53
Link Here
|
47 |
#include "nsIPref.h" |
50 |
#include "nsIPref.h" |
48 |
#include "nsVoidArray.h" |
51 |
#include "nsVoidArray.h" |
49 |
#include "nsReadableUtils.h" |
52 |
#include "nsReadableUtils.h" |
50 |
#ifdef MOZ_ENABLE_FREETYPE2 |
53 |
#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) |
51 |
#include "nsType8.h" |
54 |
#include "nsType8.h" |
52 |
#endif |
55 |
#endif |
53 |
#include "prlog.h" |
56 |
#include "prlog.h" |
Lines 57-68
Link Here
|
57 |
extern nsIAtom *gUsersLocale; |
60 |
extern nsIAtom *gUsersLocale; |
58 |
#define NS_IS_BOLD(weight) ((weight) > 400 ? 1 : 0) |
61 |
#define NS_IS_BOLD(weight) ((weight) > 400 ? 1 : 0) |
59 |
|
62 |
|
|
|
63 |
#ifdef MOZ_ENABLE_XFT |
64 |
|
65 |
#include "nsFontConfigUtils.h" |
66 |
|
67 |
static nsFontPS* CreateFontPS(nsXftEntry*, const nsFont&, |
68 |
nsFontMetricsPS*); |
69 |
|
70 |
#else |
60 |
#ifdef MOZ_ENABLE_FREETYPE2 |
71 |
#ifdef MOZ_ENABLE_FREETYPE2 |
61 |
static nsFontPS* CreateFontPS(nsITrueTypeFontCatalogEntry*, const nsFont&, |
72 |
static nsFontPS* CreateFontPS(nsITrueTypeFontCatalogEntry*, const nsFont&, |
62 |
nsFontMetricsPS*); |
73 |
nsFontMetricsPS*); |
63 |
|
74 |
|
64 |
static NS_DEFINE_CID(kFCSCID, NS_FONTCATALOGSERVICE_CID); |
75 |
static NS_DEFINE_CID(kFCSCID, NS_FONTCATALOGSERVICE_CID); |
65 |
#endif |
76 |
#endif |
|
|
77 |
#endif |
66 |
|
78 |
|
67 |
#ifdef PR_LOGGING |
79 |
#ifdef PR_LOGGING |
68 |
static PRLogModuleInfo *gFontMetricsPSM = PR_NewLogModule("FontMetricsPS"); |
80 |
static PRLogModuleInfo *gFontMetricsPSM = PR_NewLogModule("FontMetricsPS"); |
Lines 93-103
Link Here
|
93 |
fontps *fontPS = (fontps *)mFontsPS->ElementAt(i); |
105 |
fontps *fontPS = (fontps *)mFontsPS->ElementAt(i); |
94 |
if (!fontPS) |
106 |
if (!fontPS) |
95 |
continue; |
107 |
continue; |
96 |
NS_IF_RELEASE(fontPS->entry); |
|
|
97 |
if (fontPS->fontps) |
108 |
if (fontPS->fontps) |
98 |
delete fontPS->fontps; |
109 |
delete fontPS->fontps; |
|
|
110 |
#ifdef MOZ_ENABLE_XFT |
111 |
if (fontPS->entry) |
112 |
delete fontPS->entry; |
113 |
if (fontPS->charset) |
114 |
FcCharSetDestroy(fontPS->charset); |
115 |
#else |
116 |
#ifdef MOZ_ENABLE_FREETYPE2 |
117 |
NS_IF_RELEASE(fontPS->entry); |
99 |
if (fontPS->ccmap) |
118 |
if (fontPS->ccmap) |
100 |
FreeCCMap(fontPS->ccmap); |
119 |
FreeCCMap(fontPS->ccmap); |
|
|
120 |
#endif |
121 |
#endif |
101 |
delete fontPS; |
122 |
delete fontPS; |
102 |
} |
123 |
} |
103 |
delete mFontsPS; |
124 |
delete mFontsPS; |
Lines 127-132
Link Here
|
127 |
mLangGroup = aLangGroup; |
148 |
mLangGroup = aLangGroup; |
128 |
|
149 |
|
129 |
mFont = new nsFont(aFont); |
150 |
mFont = new nsFont(aFont); |
|
|
151 |
|
130 |
//don't addref this to avoid circular refs |
152 |
//don't addref this to avoid circular refs |
131 |
mDeviceContext = (nsDeviceContextPS *)aContext; |
153 |
mDeviceContext = (nsDeviceContextPS *)aContext; |
132 |
|
154 |
|
Lines 162-168
Link Here
|
162 |
float dev2app; |
184 |
float dev2app; |
163 |
dev2app = mDeviceContext->DevUnitsToAppUnits(); |
185 |
dev2app = mDeviceContext->DevUnitsToAppUnits(); |
164 |
fontps *font = (fontps*)mFontsPS->ElementAt(0); |
186 |
fontps *font = (fontps*)mFontsPS->ElementAt(0); |
165 |
#ifdef MOZ_ENABLE_FREETYPE2 |
187 |
#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) |
166 |
NS_ASSERTION(font && font->entry, "no font available"); |
188 |
NS_ASSERTION(font && font->entry, "no font available"); |
167 |
if (font && !font->fontps && font->entry) |
189 |
if (font && !font->fontps && font->entry) |
168 |
font->fontps = CreateFontPS(font->entry, *mFont, this); |
190 |
font->fontps = CreateFontPS(font->entry, *mFont, this); |
Lines 468-478
Link Here
|
468 |
{ |
490 |
{ |
469 |
nsFontPS* fontPS; |
491 |
nsFontPS* fontPS; |
470 |
|
492 |
|
471 |
#ifdef MOZ_ENABLE_FREETYPE2 |
493 |
#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) |
472 |
nsDeviceContextPS* dc = aFontMetrics->GetDeviceContext(); |
494 |
nsDeviceContextPS* dc = aFontMetrics->GetDeviceContext(); |
473 |
NS_ENSURE_TRUE(dc, nsnull); |
495 |
NS_ENSURE_TRUE(dc, nsnull); |
474 |
if (dc->mFTPEnable) { |
496 |
if (dc->mFTPEnable) { |
|
|
497 |
#ifdef MOZ_ENABLE_XFT |
498 |
fontPS = nsFontPSXft::FindFont(aChar, aFont, aFontMetrics); |
499 |
#else |
475 |
fontPS = nsFontPSFreeType::FindFont(aChar, aFont, aFontMetrics); |
500 |
fontPS = nsFontPSFreeType::FindFont(aChar, aFont, aFontMetrics); |
|
|
501 |
#endif |
476 |
if (fontPS) |
502 |
if (fontPS) |
477 |
return fontPS; |
503 |
return fontPS; |
478 |
} |
504 |
} |
Lines 488-496
Link Here
|
488 |
fontPS = nsFontPSAFM::FindFont(aFont, aFontMetrics); |
514 |
fontPS = nsFontPSAFM::FindFont(aFont, aFontMetrics); |
489 |
fontps *fps = new fontps; |
515 |
fontps *fps = new fontps; |
490 |
NS_ENSURE_TRUE(fps, nsnull); |
516 |
NS_ENSURE_TRUE(fps, nsnull); |
491 |
fps->entry = nsnull; |
|
|
492 |
fps->fontps = fontPS; |
517 |
fps->fontps = fontPS; |
|
|
518 |
#if defined(MOZ_ENABLE_XFT) || defined(MOZ_ENABLE_FREETYPE2) |
519 |
fps->entry = nsnull; |
520 |
#ifdef MOZ_ENABLE_XFT |
521 |
fps->charset = nsnull; |
522 |
#else |
493 |
fps->ccmap = nsnull; |
523 |
fps->ccmap = nsnull; |
|
|
524 |
#endif |
525 |
#endif |
494 |
aFontMetrics->GetFontsPS()->AppendElement(fps); |
526 |
aFontMetrics->GetFontsPS()->AppendElement(fps); |
495 |
} |
527 |
} |
496 |
return fontPS; |
528 |
return fontPS; |
Lines 548-554
Link Here
|
548 |
nsFontPS(aFont, aFontMetrics), mAFMInfo(aAFMInfo), mFontIndex(fontIndex) |
580 |
nsFontPS(aFont, aFontMetrics), mAFMInfo(aAFMInfo), mFontIndex(fontIndex) |
549 |
{ |
581 |
{ |
550 |
if (!(mFont && mAFMInfo)) return; |
582 |
if (!(mFont && mAFMInfo)) return; |
551 |
mFamilyName.AssignWithConversion((char*)mAFMInfo->mPSFontInfo->mFamilyName); |
583 |
AppendASCIItoUTF16(mAFMInfo->mPSFontInfo->mFamilyName, mFamilyName); |
552 |
} |
584 |
} |
553 |
|
585 |
|
554 |
nsFontPSAFM::~nsFontPSAFM() |
586 |
nsFontPSAFM::~nsFontPSAFM() |
Lines 562-701
Link Here
|
562 |
nscoord |
594 |
nscoord |
563 |
nsFontPSAFM::GetWidth(const char* aString, PRUint32 aLength) |
595 |
nsFontPSAFM::GetWidth(const char* aString, PRUint32 aLength) |
564 |
{ |
596 |
{ |
565 |
nscoord width = 0; |
597 |
nscoord width = 0; |
566 |
if (mAFMInfo) { |
598 |
if (mAFMInfo) { |
567 |
mAFMInfo->GetStringWidth(aString, width, aLength); |
599 |
mAFMInfo->GetStringWidth(aString, width, aLength); |
568 |
} |
600 |
} |
569 |
return width; |
601 |
return width; |
|
|
602 |
} |
603 |
|
604 |
nscoord |
605 |
nsFontPSAFM::GetWidth(const PRUnichar* aString, PRUint32 aLength) |
606 |
{ |
607 |
nscoord width = 0; |
608 |
if (mAFMInfo) { |
609 |
mAFMInfo->GetStringWidth(aString, width, aLength); |
610 |
} |
611 |
return width; |
612 |
} |
613 |
|
614 |
nscoord |
615 |
nsFontPSAFM::DrawString(nsRenderingContextPS* aContext, |
616 |
nscoord aX, nscoord aY, |
617 |
const char* aString, PRUint32 aLength) |
618 |
{ |
619 |
NS_ENSURE_TRUE(aContext, 0); |
620 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
621 |
NS_ENSURE_TRUE(psObj, 0); |
622 |
|
623 |
psObj->moveto(aX, aY); |
624 |
psObj->show(aString, aLength, ""); |
625 |
return GetWidth(aString, aLength); |
626 |
} |
627 |
|
628 |
nscoord |
629 |
nsFontPSAFM::DrawString(nsRenderingContextPS* aContext, |
630 |
nscoord aX, nscoord aY, |
631 |
const PRUnichar* aString, PRUint32 aLength) |
632 |
{ |
633 |
NS_ENSURE_TRUE(aContext, 0); |
634 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
635 |
NS_ENSURE_TRUE(psObj, 0); |
636 |
|
637 |
psObj->moveto(aX, aY); |
638 |
psObj->show(aString, aLength, "", 0); |
639 |
return GetWidth(aString, aLength); |
640 |
} |
641 |
|
642 |
nsresult |
643 |
nsFontPSAFM::RealizeFont(nsFontMetricsPS* aFontMetrics, float dev2app) |
644 |
{ |
645 |
NS_ENSURE_ARG_POINTER(aFontMetrics); |
646 |
|
647 |
float fontSize; |
648 |
float offset; |
649 |
|
650 |
nscoord onePixel = NSToCoordRound(1 * dev2app); |
651 |
|
652 |
// convert the font size which is in twips to points |
653 |
fontSize = mFont->size / TWIPS_PER_POINT_FLOAT; |
654 |
|
655 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mXHeight) / 1000.0f; |
656 |
nscoord xHeight = NSToCoordRound(offset); |
657 |
aFontMetrics->SetXHeight(xHeight); |
658 |
aFontMetrics->SetSuperscriptOffset(xHeight); |
659 |
aFontMetrics->SetSubscriptOffset(xHeight); |
660 |
aFontMetrics->SetStrikeout((nscoord)(xHeight / 2), onePixel); |
661 |
|
662 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mUnderlinePosition) / 1000.0f; |
663 |
aFontMetrics->SetUnderline(NSToCoordRound(offset), onePixel); |
664 |
|
665 |
nscoord size = NSToCoordRound(fontSize * dev2app); |
666 |
aFontMetrics->SetHeight(size); |
667 |
aFontMetrics->SetEmHeight(size); |
668 |
aFontMetrics->SetMaxAdvance(size); |
669 |
aFontMetrics->SetMaxHeight(size); |
670 |
|
671 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mAscender) / 1000.0f; |
672 |
nscoord ascent = NSToCoordRound(offset); |
673 |
aFontMetrics->SetAscent(ascent); |
674 |
aFontMetrics->SetEmAscent(ascent); |
675 |
aFontMetrics->SetMaxAscent(ascent); |
676 |
|
677 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mDescender) / 1000.0f; |
678 |
nscoord descent = -(NSToCoordRound(offset)); |
679 |
aFontMetrics->SetDescent(descent); |
680 |
aFontMetrics->SetEmDescent(descent); |
681 |
aFontMetrics->SetMaxDescent(descent); |
682 |
|
683 |
aFontMetrics->SetLeading(0); |
684 |
|
685 |
nscoord spaceWidth = GetWidth(" ", 1); |
686 |
aFontMetrics->SetSpaceWidth(spaceWidth); |
687 |
|
688 |
nscoord aveCharWidth = GetWidth("x", 1); |
689 |
aFontMetrics->SetAveCharWidth(aveCharWidth); |
690 |
|
691 |
return NS_OK; |
692 |
} |
693 |
|
694 |
nsresult |
695 |
nsFontPSAFM::SetupFont(nsRenderingContextPS* aContext) |
696 |
{ |
697 |
NS_ENSURE_TRUE(aContext && mFontMetrics, 0); |
698 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
699 |
NS_ENSURE_TRUE(psObj, 0); |
700 |
|
701 |
nscoord fontHeight = 0; |
702 |
mFontMetrics->GetHeight(fontHeight); |
703 |
|
704 |
psObj->setscriptfont(mFontIndex, mFamilyName, |
705 |
fontHeight, mFont->style, mFont->variant, |
706 |
mFont->weight, mFont->decorations); |
707 |
return NS_OK; |
708 |
} |
709 |
|
710 |
#ifdef MOZ_MATHML |
711 |
nsresult |
712 |
nsFontPSAFM::GetBoundingMetrics(const char* aString, |
713 |
PRUint32 aLength, |
714 |
nsBoundingMetrics& aBoundingMetrics) |
715 |
{ |
716 |
return NS_ERROR_NOT_IMPLEMENTED; |
717 |
} |
718 |
|
719 |
nsresult |
720 |
nsFontPSAFM::GetBoundingMetrics(const PRUnichar* aString, |
721 |
PRUint32 aLength, |
722 |
nsBoundingMetrics& aBoundingMetrics) |
723 |
{ |
724 |
return NS_ERROR_NOT_IMPLEMENTED; |
725 |
} |
726 |
#endif |
727 |
|
728 |
#if defined(MOZ_ENABLE_FREETYPE2) || defined(MOZ_ENABLE_XFT) |
729 |
|
730 |
#define WIDEN_8_TO_16_BUF_SIZE 1024 |
731 |
|
732 |
#ifdef MOZ_ENABLE_XFT |
733 |
|
734 |
nsXftEntry::nsXftEntry(FcPattern *aFontPattern) |
735 |
{ |
736 |
mFace = nsnull; |
737 |
mFaceIndex = 0; |
738 |
|
739 |
char *fcResult; |
740 |
|
741 |
if (FcPatternGetString(aFontPattern, FC_FILE, 0, (FcChar8 **) &fcResult) |
742 |
== FcResultMatch) |
743 |
mFontFileName = fcResult; |
744 |
|
745 |
if (FcPatternGetString(aFontPattern, FC_FAMILY, 0, (FcChar8 **) &fcResult) |
746 |
== FcResultMatch) |
747 |
mFamilyName = fcResult; |
748 |
|
749 |
if (FcPatternGetString(aFontPattern, FC_STYLE, 0, (FcChar8 **) &fcResult) |
750 |
== FcResultMatch) |
751 |
mStyleName = fcResult; |
752 |
} |
753 |
|
754 |
|
755 |
static nsFontPS* |
756 |
CreateFontPS(nsXftEntry *aEntry, const nsFont& aFont, |
757 |
nsFontMetricsPS* aFontMetrics) |
758 |
{ |
759 |
nsresult rv; |
760 |
nsDeviceContextPS* dc = aFontMetrics->GetDeviceContext(); |
761 |
NS_ENSURE_TRUE(dc, nsnull); |
762 |
|
763 |
nsCAutoString fileName(aEntry->mFontFileName); |
764 |
nsCAutoString familyName(aEntry->mFamilyName); |
765 |
nsCAutoString styleName(aEntry->mStyleName); |
766 |
ToLowerCase(familyName); |
767 |
ToLowerCase(styleName); |
768 |
|
769 |
nsCAutoString fontName; |
770 |
fontName.Append(familyName); |
771 |
fontName.Append("-"); |
772 |
fontName.Append(styleName); |
773 |
nsCStringKey key(fontName); |
774 |
|
775 |
nsHashtable *psFGList = dc->GetPSFontGeneratorList(); |
776 |
NS_ENSURE_TRUE(psFGList, nsnull); |
777 |
|
778 |
nsPSFontGenerator* psFontGen = (nsPSFontGenerator*) psFGList->Get(&key); |
779 |
if (!psFontGen) { |
780 |
psFontGen = new nsXftType8Generator; |
781 |
NS_ENSURE_TRUE(psFontGen, nsnull); |
782 |
rv = ((nsXftType8Generator*)psFontGen)->Init(aEntry); |
783 |
if (NS_FAILED(rv)) { |
784 |
delete psFontGen; |
785 |
return nsnull; |
786 |
} |
787 |
psFGList->Put(&key, (void *) psFontGen); |
788 |
} |
789 |
nsFontPSXft* font = new nsFontPSXft(aFont, aFontMetrics); |
790 |
NS_ENSURE_TRUE(font, nsnull); |
791 |
rv = font->Init(aEntry, psFontGen); |
792 |
if (NS_FAILED(rv)) { |
793 |
delete font; |
794 |
return nsnull; |
795 |
} |
796 |
return font; |
797 |
} |
798 |
|
799 |
/* static */ |
800 |
PRBool |
801 |
nsFontPSXft::CSSFontEnumCallback(const nsString& aFamily, PRBool aIsGeneric, |
802 |
void* aFpi) |
803 |
{ |
804 |
fontPSInfo *fpi = (fontPSInfo *)aFpi; |
805 |
|
806 |
// make sure it's an ascii name, if not then return and continue |
807 |
// enumerating |
808 |
if (!NS_IsASCIIFontName(aFamily)) |
809 |
return PR_TRUE; |
810 |
|
811 |
NS_LossyConvertUTF16toASCII name(aFamily); |
812 |
ToLowerCase(name); |
813 |
fpi->mFontList.AppendCString(name); |
814 |
fpi->mFontIsGeneric.AppendElement((void *)aIsGeneric); |
815 |
if (aIsGeneric) { |
816 |
fpi->mGenericFont = |
817 |
fpi->mFontList.CStringAt(fpi->mFontList.Count() - 1); |
818 |
return PR_FALSE; // stop processing |
819 |
} |
820 |
|
821 |
return PR_TRUE; // keep processing |
822 |
} |
823 |
|
824 |
nsFontPS* |
825 |
nsFontPSXft::FindFont(PRUnichar aChar, const nsFont& aFont, |
826 |
nsFontMetricsPS* aFontMetrics) |
827 |
{ |
828 |
PRBool inited = PR_FALSE; |
829 |
nsCOMPtr<nsIAtom> langGroup; |
830 |
fontPSInfo fpi; |
831 |
fpi.fontps = aFontMetrics->GetFontsPS(); |
832 |
int i = 0; |
833 |
|
834 |
while (1) { |
835 |
// |
836 |
// see if it is already in the list of fonts |
837 |
// |
838 |
for (; i<fpi.fontps->Count(); i++) { |
839 |
fontps *fi = (fontps *)fpi.fontps->ElementAt(i); |
840 |
if (!fi->entry || !fi->charset) { |
841 |
NS_ASSERTION(fi->entry, "invalid entry"); |
842 |
NS_ASSERTION(fi->charset, "invalid charset"); |
843 |
continue; |
844 |
} |
845 |
if (FcCharSetHasChar(fi->charset, aChar)) { |
846 |
if (!fi->fontps) { |
847 |
#ifdef PR_LOGGING |
848 |
if (PR_LOG_TEST(gFontMetricsPSM, PR_LOG_DEBUG)) { |
849 |
PR_LogPrint("CreateFontPS %s/%s\n", |
850 |
fi->entry->mFamilyName.get(), fi->entry->mStyleName.get()); |
851 |
} |
852 |
#endif |
853 |
fi->fontps = CreateFontPS(fi->entry, aFont, aFontMetrics); |
854 |
} |
855 |
if (fi->fontps) |
856 |
return fi->fontps; |
857 |
} |
858 |
} |
859 |
|
860 |
// if already get all matched fonts and not found suitable |
861 |
// then return nsnull |
862 |
if (fpi.fontps->Count() > 0) |
863 |
return nsnull; |
864 |
|
865 |
// |
866 |
// it is not already in the list of fonts |
867 |
// so add more fonts to the list |
868 |
// |
869 |
if (inited) |
870 |
return nsnull; |
871 |
|
872 |
inited = PR_TRUE; |
873 |
|
874 |
fpi.nsfont = &aFont; |
875 |
fpi.alreadyLoaded = aFontMetrics->GetFontsAlreadyLoadedList(); |
876 |
fpi.mGenericFont = nsnull; |
877 |
|
878 |
aFontMetrics->GetLangGroup(getter_AddRefs(langGroup)); |
879 |
if (!langGroup) |
880 |
langGroup = NS_NewAtom("x-western"); |
881 |
|
882 |
// enumerate over the font names passed in |
883 |
aFont.EnumerateFamilies(nsFontPSXft::CSSFontEnumCallback, &fpi); |
884 |
|
885 |
nsCOMPtr<nsIPref> prefService; |
886 |
prefService = do_GetService(NS_PREF_CONTRACTID); |
887 |
if (!prefService) |
888 |
return nsnull; |
889 |
|
890 |
nsXPIDLCString value; |
891 |
nsCAutoString aDefaultFont; |
892 |
|
893 |
// Set up the default font name if it's not set |
894 |
if (!fpi.mGenericFont) { |
895 |
prefService->CopyCharPref("font.default", getter_Copies(value)); |
896 |
|
897 |
if (value.get()) |
898 |
aDefaultFont = value.get(); |
899 |
else |
900 |
aDefaultFont = "serif"; |
901 |
|
902 |
fpi.mGenericFont = &aDefaultFont; |
903 |
} |
904 |
|
905 |
// If pattern is null, set up the base bits of it so we can |
906 |
// match. If we need to match later we don't have to set it up |
907 |
// again. |
908 |
FcPattern *pattern = nsnull; |
909 |
|
910 |
pattern = FcPatternCreate(); |
911 |
if (!pattern) |
912 |
return nsnull; |
913 |
|
914 |
// XXX need to add user defined family |
915 |
|
916 |
// Add CSS names - walk the list of fonts, adding the generic as |
917 |
// the last font |
918 |
for (int i=0; i < fpi.mFontList.Count(); ++i) { |
919 |
// if this was a generic name, break out of the loop since we |
920 |
// don't want to add it to the pattern yet |
921 |
if (fpi.mFontIsGeneric[i]) |
922 |
break;; |
923 |
|
924 |
nsCString *familyName = fpi.mFontList.CStringAt(i); |
925 |
NS_AddFFRE(pattern, familyName, PR_FALSE); |
926 |
} |
927 |
|
928 |
// Add the language group. Note that we do this before adding any |
929 |
// generics. That's because the language is more important than |
930 |
// any generic font. |
931 |
NS_AddLangGroup(pattern, langGroup); |
932 |
|
933 |
// If there's a generic add a pref for the generic if there's one |
934 |
// set. |
935 |
if (fpi.mGenericFont && !aFont.systemFont) { |
936 |
nsCAutoString name("font.name."); |
937 |
name += fpi.mGenericFont->get(); |
938 |
name += "."; |
939 |
|
940 |
nsAutoString langGroupStr; |
941 |
langGroup->ToString(langGroupStr); |
942 |
|
943 |
LossyAppendUTF16toASCII(langGroupStr, name); |
944 |
|
945 |
nsCOMPtr<nsIPref> pref; |
946 |
pref = do_GetService(NS_PREF_CONTRACTID); |
947 |
if (pref) { |
948 |
nsresult rv; |
949 |
nsXPIDLCString value; |
950 |
rv = pref->GetCharPref(name.get(), getter_Copies(value)); |
951 |
|
952 |
// we ignore prefs that have three hypens since they are X |
953 |
// style prefs. |
954 |
if (NS_FFRECountHyphens(value) < 3) { |
955 |
nsCAutoString tmpstr(value); |
956 |
|
957 |
if (PR_LOG_TEST(gFontMetricsPSM, PR_LOG_DEBUG)) { |
958 |
printf("\tadding generic font from preferences: %s\n", |
959 |
tmpstr.get()); |
960 |
} |
961 |
|
962 |
NS_AddFFRE(pattern, &tmpstr, PR_FALSE); |
963 |
} |
964 |
} |
965 |
} |
966 |
|
967 |
// Add the generic if there is one. |
968 |
if (fpi.mGenericFont && !aFont.systemFont) |
969 |
NS_AddFFRE(pattern, fpi.mGenericFont, PR_FALSE); |
970 |
|
971 |
// Add the slant type |
972 |
FcPatternAddInteger(pattern, FC_SLANT, NS_CalculateSlant(aFont.style)); |
973 |
|
974 |
// Add the weight |
975 |
FcPatternAddInteger(pattern, FC_WEIGHT, NS_CalculateWeight(aFont.weight)); |
976 |
|
977 |
// Set up the default substitutions for this font |
978 |
FcConfigSubstitute(0, pattern, FcMatchPattern); |
979 |
FcDefaultSubstitute(pattern); |
980 |
|
981 |
FcResult result; |
982 |
FcFontSet *set = FcFontSort(0, pattern, FcTrue, 0, &result); |
983 |
if (!set) { |
984 |
return nsnull; |
985 |
} |
986 |
|
987 |
// Create a list of new font objects based on the fonts returned |
988 |
// as part of the query |
989 |
for (int i=0; i < set->nfont; ++i) { |
990 |
FcBool fc_outline; |
991 |
FcChar8 *fc_family; |
992 |
FcChar8 *fc_style; |
993 |
FcCharSet *fc_charset; |
994 |
|
995 |
// skip if the fonts is not outline font files. |
996 |
result = FcPatternGetBool (set->fonts[i], FC_OUTLINE, 0, &fc_outline); |
997 |
if (!fc_outline) |
998 |
continue; |
999 |
|
1000 |
result = FcPatternGetString (set->fonts[i], FC_FAMILY, 0, &fc_family); |
1001 |
if (result != FcResultMatch || fc_family == nsnull) |
1002 |
continue; |
1003 |
|
1004 |
result = FcPatternGetString (set->fonts[i], FC_STYLE, 0, &fc_style); |
1005 |
if (result != FcResultMatch || fc_style == nsnull) |
1006 |
continue; |
1007 |
|
1008 |
result = FcPatternGetCharSet(set->fonts[i], FC_CHARSET, 0, &fc_charset); |
1009 |
if (result != FcResultMatch || fc_charset == nsnull) |
1010 |
continue; |
1011 |
|
1012 |
nsXftEntry *xftEntry = new nsXftEntry(set->fonts[i]); |
1013 |
if (!xftEntry) |
1014 |
continue; |
1015 |
|
1016 |
fontps *fps = new fontps; |
1017 |
fps->entry = xftEntry; |
1018 |
fps->charset = fc_charset; |
1019 |
fps->fontps = nsnull; |
1020 |
fpi.fontps->AppendElement(fps); |
1021 |
} |
1022 |
|
1023 |
// we're done with the set now |
1024 |
FcFontSetDestroy(set); |
1025 |
|
1026 |
FcPatternDestroy(pattern); |
1027 |
} |
1028 |
|
1029 |
return nsnull; |
1030 |
} |
1031 |
|
1032 |
/*FT_CALLBACK_DEF*/ |
1033 |
FT_Error |
1034 |
nsXftFaceRequester(FTC_FaceID face_id, FT_Library lib, |
1035 |
FT_Pointer request_data, FT_Face* aFace) |
1036 |
{ |
1037 |
nsXftEntry *faceID = (nsXftEntry *)face_id; |
1038 |
|
1039 |
FT_Error fterror = FT_New_Face(lib, faceID->mFontFileName.get(), |
1040 |
faceID->mFaceIndex, aFace); |
1041 |
if (fterror) |
1042 |
*aFace = nsnull; |
1043 |
return 0; |
1044 |
} |
1045 |
|
1046 |
nsFontPSXft::nsFontPSXft(const nsFont& aFont, |
1047 |
nsFontMetricsPS* aFontMetrics) |
1048 |
:nsFontPS(aFont, aFontMetrics) |
1049 |
{ |
1050 |
} |
1051 |
|
1052 |
nsresult |
1053 |
nsFontPSXft::Init(nsXftEntry* aEntry, |
1054 |
nsPSFontGenerator* aPSFontGen) |
1055 |
{ |
1056 |
NS_ENSURE_TRUE(aEntry && aPSFontGen, NS_ERROR_FAILURE); |
1057 |
mEntry = aEntry; |
1058 |
mPSFontGenerator = aPSFontGen; |
1059 |
|
1060 |
float app2dev; |
1061 |
nsIDeviceContext* dc = mFontMetrics->GetDeviceContext(); |
1062 |
NS_ENSURE_TRUE(dc, NS_ERROR_NULL_POINTER); |
1063 |
app2dev = dc->AppUnitsToDevUnits(); |
1064 |
|
1065 |
mPixelSize = NSToIntRound(app2dev * mFont->size); |
1066 |
|
1067 |
mImageDesc.font.face_id = (void*)mEntry; |
1068 |
mImageDesc.font.pix_width = mPixelSize; |
1069 |
mImageDesc.font.pix_height = mPixelSize; |
1070 |
mImageDesc.image_type = 0; |
1071 |
|
1072 |
FT_Error fterror; |
1073 |
fterror = FT_Init_FreeType(&mFreeTypeLibrary); |
1074 |
if (fterror) { |
1075 |
NS_ASSERTION(!fterror, "failed to initialize FreeType library"); |
1076 |
mFreeTypeLibrary = nsnull; |
1077 |
return NS_ERROR_FAILURE; |
1078 |
} |
1079 |
fterror = FTC_Manager_New(mFreeTypeLibrary, 0, 0, 0, nsXftFaceRequester, |
1080 |
NULL, &mFTCacheManager); |
1081 |
NS_ASSERTION(!fterror, "failed to create FreeType Cache manager"); |
1082 |
if (fterror) |
1083 |
return NS_ERROR_FAILURE; |
1084 |
|
1085 |
fterror = FTC_Image_Cache_New(mFTCacheManager, &mImageCache); |
1086 |
NS_ASSERTION(!fterror, "failed to create FreeType image cache"); |
1087 |
if (fterror) |
1088 |
return NS_ERROR_FAILURE; |
1089 |
|
1090 |
return NS_OK; |
1091 |
} |
1092 |
|
1093 |
nsFontPSXft::~nsFontPSXft() |
1094 |
{ |
1095 |
FTC_Manager_Done(mFTCacheManager); |
1096 |
|
1097 |
if (FT_Done_FreeType(mFreeTypeLibrary)) |
1098 |
return; |
1099 |
|
1100 |
mEntry = nsnull; |
1101 |
} |
1102 |
|
1103 |
FT_Face |
1104 |
nsFontPSXft::getFTFace() |
1105 |
{ |
1106 |
FT_Error error; |
1107 |
FT_Face face = mEntry->mFace; |
1108 |
|
1109 |
if (face) |
1110 |
return (face); |
1111 |
|
1112 |
error = FTC_Manager_Lookup_Size(mFTCacheManager, &mImageDesc.font, |
1113 |
&face, nsnull); |
1114 |
NS_ASSERTION(error == 0, "failed to get face/size"); |
1115 |
if (error) |
1116 |
return nsnull; |
1117 |
|
1118 |
mEntry->mFace = face; |
1119 |
return face; |
1120 |
} |
1121 |
|
1122 |
nscoord |
1123 |
nsFontPSXft::GetWidth(const char* aString, PRUint32 aLength) |
1124 |
{ |
1125 |
PRUnichar unichars[WIDEN_8_TO_16_BUF_SIZE]; |
1126 |
PRUint32 len, width = 0; |
1127 |
while ( aLength > 0 ) { |
1128 |
len = PR_MIN(aLength, WIDEN_8_TO_16_BUF_SIZE); |
1129 |
for (PRUint32 i=0; i < len; i++) { |
1130 |
unichars[i] = PRUnichar(PRUint8(aString[i])); |
1131 |
} |
1132 |
width += GetWidth(unichars, len); |
1133 |
aString += len; |
1134 |
aLength -= len; |
1135 |
} |
1136 |
return width; |
1137 |
} |
1138 |
|
1139 |
|
1140 |
nscoord |
1141 |
nsFontPSXft::GetWidth(const PRUnichar* aString, PRUint32 aLength) |
1142 |
{ |
1143 |
FT_UInt glyph_index; |
1144 |
FT_Glyph glyph; |
1145 |
double origin_x = 0; |
1146 |
|
1147 |
// get the face/size from the FreeType cache |
1148 |
FT_Face face = getFTFace(); |
1149 |
NS_ASSERTION(face, "failed to get face/size"); |
1150 |
if (!face) |
1151 |
return 0; |
1152 |
|
1153 |
for (PRUint32 i=0; i<aLength; i++) { |
1154 |
glyph_index = FT_Get_Char_Index((FT_Face)face, aString[i]); |
1155 |
FT_Error error = FTC_Image_Cache_Lookup(mImageCache, &mImageDesc, |
1156 |
glyph_index, &glyph); |
1157 |
if (error) { |
1158 |
origin_x += FT_REG_TO_16_16(face->size->metrics.x_ppem/2 + 2); |
1159 |
continue; |
1160 |
} |
1161 |
origin_x += glyph->advance.x; |
1162 |
} |
1163 |
|
1164 |
NS_ENSURE_TRUE(mFontMetrics, 0); |
1165 |
|
1166 |
nsDeviceContextPS* dc = mFontMetrics->GetDeviceContext(); |
1167 |
NS_ENSURE_TRUE(dc, 0); |
1168 |
|
1169 |
float dev2app; |
1170 |
dev2app = dc->DevUnitsToAppUnits(); |
1171 |
origin_x *= dev2app; |
1172 |
origin_x /= FT_REG_TO_16_16(1); |
1173 |
|
1174 |
return NSToCoordRound((nscoord)origin_x); |
1175 |
} |
1176 |
|
1177 |
nscoord |
1178 |
nsFontPSXft::DrawString(nsRenderingContextPS* aContext, |
1179 |
nscoord aX, nscoord aY, |
1180 |
const char* aString, PRUint32 aLength) |
1181 |
{ |
1182 |
NS_ENSURE_TRUE(aContext, 0); |
1183 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
1184 |
NS_ENSURE_TRUE(psObj, 0); |
1185 |
nscoord width = 0; |
1186 |
|
1187 |
psObj->moveto(aX, aY); |
1188 |
|
1189 |
PRUnichar unichars[WIDEN_8_TO_16_BUF_SIZE]; |
1190 |
PRUint32 len; |
1191 |
|
1192 |
while ( aLength > 0 ) { |
1193 |
len = PR_MIN(aLength, WIDEN_8_TO_16_BUF_SIZE); |
1194 |
for (PRUint32 i=0; i < len; i++) { |
1195 |
unichars[i] = PRUnichar(PRUint8(aString[i])); |
1196 |
} |
1197 |
psObj->show(unichars, len, "", 1); |
1198 |
mPSFontGenerator->AddToSubset(unichars, len); |
1199 |
width += GetWidth(unichars, len); |
1200 |
aString += len; |
1201 |
aLength -= len; |
1202 |
} |
1203 |
return width; |
1204 |
} |
1205 |
|
1206 |
nscoord |
1207 |
nsFontPSXft::DrawString(nsRenderingContextPS* aContext, |
1208 |
nscoord aX, nscoord aY, |
1209 |
const PRUnichar* aString, PRUint32 aLength) |
1210 |
{ |
1211 |
NS_ENSURE_TRUE(aContext, 0); |
1212 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
1213 |
NS_ENSURE_TRUE(psObj, 0); |
1214 |
|
1215 |
psObj->moveto(aX, aY); |
1216 |
psObj->show(aString, aLength, "", 1); |
1217 |
|
1218 |
mPSFontGenerator->AddToSubset(aString, aLength); |
1219 |
return GetWidth(aString, aLength); |
1220 |
} |
1221 |
|
1222 |
int |
1223 |
nsFontPSXft::ascent() |
1224 |
{ |
1225 |
FT_Face face = getFTFace(); |
1226 |
NS_ASSERTION(face, "failed to get face/size"); |
1227 |
NS_ENSURE_TRUE(face, 0); |
1228 |
return FT_DESIGN_UNITS_TO_PIXELS(face->ascender, face->size->metrics.y_scale); |
1229 |
} |
1230 |
|
1231 |
int |
1232 |
nsFontPSXft::descent() |
1233 |
{ |
1234 |
FT_Face face = getFTFace(); |
1235 |
NS_ASSERTION(face, "failed to get face/size"); |
1236 |
NS_ENSURE_TRUE(face, 0); |
1237 |
return FT_DESIGN_UNITS_TO_PIXELS(-face->descender, face->size->metrics.y_scale); |
1238 |
} |
1239 |
|
1240 |
int |
1241 |
nsFontPSXft::max_ascent() |
1242 |
{ |
1243 |
FT_Face face = getFTFace(); |
1244 |
NS_ASSERTION(face, "failed to get face/size"); |
1245 |
NS_ENSURE_TRUE(face, 0); |
1246 |
TT_OS2 *tt_os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); |
1247 |
NS_ASSERTION(tt_os2, "unable to get OS2 table"); |
1248 |
if (tt_os2) |
1249 |
return FT_DESIGN_UNITS_TO_PIXELS(tt_os2->sTypoAscender, |
1250 |
face->size->metrics.y_scale); |
1251 |
else |
1252 |
return FT_DESIGN_UNITS_TO_PIXELS(face->bbox.yMax, |
1253 |
face->size->metrics.y_scale); |
1254 |
} |
1255 |
|
1256 |
int |
1257 |
nsFontPSXft::max_descent() |
1258 |
{ |
1259 |
FT_Face face = getFTFace(); |
1260 |
NS_ASSERTION(face, "failed to get face/size"); |
1261 |
NS_ENSURE_TRUE(face, 0); |
1262 |
TT_OS2 *tt_os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); |
1263 |
NS_ASSERTION(tt_os2, "unable to get OS2 table"); |
1264 |
if (tt_os2) |
1265 |
return FT_DESIGN_UNITS_TO_PIXELS(-tt_os2->sTypoDescender, |
1266 |
face->size->metrics.y_scale); |
1267 |
else |
1268 |
return FT_DESIGN_UNITS_TO_PIXELS(-face->bbox.yMin, |
1269 |
face->size->metrics.y_scale); |
1270 |
} |
1271 |
|
1272 |
int |
1273 |
nsFontPSXft::max_width() |
1274 |
{ |
1275 |
FT_Face face = getFTFace(); |
1276 |
NS_ASSERTION(face, "failed to get face/size"); |
1277 |
NS_ENSURE_TRUE(face, 0); |
1278 |
return FT_DESIGN_UNITS_TO_PIXELS(face->max_advance_width, |
1279 |
face->size->metrics.x_scale); |
1280 |
} |
1281 |
|
1282 |
PRBool |
1283 |
nsFontPSXft::getXHeight(unsigned long &aVal) |
1284 |
{ |
1285 |
FT_Face face = getFTFace(); |
1286 |
NS_ASSERTION(face, "failed to get face/size"); |
1287 |
if (!face || !aVal) |
1288 |
return PR_FALSE; |
1289 |
aVal = FT_DESIGN_UNITS_TO_PIXELS(face->height, face->size->metrics.y_scale); |
1290 |
|
1291 |
return PR_TRUE; |
1292 |
} |
1293 |
|
1294 |
PRBool |
1295 |
nsFontPSXft::underlinePosition(long &aVal) |
1296 |
{ |
1297 |
FT_Face face = getFTFace(); |
1298 |
NS_ASSERTION(face, "failed to get face/size"); |
1299 |
if (!face) |
1300 |
return PR_FALSE; |
1301 |
aVal = FT_DESIGN_UNITS_TO_PIXELS(-face->underline_position, |
1302 |
face->size->metrics.y_scale); |
1303 |
return PR_TRUE; |
570 |
} |
1304 |
} |
571 |
|
1305 |
|
572 |
nscoord |
1306 |
PRBool |
573 |
nsFontPSAFM::GetWidth(const PRUnichar* aString, PRUint32 aLength) |
1307 |
nsFontPSXft::underline_thickness(unsigned long &aVal) |
574 |
{ |
1308 |
{ |
575 |
nscoord width = 0; |
1309 |
FT_Face face = getFTFace(); |
576 |
if (mAFMInfo) { |
1310 |
NS_ASSERTION(face, "failed to get face/size"); |
577 |
mAFMInfo->GetStringWidth(aString, width, aLength); |
1311 |
if (!face) |
578 |
} |
1312 |
return PR_FALSE; |
579 |
return width; |
1313 |
aVal = FT_DESIGN_UNITS_TO_PIXELS(face->underline_thickness, |
|
|
1314 |
face->size->metrics.x_scale); |
1315 |
return PR_TRUE; |
580 |
} |
1316 |
} |
581 |
|
1317 |
|
582 |
nscoord |
1318 |
PRBool |
583 |
nsFontPSAFM::DrawString(nsRenderingContextPS* aContext, |
1319 |
nsFontPSXft::superscript_y(long &aVal) |
584 |
nscoord aX, nscoord aY, |
|
|
585 |
const char* aString, PRUint32 aLength) |
586 |
{ |
1320 |
{ |
587 |
NS_ENSURE_TRUE(aContext, 0); |
1321 |
aVal = 0; |
588 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
1322 |
FT_Face face = getFTFace(); |
589 |
NS_ENSURE_TRUE(psObj, 0); |
1323 |
NS_ASSERTION(face, "failed to get face/size"); |
|
|
1324 |
if (!face) |
1325 |
return PR_FALSE; |
590 |
|
1326 |
|
591 |
psObj->moveto(aX, aY); |
1327 |
TT_OS2 *tt_os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); |
592 |
psObj->show(aString, aLength, ""); |
1328 |
NS_ASSERTION(tt_os2, "unable to get OS2 table"); |
593 |
return GetWidth(aString, aLength); |
1329 |
if (!tt_os2) |
|
|
1330 |
return PR_FALSE; |
1331 |
|
1332 |
aVal = FT_DESIGN_UNITS_TO_PIXELS(tt_os2->ySuperscriptYOffset, |
1333 |
face->size->metrics.y_scale); |
1334 |
return PR_TRUE; |
594 |
} |
1335 |
} |
595 |
|
1336 |
|
596 |
nscoord |
1337 |
PRBool |
597 |
nsFontPSAFM::DrawString(nsRenderingContextPS* aContext, |
1338 |
nsFontPSXft::subscript_y(long &aVal) |
598 |
nscoord aX, nscoord aY, |
|
|
599 |
const PRUnichar* aString, PRUint32 aLength) |
600 |
{ |
1339 |
{ |
601 |
NS_ENSURE_TRUE(aContext, 0); |
1340 |
aVal = 0; |
602 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
1341 |
FT_Face face = getFTFace(); |
603 |
NS_ENSURE_TRUE(psObj, 0); |
1342 |
NS_ASSERTION(face, "failed to get face/size"); |
|
|
1343 |
if (!face) |
1344 |
return PR_FALSE; |
604 |
|
1345 |
|
605 |
psObj->moveto(aX, aY); |
1346 |
TT_OS2 *tt_os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2); |
606 |
psObj->show(aString, aLength, "", 0); |
1347 |
NS_ASSERTION(tt_os2, "unable to get OS2 table"); |
607 |
return GetWidth(aString, aLength); |
1348 |
if (!tt_os2) |
|
|
1349 |
return PR_FALSE; |
1350 |
|
1351 |
aVal = FT_DESIGN_UNITS_TO_PIXELS(tt_os2->ySubscriptYOffset, |
1352 |
face->size->metrics.y_scale); |
1353 |
|
1354 |
// some fonts have the sign wrong. it should be always positive. |
1355 |
aVal = (aVal < 0) ? -aVal : aVal; |
1356 |
return PR_TRUE; |
608 |
} |
1357 |
} |
609 |
|
1358 |
|
610 |
nsresult |
1359 |
nsresult |
611 |
nsFontPSAFM::RealizeFont(nsFontMetricsPS* aFontMetrics, float dev2app) |
1360 |
nsFontPSXft::RealizeFont(nsFontMetricsPS* aFontMetrics, float dev2app) |
612 |
{ |
1361 |
{ |
613 |
NS_ENSURE_ARG_POINTER(aFontMetrics); |
1362 |
|
614 |
|
1363 |
nscoord leading, emHeight, emAscent, emDescent; |
615 |
float fontSize; |
1364 |
nscoord maxHeight, maxAscent, maxDescent, maxAdvance; |
616 |
float offset; |
1365 |
nscoord xHeight, spaceWidth, aveCharWidth; |
|
|
1366 |
nscoord underlineOffset, underlineSize, superscriptOffset, subscriptOffset; |
1367 |
nscoord strikeoutOffset, strikeoutSize; |
617 |
|
1368 |
|
618 |
nscoord onePixel = NSToCoordRound(1 * dev2app); |
1369 |
int lineSpacing = ascent() + descent(); |
|
|
1370 |
if (lineSpacing > mPixelSize) { |
1371 |
leading = nscoord((lineSpacing - mPixelSize) * dev2app); |
1372 |
} |
1373 |
else { |
1374 |
leading = 0; |
1375 |
} |
1376 |
emHeight = PR_MAX(1, nscoord(mPixelSize * dev2app)); |
1377 |
emAscent = nscoord(ascent() * mPixelSize * dev2app / lineSpacing); |
1378 |
emDescent = emHeight - emAscent; |
619 |
|
1379 |
|
620 |
// convert the font size which is in twips to points |
1380 |
maxHeight = nscoord((max_ascent() + max_descent()) * dev2app); |
621 |
fontSize = mFont->size / TWIPS_PER_POINT_FLOAT; |
1381 |
maxAscent = nscoord(max_ascent() * dev2app) ; |
|
|
1382 |
maxDescent = nscoord(max_descent() * dev2app); |
1383 |
maxAdvance = nscoord(max_width() * dev2app); |
622 |
|
1384 |
|
623 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mXHeight) / 1000.0f; |
1385 |
// 56% of ascent, best guess for non-true type |
624 |
nscoord xHeight = NSToCoordRound(offset); |
1386 |
xHeight = NSToCoordRound((float)ascent()* dev2app * 0.56f); |
625 |
aFontMetrics->SetXHeight(xHeight); |
|
|
626 |
aFontMetrics->SetSuperscriptOffset(xHeight); |
627 |
aFontMetrics->SetSubscriptOffset(xHeight); |
628 |
aFontMetrics->SetStrikeout((nscoord)(xHeight / 2), onePixel); |
629 |
|
1387 |
|
630 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mUnderlinePosition) / 1000.0f; |
1388 |
PRUnichar space = (PRUnichar)' '; |
631 |
aFontMetrics->SetUnderline(NSToCoordRound(offset), onePixel); |
1389 |
spaceWidth = NSToCoordRound(GetWidth(&space, 1)); |
|
|
1390 |
PRUnichar averageX = (PRUnichar)'x'; |
1391 |
aveCharWidth = NSToCoordRound(GetWidth(&averageX, 1)); |
1392 |
|
1393 |
unsigned long pr = 0; |
1394 |
if (getXHeight(pr)) { |
1395 |
xHeight = (nscoord(pr * dev2app)); |
1396 |
} |
632 |
|
1397 |
|
633 |
nscoord size = NSToCoordRound(fontSize * dev2app); |
1398 |
float height; |
634 |
aFontMetrics->SetHeight(size); |
1399 |
long val; |
635 |
aFontMetrics->SetEmHeight(size); |
1400 |
|
636 |
aFontMetrics->SetMaxAdvance(size); |
1401 |
height = ascent() + descent(); |
637 |
aFontMetrics->SetMaxHeight(size); |
1402 |
underlineOffset = -NSToIntRound( |
|
|
1403 |
PR_MAX (1, floor (0.1 * height + 0.5)) * dev2app); |
638 |
|
1404 |
|
639 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mAscender) / 1000.0f; |
1405 |
if (underline_thickness(pr)) { |
640 |
nscoord ascent = NSToCoordRound(offset); |
1406 |
/* this will only be provided from adobe .afm fonts */ |
641 |
aFontMetrics->SetAscent(ascent); |
1407 |
underlineSize = nscoord(PR_MAX(dev2app, NSToIntRound(pr * dev2app))); |
642 |
aFontMetrics->SetEmAscent(ascent); |
1408 |
} |
643 |
aFontMetrics->SetMaxAscent(ascent); |
1409 |
else { |
|
|
1410 |
height = ascent() + descent(); |
1411 |
underlineSize = NSToIntRound( |
1412 |
PR_MAX(1, floor (0.05 * height + 0.5)) * dev2app); |
1413 |
} |
644 |
|
1414 |
|
645 |
offset = NSFloatPointsToTwips(fontSize * mAFMInfo->mPSFontInfo->mDescender) / 1000.0f; |
1415 |
if (superscript_y(val)) { |
646 |
nscoord descent = -(NSToCoordRound(offset)); |
1416 |
superscriptOffset = nscoord(PR_MAX(dev2app, NSToIntRound(val * dev2app))); |
647 |
aFontMetrics->SetDescent(descent); |
1417 |
} |
648 |
aFontMetrics->SetEmDescent(descent); |
1418 |
else { |
649 |
aFontMetrics->SetMaxDescent(descent); |
1419 |
superscriptOffset = xHeight; |
|
|
1420 |
} |
650 |
|
1421 |
|
651 |
aFontMetrics->SetLeading(0); |
1422 |
if (subscript_y(val)) { |
|
|
1423 |
subscriptOffset = nscoord(PR_MAX(dev2app, NSToIntRound(val * dev2app))); |
1424 |
} |
1425 |
else { |
1426 |
subscriptOffset = xHeight; |
1427 |
} |
652 |
|
1428 |
|
653 |
nscoord spaceWidth = GetWidth(" ", 1); |
1429 |
/* need better way to calculate this */ |
|
|
1430 |
strikeoutOffset = NSToCoordRound(xHeight / 2.0); |
1431 |
strikeoutSize = underlineSize; |
1432 |
|
1433 |
// TODO: leading never used, does it equal to "Height"? |
1434 |
aFontMetrics->SetHeight(emHeight); |
1435 |
aFontMetrics->SetEmHeight(emHeight); |
1436 |
aFontMetrics->SetEmAscent(emAscent); |
1437 |
aFontMetrics->SetEmDescent(emDescent); |
1438 |
aFontMetrics->SetMaxHeight(maxHeight); |
1439 |
aFontMetrics->SetMaxAscent(maxAscent); |
1440 |
aFontMetrics->SetMaxDescent(maxDescent); |
1441 |
aFontMetrics->SetMaxAdvance(maxAdvance); |
1442 |
aFontMetrics->SetXHeight(xHeight); |
654 |
aFontMetrics->SetSpaceWidth(spaceWidth); |
1443 |
aFontMetrics->SetSpaceWidth(spaceWidth); |
655 |
|
|
|
656 |
nscoord aveCharWidth = GetWidth("x", 1); |
657 |
aFontMetrics->SetAveCharWidth(aveCharWidth); |
1444 |
aFontMetrics->SetAveCharWidth(aveCharWidth); |
|
|
1445 |
aFontMetrics->SetUnderline(underlineOffset, underlineSize); |
1446 |
aFontMetrics->SetSuperscriptOffset(superscriptOffset); |
1447 |
aFontMetrics->SetSubscriptOffset(subscriptOffset); |
1448 |
aFontMetrics->SetStrikeout(strikeoutOffset, strikeoutSize); |
658 |
|
1449 |
|
659 |
return NS_OK; |
1450 |
return NS_OK; |
660 |
} |
1451 |
} |
661 |
|
1452 |
|
662 |
nsresult |
1453 |
nsresult |
663 |
nsFontPSAFM::SetupFont(nsRenderingContextPS* aContext) |
1454 |
nsFontPSXft::SetupFont(nsRenderingContextPS* aContext) |
664 |
{ |
1455 |
{ |
665 |
NS_ENSURE_TRUE(aContext && mFontMetrics, 0); |
1456 |
NS_ENSURE_TRUE(aContext, NS_ERROR_FAILURE); |
666 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
1457 |
nsPostScriptObj* psObj = aContext->GetPostScriptObj(); |
667 |
NS_ENSURE_TRUE(psObj, 0); |
1458 |
NS_ENSURE_TRUE(psObj, NS_ERROR_FAILURE); |
668 |
|
1459 |
|
669 |
nscoord fontHeight = 0; |
1460 |
nscoord fontHeight = 0; |
670 |
mFontMetrics->GetHeight(fontHeight); |
1461 |
mFontMetrics->GetHeight(fontHeight); |
671 |
|
1462 |
|
672 |
psObj->setscriptfont(mFontIndex, mFamilyName, |
1463 |
nsCString fontName; |
673 |
fontHeight, mFont->style, mFont->variant, |
1464 |
int wmode = 0; |
674 |
mFont->weight, mFont->decorations); |
1465 |
FT_Face face = getFTFace(); |
|
|
1466 |
NS_ENSURE_TRUE(face, NS_ERROR_NULL_POINTER); |
1467 |
char *cidFontName = FT2ToType8CidFontName(face, wmode); |
1468 |
NS_ENSURE_TRUE(cidFontName, NS_ERROR_FAILURE); |
1469 |
fontName.Assign(cidFontName); |
1470 |
psObj->setfont(fontName, fontHeight); |
1471 |
PR_Free(cidFontName); |
1472 |
|
675 |
return NS_OK; |
1473 |
return NS_OK; |
676 |
} |
1474 |
} |
677 |
|
1475 |
|
678 |
#ifdef MOZ_MATHML |
1476 |
#ifdef MOZ_MATHML |
679 |
nsresult |
1477 |
nsresult |
680 |
nsFontPSAFM::GetBoundingMetrics(const char* aString, |
1478 |
nsFontPSXft::GetBoundingMetrics(const char* aString, |
681 |
PRUint32 aLength, |
1479 |
PRUint32 aLength, |
682 |
nsBoundingMetrics& aBoundingMetrics) |
1480 |
nsBoundingMetrics& aBoundingMetrics) |
683 |
{ |
1481 |
{ |
684 |
return NS_ERROR_NOT_IMPLEMENTED; |
1482 |
return NS_ERROR_NOT_IMPLEMENTED; |
685 |
} |
1483 |
} |
686 |
|
1484 |
|
687 |
nsresult |
1485 |
nsresult |
688 |
nsFontPSAFM::GetBoundingMetrics(const PRUnichar* aString, |
1486 |
nsFontPSXft::GetBoundingMetrics(const PRUnichar* aString, |
689 |
PRUint32 aLength, |
1487 |
PRUint32 aLength, |
690 |
nsBoundingMetrics& aBoundingMetrics) |
1488 |
nsBoundingMetrics& aBoundingMetrics) |
691 |
{ |
1489 |
{ |
692 |
return NS_ERROR_NOT_IMPLEMENTED; |
1490 |
return NS_ERROR_NOT_IMPLEMENTED; |
693 |
} |
1491 |
} |
694 |
#endif |
1492 |
#endif //MOZ_MATHML |
695 |
|
|
|
696 |
#ifdef MOZ_ENABLE_FREETYPE2 |
697 |
|
1493 |
|
698 |
#define WIDEN_8_TO_16_BUF_SIZE 1024 |
1494 |
#else |
699 |
|
1495 |
|
700 |
PRBool |
1496 |
PRBool |
701 |
nsFontPSFreeType::CSSFontEnumCallback(const nsString& aFamily, PRBool aGeneric, |
1497 |
nsFontPSFreeType::CSSFontEnumCallback(const nsString& aFamily, PRBool aGeneric, |
Lines 713-719
Link Here
|
713 |
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID, &rv)); |
1509 |
nsCOMPtr<nsIPref> pref(do_GetService(NS_PREF_CONTRACTID, &rv)); |
714 |
NS_ENSURE_SUCCESS(rv, PR_TRUE); // keep trying |
1510 |
NS_ENSURE_SUCCESS(rv, PR_TRUE); // keep trying |
715 |
nsCAutoString name("font.name."); |
1511 |
nsCAutoString name("font.name."); |
716 |
name.AppendWithConversion(aFamily.get()); |
1512 |
LossyAppendUTF16toASCII(aFamily, name); |
717 |
name.Append(char('.')); |
1513 |
name.Append(char('.')); |
718 |
name.Append(fpi->lang); |
1514 |
name.Append(fpi->lang); |
719 |
pref->CopyCharPref(name.get(), getter_Copies(value)); |
1515 |
pref->CopyCharPref(name.get(), getter_Copies(value)); |
Lines 734-740
Link Here
|
734 |
("generic font \"%s\" -> \"%s\"\n", name.get(), familyname.get())); |
1530 |
("generic font \"%s\" -> \"%s\"\n", name.get(), familyname.get())); |
735 |
} |
1531 |
} |
736 |
else |
1532 |
else |
737 |
familyname.AppendWithConversion(aFamily); |
1533 |
LossyAppendUTF16toASCII(aFamily, familyname); |
738 |
|
1534 |
|
739 |
AddFontEntries(familyname, fpi->lang, fpi->weight, |
1535 |
AddFontEntries(familyname, fpi->lang, fpi->weight, |
740 |
nsIFontCatalogService::kFCWidthAny, fpi->slant, |
1536 |
nsIFontCatalogService::kFCWidthAny, fpi->slant, |
Lines 1560-1565
Link Here
|
1560 |
#endif //MOZ_MATHML |
2356 |
#endif //MOZ_MATHML |
1561 |
|
2357 |
|
1562 |
#endif //MOZ_ENABLE_FREETYPE2 |
2358 |
#endif //MOZ_ENABLE_FREETYPE2 |
|
|
2359 |
#endif //MOZ_ENABLE_XFT |
1563 |
|
2360 |
|
1564 |
// Implementation of nsPSFontGenerator |
2361 |
// Implementation of nsPSFontGenerator |
1565 |
nsPSFontGenerator::nsPSFontGenerator() |
2362 |
nsPSFontGenerator::nsPSFontGenerator() |
Lines 1593-1599
Link Here
|
1593 |
} |
2390 |
} |
1594 |
} |
2391 |
} |
1595 |
|
2392 |
|
|
|
2393 |
#ifdef MOZ_ENABLE_XFT |
2394 |
nsXftType8Generator::nsXftType8Generator() |
2395 |
{ |
2396 |
} |
2397 |
|
2398 |
nsresult |
2399 |
nsXftType8Generator::Init(nsXftEntry* aEntry) |
2400 |
{ |
2401 |
NS_ENSURE_TRUE(aEntry, NS_ERROR_FAILURE); |
2402 |
mEntry = aEntry; |
2403 |
|
2404 |
FT_Error error = FT_Init_FreeType(&mFreeTypeLibrary); |
2405 |
NS_ASSERTION(!error, "failed to initialize FreeType library"); |
2406 |
if (error) { |
2407 |
mFreeTypeLibrary = nsnull; |
2408 |
return NS_ERROR_FAILURE; |
2409 |
} |
2410 |
error = FTC_Manager_New(mFreeTypeLibrary, 0, 0, 0, nsXftFaceRequester, |
2411 |
NULL, &mFTCacheManager); |
2412 |
NS_ASSERTION(!error, "failed to create FreeType Cache manager"); |
2413 |
if (error) |
2414 |
return NS_ERROR_FAILURE; |
2415 |
|
2416 |
return NS_OK; |
2417 |
} |
2418 |
|
2419 |
nsXftType8Generator::~nsXftType8Generator() |
2420 |
{ |
2421 |
FTC_Manager_Done(mFTCacheManager); |
2422 |
|
2423 |
if (FT_Done_FreeType(mFreeTypeLibrary)) |
2424 |
return; |
2425 |
|
2426 |
mEntry = nsnull; |
2427 |
} |
2428 |
|
2429 |
void nsXftType8Generator::GeneratePSFont(FILE* aFile) |
2430 |
{ |
2431 |
FT_Error error; |
2432 |
FT_Face face = mEntry->mFace; |
2433 |
|
2434 |
if (face == nsnull) { |
2435 |
mImageDesc.font.face_id = (void*)mEntry; |
2436 |
mImageDesc.font.pix_width = 16; |
2437 |
mImageDesc.font.pix_height = 16; |
2438 |
mImageDesc.image_type = 0; |
2439 |
error = FTC_Manager_Lookup_Size(mFTCacheManager, &mImageDesc.font, |
2440 |
&face, nsnull); |
2441 |
if (error) |
2442 |
return; |
2443 |
} |
2444 |
|
2445 |
if (face == nsnull) |
2446 |
return; |
2447 |
|
2448 |
int wmode = 0; |
2449 |
if (!mSubset.IsEmpty()) |
2450 |
FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); |
2451 |
} |
2452 |
|
2453 |
#else |
1596 |
#ifdef MOZ_ENABLE_FREETYPE2 |
2454 |
#ifdef MOZ_ENABLE_FREETYPE2 |
|
|
2455 |
|
1597 |
nsFT2Type8Generator::nsFT2Type8Generator() |
2456 |
nsFT2Type8Generator::nsFT2Type8Generator() |
1598 |
{ |
2457 |
{ |
1599 |
} |
2458 |
} |
Lines 1639-1643
Link Here
|
1639 |
if (!mSubset.IsEmpty()) |
2498 |
if (!mSubset.IsEmpty()) |
1640 |
FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); |
2499 |
FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); |
1641 |
} |
2500 |
} |
1642 |
#endif //MOZ_ENABLE_FREETYPE2 |
|
|
1643 |
|
2501 |
|
1644 |
-- gfx/src/ps/nsFontMetricsPS.h |
2502 |
#endif //MOZ_ENABLE_FREETYPE2 |
|
|
2503 |
#endif //MOZ_ENABLE_XFT |
|
|
2504 |
++ gfx/src/ps/nsFontMetricsPS.h |
Lines 51-57
Link Here
|
51 |
#include "nsCRT.h" |
51 |
#include "nsCRT.h" |
52 |
#include "nsCompressedCharMap.h" |
52 |
#include "nsCompressedCharMap.h" |
53 |
#include "nsPostScriptObj.h" |
53 |
#include "nsPostScriptObj.h" |
|
|
54 |
#ifdef MOZ_ENABLE_XFT |
55 |
#include <ft2build.h> |
56 |
#include FT_FREETYPE_H |
57 |
#include FT_GLYPH_H |
58 |
#include FT_CACHE_H |
59 |
#include FT_CACHE_IMAGE_H |
60 |
#include FT_OUTLINE_H |
61 |
#include FT_OUTLINE_H |
62 |
#include FT_TRUETYPE_TABLES_H |
63 |
#else |
64 |
#ifdef MOZ_ENABLE_FREETYPE2 |
54 |
#include "nsIFontCatalogService.h" |
65 |
#include "nsIFontCatalogService.h" |
|
|
66 |
#endif |
67 |
#endif |
55 |
#include "nsVoidArray.h" |
68 |
#include "nsVoidArray.h" |
56 |
#include "nsHashtable.h" |
69 |
#include "nsHashtable.h" |
57 |
|
70 |
|
Lines 251-266
Link Here
|
251 |
nsString mFamilyName; |
264 |
nsString mFamilyName; |
252 |
}; |
265 |
}; |
253 |
|
266 |
|
|
|
267 |
|
268 |
#ifdef MOZ_ENABLE_XFT |
269 |
|
270 |
#include <X11/Xft/Xft.h> |
271 |
|
272 |
class nsXftEntry |
273 |
{ |
274 |
public: |
275 |
nsXftEntry(FcPattern *aFontPattern); |
276 |
~nsXftEntry() {}; |
277 |
|
278 |
FT_Face mFace; |
279 |
int mFaceIndex; |
280 |
nsCString mFontFileName; |
281 |
nsCString mFamilyName; |
282 |
nsCString mStyleName; |
283 |
|
284 |
protected: |
285 |
nsXftEntry() {}; |
286 |
}; |
287 |
|
288 |
struct fontps { |
289 |
nsXftEntry *entry; |
290 |
nsFontPS *fontps; |
291 |
FcCharSet *charset; |
292 |
}; |
293 |
|
294 |
struct fontPSInfo { |
295 |
nsVoidArray *fontps; |
296 |
const nsFont* nsfont; |
297 |
nsCAutoString lang; |
298 |
nsHashtable *alreadyLoaded; |
299 |
nsCStringArray mFontList; |
300 |
nsAutoVoidArray mFontIsGeneric; |
301 |
nsCString *mGenericFont; |
302 |
}; |
303 |
|
304 |
class nsFontPSXft : public nsFontPS |
305 |
{ |
306 |
public: |
307 |
static nsFontPS* FindFont(PRUnichar aChar, const nsFont& aFont, |
308 |
nsFontMetricsPS* aFontMetrics); |
309 |
nsresult Init(nsXftEntry* aEntry, |
310 |
nsPSFontGenerator* aPSFontGen); |
311 |
static PRBool CSSFontEnumCallback(const nsString& aFamily, PRBool aGeneric, |
312 |
void* aFpi); |
313 |
|
314 |
nsFontPSXft(const nsFont& aFont, nsFontMetricsPS* aFontMetrics); |
315 |
virtual ~nsFontPSXft(); |
316 |
NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW |
317 |
|
318 |
nscoord GetWidth(const char* aString, PRUint32 aLength); |
319 |
nscoord GetWidth(const PRUnichar* aString, PRUint32 aLength); |
320 |
nscoord DrawString(nsRenderingContextPS* aContext, |
321 |
nscoord aX, nscoord aY, |
322 |
const char* aString, PRUint32 aLength); |
323 |
nscoord DrawString(nsRenderingContextPS* aContext, |
324 |
nscoord aX, nscoord aY, |
325 |
const PRUnichar* aString, PRUint32 aLength); |
326 |
nsresult RealizeFont(nsFontMetricsPS* aFontMetrics, float dev2app); |
327 |
nsresult SetupFont(nsRenderingContextPS* aContext); |
328 |
|
329 |
#ifdef MOZ_MATHML |
330 |
nsresult |
331 |
GetBoundingMetrics(const char* aString, |
332 |
PRUint32 aLength, |
333 |
nsBoundingMetrics& aBoundingMetrics); |
334 |
nsresult |
335 |
GetBoundingMetrics(const PRUnichar* aString, |
336 |
PRUint32 aLength, |
337 |
nsBoundingMetrics& aBoundingMetrics); |
338 |
#endif |
339 |
|
340 |
nsXftEntry *mEntry; |
341 |
FT_Face getFTFace(); |
342 |
|
343 |
protected: |
344 |
PRUint16 mPixelSize; |
345 |
FTC_Image_Desc mImageDesc; |
346 |
FT_Library mFreeTypeLibrary; |
347 |
FTC_Manager mFTCacheManager; |
348 |
FTC_Image_Cache mImageCache; |
349 |
|
350 |
int ascent(); |
351 |
int descent(); |
352 |
PRBool getXHeight(unsigned long &aVal); |
353 |
int max_ascent(); |
354 |
int max_descent(); |
355 |
int max_width(); |
356 |
PRBool superscript_y(long &aVal); |
357 |
PRBool subscript_y(long &aVal); |
358 |
PRBool underlinePosition(long &aVal); |
359 |
PRBool underline_thickness(unsigned long &aVal); |
360 |
nsPSFontGenerator* mPSFontGenerator; |
361 |
}; |
362 |
|
363 |
#else |
364 |
|
365 |
#ifdef MOZ_ENABLE_FREETYPE2 |
366 |
#include "nsIFreeType2.h" |
367 |
|
254 |
typedef struct { |
368 |
typedef struct { |
255 |
nsITrueTypeFontCatalogEntry *entry; |
369 |
nsITrueTypeFontCatalogEntry *entry; |
256 |
nsFontPS *fontps; |
370 |
nsFontPS *fontps; |
257 |
unsigned short *ccmap; |
371 |
unsigned short *ccmap; |
258 |
} fontps; |
372 |
} fontps; |
259 |
|
373 |
|
260 |
#ifdef MOZ_ENABLE_FREETYPE2 |
|
|
261 |
|
262 |
#include "nsIFreeType2.h" |
263 |
|
264 |
typedef struct { |
374 |
typedef struct { |
265 |
nsVoidArray *fontps; |
375 |
nsVoidArray *fontps; |
266 |
const nsFont* nsfont; |
376 |
const nsFont* nsfont; |
Lines 338-344
Link Here
|
338 |
nsPSFontGenerator* mPSFontGenerator; |
448 |
nsPSFontGenerator* mPSFontGenerator; |
339 |
}; |
449 |
}; |
340 |
|
450 |
|
341 |
#endif |
451 |
#else // !FREETYPE2 && !XFT |
|
|
452 |
typedef struct { |
453 |
nsFontPS *fontps; |
454 |
} fontps; |
455 |
#endif // MOZ_ENABLE_FREETYPE2 |
456 |
#endif // MOZ_ENABLE_XFT |
342 |
|
457 |
|
343 |
class nsPSFontGenerator { |
458 |
class nsPSFontGenerator { |
344 |
public: |
459 |
public: |
Lines 352-357
Link Here
|
352 |
nsString mSubset; |
467 |
nsString mSubset; |
353 |
}; |
468 |
}; |
354 |
|
469 |
|
|
|
470 |
|
471 |
#ifdef MOZ_ENABLE_XFT |
472 |
|
473 |
class nsXftType8Generator : public nsPSFontGenerator { |
474 |
public: |
475 |
nsXftType8Generator(); |
476 |
~nsXftType8Generator(); |
477 |
nsresult Init(nsXftEntry* aFce); |
478 |
void GeneratePSFont(FILE* aFile); |
479 |
|
480 |
protected: |
481 |
nsXftEntry *mEntry; |
482 |
FTC_Image_Desc mImageDesc; |
483 |
FT_Library mFreeTypeLibrary; |
484 |
FTC_Manager mFTCacheManager; |
485 |
}; |
486 |
#else |
355 |
#ifdef MOZ_ENABLE_FREETYPE2 |
487 |
#ifdef MOZ_ENABLE_FREETYPE2 |
356 |
class nsFT2Type8Generator : public nsPSFontGenerator { |
488 |
class nsFT2Type8Generator : public nsPSFontGenerator { |
357 |
public: |
489 |
public: |
Lines 365-371
Link Here
|
365 |
nsCOMPtr<nsIFreeType2> mFt2; |
497 |
nsCOMPtr<nsIFreeType2> mFt2; |
366 |
FTC_Image_Desc mImageDesc; |
498 |
FTC_Image_Desc mImageDesc; |
367 |
}; |
499 |
}; |
368 |
#endif |
500 |
#endif // MOZ_ENABLE_FREETYPE2 |
|
|
501 |
#endif // MOZ_ENABLE_XFT |
369 |
|
502 |
|
370 |
#endif |
503 |
#endif |
371 |
|
504 |
|
372 |
-- gfx/src/ps/nsType1.cpp |
505 |
++ gfx/src/ps/nsType1.cpp |
Lines 71-77
Link Here
|
71 |
static const PRUint16 type1_encryption_c2 = TYPE1_ENCRYPTION_C2; |
71 |
static const PRUint16 type1_encryption_c2 = TYPE1_ENCRYPTION_C2; |
72 |
|
72 |
|
73 |
typedef struct { |
73 |
typedef struct { |
|
|
74 |
#ifndef MOZ_ENABLE_XFT |
74 |
nsIFreeType2 *ft2; |
75 |
nsIFreeType2 *ft2; |
|
|
76 |
#endif |
75 |
FT_Face face; |
77 |
FT_Face face; |
76 |
int elm_cnt; |
78 |
int elm_cnt; |
77 |
int len; |
79 |
int len; |
Lines 181-197
Link Here
|
181 |
FT_GlyphSlot slot; |
183 |
FT_GlyphSlot slot; |
182 |
FT_Glyph glyph; |
184 |
FT_Glyph glyph; |
183 |
FT_BBox bbox; |
185 |
FT_BBox bbox; |
184 |
nsresult rv; |
|
|
185 |
|
186 |
|
186 |
slot = aFti->face->glyph; |
187 |
slot = aFti->face->glyph; |
187 |
|
188 |
|
188 |
rv = aFti->ft2->GetGlyph(slot, &glyph); |
189 |
#ifdef MOZ_ENABLE_XFT |
|
|
190 |
FT_Error error = FT_Get_Glyph(slot, &glyph); |
191 |
if (error) { |
192 |
NS_ERROR("sideWidthAndBearing failed to get glyph"); |
193 |
return PR_FALSE; |
194 |
} |
195 |
FT_Glyph_Get_CBox(glyph, ft_glyph_bbox_unscaled, &bbox); |
196 |
#else |
197 |
nsresult rv = aFti->ft2->GetGlyph(slot, &glyph); |
189 |
if (NS_FAILED(rv)) { |
198 |
if (NS_FAILED(rv)) { |
190 |
NS_ERROR("sideWidthAndBearing failed to get glyph"); |
199 |
NS_ERROR("sideWidthAndBearing failed to get glyph"); |
191 |
return PR_FALSE; |
200 |
return PR_FALSE; |
192 |
} |
201 |
} |
193 |
aFti->ft2->GlyphGetCBox(glyph, ft_glyph_bbox_unscaled, &bbox); |
202 |
aFti->ft2->GlyphGetCBox(glyph, ft_glyph_bbox_unscaled, &bbox); |
194 |
|
203 |
#endif |
195 |
|
204 |
|
196 |
if (aFti->wmode == 0) |
205 |
if (aFti->wmode == 0) |
197 |
aw = toCS(upm, slot->metrics.horiAdvance); |
206 |
aw = toCS(upm, slot->metrics.horiAdvance); |
Lines 371-391
Link Here
|
371 |
}; |
380 |
}; |
372 |
|
381 |
|
373 |
FT_Error |
382 |
FT_Error |
|
|
383 |
#ifdef MOZ_ENABLE_XFT |
384 |
FT2GlyphToType1CharString(FT_Face aFace, PRUint32 aGlyphID, |
385 |
int aWmode, int aLenIV, unsigned char *aBuf) |
386 |
#else |
374 |
FT2GlyphToType1CharString(nsIFreeType2 *aFt2, FT_Face aFace, PRUint32 aGlyphID, |
387 |
FT2GlyphToType1CharString(nsIFreeType2 *aFt2, FT_Face aFace, PRUint32 aGlyphID, |
375 |
int aWmode, int aLenIV, unsigned char *aBuf) |
388 |
int aWmode, int aLenIV, unsigned char *aBuf) |
|
|
389 |
#endif |
376 |
{ |
390 |
{ |
377 |
int j; |
391 |
int j; |
378 |
FT_Int32 flags = FT_LOAD_NO_BITMAP | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING; |
392 |
FT_Int32 flags = FT_LOAD_NO_BITMAP | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING; |
379 |
FT_GlyphSlot slot; |
393 |
FT_GlyphSlot slot; |
380 |
unsigned char *start = aBuf; |
394 |
unsigned char *start = aBuf; |
381 |
FT2PT1_info fti; |
395 |
FT2PT1_info fti; |
382 |
nsresult rv; |
|
|
383 |
|
396 |
|
384 |
rv = aFt2->LoadGlyph(aFace, aGlyphID, flags); |
397 |
#ifdef MOZ_ENABLE_XFT |
|
|
398 |
FT_Error error = FT_Load_Glyph(aFace, aGlyphID, flags); |
399 |
if (error) { |
400 |
NS_ERROR("failed to load aGlyphID"); |
401 |
return error; |
402 |
} |
403 |
#else |
404 |
nsresult rv = aFt2->LoadGlyph(aFace, aGlyphID, flags); |
385 |
if (NS_FAILED(rv)) { |
405 |
if (NS_FAILED(rv)) { |
386 |
NS_ERROR("failed to load aGlyphID"); |
406 |
NS_ERROR("failed to load aGlyphID"); |
387 |
return 1; |
407 |
return 1; |
388 |
} |
408 |
} |
|
|
409 |
#endif |
389 |
slot = aFace->glyph; |
410 |
slot = aFace->glyph; |
390 |
|
411 |
|
391 |
if (slot->format != ft_glyph_format_outline) { |
412 |
if (slot->format != ft_glyph_format_outline) { |
Lines 393-399
Link Here
|
393 |
return 1; |
414 |
return 1; |
394 |
} |
415 |
} |
395 |
|
416 |
|
|
|
417 |
#ifndef MOZ_ENABLE_XFT |
396 |
fti.ft2 = aFt2; |
418 |
fti.ft2 = aFt2; |
|
|
419 |
#endif |
397 |
fti.face = aFace; |
420 |
fti.face = aFace; |
398 |
fti.buf = aBuf; |
421 |
fti.buf = aBuf; |
399 |
fti.elm_cnt = 0; |
422 |
fti.elm_cnt = 0; |
Lines 404-414
Link Here
|
404 |
for (j=0; j< aLenIV; j++) { |
427 |
for (j=0; j< aLenIV; j++) { |
405 |
fti.len += ecsi(&fti.buf, 0); |
428 |
fti.len += ecsi(&fti.buf, 0); |
406 |
} |
429 |
} |
|
|
430 |
#ifdef MOZ_ENABLE_XFT |
431 |
if (FT_Outline_Decompose(&slot->outline, &ft_outline_funcs, &fti)) { |
432 |
NS_ERROR("error decomposing aGlyphID"); |
433 |
return 1; |
434 |
} |
435 |
#else |
407 |
rv = aFt2->OutlineDecompose(&slot->outline, &ft_outline_funcs, &fti); |
436 |
rv = aFt2->OutlineDecompose(&slot->outline, &ft_outline_funcs, &fti); |
408 |
if (NS_FAILED(rv)) { |
437 |
if (NS_FAILED(rv)) { |
409 |
NS_ERROR("error decomposing aGlyphID"); |
438 |
NS_ERROR("error decomposing aGlyphID"); |
410 |
return 1; |
439 |
return 1; |
411 |
} |
440 |
} |
|
|
441 |
#endif |
412 |
|
442 |
|
413 |
if (fti.elm_cnt) { |
443 |
if (fti.elm_cnt) { |
414 |
fti.len += csc(&fti.buf, T1_CLOSEPATH); |
444 |
fti.len += csc(&fti.buf, T1_CLOSEPATH); |
415 |
-- gfx/src/ps/nsType1.h |
445 |
++ gfx/src/ps/nsType1.h |
Lines 54-60
Link Here
|
54 |
|
54 |
|
55 |
#include <stdio.h> |
55 |
#include <stdio.h> |
56 |
#include "nspr.h" |
56 |
#include "nspr.h" |
|
|
57 |
#ifdef MOZ_ENABLE_XFT |
58 |
#include "nsISupports.h" |
59 |
#include <ft2build.h> |
60 |
#include FT_FREETYPE_H |
61 |
#include FT_GLYPH_H |
62 |
#include FT_OUTLINE_H |
63 |
#else |
57 |
#include "nsIFreeType2.h" |
64 |
#include "nsIFreeType2.h" |
|
|
65 |
#endif |
58 |
|
66 |
|
59 |
/* to/from Character Space */ |
67 |
/* to/from Character Space */ |
60 |
inline int |
68 |
inline int |
Lines 95-101
Link Here
|
95 |
#define TYPE1_ENCRYPTION_C1 52845 |
103 |
#define TYPE1_ENCRYPTION_C1 52845 |
96 |
#define TYPE1_ENCRYPTION_C2 22719 |
104 |
#define TYPE1_ENCRYPTION_C2 22719 |
97 |
|
105 |
|
|
|
106 |
#ifdef MOZ_ENABLE_XFT |
107 |
FT_Error FT2GlyphToType1CharString(FT_Face aFace, |
108 |
#else /* MOZ_ENABLE_FREETYPE2 */ |
98 |
FT_Error FT2GlyphToType1CharString(nsIFreeType2 *aFt2, FT_Face aFace, |
109 |
FT_Error FT2GlyphToType1CharString(nsIFreeType2 *aFt2, FT_Face aFace, |
|
|
110 |
#endif |
99 |
PRUint32 aGlyphID, int aWmode, int aLenIV, |
111 |
PRUint32 aGlyphID, int aWmode, int aLenIV, |
100 |
unsigned char *aBuf); |
112 |
unsigned char *aBuf); |
101 |
|
113 |
|
102 |
-- gfx/src/ps/nsType8.cpp |
114 |
++ gfx/src/ps/nsType8.cpp |
Lines 53-59
Link Here
|
53 |
#include "nsCidMap.h" |
53 |
#include "nsCidMap.h" |
54 |
#include "nsType1.h" |
54 |
#include "nsType1.h" |
55 |
#include "nsType8.h" |
55 |
#include "nsType8.h" |
|
|
56 |
#ifndef MOZ_ENABLE_XFT |
56 |
#include "nsIFreeType2.h" |
57 |
#include "nsIFreeType2.h" |
|
|
58 |
#endif |
57 |
#include "nsIServiceManager.h" |
59 |
#include "nsIServiceManager.h" |
58 |
#include "nsISignatureVerifier.h" |
60 |
#include "nsISignatureVerifier.h" |
59 |
#include "plbase64.h" |
61 |
#include "plbase64.h" |
Lines 67-73
Link Here
|
67 |
static void hex_out(unsigned char *buf, PRUint32 n, FILE *f, PRUint32 *pos); |
69 |
static void hex_out(unsigned char *buf, PRUint32 n, FILE *f, PRUint32 *pos); |
68 |
|
70 |
|
69 |
static void flatten_name(char *aToName); |
71 |
static void flatten_name(char *aToName); |
|
|
72 |
#ifdef MOZ_ENABLE_XFT |
73 |
static int FT2SubsetToCidKeyedType1(FT_Face aFace, |
74 |
#else |
70 |
static int FT2SubsetToCidKeyedType1(nsIFreeType2 *aFt2, FT_Face aFace, |
75 |
static int FT2SubsetToCidKeyedType1(nsIFreeType2 *aFt2, FT_Face aFace, |
|
|
76 |
#endif |
71 |
const PRUnichar *aCharIDs, int aLen, |
77 |
const PRUnichar *aCharIDs, int aLen, |
72 |
const char *aFontName, |
78 |
const char *aFontName, |
73 |
const char *aRegistry, |
79 |
const char *aRegistry, |
Lines 319-330
Link Here
|
319 |
int cmap_type = 0; |
325 |
int cmap_type = 0; |
320 |
PRBool status = PR_FALSE; |
326 |
PRBool status = PR_FALSE; |
321 |
|
327 |
|
|
|
328 |
#ifndef MOZ_ENABLE_XFT |
322 |
nsresult rv; |
329 |
nsresult rv; |
323 |
nsCOMPtr<nsIFreeType2> ft2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); |
330 |
nsCOMPtr<nsIFreeType2> ft2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); |
324 |
if (NS_FAILED(rv)) { |
331 |
if (NS_FAILED(rv)) { |
325 |
NS_ERROR("Failed to get nsIFreeType2 service"); |
332 |
NS_ERROR("Failed to get nsIFreeType2 service"); |
326 |
goto done; |
333 |
goto done; |
327 |
} |
334 |
} |
|
|
335 |
#endif |
328 |
|
336 |
|
329 |
if ((aNumChars+1) > sizeof(CIDs_buf)/sizeof(CIDs_buf[0])) |
337 |
if ((aNumChars+1) > sizeof(CIDs_buf)/sizeof(CIDs_buf[0])) |
330 |
CIDs = (PRUint32 *)PR_Malloc((aNumChars+1)*sizeof(CIDs_buf[0])); |
338 |
CIDs = (PRUint32 *)PR_Malloc((aNumChars+1)*sizeof(CIDs_buf[0])); |
Lines 368-374
Link Here
|
368 |
WriteCmapFooter(aFile); |
376 |
WriteCmapFooter(aFile); |
369 |
|
377 |
|
370 |
/* output the Type 8 CID font */ |
378 |
/* output the Type 8 CID font */ |
|
|
379 |
#ifdef MOZ_ENABLE_XFT |
380 |
FT2SubsetToCidKeyedType1(aFace, aCharIDs, aNumChars, fontname, |
381 |
#else |
371 |
FT2SubsetToCidKeyedType1(ft2, aFace, aCharIDs, aNumChars, fontname, |
382 |
FT2SubsetToCidKeyedType1(ft2, aFace, aCharIDs, aNumChars, fontname, |
|
|
383 |
#endif |
372 |
registry, encoding, supplement, aWmode, lenIV, |
384 |
registry, encoding, supplement, aWmode, lenIV, |
373 |
aFile); |
385 |
aFile); |
374 |
fprintf(aFile, "\n"); |
386 |
fprintf(aFile, "\n"); |
Lines 392-398
Link Here
|
392 |
} |
404 |
} |
393 |
|
405 |
|
394 |
static PRBool |
406 |
static PRBool |
|
|
407 |
#ifdef MOZ_ENABLE_XFT |
408 |
FT2SubsetToCidKeyedType1(FT_Face aFace, |
409 |
#else |
395 |
FT2SubsetToCidKeyedType1(nsIFreeType2 *aFt2, FT_Face aFace, |
410 |
FT2SubsetToCidKeyedType1(nsIFreeType2 *aFt2, FT_Face aFace, |
|
|
411 |
#endif |
396 |
const PRUnichar *aCharIDs, |
412 |
const PRUnichar *aCharIDs, |
397 |
int aLen, const char *aFontName, |
413 |
int aLen, const char *aFontName, |
398 |
const char *aRegistry, const char *aEncoding, |
414 |
const char *aRegistry, const char *aEncoding, |
Lines 445-460
Link Here
|
445 |
fprintf(aFile, "\n"); |
461 |
fprintf(aFile, "\n"); |
446 |
|
462 |
|
447 |
/* measure the notdef glyph length */ |
463 |
/* measure the notdef glyph length */ |
|
|
464 |
#ifdef MOZ_ENABLE_XFT |
465 |
cmapinfo[0] = FT2GlyphToType1CharString(aFace, 0, aWmode, aLenIV, NULL); |
466 |
#else |
448 |
cmapinfo[0] = FT2GlyphToType1CharString(aFt2, aFace, 0, aWmode, aLenIV, NULL); |
467 |
cmapinfo[0] = FT2GlyphToType1CharString(aFt2, aFace, 0, aWmode, aLenIV, NULL); |
|
|
468 |
#endif |
449 |
num_charstrings = 1; |
469 |
num_charstrings = 1; |
450 |
charstrings_len = cmapinfo[0]; |
470 |
charstrings_len = cmapinfo[0]; |
451 |
|
471 |
|
452 |
/* get charstring lengths */ |
472 |
/* get charstring lengths */ |
453 |
max_charstring = cmapinfo[0]; |
473 |
max_charstring = cmapinfo[0]; |
454 |
for (i=0; i<aLen; i++) { |
474 |
for (i=0; i<aLen; i++) { |
|
|
475 |
#ifdef MOZ_ENABLE_XFT |
476 |
glyphID = FT_Get_Char_Index(aFace, aCharIDs[i]); |
477 |
cmapinfo[i+1] = FT2GlyphToType1CharString(aFace, glyphID, aWmode, |
478 |
aLenIV, NULL); |
479 |
#else |
455 |
aFt2->GetCharIndex(aFace, aCharIDs[i], &glyphID); |
480 |
aFt2->GetCharIndex(aFace, aCharIDs[i], &glyphID); |
456 |
cmapinfo[i+1] = FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode, |
481 |
cmapinfo[i+1] = FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode, |
457 |
aLenIV, NULL); |
482 |
aLenIV, NULL); |
|
|
483 |
#endif |
458 |
charstrings_len += cmapinfo[i+1]; |
484 |
charstrings_len += cmapinfo[i+1]; |
459 |
if (cmapinfo[i+1]) |
485 |
if (cmapinfo[i+1]) |
460 |
num_charstrings++; |
486 |
num_charstrings++; |
Lines 554-568
Link Here
|
554 |
// output the charStrings |
580 |
// output the charStrings |
555 |
// |
581 |
// |
556 |
// output the notdef glyph |
582 |
// output the notdef glyph |
|
|
583 |
#ifdef MOZ_ENABLE_XFT |
584 |
charstring_len = FT2GlyphToType1CharString(aFace, 0, aWmode, aLenIV, |
585 |
charstring); |
586 |
#else |
557 |
charstring_len = FT2GlyphToType1CharString(aFt2, aFace, 0, aWmode, aLenIV, |
587 |
charstring_len = FT2GlyphToType1CharString(aFt2, aFace, 0, aWmode, aLenIV, |
558 |
charstring); |
588 |
charstring); |
|
|
589 |
#endif |
559 |
hex_out(charstring, charstring_len, aFile, &line_pos); |
590 |
hex_out(charstring, charstring_len, aFile, &line_pos); |
560 |
|
591 |
|
561 |
/* output the charstrings for the glyphs */ |
592 |
/* output the charstrings for the glyphs */ |
562 |
for (i=0; i<aLen; i++) { |
593 |
for (i=0; i<aLen; i++) { |
|
|
594 |
#ifdef MOZ_ENABLE_XFT |
595 |
glyphID = FT_Get_Char_Index(aFace, aCharIDs[i]); |
596 |
charstring_len = FT2GlyphToType1CharString(aFace, glyphID, aWmode, |
597 |
aLenIV, charstring); |
598 |
#else |
563 |
aFt2->GetCharIndex(aFace, aCharIDs[i], &glyphID); |
599 |
aFt2->GetCharIndex(aFace, aCharIDs[i], &glyphID); |
564 |
charstring_len = FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode, |
600 |
charstring_len = FT2GlyphToType1CharString(aFt2, aFace, glyphID, aWmode, |
565 |
aLenIV, charstring); |
601 |
aLenIV, charstring); |
|
|
602 |
#endif |
566 |
NS_ASSERTION(charstring_len==cmapinfo[i+1], "glyph data changed"); |
603 |
NS_ASSERTION(charstring_len==cmapinfo[i+1], "glyph data changed"); |
567 |
hex_out(charstring, charstring_len, aFile, &line_pos); |
604 |
hex_out(charstring, charstring_len, aFile, &line_pos); |
568 |
} |
605 |
} |
569 |
-- gfx/src/ps/nsType8.h |
606 |
++ gfx/src/ps/nsType8.h |
Lines 43-49
Link Here
|
43 |
|
43 |
|
44 |
#include <stdio.h> |
44 |
#include <stdio.h> |
45 |
#include "nspr.h" |
45 |
#include "nspr.h" |
|
|
46 |
#ifdef MOZ_ENABLE_XFT |
47 |
#include <ft2build.h> |
48 |
#include FT_FREETYPE_H |
49 |
#include FT_GLYPH_H |
50 |
#include FT_CACHE_H |
51 |
#include FT_CACHE_IMAGE_H |
52 |
#include FT_OUTLINE_H |
53 |
// macros to handle FreeType2 26.6 numbers (26 bit number with 6 bit fraction) |
54 |
#define FT_REG_TO_16_16(x) ((x)<<16) |
55 |
#ifndef FT_MulFix |
56 |
#define FT_MulFix(v, s) (((v)*(s))>>16) |
57 |
#endif |
58 |
#define FT_ROUND(x) (((x) + 32) & ~63) // 63 = 2^6 - 1 |
59 |
#define FT_TRUNC(x) ((x) >> 6) |
60 |
#define FT_DESIGN_UNITS_TO_PIXELS(v, s) FT_TRUNC(FT_ROUND(FT_MulFix((v) , (s)))) |
61 |
#else /* MOZ_ENABLE_FREETYPE2 */ |
46 |
#include "nsIFreeType2.h" |
62 |
#include "nsIFreeType2.h" |
|
|
63 |
#endif /* MOZ_ENABLE_XFT */ |
47 |
|
64 |
|
48 |
void AddCIDCheckCode(FILE *aFile); |
65 |
void AddCIDCheckCode(FILE *aFile); |
49 |
PRBool FT2SubsetToType8(FT_Face aFace, const PRUnichar *aCharIDs, |
66 |
PRBool FT2SubsetToType8(FT_Face aFace, const PRUnichar *aCharIDs, |
50 |
-- gfx/src/shared/nsRenderingContextImpl.cpp |
67 |
++ gfx/src/shared/nsRenderingContextImpl.cpp |
Lines 938-940
Link Here
|
938 |
{ |
938 |
{ |
939 |
return NS_OK; |
939 |
return NS_OK; |
940 |
} |
940 |
} |
941 |
-- gfx/src/shared/Makefile.in |
941 |
|
|
|
942 |
NS_IMETHODIMP |
943 |
nsRenderingContextImpl::GetClusterInfo(const PRUnichar *aText, |
944 |
PRUint32 aLength, |
945 |
PRUint32 *aClusterStarts) |
946 |
{ |
947 |
return NS_ERROR_NOT_IMPLEMENTED; |
948 |
} |
949 |
|
950 |
NS_IMETHODIMP |
951 |
nsRenderingContextImpl::GetPosition(const PRUnichar *aText, |
952 |
PRUint32 aLength, |
953 |
nscoord aCoord, |
954 |
PRUint32 &aInx) |
955 |
{ |
956 |
return NS_ERROR_NOT_IMPLEMENTED; |
957 |
} |
958 |
|
959 |
NS_IMETHODIMP |
960 |
nsRenderingContextImpl::GetRangeWidth(const PRUnichar *aText, |
961 |
PRUint32 aLength, |
962 |
PRUint32 aStart, |
963 |
PRUint32 aEnd, |
964 |
PRUint32 &aWidth) |
965 |
{ |
966 |
return NS_ERROR_NOT_IMPLEMENTED; |
967 |
} |
968 |
|
969 |
|
|
|
970 |
++ gfx/src/shared/Makefile.in |
Lines 54-59
Link Here
|
54 |
|
54 |
|
55 |
LOCAL_INCLUDES = -I$(srcdir)/.. \ |
55 |
LOCAL_INCLUDES = -I$(srcdir)/.. \ |
56 |
$(NULL) |
56 |
$(NULL) |
|
|
57 |
|
58 |
ifdef MOZ_ENABLE_XFT |
59 |
CPPSRCS += nsFontConfigUtils.cpp |
60 |
LOCAL_INCLUDES += $(MOZ_XFT_CFLAGS) |
61 |
endif |
57 |
|
62 |
|
58 |
include $(topsrcdir)/config/rules.mk |
63 |
include $(topsrcdir)/config/rules.mk |
59 |
|
64 |
|
60 |
-- gfx/src/shared/nsFontConfigUtils.cpp |
65 |
++ gfx/src/shared/nsFontConfigUtils.cpp |
Line 0
Link Here
|
0 |
-- gfx/src/shared/nsFontConfigUtils.h |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is mozilla.org code. |
16 |
* |
17 |
* The Initial Developer of the Original Code is Christopher Blizzard |
18 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
19 |
* are Copyright (C) 2002 the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* |
23 |
* Alternatively, the contents of this file may be used under the terms of |
24 |
* either of the GNU General Public License Version 2 or later (the "GPL"), |
25 |
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
26 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
27 |
* of those above. If you wish to allow use of your version of this file only |
28 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
29 |
* use your version of this file under the terms of the MPL, indicate your |
30 |
* decision by deleting the provisions above and replace them with the notice |
31 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
32 |
* the provisions above, a recipient may use your version of this file under |
33 |
* the terms of any one of the MPL, the GPL or the LGPL. |
34 |
* |
35 |
* ***** END LICENSE BLOCK ***** */ |
36 |
|
37 |
#include "nsFontConfigUtils.h" |
38 |
|
39 |
struct MozXftLangGroup { |
40 |
const char *mozLangGroup; |
41 |
FcChar32 character; |
42 |
const FcChar8 *XftLang; |
43 |
}; |
44 |
|
45 |
const MozXftLangGroup MozXftLangGroups[] = { |
46 |
{ "x-western", 0x0041, (const FcChar8 *)"en" }, |
47 |
{ "x-central-euro", 0x0100, (const FcChar8 *)"pl" }, |
48 |
{ "x-cyrillic", 0x0411, (const FcChar8 *)"ru" }, |
49 |
{ "x-baltic", 0x0104, (const FcChar8 *)"lv" }, |
50 |
{ "x-devanagari", 0x0905, (const FcChar8 *)"hi" }, |
51 |
{ "x-tamil", 0x0B85, (const FcChar8 *)"ta" }, |
52 |
{ "x-unicode", 0x0000, 0 }, |
53 |
{ "x-user-def", 0x0000, 0 }, |
54 |
}; |
55 |
|
56 |
#define NUM_XFT_LANG_GROUPS (sizeof (MozXftLangGroups) / \ |
57 |
sizeof (MozXftLangGroups[0])) |
58 |
|
59 |
static |
60 |
void FFREToFamily(nsACString &aFFREName, nsACString &oFamily); |
61 |
|
62 |
static |
63 |
const MozXftLangGroup* |
64 |
FindFCLangGroup (nsACString &aLangGroup) |
65 |
{ |
66 |
for (unsigned int i=0; i < NUM_XFT_LANG_GROUPS; ++i) { |
67 |
if (aLangGroup.Equals(MozXftLangGroups[i].mozLangGroup, |
68 |
nsCaseInsensitiveCStringComparator())) { |
69 |
return &MozXftLangGroups[i]; |
70 |
} |
71 |
} |
72 |
|
73 |
return nsnull; |
74 |
} |
75 |
|
76 |
int |
77 |
NS_CalculateSlant(PRUint8 aStyle) |
78 |
{ |
79 |
int fcSlant; |
80 |
|
81 |
switch(aStyle) { |
82 |
case NS_FONT_STYLE_ITALIC: |
83 |
fcSlant = FC_SLANT_ITALIC; |
84 |
break; |
85 |
case NS_FONT_STYLE_OBLIQUE: |
86 |
fcSlant = FC_SLANT_OBLIQUE; |
87 |
break; |
88 |
default: |
89 |
fcSlant = FC_SLANT_ROMAN; |
90 |
break; |
91 |
} |
92 |
|
93 |
return fcSlant; |
94 |
} |
95 |
|
96 |
int |
97 |
NS_CalculateWeight (PRUint16 aWeight) |
98 |
{ |
99 |
/* |
100 |
* weights come in two parts crammed into one |
101 |
* integer -- the "base" weight is weight / 100, |
102 |
* the rest of the value is the "offset" from that |
103 |
* weight -- the number of steps to move to adjust |
104 |
* the weight in the list of supported font weights, |
105 |
* this value can be negative or positive. |
106 |
*/ |
107 |
PRInt32 baseWeight = (aWeight + 50) / 100; |
108 |
PRInt32 offset = aWeight - baseWeight * 100; |
109 |
|
110 |
/* clip weights to range 0 to 9 */ |
111 |
if (baseWeight < 0) |
112 |
baseWeight = 0; |
113 |
if (baseWeight > 9) |
114 |
baseWeight = 9; |
115 |
|
116 |
/* Map from weight value to fcWeights index */ |
117 |
static int fcWeightLookup[10] = { |
118 |
0, 0, 0, 0, 1, 1, 2, 3, 3, 4, |
119 |
}; |
120 |
|
121 |
PRInt32 fcWeight = fcWeightLookup[baseWeight]; |
122 |
|
123 |
/* |
124 |
* adjust by the offset value, make sure we stay inside the |
125 |
* fcWeights table |
126 |
*/ |
127 |
fcWeight += offset; |
128 |
if (fcWeight < 0) |
129 |
fcWeight = 0; |
130 |
if (fcWeight > 4) |
131 |
fcWeight = 4; |
132 |
|
133 |
/* Map to final FC_WEIGHT value */ |
134 |
static int fcWeights[5] = { |
135 |
FC_WEIGHT_LIGHT, /* 0 */ |
136 |
FC_WEIGHT_MEDIUM, /* 1 */ |
137 |
FC_WEIGHT_DEMIBOLD, /* 2 */ |
138 |
FC_WEIGHT_BOLD, /* 3 */ |
139 |
FC_WEIGHT_BLACK, /* 4 */ |
140 |
}; |
141 |
|
142 |
return fcWeights[fcWeight]; |
143 |
} |
144 |
|
145 |
void |
146 |
NS_AddLangGroup(FcPattern *aPattern, nsIAtom *aLangGroup) |
147 |
{ |
148 |
// Find the FC lang group for this lang group |
149 |
nsCAutoString cname; |
150 |
aLangGroup->ToUTF8String(cname); |
151 |
|
152 |
// see if the lang group needs to be translated from mozilla's |
153 |
// internal mapping into fontconfig's |
154 |
const struct MozXftLangGroup *langGroup; |
155 |
langGroup = FindFCLangGroup(cname); |
156 |
|
157 |
// if there's no lang group, just use the lang group as it was |
158 |
// passed to us |
159 |
// |
160 |
// we're casting away the const here for the strings - should be |
161 |
// safe. |
162 |
if (!langGroup) |
163 |
FcPatternAddString(aPattern, FC_LANG, (FcChar8 *)cname.get()); |
164 |
else if (langGroup->XftLang) |
165 |
FcPatternAddString(aPattern, FC_LANG, (FcChar8 *)langGroup->XftLang); |
166 |
} |
167 |
|
168 |
void |
169 |
NS_AddFFRE(FcPattern *aPattern, nsCString *aFamily, PRBool aWeak) |
170 |
{ |
171 |
nsCAutoString family; |
172 |
FFREToFamily(*aFamily, family); |
173 |
|
174 |
FcValue v; |
175 |
v.type = FcTypeString; |
176 |
// casting away the const here, should be safe |
177 |
v.u.s = (FcChar8 *)family.get(); |
178 |
|
179 |
if (aWeak) |
180 |
FcPatternAddWeak(aPattern, FC_FAMILY, v, FcTrue); |
181 |
else |
182 |
FcPatternAdd(aPattern, FC_FAMILY, v, FcTrue); |
183 |
} |
184 |
|
185 |
/* static */ |
186 |
void |
187 |
FFREToFamily(nsACString &aFFREName, nsACString &oFamily) |
188 |
{ |
189 |
if (NS_FFRECountHyphens(aFFREName) == 3) { |
190 |
PRInt32 familyHyphen = aFFREName.FindChar('-') + 1; |
191 |
PRInt32 registryHyphen = aFFREName.FindChar('-',familyHyphen); |
192 |
oFamily.Append(Substring(aFFREName, familyHyphen, |
193 |
registryHyphen-familyHyphen)); |
194 |
} |
195 |
else { |
196 |
oFamily.Append(aFFREName); |
197 |
} |
198 |
} |
199 |
|
200 |
int |
201 |
NS_FFRECountHyphens (nsACString &aFFREName) |
202 |
{ |
203 |
int h = 0; |
204 |
PRInt32 hyphen = 0; |
205 |
while ((hyphen = aFFREName.FindChar('-', hyphen)) >= 0) { |
206 |
++h; |
207 |
++hyphen; |
208 |
} |
209 |
return h; |
210 |
} |
211 |
|
212 |
PRBool |
213 |
NS_IsASCIIFontName(const nsString& aName) |
214 |
{ |
215 |
PRUint32 len = aName.Length(); |
216 |
const PRUnichar* str = aName.get(); |
217 |
for (PRUint32 i = 0; i < len; i++) { |
218 |
/* |
219 |
* X font names are printable ASCII, ignore others (for now) |
220 |
*/ |
221 |
if ((str[i] < 0x20) || (str[i] > 0x7E)) { |
222 |
return PR_FALSE; |
223 |
} |
224 |
} |
225 |
|
226 |
return PR_TRUE; |
227 |
} |
|
|
228 |
++ gfx/src/shared/nsFontConfigUtils.h |
Line 0
Link Here
|
0 |
-- gfx/src/x11shared/nsFontDebug.h |
1 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
|
2 |
/* ***** BEGIN LICENSE BLOCK ***** |
3 |
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
* |
5 |
* The contents of this file are subject to the Mozilla Public License Version |
6 |
* 1.1 (the "License"); you may not use this file except in compliance with |
7 |
* the License. You may obtain a copy of the License at |
8 |
* http://www.mozilla.org/MPL/ |
9 |
* |
10 |
* Software distributed under the License is distributed on an "AS IS" basis, |
11 |
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
* for the specific language governing rights and limitations under the |
13 |
* License. |
14 |
* |
15 |
* The Original Code is mozilla.org code. |
16 |
* |
17 |
* The Initial Developer of the Original Code is Christopher Blizzard |
18 |
* <blizzard@mozilla.org>. Portions created by the Initial Developer |
19 |
* are Copyright (C) 2002 the Initial Developer. All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* |
23 |
* Alternatively, the contents of this file may be used under the terms of |
24 |
* either of the GNU General Public License Version 2 or later (the "GPL"), |
25 |
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
26 |
* in which case the provisions of the GPL or the LGPL are applicable instead |
27 |
* of those above. If you wish to allow use of your version of this file only |
28 |
* under the terms of either the GPL or the LGPL, and not to allow others to |
29 |
* use your version of this file under the terms of the MPL, indicate your |
30 |
* decision by deleting the provisions above and replace them with the notice |
31 |
* and other provisions required by the GPL or the LGPL. If you do not delete |
32 |
* the provisions above, a recipient may use your version of this file under |
33 |
* the terms of any one of the MPL, the GPL or the LGPL. |
34 |
* |
35 |
* ***** END LICENSE BLOCK ***** */ |
36 |
|
37 |
#ifndef nsFontConfigUtils_h__ |
38 |
#define nsFontConfigUtils_h__ |
39 |
|
40 |
#include "nspr.h" |
41 |
#include "nsString.h" |
42 |
#include "nsIAtom.h" |
43 |
#include "nsFont.h" |
44 |
|
45 |
#include <fontconfig/fontconfig.h> |
46 |
|
47 |
extern int NS_CalculateSlant (PRUint8 aStyle); |
48 |
extern int NS_CalculateWeight (PRUint16 aWeight); |
49 |
extern void NS_AddLangGroup (FcPattern *aPattern, nsIAtom *aLangGroup); |
50 |
extern void NS_AddFFRE (FcPattern *aPattern, nsCString *aFamily, |
51 |
PRBool aWeak); |
52 |
extern int NS_FFRECountHyphens (nsACString &aFFREName); |
53 |
extern PRBool NS_IsASCIIFontName (const nsString& aName); |
54 |
#endif |
55 |
|
|
|
56 |
++ gfx/src/x11shared/nsFontDebug.h |
Lines 97-103
Link Here
|
97 |
#define FREETYPE_FONT_PRINTF(x) \ |
97 |
#define FREETYPE_FONT_PRINTF(x) \ |
98 |
DEBUG_PRINTF_MACRO(x, NS_FONT_DEBUG_FREETYPE_FONT) |
98 |
DEBUG_PRINTF_MACRO(x, NS_FONT_DEBUG_FREETYPE_FONT) |
99 |
|
99 |
|
|
|
100 |
#ifdef MOZ_ENABLE_FREETYPE2 |
100 |
extern PRUint32 gFontDebug; |
101 |
extern PRUint32 gFontDebug; |
|
|
102 |
#endif |
101 |
|
103 |
|
102 |
#endif |
104 |
#endif |
103 |
|
105 |
|
104 |
-- gfx/src/xlib/nsFontMetricsXlib.cpp |
106 |
++ gfx/src/xlib/nsFontMetricsXlib.cpp |
Lines 64-73
Link Here
|
64 |
#include "nsReadableUtils.h" |
64 |
#include "nsReadableUtils.h" |
65 |
#include "nsAString.h" |
65 |
#include "nsAString.h" |
66 |
#include "nsXPIDLString.h" |
66 |
#include "nsXPIDLString.h" |
67 |
#ifdef USE_FREETYPE |
67 |
#ifdef MOZ_ENABLE_FREETYPE2 |
68 |
#include "nsFT2FontCatalog.h" |
68 |
#include "nsFT2FontCatalog.h" |
69 |
#include "nsFreeType.h" |
69 |
#include "nsFreeType.h" |
70 |
#endif /* USE_FREETYPE */ |
70 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
71 |
#ifdef USE_X11SHARED_CODE |
71 |
#ifdef USE_X11SHARED_CODE |
72 |
#include "nsXFontNormal.h" |
72 |
#include "nsXFontNormal.h" |
73 |
#endif /* USE_X11SHARED_CODE */ |
73 |
#endif /* USE_X11SHARED_CODE */ |
Lines 113-121
Link Here
|
113 |
|
113 |
|
114 |
/* Local prototypes */ |
114 |
/* Local prototypes */ |
115 |
static PRBool FreeNode(nsHashKey* aKey, void* aData, void* aClosure); |
115 |
static PRBool FreeNode(nsHashKey* aKey, void* aData, void* aClosure); |
116 |
#ifdef USE_FREETYPE |
116 |
#ifdef MOZ_ENABLE_FREETYPE2 |
117 |
static void CharSetNameToCodeRangeBits(const char*, PRUint32*, PRUint32*); |
117 |
static void CharSetNameToCodeRangeBits(const char*, PRUint32*, PRUint32*); |
118 |
#endif /* USE_FREETYPE */ |
118 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
119 |
static const nsFontCharSetMapXlib *GetCharSetMap(nsFontMetricsXlibContext *aFmctx, const char *aCharSetName); |
119 |
static const nsFontCharSetMapXlib *GetCharSetMap(nsFontMetricsXlibContext *aFmctx, const char *aCharSetName); |
120 |
|
120 |
|
121 |
// the font catalog is so expensive to generate |
121 |
// the font catalog is so expensive to generate |
Lines 215-225
Link Here
|
215 |
#endif /* USE_AASB */ |
215 |
#endif /* USE_AASB */ |
216 |
PRInt32 mEmbeddedBitmapMaximumHeight; |
216 |
PRInt32 mEmbeddedBitmapMaximumHeight; |
217 |
|
217 |
|
218 |
#ifdef USE_FREETYPE |
218 |
#ifdef MOZ_ENABLE_FREETYPE2 |
219 |
PRBool mEnableFreeType2; |
219 |
PRBool mEnableFreeType2; |
220 |
PRBool mFreeType2Autohinted; |
220 |
PRBool mFreeType2Autohinted; |
221 |
PRBool mFreeType2Unhinted; |
221 |
PRBool mFreeType2Unhinted; |
222 |
#endif /* USE_FREETYPE */ |
222 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
223 |
#ifdef USE_AASB |
223 |
#ifdef USE_AASB |
224 |
PRUint8 mAATTDarkTextMinValue; |
224 |
PRUint8 mAATTDarkTextMinValue; |
225 |
double mAATTDarkTextGain; |
225 |
double mAATTDarkTextGain; |
Lines 236-243
Link Here
|
236 |
const char* mCharSet; |
236 |
const char* mCharSet; |
237 |
nsFontCharSetConverterXlib Convert; |
237 |
nsFontCharSetConverterXlib Convert; |
238 |
PRUint8 mSpecialUnderline; |
238 |
PRUint8 mSpecialUnderline; |
|
|
239 |
#ifdef MOZ_ENABLE_FREETYPE2 |
239 |
PRInt32 mCodeRange1Bits; |
240 |
PRInt32 mCodeRange1Bits; |
240 |
PRInt32 mCodeRange2Bits; |
241 |
PRInt32 mCodeRange2Bits; |
|
|
242 |
#endif |
241 |
PRUint16* mCCMap; |
243 |
PRUint16* mCCMap; |
242 |
nsIUnicodeEncoder* mConverter; |
244 |
nsIUnicodeEncoder* mConverter; |
243 |
nsIAtom* mLangGroup; |
245 |
nsIAtom* mLangGroup; |
Lines 285-290
Link Here
|
285 |
static nsFontCharSetInfoXlib Unknown = { nsnull }; |
287 |
static nsFontCharSetInfoXlib Unknown = { nsnull }; |
286 |
static nsFontCharSetInfoXlib Special = { nsnull }; |
288 |
static nsFontCharSetInfoXlib Special = { nsnull }; |
287 |
|
289 |
|
|
|
290 |
#ifdef MOZ_ENABLE_FREETYPE2 |
288 |
static nsFontCharSetInfoXlib USASCII = |
291 |
static nsFontCharSetInfoXlib USASCII = |
289 |
{ "us-ascii", SingleByteConvert, 0, |
292 |
{ "us-ascii", SingleByteConvert, 0, |
290 |
TT_OS2_CPR1_LATIN1 | TT_OS2_CPR1_MAC_ROMAN, |
293 |
TT_OS2_CPR1_LATIN1 | TT_OS2_CPR1_MAC_ROMAN, |
Lines 490-496
Link Here
|
490 |
{ "x-mathematica4", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
493 |
{ "x-mathematica4", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
491 |
static nsFontCharSetInfoXlib Mathematica5 = |
494 |
static nsFontCharSetInfoXlib Mathematica5 = |
492 |
{ "x-mathematica5", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
495 |
{ "x-mathematica5", SingleByteConvert, 0, TT_OS2_CPR1_SYMBOL, 0}; |
493 |
#endif /* MOZ_MATHML */ |
496 |
#endif /* MATHML */ |
|
|
497 |
|
498 |
#else |
499 |
|
500 |
static nsFontCharSetInfoXlib USASCII = |
501 |
{ "us-ascii", SingleByteConvert, 0 }; |
502 |
static nsFontCharSetInfoXlib ISO88591 = |
503 |
{ "ISO-8859-1", SingleByteConvert, 0 }; |
504 |
static nsFontCharSetInfoXlib ISO88592 = |
505 |
{ "ISO-8859-2", SingleByteConvert, 0 }; |
506 |
static nsFontCharSetInfoXlib ISO88593 = |
507 |
{ "ISO-8859-3", SingleByteConvert, 0 }; |
508 |
static nsFontCharSetInfoXlib ISO88594 = |
509 |
{ "ISO-8859-4", SingleByteConvert, 0 }; |
510 |
static nsFontCharSetInfoXlib ISO88595 = |
511 |
{ "ISO-8859-5", SingleByteConvert, 0 }; |
512 |
static nsFontCharSetInfoXlib ISO88596 = |
513 |
{ "ISO-8859-6", SingleByteConvert, 0 }; |
514 |
static nsFontCharSetInfoXlib ISO885968x = |
515 |
{ "x-iso-8859-6-8-x", SingleByteConvert, 0 }; |
516 |
static nsFontCharSetInfoXlib ISO8859616 = |
517 |
{ "x-iso-8859-6-16", SingleByteConvert, 0 }; |
518 |
static nsFontCharSetInfoXlib IBM1046 = |
519 |
{ "x-IBM1046", SingleByteConvert, 0 }; |
520 |
static nsFontCharSetInfoXlib ISO88597 = |
521 |
{ "ISO-8859-7", SingleByteConvert, 0 }; |
522 |
static nsFontCharSetInfoXlib ISO88598 = |
523 |
{ "ISO-8859-8", SingleByteConvert, 0 }; |
524 |
// change from |
525 |
// { "ISO-8859-8", SingleByteConvertReverse, 0, 0, 0 }; |
526 |
// untill we fix the layout and ensure we only call this with pure RTL text |
527 |
static nsFontCharSetInfoXlib ISO88599 = |
528 |
{ "ISO-8859-9", SingleByteConvert, 0 }; |
529 |
// no support for iso-8859-10 (Nordic/Icelandic) currently |
530 |
// static nsFontCharSetInfoXlib ISO885910 = |
531 |
// { "ISO-8859-10", SingleByteConvert, 0, |
532 |
// 0, TT_OS2_CPR2_NORDIC | TT_OS2_CPR2_ICELANDIC }; |
533 |
// no support for iso-8859-12 (Vietnamese) currently |
534 |
// static nsFontCharSetInfoXlib ISO885912 = |
535 |
// { "ISO-8859-12", SingleByteConvert, 0, |
536 |
// TT_OS2_CPR1_VIETNAMESE, 0 }; |
537 |
static nsFontCharSetInfoXlib ISO885913 = |
538 |
{ "ISO-8859-13", SingleByteConvert, 0 }; |
539 |
static nsFontCharSetInfoXlib ISO885915 = |
540 |
{ "ISO-8859-15", SingleByteConvert, 0 }; |
541 |
static nsFontCharSetInfoXlib JISX0201 = |
542 |
{ "jis_0201", SingleByteConvert, 1 }; |
543 |
static nsFontCharSetInfoXlib KOI8R = |
544 |
{ "KOI8-R", SingleByteConvert, 0 }; |
545 |
static nsFontCharSetInfoXlib KOI8U = |
546 |
{ "KOI8-U", SingleByteConvert, 0 }; |
547 |
static nsFontCharSetInfoXlib TIS6202 = |
548 |
/* Added to support thai context sensitive shaping if |
549 |
* CTL extension is is in force */ |
550 |
#ifdef SUNCTL |
551 |
{ "tis620-2", SingleByteConvert, 0 }; |
552 |
#else |
553 |
{ "windows-874", SingleByteConvert, 0 }; |
554 |
#endif /* SUNCTL */ |
555 |
static nsFontCharSetInfoXlib TIS620 = |
556 |
{ "TIS-620", SingleByteConvert, 0 }; |
557 |
static nsFontCharSetInfoXlib ISO885911 = |
558 |
{ "ISO-8859-11", SingleByteConvert, 0 }; |
559 |
static nsFontCharSetInfoXlib Big5 = |
560 |
{ "x-x-big5", DoubleByteConvert, 1 }; |
561 |
// a kludge to distinguish zh-TW only fonts in Big5 (such as hpbig5-) |
562 |
// from zh-TW/zh-HK common fonts in Big5 (such as big5-1) |
563 |
static nsFontCharSetInfoXlib Big5TWHK = |
564 |
{ "x-x-big5", DoubleByteConvert, 1 }; |
565 |
static nsFontCharSetInfoXlib CNS116431 = |
566 |
{ "x-cns-11643-1", DoubleByteConvert, 1 }; |
567 |
static nsFontCharSetInfoXlib CNS116432 = |
568 |
{ "x-cns-11643-2", DoubleByteConvert, 1 }; |
569 |
static nsFontCharSetInfoXlib CNS116433 = |
570 |
{ "x-cns-11643-3", DoubleByteConvert, 1 }; |
571 |
static nsFontCharSetInfoXlib CNS116434 = |
572 |
{ "x-cns-11643-4", DoubleByteConvert, 1 }; |
573 |
static nsFontCharSetInfoXlib CNS116435 = |
574 |
{ "x-cns-11643-5", DoubleByteConvert, 1 }; |
575 |
static nsFontCharSetInfoXlib CNS116436 = |
576 |
{ "x-cns-11643-6", DoubleByteConvert, 1 }; |
577 |
static nsFontCharSetInfoXlib CNS116437 = |
578 |
{ "x-cns-11643-7", DoubleByteConvert, 1 }; |
579 |
static nsFontCharSetInfoXlib GB2312 = |
580 |
{ "gb_2312-80", DoubleByteConvert, 1 }; |
581 |
static nsFontCharSetInfoXlib GB18030_0 = |
582 |
{ "gb18030.2000-0", DoubleByteConvert, 1 }; |
583 |
static nsFontCharSetInfoXlib GB18030_1 = |
584 |
{ "gb18030.2000-1", DoubleByteConvert, 1 }; |
585 |
static nsFontCharSetInfoXlib GBK = |
586 |
{ "x-gbk-noascii", DoubleByteConvert, 1 }; |
587 |
static nsFontCharSetInfoXlib HKSCS = |
588 |
{ "hkscs-1", DoubleByteConvert, 1 }; |
589 |
static nsFontCharSetInfoXlib JISX0208 = |
590 |
{ "jis_0208-1983", DoubleByteConvert, 1 }; |
591 |
static nsFontCharSetInfoXlib JISX0212 = |
592 |
{ "jis_0212-1990", DoubleByteConvert, 1 }; |
593 |
static nsFontCharSetInfoXlib KSC5601 = |
594 |
{ "ks_c_5601-1987", DoubleByteConvert, 1 }; |
595 |
static nsFontCharSetInfoXlib X11Johab = |
596 |
{ "x-x11johab", DoubleByteConvert, 1 }; |
597 |
static nsFontCharSetInfoXlib JohabNoAscii = |
598 |
{ "x-johab-noascii", DoubleByteConvert, 1 }; |
599 |
static nsFontCharSetInfoXlib JamoTTF = |
600 |
{ "x-koreanjamo-0", DoubleByteConvert, 1 }; |
601 |
static nsFontCharSetInfoXlib TamilTTF = |
602 |
{ "x-tamilttf-0", DoubleByteConvert, 0 }; |
603 |
static nsFontCharSetInfoXlib CP1250 = |
604 |
{ "windows-1250", SingleByteConvert, 0 }; |
605 |
static nsFontCharSetInfoXlib CP1251 = |
606 |
{ "windows-1251", SingleByteConvert, 0 }; |
607 |
static nsFontCharSetInfoXlib CP1252 = |
608 |
{ "windows-1252", SingleByteConvert, 0 }; |
609 |
static nsFontCharSetInfoXlib CP1253 = |
610 |
{ "windows-1253", SingleByteConvert, 0 }; |
611 |
static nsFontCharSetInfoXlib CP1257 = |
612 |
{ "windows-1257", SingleByteConvert, 0 }; |
613 |
|
614 |
#ifdef SUNCTL |
615 |
/* Hindi range currently unsupported in FT2 range. Change TT* once we |
616 |
arrive at a way to identify hindi */ |
617 |
static nsFontCharSetInfoXlib SunIndic = |
618 |
{ "x-sun-unicode-india-0", DoubleByteConvert, 0 }; |
619 |
#endif /* SUNCTL */ |
620 |
|
621 |
static nsFontCharSetInfoXlib ISO106461 = |
622 |
{ nsnull, ISO10646Convert, 1}; |
623 |
|
624 |
static nsFontCharSetInfoXlib AdobeSymbol = |
625 |
{ "Adobe-Symbol-Encoding", SingleByteConvert, 0 }; |
626 |
static nsFontCharSetInfoXlib AdobeEuro = |
627 |
{ "x-adobe-euro", SingleByteConvert, 0 }; |
628 |
|
629 |
#ifdef MOZ_MATHML |
630 |
static nsFontCharSetInfoXlib CMCMEX = |
631 |
{ "x-t1-cmex", SingleByteConvert, 0}; |
632 |
static nsFontCharSetInfoXlib CMCMSY = |
633 |
{ "x-t1-cmsy", SingleByteConvert, 0}; |
634 |
static nsFontCharSetInfoXlib CMCMR = |
635 |
{ "x-t1-cmr", SingleByteConvert, 0}; |
636 |
static nsFontCharSetInfoXlib CMCMMI = |
637 |
{ "x-t1-cmmi", SingleByteConvert, 0}; |
638 |
static nsFontCharSetInfoXlib Mathematica1 = |
639 |
{ "x-mathematica1", SingleByteConvert, 0}; |
640 |
static nsFontCharSetInfoXlib Mathematica2 = |
641 |
{ "x-mathematica2", SingleByteConvert, 0}; |
642 |
static nsFontCharSetInfoXlib Mathematica3 = |
643 |
{ "x-mathematica3", SingleByteConvert, 0}; |
644 |
static nsFontCharSetInfoXlib Mathematica4 = |
645 |
{ "x-mathematica4", SingleByteConvert, 0}; |
646 |
static nsFontCharSetInfoXlib Mathematica5 = |
647 |
{ "x-mathematica5", SingleByteConvert, 0}; |
648 |
#endif /* MATHML */ |
649 |
#endif /* FREETYPE2 */ |
494 |
|
650 |
|
495 |
static nsFontLangGroupXlib FLG_WESTERN = { "x-western", nsnull }; |
651 |
static nsFontLangGroupXlib FLG_WESTERN = { "x-western", nsnull }; |
496 |
static nsFontLangGroupXlib FLG_BALTIC = { "x-baltic", nsnull }; |
652 |
static nsFontLangGroupXlib FLG_BALTIC = { "x-baltic", nsnull }; |
Lines 1048-1056
Link Here
|
1048 |
{ |
1204 |
{ |
1049 |
PR_LOG(FontMetricsXlibLM, PR_LOG_DEBUG, ("# nsFontMetricsXlibContext destroy()\n")); |
1205 |
PR_LOG(FontMetricsXlibLM, PR_LOG_DEBUG, ("# nsFontMetricsXlibContext destroy()\n")); |
1050 |
|
1206 |
|
1051 |
#ifdef USE_FREETYPE |
1207 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1052 |
nsFreeTypeFreeGlobals(); |
1208 |
nsFreeTypeFreeGlobals(); |
1053 |
#endif /* USE_FREETYPE */ |
1209 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
1054 |
|
1210 |
|
1055 |
#ifdef ENABLE_X_FONT_BANNING |
1211 |
#ifdef ENABLE_X_FONT_BANNING |
1056 |
if (mFontRejectRegEx) { |
1212 |
if (mFontRejectRegEx) { |
Lines 1180-1190
Link Here
|
1180 |
#endif /* USE_AASB */ |
1336 |
#endif /* USE_AASB */ |
1181 |
mEmbeddedBitmapMaximumHeight = 1000000; |
1337 |
mEmbeddedBitmapMaximumHeight = 1000000; |
1182 |
|
1338 |
|
1183 |
#ifdef USE_FREETYPE |
1339 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1184 |
mEnableFreeType2 = PR_TRUE; |
1340 |
mEnableFreeType2 = PR_TRUE; |
1185 |
mFreeType2Autohinted = PR_FALSE; |
1341 |
mFreeType2Autohinted = PR_FALSE; |
1186 |
mFreeType2Unhinted = PR_TRUE; |
1342 |
mFreeType2Unhinted = PR_TRUE; |
1187 |
#endif /* USE_FREETYPE */ |
1343 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
1188 |
#ifdef USE_AASB |
1344 |
#ifdef USE_AASB |
1189 |
mAATTDarkTextMinValue = 64; |
1345 |
mAATTDarkTextMinValue = 64; |
1190 |
mAATTDarkTextGain = 0.8; |
1346 |
mAATTDarkTextGain = 0.8; |
Lines 1368-1374
Link Here
|
1368 |
mForceOutlineScaledFonts = force_outline_scaled_fonts; |
1524 |
mForceOutlineScaledFonts = force_outline_scaled_fonts; |
1369 |
} |
1525 |
} |
1370 |
|
1526 |
|
1371 |
#ifdef USE_FREETYPE |
1527 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1372 |
PRBool enable_freetype2 = PR_TRUE; |
1528 |
PRBool enable_freetype2 = PR_TRUE; |
1373 |
rv = mPref->GetBoolPref("font.FreeType2.enable", &enable_freetype2); |
1529 |
rv = mPref->GetBoolPref("font.FreeType2.enable", &enable_freetype2); |
1374 |
if (NS_SUCCEEDED(rv)) { |
1530 |
if (NS_SUCCEEDED(rv)) { |
Lines 1389-1395
Link Here
|
1389 |
mFreeType2Unhinted = freetype2_unhinted; |
1545 |
mFreeType2Unhinted = freetype2_unhinted; |
1390 |
FREETYPE_FONT_PRINTF(("mFreeType2Unhinted = %d", mFreeType2Unhinted)); |
1546 |
FREETYPE_FONT_PRINTF(("mFreeType2Unhinted = %d", mFreeType2Unhinted)); |
1391 |
} |
1547 |
} |
1392 |
#endif /* USE_FREETYPE */ |
1548 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
1393 |
|
1549 |
|
1394 |
#ifdef USE_AASB |
1550 |
#ifdef USE_AASB |
1395 |
PRInt32 antialias_minimum = 8; |
1551 |
PRInt32 antialias_minimum = 8; |
Lines 1585-1596
Link Here
|
1585 |
} |
1741 |
} |
1586 |
#endif /* ENABLE_X_FONT_BANNING */ |
1742 |
#endif /* ENABLE_X_FONT_BANNING */ |
1587 |
|
1743 |
|
1588 |
#ifdef USE_FREETYPE |
1744 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1589 |
rv = nsFreeTypeInitGlobals(); |
1745 |
rv = nsFreeTypeInitGlobals(); |
1590 |
if (NS_FAILED(rv)) { |
1746 |
if (NS_FAILED(rv)) { |
1591 |
return NS_ERROR_OUT_OF_MEMORY; |
1747 |
return NS_ERROR_OUT_OF_MEMORY; |
1592 |
} |
1748 |
} |
1593 |
#endif /* USE_FREETYPE */ |
1749 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
1594 |
|
1750 |
|
1595 |
return NS_OK; |
1751 |
return NS_OK; |
1596 |
} |
1752 |
} |
Lines 1916-1922
Link Here
|
1916 |
float f; |
2072 |
float f; |
1917 |
f = mDeviceContext->DevUnitsToAppUnits(); |
2073 |
f = mDeviceContext->DevUnitsToAppUnits(); |
1918 |
|
2074 |
|
1919 |
#ifdef USE_FREETYPE |
2075 |
#ifdef MOZ_ENABLE_FREETYPE2 |
1920 |
if (mWesternFont->IsFreeTypeFont()) { |
2076 |
if (mWesternFont->IsFreeTypeFont()) { |
1921 |
nsFreeTypeFont *ft = (nsFreeTypeFont *)mWesternFont; |
2077 |
nsFreeTypeFont *ft = (nsFreeTypeFont *)mWesternFont; |
1922 |
if (!ft) |
2078 |
if (!ft) |
Lines 1999-2005
Link Here
|
1999 |
return; |
2155 |
return; |
2000 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
2156 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
2001 |
} |
2157 |
} |
2002 |
#endif /* USE_FREETYPE */ |
2158 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
2003 |
nsXFont *xFont = mWesternFont->GetXFont(); |
2159 |
nsXFont *xFont = mWesternFont->GetXFont(); |
2004 |
XFontStruct *fontInfo = xFont->GetXFontStruct(); |
2160 |
XFontStruct *fontInfo = xFont->GetXFontStruct(); |
2005 |
f = mDeviceContext->DevUnitsToAppUnits(); |
2161 |
f = mDeviceContext->DevUnitsToAppUnits(); |
Lines 3010-3022
Link Here
|
3010 |
return ((PRBool) (mCharSetInfo == mFontMetricsContext->mISO106461)); |
3166 |
return ((PRBool) (mCharSetInfo == mFontMetricsContext->mISO106461)); |
3011 |
} |
3167 |
} |
3012 |
|
3168 |
|
3013 |
#ifdef USE_FREETYPE |
3169 |
#ifdef MOZ_ENABLE_FREETYPE2 |
3014 |
PRBool |
3170 |
PRBool |
3015 |
nsFontXlib::IsFreeTypeFont(void) |
3171 |
nsFontXlib::IsFreeTypeFont(void) |
3016 |
{ |
3172 |
{ |
3017 |
return PR_FALSE; |
3173 |
return PR_FALSE; |
3018 |
} |
3174 |
} |
3019 |
#endif /* USE_FREETYPE */ |
3175 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
3020 |
|
3176 |
|
3021 |
MOZ_DECL_CTOR_COUNTER(nsFontXlib) |
3177 |
MOZ_DECL_CTOR_COUNTER(nsFontXlib) |
3022 |
|
3178 |
|
Lines 3654-3660
Link Here
|
3654 |
nsFontMetricsXlib::PickASizeAndLoad(nsFontStretchXlib* aStretch, |
3810 |
nsFontMetricsXlib::PickASizeAndLoad(nsFontStretchXlib* aStretch, |
3655 |
nsFontCharSetInfoXlib* aCharSet, PRUnichar aChar, const char *aName) |
3811 |
nsFontCharSetInfoXlib* aCharSet, PRUnichar aChar, const char *aName) |
3656 |
{ |
3812 |
{ |
3657 |
#ifdef USE_FREETYPE |
3813 |
#ifdef MOZ_ENABLE_FREETYPE2 |
3658 |
if (aStretch->mFreeTypeFaceID) { |
3814 |
if (aStretch->mFreeTypeFaceID) { |
3659 |
//FREETYPE_FONT_PRINTF(("mFreeTypeFaceID = 0x%p", aStretch->mFreeTypeFaceID)); |
3815 |
//FREETYPE_FONT_PRINTF(("mFreeTypeFaceID = 0x%p", aStretch->mFreeTypeFaceID)); |
3660 |
nsFreeTypeFont *ftfont = nsFreeTypeFont::NewFont(aStretch->mFreeTypeFaceID, |
3816 |
nsFreeTypeFont *ftfont = nsFreeTypeFont::NewFont(aStretch->mFreeTypeFaceID, |
Lines 3682-3688
Link Here
|
3682 |
//FREETYPE_FONT_PRINTF(("add the ftfont")); |
3838 |
//FREETYPE_FONT_PRINTF(("add the ftfont")); |
3683 |
return AddToLoadedFontsList(ftfont); |
3839 |
return AddToLoadedFontsList(ftfont); |
3684 |
} |
3840 |
} |
3685 |
#endif /* USE_FREETYPE */ |
3841 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
3686 |
|
3842 |
|
3687 |
PRBool use_scaled_font = PR_FALSE; |
3843 |
PRBool use_scaled_font = PR_FALSE; |
3688 |
PRBool have_nearly_rightsized_bitmap = PR_FALSE; |
3844 |
PRBool have_nearly_rightsized_bitmap = PR_FALSE; |
Lines 4498-4507
Link Here
|
4498 |
} |
4654 |
} |
4499 |
#endif |
4655 |
#endif |
4500 |
|
4656 |
|
4501 |
#ifdef USE_FREETYPE |
4657 |
#ifdef MOZ_ENABLE_FREETYPE2 |
4502 |
// get FreeType fonts |
4658 |
// get FreeType fonts |
4503 |
nsFT2FontCatalog::GetFontNames(aFmctx, aPattern, aNodes); |
4659 |
nsFT2FontCatalog::GetFontNames(aFmctx, aPattern, aNodes); |
4504 |
#endif /* USE_FREETYPE */ |
4660 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
4505 |
|
4661 |
|
4506 |
nsCAutoString previousNodeName; |
4662 |
nsCAutoString previousNodeName; |
4507 |
nsHashtable* node_hash; |
4663 |
nsHashtable* node_hash; |
Lines 5896-5902
Link Here
|
5896 |
return charSetMap; |
6052 |
return charSetMap; |
5897 |
} |
6053 |
} |
5898 |
|
6054 |
|
5899 |
#ifdef USE_FREETYPE |
6055 |
#ifdef MOZ_ENABLE_FREETYPE2 |
5900 |
static |
6056 |
static |
5901 |
void CharSetNameToCodeRangeBits(const char *aCharset, |
6057 |
void CharSetNameToCodeRangeBits(const char *aCharset, |
5902 |
PRUint32 *aCodeRange1, PRUint32 *aCodeRange2) |
6058 |
PRUint32 *aCodeRange1, PRUint32 *aCodeRange2) |
Lines 5907-5911
Link Here
|
5907 |
*aCodeRange1 = charSetInfo->mCodeRange1Bits; |
6063 |
*aCodeRange1 = charSetInfo->mCodeRange1Bits; |
5908 |
*aCodeRange2 = charSetInfo->mCodeRange2Bits; |
6064 |
*aCodeRange2 = charSetInfo->mCodeRange2Bits; |
5909 |
} |
6065 |
} |
5910 |
#endif /* USE_FREETYPE */ |
6066 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
5911 |
|
6067 |
|
5912 |
-- gfx/src/xlib/nsFontMetricsXlib.h |
6068 |
++ gfx/src/xlib/nsFontMetricsXlib.h |
Lines 56-62
Link Here
|
56 |
#include "nsCompressedCharMap.h" |
56 |
#include "nsCompressedCharMap.h" |
57 |
|
57 |
|
58 |
/* Undefine some CPP symbols which wrap not-yet-implemented code */ |
58 |
/* Undefine some CPP symbols which wrap not-yet-implemented code */ |
59 |
#undef USE_FREETYPE |
59 |
#undef MOZ_ENABLE_FREETYPE2 |
60 |
#undef USE_AASB |
60 |
#undef USE_AASB |
61 |
#undef USE_X11SHARED_CODE |
61 |
#undef USE_X11SHARED_CODE |
62 |
|
62 |
|
Lines 187-195
Link Here
|
187 |
|
187 |
|
188 |
class nsFontXlibUserDefined; |
188 |
class nsFontXlibUserDefined; |
189 |
class nsFontMetricsXlib; |
189 |
class nsFontMetricsXlib; |
190 |
#ifdef USE_FREETYPE |
190 |
#ifdef MOZ_ENABLE_FREETYPE2 |
191 |
class nsFreeTypeFace; |
191 |
class nsFreeTypeFace; |
192 |
#endif /* USE_FREETYPE */ |
192 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
193 |
|
193 |
|
194 |
struct nsFontStretchXlib |
194 |
struct nsFontStretchXlib |
195 |
{ |
195 |
{ |
Lines 204-212
Link Here
|
204 |
char* mScalable; |
204 |
char* mScalable; |
205 |
PRBool mOutlineScaled; |
205 |
PRBool mOutlineScaled; |
206 |
nsVoidArray mScaledFonts; |
206 |
nsVoidArray mScaledFonts; |
207 |
#ifdef USE_FREETYPE |
207 |
#ifdef MOZ_ENABLE_FREETYPE2 |
208 |
nsFreeTypeFace *mFreeTypeFaceID; |
208 |
nsFreeTypeFace *mFreeTypeFaceID; |
209 |
#endif /* USE_FREETYPE */ |
209 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
210 |
}; |
210 |
}; |
211 |
|
211 |
|
212 |
struct nsFontStyleXlib |
212 |
struct nsFontStyleXlib |
Lines 289-297
Link Here
|
289 |
virtual XFontStruct *GetXFontStruct(void); |
289 |
virtual XFontStruct *GetXFontStruct(void); |
290 |
virtual nsXFont *GetXFont(void); |
290 |
virtual nsXFont *GetXFont(void); |
291 |
virtual PRBool GetXFontIs10646(void); |
291 |
virtual PRBool GetXFontIs10646(void); |
292 |
#ifdef USE_FREETYPE |
292 |
#ifdef MOZ_ENABLE_FREETYPE2 |
293 |
virtual PRBool IsFreeTypeFont(void); |
293 |
virtual PRBool IsFreeTypeFont(void); |
294 |
#endif /* USE_FREETYPE */ |
294 |
#endif /* MOZ_ENABLE_FREETYPE2 */ |
295 |
virtual int GetWidth(const PRUnichar* aString, PRUint32 aLength) = 0; |
295 |
virtual int GetWidth(const PRUnichar* aString, PRUint32 aLength) = 0; |
296 |
virtual int DrawString(nsRenderingContextXlib *aContext, |
296 |
virtual int DrawString(nsRenderingContextXlib *aContext, |
297 |
nsIDrawingSurfaceXlib *aSurface, nscoord aX, |
297 |
nsIDrawingSurfaceXlib *aSurface, nscoord aX, |
Lines 476-482
Link Here
|
476 |
* GDK/GTK+ includes which are not available in Xlib builds (fix is to remove |
476 |
* GDK/GTK+ includes which are not available in Xlib builds (fix is to remove |
477 |
* the GDK/GTK+ dependicy from the code in gfx/src/x11shared/ ...) |
477 |
* the GDK/GTK+ dependicy from the code in gfx/src/x11shared/ ...) |
478 |
*/ |
478 |
*/ |
479 |
#ifndef USE_FREETYPE |
479 |
#ifndef MOZ_ENABLE_FREETYPE2 |
480 |
/* |
480 |
/* |
481 |
* Defines for the TrueType codepage bits. |
481 |
* Defines for the TrueType codepage bits. |
482 |
* Used as a hint for the languages supported in a TrueType font. |
482 |
* Used as a hint for the languages supported in a TrueType font. |
Lines 525-531
Link Here
|
525 |
#define TT_OS2_CPR2_ARABIC_708 (0x20000000) /* Arabic; ASMO 708 */ |
525 |
#define TT_OS2_CPR2_ARABIC_708 (0x20000000) /* Arabic; ASMO 708 */ |
526 |
#define TT_OS2_CPR2_WE_LATIN1 (0x40000000) /* WE/Latin 1 */ |
526 |
#define TT_OS2_CPR2_WE_LATIN1 (0x40000000) /* WE/Latin 1 */ |
527 |
#define TT_OS2_CPR2_US (0x80000000) /* US */ |
527 |
#define TT_OS2_CPR2_US (0x80000000) /* US */ |
528 |
#endif /* !USE_FREETYPE */ |
528 |
#endif /* !MOZ_ENABLE_FREETYPE2 */ |
529 |
|
529 |
|
530 |
#endif /* !nsFontMetricsXlib_h__ */ |
530 |
#endif /* !nsFontMetricsXlib_h__ */ |
531 |
|
531 |
|
532 |
-- gfx/src/nsRenderingContextImpl.h |
532 |
++ gfx/src/nsRenderingContextImpl.h |
Lines 138-143
Link Here
|
138 |
NS_IMETHOD DrawScaledImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsRect * aDestRect); |
138 |
NS_IMETHOD DrawScaledImage(imgIContainer *aImage, const nsRect * aSrcRect, const nsRect * aDestRect); |
139 |
NS_IMETHOD DrawTile(imgIContainer *aImage, nscoord aXOffset, nscoord aYOffset, const nsRect * aTargetRect); |
139 |
NS_IMETHOD DrawTile(imgIContainer *aImage, nscoord aXOffset, nscoord aYOffset, const nsRect * aTargetRect); |
140 |
|
140 |
|
|
|
141 |
NS_IMETHOD GetClusterInfo(const PRUnichar *aText, |
142 |
PRUint32 aLength, |
143 |
PRUint32 *aClusterStarts); |
144 |
NS_IMETHOD GetPosition(const PRUnichar *aText, |
145 |
PRUint32 aLength, |
146 |
nscoord aCoord, |
147 |
PRUint32 &aInx); |
148 |
NS_IMETHOD GetRangeWidth(const PRUnichar *aText, |
149 |
PRUint32 aLength, |
150 |
PRUint32 aStart, |
151 |
PRUint32 aEnd, |
152 |
PRUint32 &aWidth); |
153 |
|
141 |
protected: |
154 |
protected: |
142 |
virtual ~nsRenderingContextImpl(); |
155 |
virtual ~nsRenderingContextImpl(); |
143 |
|
156 |
|
144 |
-- gfx/gfx-config.h |
157 |
++ gfx/gfx-config.h |
Line 0
Link Here
|
0 |
-- htmlparser/src/nsParser.cpp |
1 |
/* gfx/gfx-config.h. Generated automatically by configure. */ |
|
|
2 |
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- |
3 |
* |
4 |
* The contents of this file are subject to the Mozilla Public |
5 |
* License Version 1.1 (the "License"); you may not use this file |
6 |
* except in compliance with the License. You may obtain a copy of |
7 |
* the License at http://www.mozilla.org/MPL/ |
8 |
* |
9 |
* Software distributed under the License is distributed on an "AS |
10 |
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
11 |
* implied. See the License for the specific language governing |
12 |
* rights and limitations under the License. |
13 |
* |
14 |
* The Original Code is mozilla.org code. |
15 |
* |
16 |
* The Initial Developer of the Original Code is Netscape |
17 |
* Communications Corporation. Portions created by Netscape are |
18 |
* Copyright (C) 2003 Netscape Communications Corporation. |
19 |
* All Rights Reserved. |
20 |
* |
21 |
* Contributor(s): |
22 |
* |
23 |
*/ |
24 |
#ifndef _GFX_CONFIG_H_ |
25 |
#define _GFX_CONFIG_H_ |
26 |
|
27 |
/* Define if freetype support is enabled */ |
28 |
#define MOZ_ENABLE_FREETYPE2 1 |
29 |
|
30 |
#endif /* _GFX_CONFIG_H_ */ |
31 |
|
|
|
32 |
++ htmlparser/src/nsParser.cpp |
Lines 2565-2585
Link Here
|
2565 |
nsresult rv = NS_OK; |
2565 |
nsresult rv = NS_OK; |
2566 |
|
2566 |
|
2567 |
if(eOnStart==mParserContext->mStreamListenerState) { |
2567 |
if(eOnStart==mParserContext->mStreamListenerState) { |
2568 |
nsAutoString temp; |
2568 |
//Everybody can live with an empty input stream, so just resume parsing. |
2569 |
|
|
|
2570 |
//If you're here, then OnDataAvailable() never got called. |
2571 |
//Prior to necko, we never dealt with this case, but the problem may have existed. |
2572 |
//What we'll do (for now at least) is construct a blank HTML document. |
2573 |
if (!mParserContext->mMimeType.Equals(NS_LITERAL_CSTRING(kPlainTextContentType))) |
2574 |
{ |
2575 |
temp.Assign(NS_LITERAL_STRING("<html><body></body></html>")); |
2576 |
} |
2577 |
// XXX: until bug #108067 has been fixed we must ensure that *something* |
2578 |
// is in the scanner! so, for now just put in a single space. |
2579 |
else { |
2580 |
temp.Assign(NS_LITERAL_STRING(" ")); |
2581 |
} |
2582 |
mParserContext->mScanner->Append(temp); |
2583 |
rv = ResumeParse(PR_TRUE,PR_TRUE); |
2569 |
rv = ResumeParse(PR_TRUE,PR_TRUE); |
2584 |
} |
2570 |
} |
2585 |
|
2571 |
|
2586 |
-- layout/html/base/src/nsTextFrame.cpp |
2572 |
++ layout/html/base/src/nsTextFrame.cpp |
Lines 2339-2344
Link Here
|
2339 |
#endif |
2339 |
#endif |
2340 |
sdptr = sdptr->mNext; |
2340 |
sdptr = sdptr->mNext; |
2341 |
} |
2341 |
} |
|
|
2342 |
|
2343 |
/* |
2344 |
* Text is drawn by drawing the entire string every time, but |
2345 |
* using clip regions to control which part of the text is shown |
2346 |
* (selected or unselected.) We do this because you can't |
2347 |
* assume that the layout of a part of text will be the same |
2348 |
* when it's drawn apart from the entire string. This is true |
2349 |
* in languages like arabic, where shaping affects entire words. |
2350 |
* Simply put: length("abcd") != length("ab") + length("cd") in |
2351 |
* some languages. |
2352 |
*/ |
2353 |
|
2354 |
// See if this rendering backend supports getting cluster |
2355 |
// information. |
2356 |
PRUint32 clusterHint = 0; |
2357 |
aRenderingContext.GetHints(clusterHint); |
2358 |
clusterHint &= NS_RENDERING_HINT_TEXT_CLUSTERS; |
2359 |
|
2342 |
//while we have substrings... |
2360 |
//while we have substrings... |
2343 |
//PRBool drawn = PR_FALSE; |
2361 |
//PRBool drawn = PR_FALSE; |
2344 |
DrawSelectionIterator iter(content, details,text,(PRUint32)textLength,aTextStyle, selectionValue, aPresContext, mStyleContext); |
2362 |
DrawSelectionIterator iter(content, details,text,(PRUint32)textLength,aTextStyle, selectionValue, aPresContext, mStyleContext); |
Lines 2361-2397
Link Here
|
2361 |
nscolor currentBKColor; |
2379 |
nscolor currentBKColor; |
2362 |
PRBool isCurrentBKColorTransparent; |
2380 |
PRBool isCurrentBKColorTransparent; |
2363 |
|
2381 |
|
2364 |
#ifdef IBMBIDI |
2382 |
if (currentlength > 0) |
2365 |
if (currentlength > 0 |
|
|
2366 |
&& NS_SUCCEEDED(aRenderingContext.GetWidth(currenttext, currentlength,newWidth)))//ADJUST FOR CHAR SPACING |
2367 |
{ |
2383 |
{ |
2368 |
|
2384 |
if (clusterHint) { |
2369 |
if (isRightToLeftOnBidiPlatform) |
2385 |
PRUint32 tmpWidth; |
2370 |
currentX -= newWidth; |
2386 |
rv = aRenderingContext.GetRangeWidth(text, textLength, currenttext - text, |
2371 |
#else // not IBMBIDI |
2387 |
(currenttext - text) + currentlength, |
2372 |
if (NS_SUCCEEDED(aRenderingContext.GetWidth(currenttext, currentlength,newWidth)))//ADJUST FOR CHAR SPACING |
2388 |
tmpWidth); |
2373 |
{ |
2389 |
newWidth = nscoord(tmpWidth); |
2374 |
#endif |
2390 |
} |
2375 |
if (iter.CurrentBackGroundColor(currentBKColor, &isCurrentBKColorTransparent) && !isPaginated) |
2391 |
else { |
2376 |
{//DRAW RECT HERE!!! |
2392 |
rv = aRenderingContext.GetWidth(currenttext, currentlength,newWidth); //ADJUST FOR CHAR SPACING |
2377 |
if (!isCurrentBKColorTransparent) { |
2393 |
} |
2378 |
aRenderingContext.SetColor(currentBKColor); |
2394 |
if (NS_SUCCEEDED(rv)) { |
2379 |
aRenderingContext.FillRect(currentX, dy, newWidth, mRect.height); |
2395 |
if (isRightToLeftOnBidiPlatform) |
|
|
2396 |
currentX -= newWidth; |
2397 |
if (iter.CurrentBackGroundColor(currentBKColor, &isCurrentBKColorTransparent) && !isPaginated) |
2398 |
{//DRAW RECT HERE!!! |
2399 |
if (!isCurrentBKColorTransparent) { |
2400 |
aRenderingContext.SetColor(currentBKColor); |
2401 |
aRenderingContext.FillRect(currentX, dy, newWidth, mRect.height); |
2402 |
} |
2403 |
currentFGColor = EnsureDifferentColors(currentFGColor, currentBKColor); |
2380 |
} |
2404 |
} |
2381 |
currentFGColor = EnsureDifferentColors(currentFGColor, currentBKColor); |
2405 |
} |
|
|
2406 |
else { |
2407 |
newWidth = 0; |
2382 |
} |
2408 |
} |
2383 |
} |
2409 |
} |
2384 |
else |
2410 |
else { |
2385 |
newWidth =0; |
2411 |
newWidth = 0; |
2386 |
|
2412 |
} |
|
|
2413 |
|
2414 |
aRenderingContext.PushState(); |
2415 |
|
2416 |
nsRect rect(currentX, dy, newWidth, mRect.height); |
2417 |
PRBool ignore; |
2418 |
aRenderingContext.SetClipRect(rect, nsClipCombine_kIntersect, |
2419 |
ignore); |
2420 |
|
2387 |
if (isPaginated && !iter.IsBeforeOrAfter()) { |
2421 |
if (isPaginated && !iter.IsBeforeOrAfter()) { |
2388 |
aRenderingContext.SetColor(nsCSSRendering::TransformColor(aTextStyle.mColor->mColor,canDarkenColor)); |
2422 |
aRenderingContext.SetColor(nsCSSRendering::TransformColor(aTextStyle.mColor->mColor,canDarkenColor)); |
2389 |
aRenderingContext.DrawString(currenttext, currentlength, currentX, dy + mAscent); |
2423 |
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy + mAscent); |
2390 |
} else if (!isPaginated) { |
2424 |
} else if (!isPaginated) { |
2391 |
aRenderingContext.SetColor(nsCSSRendering::TransformColor(currentFGColor,canDarkenColor)); |
2425 |
aRenderingContext.SetColor(nsCSSRendering::TransformColor(currentFGColor,canDarkenColor)); |
2392 |
aRenderingContext.DrawString(currenttext, currentlength, currentX, dy + mAscent); |
2426 |
aRenderingContext.DrawString(text, PRUint32(textLength), dx, dy + mAscent); |
2393 |
} |
2427 |
} |
2394 |
|
2428 |
|
|
|
2429 |
aRenderingContext.PopState(ignore); |
2430 |
|
2395 |
#ifdef IBMBIDI |
2431 |
#ifdef IBMBIDI |
2396 |
if (!isRightToLeftOnBidiPlatform) |
2432 |
if (!isRightToLeftOnBidiPlatform) |
2397 |
#endif |
2433 |
#endif |
Lines 2932-2942
Link Here
|
2932 |
if (0 != textLength) { |
2968 |
if (0 != textLength) { |
2933 |
#ifdef IBMBIDI |
2969 |
#ifdef IBMBIDI |
2934 |
PRBool bidiEnabled; |
2970 |
PRBool bidiEnabled; |
|
|
2971 |
PRBool isBidiSystem =PR_FALSE; |
2972 |
PRBool isRightToLeftOnBidiPlatform = PR_FALSE; |
2935 |
PRUint8 level = 0; |
2973 |
PRUint8 level = 0; |
|
|
2974 |
PRUint32 hints = 0; |
2975 |
aRenderingContext.GetHints(hints); |
2976 |
PRBool paintCharByChar = (0 == hints & NS_RENDERING_HINT_SPACING_RUNS) && |
2977 |
((0 != aTextStyle.mLetterSpacing) || |
2978 |
(0 != aTextStyle.mWordSpacing) || |
2979 |
aTextStyle.mJustifying); |
2936 |
nsCharType charType = eCharType_LeftToRight; |
2980 |
nsCharType charType = eCharType_LeftToRight; |
2937 |
aPresContext->GetBidiEnabled(&bidiEnabled); |
2981 |
aPresContext->GetBidiEnabled(&bidiEnabled); |
2938 |
|
2982 |
|
2939 |
if (bidiEnabled) { |
2983 |
if (bidiEnabled) { |
|
|
2984 |
isBidiSystem = aPresContext->IsBidiSystem(); |
2940 |
nsBidiPresUtils* bidiUtils; |
2985 |
nsBidiPresUtils* bidiUtils; |
2941 |
aPresContext->GetBidiUtils(&bidiUtils); |
2986 |
aPresContext->GetBidiUtils(&bidiUtils); |
2942 |
|
2987 |
|
Lines 2948-2956
Link Here
|
2948 |
#ifdef DEBUG |
2993 |
#ifdef DEBUG |
2949 |
PRInt32 rememberTextLength = textLength; |
2994 |
PRInt32 rememberTextLength = textLength; |
2950 |
#endif |
2995 |
#endif |
2951 |
// Since we paint char by char, handle the text like on non-bidi platform |
2996 |
isRightToLeftOnBidiPlatform = (!paintCharByChar && |
|
|
2997 |
isBidiSystem && |
2998 |
(eCharType_RightToLeft == charType || |
2999 |
eCharType_RightToLeftArabic == charType)); |
3000 |
if (isRightToLeftOnBidiPlatform) { |
3001 |
// indicate that the platform should use its native |
3002 |
// capabilities to reorder the text with right-to-left |
3003 |
// base direction |
3004 |
aRenderingContext.SetRightToLeftText(PR_TRUE); |
3005 |
} |
3006 |
// If we will be painting char by char, handle the text like on non-bidi platform |
2952 |
bidiUtils->ReorderUnicodeText(text, textLength, charType, |
3007 |
bidiUtils->ReorderUnicodeText(text, textLength, charType, |
2953 |
level & 1, PR_FALSE); |
3008 |
level & 1, (paintCharByChar) ? PR_FALSE : isBidiSystem); |
2954 |
NS_ASSERTION(rememberTextLength == textLength, "Bidi formatting changed text length"); |
3009 |
NS_ASSERTION(rememberTextLength == textLength, "Bidi formatting changed text length"); |
2955 |
} |
3010 |
} |
2956 |
} |
3011 |
} |
Lines 2992-2998
Link Here
|
2992 |
sdptr->mStart = ip[sdptr->mStart] - mContentOffset; |
3047 |
sdptr->mStart = ip[sdptr->mStart] - mContentOffset; |
2993 |
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset; |
3048 |
sdptr->mEnd = ip[sdptr->mEnd] - mContentOffset; |
2994 |
#ifdef IBMBIDI |
3049 |
#ifdef IBMBIDI |
2995 |
AdjustSelectionPointsForBidi(sdptr, textLength, CHARTYPE_IS_RTL(charType), level & 1, PR_FALSE); |
3050 |
AdjustSelectionPointsForBidi(sdptr, textLength, |
|
|
3051 |
CHARTYPE_IS_RTL(charType), level & 1, |
3052 |
(paintCharByChar) ? PR_FALSE : isBidiSystem); |
2996 |
#endif |
3053 |
#endif |
2997 |
sdptr = sdptr->mNext; |
3054 |
sdptr = sdptr->mNext; |
2998 |
} |
3055 |
} |
Lines 3002-3007
Link Here
|
3002 |
{ |
3059 |
{ |
3003 |
nscoord currentX = dx; |
3060 |
nscoord currentX = dx; |
3004 |
nsTextDimensions newDimensions;//temp |
3061 |
nsTextDimensions newDimensions;//temp |
|
|
3062 |
#ifdef IBMBIDI |
3063 |
if (isRightToLeftOnBidiPlatform) |
3064 |
{ |
3065 |
nsTextDimensions frameDimensions; |
3066 |
GetTextDimensions(aRenderingContext, aTextStyle, text, |
3067 |
(PRInt32)textLength, |
3068 |
&frameDimensions); |
3069 |
currentX = dx + frameDimensions.width; |
3070 |
} |
3071 |
#endif |
3005 |
while (!iter.IsDone()) |
3072 |
while (!iter.IsDone()) |
3006 |
{ |
3073 |
{ |
3007 |
PRUnichar *currenttext = iter.CurrentTextUnicharPtr(); |
3074 |
PRUnichar *currenttext = iter.CurrentTextUnicharPtr(); |
Lines 3013-3018
Link Here
|
3013 |
GetTextDimensions(aRenderingContext,aTextStyle,currenttext, (PRInt32)currentlength,&newDimensions); |
3080 |
GetTextDimensions(aRenderingContext,aTextStyle,currenttext, (PRInt32)currentlength,&newDimensions); |
3014 |
if (newDimensions.width) |
3081 |
if (newDimensions.width) |
3015 |
{ |
3082 |
{ |
|
|
3083 |
#ifdef IBMBIDI |
3084 |
if (isRightToLeftOnBidiPlatform) |
3085 |
currentX -= newDimensions.width; |
3086 |
#endif |
3016 |
if (iter.CurrentBackGroundColor(currentBKColor, &isCurrentBKColorTransparent)) |
3087 |
if (iter.CurrentBackGroundColor(currentBKColor, &isCurrentBKColorTransparent)) |
3017 |
{//DRAW RECT HERE!!! |
3088 |
{//DRAW RECT HERE!!! |
3018 |
if (!isCurrentBKColorTransparent) { |
3089 |
if (!isCurrentBKColorTransparent) { |
Lines 3035-3040
Link Here
|
3035 |
dy, width, details); |
3106 |
dy, width, details); |
3036 |
} |
3107 |
} |
3037 |
|
3108 |
|
|
|
3109 |
#ifdef IBMBIDI |
3110 |
if (!isRightToLeftOnBidiPlatform) |
3111 |
#endif |
3038 |
//increment twips X start but remember to get ready for next draw by reducing current x by letter spacing amount |
3112 |
//increment twips X start but remember to get ready for next draw by reducing current x by letter spacing amount |
3039 |
currentX+=newDimensions.width;// + aTextStyle.mLetterSpacing; |
3113 |
currentX+=newDimensions.width;// + aTextStyle.mLetterSpacing; |
3040 |
|
3114 |
|
Lines 3057-3062
Link Here
|
3057 |
delete details; |
3131 |
delete details; |
3058 |
} |
3132 |
} |
3059 |
} |
3133 |
} |
|
|
3134 |
#ifdef IBMBIDI |
3135 |
if (isRightToLeftOnBidiPlatform) { |
3136 |
// indicate that future text should not be reordered with |
3137 |
// right-to-left base direction |
3138 |
aRenderingContext.SetRightToLeftText(PR_FALSE); |
3139 |
} |
3140 |
#endif |
3060 |
} |
3141 |
} |
3061 |
} |
3142 |
} |
3062 |
|
3143 |
|
Lines 3429-3434
Link Here
|
3429 |
PRInt32 textWidth = 0; |
3510 |
PRInt32 textWidth = 0; |
3430 |
PRUnichar* text = paintBuffer.mBuffer; |
3511 |
PRUnichar* text = paintBuffer.mBuffer; |
3431 |
|
3512 |
|
|
|
3513 |
// See if the font backend will do all the hard work for us. |
3514 |
PRUint32 clusterHint = 0; |
3515 |
acx->GetHints(clusterHint); |
3516 |
clusterHint &= NS_RENDERING_HINT_TEXT_CLUSTERS; |
3517 |
if (clusterHint) { |
3518 |
PRUint32 tmpIndx = indx; |
3519 |
acx->GetPosition(text, textLength, aPoint.x - origin.x, tmpIndx); |
3520 |
indx = tmpIndx; |
3521 |
} |
3522 |
else { |
3432 |
#ifdef IBMBIDI |
3523 |
#ifdef IBMBIDI |
3433 |
PRBool getReversedPos = PR_FALSE; |
3524 |
PRBool getReversedPos = PR_FALSE; |
3434 |
PRUint8 level = 0; |
3525 |
PRUint8 level = 0; |
Lines 3465-3470
Link Here
|
3465 |
indx++; |
3556 |
indx++; |
3466 |
} |
3557 |
} |
3467 |
} |
3558 |
} |
|
|
3559 |
} |
3468 |
|
3560 |
|
3469 |
aContentOffset = indx + mContentOffset; |
3561 |
aContentOffset = indx + mContentOffset; |
3470 |
//reusing wordBufMem |
3562 |
//reusing wordBufMem |
Lines 3916-3921
Link Here
|
3916 |
} |
4008 |
} |
3917 |
PRInt32* ip = indexBuffer.mBuffer; |
4009 |
PRInt32* ip = indexBuffer.mBuffer; |
3918 |
|
4010 |
|
|
|
4011 |
nsAutoIndexBuffer clusterBuffer; |
4012 |
rv = clusterBuffer.GrowTo(mContentLength + 1); |
4013 |
if (NS_FAILED(rv)) { |
4014 |
return rv; |
4015 |
} |
4016 |
|
3919 |
PRInt32 textLength; |
4017 |
PRInt32 textLength; |
3920 |
nsresult result(NS_ERROR_FAILURE); |
4018 |
nsresult result(NS_ERROR_FAILURE); |
3921 |
aPos->mResultContent = mContent;//do this right off |
4019 |
aPos->mResultContent = mContent;//do this right off |
Lines 3981-3988
Link Here
|
3981 |
aPos->mContentOffset = 0; |
4079 |
aPos->mContentOffset = 0; |
3982 |
PRInt32 i; |
4080 |
PRInt32 i; |
3983 |
|
4081 |
|
|
|
4082 |
// Fill in the cluster hint information, if it's available. |
4083 |
nsCOMPtr<nsIRenderingContext> acx; |
4084 |
PRUint32 clusterHint = 0; |
4085 |
|
4086 |
nsIPresShell *shell = aPresContext->GetPresShell(); |
4087 |
if (shell) { |
4088 |
shell->CreateRenderingContext(this, getter_AddRefs(acx)); |
4089 |
|
4090 |
// Find the font metrics for this text |
4091 |
SetFontFromStyle(acx, mStyleContext); |
4092 |
|
4093 |
if (acx) |
4094 |
acx->GetHints(clusterHint); |
4095 |
clusterHint &= NS_RENDERING_HINT_TEXT_CLUSTERS; |
4096 |
} |
4097 |
|
4098 |
if (clusterHint) { |
4099 |
acx->GetClusterInfo(paintBuffer.mBuffer, (PRUint32)textLength, (PRUint32 *)clusterBuffer.mBuffer); |
4100 |
} |
4101 |
else { |
4102 |
memset(clusterBuffer.mBuffer, 1, sizeof(PRInt32) * textLength); |
4103 |
} |
4104 |
|
3984 |
for (i = aPos->mStartOffset -1 - mContentOffset; i >=0; i--){ |
4105 |
for (i = aPos->mStartOffset -1 - mContentOffset; i >=0; i--){ |
3985 |
if ((ip[i] < ip[aPos->mStartOffset - mContentOffset]) && |
4106 |
if ((ip[i] < ip[aPos->mStartOffset - mContentOffset]) && |
|
|
4107 |
(clusterBuffer.mBuffer[ip[i] - mContentOffset]) && |
3986 |
(! IS_LOW_SURROGATE(paintBuffer.mBuffer[ip[i]-mContentOffset]))) |
4108 |
(! IS_LOW_SURROGATE(paintBuffer.mBuffer[ip[i]-mContentOffset]))) |
3987 |
{ |
4109 |
{ |
3988 |
aPos->mContentOffset = i + mContentOffset; |
4110 |
aPos->mContentOffset = i + mContentOffset; |
Lines 4033-4046
Link Here
|
4033 |
PRInt32 i; |
4155 |
PRInt32 i; |
4034 |
aPos->mContentOffset = mContentLength; |
4156 |
aPos->mContentOffset = mContentLength; |
4035 |
|
4157 |
|
4036 |
for (i = aPos->mStartOffset +1 - mContentOffset; i <= mContentLength; i++){ |
4158 |
// Fill in the cluster hint information, if it's available. |
|
|
4159 |
nsCOMPtr<nsIRenderingContext> acx; |
4160 |
PRUint32 clusterHint = 0; |
4161 |
|
4162 |
nsIPresShell *shell = aPresContext->GetPresShell(); |
4163 |
if (shell) { |
4164 |
shell->CreateRenderingContext(this, getter_AddRefs(acx)); |
4165 |
|
4166 |
// Find the font metrics for this text |
4167 |
SetFontFromStyle(acx, mStyleContext); |
4168 |
|
4169 |
if (acx) |
4170 |
acx->GetHints(clusterHint); |
4171 |
clusterHint &= NS_RENDERING_HINT_TEXT_CLUSTERS; |
4172 |
} |
4173 |
|
4174 |
if (clusterHint) { |
4175 |
acx->GetClusterInfo(paintBuffer.mBuffer, (PRUint32)textLength, (PRUint32 *)clusterBuffer.mBuffer); |
4176 |
} |
4177 |
else { |
4178 |
memset(clusterBuffer.mBuffer, 1, sizeof(PRInt32) * textLength); |
4179 |
} |
4180 |
|
4181 |
for (i = aPos->mStartOffset - mContentOffset; i <= mContentLength; i++) { |
4037 |
if ((ip[i] > ip[aPos->mStartOffset - mContentOffset]) && |
4182 |
if ((ip[i] > ip[aPos->mStartOffset - mContentOffset]) && |
4038 |
(! IS_LOW_SURROGATE(paintBuffer.mBuffer[ip[i]-mContentOffset]))) |
4183 |
((i == mContentLength) || |
4039 |
{ |
4184 |
(!IS_LOW_SURROGATE(paintBuffer.mBuffer[ip[i] - mContentOffset])) && |
|
|
4185 |
(clusterBuffer.mBuffer[ip[i] - mContentOffset]))) { |
4040 |
aPos->mContentOffset = i + mContentOffset; |
4186 |
aPos->mContentOffset = i + mContentOffset; |
4041 |
break; |
4187 |
break; |
4042 |
} |
4188 |
} |
4043 |
} |
4189 |
} |
|
|
4190 |
|
4044 |
#ifdef SUNCTL |
4191 |
#ifdef SUNCTL |
4045 |
static NS_DEFINE_CID(kLECID, NS_ULE_CID); |
4192 |
static NS_DEFINE_CID(kLECID, NS_ULE_CID); |
4046 |
|
4193 |
|
4047 |
-- layout/html/document/src/html.css |
4194 |
++ layout/html/document/src/html.css |
Lines 441-446
Link Here
|
441 |
/* PRINT ONLY rules follow */ |
441 |
/* PRINT ONLY rules follow */ |
442 |
@media print { |
442 |
@media print { |
443 |
|
443 |
|
|
|
444 |
body { |
445 |
font-family: times, serif; |
446 |
} |
447 |
tt, pre { |
448 |
font-family: courier, monospace; |
449 |
} |
450 |
|
444 |
marquee { -moz-binding: none; } |
451 |
marquee { -moz-binding: none; } |
445 |
|
452 |
|
446 |
*|*:-moz-any-link img, img[usemap], object[usemap], |
453 |
*|*:-moz-any-link img, img[usemap], object[usemap], |
447 |
-- widget/public/nsGUIEvent.h |
454 |
++ widget/public/nsGUIEvent.h |
Lines 22-27
Link Here
|
22 |
* Contributor(s): |
22 |
* Contributor(s): |
23 |
* Makoto Kato <m_kato@ga2.so-net.ne.jp> |
23 |
* Makoto Kato <m_kato@ga2.so-net.ne.jp> |
24 |
* Dean Tessman <dean_tessman@hotmail.com> |
24 |
* Dean Tessman <dean_tessman@hotmail.com> |
|
|
25 |
* Andrew Wellington <proton@wiretapped.net> |
26 |
* Graham Dennis <u3952328@anu.edu.au> |
25 |
* |
27 |
* |
26 |
* Alternatively, the contents of this file may be used under the terms of |
28 |
* Alternatively, the contents of this file may be used under the terms of |
27 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
29 |
* either the GNU General Public License Version 2 or later (the "GPL"), or |
Lines 818-823
Link Here
|
818 |
nsDragDropEventStatus_eDrop |
820 |
nsDragDropEventStatus_eDrop |
819 |
}; |
821 |
}; |
820 |
|
822 |
|
|
|
823 |
/** |
824 |
* Event status for an extended mouse button event |
825 |
* The event (called clickCount) is type PRUint32: |
826 |
* hence this struct will be of the same size |
827 |
*/ |
828 |
typedef struct { |
829 |
PRUint16 realClickCount; |
830 |
PRUint8 button; |
831 |
PRUint8 event; // eg button went up / down |
832 |
} nsExtendedMouseEventStatus; |
833 |
|
834 |
enum { |
835 |
/// different types of events |
836 |
nsExtendedMouseEventStatus_up, |
837 |
nsExtendedMouseEventStatus_down |
838 |
}; |
821 |
|
839 |
|
822 |
#define NS_IS_MOUSE_EVENT(evnt) \ |
840 |
#define NS_IS_MOUSE_EVENT(evnt) \ |
823 |
(((evnt)->message == NS_MOUSE_LEFT_BUTTON_DOWN) || \ |
841 |
(((evnt)->message == NS_MOUSE_LEFT_BUTTON_DOWN) || \ |
824 |
-- widget/src/gtk/nsGtkEventHandler.cpp |
842 |
++ widget/src/gtk/nsGtkEventHandler.cpp |
Lines 292-298
Link Here
|
292 |
case GDK_KP_Add: |
292 |
case GDK_KP_Add: |
293 |
return '+'; |
293 |
return '+'; |
294 |
case GDK_KP_Separator: |
294 |
case GDK_KP_Separator: |
295 |
return '|'; |
295 |
return ','; |
296 |
case GDK_KP_Subtract: |
296 |
case GDK_KP_Subtract: |
297 |
return '-'; |
297 |
return '-'; |
298 |
case GDK_KP_Decimal: |
298 |
case GDK_KP_Decimal: |
299 |
-- widget/src/gtk2/Makefile.in |
299 |
++ widget/src/gtk2/Makefile.in |
Lines 41-46
Link Here
|
41 |
dom \ |
41 |
dom \ |
42 |
necko \ |
42 |
necko \ |
43 |
uconv \ |
43 |
uconv \ |
|
|
44 |
intl \ |
44 |
gtkxtbin \ |
45 |
gtkxtbin \ |
45 |
xremoteservice |
46 |
xremoteservice |
46 |
|
47 |
|
47 |
-- widget/src/gtk2/nsWindow.cpp |
48 |
++ widget/src/gtk2/nsWindow.cpp |
Lines 1396-1401
Link Here
|
1396 |
return; |
1396 |
return; |
1397 |
|
1397 |
|
1398 |
switch (aEvent->button) { |
1398 |
switch (aEvent->button) { |
|
|
1399 |
case 1: |
1400 |
eventType = NS_MOUSE_LEFT_BUTTON_DOWN; |
1401 |
break; |
1399 |
case 2: |
1402 |
case 2: |
1400 |
eventType = NS_MOUSE_MIDDLE_BUTTON_DOWN; |
1403 |
eventType = NS_MOUSE_MIDDLE_BUTTON_DOWN; |
1401 |
break; |
1404 |
break; |
Lines 1403-1409
Link Here
|
1403 |
eventType = NS_MOUSE_RIGHT_BUTTON_DOWN; |
1406 |
eventType = NS_MOUSE_RIGHT_BUTTON_DOWN; |
1404 |
break; |
1407 |
break; |
1405 |
default: |
1408 |
default: |
1406 |
eventType = NS_MOUSE_LEFT_BUTTON_DOWN; |
|
|
1407 |
break; |
1409 |
break; |
1408 |
} |
1410 |
} |
1409 |
|
1411 |
|
1410 |
-- widget/src/gtk2/nsWidgetFactory.cpp |
1412 |
++ widget/src/gtk2/nsWidgetFactory.cpp |
Lines 132-138
Link Here
|
132 |
} |
132 |
} |
133 |
|
133 |
|
134 |
nsCOMPtr<nsIFilePicker> picker; |
134 |
nsCOMPtr<nsIFilePicker> picker; |
135 |
PRBool enabled = PR_FALSE; |
135 |
PRBool enabled = PR_TRUE; |
136 |
|
136 |
|
137 |
/* need pref fu */ |
137 |
/* need pref fu */ |
138 |
|
138 |
|
139 |
-- widget/src/gtk2/nsGtkKeyUtils.cpp |
139 |
++ widget/src/gtk2/nsGtkKeyUtils.cpp |
Lines 270-276
Link Here
|
270 |
case GDK_KP_Add: |
270 |
case GDK_KP_Add: |
271 |
return '+'; |
271 |
return '+'; |
272 |
case GDK_KP_Separator: |
272 |
case GDK_KP_Separator: |
273 |
return '|'; |
273 |
return ','; |
274 |
case GDK_KP_Subtract: |
274 |
case GDK_KP_Subtract: |
275 |
return '-'; |
275 |
return '-'; |
276 |
case GDK_KP_Decimal: |
276 |
case GDK_KP_Decimal: |
277 |
-- widget/src/gtk2/nsFilePicker.cpp |
277 |
++ widget/src/gtk2/nsFilePicker.cpp |
Lines 38-48
Link Here
|
38 |
#include <gtk/gtkwindow.h> |
38 |
#include <gtk/gtkwindow.h> |
39 |
#include <gtk/gtkdialog.h> |
39 |
#include <gtk/gtkdialog.h> |
40 |
#include <gtk/gtkstock.h> |
40 |
#include <gtk/gtkstock.h> |
|
|
41 |
#include <gtk/gtklabel.h> |
42 |
#include <gtk/gtkimage.h> |
43 |
#include <gtk/gtkhbox.h> |
44 |
#include <gtk/gtkmessagedialog.h> |
41 |
|
45 |
|
42 |
#include "nsIFileURL.h" |
46 |
#include "nsIFileURL.h" |
43 |
#include "nsIURI.h" |
47 |
#include "nsIURI.h" |
44 |
#include "nsIWidget.h" |
48 |
#include "nsIWidget.h" |
45 |
#include "nsILocalFile.h" |
49 |
#include "nsILocalFile.h" |
|
|
50 |
#include "nsIStringBundle.h" |
51 |
|
46 |
#include "nsArrayEnumerator.h" |
52 |
#include "nsArrayEnumerator.h" |
47 |
#include "nsVoidArray.h" |
53 |
#include "nsVoidArray.h" |
48 |
#include "nsMemory.h" |
54 |
#include "nsMemory.h" |
Lines 91-96
Link Here
|
91 |
typedef void (*_gtk_file_chooser_set_current_name_fn)(GtkFileChooser* chooser, const gchar* name); |
97 |
typedef void (*_gtk_file_chooser_set_current_name_fn)(GtkFileChooser* chooser, const gchar* name); |
92 |
typedef void (*_gtk_file_chooser_set_current_folder_fn)(GtkFileChooser* chooser, const gchar* folder); |
98 |
typedef void (*_gtk_file_chooser_set_current_folder_fn)(GtkFileChooser* chooser, const gchar* folder); |
93 |
typedef void (*_gtk_file_chooser_add_filter_fn)(GtkFileChooser* chooser, GtkFileFilter* filter); |
99 |
typedef void (*_gtk_file_chooser_add_filter_fn)(GtkFileChooser* chooser, GtkFileFilter* filter); |
|
|
100 |
typedef void (*_gtk_file_chooser_set_filter_fn)(GtkFileChooser* chooser, GtkFileFilter* filter); |
101 |
typedef GtkFileFilter* (*_gtk_file_chooser_get_filter_fn)(GtkFileChooser* chooser); |
102 |
typedef GSList* (*_gtk_file_chooser_list_filters_fn)(GtkFileChooser* chooser); |
94 |
typedef GtkFileFilter* (*_gtk_file_filter_new_fn)(); |
103 |
typedef GtkFileFilter* (*_gtk_file_filter_new_fn)(); |
95 |
typedef void (*_gtk_file_filter_add_pattern_fn)(GtkFileFilter* filter, const gchar* pattern); |
104 |
typedef void (*_gtk_file_filter_add_pattern_fn)(GtkFileFilter* filter, const gchar* pattern); |
96 |
typedef void (*_gtk_file_filter_set_name_fn)(GtkFileFilter* filter, const gchar* name); |
105 |
typedef void (*_gtk_file_filter_set_name_fn)(GtkFileFilter* filter, const gchar* name); |
Lines 103-108
Link Here
|
103 |
DECL_FUNC_PTR(gtk_file_chooser_set_current_name); |
112 |
DECL_FUNC_PTR(gtk_file_chooser_set_current_name); |
104 |
DECL_FUNC_PTR(gtk_file_chooser_set_current_folder); |
113 |
DECL_FUNC_PTR(gtk_file_chooser_set_current_folder); |
105 |
DECL_FUNC_PTR(gtk_file_chooser_add_filter); |
114 |
DECL_FUNC_PTR(gtk_file_chooser_add_filter); |
|
|
115 |
DECL_FUNC_PTR(gtk_file_chooser_set_filter); |
116 |
DECL_FUNC_PTR(gtk_file_chooser_get_filter); |
117 |
DECL_FUNC_PTR(gtk_file_chooser_list_filters); |
106 |
DECL_FUNC_PTR(gtk_file_filter_new); |
118 |
DECL_FUNC_PTR(gtk_file_filter_new); |
107 |
DECL_FUNC_PTR(gtk_file_filter_add_pattern); |
119 |
DECL_FUNC_PTR(gtk_file_filter_add_pattern); |
108 |
DECL_FUNC_PTR(gtk_file_filter_set_name); |
120 |
DECL_FUNC_PTR(gtk_file_filter_set_name); |
Lines 179-184
Link Here
|
179 |
GET_LIBGTK_FUNC(gtk_file_chooser_set_current_name); |
191 |
GET_LIBGTK_FUNC(gtk_file_chooser_set_current_name); |
180 |
GET_LIBGTK_FUNC(gtk_file_chooser_set_current_folder); |
192 |
GET_LIBGTK_FUNC(gtk_file_chooser_set_current_folder); |
181 |
GET_LIBGTK_FUNC(gtk_file_chooser_add_filter); |
193 |
GET_LIBGTK_FUNC(gtk_file_chooser_add_filter); |
|
|
194 |
GET_LIBGTK_FUNC(gtk_file_chooser_set_filter); |
195 |
GET_LIBGTK_FUNC(gtk_file_chooser_get_filter); |
196 |
GET_LIBGTK_FUNC(gtk_file_chooser_list_filters); |
182 |
GET_LIBGTK_FUNC(gtk_file_filter_new); |
197 |
GET_LIBGTK_FUNC(gtk_file_filter_new); |
183 |
GET_LIBGTK_FUNC(gtk_file_filter_add_pattern); |
198 |
GET_LIBGTK_FUNC(gtk_file_filter_add_pattern); |
184 |
GET_LIBGTK_FUNC(gtk_file_filter_set_name); |
199 |
GET_LIBGTK_FUNC(gtk_file_filter_set_name); |
Lines 272-277
Link Here
|
272 |
g_free(filename); |
287 |
g_free(filename); |
273 |
} |
288 |
} |
274 |
|
289 |
|
|
|
290 |
GtkFileFilter *filter = _gtk_file_chooser_get_filter (GTK_FILE_CHOOSER(file_chooser)); |
291 |
GSList *filter_list = _gtk_file_chooser_list_filters (GTK_FILE_CHOOSER(file_chooser)); |
292 |
|
293 |
mSelectedType = NS_STATIC_CAST(PRInt16, g_slist_index (filter_list, filter)); |
294 |
g_slist_free(filter_list); |
295 |
|
275 |
// Remember last used directory. |
296 |
// Remember last used directory. |
276 |
nsCOMPtr<nsILocalFile> file; |
297 |
nsCOMPtr<nsILocalFile> file; |
277 |
GetFile(getter_AddRefs(file)); |
298 |
GetFile(getter_AddRefs(file)); |
Lines 438-443
Link Here
|
438 |
return NS_ERROR_FAILURE; |
459 |
return NS_ERROR_FAILURE; |
439 |
} |
460 |
} |
440 |
|
461 |
|
|
|
462 |
PRBool |
463 |
confirm_overwrite_file (GtkWidget *parent, nsILocalFile* file) |
464 |
{ |
465 |
nsCOMPtr<nsIStringBundleService> sbs = do_GetService(NS_STRINGBUNDLE_CONTRACTID); |
466 |
nsCOMPtr<nsIStringBundle> bundle; |
467 |
nsresult rv = sbs->CreateBundle("chrome://global/locale/filepicker.properties", |
468 |
getter_AddRefs(bundle)); |
469 |
if (NS_FAILED(rv)) { |
470 |
return PR_FALSE; |
471 |
} |
472 |
|
473 |
nsAutoString leafName; |
474 |
file->GetLeafName(leafName); |
475 |
const PRUnichar *formatStrings[] = |
476 |
{ |
477 |
leafName.get() |
478 |
}; |
479 |
|
480 |
nsXPIDLString title, message; |
481 |
bundle->GetStringFromName(NS_LITERAL_STRING("confirmTitle").get(), |
482 |
getter_Copies(title)); |
483 |
bundle->FormatStringFromName(NS_LITERAL_STRING("confirmFileReplacing").get(), |
484 |
formatStrings, NS_ARRAY_LENGTH(formatStrings), |
485 |
getter_Copies(message)); |
486 |
|
487 |
GtkWidget *dialog; |
488 |
|
489 |
/* |
490 |
dialog = gtk_dialog_new_with_buttons (NS_ConvertUCS2toUTF8(title).get(), |
491 |
GTK_WINDOW (parent), |
492 |
GTK_DIALOG_MODAL, |
493 |
GTK_STOCK_YES, GTK_RESPONSE_YES, |
494 |
GTK_STOCK_NO, GTK_RESPONSE_NO, |
495 |
NULL); |
496 |
hbox = gtk_hbox_new (FALSE, 6); |
497 |
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 12); |
498 |
image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); |
499 |
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); |
500 |
gtk_box_pack_start (GTK_BOX (hbox), image, TRUE, TRUE, 0); |
501 |
|
502 |
label = gtk_label_new(NS_ConvertUCS2toUTF8(message).get()); |
503 |
gtk_label_set_selectable (GTK_LABEL (label), TRUE); |
504 |
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); |
505 |
gtk_widget_show_all (hbox); |
506 |
|
507 |
gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); |
508 |
gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), TRUE); |
509 |
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)), 6); |
510 |
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_NO); |
511 |
*/ |
512 |
dialog = gtk_message_dialog_new(GTK_WINDOW(parent), |
513 |
GTK_DIALOG_DESTROY_WITH_PARENT, |
514 |
GTK_MESSAGE_QUESTION, |
515 |
GTK_BUTTONS_YES_NO, |
516 |
NS_ConvertUTF16toUTF8(message).get()); |
517 |
gtk_window_set_title(GTK_WINDOW(dialog), NS_ConvertUTF16toUTF8(title).get()); |
518 |
|
519 |
PRBool result = (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES); |
520 |
|
521 |
gtk_widget_destroy (dialog); |
522 |
|
523 |
return result; |
524 |
} |
525 |
|
441 |
NS_IMETHODIMP |
526 |
NS_IMETHODIMP |
442 |
nsFilePicker::Show(PRInt16 *aReturn) |
527 |
nsFilePicker::Show(PRInt16 *aReturn) |
443 |
{ |
528 |
{ |
Lines 508-513
Link Here
|
508 |
} |
593 |
} |
509 |
|
594 |
|
510 |
_gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); |
595 |
_gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); |
|
|
596 |
|
597 |
// Set the initially selected filter |
598 |
if (mSelectedType == i) |
599 |
_gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(file_chooser), filter); |
511 |
} |
600 |
} |
512 |
|
601 |
|
513 |
gint response = gtk_dialog_run (GTK_DIALOG (file_chooser)); |
602 |
gint response = gtk_dialog_run (GTK_DIALOG (file_chooser)); |
Lines 516-529
Link Here
|
516 |
case GTK_RESPONSE_ACCEPT: |
605 |
case GTK_RESPONSE_ACCEPT: |
517 |
ReadValuesFromFileChooser(file_chooser); |
606 |
ReadValuesFromFileChooser(file_chooser); |
518 |
*aReturn = nsIFilePicker::returnOK; |
607 |
*aReturn = nsIFilePicker::returnOK; |
519 |
if (mMode == modeSave) { |
608 |
if (mMode == nsIFilePicker::modeSave) { |
520 |
nsCOMPtr<nsILocalFile> file; |
609 |
nsCOMPtr<nsILocalFile> file; |
521 |
GetFile(getter_AddRefs(file)); |
610 |
GetFile(getter_AddRefs(file)); |
522 |
if (file) { |
611 |
if (file) { |
523 |
PRBool exists = PR_FALSE; |
612 |
PRBool exists = PR_FALSE; |
524 |
file->Exists(&exists); |
613 |
file->Exists(&exists); |
525 |
if (exists) { |
614 |
if (exists) { |
526 |
*aReturn = nsIFilePicker::returnReplace; |
615 |
PRBool overwrite = confirm_overwrite_file (file_chooser, file); |
|
|
616 |
|
617 |
if (overwrite) { |
618 |
*aReturn = nsIFilePicker::returnReplace; |
619 |
} else { |
620 |
*aReturn = nsIFilePicker::returnCancel; |
621 |
} |
527 |
} |
622 |
} |
528 |
} |
623 |
} |
529 |
} |
624 |
} |
530 |
-- widget/src/gtk2/nsLookAndFeel.cpp |
625 |
++ widget/src/gtk2/nsLookAndFeel.cpp |
Lines 87-108
Link Here
|
87 |
// (except here at least TextSelectBackground and TextSelectForeground) |
87 |
// (except here at least TextSelectBackground and TextSelectForeground) |
88 |
// The CSS2 colors below are used. |
88 |
// The CSS2 colors below are used. |
89 |
case eColor_WindowBackground: |
89 |
case eColor_WindowBackground: |
90 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); |
90 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]); |
91 |
break; |
91 |
break; |
92 |
case eColor_WindowForeground: |
92 |
case eColor_WindowForeground: |
93 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); |
93 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]); |
94 |
break; |
94 |
break; |
95 |
case eColor_WidgetBackground: |
95 |
case eColor_WidgetBackground: |
96 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); |
96 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]); |
97 |
break; |
97 |
break; |
98 |
case eColor_WidgetForeground: |
98 |
case eColor_WidgetForeground: |
99 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); |
99 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]); |
100 |
break; |
100 |
break; |
101 |
case eColor_WidgetSelectBackground: |
101 |
case eColor_WidgetSelectBackground: |
102 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_SELECTED]); |
102 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_SELECTED]); |
103 |
break; |
103 |
break; |
104 |
case eColor_WidgetSelectForeground: |
104 |
case eColor_WidgetSelectForeground: |
105 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_SELECTED]); |
105 |
aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_SELECTED]); |
106 |
break; |
106 |
break; |
107 |
case eColor_Widget3DHighlight: |
107 |
case eColor_Widget3DHighlight: |
108 |
aColor = NS_RGB(0xa0,0xa0,0xa0); |
108 |
aColor = NS_RGB(0xa0,0xa0,0xa0); |
109 |
-- xpfe/components/filepicker/src/nsFilePicker.js |
109 |
++ xpfe/components/filepicker/src/nsFilePicker.js |
Line 0
Link Here
|
0 |
-- xpfe/components/search/src/nsInternetSearchService.cpp |
1 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
|
2 |
* |
3 |
* The contents of this file are subject to the Mozilla Public |
4 |
* License Version 1.1 (the "License"); you may not use this file |
5 |
* except in compliance with the License. You may obtain a copy of |
6 |
* the License at http://www.mozilla.org/MPL/ |
7 |
* |
8 |
* Software distributed under the License is distributed on an "AS |
9 |
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
10 |
* implied. See the License for the specific language governing |
11 |
* rights and limitations under the License. |
12 |
* |
13 |
* The Original Code is mozilla.org code. |
14 |
* |
15 |
* The Initial Developer of the Original Code is Netscape |
16 |
* Communications Corporation. Portions created by Netscape are |
17 |
* Copyright (C) 2000 Netscape Communications Corporation. All |
18 |
* Rights Reserved. |
19 |
* |
20 |
* Contributor(s): Stuart Parmenter <pavlov@netscape.com> |
21 |
*/ |
22 |
|
23 |
/* |
24 |
* No magic constructor behaviour, as is de rigeur for XPCOM. |
25 |
* If you must perform some initialization, and it could possibly fail (even |
26 |
* due to an out-of-memory condition), you should use an Init method, which |
27 |
* can convey failure appropriately (thrown exception in JS, |
28 |
* NS_FAILED(nsresult) return in C++). |
29 |
* |
30 |
* In JS, you can actually cheat, because a thrown exception will cause the |
31 |
* CreateInstance call to fail in turn, but not all languages are so lucky. |
32 |
* (Though ANSI C++ provides exceptions, they are verboten in Mozilla code |
33 |
* for portability reasons -- and even when you're building completely |
34 |
* platform-specific code, you can't throw across an XPCOM method boundary.) |
35 |
*/ |
36 |
|
37 |
|
38 |
const DEBUG = false; /* set to true to enable debug messages */ |
39 |
|
40 |
const FILEPICKER_CONTRACTID = "@mozilla.org/filepicker;1"; |
41 |
const FILEPICKER_CID = Components.ID("{54ae32f8-1dd2-11b2-a209-df7c505370f8}"); |
42 |
const LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1"; |
43 |
const APPSHELL_SERV_CONTRACTID = "@mozilla.org/appshell/appShellService;1"; |
44 |
const STRBUNDLE_SERV_CONTRACTID = "@mozilla.org/intl/stringbundle;1"; |
45 |
|
46 |
const nsIAppShellService = Components.interfaces.nsIAppShellService; |
47 |
const nsILocalFile = Components.interfaces.nsILocalFile; |
48 |
const nsIFileURL = Components.interfaces.nsIFileURL; |
49 |
const nsISupports = Components.interfaces.nsISupports; |
50 |
const nsIFactory = Components.interfaces.nsIFactory; |
51 |
const nsIFilePicker = Components.interfaces.nsIFilePicker; |
52 |
const nsIInterfaceRequestor = Components.interfaces.nsIInterfaceRequestor |
53 |
const nsIDOMWindow = Components.interfaces.nsIDOMWindow; |
54 |
const nsIStringBundleService = Components.interfaces.nsIStringBundleService; |
55 |
const nsIWebNavigation = Components.interfaces.nsIWebNavigation; |
56 |
const nsIDocShellTreeItem = Components.interfaces.nsIDocShellTreeItem; |
57 |
const nsIBaseWindow = Components.interfaces.nsIBaseWindow; |
58 |
|
59 |
var bundle = null; |
60 |
var lastDirectory = null; |
61 |
|
62 |
function nsFilePicker() |
63 |
{ |
64 |
if (!bundle) |
65 |
bundle = srGetStrBundle("chrome://global/locale/filepicker.properties"); |
66 |
|
67 |
/* attributes */ |
68 |
this.mDefaultString = ""; |
69 |
this.mFilterIndex = 0; |
70 |
if (lastDirectory) { |
71 |
this.mDisplayDirectory = Components.classes[LOCAL_FILE_CONTRACTID].createInstance(nsILocalFile); |
72 |
this.mDisplayDirectory.initWithPath(lastDirectory); |
73 |
} else { |
74 |
this.mDisplayDirectory = null; |
75 |
} |
76 |
this.mFilterTitles = new Array(); |
77 |
this.mFilters = new Array(); |
78 |
} |
79 |
|
80 |
nsFilePicker.prototype = { |
81 |
|
82 |
/* attribute nsILocalFile displayDirectory; */ |
83 |
set displayDirectory(a) { this.mDisplayDirectory = a; }, |
84 |
get displayDirectory() { return this.mDisplayDirectory; }, |
85 |
|
86 |
/* readonly attribute nsILocalFile file; */ |
87 |
set file(a) { throw "readonly property"; }, |
88 |
get file() { return this.mFilesEnumerator.mFiles[0]; }, |
89 |
|
90 |
/* readonly attribute nsISimpleEnumerator files; */ |
91 |
set files(a) { throw "readonly property"; }, |
92 |
get files() { return this.mFilesEnumerator; }, |
93 |
|
94 |
/* readonly attribute nsIFileURL fileURL; */ |
95 |
set fileURL(a) { throw "readonly property"; }, |
96 |
get fileURL() { |
97 |
if (this.mFilesEnumerator) { |
98 |
var ioService = Components.classes["@mozilla.org/network/io-service;1"] |
99 |
.getService(Components.interfaces.nsIIOService); |
100 |
var url = ioService.newFileURI(this.file); |
101 |
return url; |
102 |
} |
103 |
return null; |
104 |
}, |
105 |
|
106 |
/* attribute wstring defaultString; */ |
107 |
set defaultString(a) { this.mDefaultString = a; }, |
108 |
get defaultString() { return this.mDefaultString; }, |
109 |
|
110 |
/* attribute wstring defaultExtension */ |
111 |
set defaultExtension(ext) { }, |
112 |
get defaultExtension() { return ""; }, |
113 |
|
114 |
/* attribute long filterIndex; */ |
115 |
set filterIndex(a) { this.mFilterIndex = a; }, |
116 |
get filterIndex() { return this.mFilterIndex; }, |
117 |
|
118 |
/* members */ |
119 |
mFilesEnumerator: undefined, |
120 |
mParentWindow: null, |
121 |
|
122 |
/* methods */ |
123 |
init: function(parent, title, mode) { |
124 |
this.mParentWindow = parent; |
125 |
this.mTitle = title; |
126 |
this.mMode = mode; |
127 |
}, |
128 |
|
129 |
appendFilters: function(filterMask) { |
130 |
if (filterMask & nsIFilePicker.filterHTML) { |
131 |
this.appendFilter(bundle.GetStringFromName("htmlTitle"), |
132 |
bundle.GetStringFromName("htmlFilter")); |
133 |
} |
134 |
if (filterMask & nsIFilePicker.filterText) { |
135 |
this.appendFilter(bundle.GetStringFromName("textTitle"), |
136 |
bundle.GetStringFromName("textFilter")); |
137 |
} |
138 |
if (filterMask & nsIFilePicker.filterImages) { |
139 |
this.appendFilter(bundle.GetStringFromName("imageTitle"), |
140 |
bundle.GetStringFromName("imageFilter")); |
141 |
} |
142 |
if (filterMask & nsIFilePicker.filterXML) { |
143 |
this.appendFilter(bundle.GetStringFromName("xmlTitle"), |
144 |
bundle.GetStringFromName("xmlFilter")); |
145 |
} |
146 |
if (filterMask & nsIFilePicker.filterXUL) { |
147 |
this.appendFilter(bundle.GetStringFromName("xulTitle"), |
148 |
bundle.GetStringFromName("xulFilter")); |
149 |
} |
150 |
if (filterMask & nsIFilePicker.filterApps) { |
151 |
// We use "..apps" as a special filter for executable files |
152 |
this.appendFilter(bundle.GetStringFromName("appsTitle"), |
153 |
"..apps"); |
154 |
} |
155 |
if (filterMask & nsIFilePicker.filterAll) { |
156 |
this.appendFilter(bundle.GetStringFromName("allTitle"), |
157 |
bundle.GetStringFromName("allFilter")); |
158 |
} |
159 |
}, |
160 |
|
161 |
appendFilter: function(title, extensions) { |
162 |
this.mFilterTitles.push(title); |
163 |
this.mFilters.push(extensions); |
164 |
}, |
165 |
|
166 |
QueryInterface: function(iid) { |
167 |
if (!iid.equals(nsIFilePicker) && |
168 |
!iid.equals(nsISupports)) |
169 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
170 |
return this; |
171 |
}, |
172 |
|
173 |
show: function() { |
174 |
var o = new Object(); |
175 |
o.title = this.mTitle; |
176 |
o.mode = this.mMode; |
177 |
o.displayDirectory = this.mDisplayDirectory; |
178 |
o.defaultString = this.mDefaultString; |
179 |
o.filterIndex = this.mFilterIndex; |
180 |
o.filters = new Object(); |
181 |
o.filters.titles = this.mFilterTitles; |
182 |
o.filters.types = this.mFilters; |
183 |
o.retvals = new Object(); |
184 |
|
185 |
var parent; |
186 |
if (this.mParentWindow) { |
187 |
parent = this.mParentWindow; |
188 |
} else if (typeof(window) == "object" && window != null) { |
189 |
parent = window; |
190 |
} else { |
191 |
try { |
192 |
var appShellService = Components.classes[APPSHELL_SERV_CONTRACTID].getService(nsIAppShellService); |
193 |
parent = appShellService.hiddenDOMWindow; |
194 |
} catch(ex) { |
195 |
debug("Can't get parent. xpconnect hates me so we can't get one from the appShellService.\n"); |
196 |
debug(ex + "\n"); |
197 |
} |
198 |
} |
199 |
|
200 |
var parentWin = null; |
201 |
try { |
202 |
parentWin = parent.QueryInterface(nsIInterfaceRequestor) |
203 |
.getInterface(nsIWebNavigation) |
204 |
.QueryInterface(nsIDocShellTreeItem) |
205 |
.treeOwner |
206 |
.QueryInterface(nsIInterfaceRequestor) |
207 |
.getInterface(nsIBaseWindow); |
208 |
} catch(ex) { |
209 |
dump("file picker couldn't get base window\n"+ex+"\n"); |
210 |
} |
211 |
try { |
212 |
if (parentWin) |
213 |
parentWin.blurSuppression = true; |
214 |
parent.openDialog("chrome://global/content/filepicker.xul", |
215 |
"", |
216 |
"chrome,modal,titlebar,resizable=yes,dependent=yes", |
217 |
o); |
218 |
if (parentWin) |
219 |
parentWin.blurSuppression = false; |
220 |
|
221 |
this.mFilterIndex = o.retvals.filterIndex; |
222 |
this.mFilesEnumerator = o.retvals.files; |
223 |
lastDirectory = o.retvals.directory; |
224 |
return o.retvals.buttonStatus; |
225 |
} catch(ex) { dump("unable to open file picker\n" + ex + "\n"); } |
226 |
|
227 |
return null; |
228 |
} |
229 |
} |
230 |
|
231 |
if (DEBUG) |
232 |
debug = function (s) { dump("-*- filepicker: " + s + "\n"); } |
233 |
else |
234 |
debug = function (s) {} |
235 |
|
236 |
/* module foo */ |
237 |
|
238 |
var filePickerModule = new Object(); |
239 |
|
240 |
filePickerModule.registerSelf = |
241 |
function (compMgr, fileSpec, location, type) |
242 |
{ |
243 |
debug("registering (all right -- a JavaScript module!)"); |
244 |
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar); |
245 |
|
246 |
compMgr.registerFactoryLocation(FILEPICKER_CID, |
247 |
"FilePicker JS Component", |
248 |
"", |
249 |
fileSpec, |
250 |
location, |
251 |
type); |
252 |
} |
253 |
|
254 |
filePickerModule.getClassObject = |
255 |
function (compMgr, cid, iid) { |
256 |
if (!cid.equals(FILEPICKER_CID)) |
257 |
throw Components.results.NS_ERROR_NO_INTERFACE; |
258 |
|
259 |
if (!iid.equals(Components.interfaces.nsIFactory)) |
260 |
throw Components.results.NS_ERROR_NOT_IMPLEMENTED; |
261 |
|
262 |
return filePickerFactory; |
263 |
} |
264 |
|
265 |
filePickerModule.canUnload = |
266 |
function(compMgr) |
267 |
{ |
268 |
debug("Unloading component."); |
269 |
return true; |
270 |
} |
271 |
|
272 |
/* factory object */ |
273 |
var filePickerFactory = new Object(); |
274 |
|
275 |
filePickerFactory.createInstance = |
276 |
function (outer, iid) { |
277 |
debug("CI: " + iid); |
278 |
debug("IID:" + nsIFilePicker); |
279 |
if (outer != null) |
280 |
throw Components.results.NS_ERROR_NO_AGGREGATION; |
281 |
|
282 |
return (new nsFilePicker()).QueryInterface(iid); |
283 |
} |
284 |
|
285 |
/* entrypoint */ |
286 |
function NSGetModule(compMgr, fileSpec) { |
287 |
return filePickerModule; |
288 |
} |
289 |
|
290 |
|
291 |
|
292 |
/* crap from strres.js that I want to use for string bundles since I can't include another .js file.... */ |
293 |
|
294 |
var strBundleService = null; |
295 |
|
296 |
function srGetStrBundle(path) |
297 |
{ |
298 |
var strBundle = null; |
299 |
|
300 |
if (!strBundleService) { |
301 |
try { |
302 |
strBundleService = Components.classes[STRBUNDLE_SERV_CONTRACTID].getService(nsIStringBundleService); |
303 |
} catch (ex) { |
304 |
dump("\n--** strBundleService createInstance failed **--\n"); |
305 |
return null; |
306 |
} |
307 |
} |
308 |
|
309 |
strBundle = strBundleService.createBundle(path); |
310 |
if (!strBundle) { |
311 |
dump("\n--** strBundle createInstance failed **--\n"); |
312 |
} |
313 |
return strBundle; |
314 |
} |
315 |
|
|
|
316 |
++ xpfe/components/search/src/nsInternetSearchService.cpp |
Lines 997-1010
Link Here
|
997 |
|
997 |
|
998 |
// get available search engines |
998 |
// get available search engines |
999 |
nsCOMPtr<nsIFile> nativeDir; |
999 |
nsCOMPtr<nsIFile> nativeDir; |
1000 |
if (NS_SUCCEEDED(rv = GetSearchFolder(getter_AddRefs(nativeDir)))) |
1000 |
//in profile directory |
1001 |
{ |
1001 |
rv = GetSearchFolder(getter_AddRefs(nativeDir)); |
1002 |
rv = GetSearchEngineList(nativeDir, PR_FALSE, PR_FALSE); |
1002 |
NS_ENSURE_SUCCESS(rv, rv); |
1003 |
|
1003 |
|
1004 |
// read in category list |
1004 |
rv = GetSearchEngineList(nativeDir, PR_FALSE, PR_FALSE); |
1005 |
rv = GetCategoryList(); |
1005 |
NS_ENSURE_SUCCESS(rv, rv); |
1006 |
} |
1006 |
|
1007 |
|
1007 |
// in application directory |
|
|
1008 |
rv = GetSearchAppFolder(getter_AddRefs(nativeDir)); |
1009 |
NS_ENSURE_SUCCESS(rv, rv); |
1010 |
//DOn't return errors even if we failed to load search engines. |
1011 |
GetSearchEngineList(nativeDir, PR_FALSE, PR_FALSE); |
1012 |
|
1013 |
// read in category list |
1014 |
rv = GetCategoryList(); |
1015 |
|
1008 |
#ifdef XP_MAC |
1016 |
#ifdef XP_MAC |
1009 |
// on Mac, use system's search files too |
1017 |
// on Mac, use system's search files too |
1010 |
nsCOMPtr<nsIFile> macSearchDir; |
1018 |
nsCOMPtr<nsIFile> macSearchDir; |
Lines 1400-1411
Link Here
|
1400 |
if (!remoteCategoryDataSource) return(NS_ERROR_UNEXPECTED); |
1408 |
if (!remoteCategoryDataSource) return(NS_ERROR_UNEXPECTED); |
1401 |
|
1409 |
|
1402 |
// get search.rdf |
1410 |
// get search.rdf |
1403 |
|
1411 |
|
1404 |
nsCOMPtr<nsIFile> searchFile; |
1412 |
nsCOMPtr<nsIFile> searchFile; |
1405 |
nsCAutoString searchFileURLSpec; |
1413 |
nsCAutoString searchFileURLSpec; |
1406 |
|
1414 |
|
1407 |
rv = NS_GetSpecialDirectory(NS_APP_SEARCH_50_FILE, getter_AddRefs(searchFile)); |
1415 |
rv = GetSearchDatasourceFile(getter_AddRefs(searchFile)); |
1408 |
if (NS_FAILED(rv)) return rv; |
1416 |
NS_ENSURE_SUCCESS(rv, rv); |
|
|
1417 |
|
1409 |
NS_GetURLSpecFromFile(searchFile, searchFileURLSpec); |
1418 |
NS_GetURLSpecFromFile(searchFile, searchFileURLSpec); |
1410 |
if (NS_FAILED(rv)) return rv; |
1419 |
if (NS_FAILED(rv)) return rv; |
1411 |
rv = remoteCategoryDataSource->Init(searchFileURLSpec.get()); |
1420 |
rv = remoteCategoryDataSource->Init(searchFileURLSpec.get()); |
Lines 2560-2565
Link Here
|
2560 |
nsCOMPtr<nsIFile> outFile; |
2569 |
nsCOMPtr<nsIFile> outFile; |
2561 |
if (NS_FAILED(rv = GetSearchFolder(getter_AddRefs(outFile)))) return(rv); |
2570 |
if (NS_FAILED(rv = GetSearchFolder(getter_AddRefs(outFile)))) return(rv); |
2562 |
|
2571 |
|
|
|
2572 |
PRBool exists; |
2573 |
rv = outFile->Exists(&exists); |
2574 |
if (NS_FAILED(rv)) return(rv); |
2575 |
if (!exists) |
2576 |
{ |
2577 |
rv = outFile->Create(nsIFile::DIRECTORY_TYPE, 0755); |
2578 |
if (NS_FAILED(rv)) return(rv); |
2579 |
} |
2580 |
|
2563 |
const PRUnichar *dataBuf = nsnull; |
2581 |
const PRUnichar *dataBuf = nsnull; |
2564 |
if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv); |
2582 |
if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv); |
2565 |
|
2583 |
|
Lines 4091-4114
Link Here
|
4091 |
return(rv); |
4109 |
return(rv); |
4092 |
} |
4110 |
} |
4093 |
|
4111 |
|
|
|
4112 |
nsresult |
4113 |
InternetSearchDataSource::GetSearchAppFolder(nsIFile **aDir) |
4114 |
{ |
4115 |
NS_ENSURE_ARG_POINTER(aDir); |
4116 |
*aDir = nsnull; |
4094 |
|
4117 |
|
|
|
4118 |
nsCOMPtr<nsIFile> searchDir; |
4119 |
nsresult rv = NS_GetSpecialDirectory(NS_APP_SEARCH_DIR, |
4120 |
getter_AddRefs(searchDir)); |
4121 |
NS_ENSURE_SUCCESS(rv, rv); |
4122 |
|
4123 |
// addref |
4124 |
*aDir = searchDir; |
4125 |
NS_ADDREF(*aDir); |
4126 |
return NS_OK; |
4127 |
} |
4095 |
|
4128 |
|
4096 |
nsresult |
4129 |
nsresult |
4097 |
InternetSearchDataSource::GetSearchFolder(nsIFile **searchDir) |
4130 |
InternetSearchDataSource::GetSearchFolder(nsIFile **aDir) |
4098 |
{ |
4131 |
{ |
4099 |
NS_ENSURE_ARG_POINTER(searchDir); |
4132 |
NS_ENSURE_ARG_POINTER(aDir); |
4100 |
*searchDir = nsnull; |
4133 |
*aDir = nsnull; |
|
|
4134 |
PRBool exists; |
4101 |
|
4135 |
|
4102 |
nsCOMPtr<nsIFile> aDir; |
4136 |
nsCOMPtr<nsIFile> searchDir; |
4103 |
nsresult rv = NS_GetSpecialDirectory(NS_APP_SEARCH_DIR, getter_AddRefs(aDir)); |
4137 |
nsresult rv = NS_GetSpecialDirectory(NS_APP_USER_SEARCH_50_DIR, |
4104 |
if (NS_FAILED(rv)) return rv; |
4138 |
getter_AddRefs(searchDir)); |
|
|
4139 |
NS_ENSURE_SUCCESS(rv, rv); |
4140 |
|
4141 |
// If target directory doesn't exist in profile, |
4142 |
// creates an empty directory |
4143 |
|
4144 |
rv = searchDir->Exists(&exists); |
4145 |
NS_ENSURE_SUCCESS(rv, rv); |
4146 |
|
4147 |
if(!exists){ |
4148 |
rv = searchDir->Create(nsIFile::DIRECTORY_TYPE, 0700); |
4149 |
NS_ENSURE_SUCCESS(rv, rv); |
4150 |
} |
4105 |
|
4151 |
|
4106 |
*searchDir = aDir; |
4152 |
// addref |
4107 |
NS_ADDREF(*searchDir); |
4153 |
*aDir = searchDir; |
|
|
4154 |
NS_ADDREF(*aDir); |
4108 |
return NS_OK; |
4155 |
return NS_OK; |
4109 |
} |
4156 |
} |
4110 |
|
4157 |
|
|
|
4158 |
nsresult |
4159 |
InternetSearchDataSource::GetSearchDatasourceFile(nsIFile **aFile) |
4160 |
{ |
4161 |
NS_ENSURE_ARG_POINTER(aFile); |
4111 |
|
4162 |
|
|
|
4163 |
nsresult rv; |
4164 |
|
4165 |
nsCOMPtr<nsIFile> file; |
4166 |
rv = GetSearchFolder(getter_AddRefs(file)); |
4167 |
NS_ENSURE_SUCCESS(rv, rv); |
4168 |
|
4169 |
// addref |
4170 |
*aFile = file; |
4171 |
NS_ADDREF(*aFile); |
4172 |
return NS_OK; |
4173 |
} |
4112 |
|
4174 |
|
4113 |
nsresult |
4175 |
nsresult |
4114 |
InternetSearchDataSource::SaveEngineInfoIntoGraph(nsIFile *file, nsIFile *icon, |
4176 |
InternetSearchDataSource::SaveEngineInfoIntoGraph(nsIFile *file, nsIFile *icon, |
Lines 4315-4321
Link Here
|
4315 |
InternetSearchDataSource::GetSearchEngineList(nsIFile *searchDir, |
4377 |
InternetSearchDataSource::GetSearchEngineList(nsIFile *searchDir, |
4316 |
PRBool isSystemSearchFile, PRBool checkMacFileType) |
4378 |
PRBool isSystemSearchFile, PRBool checkMacFileType) |
4317 |
{ |
4379 |
{ |
4318 |
nsresult rv = NS_OK; |
4380 |
nsresult rv = NS_OK; |
4319 |
|
4381 |
|
4320 |
if (!mInner) |
4382 |
if (!mInner) |
4321 |
{ |
4383 |
{ |
Lines 6435-6442
Link Here
|
6435 |
{ |
6497 |
{ |
6436 |
// Delete search.rdf |
6498 |
// Delete search.rdf |
6437 |
nsCOMPtr<nsIFile> searchFile; |
6499 |
nsCOMPtr<nsIFile> searchFile; |
6438 |
rv = NS_GetSpecialDirectory(NS_APP_SEARCH_50_FILE, getter_AddRefs(searchFile)); |
6500 |
|
6439 |
if (NS_SUCCEEDED(rv)) |
6501 |
rv = GetSearchDatasourceFile(getter_AddRefs(searchFile)); |
|
|
6502 |
NS_ENSURE_SUCCESS(rv, rv); |
6503 |
|
6504 |
PRBool exists; |
6505 |
rv = searchFile->Exists(&exists); |
6506 |
NS_ENSURE_SUCCESS(rv, rv); |
6507 |
|
6508 |
if (exists) |
6440 |
rv = searchFile->Remove(PR_FALSE); |
6509 |
rv = searchFile->Remove(PR_FALSE); |
6441 |
} |
6510 |
} |
6442 |
} |
6511 |
} |
6443 |
-- xpfe/components/search/src/nsInternetSearchService.h |
6512 |
++ xpfe/components/search/src/nsInternetSearchService.h |
Lines 158-163
Link Here
|
158 |
nsresult GetSearchEngineList(nsIFile *spec, PRBool isSystemSearchFile, PRBool checkMacFileType); |
158 |
nsresult GetSearchEngineList(nsIFile *spec, PRBool isSystemSearchFile, PRBool checkMacFileType); |
159 |
nsresult GetCategoryList(); |
159 |
nsresult GetCategoryList(); |
160 |
nsresult GetSearchFolder(nsIFile **spec); |
160 |
nsresult GetSearchFolder(nsIFile **spec); |
|
|
161 |
nsresult GetSearchAppFolder(nsIFile **spec); |
162 |
nsresult GetSearchDatasourceFile(nsIFile **spec); |
161 |
nsresult ReadFileContents(nsILocalFile *baseFilename, nsString & sourceContents); |
163 |
nsresult ReadFileContents(nsILocalFile *baseFilename, nsString & sourceContents); |
162 |
nsresult DecodeData(const char *aCharset, const PRUnichar *aInString, PRUnichar **aOutString); |
164 |
nsresult DecodeData(const char *aCharset, const PRUnichar *aInString, PRUnichar **aOutString); |
163 |
nsresult GetData(const PRUnichar *data, const char *sectionToFind, PRUint32 sectionNum, const char *attribToFind, nsString &value); |
165 |
nsresult GetData(const PRUnichar *data, const char *sectionToFind, PRUint32 sectionNum, const char *attribToFind, nsString &value); |
164 |
-- xpfe/global/resources/content/bindings/browser.xml |
166 |
++ xpfe/global/resources/content/bindings/browser.xml |
Lines 322-327
Link Here
|
322 |
null |
322 |
null |
323 |
</field> |
323 |
</field> |
324 |
|
324 |
|
|
|
325 |
<field name="mDestroyed"> |
326 |
false |
327 |
</field> |
328 |
|
325 |
<property name="userTypedValue" |
329 |
<property name="userTypedValue" |
326 |
onget="return this._userTypedValue;" |
330 |
onget="return this._userTypedValue;" |
327 |
onset="this.userTypedClear = 0; return this._userTypedValue = val;"/> |
331 |
onset="this.userTypedClear = 0; return this._userTypedValue = val;"/> |
Lines 360-371
Link Here
|
360 |
|
364 |
|
361 |
<destructor> |
365 |
<destructor> |
362 |
<![CDATA[ |
366 |
<![CDATA[ |
|
|
367 |
this.destroy(); |
368 |
]]> |
369 |
</destructor> |
370 |
|
371 |
<!-- This is necessary because the destructor is not called |
372 |
promptly when we are removed from a tabbrowser. This will be |
373 |
explicitly called by tabbrowser --> |
374 |
<method name="destroy"> |
375 |
<body> |
376 |
<![CDATA[ |
377 |
if (this.mDestroyed) |
378 |
return; |
379 |
this.mDestroyed = true; |
380 |
|
363 |
if (this.mDragDropHandler) |
381 |
if (this.mDragDropHandler) |
364 |
this.mDragDropHandler.detach(); |
382 |
this.mDragDropHandler.detach(); |
|
|
383 |
this.mDragDropHandler = null; |
365 |
|
384 |
|
366 |
this.securityUI = null; |
385 |
this.securityUI = null; |
|
|
386 |
this.focusedWindow = null; |
387 |
this.focusedElement = null; |
388 |
this._webBrowserFind = null; |
367 |
]]> |
389 |
]]> |
368 |
</destructor> |
390 |
</body> |
|
|
391 |
</method> |
369 |
</implementation> |
392 |
</implementation> |
370 |
|
393 |
|
371 |
<handlers> |
394 |
<handlers> |
372 |
-- xpfe/global/resources/content/bindings/tabbrowser.xml |
395 |
++ xpfe/global/resources/content/bindings/tabbrowser.xml |
Lines 995-1000
Link Here
|
995 |
// clean up the before/afterselected attributes before removing the tab |
995 |
// clean up the before/afterselected attributes before removing the tab |
996 |
oldTab.selected = false; |
996 |
oldTab.selected = false; |
997 |
|
997 |
|
|
|
998 |
// Because of the way XBL works (fields just set JS |
999 |
// properties on the element) and the code we have in place |
1000 |
// to preserve the JS objects for any elements that have |
1001 |
// JS properties set on them, the browser element won't be |
1002 |
// destroyed until the document goes away. So we force a |
1003 |
// cleanup ourselves. |
1004 |
// This has to hapen before we remove the child so that the |
1005 |
// XBL implementation of nsIObserver still works. |
1006 |
oldBrowser.destroy(); |
1007 |
|
1008 |
if (oldBrowser == this.mCurrentBrowser) |
1009 |
this.mCurrentBrowser = null; |
1010 |
|
998 |
this.mTabContainer.removeChild(oldTab); |
1011 |
this.mTabContainer.removeChild(oldTab); |
999 |
this.mPanelContainer.removeChild(oldBrowser); |
1012 |
this.mPanelContainer.removeChild(oldBrowser); |
1000 |
|
1013 |
|
1001 |
-- configure |
1014 |
++ configure |
Lines 90-101
Link Here
|
90 |
ac_help="$ac_help |
90 |
ac_help="$ac_help |
91 |
--enable-xft Enable Xft support " |
91 |
--enable-xft Enable Xft support " |
92 |
ac_help="$ac_help |
92 |
ac_help="$ac_help |
|
|
93 |
--enable-pango Enable Pango font rendering support" |
94 |
ac_help="$ac_help |
93 |
--disable-postscript Disable PostScript printing support " |
95 |
--disable-postscript Disable PostScript printing support " |
94 |
ac_help="$ac_help |
96 |
ac_help="$ac_help |
95 |
--disable-xprint Disable Xprint printing support " |
97 |
--disable-xprint Disable Xprint printing support " |
96 |
ac_help="$ac_help |
98 |
ac_help="$ac_help |
97 |
--disable-gnomevfs Disable GnomeVFS support " |
99 |
--disable-gnomevfs Disable GnomeVFS support " |
98 |
ac_help="$ac_help |
100 |
ac_help="$ac_help |
|
|
101 |
--disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) " |
102 |
ac_help="$ac_help |
99 |
--enable-crypto Enable crypto support (Personal Security Manager)" |
103 |
--enable-crypto Enable crypto support (Personal Security Manager)" |
100 |
ac_help="$ac_help |
104 |
ac_help="$ac_help |
101 |
--disable-jsd Disable JavaScript debug library" |
105 |
--disable-jsd Disable JavaScript debug library" |
Lines 881-887
Link Here
|
881 |
fi |
885 |
fi |
882 |
|
886 |
|
883 |
echo $ac_n "checking host system type""... $ac_c" 1>&6 |
887 |
echo $ac_n "checking host system type""... $ac_c" 1>&6 |
884 |
echo "configure:885: checking host system type" >&5 |
888 |
echo "configure:889: checking host system type" >&5 |
885 |
|
889 |
|
886 |
host_alias=$host |
890 |
host_alias=$host |
887 |
case "$host_alias" in |
891 |
case "$host_alias" in |
Lines 902-908
Link Here
|
902 |
echo "$ac_t""$host" 1>&6 |
906 |
echo "$ac_t""$host" 1>&6 |
903 |
|
907 |
|
904 |
echo $ac_n "checking target system type""... $ac_c" 1>&6 |
908 |
echo $ac_n "checking target system type""... $ac_c" 1>&6 |
905 |
echo "configure:906: checking target system type" >&5 |
909 |
echo "configure:910: checking target system type" >&5 |
906 |
|
910 |
|
907 |
target_alias=$target |
911 |
target_alias=$target |
908 |
case "$target_alias" in |
912 |
case "$target_alias" in |
Lines 920-926
Link Here
|
920 |
echo "$ac_t""$target" 1>&6 |
924 |
echo "$ac_t""$target" 1>&6 |
921 |
|
925 |
|
922 |
echo $ac_n "checking build system type""... $ac_c" 1>&6 |
926 |
echo $ac_n "checking build system type""... $ac_c" 1>&6 |
923 |
echo "configure:924: checking build system type" >&5 |
927 |
echo "configure:928: checking build system type" >&5 |
924 |
|
928 |
|
925 |
build_alias=$build |
929 |
build_alias=$build |
926 |
case "$build_alias" in |
930 |
case "$build_alias" in |
Lines 981-986
Link Here
|
981 |
MAKE_VERSION=3.78 |
985 |
MAKE_VERSION=3.78 |
982 |
WINDRES_VERSION=2.14.90 |
986 |
WINDRES_VERSION=2.14.90 |
983 |
W32API_VERSION=2.4 |
987 |
W32API_VERSION=2.4 |
|
|
988 |
GNOMEUI_VERSION=2.0.6 |
984 |
GNOMEVFS_VERSION=2.0 |
989 |
GNOMEVFS_VERSION=2.0 |
985 |
GCONF_VERSION=1.2.1 |
990 |
GCONF_VERSION=1.2.1 |
986 |
LIBGNOME_VERSION=2.0 |
991 |
LIBGNOME_VERSION=2.0 |
Lines 1045-1057
Link Here
|
1045 |
_SAVE_LDFLAGS="$LDFLAGS" |
1050 |
_SAVE_LDFLAGS="$LDFLAGS" |
1046 |
|
1051 |
|
1047 |
echo $ac_n "checking for host c compiler""... $ac_c" 1>&6 |
1052 |
echo $ac_n "checking for host c compiler""... $ac_c" 1>&6 |
1048 |
echo "configure:1049: checking for host c compiler" >&5 |
1053 |
echo "configure:1054: checking for host c compiler" >&5 |
1049 |
for ac_prog in $HOST_CC gcc cc /usr/ucb/cc cl icc |
1054 |
for ac_prog in $HOST_CC gcc cc /usr/ucb/cc cl icc |
1050 |
do |
1055 |
do |
1051 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1056 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1052 |
set dummy $ac_prog; ac_word=$2 |
1057 |
set dummy $ac_prog; ac_word=$2 |
1053 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1058 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1054 |
echo "configure:1055: checking for $ac_word" >&5 |
1059 |
echo "configure:1060: checking for $ac_word" >&5 |
1055 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CC'+set}'`\" = set"; then |
1060 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CC'+set}'`\" = set"; then |
1056 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1061 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1057 |
else |
1062 |
else |
Lines 1086-1098
Link Here
|
1086 |
fi |
1091 |
fi |
1087 |
echo "$ac_t""$HOST_CC" 1>&6 |
1092 |
echo "$ac_t""$HOST_CC" 1>&6 |
1088 |
echo $ac_n "checking for host c++ compiler""... $ac_c" 1>&6 |
1093 |
echo $ac_n "checking for host c++ compiler""... $ac_c" 1>&6 |
1089 |
echo "configure:1090: checking for host c++ compiler" >&5 |
1094 |
echo "configure:1095: checking for host c++ compiler" >&5 |
1090 |
for ac_prog in $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc |
1095 |
for ac_prog in $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc |
1091 |
do |
1096 |
do |
1092 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1097 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1093 |
set dummy $ac_prog; ac_word=$2 |
1098 |
set dummy $ac_prog; ac_word=$2 |
1094 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1099 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1095 |
echo "configure:1096: checking for $ac_word" >&5 |
1100 |
echo "configure:1101: checking for $ac_word" >&5 |
1096 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CXX'+set}'`\" = set"; then |
1101 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CXX'+set}'`\" = set"; then |
1097 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1102 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1098 |
else |
1103 |
else |
Lines 1141-1147
Link Here
|
1141 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1146 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1142 |
set dummy $ac_prog; ac_word=$2 |
1147 |
set dummy $ac_prog; ac_word=$2 |
1143 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1148 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1144 |
echo "configure:1145: checking for $ac_word" >&5 |
1149 |
echo "configure:1150: checking for $ac_word" >&5 |
1145 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_RANLIB'+set}'`\" = set"; then |
1150 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_RANLIB'+set}'`\" = set"; then |
1146 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1151 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1147 |
else |
1152 |
else |
Lines 1176-1182
Link Here
|
1176 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1181 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1177 |
set dummy $ac_prog; ac_word=$2 |
1182 |
set dummy $ac_prog; ac_word=$2 |
1178 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1183 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1179 |
echo "configure:1180: checking for $ac_word" >&5 |
1184 |
echo "configure:1185: checking for $ac_word" >&5 |
1180 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_AR'+set}'`\" = set"; then |
1185 |
if eval "test \"`echo '$''{'ac_cv_prog_HOST_AR'+set}'`\" = set"; then |
1181 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1186 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1182 |
else |
1187 |
else |
Lines 1211-1226
Link Here
|
1211 |
LDFLAGS="$HOST_LDFLAGS" |
1216 |
LDFLAGS="$HOST_LDFLAGS" |
1212 |
|
1217 |
|
1213 |
echo $ac_n "checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6 |
1218 |
echo $ac_n "checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6 |
1214 |
echo "configure:1215: checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5 |
1219 |
echo "configure:1220: checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5 |
1215 |
cat > conftest.$ac_ext <<EOF |
1220 |
cat > conftest.$ac_ext <<EOF |
1216 |
#line 1217 "configure" |
1221 |
#line 1222 "configure" |
1217 |
#include "confdefs.h" |
1222 |
#include "confdefs.h" |
1218 |
|
1223 |
|
1219 |
int main() { |
1224 |
int main() { |
1220 |
return(0); |
1225 |
return(0); |
1221 |
; return 0; } |
1226 |
; return 0; } |
1222 |
EOF |
1227 |
EOF |
1223 |
if { (eval echo configure:1224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1228 |
if { (eval echo configure:1229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1224 |
rm -rf conftest* |
1229 |
rm -rf conftest* |
1225 |
ac_cv_prog_hostcc_works=1 echo "$ac_t""yes" 1>&6 |
1230 |
ac_cv_prog_hostcc_works=1 echo "$ac_t""yes" 1>&6 |
1226 |
else |
1231 |
else |
Lines 1235-1250
Link Here
|
1235 |
CFLAGS="$HOST_CXXFLAGS" |
1240 |
CFLAGS="$HOST_CXXFLAGS" |
1236 |
|
1241 |
|
1237 |
echo $ac_n "checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6 |
1242 |
echo $ac_n "checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6 |
1238 |
echo "configure:1239: checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works" >&5 |
1243 |
echo "configure:1244: checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works" >&5 |
1239 |
cat > conftest.$ac_ext <<EOF |
1244 |
cat > conftest.$ac_ext <<EOF |
1240 |
#line 1241 "configure" |
1245 |
#line 1246 "configure" |
1241 |
#include "confdefs.h" |
1246 |
#include "confdefs.h" |
1242 |
|
1247 |
|
1243 |
int main() { |
1248 |
int main() { |
1244 |
return(0); |
1249 |
return(0); |
1245 |
; return 0; } |
1250 |
; return 0; } |
1246 |
EOF |
1251 |
EOF |
1247 |
if { (eval echo configure:1248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1252 |
if { (eval echo configure:1253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1248 |
rm -rf conftest* |
1253 |
rm -rf conftest* |
1249 |
ac_cv_prog_hostcxx_works=1 echo "$ac_t""yes" 1>&6 |
1254 |
ac_cv_prog_hostcxx_works=1 echo "$ac_t""yes" 1>&6 |
1250 |
else |
1255 |
else |
Lines 1264-1270
Link Here
|
1264 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1269 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1265 |
set dummy $ac_prog; ac_word=$2 |
1270 |
set dummy $ac_prog; ac_word=$2 |
1266 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1271 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1267 |
echo "configure:1268: checking for $ac_word" >&5 |
1272 |
echo "configure:1273: checking for $ac_word" >&5 |
1268 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1273 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1269 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1274 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1270 |
else |
1275 |
else |
Lines 1298-1304
Link Here
|
1298 |
# Extract the first word of "gcc", so it can be a program name with args. |
1303 |
# Extract the first word of "gcc", so it can be a program name with args. |
1299 |
set dummy gcc; ac_word=$2 |
1304 |
set dummy gcc; ac_word=$2 |
1300 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1305 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1301 |
echo "configure:1302: checking for $ac_word" >&5 |
1306 |
echo "configure:1307: checking for $ac_word" >&5 |
1302 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1307 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1303 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1308 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1304 |
else |
1309 |
else |
Lines 1328-1334
Link Here
|
1328 |
# Extract the first word of "cc", so it can be a program name with args. |
1333 |
# Extract the first word of "cc", so it can be a program name with args. |
1329 |
set dummy cc; ac_word=$2 |
1334 |
set dummy cc; ac_word=$2 |
1330 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1335 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1331 |
echo "configure:1332: checking for $ac_word" >&5 |
1336 |
echo "configure:1337: checking for $ac_word" >&5 |
1332 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1337 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1333 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1338 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1334 |
else |
1339 |
else |
Lines 1379-1385
Link Here
|
1379 |
# Extract the first word of "cl", so it can be a program name with args. |
1384 |
# Extract the first word of "cl", so it can be a program name with args. |
1380 |
set dummy cl; ac_word=$2 |
1385 |
set dummy cl; ac_word=$2 |
1381 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1386 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1382 |
echo "configure:1383: checking for $ac_word" >&5 |
1387 |
echo "configure:1388: checking for $ac_word" >&5 |
1383 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1388 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1384 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1389 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1385 |
else |
1390 |
else |
Lines 1411-1417
Link Here
|
1411 |
fi |
1416 |
fi |
1412 |
|
1417 |
|
1413 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
1418 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
1414 |
echo "configure:1415: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 |
1419 |
echo "configure:1420: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 |
1415 |
|
1420 |
|
1416 |
ac_ext=c |
1421 |
ac_ext=c |
1417 |
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
1422 |
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
Lines 1422-1433
Link Here
|
1422 |
|
1427 |
|
1423 |
cat > conftest.$ac_ext << EOF |
1428 |
cat > conftest.$ac_ext << EOF |
1424 |
|
1429 |
|
1425 |
#line 1426 "configure" |
1430 |
#line 1431 "configure" |
1426 |
#include "confdefs.h" |
1431 |
#include "confdefs.h" |
1427 |
|
1432 |
|
1428 |
main(){return(0);} |
1433 |
main(){return(0);} |
1429 |
EOF |
1434 |
EOF |
1430 |
if { (eval echo configure:1431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
1435 |
if { (eval echo configure:1436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
1431 |
ac_cv_prog_cc_works=yes |
1436 |
ac_cv_prog_cc_works=yes |
1432 |
# If we can't run a trivial program, we are probably using a cross compiler. |
1437 |
# If we can't run a trivial program, we are probably using a cross compiler. |
1433 |
if (./conftest; exit) 2>/dev/null; then |
1438 |
if (./conftest; exit) 2>/dev/null; then |
Lines 1453-1464
Link Here
|
1453 |
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } |
1458 |
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } |
1454 |
fi |
1459 |
fi |
1455 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
1460 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
1456 |
echo "configure:1457: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 |
1461 |
echo "configure:1462: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 |
1457 |
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 |
1462 |
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 |
1458 |
cross_compiling=$ac_cv_prog_cc_cross |
1463 |
cross_compiling=$ac_cv_prog_cc_cross |
1459 |
|
1464 |
|
1460 |
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 |
1465 |
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 |
1461 |
echo "configure:1462: checking whether we are using GNU C" >&5 |
1466 |
echo "configure:1467: checking whether we are using GNU C" >&5 |
1462 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then |
1467 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then |
1463 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1468 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1464 |
else |
1469 |
else |
Lines 1467-1473
Link Here
|
1467 |
yes; |
1472 |
yes; |
1468 |
#endif |
1473 |
#endif |
1469 |
EOF |
1474 |
EOF |
1470 |
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1471: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
1475 |
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
1471 |
ac_cv_prog_gcc=yes |
1476 |
ac_cv_prog_gcc=yes |
1472 |
else |
1477 |
else |
1473 |
ac_cv_prog_gcc=no |
1478 |
ac_cv_prog_gcc=no |
Lines 1486-1492
Link Here
|
1486 |
ac_save_CFLAGS="$CFLAGS" |
1491 |
ac_save_CFLAGS="$CFLAGS" |
1487 |
CFLAGS= |
1492 |
CFLAGS= |
1488 |
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 |
1493 |
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 |
1489 |
echo "configure:1490: checking whether ${CC-cc} accepts -g" >&5 |
1494 |
echo "configure:1495: checking whether ${CC-cc} accepts -g" >&5 |
1490 |
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then |
1495 |
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then |
1491 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1496 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1492 |
else |
1497 |
else |
Lines 1522-1528
Link Here
|
1522 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1527 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1523 |
set dummy $ac_prog; ac_word=$2 |
1528 |
set dummy $ac_prog; ac_word=$2 |
1524 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1529 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1525 |
echo "configure:1526: checking for $ac_word" >&5 |
1530 |
echo "configure:1531: checking for $ac_word" >&5 |
1526 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
1531 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
1527 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1532 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1528 |
else |
1533 |
else |
Lines 1558-1564
Link Here
|
1558 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1563 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1559 |
set dummy $ac_prog; ac_word=$2 |
1564 |
set dummy $ac_prog; ac_word=$2 |
1560 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1565 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1561 |
echo "configure:1562: checking for $ac_word" >&5 |
1566 |
echo "configure:1567: checking for $ac_word" >&5 |
1562 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
1567 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
1563 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1568 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1564 |
else |
1569 |
else |
Lines 1590-1596
Link Here
|
1590 |
|
1595 |
|
1591 |
|
1596 |
|
1592 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
1597 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
1593 |
echo "configure:1594: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 |
1598 |
echo "configure:1599: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 |
1594 |
|
1599 |
|
1595 |
ac_ext=C |
1600 |
ac_ext=C |
1596 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
1601 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
Lines 1601-1612
Link Here
|
1601 |
|
1606 |
|
1602 |
cat > conftest.$ac_ext << EOF |
1607 |
cat > conftest.$ac_ext << EOF |
1603 |
|
1608 |
|
1604 |
#line 1605 "configure" |
1609 |
#line 1610 "configure" |
1605 |
#include "confdefs.h" |
1610 |
#include "confdefs.h" |
1606 |
|
1611 |
|
1607 |
int main(){return(0);} |
1612 |
int main(){return(0);} |
1608 |
EOF |
1613 |
EOF |
1609 |
if { (eval echo configure:1610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
1614 |
if { (eval echo configure:1615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
1610 |
ac_cv_prog_cxx_works=yes |
1615 |
ac_cv_prog_cxx_works=yes |
1611 |
# If we can't run a trivial program, we are probably using a cross compiler. |
1616 |
# If we can't run a trivial program, we are probably using a cross compiler. |
1612 |
if (./conftest; exit) 2>/dev/null; then |
1617 |
if (./conftest; exit) 2>/dev/null; then |
Lines 1632-1643
Link Here
|
1632 |
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } |
1637 |
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } |
1633 |
fi |
1638 |
fi |
1634 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
1639 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
1635 |
echo "configure:1636: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 |
1640 |
echo "configure:1641: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 |
1636 |
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 |
1641 |
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 |
1637 |
cross_compiling=$ac_cv_prog_cxx_cross |
1642 |
cross_compiling=$ac_cv_prog_cxx_cross |
1638 |
|
1643 |
|
1639 |
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 |
1644 |
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 |
1640 |
echo "configure:1641: checking whether we are using GNU C++" >&5 |
1645 |
echo "configure:1646: checking whether we are using GNU C++" >&5 |
1641 |
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then |
1646 |
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then |
1642 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1647 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1643 |
else |
1648 |
else |
Lines 1646-1652
Link Here
|
1646 |
yes; |
1651 |
yes; |
1647 |
#endif |
1652 |
#endif |
1648 |
EOF |
1653 |
EOF |
1649 |
if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
1654 |
if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
1650 |
ac_cv_prog_gxx=yes |
1655 |
ac_cv_prog_gxx=yes |
1651 |
else |
1656 |
else |
1652 |
ac_cv_prog_gxx=no |
1657 |
ac_cv_prog_gxx=no |
Lines 1665-1671
Link Here
|
1665 |
ac_save_CXXFLAGS="$CXXFLAGS" |
1670 |
ac_save_CXXFLAGS="$CXXFLAGS" |
1666 |
CXXFLAGS= |
1671 |
CXXFLAGS= |
1667 |
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 |
1672 |
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 |
1668 |
echo "configure:1669: checking whether ${CXX-g++} accepts -g" >&5 |
1673 |
echo "configure:1674: checking whether ${CXX-g++} accepts -g" >&5 |
1669 |
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then |
1674 |
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then |
1670 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1675 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1671 |
else |
1676 |
else |
Lines 1696-1758
Link Here
|
1696 |
fi |
1701 |
fi |
1697 |
fi |
1702 |
fi |
1698 |
|
1703 |
|
1699 |
for ac_declaration in \ |
|
|
1700 |
''\ |
1701 |
'#include <stdlib.h>' \ |
1702 |
'extern "C" void std::exit (int) throw (); using std::exit;' \ |
1703 |
'extern "C" void std::exit (int); using std::exit;' \ |
1704 |
'extern "C" void exit (int) throw ();' \ |
1705 |
'extern "C" void exit (int);' \ |
1706 |
'void exit (int);' |
1707 |
do |
1708 |
cat > conftest.$ac_ext <<EOF |
1709 |
#line 1710 "configure" |
1710 |
#include "confdefs.h" |
1711 |
#include <stdlib.h> |
1712 |
$ac_declaration |
1713 |
int main() { |
1714 |
exit (42); |
1715 |
; return 0; } |
1716 |
EOF |
1717 |
if { (eval echo configure:1718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1718 |
: |
1719 |
else |
1720 |
echo "configure: failed program was:" >&5 |
1721 |
cat conftest.$ac_ext >&5 |
1722 |
rm -rf conftest* |
1723 |
continue |
1724 |
fi |
1725 |
rm -f conftest* |
1726 |
cat > conftest.$ac_ext <<EOF |
1727 |
#line 1728 "configure" |
1728 |
#include "confdefs.h" |
1729 |
$ac_declaration |
1730 |
int main() { |
1731 |
exit (42); |
1732 |
; return 0; } |
1733 |
EOF |
1734 |
if { (eval echo configure:1735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
1735 |
rm -rf conftest* |
1736 |
break |
1737 |
else |
1738 |
echo "configure: failed program was:" >&5 |
1739 |
cat conftest.$ac_ext >&5 |
1740 |
fi |
1741 |
rm -f conftest* |
1742 |
done |
1743 |
if test -n "$ac_declaration"; then |
1744 |
echo '#ifdef __cplusplus' >>confdefs.h |
1745 |
echo $ac_declaration >>confdefs.h |
1746 |
echo '#endif' >>confdefs.h |
1747 |
fi |
1748 |
|
1749 |
|
1750 |
for ac_prog in $RANLIB "${target_alias}-ranlib" "${target}-ranlib" |
1704 |
for ac_prog in $RANLIB "${target_alias}-ranlib" "${target}-ranlib" |
1751 |
do |
1705 |
do |
1752 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1706 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1753 |
set dummy $ac_prog; ac_word=$2 |
1707 |
set dummy $ac_prog; ac_word=$2 |
1754 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1708 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1755 |
echo "configure:1756: checking for $ac_word" >&5 |
1709 |
echo "configure:1710: checking for $ac_word" >&5 |
1756 |
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then |
1710 |
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then |
1757 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1711 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1758 |
else |
1712 |
else |
Lines 1787-1793
Link Here
|
1787 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1741 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1788 |
set dummy $ac_prog; ac_word=$2 |
1742 |
set dummy $ac_prog; ac_word=$2 |
1789 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1743 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1790 |
echo "configure:1791: checking for $ac_word" >&5 |
1744 |
echo "configure:1745: checking for $ac_word" >&5 |
1791 |
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then |
1745 |
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then |
1792 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1746 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1793 |
else |
1747 |
else |
Lines 1822-1828
Link Here
|
1822 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1776 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1823 |
set dummy $ac_prog; ac_word=$2 |
1777 |
set dummy $ac_prog; ac_word=$2 |
1824 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1778 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1825 |
echo "configure:1826: checking for $ac_word" >&5 |
1779 |
echo "configure:1780: checking for $ac_word" >&5 |
1826 |
if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then |
1780 |
if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then |
1827 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1781 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1828 |
else |
1782 |
else |
Lines 1863-1869
Link Here
|
1863 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1817 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1864 |
set dummy $ac_prog; ac_word=$2 |
1818 |
set dummy $ac_prog; ac_word=$2 |
1865 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1819 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1866 |
echo "configure:1867: checking for $ac_word" >&5 |
1820 |
echo "configure:1821: checking for $ac_word" >&5 |
1867 |
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then |
1821 |
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then |
1868 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1822 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1869 |
else |
1823 |
else |
Lines 1898-1904
Link Here
|
1898 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1852 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1899 |
set dummy $ac_prog; ac_word=$2 |
1853 |
set dummy $ac_prog; ac_word=$2 |
1900 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1854 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1901 |
echo "configure:1902: checking for $ac_word" >&5 |
1855 |
echo "configure:1856: checking for $ac_word" >&5 |
1902 |
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then |
1856 |
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then |
1903 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1857 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1904 |
else |
1858 |
else |
Lines 1933-1939
Link Here
|
1933 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1887 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
1934 |
set dummy $ac_prog; ac_word=$2 |
1888 |
set dummy $ac_prog; ac_word=$2 |
1935 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1889 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1936 |
echo "configure:1937: checking for $ac_word" >&5 |
1890 |
echo "configure:1891: checking for $ac_word" >&5 |
1937 |
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then |
1891 |
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then |
1938 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1892 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1939 |
else |
1893 |
else |
Lines 1971-1977
Link Here
|
1971 |
# Extract the first word of "gcc", so it can be a program name with args. |
1925 |
# Extract the first word of "gcc", so it can be a program name with args. |
1972 |
set dummy gcc; ac_word=$2 |
1926 |
set dummy gcc; ac_word=$2 |
1973 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1927 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1974 |
echo "configure:1975: checking for $ac_word" >&5 |
1928 |
echo "configure:1929: checking for $ac_word" >&5 |
1975 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1929 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1976 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1930 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1977 |
else |
1931 |
else |
Lines 2001-2007
Link Here
|
2001 |
# Extract the first word of "cc", so it can be a program name with args. |
1955 |
# Extract the first word of "cc", so it can be a program name with args. |
2002 |
set dummy cc; ac_word=$2 |
1956 |
set dummy cc; ac_word=$2 |
2003 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
1957 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2004 |
echo "configure:2005: checking for $ac_word" >&5 |
1958 |
echo "configure:1959: checking for $ac_word" >&5 |
2005 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
1959 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
2006 |
echo $ac_n "(cached) $ac_c" 1>&6 |
1960 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2007 |
else |
1961 |
else |
Lines 2052-2058
Link Here
|
2052 |
# Extract the first word of "cl", so it can be a program name with args. |
2006 |
# Extract the first word of "cl", so it can be a program name with args. |
2053 |
set dummy cl; ac_word=$2 |
2007 |
set dummy cl; ac_word=$2 |
2054 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2008 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2055 |
echo "configure:2056: checking for $ac_word" >&5 |
2009 |
echo "configure:2010: checking for $ac_word" >&5 |
2056 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
2010 |
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then |
2057 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2011 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2058 |
else |
2012 |
else |
Lines 2084-2090
Link Here
|
2084 |
fi |
2038 |
fi |
2085 |
|
2039 |
|
2086 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
2040 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
2087 |
echo "configure:2088: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 |
2041 |
echo "configure:2042: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 |
2088 |
|
2042 |
|
2089 |
ac_ext=c |
2043 |
ac_ext=c |
2090 |
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
2044 |
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
Lines 2095-2106
Link Here
|
2095 |
|
2049 |
|
2096 |
cat > conftest.$ac_ext << EOF |
2050 |
cat > conftest.$ac_ext << EOF |
2097 |
|
2051 |
|
2098 |
#line 2099 "configure" |
2052 |
#line 2053 "configure" |
2099 |
#include "confdefs.h" |
2053 |
#include "confdefs.h" |
2100 |
|
2054 |
|
2101 |
main(){return(0);} |
2055 |
main(){return(0);} |
2102 |
EOF |
2056 |
EOF |
2103 |
if { (eval echo configure:2104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
2057 |
if { (eval echo configure:2058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
2104 |
ac_cv_prog_cc_works=yes |
2058 |
ac_cv_prog_cc_works=yes |
2105 |
# If we can't run a trivial program, we are probably using a cross compiler. |
2059 |
# If we can't run a trivial program, we are probably using a cross compiler. |
2106 |
if (./conftest; exit) 2>/dev/null; then |
2060 |
if (./conftest; exit) 2>/dev/null; then |
Lines 2126-2137
Link Here
|
2126 |
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } |
2080 |
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } |
2127 |
fi |
2081 |
fi |
2128 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
2082 |
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
2129 |
echo "configure:2130: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 |
2083 |
echo "configure:2084: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 |
2130 |
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 |
2084 |
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 |
2131 |
cross_compiling=$ac_cv_prog_cc_cross |
2085 |
cross_compiling=$ac_cv_prog_cc_cross |
2132 |
|
2086 |
|
2133 |
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 |
2087 |
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 |
2134 |
echo "configure:2135: checking whether we are using GNU C" >&5 |
2088 |
echo "configure:2089: checking whether we are using GNU C" >&5 |
2135 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then |
2089 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then |
2136 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2090 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2137 |
else |
2091 |
else |
Lines 2140-2146
Link Here
|
2140 |
yes; |
2094 |
yes; |
2141 |
#endif |
2095 |
#endif |
2142 |
EOF |
2096 |
EOF |
2143 |
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
2097 |
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
2144 |
ac_cv_prog_gcc=yes |
2098 |
ac_cv_prog_gcc=yes |
2145 |
else |
2099 |
else |
2146 |
ac_cv_prog_gcc=no |
2100 |
ac_cv_prog_gcc=no |
Lines 2159-2165
Link Here
|
2159 |
ac_save_CFLAGS="$CFLAGS" |
2113 |
ac_save_CFLAGS="$CFLAGS" |
2160 |
CFLAGS= |
2114 |
CFLAGS= |
2161 |
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 |
2115 |
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 |
2162 |
echo "configure:2163: checking whether ${CC-cc} accepts -g" >&5 |
2116 |
echo "configure:2117: checking whether ${CC-cc} accepts -g" >&5 |
2163 |
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then |
2117 |
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then |
2164 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2118 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2165 |
else |
2119 |
else |
Lines 2195-2201
Link Here
|
2195 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2149 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2196 |
set dummy $ac_prog; ac_word=$2 |
2150 |
set dummy $ac_prog; ac_word=$2 |
2197 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2151 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2198 |
echo "configure:2199: checking for $ac_word" >&5 |
2152 |
echo "configure:2153: checking for $ac_word" >&5 |
2199 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
2153 |
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then |
2200 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2154 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2201 |
else |
2155 |
else |
Lines 2227-2233
Link Here
|
2227 |
|
2181 |
|
2228 |
|
2182 |
|
2229 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
2183 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 |
2230 |
echo "configure:2231: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 |
2184 |
echo "configure:2185: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 |
2231 |
|
2185 |
|
2232 |
ac_ext=C |
2186 |
ac_ext=C |
2233 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
2187 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
Lines 2238-2249
Link Here
|
2238 |
|
2192 |
|
2239 |
cat > conftest.$ac_ext << EOF |
2193 |
cat > conftest.$ac_ext << EOF |
2240 |
|
2194 |
|
2241 |
#line 2242 "configure" |
2195 |
#line 2196 "configure" |
2242 |
#include "confdefs.h" |
2196 |
#include "confdefs.h" |
2243 |
|
2197 |
|
2244 |
int main(){return(0);} |
2198 |
int main(){return(0);} |
2245 |
EOF |
2199 |
EOF |
2246 |
if { (eval echo configure:2247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
2200 |
if { (eval echo configure:2201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
2247 |
ac_cv_prog_cxx_works=yes |
2201 |
ac_cv_prog_cxx_works=yes |
2248 |
# If we can't run a trivial program, we are probably using a cross compiler. |
2202 |
# If we can't run a trivial program, we are probably using a cross compiler. |
2249 |
if (./conftest; exit) 2>/dev/null; then |
2203 |
if (./conftest; exit) 2>/dev/null; then |
Lines 2269-2280
Link Here
|
2269 |
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } |
2223 |
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } |
2270 |
fi |
2224 |
fi |
2271 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
2225 |
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 |
2272 |
echo "configure:2273: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 |
2226 |
echo "configure:2227: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 |
2273 |
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 |
2227 |
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 |
2274 |
cross_compiling=$ac_cv_prog_cxx_cross |
2228 |
cross_compiling=$ac_cv_prog_cxx_cross |
2275 |
|
2229 |
|
2276 |
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 |
2230 |
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 |
2277 |
echo "configure:2278: checking whether we are using GNU C++" >&5 |
2231 |
echo "configure:2232: checking whether we are using GNU C++" >&5 |
2278 |
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then |
2232 |
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then |
2279 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2233 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2280 |
else |
2234 |
else |
Lines 2283-2289
Link Here
|
2283 |
yes; |
2237 |
yes; |
2284 |
#endif |
2238 |
#endif |
2285 |
EOF |
2239 |
EOF |
2286 |
if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2287: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
2240 |
if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:2241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then |
2287 |
ac_cv_prog_gxx=yes |
2241 |
ac_cv_prog_gxx=yes |
2288 |
else |
2242 |
else |
2289 |
ac_cv_prog_gxx=no |
2243 |
ac_cv_prog_gxx=no |
Lines 2302-2308
Link Here
|
2302 |
ac_save_CXXFLAGS="$CXXFLAGS" |
2256 |
ac_save_CXXFLAGS="$CXXFLAGS" |
2303 |
CXXFLAGS= |
2257 |
CXXFLAGS= |
2304 |
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 |
2258 |
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 |
2305 |
echo "configure:2306: checking whether ${CXX-g++} accepts -g" >&5 |
2259 |
echo "configure:2260: checking whether ${CXX-g++} accepts -g" >&5 |
2306 |
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then |
2260 |
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then |
2307 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2261 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2308 |
else |
2262 |
else |
Lines 2333-2393
Link Here
|
2333 |
fi |
2287 |
fi |
2334 |
fi |
2288 |
fi |
2335 |
|
2289 |
|
2336 |
for ac_declaration in \ |
|
|
2337 |
''\ |
2338 |
'#include <stdlib.h>' \ |
2339 |
'extern "C" void std::exit (int) throw (); using std::exit;' \ |
2340 |
'extern "C" void std::exit (int); using std::exit;' \ |
2341 |
'extern "C" void exit (int) throw ();' \ |
2342 |
'extern "C" void exit (int);' \ |
2343 |
'void exit (int);' |
2344 |
do |
2345 |
cat > conftest.$ac_ext <<EOF |
2346 |
#line 2347 "configure" |
2347 |
#include "confdefs.h" |
2348 |
#include <stdlib.h> |
2349 |
$ac_declaration |
2350 |
int main() { |
2351 |
exit (42); |
2352 |
; return 0; } |
2353 |
EOF |
2354 |
if { (eval echo configure:2355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2355 |
: |
2356 |
else |
2357 |
echo "configure: failed program was:" >&5 |
2358 |
cat conftest.$ac_ext >&5 |
2359 |
rm -rf conftest* |
2360 |
continue |
2361 |
fi |
2362 |
rm -f conftest* |
2363 |
cat > conftest.$ac_ext <<EOF |
2364 |
#line 2365 "configure" |
2365 |
#include "confdefs.h" |
2366 |
$ac_declaration |
2367 |
int main() { |
2368 |
exit (42); |
2369 |
; return 0; } |
2370 |
EOF |
2371 |
if { (eval echo configure:2372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2372 |
rm -rf conftest* |
2373 |
break |
2374 |
else |
2375 |
echo "configure: failed program was:" >&5 |
2376 |
cat conftest.$ac_ext >&5 |
2377 |
fi |
2378 |
rm -f conftest* |
2379 |
done |
2380 |
if test -n "$ac_declaration"; then |
2381 |
echo '#ifdef __cplusplus' >>confdefs.h |
2382 |
echo $ac_declaration >>confdefs.h |
2383 |
echo '#endif' >>confdefs.h |
2384 |
fi |
2385 |
|
2386 |
|
2387 |
# Extract the first word of "ranlib", so it can be a program name with args. |
2290 |
# Extract the first word of "ranlib", so it can be a program name with args. |
2388 |
set dummy ranlib; ac_word=$2 |
2291 |
set dummy ranlib; ac_word=$2 |
2389 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2292 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2390 |
echo "configure:2391: checking for $ac_word" >&5 |
2293 |
echo "configure:2294: checking for $ac_word" >&5 |
2391 |
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then |
2294 |
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then |
2392 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2295 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2393 |
else |
2296 |
else |
Lines 2419-2425
Link Here
|
2419 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2322 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2420 |
set dummy $ac_prog; ac_word=$2 |
2323 |
set dummy $ac_prog; ac_word=$2 |
2421 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2324 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2422 |
echo "configure:2423: checking for $ac_word" >&5 |
2325 |
echo "configure:2326: checking for $ac_word" >&5 |
2423 |
if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then |
2326 |
if eval "test \"`echo '$''{'ac_cv_path_AS'+set}'`\" = set"; then |
2424 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2327 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2425 |
else |
2328 |
else |
Lines 2460-2466
Link Here
|
2460 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2363 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2461 |
set dummy $ac_prog; ac_word=$2 |
2364 |
set dummy $ac_prog; ac_word=$2 |
2462 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2365 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2463 |
echo "configure:2464: checking for $ac_word" >&5 |
2366 |
echo "configure:2367: checking for $ac_word" >&5 |
2464 |
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then |
2367 |
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then |
2465 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2368 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2466 |
else |
2369 |
else |
Lines 2495-2501
Link Here
|
2495 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2398 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2496 |
set dummy $ac_prog; ac_word=$2 |
2399 |
set dummy $ac_prog; ac_word=$2 |
2497 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2400 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2498 |
echo "configure:2499: checking for $ac_word" >&5 |
2401 |
echo "configure:2402: checking for $ac_word" >&5 |
2499 |
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then |
2402 |
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then |
2500 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2403 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2501 |
else |
2404 |
else |
Lines 2530-2536
Link Here
|
2530 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2433 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2531 |
set dummy $ac_prog; ac_word=$2 |
2434 |
set dummy $ac_prog; ac_word=$2 |
2532 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2435 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2533 |
echo "configure:2534: checking for $ac_word" >&5 |
2436 |
echo "configure:2437: checking for $ac_word" >&5 |
2534 |
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then |
2437 |
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then |
2535 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2438 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2536 |
else |
2439 |
else |
Lines 2565-2571
Link Here
|
2565 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2468 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2566 |
set dummy $ac_prog; ac_word=$2 |
2469 |
set dummy $ac_prog; ac_word=$2 |
2567 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2470 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2568 |
echo "configure:2569: checking for $ac_word" >&5 |
2471 |
echo "configure:2472: checking for $ac_word" >&5 |
2569 |
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then |
2472 |
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then |
2570 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2473 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2571 |
else |
2474 |
else |
Lines 2644-2655
Link Here
|
2644 |
fi |
2547 |
fi |
2645 |
fi |
2548 |
fi |
2646 |
|
2549 |
|
2647 |
for ac_prog in gawk mawk nawk awk |
2550 |
for ac_prog in mawk gawk nawk awk |
2648 |
do |
2551 |
do |
2649 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2552 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2650 |
set dummy $ac_prog; ac_word=$2 |
2553 |
set dummy $ac_prog; ac_word=$2 |
2651 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2554 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2652 |
echo "configure:2653: checking for $ac_word" >&5 |
2555 |
echo "configure:2556: checking for $ac_word" >&5 |
2653 |
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then |
2556 |
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then |
2654 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2557 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2655 |
else |
2558 |
else |
Lines 2689-2695
Link Here
|
2689 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2592 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
2690 |
set dummy $ac_prog; ac_word=$2 |
2593 |
set dummy $ac_prog; ac_word=$2 |
2691 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2594 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
2692 |
echo "configure:2693: checking for $ac_word" >&5 |
2595 |
echo "configure:2596: checking for $ac_word" >&5 |
2693 |
if eval "test \"`echo '$''{'ac_cv_prog_MIDL'+set}'`\" = set"; then |
2596 |
if eval "test \"`echo '$''{'ac_cv_prog_MIDL'+set}'`\" = set"; then |
2694 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2597 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2695 |
else |
2598 |
else |
Lines 2731-2744
Link Here
|
2731 |
cross_compiling=$ac_cv_prog_cc_cross |
2634 |
cross_compiling=$ac_cv_prog_cc_cross |
2732 |
|
2635 |
|
2733 |
cat > conftest.$ac_ext <<EOF |
2636 |
cat > conftest.$ac_ext <<EOF |
2734 |
#line 2735 "configure" |
2637 |
#line 2638 "configure" |
2735 |
#include "confdefs.h" |
2638 |
#include "confdefs.h" |
2736 |
#include <stdio.h> |
2639 |
#include <stdio.h> |
2737 |
int main() { |
2640 |
int main() { |
2738 |
printf("Hello World\n"); |
2641 |
printf("Hello World\n"); |
2739 |
; return 0; } |
2642 |
; return 0; } |
2740 |
EOF |
2643 |
EOF |
2741 |
if { (eval echo configure:2742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2644 |
if { (eval echo configure:2645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2742 |
: |
2645 |
: |
2743 |
else |
2646 |
else |
2744 |
echo "configure: failed program was:" >&5 |
2647 |
echo "configure: failed program was:" >&5 |
Lines 2756-2769
Link Here
|
2756 |
cross_compiling=$ac_cv_prog_cxx_cross |
2659 |
cross_compiling=$ac_cv_prog_cxx_cross |
2757 |
|
2660 |
|
2758 |
cat > conftest.$ac_ext <<EOF |
2661 |
cat > conftest.$ac_ext <<EOF |
2759 |
#line 2760 "configure" |
2662 |
#line 2663 "configure" |
2760 |
#include "confdefs.h" |
2663 |
#include "confdefs.h" |
2761 |
#include <new.h> |
2664 |
#include <new.h> |
2762 |
int main() { |
2665 |
int main() { |
2763 |
unsigned *test = new unsigned(42); |
2666 |
unsigned *test = new unsigned(42); |
2764 |
; return 0; } |
2667 |
; return 0; } |
2765 |
EOF |
2668 |
EOF |
2766 |
if { (eval echo configure:2767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2669 |
if { (eval echo configure:2670: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2767 |
: |
2670 |
: |
2768 |
else |
2671 |
else |
2769 |
echo "configure: failed program was:" >&5 |
2672 |
echo "configure: failed program was:" >&5 |
Lines 2817-2823
Link Here
|
2817 |
|
2720 |
|
2818 |
# Add flags if necessary |
2721 |
# Add flags if necessary |
2819 |
echo $ac_n "checking for midl flags""... $ac_c" 1>&6 |
2722 |
echo $ac_n "checking for midl flags""... $ac_c" 1>&6 |
2820 |
echo "configure:2821: checking for midl flags" >&5 |
2723 |
echo "configure:2724: checking for midl flags" >&5 |
2821 |
if test \( "$_MIDL_MAJOR_VERSION" -gt "6" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" -gt "0" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" -gt "359" \); then |
2724 |
if test \( "$_MIDL_MAJOR_VERSION" -gt "6" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" -gt "0" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" -gt "359" \); then |
2822 |
# Starting with MIDL version 6.0.359, the MIDL compiler |
2725 |
# Starting with MIDL version 6.0.359, the MIDL compiler |
2823 |
# generates /Oicf /robust stubs by default, which is not |
2726 |
# generates /Oicf /robust stubs by default, which is not |
Lines 2836-2844
Link Here
|
2836 |
_W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'` |
2739 |
_W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'` |
2837 |
_W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'` |
2740 |
_W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'` |
2838 |
echo $ac_n "checking for w32api version >= $W32API_VERSION""... $ac_c" 1>&6 |
2741 |
echo $ac_n "checking for w32api version >= $W32API_VERSION""... $ac_c" 1>&6 |
2839 |
echo "configure:2840: checking for w32api version >= $W32API_VERSION" >&5 |
2742 |
echo "configure:2743: checking for w32api version >= $W32API_VERSION" >&5 |
2840 |
cat > conftest.$ac_ext <<EOF |
2743 |
cat > conftest.$ac_ext <<EOF |
2841 |
#line 2842 "configure" |
2744 |
#line 2745 "configure" |
2842 |
#include "confdefs.h" |
2745 |
#include "confdefs.h" |
2843 |
#include <w32api.h> |
2746 |
#include <w32api.h> |
2844 |
int main() { |
2747 |
int main() { |
Lines 2850-2856
Link Here
|
2850 |
|
2753 |
|
2851 |
; return 0; } |
2754 |
; return 0; } |
2852 |
EOF |
2755 |
EOF |
2853 |
if { (eval echo configure:2854: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2756 |
if { (eval echo configure:2757: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
2854 |
rm -rf conftest* |
2757 |
rm -rf conftest* |
2855 |
res=yes |
2758 |
res=yes |
2856 |
else |
2759 |
else |
Lines 2866-2872
Link Here
|
2866 |
fi |
2769 |
fi |
2867 |
# Check windres version |
2770 |
# Check windres version |
2868 |
echo $ac_n "checking for windres version >= $WINDRES_VERSION""... $ac_c" 1>&6 |
2771 |
echo $ac_n "checking for windres version >= $WINDRES_VERSION""... $ac_c" 1>&6 |
2869 |
echo "configure:2870: checking for windres version >= $WINDRES_VERSION" >&5 |
2772 |
echo "configure:2773: checking for windres version >= $WINDRES_VERSION" >&5 |
2870 |
_WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'` |
2773 |
_WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'` |
2871 |
echo "$ac_t""$_WINDRES_VERSION" 1>&6 |
2774 |
echo "$ac_t""$_WINDRES_VERSION" 1>&6 |
2872 |
_WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'` |
2775 |
_WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'` |
Lines 2895-2901
Link Here
|
2895 |
SKIP_COMPILER_CHECKS=1 |
2798 |
SKIP_COMPILER_CHECKS=1 |
2896 |
SKIP_LIBRARY_CHECKS=1 |
2799 |
SKIP_LIBRARY_CHECKS=1 |
2897 |
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 |
2800 |
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 |
2898 |
echo "configure:2899: checking how to run the C preprocessor" >&5 |
2801 |
echo "configure:2802: checking how to run the C preprocessor" >&5 |
2899 |
# On Suns, sometimes $CPP names a directory. |
2802 |
# On Suns, sometimes $CPP names a directory. |
2900 |
if test -n "$CPP" && test -d "$CPP"; then |
2803 |
if test -n "$CPP" && test -d "$CPP"; then |
2901 |
CPP= |
2804 |
CPP= |
Lines 2910-2922
Link Here
|
2910 |
# On the NeXT, cc -E runs the code through the compiler's parser, |
2813 |
# On the NeXT, cc -E runs the code through the compiler's parser, |
2911 |
# not just through cpp. |
2814 |
# not just through cpp. |
2912 |
cat > conftest.$ac_ext <<EOF |
2815 |
cat > conftest.$ac_ext <<EOF |
2913 |
#line 2914 "configure" |
2816 |
#line 2817 "configure" |
2914 |
#include "confdefs.h" |
2817 |
#include "confdefs.h" |
2915 |
#include <assert.h> |
2818 |
#include <assert.h> |
2916 |
Syntax Error |
2819 |
Syntax Error |
2917 |
EOF |
2820 |
EOF |
2918 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2821 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2919 |
{ (eval echo configure:2920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2822 |
{ (eval echo configure:2823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2920 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2823 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2921 |
if test -z "$ac_err"; then |
2824 |
if test -z "$ac_err"; then |
2922 |
: |
2825 |
: |
Lines 2927-2939
Link Here
|
2927 |
rm -rf conftest* |
2830 |
rm -rf conftest* |
2928 |
CPP="${CC-cc} -E -traditional-cpp" |
2831 |
CPP="${CC-cc} -E -traditional-cpp" |
2929 |
cat > conftest.$ac_ext <<EOF |
2832 |
cat > conftest.$ac_ext <<EOF |
2930 |
#line 2931 "configure" |
2833 |
#line 2834 "configure" |
2931 |
#include "confdefs.h" |
2834 |
#include "confdefs.h" |
2932 |
#include <assert.h> |
2835 |
#include <assert.h> |
2933 |
Syntax Error |
2836 |
Syntax Error |
2934 |
EOF |
2837 |
EOF |
2935 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2838 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2936 |
{ (eval echo configure:2937: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2839 |
{ (eval echo configure:2840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2937 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2840 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2938 |
if test -z "$ac_err"; then |
2841 |
if test -z "$ac_err"; then |
2939 |
: |
2842 |
: |
Lines 2944-2956
Link Here
|
2944 |
rm -rf conftest* |
2847 |
rm -rf conftest* |
2945 |
CPP="${CC-cc} -nologo -E" |
2848 |
CPP="${CC-cc} -nologo -E" |
2946 |
cat > conftest.$ac_ext <<EOF |
2849 |
cat > conftest.$ac_ext <<EOF |
2947 |
#line 2948 "configure" |
2850 |
#line 2851 "configure" |
2948 |
#include "confdefs.h" |
2851 |
#include "confdefs.h" |
2949 |
#include <assert.h> |
2852 |
#include <assert.h> |
2950 |
Syntax Error |
2853 |
Syntax Error |
2951 |
EOF |
2854 |
EOF |
2952 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2855 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2953 |
{ (eval echo configure:2954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2856 |
{ (eval echo configure:2857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2954 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2857 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2955 |
if test -z "$ac_err"; then |
2858 |
if test -z "$ac_err"; then |
2956 |
: |
2859 |
: |
Lines 2978-2994
Link Here
|
2978 |
do |
2881 |
do |
2979 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
2882 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
2980 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
2883 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
2981 |
echo "configure:2982: checking for $ac_hdr" >&5 |
2884 |
echo "configure:2885: checking for $ac_hdr" >&5 |
2982 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
2885 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
2983 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2886 |
echo $ac_n "(cached) $ac_c" 1>&6 |
2984 |
else |
2887 |
else |
2985 |
cat > conftest.$ac_ext <<EOF |
2888 |
cat > conftest.$ac_ext <<EOF |
2986 |
#line 2987 "configure" |
2889 |
#line 2890 "configure" |
2987 |
#include "confdefs.h" |
2890 |
#include "confdefs.h" |
2988 |
#include <$ac_hdr> |
2891 |
#include <$ac_hdr> |
2989 |
EOF |
2892 |
EOF |
2990 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2893 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
2991 |
{ (eval echo configure:2992: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2894 |
{ (eval echo configure:2895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
2992 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2895 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
2993 |
if test -z "$ac_err"; then |
2896 |
if test -z "$ac_err"; then |
2994 |
rm -rf conftest* |
2897 |
rm -rf conftest* |
Lines 3019-3028
Link Here
|
3019 |
if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then |
2922 |
if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then |
3020 |
if test "x$CC" != xcc; then |
2923 |
if test "x$CC" != xcc; then |
3021 |
echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 |
2924 |
echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6 |
3022 |
echo "configure:3023: checking whether $CC and cc understand -c and -o together" >&5 |
2925 |
echo "configure:2926: checking whether $CC and cc understand -c and -o together" >&5 |
3023 |
else |
2926 |
else |
3024 |
echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 |
2927 |
echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6 |
3025 |
echo "configure:3026: checking whether cc understands -c and -o together" >&5 |
2928 |
echo "configure:2929: checking whether cc understands -c and -o together" >&5 |
3026 |
fi |
2929 |
fi |
3027 |
set dummy $CC; ac_cc="`echo $2 | |
2930 |
set dummy $CC; ac_cc="`echo $2 | |
3028 |
sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" |
2931 |
sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`" |
Lines 3034-3049
Link Here
|
3034 |
# We do the test twice because some compilers refuse to overwrite an |
2937 |
# We do the test twice because some compilers refuse to overwrite an |
3035 |
# existing .o file with -o, though they will create one. |
2938 |
# existing .o file with -o, though they will create one. |
3036 |
ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' |
2939 |
ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5' |
3037 |
if { (eval echo configure:3038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && |
2940 |
if { (eval echo configure:2941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && |
3038 |
test -f conftest.o && { (eval echo configure:3039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; |
2941 |
test -f conftest.o && { (eval echo configure:2942: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; |
3039 |
then |
2942 |
then |
3040 |
eval ac_cv_prog_cc_${ac_cc}_c_o=yes |
2943 |
eval ac_cv_prog_cc_${ac_cc}_c_o=yes |
3041 |
if test "x$CC" != xcc; then |
2944 |
if test "x$CC" != xcc; then |
3042 |
# Test first that cc exists at all. |
2945 |
# Test first that cc exists at all. |
3043 |
if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:3044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then |
2946 |
if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:2947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then |
3044 |
ac_try='cc -c conftest.c -o conftest.o 1>&5' |
2947 |
ac_try='cc -c conftest.c -o conftest.o 1>&5' |
3045 |
if { (eval echo configure:3046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && |
2948 |
if { (eval echo configure:2949: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } && |
3046 |
test -f conftest.o && { (eval echo configure:3047: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; |
2949 |
test -f conftest.o && { (eval echo configure:2950: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; |
3047 |
then |
2950 |
then |
3048 |
# cc works too. |
2951 |
# cc works too. |
3049 |
: |
2952 |
: |
Lines 3104-3110
Link Here
|
3104 |
fi |
3007 |
fi |
3105 |
|
3008 |
|
3106 |
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 |
3009 |
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 |
3107 |
echo "configure:3108: checking how to run the C preprocessor" >&5 |
3010 |
echo "configure:3011: checking how to run the C preprocessor" >&5 |
3108 |
# On Suns, sometimes $CPP names a directory. |
3011 |
# On Suns, sometimes $CPP names a directory. |
3109 |
if test -n "$CPP" && test -d "$CPP"; then |
3012 |
if test -n "$CPP" && test -d "$CPP"; then |
3110 |
CPP= |
3013 |
CPP= |
Lines 3119-3131
Link Here
|
3119 |
# On the NeXT, cc -E runs the code through the compiler's parser, |
3022 |
# On the NeXT, cc -E runs the code through the compiler's parser, |
3120 |
# not just through cpp. |
3023 |
# not just through cpp. |
3121 |
cat > conftest.$ac_ext <<EOF |
3024 |
cat > conftest.$ac_ext <<EOF |
3122 |
#line 3123 "configure" |
3025 |
#line 3026 "configure" |
3123 |
#include "confdefs.h" |
3026 |
#include "confdefs.h" |
3124 |
#include <assert.h> |
3027 |
#include <assert.h> |
3125 |
Syntax Error |
3028 |
Syntax Error |
3126 |
EOF |
3029 |
EOF |
3127 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3030 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3128 |
{ (eval echo configure:3129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3031 |
{ (eval echo configure:3032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3129 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3032 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3130 |
if test -z "$ac_err"; then |
3033 |
if test -z "$ac_err"; then |
3131 |
: |
3034 |
: |
Lines 3136-3148
Link Here
|
3136 |
rm -rf conftest* |
3039 |
rm -rf conftest* |
3137 |
CPP="${CC-cc} -E -traditional-cpp" |
3040 |
CPP="${CC-cc} -E -traditional-cpp" |
3138 |
cat > conftest.$ac_ext <<EOF |
3041 |
cat > conftest.$ac_ext <<EOF |
3139 |
#line 3140 "configure" |
3042 |
#line 3043 "configure" |
3140 |
#include "confdefs.h" |
3043 |
#include "confdefs.h" |
3141 |
#include <assert.h> |
3044 |
#include <assert.h> |
3142 |
Syntax Error |
3045 |
Syntax Error |
3143 |
EOF |
3046 |
EOF |
3144 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3047 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3145 |
{ (eval echo configure:3146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3048 |
{ (eval echo configure:3049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3146 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3049 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3147 |
if test -z "$ac_err"; then |
3050 |
if test -z "$ac_err"; then |
3148 |
: |
3051 |
: |
Lines 3153-3165
Link Here
|
3153 |
rm -rf conftest* |
3056 |
rm -rf conftest* |
3154 |
CPP="${CC-cc} -nologo -E" |
3057 |
CPP="${CC-cc} -nologo -E" |
3155 |
cat > conftest.$ac_ext <<EOF |
3058 |
cat > conftest.$ac_ext <<EOF |
3156 |
#line 3157 "configure" |
3059 |
#line 3060 "configure" |
3157 |
#include "confdefs.h" |
3060 |
#include "confdefs.h" |
3158 |
#include <assert.h> |
3061 |
#include <assert.h> |
3159 |
Syntax Error |
3062 |
Syntax Error |
3160 |
EOF |
3063 |
EOF |
3161 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3064 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3162 |
{ (eval echo configure:3163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3065 |
{ (eval echo configure:3066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3163 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3066 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3164 |
if test -z "$ac_err"; then |
3067 |
if test -z "$ac_err"; then |
3165 |
: |
3068 |
: |
Lines 3184-3190
Link Here
|
3184 |
echo "$ac_t""$CPP" 1>&6 |
3087 |
echo "$ac_t""$CPP" 1>&6 |
3185 |
|
3088 |
|
3186 |
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 |
3089 |
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 |
3187 |
echo "configure:3188: checking how to run the C++ preprocessor" >&5 |
3090 |
echo "configure:3091: checking how to run the C++ preprocessor" >&5 |
3188 |
if test -z "$CXXCPP"; then |
3091 |
if test -z "$CXXCPP"; then |
3189 |
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then |
3092 |
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then |
3190 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3093 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 3197-3208
Link Here
|
3197 |
cross_compiling=$ac_cv_prog_cxx_cross |
3100 |
cross_compiling=$ac_cv_prog_cxx_cross |
3198 |
CXXCPP="${CXX-g++} -E" |
3101 |
CXXCPP="${CXX-g++} -E" |
3199 |
cat > conftest.$ac_ext <<EOF |
3102 |
cat > conftest.$ac_ext <<EOF |
3200 |
#line 3201 "configure" |
3103 |
#line 3104 "configure" |
3201 |
#include "confdefs.h" |
3104 |
#include "confdefs.h" |
3202 |
#include <stdlib.h> |
3105 |
#include <stdlib.h> |
3203 |
EOF |
3106 |
EOF |
3204 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3107 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3205 |
{ (eval echo configure:3206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3108 |
{ (eval echo configure:3109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3206 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3109 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3207 |
if test -z "$ac_err"; then |
3110 |
if test -z "$ac_err"; then |
3208 |
: |
3111 |
: |
Lines 3238-3244
Link Here
|
3238 |
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" |
3141 |
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" |
3239 |
# ./install, which can be erroneously created by make from ./install.sh. |
3142 |
# ./install, which can be erroneously created by make from ./install.sh. |
3240 |
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 |
3143 |
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 |
3241 |
echo "configure:3242: checking for a BSD compatible install" >&5 |
3144 |
echo "configure:3145: checking for a BSD compatible install" >&5 |
3242 |
if test -z "$INSTALL"; then |
3145 |
if test -z "$INSTALL"; then |
3243 |
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then |
3146 |
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then |
3244 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3147 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 3291-3297
Link Here
|
3291 |
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' |
3194 |
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' |
3292 |
|
3195 |
|
3293 |
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 |
3196 |
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 |
3294 |
echo "configure:3295: checking whether ln -s works" >&5 |
3197 |
echo "configure:3198: checking whether ln -s works" >&5 |
3295 |
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then |
3198 |
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then |
3296 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3199 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3297 |
else |
3200 |
else |
Lines 3316-3322
Link Here
|
3316 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3219 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3317 |
set dummy $ac_prog; ac_word=$2 |
3220 |
set dummy $ac_prog; ac_word=$2 |
3318 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3221 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3319 |
echo "configure:3320: checking for $ac_word" >&5 |
3222 |
echo "configure:3223: checking for $ac_word" >&5 |
3320 |
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then |
3223 |
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then |
3321 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3224 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3322 |
else |
3225 |
else |
Lines 3356-3362
Link Here
|
3356 |
fi |
3259 |
fi |
3357 |
|
3260 |
|
3358 |
echo $ac_n "checking for minimum required perl version >= $PERL_VERSION""... $ac_c" 1>&6 |
3261 |
echo $ac_n "checking for minimum required perl version >= $PERL_VERSION""... $ac_c" 1>&6 |
3359 |
echo "configure:3360: checking for minimum required perl version >= $PERL_VERSION" >&5 |
3262 |
echo "configure:3263: checking for minimum required perl version >= $PERL_VERSION" >&5 |
3360 |
_perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5` |
3263 |
_perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5` |
3361 |
_perl_res=$? |
3264 |
_perl_res=$? |
3362 |
echo "$ac_t""$_perl_version" 1>&6 |
3265 |
echo "$ac_t""$_perl_version" 1>&6 |
Lines 3366-3372
Link Here
|
3366 |
fi |
3269 |
fi |
3367 |
|
3270 |
|
3368 |
echo $ac_n "checking for full perl installation""... $ac_c" 1>&6 |
3271 |
echo $ac_n "checking for full perl installation""... $ac_c" 1>&6 |
3369 |
echo "configure:3370: checking for full perl installation" >&5 |
3272 |
echo "configure:3273: checking for full perl installation" >&5 |
3370 |
_perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5` |
3273 |
_perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5` |
3371 |
_perl_res=$? |
3274 |
_perl_res=$? |
3372 |
if test "$_perl_res" != 0; then |
3275 |
if test "$_perl_res" != 0; then |
Lines 3379-3385
Link Here
|
3379 |
# Extract the first word of "doxygen", so it can be a program name with args. |
3282 |
# Extract the first word of "doxygen", so it can be a program name with args. |
3380 |
set dummy doxygen; ac_word=$2 |
3283 |
set dummy doxygen; ac_word=$2 |
3381 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3284 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3382 |
echo "configure:3383: checking for $ac_word" >&5 |
3285 |
echo "configure:3286: checking for $ac_word" >&5 |
3383 |
if eval "test \"`echo '$''{'ac_cv_path_DOXYGEN'+set}'`\" = set"; then |
3286 |
if eval "test \"`echo '$''{'ac_cv_path_DOXYGEN'+set}'`\" = set"; then |
3384 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3287 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3385 |
else |
3288 |
else |
Lines 3415-3421
Link Here
|
3415 |
# Extract the first word of "whoami", so it can be a program name with args. |
3318 |
# Extract the first word of "whoami", so it can be a program name with args. |
3416 |
set dummy whoami; ac_word=$2 |
3319 |
set dummy whoami; ac_word=$2 |
3417 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3320 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3418 |
echo "configure:3419: checking for $ac_word" >&5 |
3321 |
echo "configure:3322: checking for $ac_word" >&5 |
3419 |
if eval "test \"`echo '$''{'ac_cv_path_WHOAMI'+set}'`\" = set"; then |
3322 |
if eval "test \"`echo '$''{'ac_cv_path_WHOAMI'+set}'`\" = set"; then |
3420 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3323 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3421 |
else |
3324 |
else |
Lines 3451-3457
Link Here
|
3451 |
# Extract the first word of "autoconf", so it can be a program name with args. |
3354 |
# Extract the first word of "autoconf", so it can be a program name with args. |
3452 |
set dummy autoconf; ac_word=$2 |
3355 |
set dummy autoconf; ac_word=$2 |
3453 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3356 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3454 |
echo "configure:3455: checking for $ac_word" >&5 |
3357 |
echo "configure:3358: checking for $ac_word" >&5 |
3455 |
if eval "test \"`echo '$''{'ac_cv_path_AUTOCONF'+set}'`\" = set"; then |
3358 |
if eval "test \"`echo '$''{'ac_cv_path_AUTOCONF'+set}'`\" = set"; then |
3456 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3359 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3457 |
else |
3360 |
else |
Lines 3487-3493
Link Here
|
3487 |
# Extract the first word of "unzip", so it can be a program name with args. |
3390 |
# Extract the first word of "unzip", so it can be a program name with args. |
3488 |
set dummy unzip; ac_word=$2 |
3391 |
set dummy unzip; ac_word=$2 |
3489 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3392 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3490 |
echo "configure:3491: checking for $ac_word" >&5 |
3393 |
echo "configure:3394: checking for $ac_word" >&5 |
3491 |
if eval "test \"`echo '$''{'ac_cv_path_UNZIP'+set}'`\" = set"; then |
3394 |
if eval "test \"`echo '$''{'ac_cv_path_UNZIP'+set}'`\" = set"; then |
3492 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3395 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3493 |
else |
3396 |
else |
Lines 3525-3531
Link Here
|
3525 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3428 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3526 |
set dummy $ac_prog; ac_word=$2 |
3429 |
set dummy $ac_prog; ac_word=$2 |
3527 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3430 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3528 |
echo "configure:3529: checking for $ac_word" >&5 |
3431 |
echo "configure:3432: checking for $ac_word" >&5 |
3529 |
if eval "test \"`echo '$''{'ac_cv_path_ZIP'+set}'`\" = set"; then |
3432 |
if eval "test \"`echo '$''{'ac_cv_path_ZIP'+set}'`\" = set"; then |
3530 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3433 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3531 |
else |
3434 |
else |
Lines 3566-3572
Link Here
|
3566 |
# Extract the first word of "makedepend", so it can be a program name with args. |
3469 |
# Extract the first word of "makedepend", so it can be a program name with args. |
3567 |
set dummy makedepend; ac_word=$2 |
3470 |
set dummy makedepend; ac_word=$2 |
3568 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3471 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3569 |
echo "configure:3570: checking for $ac_word" >&5 |
3472 |
echo "configure:3473: checking for $ac_word" >&5 |
3570 |
if eval "test \"`echo '$''{'ac_cv_path_SYSTEM_MAKEDEPEND'+set}'`\" = set"; then |
3473 |
if eval "test \"`echo '$''{'ac_cv_path_SYSTEM_MAKEDEPEND'+set}'`\" = set"; then |
3571 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3474 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3572 |
else |
3475 |
else |
Lines 3601-3607
Link Here
|
3601 |
# Extract the first word of "xargs", so it can be a program name with args. |
3504 |
# Extract the first word of "xargs", so it can be a program name with args. |
3602 |
set dummy xargs; ac_word=$2 |
3505 |
set dummy xargs; ac_word=$2 |
3603 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3506 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3604 |
echo "configure:3605: checking for $ac_word" >&5 |
3507 |
echo "configure:3508: checking for $ac_word" >&5 |
3605 |
if eval "test \"`echo '$''{'ac_cv_path_XARGS'+set}'`\" = set"; then |
3508 |
if eval "test \"`echo '$''{'ac_cv_path_XARGS'+set}'`\" = set"; then |
3606 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3509 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3607 |
else |
3510 |
else |
Lines 3643-3649
Link Here
|
3643 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3546 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3644 |
set dummy $ac_prog; ac_word=$2 |
3547 |
set dummy $ac_prog; ac_word=$2 |
3645 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3548 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3646 |
echo "configure:3647: checking for $ac_word" >&5 |
3549 |
echo "configure:3550: checking for $ac_word" >&5 |
3647 |
if eval "test \"`echo '$''{'ac_cv_path_PBBUILD'+set}'`\" = set"; then |
3550 |
if eval "test \"`echo '$''{'ac_cv_path_PBBUILD'+set}'`\" = set"; then |
3648 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3551 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3649 |
else |
3552 |
else |
Lines 3688-3694
Link Here
|
3688 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3591 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3689 |
set dummy $ac_prog; ac_word=$2 |
3592 |
set dummy $ac_prog; ac_word=$2 |
3690 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3593 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3691 |
echo "configure:3692: checking for $ac_word" >&5 |
3594 |
echo "configure:3595: checking for $ac_word" >&5 |
3692 |
if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then |
3595 |
if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then |
3693 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3596 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3694 |
else |
3597 |
else |
Lines 3731-3737
Link Here
|
3731 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3634 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
3732 |
set dummy $ac_prog; ac_word=$2 |
3635 |
set dummy $ac_prog; ac_word=$2 |
3733 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3636 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
3734 |
echo "configure:3735: checking for $ac_word" >&5 |
3637 |
echo "configure:3638: checking for $ac_word" >&5 |
3735 |
if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then |
3638 |
if eval "test \"`echo '$''{'ac_cv_path_MAKE'+set}'`\" = set"; then |
3736 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3639 |
echo $ac_n "(cached) $ac_c" 1>&6 |
3737 |
else |
3640 |
else |
Lines 3797-3803
Link Here
|
3797 |
# Uses ac_ vars as temps to allow command line to override cache and checks. |
3700 |
# Uses ac_ vars as temps to allow command line to override cache and checks. |
3798 |
# --without-x overrides everything else, but does not touch the cache. |
3701 |
# --without-x overrides everything else, but does not touch the cache. |
3799 |
echo $ac_n "checking for X""... $ac_c" 1>&6 |
3702 |
echo $ac_n "checking for X""... $ac_c" 1>&6 |
3800 |
echo "configure:3801: checking for X" >&5 |
3703 |
echo "configure:3704: checking for X" >&5 |
3801 |
|
3704 |
|
3802 |
# Check whether --with-x or --without-x was given. |
3705 |
# Check whether --with-x or --without-x was given. |
3803 |
if test "${with_x+set}" = set; then |
3706 |
if test "${with_x+set}" = set; then |
Lines 3859-3870
Link Here
|
3859 |
|
3762 |
|
3860 |
# First, try using that file with no special directory specified. |
3763 |
# First, try using that file with no special directory specified. |
3861 |
cat > conftest.$ac_ext <<EOF |
3764 |
cat > conftest.$ac_ext <<EOF |
3862 |
#line 3863 "configure" |
3765 |
#line 3766 "configure" |
3863 |
#include "confdefs.h" |
3766 |
#include "confdefs.h" |
3864 |
#include <$x_direct_test_include> |
3767 |
#include <$x_direct_test_include> |
3865 |
EOF |
3768 |
EOF |
3866 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3769 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
3867 |
{ (eval echo configure:3868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3770 |
{ (eval echo configure:3771: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
3868 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3771 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
3869 |
if test -z "$ac_err"; then |
3772 |
if test -z "$ac_err"; then |
3870 |
rm -rf conftest* |
3773 |
rm -rf conftest* |
Lines 3933-3946
Link Here
|
3933 |
ac_save_LIBS="$LIBS" |
3836 |
ac_save_LIBS="$LIBS" |
3934 |
LIBS="-l$x_direct_test_library $LIBS" |
3837 |
LIBS="-l$x_direct_test_library $LIBS" |
3935 |
cat > conftest.$ac_ext <<EOF |
3838 |
cat > conftest.$ac_ext <<EOF |
3936 |
#line 3937 "configure" |
3839 |
#line 3840 "configure" |
3937 |
#include "confdefs.h" |
3840 |
#include "confdefs.h" |
3938 |
|
3841 |
|
3939 |
int main() { |
3842 |
int main() { |
3940 |
${x_direct_test_function}() |
3843 |
${x_direct_test_function}() |
3941 |
; return 0; } |
3844 |
; return 0; } |
3942 |
EOF |
3845 |
EOF |
3943 |
if { (eval echo configure:3944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
3846 |
if { (eval echo configure:3847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
3944 |
rm -rf conftest* |
3847 |
rm -rf conftest* |
3945 |
LIBS="$ac_save_LIBS" |
3848 |
LIBS="$ac_save_LIBS" |
3946 |
# We can link X programs with no special library path. |
3849 |
# We can link X programs with no special library path. |
Lines 4046-4062
Link Here
|
4046 |
case "`(uname -sr) 2>/dev/null`" in |
3949 |
case "`(uname -sr) 2>/dev/null`" in |
4047 |
"SunOS 5"*) |
3950 |
"SunOS 5"*) |
4048 |
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 |
3951 |
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 |
4049 |
echo "configure:4050: checking whether -R must be followed by a space" >&5 |
3952 |
echo "configure:3953: checking whether -R must be followed by a space" >&5 |
4050 |
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" |
3953 |
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" |
4051 |
cat > conftest.$ac_ext <<EOF |
3954 |
cat > conftest.$ac_ext <<EOF |
4052 |
#line 4053 "configure" |
3955 |
#line 3956 "configure" |
4053 |
#include "confdefs.h" |
3956 |
#include "confdefs.h" |
4054 |
|
3957 |
|
4055 |
int main() { |
3958 |
int main() { |
4056 |
|
3959 |
|
4057 |
; return 0; } |
3960 |
; return 0; } |
4058 |
EOF |
3961 |
EOF |
4059 |
if { (eval echo configure:4060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
3962 |
if { (eval echo configure:3963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4060 |
rm -rf conftest* |
3963 |
rm -rf conftest* |
4061 |
ac_R_nospace=yes |
3964 |
ac_R_nospace=yes |
4062 |
else |
3965 |
else |
Lines 4072-4085
Link Here
|
4072 |
else |
3975 |
else |
4073 |
LIBS="$ac_xsave_LIBS -R $x_libraries" |
3976 |
LIBS="$ac_xsave_LIBS -R $x_libraries" |
4074 |
cat > conftest.$ac_ext <<EOF |
3977 |
cat > conftest.$ac_ext <<EOF |
4075 |
#line 4076 "configure" |
3978 |
#line 3979 "configure" |
4076 |
#include "confdefs.h" |
3979 |
#include "confdefs.h" |
4077 |
|
3980 |
|
4078 |
int main() { |
3981 |
int main() { |
4079 |
|
3982 |
|
4080 |
; return 0; } |
3983 |
; return 0; } |
4081 |
EOF |
3984 |
EOF |
4082 |
if { (eval echo configure:4083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
3985 |
if { (eval echo configure:3986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4083 |
rm -rf conftest* |
3986 |
rm -rf conftest* |
4084 |
ac_R_space=yes |
3987 |
ac_R_space=yes |
4085 |
else |
3988 |
else |
Lines 4111-4117
Link Here
|
4111 |
# libraries were built with DECnet support. And karl@cs.umb.edu says |
4014 |
# libraries were built with DECnet support. And karl@cs.umb.edu says |
4112 |
# the Alpha needs dnet_stub (dnet does not exist). |
4015 |
# the Alpha needs dnet_stub (dnet does not exist). |
4113 |
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 |
4016 |
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 |
4114 |
echo "configure:4115: checking for dnet_ntoa in -ldnet" >&5 |
4017 |
echo "configure:4018: checking for dnet_ntoa in -ldnet" >&5 |
4115 |
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` |
4018 |
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` |
4116 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4019 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4117 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4020 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4119-4125
Link Here
|
4119 |
ac_save_LIBS="$LIBS" |
4022 |
ac_save_LIBS="$LIBS" |
4120 |
LIBS="-ldnet $LIBS" |
4023 |
LIBS="-ldnet $LIBS" |
4121 |
cat > conftest.$ac_ext <<EOF |
4024 |
cat > conftest.$ac_ext <<EOF |
4122 |
#line 4123 "configure" |
4025 |
#line 4026 "configure" |
4123 |
#include "confdefs.h" |
4026 |
#include "confdefs.h" |
4124 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4027 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4125 |
/* We use char because int might match the return type of a gcc2 |
4028 |
/* We use char because int might match the return type of a gcc2 |
Lines 4130-4136
Link Here
|
4130 |
dnet_ntoa() |
4033 |
dnet_ntoa() |
4131 |
; return 0; } |
4034 |
; return 0; } |
4132 |
EOF |
4035 |
EOF |
4133 |
if { (eval echo configure:4134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4036 |
if { (eval echo configure:4037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4134 |
rm -rf conftest* |
4037 |
rm -rf conftest* |
4135 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4038 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4136 |
else |
4039 |
else |
Lines 4152-4158
Link Here
|
4152 |
|
4055 |
|
4153 |
if test $ac_cv_lib_dnet_dnet_ntoa = no; then |
4056 |
if test $ac_cv_lib_dnet_dnet_ntoa = no; then |
4154 |
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 |
4057 |
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 |
4155 |
echo "configure:4156: checking for dnet_ntoa in -ldnet_stub" >&5 |
4058 |
echo "configure:4059: checking for dnet_ntoa in -ldnet_stub" >&5 |
4156 |
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` |
4059 |
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` |
4157 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4060 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4158 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4061 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4160-4166
Link Here
|
4160 |
ac_save_LIBS="$LIBS" |
4063 |
ac_save_LIBS="$LIBS" |
4161 |
LIBS="-ldnet_stub $LIBS" |
4064 |
LIBS="-ldnet_stub $LIBS" |
4162 |
cat > conftest.$ac_ext <<EOF |
4065 |
cat > conftest.$ac_ext <<EOF |
4163 |
#line 4164 "configure" |
4066 |
#line 4067 "configure" |
4164 |
#include "confdefs.h" |
4067 |
#include "confdefs.h" |
4165 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4068 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4166 |
/* We use char because int might match the return type of a gcc2 |
4069 |
/* We use char because int might match the return type of a gcc2 |
Lines 4171-4177
Link Here
|
4171 |
dnet_ntoa() |
4074 |
dnet_ntoa() |
4172 |
; return 0; } |
4075 |
; return 0; } |
4173 |
EOF |
4076 |
EOF |
4174 |
if { (eval echo configure:4175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4077 |
if { (eval echo configure:4078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4175 |
rm -rf conftest* |
4078 |
rm -rf conftest* |
4176 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4079 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4177 |
else |
4080 |
else |
Lines 4200-4211
Link Here
|
4200 |
# The nsl library prevents programs from opening the X display |
4103 |
# The nsl library prevents programs from opening the X display |
4201 |
# on Irix 5.2, according to dickey@clark.net. |
4104 |
# on Irix 5.2, according to dickey@clark.net. |
4202 |
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 |
4105 |
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 |
4203 |
echo "configure:4204: checking for gethostbyname" >&5 |
4106 |
echo "configure:4107: checking for gethostbyname" >&5 |
4204 |
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then |
4107 |
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then |
4205 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4108 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4206 |
else |
4109 |
else |
4207 |
cat > conftest.$ac_ext <<EOF |
4110 |
cat > conftest.$ac_ext <<EOF |
4208 |
#line 4209 "configure" |
4111 |
#line 4112 "configure" |
4209 |
#include "confdefs.h" |
4112 |
#include "confdefs.h" |
4210 |
/* System header to define __stub macros and hopefully few prototypes, |
4113 |
/* System header to define __stub macros and hopefully few prototypes, |
4211 |
which can conflict with char gethostbyname(); below. */ |
4114 |
which can conflict with char gethostbyname(); below. */ |
Lines 4228-4234
Link Here
|
4228 |
|
4131 |
|
4229 |
; return 0; } |
4132 |
; return 0; } |
4230 |
EOF |
4133 |
EOF |
4231 |
if { (eval echo configure:4232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4134 |
if { (eval echo configure:4135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4232 |
rm -rf conftest* |
4135 |
rm -rf conftest* |
4233 |
eval "ac_cv_func_gethostbyname=yes" |
4136 |
eval "ac_cv_func_gethostbyname=yes" |
4234 |
else |
4137 |
else |
Lines 4249-4255
Link Here
|
4249 |
|
4152 |
|
4250 |
if test $ac_cv_func_gethostbyname = no; then |
4153 |
if test $ac_cv_func_gethostbyname = no; then |
4251 |
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 |
4154 |
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 |
4252 |
echo "configure:4253: checking for gethostbyname in -lnsl" >&5 |
4155 |
echo "configure:4156: checking for gethostbyname in -lnsl" >&5 |
4253 |
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` |
4156 |
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` |
4254 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4157 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4255 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4158 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4257-4263
Link Here
|
4257 |
ac_save_LIBS="$LIBS" |
4160 |
ac_save_LIBS="$LIBS" |
4258 |
LIBS="-lnsl $LIBS" |
4161 |
LIBS="-lnsl $LIBS" |
4259 |
cat > conftest.$ac_ext <<EOF |
4162 |
cat > conftest.$ac_ext <<EOF |
4260 |
#line 4261 "configure" |
4163 |
#line 4164 "configure" |
4261 |
#include "confdefs.h" |
4164 |
#include "confdefs.h" |
4262 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4165 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4263 |
/* We use char because int might match the return type of a gcc2 |
4166 |
/* We use char because int might match the return type of a gcc2 |
Lines 4268-4274
Link Here
|
4268 |
gethostbyname() |
4171 |
gethostbyname() |
4269 |
; return 0; } |
4172 |
; return 0; } |
4270 |
EOF |
4173 |
EOF |
4271 |
if { (eval echo configure:4272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4174 |
if { (eval echo configure:4175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4272 |
rm -rf conftest* |
4175 |
rm -rf conftest* |
4273 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4176 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4274 |
else |
4177 |
else |
Lines 4298-4309
Link Here
|
4298 |
# -lsocket must be given before -lnsl if both are needed. |
4201 |
# -lsocket must be given before -lnsl if both are needed. |
4299 |
# We assume that if connect needs -lnsl, so does gethostbyname. |
4202 |
# We assume that if connect needs -lnsl, so does gethostbyname. |
4300 |
echo $ac_n "checking for connect""... $ac_c" 1>&6 |
4203 |
echo $ac_n "checking for connect""... $ac_c" 1>&6 |
4301 |
echo "configure:4302: checking for connect" >&5 |
4204 |
echo "configure:4205: checking for connect" >&5 |
4302 |
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then |
4205 |
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then |
4303 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4206 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4304 |
else |
4207 |
else |
4305 |
cat > conftest.$ac_ext <<EOF |
4208 |
cat > conftest.$ac_ext <<EOF |
4306 |
#line 4307 "configure" |
4209 |
#line 4210 "configure" |
4307 |
#include "confdefs.h" |
4210 |
#include "confdefs.h" |
4308 |
/* System header to define __stub macros and hopefully few prototypes, |
4211 |
/* System header to define __stub macros and hopefully few prototypes, |
4309 |
which can conflict with char connect(); below. */ |
4212 |
which can conflict with char connect(); below. */ |
Lines 4326-4332
Link Here
|
4326 |
|
4229 |
|
4327 |
; return 0; } |
4230 |
; return 0; } |
4328 |
EOF |
4231 |
EOF |
4329 |
if { (eval echo configure:4330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4232 |
if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4330 |
rm -rf conftest* |
4233 |
rm -rf conftest* |
4331 |
eval "ac_cv_func_connect=yes" |
4234 |
eval "ac_cv_func_connect=yes" |
4332 |
else |
4235 |
else |
Lines 4347-4353
Link Here
|
4347 |
|
4250 |
|
4348 |
if test $ac_cv_func_connect = no; then |
4251 |
if test $ac_cv_func_connect = no; then |
4349 |
echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 |
4252 |
echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 |
4350 |
echo "configure:4351: checking for connect in -lsocket" >&5 |
4253 |
echo "configure:4254: checking for connect in -lsocket" >&5 |
4351 |
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` |
4254 |
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` |
4352 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4255 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4353 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4256 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4355-4361
Link Here
|
4355 |
ac_save_LIBS="$LIBS" |
4258 |
ac_save_LIBS="$LIBS" |
4356 |
LIBS="-lsocket $X_EXTRA_LIBS $LIBS" |
4259 |
LIBS="-lsocket $X_EXTRA_LIBS $LIBS" |
4357 |
cat > conftest.$ac_ext <<EOF |
4260 |
cat > conftest.$ac_ext <<EOF |
4358 |
#line 4359 "configure" |
4261 |
#line 4262 "configure" |
4359 |
#include "confdefs.h" |
4262 |
#include "confdefs.h" |
4360 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4263 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4361 |
/* We use char because int might match the return type of a gcc2 |
4264 |
/* We use char because int might match the return type of a gcc2 |
Lines 4366-4372
Link Here
|
4366 |
connect() |
4269 |
connect() |
4367 |
; return 0; } |
4270 |
; return 0; } |
4368 |
EOF |
4271 |
EOF |
4369 |
if { (eval echo configure:4370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4272 |
if { (eval echo configure:4273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4370 |
rm -rf conftest* |
4273 |
rm -rf conftest* |
4371 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4274 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4372 |
else |
4275 |
else |
Lines 4390-4401
Link Here
|
4390 |
|
4293 |
|
4391 |
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. |
4294 |
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. |
4392 |
echo $ac_n "checking for remove""... $ac_c" 1>&6 |
4295 |
echo $ac_n "checking for remove""... $ac_c" 1>&6 |
4393 |
echo "configure:4394: checking for remove" >&5 |
4296 |
echo "configure:4297: checking for remove" >&5 |
4394 |
if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then |
4297 |
if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then |
4395 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4298 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4396 |
else |
4299 |
else |
4397 |
cat > conftest.$ac_ext <<EOF |
4300 |
cat > conftest.$ac_ext <<EOF |
4398 |
#line 4399 "configure" |
4301 |
#line 4302 "configure" |
4399 |
#include "confdefs.h" |
4302 |
#include "confdefs.h" |
4400 |
/* System header to define __stub macros and hopefully few prototypes, |
4303 |
/* System header to define __stub macros and hopefully few prototypes, |
4401 |
which can conflict with char remove(); below. */ |
4304 |
which can conflict with char remove(); below. */ |
Lines 4418-4424
Link Here
|
4418 |
|
4321 |
|
4419 |
; return 0; } |
4322 |
; return 0; } |
4420 |
EOF |
4323 |
EOF |
4421 |
if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4324 |
if { (eval echo configure:4325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4422 |
rm -rf conftest* |
4325 |
rm -rf conftest* |
4423 |
eval "ac_cv_func_remove=yes" |
4326 |
eval "ac_cv_func_remove=yes" |
4424 |
else |
4327 |
else |
Lines 4439-4445
Link Here
|
4439 |
|
4342 |
|
4440 |
if test $ac_cv_func_remove = no; then |
4343 |
if test $ac_cv_func_remove = no; then |
4441 |
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 |
4344 |
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 |
4442 |
echo "configure:4443: checking for remove in -lposix" >&5 |
4345 |
echo "configure:4346: checking for remove in -lposix" >&5 |
4443 |
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` |
4346 |
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` |
4444 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4347 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4445 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4348 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4447-4453
Link Here
|
4447 |
ac_save_LIBS="$LIBS" |
4350 |
ac_save_LIBS="$LIBS" |
4448 |
LIBS="-lposix $LIBS" |
4351 |
LIBS="-lposix $LIBS" |
4449 |
cat > conftest.$ac_ext <<EOF |
4352 |
cat > conftest.$ac_ext <<EOF |
4450 |
#line 4451 "configure" |
4353 |
#line 4354 "configure" |
4451 |
#include "confdefs.h" |
4354 |
#include "confdefs.h" |
4452 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4355 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4453 |
/* We use char because int might match the return type of a gcc2 |
4356 |
/* We use char because int might match the return type of a gcc2 |
Lines 4458-4464
Link Here
|
4458 |
remove() |
4361 |
remove() |
4459 |
; return 0; } |
4362 |
; return 0; } |
4460 |
EOF |
4363 |
EOF |
4461 |
if { (eval echo configure:4462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4364 |
if { (eval echo configure:4365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4462 |
rm -rf conftest* |
4365 |
rm -rf conftest* |
4463 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4366 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4464 |
else |
4367 |
else |
Lines 4482-4493
Link Here
|
4482 |
|
4385 |
|
4483 |
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. |
4386 |
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. |
4484 |
echo $ac_n "checking for shmat""... $ac_c" 1>&6 |
4387 |
echo $ac_n "checking for shmat""... $ac_c" 1>&6 |
4485 |
echo "configure:4486: checking for shmat" >&5 |
4388 |
echo "configure:4389: checking for shmat" >&5 |
4486 |
if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then |
4389 |
if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then |
4487 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4390 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4488 |
else |
4391 |
else |
4489 |
cat > conftest.$ac_ext <<EOF |
4392 |
cat > conftest.$ac_ext <<EOF |
4490 |
#line 4491 "configure" |
4393 |
#line 4394 "configure" |
4491 |
#include "confdefs.h" |
4394 |
#include "confdefs.h" |
4492 |
/* System header to define __stub macros and hopefully few prototypes, |
4395 |
/* System header to define __stub macros and hopefully few prototypes, |
4493 |
which can conflict with char shmat(); below. */ |
4396 |
which can conflict with char shmat(); below. */ |
Lines 4510-4516
Link Here
|
4510 |
|
4413 |
|
4511 |
; return 0; } |
4414 |
; return 0; } |
4512 |
EOF |
4415 |
EOF |
4513 |
if { (eval echo configure:4514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4416 |
if { (eval echo configure:4417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4514 |
rm -rf conftest* |
4417 |
rm -rf conftest* |
4515 |
eval "ac_cv_func_shmat=yes" |
4418 |
eval "ac_cv_func_shmat=yes" |
4516 |
else |
4419 |
else |
Lines 4531-4537
Link Here
|
4531 |
|
4434 |
|
4532 |
if test $ac_cv_func_shmat = no; then |
4435 |
if test $ac_cv_func_shmat = no; then |
4533 |
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 |
4436 |
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 |
4534 |
echo "configure:4535: checking for shmat in -lipc" >&5 |
4437 |
echo "configure:4438: checking for shmat in -lipc" >&5 |
4535 |
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` |
4438 |
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` |
4536 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4439 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4537 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4440 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4539-4545
Link Here
|
4539 |
ac_save_LIBS="$LIBS" |
4442 |
ac_save_LIBS="$LIBS" |
4540 |
LIBS="-lipc $LIBS" |
4443 |
LIBS="-lipc $LIBS" |
4541 |
cat > conftest.$ac_ext <<EOF |
4444 |
cat > conftest.$ac_ext <<EOF |
4542 |
#line 4543 "configure" |
4445 |
#line 4446 "configure" |
4543 |
#include "confdefs.h" |
4446 |
#include "confdefs.h" |
4544 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4447 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4545 |
/* We use char because int might match the return type of a gcc2 |
4448 |
/* We use char because int might match the return type of a gcc2 |
Lines 4550-4556
Link Here
|
4550 |
shmat() |
4453 |
shmat() |
4551 |
; return 0; } |
4454 |
; return 0; } |
4552 |
EOF |
4455 |
EOF |
4553 |
if { (eval echo configure:4554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4456 |
if { (eval echo configure:4457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4554 |
rm -rf conftest* |
4457 |
rm -rf conftest* |
4555 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4458 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4556 |
else |
4459 |
else |
Lines 4583-4589
Link Here
|
4583 |
# libraries we check for below, so use a different variable. |
4486 |
# libraries we check for below, so use a different variable. |
4584 |
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. |
4487 |
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. |
4585 |
echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 |
4488 |
echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 |
4586 |
echo "configure:4587: checking for IceConnectionNumber in -lICE" >&5 |
4489 |
echo "configure:4490: checking for IceConnectionNumber in -lICE" >&5 |
4587 |
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` |
4490 |
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` |
4588 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4491 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
4589 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4492 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 4591-4597
Link Here
|
4591 |
ac_save_LIBS="$LIBS" |
4494 |
ac_save_LIBS="$LIBS" |
4592 |
LIBS="-lICE $X_EXTRA_LIBS $LIBS" |
4495 |
LIBS="-lICE $X_EXTRA_LIBS $LIBS" |
4593 |
cat > conftest.$ac_ext <<EOF |
4496 |
cat > conftest.$ac_ext <<EOF |
4594 |
#line 4595 "configure" |
4497 |
#line 4498 "configure" |
4595 |
#include "confdefs.h" |
4498 |
#include "confdefs.h" |
4596 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4499 |
/* Override any gcc2 internal prototype to avoid an error. */ |
4597 |
/* We use char because int might match the return type of a gcc2 |
4500 |
/* We use char because int might match the return type of a gcc2 |
Lines 4602-4608
Link Here
|
4602 |
IceConnectionNumber() |
4505 |
IceConnectionNumber() |
4603 |
; return 0; } |
4506 |
; return 0; } |
4604 |
EOF |
4507 |
EOF |
4605 |
if { (eval echo configure:4606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4508 |
if { (eval echo configure:4509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4606 |
rm -rf conftest* |
4509 |
rm -rf conftest* |
4607 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4510 |
eval "ac_cv_lib_$ac_lib_var=yes" |
4608 |
else |
4511 |
else |
Lines 4865-4871
Link Here
|
4865 |
MKSHLIB_UNFORCE_ALL= |
4768 |
MKSHLIB_UNFORCE_ALL= |
4866 |
if test "$GNU_CC"; then |
4769 |
if test "$GNU_CC"; then |
4867 |
echo $ac_n "checking whether ld has archive extraction flags""... $ac_c" 1>&6 |
4770 |
echo $ac_n "checking whether ld has archive extraction flags""... $ac_c" 1>&6 |
4868 |
echo "configure:4869: checking whether ld has archive extraction flags" >&5 |
4771 |
echo "configure:4772: checking whether ld has archive extraction flags" >&5 |
4869 |
if eval "test \"`echo '$''{'ac_cv_mkshlib_force_and_unforce'+set}'`\" = set"; then |
4772 |
if eval "test \"`echo '$''{'ac_cv_mkshlib_force_and_unforce'+set}'`\" = set"; then |
4870 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4773 |
echo $ac_n "(cached) $ac_c" 1>&6 |
4871 |
else |
4774 |
else |
Lines 4882-4895
Link Here
|
4882 |
LDFLAGS=$force |
4785 |
LDFLAGS=$force |
4883 |
LIBS=$unforce |
4786 |
LIBS=$unforce |
4884 |
cat > conftest.$ac_ext <<EOF |
4787 |
cat > conftest.$ac_ext <<EOF |
4885 |
#line 4886 "configure" |
4788 |
#line 4789 "configure" |
4886 |
#include "confdefs.h" |
4789 |
#include "confdefs.h" |
4887 |
|
4790 |
|
4888 |
int main() { |
4791 |
int main() { |
4889 |
|
4792 |
|
4890 |
; return 0; } |
4793 |
; return 0; } |
4891 |
EOF |
4794 |
EOF |
4892 |
if { (eval echo configure:4893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4795 |
if { (eval echo configure:4796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
4893 |
rm -rf conftest* |
4796 |
rm -rf conftest* |
4894 |
ac_cv_mkshlib_force_and_unforce=$line; break |
4797 |
ac_cv_mkshlib_force_and_unforce=$line; break |
4895 |
else |
4798 |
else |
Lines 4922-4938
Link Here
|
4922 |
cross_compiling=$ac_cv_prog_cc_cross |
4825 |
cross_compiling=$ac_cv_prog_cc_cross |
4923 |
|
4826 |
|
4924 |
echo $ac_n "checking for 64-bit OS""... $ac_c" 1>&6 |
4827 |
echo $ac_n "checking for 64-bit OS""... $ac_c" 1>&6 |
4925 |
echo "configure:4926: checking for 64-bit OS" >&5 |
4828 |
echo "configure:4829: checking for 64-bit OS" >&5 |
4926 |
if test "$cross_compiling" = yes; then |
4829 |
if test "$cross_compiling" = yes; then |
4927 |
result="maybe" |
4830 |
result="maybe" |
4928 |
else |
4831 |
else |
4929 |
cat > conftest.$ac_ext <<EOF |
4832 |
cat > conftest.$ac_ext <<EOF |
4930 |
#line 4931 "configure" |
4833 |
#line 4834 "configure" |
4931 |
#include "confdefs.h" |
4834 |
#include "confdefs.h" |
4932 |
int main () { |
4835 |
int main () { |
4933 |
if (sizeof(long) == 8) { return 0; } return 1; } |
4836 |
if (sizeof(long) == 8) { return 0; } return 1; } |
4934 |
EOF |
4837 |
EOF |
4935 |
if { (eval echo configure:4936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
4838 |
if { (eval echo configure:4839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
4936 |
then |
4839 |
then |
4937 |
result="yes" |
4840 |
result="yes" |
4938 |
else |
4841 |
else |
Lines 5068-5076
Link Here
|
5068 |
cross_compiling=$ac_cv_prog_cxx_cross |
4971 |
cross_compiling=$ac_cv_prog_cxx_cross |
5069 |
|
4972 |
|
5070 |
echo $ac_n "checking for VisualAge C++ compiler version >= 5.0.2.0""... $ac_c" 1>&6 |
4973 |
echo $ac_n "checking for VisualAge C++ compiler version >= 5.0.2.0""... $ac_c" 1>&6 |
5071 |
echo "configure:5072: checking for VisualAge C++ compiler version >= 5.0.2.0" >&5 |
4974 |
echo "configure:4975: checking for VisualAge C++ compiler version >= 5.0.2.0" >&5 |
5072 |
cat > conftest.$ac_ext <<EOF |
4975 |
cat > conftest.$ac_ext <<EOF |
5073 |
#line 5074 "configure" |
4976 |
#line 4977 "configure" |
5074 |
#include "confdefs.h" |
4977 |
#include "confdefs.h" |
5075 |
|
4978 |
|
5076 |
int main() { |
4979 |
int main() { |
Lines 5079-5085
Link Here
|
5079 |
#endif |
4982 |
#endif |
5080 |
; return 0; } |
4983 |
; return 0; } |
5081 |
EOF |
4984 |
EOF |
5082 |
if { (eval echo configure:5083: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
4985 |
if { (eval echo configure:4986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
5083 |
rm -rf conftest* |
4986 |
rm -rf conftest* |
5084 |
_BAD_COMPILER= |
4987 |
_BAD_COMPILER= |
5085 |
else |
4988 |
else |
Lines 5114-5130
Link Here
|
5114 |
do |
5017 |
do |
5115 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
5018 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
5116 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
5019 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
5117 |
echo "configure:5118: checking for $ac_hdr" >&5 |
5020 |
echo "configure:5021: checking for $ac_hdr" >&5 |
5118 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
5021 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
5119 |
echo $ac_n "(cached) $ac_c" 1>&6 |
5022 |
echo $ac_n "(cached) $ac_c" 1>&6 |
5120 |
else |
5023 |
else |
5121 |
cat > conftest.$ac_ext <<EOF |
5024 |
cat > conftest.$ac_ext <<EOF |
5122 |
#line 5123 "configure" |
5025 |
#line 5026 "configure" |
5123 |
#include "confdefs.h" |
5026 |
#include "confdefs.h" |
5124 |
#include <$ac_hdr> |
5027 |
#include <$ac_hdr> |
5125 |
EOF |
5028 |
EOF |
5126 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
5029 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
5127 |
{ (eval echo configure:5128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
5030 |
{ (eval echo configure:5031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
5128 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
5031 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
5129 |
if test -z "$ac_err"; then |
5032 |
if test -z "$ac_err"; then |
5130 |
rm -rf conftest* |
5033 |
rm -rf conftest* |
Lines 5164-5170
Link Here
|
5164 |
TK_LIBS='-lbe -lroot' |
5067 |
TK_LIBS='-lbe -lroot' |
5165 |
LIBS="$LIBS -lbe" |
5068 |
LIBS="$LIBS -lbe" |
5166 |
echo $ac_n "checking for main in -lbind""... $ac_c" 1>&6 |
5069 |
echo $ac_n "checking for main in -lbind""... $ac_c" 1>&6 |
5167 |
echo "configure:5168: checking for main in -lbind" >&5 |
5070 |
echo "configure:5071: checking for main in -lbind" >&5 |
5168 |
ac_lib_var=`echo bind'_'main | sed 'y%./+-%__p_%'` |
5071 |
ac_lib_var=`echo bind'_'main | sed 'y%./+-%__p_%'` |
5169 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
5072 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
5170 |
echo $ac_n "(cached) $ac_c" 1>&6 |
5073 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 5172-5185
Link Here
|
5172 |
ac_save_LIBS="$LIBS" |
5075 |
ac_save_LIBS="$LIBS" |
5173 |
LIBS="-lbind $LIBS" |
5076 |
LIBS="-lbind $LIBS" |
5174 |
cat > conftest.$ac_ext <<EOF |
5077 |
cat > conftest.$ac_ext <<EOF |
5175 |
#line 5176 "configure" |
5078 |
#line 5079 "configure" |
5176 |
#include "confdefs.h" |
5079 |
#include "confdefs.h" |
5177 |
|
5080 |
|
5178 |
int main() { |
5081 |
int main() { |
5179 |
main() |
5082 |
main() |
5180 |
; return 0; } |
5083 |
; return 0; } |
5181 |
EOF |
5084 |
EOF |
5182 |
if { (eval echo configure:5183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
5085 |
if { (eval echo configure:5086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
5183 |
rm -rf conftest* |
5086 |
rm -rf conftest* |
5184 |
eval "ac_cv_lib_$ac_lib_var=yes" |
5087 |
eval "ac_cv_lib_$ac_lib_var=yes" |
5185 |
else |
5088 |
else |
Lines 5357-5364
Link Here
|
5357 |
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1 |
5260 |
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1 |
5358 |
;; |
5261 |
;; |
5359 |
mips*) |
5262 |
mips*) |
5360 |
CFLAGS="$CFLAGS -Wa,-xgot" |
5263 |
MOZ_DEBUG_FLAGS="-g" # We want inlining |
5361 |
CXXFLAGS="$CXXFLAGS -Wa,-xgot" |
|
|
5362 |
;; |
5264 |
;; |
5363 |
esac |
5265 |
esac |
5364 |
;; |
5266 |
;; |
Lines 5923-5931
Link Here
|
5923 |
CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'` |
5825 |
CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'` |
5924 |
CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'` |
5826 |
CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'` |
5925 |
echo $ac_n "checking for Forte compiler version >= WS6U2""... $ac_c" 1>&6 |
5827 |
echo $ac_n "checking for Forte compiler version >= WS6U2""... $ac_c" 1>&6 |
5926 |
echo "configure:5927: checking for Forte compiler version >= WS6U2" >&5 |
5828 |
echo "configure:5829: checking for Forte compiler version >= WS6U2" >&5 |
5927 |
cat > conftest.$ac_ext <<EOF |
5829 |
cat > conftest.$ac_ext <<EOF |
5928 |
#line 5929 "configure" |
5830 |
#line 5831 "configure" |
5929 |
#include "confdefs.h" |
5831 |
#include "confdefs.h" |
5930 |
|
5832 |
|
5931 |
int main() { |
5833 |
int main() { |
Lines 5934-5940
Link Here
|
5934 |
#endif |
5836 |
#endif |
5935 |
; return 0; } |
5837 |
; return 0; } |
5936 |
EOF |
5838 |
EOF |
5937 |
if { (eval echo configure:5938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
5839 |
if { (eval echo configure:5840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
5938 |
rm -rf conftest* |
5840 |
rm -rf conftest* |
5939 |
_BAD_COMPILER= |
5841 |
_BAD_COMPILER= |
5940 |
else |
5842 |
else |
Lines 6056-6062
Link Here
|
6056 |
;; |
5958 |
;; |
6057 |
*-darwin*) |
5959 |
*-darwin*) |
6058 |
echo $ac_n "checking for -exported_symbols_list option to ld""... $ac_c" 1>&6 |
5960 |
echo $ac_n "checking for -exported_symbols_list option to ld""... $ac_c" 1>&6 |
6059 |
echo "configure:6060: checking for -exported_symbols_list option to ld" >&5 |
5961 |
echo "configure:5962: checking for -exported_symbols_list option to ld" >&5 |
6060 |
if eval "test \"`echo '$''{'ac_cv_exported_symbols_list'+set}'`\" = set"; then |
5962 |
if eval "test \"`echo '$''{'ac_cv_exported_symbols_list'+set}'`\" = set"; then |
6061 |
echo $ac_n "(cached) $ac_c" 1>&6 |
5963 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6062 |
else |
5964 |
else |
Lines 6092-6103
Link Here
|
6092 |
cross_compiling=$ac_cv_prog_cc_cross |
5994 |
cross_compiling=$ac_cv_prog_cc_cross |
6093 |
|
5995 |
|
6094 |
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 |
5996 |
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 |
6095 |
echo "configure:6096: checking for ANSI C header files" >&5 |
5997 |
echo "configure:5998: checking for ANSI C header files" >&5 |
6096 |
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then |
5998 |
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then |
6097 |
echo $ac_n "(cached) $ac_c" 1>&6 |
5999 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6098 |
else |
6000 |
else |
6099 |
cat > conftest.$ac_ext <<EOF |
6001 |
cat > conftest.$ac_ext <<EOF |
6100 |
#line 6101 "configure" |
6002 |
#line 6003 "configure" |
6101 |
#include "confdefs.h" |
6003 |
#include "confdefs.h" |
6102 |
#include <stdlib.h> |
6004 |
#include <stdlib.h> |
6103 |
#include <stdarg.h> |
6005 |
#include <stdarg.h> |
Lines 6105-6111
Link Here
|
6105 |
#include <float.h> |
6007 |
#include <float.h> |
6106 |
EOF |
6008 |
EOF |
6107 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
6009 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
6108 |
{ (eval echo configure:6109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
6010 |
{ (eval echo configure:6011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
6109 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
6011 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
6110 |
if test -z "$ac_err"; then |
6012 |
if test -z "$ac_err"; then |
6111 |
rm -rf conftest* |
6013 |
rm -rf conftest* |
Lines 6122-6128
Link Here
|
6122 |
if test $ac_cv_header_stdc = yes; then |
6024 |
if test $ac_cv_header_stdc = yes; then |
6123 |
# SunOS 4.x string.h does not declare mem*, contrary to ANSI. |
6025 |
# SunOS 4.x string.h does not declare mem*, contrary to ANSI. |
6124 |
cat > conftest.$ac_ext <<EOF |
6026 |
cat > conftest.$ac_ext <<EOF |
6125 |
#line 6126 "configure" |
6027 |
#line 6028 "configure" |
6126 |
#include "confdefs.h" |
6028 |
#include "confdefs.h" |
6127 |
#include <string.h> |
6029 |
#include <string.h> |
6128 |
EOF |
6030 |
EOF |
Lines 6140-6146
Link Here
|
6140 |
if test $ac_cv_header_stdc = yes; then |
6042 |
if test $ac_cv_header_stdc = yes; then |
6141 |
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. |
6043 |
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. |
6142 |
cat > conftest.$ac_ext <<EOF |
6044 |
cat > conftest.$ac_ext <<EOF |
6143 |
#line 6144 "configure" |
6045 |
#line 6046 "configure" |
6144 |
#include "confdefs.h" |
6046 |
#include "confdefs.h" |
6145 |
#include <stdlib.h> |
6047 |
#include <stdlib.h> |
6146 |
EOF |
6048 |
EOF |
Lines 6161-6167
Link Here
|
6161 |
: |
6063 |
: |
6162 |
else |
6064 |
else |
6163 |
cat > conftest.$ac_ext <<EOF |
6065 |
cat > conftest.$ac_ext <<EOF |
6164 |
#line 6165 "configure" |
6066 |
#line 6067 "configure" |
6165 |
#include "confdefs.h" |
6067 |
#include "confdefs.h" |
6166 |
#include <ctype.h> |
6068 |
#include <ctype.h> |
6167 |
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') |
6069 |
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') |
Lines 6172-6178
Link Here
|
6172 |
exit (0); } |
6074 |
exit (0); } |
6173 |
|
6075 |
|
6174 |
EOF |
6076 |
EOF |
6175 |
if { (eval echo configure:6176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6077 |
if { (eval echo configure:6078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6176 |
then |
6078 |
then |
6177 |
: |
6079 |
: |
6178 |
else |
6080 |
else |
Lines 6196-6207
Link Here
|
6196 |
fi |
6098 |
fi |
6197 |
|
6099 |
|
6198 |
echo $ac_n "checking for working const""... $ac_c" 1>&6 |
6100 |
echo $ac_n "checking for working const""... $ac_c" 1>&6 |
6199 |
echo "configure:6200: checking for working const" >&5 |
6101 |
echo "configure:6102: checking for working const" >&5 |
6200 |
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then |
6102 |
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then |
6201 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6103 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6202 |
else |
6104 |
else |
6203 |
cat > conftest.$ac_ext <<EOF |
6105 |
cat > conftest.$ac_ext <<EOF |
6204 |
#line 6205 "configure" |
6106 |
#line 6107 "configure" |
6205 |
#include "confdefs.h" |
6107 |
#include "confdefs.h" |
6206 |
|
6108 |
|
6207 |
int main() { |
6109 |
int main() { |
Lines 6250-6256
Link Here
|
6250 |
|
6152 |
|
6251 |
; return 0; } |
6153 |
; return 0; } |
6252 |
EOF |
6154 |
EOF |
6253 |
if { (eval echo configure:6254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6155 |
if { (eval echo configure:6156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6254 |
rm -rf conftest* |
6156 |
rm -rf conftest* |
6255 |
ac_cv_c_const=yes |
6157 |
ac_cv_c_const=yes |
6256 |
else |
6158 |
else |
Lines 6271-6282
Link Here
|
6271 |
fi |
6173 |
fi |
6272 |
|
6174 |
|
6273 |
echo $ac_n "checking for mode_t""... $ac_c" 1>&6 |
6175 |
echo $ac_n "checking for mode_t""... $ac_c" 1>&6 |
6274 |
echo "configure:6275: checking for mode_t" >&5 |
6176 |
echo "configure:6177: checking for mode_t" >&5 |
6275 |
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then |
6177 |
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then |
6276 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6178 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6277 |
else |
6179 |
else |
6278 |
cat > conftest.$ac_ext <<EOF |
6180 |
cat > conftest.$ac_ext <<EOF |
6279 |
#line 6280 "configure" |
6181 |
#line 6182 "configure" |
6280 |
#include "confdefs.h" |
6182 |
#include "confdefs.h" |
6281 |
#include <sys/types.h> |
6183 |
#include <sys/types.h> |
6282 |
#if STDC_HEADERS |
6184 |
#if STDC_HEADERS |
Lines 6304-6315
Link Here
|
6304 |
fi |
6206 |
fi |
6305 |
|
6207 |
|
6306 |
echo $ac_n "checking for off_t""... $ac_c" 1>&6 |
6208 |
echo $ac_n "checking for off_t""... $ac_c" 1>&6 |
6307 |
echo "configure:6308: checking for off_t" >&5 |
6209 |
echo "configure:6210: checking for off_t" >&5 |
6308 |
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then |
6210 |
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then |
6309 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6211 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6310 |
else |
6212 |
else |
6311 |
cat > conftest.$ac_ext <<EOF |
6213 |
cat > conftest.$ac_ext <<EOF |
6312 |
#line 6313 "configure" |
6214 |
#line 6215 "configure" |
6313 |
#include "confdefs.h" |
6215 |
#include "confdefs.h" |
6314 |
#include <sys/types.h> |
6216 |
#include <sys/types.h> |
6315 |
#if STDC_HEADERS |
6217 |
#if STDC_HEADERS |
Lines 6337-6348
Link Here
|
6337 |
fi |
6239 |
fi |
6338 |
|
6240 |
|
6339 |
echo $ac_n "checking for pid_t""... $ac_c" 1>&6 |
6241 |
echo $ac_n "checking for pid_t""... $ac_c" 1>&6 |
6340 |
echo "configure:6341: checking for pid_t" >&5 |
6242 |
echo "configure:6243: checking for pid_t" >&5 |
6341 |
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then |
6243 |
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then |
6342 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6244 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6343 |
else |
6245 |
else |
6344 |
cat > conftest.$ac_ext <<EOF |
6246 |
cat > conftest.$ac_ext <<EOF |
6345 |
#line 6346 "configure" |
6247 |
#line 6248 "configure" |
6346 |
#include "confdefs.h" |
6248 |
#include "confdefs.h" |
6347 |
#include <sys/types.h> |
6249 |
#include <sys/types.h> |
6348 |
#if STDC_HEADERS |
6250 |
#if STDC_HEADERS |
Lines 6370-6381
Link Here
|
6370 |
fi |
6272 |
fi |
6371 |
|
6273 |
|
6372 |
echo $ac_n "checking for size_t""... $ac_c" 1>&6 |
6274 |
echo $ac_n "checking for size_t""... $ac_c" 1>&6 |
6373 |
echo "configure:6374: checking for size_t" >&5 |
6275 |
echo "configure:6276: checking for size_t" >&5 |
6374 |
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then |
6276 |
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then |
6375 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6277 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6376 |
else |
6278 |
else |
6377 |
cat > conftest.$ac_ext <<EOF |
6279 |
cat > conftest.$ac_ext <<EOF |
6378 |
#line 6379 "configure" |
6280 |
#line 6281 "configure" |
6379 |
#include "confdefs.h" |
6281 |
#include "confdefs.h" |
6380 |
#include <sys/types.h> |
6282 |
#include <sys/types.h> |
6381 |
#if STDC_HEADERS |
6283 |
#if STDC_HEADERS |
Lines 6403-6414
Link Here
|
6403 |
fi |
6305 |
fi |
6404 |
|
6306 |
|
6405 |
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 |
6307 |
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 |
6406 |
echo "configure:6407: checking for uid_t in sys/types.h" >&5 |
6308 |
echo "configure:6309: checking for uid_t in sys/types.h" >&5 |
6407 |
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then |
6309 |
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then |
6408 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6310 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6409 |
else |
6311 |
else |
6410 |
cat > conftest.$ac_ext <<EOF |
6312 |
cat > conftest.$ac_ext <<EOF |
6411 |
#line 6412 "configure" |
6313 |
#line 6314 "configure" |
6412 |
#include "confdefs.h" |
6314 |
#include "confdefs.h" |
6413 |
#include <sys/types.h> |
6315 |
#include <sys/types.h> |
6414 |
EOF |
6316 |
EOF |
Lines 6437-6448
Link Here
|
6437 |
fi |
6339 |
fi |
6438 |
|
6340 |
|
6439 |
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 |
6341 |
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6 |
6440 |
echo "configure:6441: checking for st_blksize in struct stat" >&5 |
6342 |
echo "configure:6343: checking for st_blksize in struct stat" >&5 |
6441 |
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then |
6343 |
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then |
6442 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6344 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6443 |
else |
6345 |
else |
6444 |
cat > conftest.$ac_ext <<EOF |
6346 |
cat > conftest.$ac_ext <<EOF |
6445 |
#line 6446 "configure" |
6347 |
#line 6348 "configure" |
6446 |
#include "confdefs.h" |
6348 |
#include "confdefs.h" |
6447 |
#include <sys/types.h> |
6349 |
#include <sys/types.h> |
6448 |
#include <sys/stat.h> |
6350 |
#include <sys/stat.h> |
Lines 6450-6456
Link Here
|
6450 |
struct stat s; s.st_blksize; |
6352 |
struct stat s; s.st_blksize; |
6451 |
; return 0; } |
6353 |
; return 0; } |
6452 |
EOF |
6354 |
EOF |
6453 |
if { (eval echo configure:6454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6355 |
if { (eval echo configure:6356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6454 |
rm -rf conftest* |
6356 |
rm -rf conftest* |
6455 |
ac_cv_struct_st_blksize=yes |
6357 |
ac_cv_struct_st_blksize=yes |
6456 |
else |
6358 |
else |
Lines 6471-6482
Link Here
|
6471 |
fi |
6373 |
fi |
6472 |
|
6374 |
|
6473 |
echo $ac_n "checking for siginfo_t""... $ac_c" 1>&6 |
6375 |
echo $ac_n "checking for siginfo_t""... $ac_c" 1>&6 |
6474 |
echo "configure:6475: checking for siginfo_t" >&5 |
6376 |
echo "configure:6377: checking for siginfo_t" >&5 |
6475 |
if eval "test \"`echo '$''{'ac_cv_siginfo_t'+set}'`\" = set"; then |
6377 |
if eval "test \"`echo '$''{'ac_cv_siginfo_t'+set}'`\" = set"; then |
6476 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6378 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6477 |
else |
6379 |
else |
6478 |
cat > conftest.$ac_ext <<EOF |
6380 |
cat > conftest.$ac_ext <<EOF |
6479 |
#line 6480 "configure" |
6381 |
#line 6382 "configure" |
6480 |
#include "confdefs.h" |
6382 |
#include "confdefs.h" |
6481 |
#define _POSIX_C_SOURCE 199506L |
6383 |
#define _POSIX_C_SOURCE 199506L |
6482 |
#include <signal.h> |
6384 |
#include <signal.h> |
Lines 6484-6490
Link Here
|
6484 |
siginfo_t* info; |
6386 |
siginfo_t* info; |
6485 |
; return 0; } |
6387 |
; return 0; } |
6486 |
EOF |
6388 |
EOF |
6487 |
if { (eval echo configure:6488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6389 |
if { (eval echo configure:6390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6488 |
rm -rf conftest* |
6390 |
rm -rf conftest* |
6489 |
ac_cv_siginfo_t=true |
6391 |
ac_cv_siginfo_t=true |
6490 |
else |
6392 |
else |
Lines 6518-6529
Link Here
|
6518 |
fi |
6420 |
fi |
6519 |
|
6421 |
|
6520 |
echo $ac_n "checking for int16_t""... $ac_c" 1>&6 |
6422 |
echo $ac_n "checking for int16_t""... $ac_c" 1>&6 |
6521 |
echo "configure:6522: checking for int16_t" >&5 |
6423 |
echo "configure:6424: checking for int16_t" >&5 |
6522 |
if eval "test \"`echo '$''{'ac_cv_int16_t'+set}'`\" = set"; then |
6424 |
if eval "test \"`echo '$''{'ac_cv_int16_t'+set}'`\" = set"; then |
6523 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6425 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6524 |
else |
6426 |
else |
6525 |
cat > conftest.$ac_ext <<EOF |
6427 |
cat > conftest.$ac_ext <<EOF |
6526 |
#line 6527 "configure" |
6428 |
#line 6429 "configure" |
6527 |
#include "confdefs.h" |
6429 |
#include "confdefs.h" |
6528 |
#include <stdio.h> |
6430 |
#include <stdio.h> |
6529 |
#include <sys/types.h> |
6431 |
#include <sys/types.h> |
Lines 6531-6537
Link Here
|
6531 |
int16_t foo = 0; |
6433 |
int16_t foo = 0; |
6532 |
; return 0; } |
6434 |
; return 0; } |
6533 |
EOF |
6435 |
EOF |
6534 |
if { (eval echo configure:6535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6436 |
if { (eval echo configure:6437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6535 |
rm -rf conftest* |
6437 |
rm -rf conftest* |
6536 |
ac_cv_int16_t=true |
6438 |
ac_cv_int16_t=true |
6537 |
else |
6439 |
else |
Lines 6553-6564
Link Here
|
6553 |
echo "$ac_t""no" 1>&6 |
6455 |
echo "$ac_t""no" 1>&6 |
6554 |
fi |
6456 |
fi |
6555 |
echo $ac_n "checking for int32_t""... $ac_c" 1>&6 |
6457 |
echo $ac_n "checking for int32_t""... $ac_c" 1>&6 |
6556 |
echo "configure:6557: checking for int32_t" >&5 |
6458 |
echo "configure:6459: checking for int32_t" >&5 |
6557 |
if eval "test \"`echo '$''{'ac_cv_int32_t'+set}'`\" = set"; then |
6459 |
if eval "test \"`echo '$''{'ac_cv_int32_t'+set}'`\" = set"; then |
6558 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6460 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6559 |
else |
6461 |
else |
6560 |
cat > conftest.$ac_ext <<EOF |
6462 |
cat > conftest.$ac_ext <<EOF |
6561 |
#line 6562 "configure" |
6463 |
#line 6464 "configure" |
6562 |
#include "confdefs.h" |
6464 |
#include "confdefs.h" |
6563 |
#include <stdio.h> |
6465 |
#include <stdio.h> |
6564 |
#include <sys/types.h> |
6466 |
#include <sys/types.h> |
Lines 6566-6572
Link Here
|
6566 |
int32_t foo = 0; |
6468 |
int32_t foo = 0; |
6567 |
; return 0; } |
6469 |
; return 0; } |
6568 |
EOF |
6470 |
EOF |
6569 |
if { (eval echo configure:6570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6471 |
if { (eval echo configure:6472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6570 |
rm -rf conftest* |
6472 |
rm -rf conftest* |
6571 |
ac_cv_int32_t=true |
6473 |
ac_cv_int32_t=true |
6572 |
else |
6474 |
else |
Lines 6588-6599
Link Here
|
6588 |
echo "$ac_t""no" 1>&6 |
6490 |
echo "$ac_t""no" 1>&6 |
6589 |
fi |
6491 |
fi |
6590 |
echo $ac_n "checking for int64_t""... $ac_c" 1>&6 |
6492 |
echo $ac_n "checking for int64_t""... $ac_c" 1>&6 |
6591 |
echo "configure:6592: checking for int64_t" >&5 |
6493 |
echo "configure:6494: checking for int64_t" >&5 |
6592 |
if eval "test \"`echo '$''{'ac_cv_int64_t'+set}'`\" = set"; then |
6494 |
if eval "test \"`echo '$''{'ac_cv_int64_t'+set}'`\" = set"; then |
6593 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6495 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6594 |
else |
6496 |
else |
6595 |
cat > conftest.$ac_ext <<EOF |
6497 |
cat > conftest.$ac_ext <<EOF |
6596 |
#line 6597 "configure" |
6498 |
#line 6499 "configure" |
6597 |
#include "confdefs.h" |
6499 |
#include "confdefs.h" |
6598 |
#include <stdio.h> |
6500 |
#include <stdio.h> |
6599 |
#include <sys/types.h> |
6501 |
#include <sys/types.h> |
Lines 6601-6607
Link Here
|
6601 |
int64_t foo = 0; |
6503 |
int64_t foo = 0; |
6602 |
; return 0; } |
6504 |
; return 0; } |
6603 |
EOF |
6505 |
EOF |
6604 |
if { (eval echo configure:6605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6506 |
if { (eval echo configure:6507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6605 |
rm -rf conftest* |
6507 |
rm -rf conftest* |
6606 |
ac_cv_int64_t=true |
6508 |
ac_cv_int64_t=true |
6607 |
else |
6509 |
else |
Lines 6623-6634
Link Here
|
6623 |
echo "$ac_t""no" 1>&6 |
6525 |
echo "$ac_t""no" 1>&6 |
6624 |
fi |
6526 |
fi |
6625 |
echo $ac_n "checking for int64""... $ac_c" 1>&6 |
6527 |
echo $ac_n "checking for int64""... $ac_c" 1>&6 |
6626 |
echo "configure:6627: checking for int64" >&5 |
6528 |
echo "configure:6529: checking for int64" >&5 |
6627 |
if eval "test \"`echo '$''{'ac_cv_int64'+set}'`\" = set"; then |
6529 |
if eval "test \"`echo '$''{'ac_cv_int64'+set}'`\" = set"; then |
6628 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6530 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6629 |
else |
6531 |
else |
6630 |
cat > conftest.$ac_ext <<EOF |
6532 |
cat > conftest.$ac_ext <<EOF |
6631 |
#line 6632 "configure" |
6533 |
#line 6534 "configure" |
6632 |
#include "confdefs.h" |
6534 |
#include "confdefs.h" |
6633 |
#include <stdio.h> |
6535 |
#include <stdio.h> |
6634 |
#include <sys/types.h> |
6536 |
#include <sys/types.h> |
Lines 6636-6642
Link Here
|
6636 |
int64 foo = 0; |
6538 |
int64 foo = 0; |
6637 |
; return 0; } |
6539 |
; return 0; } |
6638 |
EOF |
6540 |
EOF |
6639 |
if { (eval echo configure:6640: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6541 |
if { (eval echo configure:6542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6640 |
rm -rf conftest* |
6542 |
rm -rf conftest* |
6641 |
ac_cv_int64=true |
6543 |
ac_cv_int64=true |
6642 |
else |
6544 |
else |
Lines 6658-6669
Link Here
|
6658 |
echo "$ac_t""no" 1>&6 |
6560 |
echo "$ac_t""no" 1>&6 |
6659 |
fi |
6561 |
fi |
6660 |
echo $ac_n "checking for uint""... $ac_c" 1>&6 |
6562 |
echo $ac_n "checking for uint""... $ac_c" 1>&6 |
6661 |
echo "configure:6662: checking for uint" >&5 |
6563 |
echo "configure:6564: checking for uint" >&5 |
6662 |
if eval "test \"`echo '$''{'ac_cv_uint'+set}'`\" = set"; then |
6564 |
if eval "test \"`echo '$''{'ac_cv_uint'+set}'`\" = set"; then |
6663 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6565 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6664 |
else |
6566 |
else |
6665 |
cat > conftest.$ac_ext <<EOF |
6567 |
cat > conftest.$ac_ext <<EOF |
6666 |
#line 6667 "configure" |
6568 |
#line 6569 "configure" |
6667 |
#include "confdefs.h" |
6569 |
#include "confdefs.h" |
6668 |
#include <stdio.h> |
6570 |
#include <stdio.h> |
6669 |
#include <sys/types.h> |
6571 |
#include <sys/types.h> |
Lines 6671-6677
Link Here
|
6671 |
uint foo = 0; |
6573 |
uint foo = 0; |
6672 |
; return 0; } |
6574 |
; return 0; } |
6673 |
EOF |
6575 |
EOF |
6674 |
if { (eval echo configure:6675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6576 |
if { (eval echo configure:6577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6675 |
rm -rf conftest* |
6577 |
rm -rf conftest* |
6676 |
ac_cv_uint=true |
6578 |
ac_cv_uint=true |
6677 |
else |
6579 |
else |
Lines 6693-6704
Link Here
|
6693 |
echo "$ac_t""no" 1>&6 |
6595 |
echo "$ac_t""no" 1>&6 |
6694 |
fi |
6596 |
fi |
6695 |
echo $ac_n "checking for uint_t""... $ac_c" 1>&6 |
6597 |
echo $ac_n "checking for uint_t""... $ac_c" 1>&6 |
6696 |
echo "configure:6697: checking for uint_t" >&5 |
6598 |
echo "configure:6599: checking for uint_t" >&5 |
6697 |
if eval "test \"`echo '$''{'ac_cv_uint_t'+set}'`\" = set"; then |
6599 |
if eval "test \"`echo '$''{'ac_cv_uint_t'+set}'`\" = set"; then |
6698 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6600 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6699 |
else |
6601 |
else |
6700 |
cat > conftest.$ac_ext <<EOF |
6602 |
cat > conftest.$ac_ext <<EOF |
6701 |
#line 6702 "configure" |
6603 |
#line 6604 "configure" |
6702 |
#include "confdefs.h" |
6604 |
#include "confdefs.h" |
6703 |
#include <stdio.h> |
6605 |
#include <stdio.h> |
6704 |
#include <sys/types.h> |
6606 |
#include <sys/types.h> |
Lines 6706-6712
Link Here
|
6706 |
uint_t foo = 0; |
6608 |
uint_t foo = 0; |
6707 |
; return 0; } |
6609 |
; return 0; } |
6708 |
EOF |
6610 |
EOF |
6709 |
if { (eval echo configure:6710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6611 |
if { (eval echo configure:6612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6710 |
rm -rf conftest* |
6612 |
rm -rf conftest* |
6711 |
ac_cv_uint_t=true |
6613 |
ac_cv_uint_t=true |
6712 |
else |
6614 |
else |
Lines 6728-6739
Link Here
|
6728 |
echo "$ac_t""no" 1>&6 |
6630 |
echo "$ac_t""no" 1>&6 |
6729 |
fi |
6631 |
fi |
6730 |
echo $ac_n "checking for uint16_t""... $ac_c" 1>&6 |
6632 |
echo $ac_n "checking for uint16_t""... $ac_c" 1>&6 |
6731 |
echo "configure:6732: checking for uint16_t" >&5 |
6633 |
echo "configure:6634: checking for uint16_t" >&5 |
6732 |
if eval "test \"`echo '$''{'ac_cv_uint16_t'+set}'`\" = set"; then |
6634 |
if eval "test \"`echo '$''{'ac_cv_uint16_t'+set}'`\" = set"; then |
6733 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6635 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6734 |
else |
6636 |
else |
6735 |
cat > conftest.$ac_ext <<EOF |
6637 |
cat > conftest.$ac_ext <<EOF |
6736 |
#line 6737 "configure" |
6638 |
#line 6639 "configure" |
6737 |
#include "confdefs.h" |
6639 |
#include "confdefs.h" |
6738 |
#include <stdio.h> |
6640 |
#include <stdio.h> |
6739 |
#include <sys/types.h> |
6641 |
#include <sys/types.h> |
Lines 6741-6747
Link Here
|
6741 |
uint16_t foo = 0; |
6643 |
uint16_t foo = 0; |
6742 |
; return 0; } |
6644 |
; return 0; } |
6743 |
EOF |
6645 |
EOF |
6744 |
if { (eval echo configure:6745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6646 |
if { (eval echo configure:6647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6745 |
rm -rf conftest* |
6647 |
rm -rf conftest* |
6746 |
ac_cv_uint16_t=true |
6648 |
ac_cv_uint16_t=true |
6747 |
else |
6649 |
else |
Lines 6772-6783
Link Here
|
6772 |
|
6674 |
|
6773 |
|
6675 |
|
6774 |
echo $ac_n "checking for uname.domainname""... $ac_c" 1>&6 |
6676 |
echo $ac_n "checking for uname.domainname""... $ac_c" 1>&6 |
6775 |
echo "configure:6776: checking for uname.domainname" >&5 |
6677 |
echo "configure:6678: checking for uname.domainname" >&5 |
6776 |
if eval "test \"`echo '$''{'ac_cv_have_uname_domainname_field'+set}'`\" = set"; then |
6678 |
if eval "test \"`echo '$''{'ac_cv_have_uname_domainname_field'+set}'`\" = set"; then |
6777 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6679 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6778 |
else |
6680 |
else |
6779 |
cat > conftest.$ac_ext <<EOF |
6681 |
cat > conftest.$ac_ext <<EOF |
6780 |
#line 6781 "configure" |
6682 |
#line 6683 "configure" |
6781 |
#include "confdefs.h" |
6683 |
#include "confdefs.h" |
6782 |
#include <sys/utsname.h> |
6684 |
#include <sys/utsname.h> |
6783 |
int main() { |
6685 |
int main() { |
Lines 6785-6791
Link Here
|
6785 |
(void)uname(res); if (res != 0) { domain = res->domainname; } |
6687 |
(void)uname(res); if (res != 0) { domain = res->domainname; } |
6786 |
; return 0; } |
6688 |
; return 0; } |
6787 |
EOF |
6689 |
EOF |
6788 |
if { (eval echo configure:6789: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6690 |
if { (eval echo configure:6691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6789 |
rm -rf conftest* |
6691 |
rm -rf conftest* |
6790 |
ac_cv_have_uname_domainname_field=true |
6692 |
ac_cv_have_uname_domainname_field=true |
6791 |
else |
6693 |
else |
Lines 6809-6820
Link Here
|
6809 |
fi |
6711 |
fi |
6810 |
|
6712 |
|
6811 |
echo $ac_n "checking for uname.__domainname""... $ac_c" 1>&6 |
6713 |
echo $ac_n "checking for uname.__domainname""... $ac_c" 1>&6 |
6812 |
echo "configure:6813: checking for uname.__domainname" >&5 |
6714 |
echo "configure:6715: checking for uname.__domainname" >&5 |
6813 |
if eval "test \"`echo '$''{'ac_cv_have_uname_us_domainname_field'+set}'`\" = set"; then |
6715 |
if eval "test \"`echo '$''{'ac_cv_have_uname_us_domainname_field'+set}'`\" = set"; then |
6814 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6716 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6815 |
else |
6717 |
else |
6816 |
cat > conftest.$ac_ext <<EOF |
6718 |
cat > conftest.$ac_ext <<EOF |
6817 |
#line 6818 "configure" |
6719 |
#line 6720 "configure" |
6818 |
#include "confdefs.h" |
6720 |
#include "confdefs.h" |
6819 |
#include <sys/utsname.h> |
6721 |
#include <sys/utsname.h> |
6820 |
int main() { |
6722 |
int main() { |
Lines 6822-6828
Link Here
|
6822 |
(void)uname(res); if (res != 0) { domain = res->__domainname; } |
6724 |
(void)uname(res); if (res != 0) { domain = res->__domainname; } |
6823 |
; return 0; } |
6725 |
; return 0; } |
6824 |
EOF |
6726 |
EOF |
6825 |
if { (eval echo configure:6826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6727 |
if { (eval echo configure:6728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6826 |
rm -rf conftest* |
6728 |
rm -rf conftest* |
6827 |
ac_cv_have_uname_us_domainname_field=true |
6729 |
ac_cv_have_uname_us_domainname_field=true |
6828 |
else |
6730 |
else |
Lines 6855-6861
Link Here
|
6855 |
|
6757 |
|
6856 |
|
6758 |
|
6857 |
echo $ac_n "checking for usable wchar_t (2 bytes, unsigned)""... $ac_c" 1>&6 |
6759 |
echo $ac_n "checking for usable wchar_t (2 bytes, unsigned)""... $ac_c" 1>&6 |
6858 |
echo "configure:6859: checking for usable wchar_t (2 bytes, unsigned)" >&5 |
6760 |
echo "configure:6761: checking for usable wchar_t (2 bytes, unsigned)" >&5 |
6859 |
if eval "test \"`echo '$''{'ac_cv_have_usable_wchar'+set}'`\" = set"; then |
6761 |
if eval "test \"`echo '$''{'ac_cv_have_usable_wchar'+set}'`\" = set"; then |
6860 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6762 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6861 |
else |
6763 |
else |
Lines 6863-6876
Link Here
|
6863 |
ac_cv_have_usable_wchar="maybe" |
6765 |
ac_cv_have_usable_wchar="maybe" |
6864 |
else |
6766 |
else |
6865 |
cat > conftest.$ac_ext <<EOF |
6767 |
cat > conftest.$ac_ext <<EOF |
6866 |
#line 6867 "configure" |
6768 |
#line 6769 "configure" |
6867 |
#include "confdefs.h" |
6769 |
#include "confdefs.h" |
6868 |
#include <stddef.h> |
6770 |
#include <stddef.h> |
6869 |
int main () { |
6771 |
int main () { |
6870 |
return (sizeof(wchar_t) != 2) || |
6772 |
return (sizeof(wchar_t) != 2) || |
6871 |
(wchar_t)-1 < (wchar_t) 0 ; } |
6773 |
(wchar_t)-1 < (wchar_t) 0 ; } |
6872 |
EOF |
6774 |
EOF |
6873 |
if { (eval echo configure:6874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6775 |
if { (eval echo configure:6776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6874 |
then |
6776 |
then |
6875 |
ac_cv_have_usable_wchar="yes" |
6777 |
ac_cv_have_usable_wchar="yes" |
6876 |
else |
6778 |
else |
Lines 6905-6911
Link Here
|
6905 |
CXXFLAGS="$CXXFLAGS -fshort-wchar" |
6807 |
CXXFLAGS="$CXXFLAGS -fshort-wchar" |
6906 |
|
6808 |
|
6907 |
echo $ac_n "checking for compiler -fshort-wchar option""... $ac_c" 1>&6 |
6809 |
echo $ac_n "checking for compiler -fshort-wchar option""... $ac_c" 1>&6 |
6908 |
echo "configure:6909: checking for compiler -fshort-wchar option" >&5 |
6810 |
echo "configure:6811: checking for compiler -fshort-wchar option" >&5 |
6909 |
if eval "test \"`echo '$''{'ac_cv_have_usable_wchar_option'+set}'`\" = set"; then |
6811 |
if eval "test \"`echo '$''{'ac_cv_have_usable_wchar_option'+set}'`\" = set"; then |
6910 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6812 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6911 |
else |
6813 |
else |
Lines 6913-6926
Link Here
|
6913 |
ac_cv_have_usable_wchar_option="maybe" |
6815 |
ac_cv_have_usable_wchar_option="maybe" |
6914 |
else |
6816 |
else |
6915 |
cat > conftest.$ac_ext <<EOF |
6817 |
cat > conftest.$ac_ext <<EOF |
6916 |
#line 6917 "configure" |
6818 |
#line 6819 "configure" |
6917 |
#include "confdefs.h" |
6819 |
#include "confdefs.h" |
|
|
6820 |
#ifdef __cplusplus |
6821 |
extern "C" void exit(int); |
6822 |
#endif |
6918 |
#include <stddef.h> |
6823 |
#include <stddef.h> |
6919 |
int main () { |
6824 |
int main () { |
6920 |
return (sizeof(wchar_t) != 2) || |
6825 |
return (sizeof(wchar_t) != 2) || |
6921 |
(wchar_t)-1 < (wchar_t) 0 ; } |
6826 |
(wchar_t)-1 < (wchar_t) 0 ; } |
6922 |
EOF |
6827 |
EOF |
6923 |
if { (eval echo configure:6924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6828 |
if { (eval echo configure:6829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
6924 |
then |
6829 |
then |
6925 |
ac_cv_have_usable_wchar_option="yes" |
6830 |
ac_cv_have_usable_wchar_option="yes" |
6926 |
else |
6831 |
else |
Lines 6956-6962
Link Here
|
6956 |
|
6861 |
|
6957 |
if test "$GNU_CC"; then |
6862 |
if test "$GNU_CC"; then |
6958 |
echo $ac_n "checking for .hidden assembler directive""... $ac_c" 1>&6 |
6863 |
echo $ac_n "checking for .hidden assembler directive""... $ac_c" 1>&6 |
6959 |
echo "configure:6960: checking for .hidden assembler directive" >&5 |
6864 |
echo "configure:6865: checking for .hidden assembler directive" >&5 |
6960 |
if eval "test \"`echo '$''{'ac_cv_asm_hidden_directive'+set}'`\" = set"; then |
6865 |
if eval "test \"`echo '$''{'ac_cv_asm_hidden_directive'+set}'`\" = set"; then |
6961 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6866 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6962 |
else |
6867 |
else |
Lines 6964-6970
Link Here
|
6964 |
.hidden foo |
6869 |
.hidden foo |
6965 |
foo: |
6870 |
foo: |
6966 |
EOF |
6871 |
EOF |
6967 |
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:6968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then |
6872 |
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:6873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then |
6968 |
ac_cv_asm_hidden_directive=yes |
6873 |
ac_cv_asm_hidden_directive=yes |
6969 |
else |
6874 |
else |
6970 |
ac_cv_asm_hidden_directive=no |
6875 |
ac_cv_asm_hidden_directive=no |
Lines 6976-6982
Link Here
|
6976 |
|
6881 |
|
6977 |
if test $ac_cv_asm_hidden_directive = yes; then |
6882 |
if test $ac_cv_asm_hidden_directive = yes; then |
6978 |
echo $ac_n "checking whether __attribute__((visibility())) is supported""... $ac_c" 1>&6 |
6883 |
echo $ac_n "checking whether __attribute__((visibility())) is supported""... $ac_c" 1>&6 |
6979 |
echo "configure:6980: checking whether __attribute__((visibility())) is supported" >&5 |
6884 |
echo "configure:6885: checking whether __attribute__((visibility())) is supported" >&5 |
6980 |
if eval "test \"`echo '$''{'ac_cv_visibility_attribute'+set}'`\" = set"; then |
6885 |
if eval "test \"`echo '$''{'ac_cv_visibility_attribute'+set}'`\" = set"; then |
6981 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6886 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6982 |
else |
6887 |
else |
Lines 7008-7019
Link Here
|
7008 |
do |
6913 |
do |
7009 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
6914 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7010 |
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 |
6915 |
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 |
7011 |
echo "configure:7012: checking for $ac_hdr that defines DIR" >&5 |
6916 |
echo "configure:6917: checking for $ac_hdr that defines DIR" >&5 |
7012 |
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then |
6917 |
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then |
7013 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6918 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7014 |
else |
6919 |
else |
7015 |
cat > conftest.$ac_ext <<EOF |
6920 |
cat > conftest.$ac_ext <<EOF |
7016 |
#line 7017 "configure" |
6921 |
#line 6922 "configure" |
7017 |
#include "confdefs.h" |
6922 |
#include "confdefs.h" |
7018 |
#include <sys/types.h> |
6923 |
#include <sys/types.h> |
7019 |
#include <$ac_hdr> |
6924 |
#include <$ac_hdr> |
Lines 7021-7027
Link Here
|
7021 |
DIR *dirp = 0; |
6926 |
DIR *dirp = 0; |
7022 |
; return 0; } |
6927 |
; return 0; } |
7023 |
EOF |
6928 |
EOF |
7024 |
if { (eval echo configure:7025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
6929 |
if { (eval echo configure:6930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
7025 |
rm -rf conftest* |
6930 |
rm -rf conftest* |
7026 |
eval "ac_cv_header_dirent_$ac_safe=yes" |
6931 |
eval "ac_cv_header_dirent_$ac_safe=yes" |
7027 |
else |
6932 |
else |
Lines 7046-7052
Link Here
|
7046 |
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. |
6951 |
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. |
7047 |
if test $ac_header_dirent = dirent.h; then |
6952 |
if test $ac_header_dirent = dirent.h; then |
7048 |
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 |
6953 |
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 |
7049 |
echo "configure:7050: checking for opendir in -ldir" >&5 |
6954 |
echo "configure:6955: checking for opendir in -ldir" >&5 |
7050 |
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` |
6955 |
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` |
7051 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
6956 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7052 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6957 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7054-7060
Link Here
|
7054 |
ac_save_LIBS="$LIBS" |
6959 |
ac_save_LIBS="$LIBS" |
7055 |
LIBS="-ldir $LIBS" |
6960 |
LIBS="-ldir $LIBS" |
7056 |
cat > conftest.$ac_ext <<EOF |
6961 |
cat > conftest.$ac_ext <<EOF |
7057 |
#line 7058 "configure" |
6962 |
#line 6963 "configure" |
7058 |
#include "confdefs.h" |
6963 |
#include "confdefs.h" |
7059 |
/* Override any gcc2 internal prototype to avoid an error. */ |
6964 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7060 |
/* We use char because int might match the return type of a gcc2 |
6965 |
/* We use char because int might match the return type of a gcc2 |
Lines 7065-7071
Link Here
|
7065 |
opendir() |
6970 |
opendir() |
7066 |
; return 0; } |
6971 |
; return 0; } |
7067 |
EOF |
6972 |
EOF |
7068 |
if { (eval echo configure:7069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
6973 |
if { (eval echo configure:6974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7069 |
rm -rf conftest* |
6974 |
rm -rf conftest* |
7070 |
eval "ac_cv_lib_$ac_lib_var=yes" |
6975 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7071 |
else |
6976 |
else |
Lines 7087-7093
Link Here
|
7087 |
|
6992 |
|
7088 |
else |
6993 |
else |
7089 |
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 |
6994 |
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 |
7090 |
echo "configure:7091: checking for opendir in -lx" >&5 |
6995 |
echo "configure:6996: checking for opendir in -lx" >&5 |
7091 |
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` |
6996 |
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` |
7092 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
6997 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7093 |
echo $ac_n "(cached) $ac_c" 1>&6 |
6998 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7095-7101
Link Here
|
7095 |
ac_save_LIBS="$LIBS" |
7000 |
ac_save_LIBS="$LIBS" |
7096 |
LIBS="-lx $LIBS" |
7001 |
LIBS="-lx $LIBS" |
7097 |
cat > conftest.$ac_ext <<EOF |
7002 |
cat > conftest.$ac_ext <<EOF |
7098 |
#line 7099 "configure" |
7003 |
#line 7004 "configure" |
7099 |
#include "confdefs.h" |
7004 |
#include "confdefs.h" |
7100 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7005 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7101 |
/* We use char because int might match the return type of a gcc2 |
7006 |
/* We use char because int might match the return type of a gcc2 |
Lines 7106-7112
Link Here
|
7106 |
opendir() |
7011 |
opendir() |
7107 |
; return 0; } |
7012 |
; return 0; } |
7108 |
EOF |
7013 |
EOF |
7109 |
if { (eval echo configure:7110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7014 |
if { (eval echo configure:7015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7110 |
rm -rf conftest* |
7015 |
rm -rf conftest* |
7111 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7016 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7112 |
else |
7017 |
else |
Lines 7138-7154
Link Here
|
7138 |
do |
7043 |
do |
7139 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7044 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7140 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7045 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7141 |
echo "configure:7142: checking for $ac_hdr" >&5 |
7046 |
echo "configure:7047: checking for $ac_hdr" >&5 |
7142 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7047 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7143 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7048 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7144 |
else |
7049 |
else |
7145 |
cat > conftest.$ac_ext <<EOF |
7050 |
cat > conftest.$ac_ext <<EOF |
7146 |
#line 7147 "configure" |
7051 |
#line 7052 "configure" |
7147 |
#include "confdefs.h" |
7052 |
#include "confdefs.h" |
7148 |
#include <$ac_hdr> |
7053 |
#include <$ac_hdr> |
7149 |
EOF |
7054 |
EOF |
7150 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7055 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7151 |
{ (eval echo configure:7152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7056 |
{ (eval echo configure:7057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7152 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7057 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7153 |
if test -z "$ac_err"; then |
7058 |
if test -z "$ac_err"; then |
7154 |
rm -rf conftest* |
7059 |
rm -rf conftest* |
Lines 7178-7194
Link Here
|
7178 |
do |
7083 |
do |
7179 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7084 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7180 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7085 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7181 |
echo "configure:7182: checking for $ac_hdr" >&5 |
7086 |
echo "configure:7087: checking for $ac_hdr" >&5 |
7182 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7087 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7183 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7088 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7184 |
else |
7089 |
else |
7185 |
cat > conftest.$ac_ext <<EOF |
7090 |
cat > conftest.$ac_ext <<EOF |
7186 |
#line 7187 "configure" |
7091 |
#line 7092 "configure" |
7187 |
#include "confdefs.h" |
7092 |
#include "confdefs.h" |
7188 |
#include <$ac_hdr> |
7093 |
#include <$ac_hdr> |
7189 |
EOF |
7094 |
EOF |
7190 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7095 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7191 |
{ (eval echo configure:7192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7096 |
{ (eval echo configure:7097: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7192 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7097 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7193 |
if test -z "$ac_err"; then |
7098 |
if test -z "$ac_err"; then |
7194 |
rm -rf conftest* |
7099 |
rm -rf conftest* |
Lines 7218-7234
Link Here
|
7218 |
do |
7123 |
do |
7219 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7124 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7220 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7125 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7221 |
echo "configure:7222: checking for $ac_hdr" >&5 |
7126 |
echo "configure:7127: checking for $ac_hdr" >&5 |
7222 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7127 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7223 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7128 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7224 |
else |
7129 |
else |
7225 |
cat > conftest.$ac_ext <<EOF |
7130 |
cat > conftest.$ac_ext <<EOF |
7226 |
#line 7227 "configure" |
7131 |
#line 7132 "configure" |
7227 |
#include "confdefs.h" |
7132 |
#include "confdefs.h" |
7228 |
#include <$ac_hdr> |
7133 |
#include <$ac_hdr> |
7229 |
EOF |
7134 |
EOF |
7230 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7135 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7231 |
{ (eval echo configure:7232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7136 |
{ (eval echo configure:7137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7232 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7137 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7233 |
if test -z "$ac_err"; then |
7138 |
if test -z "$ac_err"; then |
7234 |
rm -rf conftest* |
7139 |
rm -rf conftest* |
Lines 7258-7274
Link Here
|
7258 |
do |
7163 |
do |
7259 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7164 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7260 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7165 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7261 |
echo "configure:7262: checking for $ac_hdr" >&5 |
7166 |
echo "configure:7167: checking for $ac_hdr" >&5 |
7262 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7167 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7263 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7168 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7264 |
else |
7169 |
else |
7265 |
cat > conftest.$ac_ext <<EOF |
7170 |
cat > conftest.$ac_ext <<EOF |
7266 |
#line 7267 "configure" |
7171 |
#line 7172 "configure" |
7267 |
#include "confdefs.h" |
7172 |
#include "confdefs.h" |
7268 |
#include <$ac_hdr> |
7173 |
#include <$ac_hdr> |
7269 |
EOF |
7174 |
EOF |
7270 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7175 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7271 |
{ (eval echo configure:7272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7176 |
{ (eval echo configure:7177: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7272 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7177 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7273 |
if test -z "$ac_err"; then |
7178 |
if test -z "$ac_err"; then |
7274 |
rm -rf conftest* |
7179 |
rm -rf conftest* |
Lines 7298-7314
Link Here
|
7298 |
do |
7203 |
do |
7299 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7204 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7300 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7205 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7301 |
echo "configure:7302: checking for $ac_hdr" >&5 |
7206 |
echo "configure:7207: checking for $ac_hdr" >&5 |
7302 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7207 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7303 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7208 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7304 |
else |
7209 |
else |
7305 |
cat > conftest.$ac_ext <<EOF |
7210 |
cat > conftest.$ac_ext <<EOF |
7306 |
#line 7307 "configure" |
7211 |
#line 7212 "configure" |
7307 |
#include "confdefs.h" |
7212 |
#include "confdefs.h" |
7308 |
#include <$ac_hdr> |
7213 |
#include <$ac_hdr> |
7309 |
EOF |
7214 |
EOF |
7310 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7215 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7311 |
{ (eval echo configure:7312: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7216 |
{ (eval echo configure:7217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7312 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7217 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7313 |
if test -z "$ac_err"; then |
7218 |
if test -z "$ac_err"; then |
7314 |
rm -rf conftest* |
7219 |
rm -rf conftest* |
Lines 7339-7355
Link Here
|
7339 |
do |
7244 |
do |
7340 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7245 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7341 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7246 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7342 |
echo "configure:7343: checking for $ac_hdr" >&5 |
7247 |
echo "configure:7248: checking for $ac_hdr" >&5 |
7343 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7248 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7344 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7249 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7345 |
else |
7250 |
else |
7346 |
cat > conftest.$ac_ext <<EOF |
7251 |
cat > conftest.$ac_ext <<EOF |
7347 |
#line 7348 "configure" |
7252 |
#line 7253 "configure" |
7348 |
#include "confdefs.h" |
7253 |
#include "confdefs.h" |
7349 |
#include <$ac_hdr> |
7254 |
#include <$ac_hdr> |
7350 |
EOF |
7255 |
EOF |
7351 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7256 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7352 |
{ (eval echo configure:7353: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7257 |
{ (eval echo configure:7258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7353 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7258 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7354 |
if test -z "$ac_err"; then |
7259 |
if test -z "$ac_err"; then |
7355 |
rm -rf conftest* |
7260 |
rm -rf conftest* |
Lines 7380-7396
Link Here
|
7380 |
do |
7285 |
do |
7381 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7286 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7382 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7287 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7383 |
echo "configure:7384: checking for $ac_hdr" >&5 |
7288 |
echo "configure:7289: checking for $ac_hdr" >&5 |
7384 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7289 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7385 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7290 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7386 |
else |
7291 |
else |
7387 |
cat > conftest.$ac_ext <<EOF |
7292 |
cat > conftest.$ac_ext <<EOF |
7388 |
#line 7389 "configure" |
7293 |
#line 7294 "configure" |
7389 |
#include "confdefs.h" |
7294 |
#include "confdefs.h" |
7390 |
#include <$ac_hdr> |
7295 |
#include <$ac_hdr> |
7391 |
EOF |
7296 |
EOF |
7392 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7297 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7393 |
{ (eval echo configure:7394: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7298 |
{ (eval echo configure:7299: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7394 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7299 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7395 |
if test -z "$ac_err"; then |
7300 |
if test -z "$ac_err"; then |
7396 |
rm -rf conftest* |
7301 |
rm -rf conftest* |
Lines 7427-7443
Link Here
|
7427 |
NEW_H=new.h |
7332 |
NEW_H=new.h |
7428 |
ac_safe=`echo "new" | sed 'y%./+-%__p_%'` |
7333 |
ac_safe=`echo "new" | sed 'y%./+-%__p_%'` |
7429 |
echo $ac_n "checking for new""... $ac_c" 1>&6 |
7334 |
echo $ac_n "checking for new""... $ac_c" 1>&6 |
7430 |
echo "configure:7431: checking for new" >&5 |
7335 |
echo "configure:7336: checking for new" >&5 |
7431 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7336 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7432 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7337 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7433 |
else |
7338 |
else |
7434 |
cat > conftest.$ac_ext <<EOF |
7339 |
cat > conftest.$ac_ext <<EOF |
7435 |
#line 7436 "configure" |
7340 |
#line 7341 "configure" |
7436 |
#include "confdefs.h" |
7341 |
#include "confdefs.h" |
7437 |
#include <new> |
7342 |
#include <new> |
7438 |
EOF |
7343 |
EOF |
7439 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7344 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7440 |
{ (eval echo configure:7441: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7345 |
{ (eval echo configure:7346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7441 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7346 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7442 |
if test -z "$ac_err"; then |
7347 |
if test -z "$ac_err"; then |
7443 |
rm -rf conftest* |
7348 |
rm -rf conftest* |
Lines 7478-7494
Link Here
|
7478 |
do |
7383 |
do |
7479 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7384 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
7480 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7385 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
7481 |
echo "configure:7482: checking for $ac_hdr" >&5 |
7386 |
echo "configure:7387: checking for $ac_hdr" >&5 |
7482 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7387 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7483 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7388 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7484 |
else |
7389 |
else |
7485 |
cat > conftest.$ac_ext <<EOF |
7390 |
cat > conftest.$ac_ext <<EOF |
7486 |
#line 7487 "configure" |
7391 |
#line 7392 "configure" |
7487 |
#include "confdefs.h" |
7392 |
#include "confdefs.h" |
7488 |
#include <$ac_hdr> |
7393 |
#include <$ac_hdr> |
7489 |
EOF |
7394 |
EOF |
7490 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7395 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7491 |
{ (eval echo configure:7492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7396 |
{ (eval echo configure:7397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7492 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7397 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7493 |
if test -z "$ac_err"; then |
7398 |
if test -z "$ac_err"; then |
7494 |
rm -rf conftest* |
7399 |
rm -rf conftest* |
Lines 7522-7528
Link Here
|
7522 |
;; |
7427 |
;; |
7523 |
*) |
7428 |
*) |
7524 |
echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6 |
7429 |
echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6 |
7525 |
echo "configure:7526: checking for gethostbyname_r in -lc_r" >&5 |
7430 |
echo "configure:7431: checking for gethostbyname_r in -lc_r" >&5 |
7526 |
ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'` |
7431 |
ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'` |
7527 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7432 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7528 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7433 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7530-7536
Link Here
|
7530 |
ac_save_LIBS="$LIBS" |
7435 |
ac_save_LIBS="$LIBS" |
7531 |
LIBS="-lc_r $LIBS" |
7436 |
LIBS="-lc_r $LIBS" |
7532 |
cat > conftest.$ac_ext <<EOF |
7437 |
cat > conftest.$ac_ext <<EOF |
7533 |
#line 7534 "configure" |
7438 |
#line 7439 "configure" |
7534 |
#include "confdefs.h" |
7439 |
#include "confdefs.h" |
7535 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7440 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7536 |
/* We use char because int might match the return type of a gcc2 |
7441 |
/* We use char because int might match the return type of a gcc2 |
Lines 7541-7547
Link Here
|
7541 |
gethostbyname_r() |
7446 |
gethostbyname_r() |
7542 |
; return 0; } |
7447 |
; return 0; } |
7543 |
EOF |
7448 |
EOF |
7544 |
if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7449 |
if { (eval echo configure:7450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7545 |
rm -rf conftest* |
7450 |
rm -rf conftest* |
7546 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7451 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7547 |
else |
7452 |
else |
Lines 7571-7577
Link Here
|
7571 |
;; |
7476 |
;; |
7572 |
esac |
7477 |
esac |
7573 |
echo $ac_n "checking for atan in -lm""... $ac_c" 1>&6 |
7478 |
echo $ac_n "checking for atan in -lm""... $ac_c" 1>&6 |
7574 |
echo "configure:7575: checking for atan in -lm" >&5 |
7479 |
echo "configure:7480: checking for atan in -lm" >&5 |
7575 |
ac_lib_var=`echo m'_'atan | sed 'y%./+-%__p_%'` |
7480 |
ac_lib_var=`echo m'_'atan | sed 'y%./+-%__p_%'` |
7576 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7481 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7577 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7482 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7579-7585
Link Here
|
7579 |
ac_save_LIBS="$LIBS" |
7484 |
ac_save_LIBS="$LIBS" |
7580 |
LIBS="-lm $LIBS" |
7485 |
LIBS="-lm $LIBS" |
7581 |
cat > conftest.$ac_ext <<EOF |
7486 |
cat > conftest.$ac_ext <<EOF |
7582 |
#line 7583 "configure" |
7487 |
#line 7488 "configure" |
7583 |
#include "confdefs.h" |
7488 |
#include "confdefs.h" |
7584 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7489 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7585 |
/* We use char because int might match the return type of a gcc2 |
7490 |
/* We use char because int might match the return type of a gcc2 |
Lines 7590-7596
Link Here
|
7590 |
atan() |
7495 |
atan() |
7591 |
; return 0; } |
7496 |
; return 0; } |
7592 |
EOF |
7497 |
EOF |
7593 |
if { (eval echo configure:7594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7498 |
if { (eval echo configure:7499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7594 |
rm -rf conftest* |
7499 |
rm -rf conftest* |
7595 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7500 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7596 |
else |
7501 |
else |
Lines 7624-7630
Link Here
|
7624 |
;; |
7529 |
;; |
7625 |
*) |
7530 |
*) |
7626 |
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 |
7531 |
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 |
7627 |
echo "configure:7628: checking for dlopen in -ldl" >&5 |
7532 |
echo "configure:7533: checking for dlopen in -ldl" >&5 |
7628 |
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` |
7533 |
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` |
7629 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7534 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7630 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7535 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7632-7638
Link Here
|
7632 |
ac_save_LIBS="$LIBS" |
7537 |
ac_save_LIBS="$LIBS" |
7633 |
LIBS="-ldl $LIBS" |
7538 |
LIBS="-ldl $LIBS" |
7634 |
cat > conftest.$ac_ext <<EOF |
7539 |
cat > conftest.$ac_ext <<EOF |
7635 |
#line 7636 "configure" |
7540 |
#line 7541 "configure" |
7636 |
#include "confdefs.h" |
7541 |
#include "confdefs.h" |
7637 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7542 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7638 |
/* We use char because int might match the return type of a gcc2 |
7543 |
/* We use char because int might match the return type of a gcc2 |
Lines 7643-7649
Link Here
|
7643 |
dlopen() |
7548 |
dlopen() |
7644 |
; return 0; } |
7549 |
; return 0; } |
7645 |
EOF |
7550 |
EOF |
7646 |
if { (eval echo configure:7647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7551 |
if { (eval echo configure:7552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7647 |
rm -rf conftest* |
7552 |
rm -rf conftest* |
7648 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7553 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7649 |
else |
7554 |
else |
Lines 7660-7676
Link Here
|
7660 |
echo "$ac_t""yes" 1>&6 |
7565 |
echo "$ac_t""yes" 1>&6 |
7661 |
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` |
7566 |
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` |
7662 |
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 |
7567 |
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 |
7663 |
echo "configure:7664: checking for dlfcn.h" >&5 |
7568 |
echo "configure:7569: checking for dlfcn.h" >&5 |
7664 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7569 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
7665 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7570 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7666 |
else |
7571 |
else |
7667 |
cat > conftest.$ac_ext <<EOF |
7572 |
cat > conftest.$ac_ext <<EOF |
7668 |
#line 7669 "configure" |
7573 |
#line 7574 "configure" |
7669 |
#include "confdefs.h" |
7574 |
#include "confdefs.h" |
7670 |
#include <dlfcn.h> |
7575 |
#include <dlfcn.h> |
7671 |
EOF |
7576 |
EOF |
7672 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7577 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
7673 |
{ (eval echo configure:7674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7578 |
{ (eval echo configure:7579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
7674 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7579 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
7675 |
if test -z "$ac_err"; then |
7580 |
if test -z "$ac_err"; then |
7676 |
rm -rf conftest* |
7581 |
rm -rf conftest* |
Lines 7706-7712
Link Here
|
7706 |
case $target in |
7611 |
case $target in |
7707 |
*-aix*) |
7612 |
*-aix*) |
7708 |
echo $ac_n "checking for demangle in -lC_r""... $ac_c" 1>&6 |
7613 |
echo $ac_n "checking for demangle in -lC_r""... $ac_c" 1>&6 |
7709 |
echo "configure:7710: checking for demangle in -lC_r" >&5 |
7614 |
echo "configure:7615: checking for demangle in -lC_r" >&5 |
7710 |
ac_lib_var=`echo C_r'_'demangle | sed 'y%./+-%__p_%'` |
7615 |
ac_lib_var=`echo C_r'_'demangle | sed 'y%./+-%__p_%'` |
7711 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7616 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7712 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7617 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7714-7720
Link Here
|
7714 |
ac_save_LIBS="$LIBS" |
7619 |
ac_save_LIBS="$LIBS" |
7715 |
LIBS="-lC_r $LIBS" |
7620 |
LIBS="-lC_r $LIBS" |
7716 |
cat > conftest.$ac_ext <<EOF |
7621 |
cat > conftest.$ac_ext <<EOF |
7717 |
#line 7718 "configure" |
7622 |
#line 7623 "configure" |
7718 |
#include "confdefs.h" |
7623 |
#include "confdefs.h" |
7719 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7624 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7720 |
/* We use char because int might match the return type of a gcc2 |
7625 |
/* We use char because int might match the return type of a gcc2 |
Lines 7725-7731
Link Here
|
7725 |
demangle() |
7630 |
demangle() |
7726 |
; return 0; } |
7631 |
; return 0; } |
7727 |
EOF |
7632 |
EOF |
7728 |
if { (eval echo configure:7729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7633 |
if { (eval echo configure:7634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7729 |
rm -rf conftest* |
7634 |
rm -rf conftest* |
7730 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7635 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7731 |
else |
7636 |
else |
Lines 7755-7761
Link Here
|
7755 |
;; |
7660 |
;; |
7756 |
*) |
7661 |
*) |
7757 |
echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6 |
7662 |
echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6 |
7758 |
echo "configure:7759: checking for demangle in -lC" >&5 |
7663 |
echo "configure:7664: checking for demangle in -lC" >&5 |
7759 |
ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'` |
7664 |
ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'` |
7760 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7665 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7761 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7666 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7763-7769
Link Here
|
7763 |
ac_save_LIBS="$LIBS" |
7668 |
ac_save_LIBS="$LIBS" |
7764 |
LIBS="-lC $LIBS" |
7669 |
LIBS="-lC $LIBS" |
7765 |
cat > conftest.$ac_ext <<EOF |
7670 |
cat > conftest.$ac_ext <<EOF |
7766 |
#line 7767 "configure" |
7671 |
#line 7672 "configure" |
7767 |
#include "confdefs.h" |
7672 |
#include "confdefs.h" |
7768 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7673 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7769 |
/* We use char because int might match the return type of a gcc2 |
7674 |
/* We use char because int might match the return type of a gcc2 |
Lines 7774-7780
Link Here
|
7774 |
demangle() |
7679 |
demangle() |
7775 |
; return 0; } |
7680 |
; return 0; } |
7776 |
EOF |
7681 |
EOF |
7777 |
if { (eval echo configure:7778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7682 |
if { (eval echo configure:7683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7778 |
rm -rf conftest* |
7683 |
rm -rf conftest* |
7779 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7684 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7780 |
else |
7685 |
else |
Lines 7805-7811
Link Here
|
7805 |
esac |
7710 |
esac |
7806 |
fi |
7711 |
fi |
7807 |
echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 |
7712 |
echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 |
7808 |
echo "configure:7809: checking for socket in -lsocket" >&5 |
7713 |
echo "configure:7714: checking for socket in -lsocket" >&5 |
7809 |
ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` |
7714 |
ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` |
7810 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7715 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7811 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7716 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7813-7819
Link Here
|
7813 |
ac_save_LIBS="$LIBS" |
7718 |
ac_save_LIBS="$LIBS" |
7814 |
LIBS="-lsocket $LIBS" |
7719 |
LIBS="-lsocket $LIBS" |
7815 |
cat > conftest.$ac_ext <<EOF |
7720 |
cat > conftest.$ac_ext <<EOF |
7816 |
#line 7817 "configure" |
7721 |
#line 7722 "configure" |
7817 |
#include "confdefs.h" |
7722 |
#include "confdefs.h" |
7818 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7723 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7819 |
/* We use char because int might match the return type of a gcc2 |
7724 |
/* We use char because int might match the return type of a gcc2 |
Lines 7824-7830
Link Here
|
7824 |
socket() |
7729 |
socket() |
7825 |
; return 0; } |
7730 |
; return 0; } |
7826 |
EOF |
7731 |
EOF |
7827 |
if { (eval echo configure:7828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7732 |
if { (eval echo configure:7733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7828 |
rm -rf conftest* |
7733 |
rm -rf conftest* |
7829 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7734 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7830 |
else |
7735 |
else |
Lines 7869-7875
Link Here
|
7869 |
_SAVE_LDFLAGS="$LDFLAGS" |
7774 |
_SAVE_LDFLAGS="$LDFLAGS" |
7870 |
LDFLAGS="$XLDFLAGS $LDFLAGS" |
7775 |
LDFLAGS="$XLDFLAGS $LDFLAGS" |
7871 |
echo $ac_n "checking for XDrawLines in -lX11""... $ac_c" 1>&6 |
7776 |
echo $ac_n "checking for XDrawLines in -lX11""... $ac_c" 1>&6 |
7872 |
echo "configure:7873: checking for XDrawLines in -lX11" >&5 |
7777 |
echo "configure:7778: checking for XDrawLines in -lX11" >&5 |
7873 |
ac_lib_var=`echo X11'_'XDrawLines | sed 'y%./+-%__p_%'` |
7778 |
ac_lib_var=`echo X11'_'XDrawLines | sed 'y%./+-%__p_%'` |
7874 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7779 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7875 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7780 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7877-7883
Link Here
|
7877 |
ac_save_LIBS="$LIBS" |
7782 |
ac_save_LIBS="$LIBS" |
7878 |
LIBS="-lX11 $XLIBS $LIBS" |
7783 |
LIBS="-lX11 $XLIBS $LIBS" |
7879 |
cat > conftest.$ac_ext <<EOF |
7784 |
cat > conftest.$ac_ext <<EOF |
7880 |
#line 7881 "configure" |
7785 |
#line 7786 "configure" |
7881 |
#include "confdefs.h" |
7786 |
#include "confdefs.h" |
7882 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7787 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7883 |
/* We use char because int might match the return type of a gcc2 |
7788 |
/* We use char because int might match the return type of a gcc2 |
Lines 7888-7894
Link Here
|
7888 |
XDrawLines() |
7793 |
XDrawLines() |
7889 |
; return 0; } |
7794 |
; return 0; } |
7890 |
EOF |
7795 |
EOF |
7891 |
if { (eval echo configure:7892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7796 |
if { (eval echo configure:7797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7892 |
rm -rf conftest* |
7797 |
rm -rf conftest* |
7893 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7798 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7894 |
else |
7799 |
else |
Lines 7910-7916
Link Here
|
7910 |
fi |
7815 |
fi |
7911 |
|
7816 |
|
7912 |
echo $ac_n "checking for XextAddDisplay in -lXext""... $ac_c" 1>&6 |
7817 |
echo $ac_n "checking for XextAddDisplay in -lXext""... $ac_c" 1>&6 |
7913 |
echo "configure:7914: checking for XextAddDisplay in -lXext" >&5 |
7818 |
echo "configure:7819: checking for XextAddDisplay in -lXext" >&5 |
7914 |
ac_lib_var=`echo Xext'_'XextAddDisplay | sed 'y%./+-%__p_%'` |
7819 |
ac_lib_var=`echo Xext'_'XextAddDisplay | sed 'y%./+-%__p_%'` |
7915 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7820 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7916 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7821 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7918-7924
Link Here
|
7918 |
ac_save_LIBS="$LIBS" |
7823 |
ac_save_LIBS="$LIBS" |
7919 |
LIBS="-lXext $XLIBS $LIBS" |
7824 |
LIBS="-lXext $XLIBS $LIBS" |
7920 |
cat > conftest.$ac_ext <<EOF |
7825 |
cat > conftest.$ac_ext <<EOF |
7921 |
#line 7922 "configure" |
7826 |
#line 7827 "configure" |
7922 |
#include "confdefs.h" |
7827 |
#include "confdefs.h" |
7923 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7828 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7924 |
/* We use char because int might match the return type of a gcc2 |
7829 |
/* We use char because int might match the return type of a gcc2 |
Lines 7929-7935
Link Here
|
7929 |
XextAddDisplay() |
7834 |
XextAddDisplay() |
7930 |
; return 0; } |
7835 |
; return 0; } |
7931 |
EOF |
7836 |
EOF |
7932 |
if { (eval echo configure:7933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7837 |
if { (eval echo configure:7838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7933 |
rm -rf conftest* |
7838 |
rm -rf conftest* |
7934 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7839 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7935 |
else |
7840 |
else |
Lines 7953-7959
Link Here
|
7953 |
|
7858 |
|
7954 |
|
7859 |
|
7955 |
echo $ac_n "checking for XtFree in -lXt""... $ac_c" 1>&6 |
7860 |
echo $ac_n "checking for XtFree in -lXt""... $ac_c" 1>&6 |
7956 |
echo "configure:7957: checking for XtFree in -lXt" >&5 |
7861 |
echo "configure:7862: checking for XtFree in -lXt" >&5 |
7957 |
ac_lib_var=`echo Xt'_'XtFree | sed 'y%./+-%__p_%'` |
7862 |
ac_lib_var=`echo Xt'_'XtFree | sed 'y%./+-%__p_%'` |
7958 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7863 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7959 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7864 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 7961-7967
Link Here
|
7961 |
ac_save_LIBS="$LIBS" |
7866 |
ac_save_LIBS="$LIBS" |
7962 |
LIBS="-lXt $LIBS" |
7867 |
LIBS="-lXt $LIBS" |
7963 |
cat > conftest.$ac_ext <<EOF |
7868 |
cat > conftest.$ac_ext <<EOF |
7964 |
#line 7965 "configure" |
7869 |
#line 7870 "configure" |
7965 |
#include "confdefs.h" |
7870 |
#include "confdefs.h" |
7966 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7871 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7967 |
/* We use char because int might match the return type of a gcc2 |
7872 |
/* We use char because int might match the return type of a gcc2 |
Lines 7972-7978
Link Here
|
7972 |
XtFree() |
7877 |
XtFree() |
7973 |
; return 0; } |
7878 |
; return 0; } |
7974 |
EOF |
7879 |
EOF |
7975 |
if { (eval echo configure:7976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7880 |
if { (eval echo configure:7881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7976 |
rm -rf conftest* |
7881 |
rm -rf conftest* |
7977 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7882 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7978 |
else |
7883 |
else |
Lines 7993-7999
Link Here
|
7993 |
|
7898 |
|
7994 |
unset ac_cv_lib_Xt_XtFree |
7899 |
unset ac_cv_lib_Xt_XtFree |
7995 |
echo $ac_n "checking for IceFlush in -lICE""... $ac_c" 1>&6 |
7900 |
echo $ac_n "checking for IceFlush in -lICE""... $ac_c" 1>&6 |
7996 |
echo "configure:7997: checking for IceFlush in -lICE" >&5 |
7901 |
echo "configure:7902: checking for IceFlush in -lICE" >&5 |
7997 |
ac_lib_var=`echo ICE'_'IceFlush | sed 'y%./+-%__p_%'` |
7902 |
ac_lib_var=`echo ICE'_'IceFlush | sed 'y%./+-%__p_%'` |
7998 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7903 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7999 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7904 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8001-8007
Link Here
|
8001 |
ac_save_LIBS="$LIBS" |
7906 |
ac_save_LIBS="$LIBS" |
8002 |
LIBS="-lICE $XT_LIBS $XLIBS $LIBS" |
7907 |
LIBS="-lICE $XT_LIBS $XLIBS $LIBS" |
8003 |
cat > conftest.$ac_ext <<EOF |
7908 |
cat > conftest.$ac_ext <<EOF |
8004 |
#line 8005 "configure" |
7909 |
#line 7910 "configure" |
8005 |
#include "confdefs.h" |
7910 |
#include "confdefs.h" |
8006 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7911 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8007 |
/* We use char because int might match the return type of a gcc2 |
7912 |
/* We use char because int might match the return type of a gcc2 |
Lines 8012-8018
Link Here
|
8012 |
IceFlush() |
7917 |
IceFlush() |
8013 |
; return 0; } |
7918 |
; return 0; } |
8014 |
EOF |
7919 |
EOF |
8015 |
if { (eval echo configure:8016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7920 |
if { (eval echo configure:7921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8016 |
rm -rf conftest* |
7921 |
rm -rf conftest* |
8017 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7922 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8018 |
else |
7923 |
else |
Lines 8033-8039
Link Here
|
8033 |
fi |
7938 |
fi |
8034 |
|
7939 |
|
8035 |
echo $ac_n "checking for SmcCloseConnection in -lSM""... $ac_c" 1>&6 |
7940 |
echo $ac_n "checking for SmcCloseConnection in -lSM""... $ac_c" 1>&6 |
8036 |
echo "configure:8037: checking for SmcCloseConnection in -lSM" >&5 |
7941 |
echo "configure:7942: checking for SmcCloseConnection in -lSM" >&5 |
8037 |
ac_lib_var=`echo SM'_'SmcCloseConnection | sed 'y%./+-%__p_%'` |
7942 |
ac_lib_var=`echo SM'_'SmcCloseConnection | sed 'y%./+-%__p_%'` |
8038 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7943 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8039 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7944 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8041-8047
Link Here
|
8041 |
ac_save_LIBS="$LIBS" |
7946 |
ac_save_LIBS="$LIBS" |
8042 |
LIBS="-lSM $XT_LIBS $XLIBS $LIBS" |
7947 |
LIBS="-lSM $XT_LIBS $XLIBS $LIBS" |
8043 |
cat > conftest.$ac_ext <<EOF |
7948 |
cat > conftest.$ac_ext <<EOF |
8044 |
#line 8045 "configure" |
7949 |
#line 7950 "configure" |
8045 |
#include "confdefs.h" |
7950 |
#include "confdefs.h" |
8046 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7951 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8047 |
/* We use char because int might match the return type of a gcc2 |
7952 |
/* We use char because int might match the return type of a gcc2 |
Lines 8052-8058
Link Here
|
8052 |
SmcCloseConnection() |
7957 |
SmcCloseConnection() |
8053 |
; return 0; } |
7958 |
; return 0; } |
8054 |
EOF |
7959 |
EOF |
8055 |
if { (eval echo configure:8056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
7960 |
if { (eval echo configure:7961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8056 |
rm -rf conftest* |
7961 |
rm -rf conftest* |
8057 |
eval "ac_cv_lib_$ac_lib_var=yes" |
7962 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8058 |
else |
7963 |
else |
Lines 8073-8079
Link Here
|
8073 |
fi |
7978 |
fi |
8074 |
|
7979 |
|
8075 |
echo $ac_n "checking for XtFree in -lXt""... $ac_c" 1>&6 |
7980 |
echo $ac_n "checking for XtFree in -lXt""... $ac_c" 1>&6 |
8076 |
echo "configure:8077: checking for XtFree in -lXt" >&5 |
7981 |
echo "configure:7982: checking for XtFree in -lXt" >&5 |
8077 |
ac_lib_var=`echo Xt'_'XtFree | sed 'y%./+-%__p_%'` |
7982 |
ac_lib_var=`echo Xt'_'XtFree | sed 'y%./+-%__p_%'` |
8078 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
7983 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8079 |
echo $ac_n "(cached) $ac_c" 1>&6 |
7984 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8081-8087
Link Here
|
8081 |
ac_save_LIBS="$LIBS" |
7986 |
ac_save_LIBS="$LIBS" |
8082 |
LIBS="-lXt $X_PRE_LIBS $XT_LIBS $XLIBS $LIBS" |
7987 |
LIBS="-lXt $X_PRE_LIBS $XT_LIBS $XLIBS $LIBS" |
8083 |
cat > conftest.$ac_ext <<EOF |
7988 |
cat > conftest.$ac_ext <<EOF |
8084 |
#line 8085 "configure" |
7989 |
#line 7990 "configure" |
8085 |
#include "confdefs.h" |
7990 |
#include "confdefs.h" |
8086 |
/* Override any gcc2 internal prototype to avoid an error. */ |
7991 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8087 |
/* We use char because int might match the return type of a gcc2 |
7992 |
/* We use char because int might match the return type of a gcc2 |
Lines 8092-8098
Link Here
|
8092 |
XtFree() |
7997 |
XtFree() |
8093 |
; return 0; } |
7998 |
; return 0; } |
8094 |
EOF |
7999 |
EOF |
8095 |
if { (eval echo configure:8096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8000 |
if { (eval echo configure:8001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8096 |
rm -rf conftest* |
8001 |
rm -rf conftest* |
8097 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8002 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8098 |
else |
8003 |
else |
Lines 8126-8132
Link Here
|
8126 |
esac |
8031 |
esac |
8127 |
|
8032 |
|
8128 |
echo $ac_n "checking for XineramaIsActive in -lXinerama""... $ac_c" 1>&6 |
8033 |
echo $ac_n "checking for XineramaIsActive in -lXinerama""... $ac_c" 1>&6 |
8129 |
echo "configure:8130: checking for XineramaIsActive in -lXinerama" >&5 |
8034 |
echo "configure:8035: checking for XineramaIsActive in -lXinerama" >&5 |
8130 |
ac_lib_var=`echo Xinerama'_'XineramaIsActive | sed 'y%./+-%__p_%'` |
8035 |
ac_lib_var=`echo Xinerama'_'XineramaIsActive | sed 'y%./+-%__p_%'` |
8131 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8036 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8132 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8037 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8134-8140
Link Here
|
8134 |
ac_save_LIBS="$LIBS" |
8039 |
ac_save_LIBS="$LIBS" |
8135 |
LIBS="-lXinerama $XLIBS $XEXT_LIBS $LIBS" |
8040 |
LIBS="-lXinerama $XLIBS $XEXT_LIBS $LIBS" |
8136 |
cat > conftest.$ac_ext <<EOF |
8041 |
cat > conftest.$ac_ext <<EOF |
8137 |
#line 8138 "configure" |
8042 |
#line 8043 "configure" |
8138 |
#include "confdefs.h" |
8043 |
#include "confdefs.h" |
8139 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8044 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8140 |
/* We use char because int might match the return type of a gcc2 |
8045 |
/* We use char because int might match the return type of a gcc2 |
Lines 8145-8151
Link Here
|
8145 |
XineramaIsActive() |
8050 |
XineramaIsActive() |
8146 |
; return 0; } |
8051 |
; return 0; } |
8147 |
EOF |
8052 |
EOF |
8148 |
if { (eval echo configure:8149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8053 |
if { (eval echo configure:8054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8149 |
rm -rf conftest* |
8054 |
rm -rf conftest* |
8150 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8055 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8151 |
else |
8056 |
else |
Lines 8167-8183
Link Here
|
8167 |
|
8072 |
|
8168 |
ac_safe=`echo "X11/extensions/Xinerama.h" | sed 'y%./+-%__p_%'` |
8073 |
ac_safe=`echo "X11/extensions/Xinerama.h" | sed 'y%./+-%__p_%'` |
8169 |
echo $ac_n "checking for X11/extensions/Xinerama.h""... $ac_c" 1>&6 |
8074 |
echo $ac_n "checking for X11/extensions/Xinerama.h""... $ac_c" 1>&6 |
8170 |
echo "configure:8171: checking for X11/extensions/Xinerama.h" >&5 |
8075 |
echo "configure:8076: checking for X11/extensions/Xinerama.h" >&5 |
8171 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8076 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8172 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8077 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8173 |
else |
8078 |
else |
8174 |
cat > conftest.$ac_ext <<EOF |
8079 |
cat > conftest.$ac_ext <<EOF |
8175 |
#line 8176 "configure" |
8080 |
#line 8081 "configure" |
8176 |
#include "confdefs.h" |
8081 |
#include "confdefs.h" |
8177 |
#include <X11/extensions/Xinerama.h> |
8082 |
#include <X11/extensions/Xinerama.h> |
8178 |
EOF |
8083 |
EOF |
8179 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8084 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8180 |
{ (eval echo configure:8181: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8085 |
{ (eval echo configure:8086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8181 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8086 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8182 |
if test -z "$ac_err"; then |
8087 |
if test -z "$ac_err"; then |
8183 |
rm -rf conftest* |
8088 |
rm -rf conftest* |
Lines 8200-8206
Link Here
|
8200 |
|
8105 |
|
8201 |
|
8106 |
|
8202 |
echo $ac_n "checking for XShmCreateImage in -lXext""... $ac_c" 1>&6 |
8107 |
echo $ac_n "checking for XShmCreateImage in -lXext""... $ac_c" 1>&6 |
8203 |
echo "configure:8204: checking for XShmCreateImage in -lXext" >&5 |
8108 |
echo "configure:8109: checking for XShmCreateImage in -lXext" >&5 |
8204 |
ac_lib_var=`echo Xext'_'XShmCreateImage | sed 'y%./+-%__p_%'` |
8109 |
ac_lib_var=`echo Xext'_'XShmCreateImage | sed 'y%./+-%__p_%'` |
8205 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8110 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8206 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8111 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8208-8214
Link Here
|
8208 |
ac_save_LIBS="$LIBS" |
8113 |
ac_save_LIBS="$LIBS" |
8209 |
LIBS="-lXext $XLIBS $XEXT_LIBS $LIBS" |
8114 |
LIBS="-lXext $XLIBS $XEXT_LIBS $LIBS" |
8210 |
cat > conftest.$ac_ext <<EOF |
8115 |
cat > conftest.$ac_ext <<EOF |
8211 |
#line 8212 "configure" |
8116 |
#line 8117 "configure" |
8212 |
#include "confdefs.h" |
8117 |
#include "confdefs.h" |
8213 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8118 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8214 |
/* We use char because int might match the return type of a gcc2 |
8119 |
/* We use char because int might match the return type of a gcc2 |
Lines 8219-8225
Link Here
|
8219 |
XShmCreateImage() |
8124 |
XShmCreateImage() |
8220 |
; return 0; } |
8125 |
; return 0; } |
8221 |
EOF |
8126 |
EOF |
8222 |
if { (eval echo configure:8223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8127 |
if { (eval echo configure:8128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8223 |
rm -rf conftest* |
8128 |
rm -rf conftest* |
8224 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8129 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8225 |
else |
8130 |
else |
Lines 8241-8257
Link Here
|
8241 |
|
8146 |
|
8242 |
ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'` |
8147 |
ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'` |
8243 |
echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6 |
8148 |
echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6 |
8244 |
echo "configure:8245: checking for X11/extensions/XShm.h" >&5 |
8149 |
echo "configure:8150: checking for X11/extensions/XShm.h" >&5 |
8245 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8150 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8246 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8151 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8247 |
else |
8152 |
else |
8248 |
cat > conftest.$ac_ext <<EOF |
8153 |
cat > conftest.$ac_ext <<EOF |
8249 |
#line 8250 "configure" |
8154 |
#line 8155 "configure" |
8250 |
#include "confdefs.h" |
8155 |
#include "confdefs.h" |
8251 |
#include <X11/extensions/XShm.h> |
8156 |
#include <X11/extensions/XShm.h> |
8252 |
EOF |
8157 |
EOF |
8253 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8158 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8254 |
{ (eval echo configure:8255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8159 |
{ (eval echo configure:8160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8255 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8160 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8256 |
if test -z "$ac_err"; then |
8161 |
if test -z "$ac_err"; then |
8257 |
rm -rf conftest* |
8162 |
rm -rf conftest* |
Lines 8281-8287
Link Here
|
8281 |
fi |
8186 |
fi |
8282 |
|
8187 |
|
8283 |
echo $ac_n "checking for XieFloGeometry in -lXIE""... $ac_c" 1>&6 |
8188 |
echo $ac_n "checking for XieFloGeometry in -lXIE""... $ac_c" 1>&6 |
8284 |
echo "configure:8285: checking for XieFloGeometry in -lXIE" >&5 |
8189 |
echo "configure:8190: checking for XieFloGeometry in -lXIE" >&5 |
8285 |
ac_lib_var=`echo XIE'_'XieFloGeometry | sed 'y%./+-%__p_%'` |
8190 |
ac_lib_var=`echo XIE'_'XieFloGeometry | sed 'y%./+-%__p_%'` |
8286 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8191 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
8287 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8192 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 8289-8295
Link Here
|
8289 |
ac_save_LIBS="$LIBS" |
8194 |
ac_save_LIBS="$LIBS" |
8290 |
LIBS="-lXIE $XLIBS $XEXT_LIBS $LIBS" |
8195 |
LIBS="-lXIE $XLIBS $XEXT_LIBS $LIBS" |
8291 |
cat > conftest.$ac_ext <<EOF |
8196 |
cat > conftest.$ac_ext <<EOF |
8292 |
#line 8293 "configure" |
8197 |
#line 8198 "configure" |
8293 |
#include "confdefs.h" |
8198 |
#include "confdefs.h" |
8294 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8199 |
/* Override any gcc2 internal prototype to avoid an error. */ |
8295 |
/* We use char because int might match the return type of a gcc2 |
8200 |
/* We use char because int might match the return type of a gcc2 |
Lines 8300-8306
Link Here
|
8300 |
XieFloGeometry() |
8205 |
XieFloGeometry() |
8301 |
; return 0; } |
8206 |
; return 0; } |
8302 |
EOF |
8207 |
EOF |
8303 |
if { (eval echo configure:8304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8208 |
if { (eval echo configure:8209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8304 |
rm -rf conftest* |
8209 |
rm -rf conftest* |
8305 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8210 |
eval "ac_cv_lib_$ac_lib_var=yes" |
8306 |
else |
8211 |
else |
Lines 8322-8338
Link Here
|
8322 |
|
8227 |
|
8323 |
ac_safe=`echo "X11/extensions/XIElib.h" | sed 'y%./+-%__p_%'` |
8228 |
ac_safe=`echo "X11/extensions/XIElib.h" | sed 'y%./+-%__p_%'` |
8324 |
echo $ac_n "checking for X11/extensions/XIElib.h""... $ac_c" 1>&6 |
8229 |
echo $ac_n "checking for X11/extensions/XIElib.h""... $ac_c" 1>&6 |
8325 |
echo "configure:8326: checking for X11/extensions/XIElib.h" >&5 |
8230 |
echo "configure:8231: checking for X11/extensions/XIElib.h" >&5 |
8326 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8231 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
8327 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8232 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8328 |
else |
8233 |
else |
8329 |
cat > conftest.$ac_ext <<EOF |
8234 |
cat > conftest.$ac_ext <<EOF |
8330 |
#line 8331 "configure" |
8235 |
#line 8236 "configure" |
8331 |
#include "confdefs.h" |
8236 |
#include "confdefs.h" |
8332 |
#include <X11/extensions/XIElib.h> |
8237 |
#include <X11/extensions/XIElib.h> |
8333 |
EOF |
8238 |
EOF |
8334 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8239 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
8335 |
{ (eval echo configure:8336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8240 |
{ (eval echo configure:8241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
8336 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8241 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
8337 |
if test -z "$ac_err"; then |
8242 |
if test -z "$ac_err"; then |
8338 |
rm -rf conftest* |
8243 |
rm -rf conftest* |
Lines 8406-8412
Link Here
|
8406 |
# Extract the first word of "freetype-config", so it can be a program name with args. |
8311 |
# Extract the first word of "freetype-config", so it can be a program name with args. |
8407 |
set dummy freetype-config; ac_word=$2 |
8312 |
set dummy freetype-config; ac_word=$2 |
8408 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
8313 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
8409 |
echo "configure:8410: checking for $ac_word" >&5 |
8314 |
echo "configure:8315: checking for $ac_word" >&5 |
8410 |
if eval "test \"`echo '$''{'ac_cv_path_FT2_CONFIG'+set}'`\" = set"; then |
8315 |
if eval "test \"`echo '$''{'ac_cv_path_FT2_CONFIG'+set}'`\" = set"; then |
8411 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8316 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8412 |
else |
8317 |
else |
Lines 8442-8448
Link Here
|
8442 |
|
8347 |
|
8443 |
min_ft_version=6.1.0 |
8348 |
min_ft_version=6.1.0 |
8444 |
echo $ac_n "checking for FreeType - version >= $min_ft_version""... $ac_c" 1>&6 |
8349 |
echo $ac_n "checking for FreeType - version >= $min_ft_version""... $ac_c" 1>&6 |
8445 |
echo "configure:8446: checking for FreeType - version >= $min_ft_version" >&5 |
8350 |
echo "configure:8351: checking for FreeType - version >= $min_ft_version" >&5 |
8446 |
no_ft="" |
8351 |
no_ft="" |
8447 |
if test "$FT2_CONFIG" = "no" ; then |
8352 |
if test "$FT2_CONFIG" = "no" ; then |
8448 |
no_ft=yes |
8353 |
no_ft=yes |
Lines 8490-8496
Link Here
|
8490 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
8395 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
8491 |
else |
8396 |
else |
8492 |
cat > conftest.$ac_ext <<EOF |
8397 |
cat > conftest.$ac_ext <<EOF |
8493 |
#line 8494 "configure" |
8398 |
#line 8399 "configure" |
8494 |
#include "confdefs.h" |
8399 |
#include "confdefs.h" |
8495 |
|
8400 |
|
8496 |
#include <ft2build.h> |
8401 |
#include <ft2build.h> |
Lines 8516-8522
Link Here
|
8516 |
} |
8421 |
} |
8517 |
|
8422 |
|
8518 |
EOF |
8423 |
EOF |
8519 |
if { (eval echo configure:8520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8424 |
if { (eval echo configure:8425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8520 |
then |
8425 |
then |
8521 |
: |
8426 |
: |
8522 |
else |
8427 |
else |
Lines 8568-8574
Link Here
|
8568 |
|
8473 |
|
8569 |
|
8474 |
|
8570 |
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6 |
8475 |
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6 |
8571 |
echo "configure:8572: checking for pthread_create in -lpthreads" >&5 |
8476 |
echo "configure:8477: checking for pthread_create in -lpthreads" >&5 |
8572 |
echo " |
8477 |
echo " |
8573 |
#include <pthread.h> |
8478 |
#include <pthread.h> |
8574 |
void *foo(void *v) { int a = 1; } |
8479 |
void *foo(void *v) { int a = 1; } |
Lines 8590-8596
Link Here
|
8590 |
echo "$ac_t""no" 1>&6 |
8495 |
echo "$ac_t""no" 1>&6 |
8591 |
|
8496 |
|
8592 |
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 |
8497 |
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 |
8593 |
echo "configure:8594: checking for pthread_create in -lpthread" >&5 |
8498 |
echo "configure:8499: checking for pthread_create in -lpthread" >&5 |
8594 |
echo " |
8499 |
echo " |
8595 |
#include <pthread.h> |
8500 |
#include <pthread.h> |
8596 |
void *foo(void *v) { int a = 1; } |
8501 |
void *foo(void *v) { int a = 1; } |
Lines 8612-8618
Link Here
|
8612 |
echo "$ac_t""no" 1>&6 |
8517 |
echo "$ac_t""no" 1>&6 |
8613 |
|
8518 |
|
8614 |
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6 |
8519 |
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6 |
8615 |
echo "configure:8616: checking for pthread_create in -lc_r" >&5 |
8520 |
echo "configure:8521: checking for pthread_create in -lc_r" >&5 |
8616 |
echo " |
8521 |
echo " |
8617 |
#include <pthread.h> |
8522 |
#include <pthread.h> |
8618 |
void *foo(void *v) { int a = 1; } |
8523 |
void *foo(void *v) { int a = 1; } |
Lines 8634-8640
Link Here
|
8634 |
echo "$ac_t""no" 1>&6 |
8539 |
echo "$ac_t""no" 1>&6 |
8635 |
|
8540 |
|
8636 |
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6 |
8541 |
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6 |
8637 |
echo "configure:8638: checking for pthread_create in -lc" >&5 |
8542 |
echo "configure:8543: checking for pthread_create in -lc" >&5 |
8638 |
echo " |
8543 |
echo " |
8639 |
#include <pthread.h> |
8544 |
#include <pthread.h> |
8640 |
void *foo(void *v) { int a = 1; } |
8545 |
void *foo(void *v) { int a = 1; } |
Lines 8690-8696
Link Here
|
8690 |
rm -f conftest* |
8595 |
rm -f conftest* |
8691 |
ac_cv_have_dash_pthread=no |
8596 |
ac_cv_have_dash_pthread=no |
8692 |
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6 |
8597 |
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6 |
8693 |
echo "configure:8694: checking whether ${CC-cc} accepts -pthread" >&5 |
8598 |
echo "configure:8599: checking whether ${CC-cc} accepts -pthread" >&5 |
8694 |
echo 'int main() { return 0; }' | cat > conftest.c |
8599 |
echo 'int main() { return 0; }' | cat > conftest.c |
8695 |
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1 |
8600 |
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1 |
8696 |
if test $? -eq 0; then |
8601 |
if test $? -eq 0; then |
Lines 8713-8719
Link Here
|
8713 |
ac_cv_have_dash_pthreads=no |
8618 |
ac_cv_have_dash_pthreads=no |
8714 |
if test "$ac_cv_have_dash_pthread" = "no"; then |
8619 |
if test "$ac_cv_have_dash_pthread" = "no"; then |
8715 |
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6 |
8620 |
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6 |
8716 |
echo "configure:8717: checking whether ${CC-cc} accepts -pthreads" >&5 |
8621 |
echo "configure:8622: checking whether ${CC-cc} accepts -pthreads" >&5 |
8717 |
echo 'int main() { return 0; }' | cat > conftest.c |
8622 |
echo 'int main() { return 0; }' | cat > conftest.c |
8718 |
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1 |
8623 |
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1 |
8719 |
if test $? -eq 0; then |
8624 |
if test $? -eq 0; then |
Lines 8844-8850
Link Here
|
8844 |
|
8749 |
|
8845 |
|
8750 |
|
8846 |
echo $ac_n "checking whether mmap() sees write()s""... $ac_c" 1>&6 |
8751 |
echo $ac_n "checking whether mmap() sees write()s""... $ac_c" 1>&6 |
8847 |
echo "configure:8848: checking whether mmap() sees write()s" >&5 |
8752 |
echo "configure:8753: checking whether mmap() sees write()s" >&5 |
8848 |
|
8753 |
|
8849 |
|
8754 |
|
8850 |
mmap_test_prog=' |
8755 |
mmap_test_prog=' |
Lines 8883-8893
Link Here
|
8883 |
result="yes" |
8788 |
result="yes" |
8884 |
else |
8789 |
else |
8885 |
cat > conftest.$ac_ext <<EOF |
8790 |
cat > conftest.$ac_ext <<EOF |
8886 |
#line 8887 "configure" |
8791 |
#line 8792 "configure" |
8887 |
#include "confdefs.h" |
8792 |
#include "confdefs.h" |
8888 |
$mmap_test_prog |
8793 |
$mmap_test_prog |
8889 |
EOF |
8794 |
EOF |
8890 |
if { (eval echo configure:8891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8795 |
if { (eval echo configure:8796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8891 |
then |
8796 |
then |
8892 |
result="yes" |
8797 |
result="yes" |
8893 |
else |
8798 |
else |
Lines 8912-8924
Link Here
|
8912 |
|
8817 |
|
8913 |
if test $ac_cv_prog_gcc = yes; then |
8818 |
if test $ac_cv_prog_gcc = yes; then |
8914 |
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 |
8819 |
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 |
8915 |
echo "configure:8916: checking whether ${CC-cc} needs -traditional" >&5 |
8820 |
echo "configure:8821: checking whether ${CC-cc} needs -traditional" >&5 |
8916 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then |
8821 |
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then |
8917 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8822 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8918 |
else |
8823 |
else |
8919 |
ac_pattern="Autoconf.*'x'" |
8824 |
ac_pattern="Autoconf.*'x'" |
8920 |
cat > conftest.$ac_ext <<EOF |
8825 |
cat > conftest.$ac_ext <<EOF |
8921 |
#line 8922 "configure" |
8826 |
#line 8827 "configure" |
8922 |
#include "confdefs.h" |
8827 |
#include "confdefs.h" |
8923 |
#include <sgtty.h> |
8828 |
#include <sgtty.h> |
8924 |
Autoconf TIOCGETP |
8829 |
Autoconf TIOCGETP |
Lines 8936-8942
Link Here
|
8936 |
|
8841 |
|
8937 |
if test $ac_cv_prog_gcc_traditional = no; then |
8842 |
if test $ac_cv_prog_gcc_traditional = no; then |
8938 |
cat > conftest.$ac_ext <<EOF |
8843 |
cat > conftest.$ac_ext <<EOF |
8939 |
#line 8940 "configure" |
8844 |
#line 8845 "configure" |
8940 |
#include "confdefs.h" |
8845 |
#include "confdefs.h" |
8941 |
#include <termio.h> |
8846 |
#include <termio.h> |
8942 |
Autoconf TCGETA |
8847 |
Autoconf TCGETA |
Lines 8958-8964
Link Here
|
8958 |
fi |
8863 |
fi |
8959 |
|
8864 |
|
8960 |
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 |
8865 |
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 |
8961 |
echo "configure:8962: checking for 8-bit clean memcmp" >&5 |
8866 |
echo "configure:8867: checking for 8-bit clean memcmp" >&5 |
8962 |
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then |
8867 |
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then |
8963 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8868 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8964 |
else |
8869 |
else |
Lines 8966-8972
Link Here
|
8966 |
ac_cv_func_memcmp_clean=no |
8871 |
ac_cv_func_memcmp_clean=no |
8967 |
else |
8872 |
else |
8968 |
cat > conftest.$ac_ext <<EOF |
8873 |
cat > conftest.$ac_ext <<EOF |
8969 |
#line 8970 "configure" |
8874 |
#line 8875 "configure" |
8970 |
#include "confdefs.h" |
8875 |
#include "confdefs.h" |
8971 |
|
8876 |
|
8972 |
main() |
8877 |
main() |
Lines 8976-8982
Link Here
|
8976 |
} |
8881 |
} |
8977 |
|
8882 |
|
8978 |
EOF |
8883 |
EOF |
8979 |
if { (eval echo configure:8980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8884 |
if { (eval echo configure:8885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
8980 |
then |
8885 |
then |
8981 |
ac_cv_func_memcmp_clean=yes |
8886 |
ac_cv_func_memcmp_clean=yes |
8982 |
else |
8887 |
else |
Lines 8996-9007
Link Here
|
8996 |
for ac_func in random strerror lchown fchmod snprintf statvfs memmove rint |
8901 |
for ac_func in random strerror lchown fchmod snprintf statvfs memmove rint |
8997 |
do |
8902 |
do |
8998 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
8903 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
8999 |
echo "configure:9000: checking for $ac_func" >&5 |
8904 |
echo "configure:8905: checking for $ac_func" >&5 |
9000 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
8905 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
9001 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8906 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9002 |
else |
8907 |
else |
9003 |
cat > conftest.$ac_ext <<EOF |
8908 |
cat > conftest.$ac_ext <<EOF |
9004 |
#line 9005 "configure" |
8909 |
#line 8910 "configure" |
9005 |
#include "confdefs.h" |
8910 |
#include "confdefs.h" |
9006 |
/* System header to define __stub macros and hopefully few prototypes, |
8911 |
/* System header to define __stub macros and hopefully few prototypes, |
9007 |
which can conflict with char $ac_func(); below. */ |
8912 |
which can conflict with char $ac_func(); below. */ |
Lines 9024-9030
Link Here
|
9024 |
|
8929 |
|
9025 |
; return 0; } |
8930 |
; return 0; } |
9026 |
EOF |
8931 |
EOF |
9027 |
if { (eval echo configure:9028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8932 |
if { (eval echo configure:8933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9028 |
rm -rf conftest* |
8933 |
rm -rf conftest* |
9029 |
eval "ac_cv_func_$ac_func=yes" |
8934 |
eval "ac_cv_func_$ac_func=yes" |
9030 |
else |
8935 |
else |
Lines 9051-9062
Link Here
|
9051 |
for ac_func in flockfile getpagesize |
8956 |
for ac_func in flockfile getpagesize |
9052 |
do |
8957 |
do |
9053 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
8958 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
9054 |
echo "configure:9055: checking for $ac_func" >&5 |
8959 |
echo "configure:8960: checking for $ac_func" >&5 |
9055 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
8960 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
9056 |
echo $ac_n "(cached) $ac_c" 1>&6 |
8961 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9057 |
else |
8962 |
else |
9058 |
cat > conftest.$ac_ext <<EOF |
8963 |
cat > conftest.$ac_ext <<EOF |
9059 |
#line 9060 "configure" |
8964 |
#line 8965 "configure" |
9060 |
#include "confdefs.h" |
8965 |
#include "confdefs.h" |
9061 |
/* System header to define __stub macros and hopefully few prototypes, |
8966 |
/* System header to define __stub macros and hopefully few prototypes, |
9062 |
which can conflict with char $ac_func(); below. */ |
8967 |
which can conflict with char $ac_func(); below. */ |
Lines 9079-9085
Link Here
|
9079 |
|
8984 |
|
9080 |
; return 0; } |
8985 |
; return 0; } |
9081 |
EOF |
8986 |
EOF |
9082 |
if { (eval echo configure:9083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
8987 |
if { (eval echo configure:8988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9083 |
rm -rf conftest* |
8988 |
rm -rf conftest* |
9084 |
eval "ac_cv_func_$ac_func=yes" |
8989 |
eval "ac_cv_func_$ac_func=yes" |
9085 |
else |
8990 |
else |
Lines 9108-9119
Link Here
|
9108 |
for ac_func in localtime_r strtok_r |
9013 |
for ac_func in localtime_r strtok_r |
9109 |
do |
9014 |
do |
9110 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
9015 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
9111 |
echo "configure:9112: checking for $ac_func" >&5 |
9016 |
echo "configure:9017: checking for $ac_func" >&5 |
9112 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
9017 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
9113 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9018 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9114 |
else |
9019 |
else |
9115 |
cat > conftest.$ac_ext <<EOF |
9020 |
cat > conftest.$ac_ext <<EOF |
9116 |
#line 9117 "configure" |
9021 |
#line 9022 "configure" |
9117 |
#include "confdefs.h" |
9022 |
#include "confdefs.h" |
9118 |
/* System header to define __stub macros and hopefully few prototypes, |
9023 |
/* System header to define __stub macros and hopefully few prototypes, |
9119 |
which can conflict with char $ac_func(); below. */ |
9024 |
which can conflict with char $ac_func(); below. */ |
Lines 9136-9142
Link Here
|
9136 |
|
9041 |
|
9137 |
; return 0; } |
9042 |
; return 0; } |
9138 |
EOF |
9043 |
EOF |
9139 |
if { (eval echo configure:9140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9044 |
if { (eval echo configure:9045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9140 |
rm -rf conftest* |
9045 |
rm -rf conftest* |
9141 |
eval "ac_cv_func_$ac_func=yes" |
9046 |
eval "ac_cv_func_$ac_func=yes" |
9142 |
else |
9047 |
else |
Lines 9172-9190
Link Here
|
9172 |
cross_compiling=$ac_cv_prog_cxx_cross |
9077 |
cross_compiling=$ac_cv_prog_cxx_cross |
9173 |
|
9078 |
|
9174 |
echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6 |
9079 |
echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6 |
9175 |
echo "configure:9176: checking for wcrtomb" >&5 |
9080 |
echo "configure:9081: checking for wcrtomb" >&5 |
9176 |
if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then |
9081 |
if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then |
9177 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9082 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9178 |
else |
9083 |
else |
9179 |
cat > conftest.$ac_ext <<EOF |
9084 |
cat > conftest.$ac_ext <<EOF |
9180 |
#line 9181 "configure" |
9085 |
#line 9086 "configure" |
9181 |
#include "confdefs.h" |
9086 |
#include "confdefs.h" |
9182 |
#include <wchar.h> |
9087 |
#include <wchar.h> |
9183 |
int main() { |
9088 |
int main() { |
9184 |
mbstate_t ps={0};wcrtomb(0,'f',&ps); |
9089 |
mbstate_t ps={0};wcrtomb(0,'f',&ps); |
9185 |
; return 0; } |
9090 |
; return 0; } |
9186 |
EOF |
9091 |
EOF |
9187 |
if { (eval echo configure:9188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9092 |
if { (eval echo configure:9093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9188 |
rm -rf conftest* |
9093 |
rm -rf conftest* |
9189 |
ac_cv_have_wcrtomb="yes" |
9094 |
ac_cv_have_wcrtomb="yes" |
9190 |
else |
9095 |
else |
Lines 9204-9222
Link Here
|
9204 |
|
9109 |
|
9205 |
fi |
9110 |
fi |
9206 |
echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6 |
9111 |
echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6 |
9207 |
echo "configure:9208: checking for mbrtowc" >&5 |
9112 |
echo "configure:9113: checking for mbrtowc" >&5 |
9208 |
if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then |
9113 |
if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then |
9209 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9114 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9210 |
else |
9115 |
else |
9211 |
cat > conftest.$ac_ext <<EOF |
9116 |
cat > conftest.$ac_ext <<EOF |
9212 |
#line 9213 "configure" |
9117 |
#line 9118 "configure" |
9213 |
#include "confdefs.h" |
9118 |
#include "confdefs.h" |
9214 |
#include <wchar.h> |
9119 |
#include <wchar.h> |
9215 |
int main() { |
9120 |
int main() { |
9216 |
mbstate_t ps={0};mbrtowc(0,0,0,&ps); |
9121 |
mbstate_t ps={0};mbrtowc(0,0,0,&ps); |
9217 |
; return 0; } |
9122 |
; return 0; } |
9218 |
EOF |
9123 |
EOF |
9219 |
if { (eval echo configure:9220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9124 |
if { (eval echo configure:9125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9220 |
rm -rf conftest* |
9125 |
rm -rf conftest* |
9221 |
ac_cv_have_mbrtowc="yes" |
9126 |
ac_cv_have_mbrtowc="yes" |
9222 |
else |
9127 |
else |
Lines 9245-9256
Link Here
|
9245 |
fi |
9150 |
fi |
9246 |
|
9151 |
|
9247 |
echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6 |
9152 |
echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6 |
9248 |
echo "configure:9249: checking for res_ninit()" >&5 |
9153 |
echo "configure:9154: checking for res_ninit()" >&5 |
9249 |
if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then |
9154 |
if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then |
9250 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9155 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9251 |
else |
9156 |
else |
9252 |
cat > conftest.$ac_ext <<EOF |
9157 |
cat > conftest.$ac_ext <<EOF |
9253 |
#line 9254 "configure" |
9158 |
#line 9159 "configure" |
9254 |
#include "confdefs.h" |
9159 |
#include "confdefs.h" |
9255 |
|
9160 |
|
9256 |
#ifdef linux |
9161 |
#ifdef linux |
Lines 9262-9268
Link Here
|
9262 |
int foo = res_ninit(&_res); |
9167 |
int foo = res_ninit(&_res); |
9263 |
; return 0; } |
9168 |
; return 0; } |
9264 |
EOF |
9169 |
EOF |
9265 |
if { (eval echo configure:9266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9170 |
if { (eval echo configure:9171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9266 |
rm -rf conftest* |
9171 |
rm -rf conftest* |
9267 |
ac_cv_func_res_ninit=yes |
9172 |
ac_cv_func_res_ninit=yes |
9268 |
else |
9173 |
else |
Lines 9292-9303
Link Here
|
9292 |
cross_compiling=$ac_cv_prog_cxx_cross |
9197 |
cross_compiling=$ac_cv_prog_cxx_cross |
9293 |
|
9198 |
|
9294 |
echo $ac_n "checking for gnu_get_libc_version()""... $ac_c" 1>&6 |
9199 |
echo $ac_n "checking for gnu_get_libc_version()""... $ac_c" 1>&6 |
9295 |
echo "configure:9296: checking for gnu_get_libc_version()" >&5 |
9200 |
echo "configure:9201: checking for gnu_get_libc_version()" >&5 |
9296 |
if eval "test \"`echo '$''{'ac_cv_func_gnu_get_libc_version'+set}'`\" = set"; then |
9201 |
if eval "test \"`echo '$''{'ac_cv_func_gnu_get_libc_version'+set}'`\" = set"; then |
9297 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9202 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9298 |
else |
9203 |
else |
9299 |
cat > conftest.$ac_ext <<EOF |
9204 |
cat > conftest.$ac_ext <<EOF |
9300 |
#line 9301 "configure" |
9205 |
#line 9206 "configure" |
9301 |
#include "confdefs.h" |
9206 |
#include "confdefs.h" |
9302 |
|
9207 |
|
9303 |
#ifdef HAVE_GNU_LIBC_VERSION_H |
9208 |
#ifdef HAVE_GNU_LIBC_VERSION_H |
Lines 9308-9314
Link Here
|
9308 |
const char *glibc_version = gnu_get_libc_version(); |
9213 |
const char *glibc_version = gnu_get_libc_version(); |
9309 |
; return 0; } |
9214 |
; return 0; } |
9310 |
EOF |
9215 |
EOF |
9311 |
if { (eval echo configure:9312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9216 |
if { (eval echo configure:9217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9312 |
rm -rf conftest* |
9217 |
rm -rf conftest* |
9313 |
ac_cv_func_gnu_get_libc_version=yes |
9218 |
ac_cv_func_gnu_get_libc_version=yes |
9314 |
else |
9219 |
else |
Lines 9337-9343
Link Here
|
9337 |
*) |
9242 |
*) |
9338 |
|
9243 |
|
9339 |
echo $ac_n "checking for iconv in -lc""... $ac_c" 1>&6 |
9244 |
echo $ac_n "checking for iconv in -lc""... $ac_c" 1>&6 |
9340 |
echo "configure:9341: checking for iconv in -lc" >&5 |
9245 |
echo "configure:9246: checking for iconv in -lc" >&5 |
9341 |
ac_lib_var=`echo c'_'iconv | sed 'y%./+-%__p_%'` |
9246 |
ac_lib_var=`echo c'_'iconv | sed 'y%./+-%__p_%'` |
9342 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9247 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9343 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9248 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 9345-9351
Link Here
|
9345 |
ac_save_LIBS="$LIBS" |
9250 |
ac_save_LIBS="$LIBS" |
9346 |
LIBS="-lc $LIBS" |
9251 |
LIBS="-lc $LIBS" |
9347 |
cat > conftest.$ac_ext <<EOF |
9252 |
cat > conftest.$ac_ext <<EOF |
9348 |
#line 9349 "configure" |
9253 |
#line 9254 "configure" |
9349 |
#include "confdefs.h" |
9254 |
#include "confdefs.h" |
9350 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9255 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9351 |
#ifdef __cplusplus |
9256 |
#ifdef __cplusplus |
Lines 9359-9365
Link Here
|
9359 |
iconv() |
9264 |
iconv() |
9360 |
; return 0; } |
9265 |
; return 0; } |
9361 |
EOF |
9266 |
EOF |
9362 |
if { (eval echo configure:9363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9267 |
if { (eval echo configure:9268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9363 |
rm -rf conftest* |
9268 |
rm -rf conftest* |
9364 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9269 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9365 |
else |
9270 |
else |
Lines 9378-9384
Link Here
|
9378 |
else |
9283 |
else |
9379 |
echo "$ac_t""no" 1>&6 |
9284 |
echo "$ac_t""no" 1>&6 |
9380 |
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 |
9285 |
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 |
9381 |
echo "configure:9382: checking for iconv in -liconv" >&5 |
9286 |
echo "configure:9287: checking for iconv in -liconv" >&5 |
9382 |
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` |
9287 |
ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` |
9383 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9288 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9384 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9289 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 9386-9392
Link Here
|
9386 |
ac_save_LIBS="$LIBS" |
9291 |
ac_save_LIBS="$LIBS" |
9387 |
LIBS="-liconv $LIBS" |
9292 |
LIBS="-liconv $LIBS" |
9388 |
cat > conftest.$ac_ext <<EOF |
9293 |
cat > conftest.$ac_ext <<EOF |
9389 |
#line 9390 "configure" |
9294 |
#line 9295 "configure" |
9390 |
#include "confdefs.h" |
9295 |
#include "confdefs.h" |
9391 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9296 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9392 |
#ifdef __cplusplus |
9297 |
#ifdef __cplusplus |
Lines 9400-9406
Link Here
|
9400 |
iconv() |
9305 |
iconv() |
9401 |
; return 0; } |
9306 |
; return 0; } |
9402 |
EOF |
9307 |
EOF |
9403 |
if { (eval echo configure:9404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9308 |
if { (eval echo configure:9309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9404 |
rm -rf conftest* |
9309 |
rm -rf conftest* |
9405 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9310 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9406 |
else |
9311 |
else |
Lines 9419-9425
Link Here
|
9419 |
else |
9324 |
else |
9420 |
echo "$ac_t""no" 1>&6 |
9325 |
echo "$ac_t""no" 1>&6 |
9421 |
echo $ac_n "checking for libiconv in -liconv""... $ac_c" 1>&6 |
9326 |
echo $ac_n "checking for libiconv in -liconv""... $ac_c" 1>&6 |
9422 |
echo "configure:9423: checking for libiconv in -liconv" >&5 |
9327 |
echo "configure:9328: checking for libiconv in -liconv" >&5 |
9423 |
ac_lib_var=`echo iconv'_'libiconv | sed 'y%./+-%__p_%'` |
9328 |
ac_lib_var=`echo iconv'_'libiconv | sed 'y%./+-%__p_%'` |
9424 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9329 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
9425 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9330 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 9427-9433
Link Here
|
9427 |
ac_save_LIBS="$LIBS" |
9332 |
ac_save_LIBS="$LIBS" |
9428 |
LIBS="-liconv $LIBS" |
9333 |
LIBS="-liconv $LIBS" |
9429 |
cat > conftest.$ac_ext <<EOF |
9334 |
cat > conftest.$ac_ext <<EOF |
9430 |
#line 9431 "configure" |
9335 |
#line 9336 "configure" |
9431 |
#include "confdefs.h" |
9336 |
#include "confdefs.h" |
9432 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9337 |
/* Override any gcc2 internal prototype to avoid an error. */ |
9433 |
#ifdef __cplusplus |
9338 |
#ifdef __cplusplus |
Lines 9441-9447
Link Here
|
9441 |
libiconv() |
9346 |
libiconv() |
9442 |
; return 0; } |
9347 |
; return 0; } |
9443 |
EOF |
9348 |
EOF |
9444 |
if { (eval echo configure:9445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9349 |
if { (eval echo configure:9350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9445 |
rm -rf conftest* |
9350 |
rm -rf conftest* |
9446 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9351 |
eval "ac_cv_lib_$ac_lib_var=yes" |
9447 |
else |
9352 |
else |
Lines 9468-9479
Link Here
|
9468 |
_SAVE_LIBS=$LIBS |
9373 |
_SAVE_LIBS=$LIBS |
9469 |
LIBS="$LIBS $_ICONV_LIBS" |
9374 |
LIBS="$LIBS $_ICONV_LIBS" |
9470 |
echo $ac_n "checking for iconv()""... $ac_c" 1>&6 |
9375 |
echo $ac_n "checking for iconv()""... $ac_c" 1>&6 |
9471 |
echo "configure:9472: checking for iconv()" >&5 |
9376 |
echo "configure:9377: checking for iconv()" >&5 |
9472 |
if eval "test \"`echo '$''{'ac_cv_func_iconv'+set}'`\" = set"; then |
9377 |
if eval "test \"`echo '$''{'ac_cv_func_iconv'+set}'`\" = set"; then |
9473 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9378 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9474 |
else |
9379 |
else |
9475 |
cat > conftest.$ac_ext <<EOF |
9380 |
cat > conftest.$ac_ext <<EOF |
9476 |
#line 9477 "configure" |
9381 |
#line 9382 "configure" |
9477 |
#include "confdefs.h" |
9382 |
#include "confdefs.h" |
9478 |
|
9383 |
|
9479 |
#include <stdlib.h> |
9384 |
#include <stdlib.h> |
Lines 9487-9493
Link Here
|
9487 |
|
9392 |
|
9488 |
; return 0; } |
9393 |
; return 0; } |
9489 |
EOF |
9394 |
EOF |
9490 |
if { (eval echo configure:9491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9395 |
if { (eval echo configure:9396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9491 |
rm -rf conftest* |
9396 |
rm -rf conftest* |
9492 |
ac_cv_func_iconv=yes |
9397 |
ac_cv_func_iconv=yes |
9493 |
else |
9398 |
else |
Lines 9510-9521
Link Here
|
9510 |
XPCOM_LIBS="$XPCOM_LIBS $_ICONV_LIBS" |
9415 |
XPCOM_LIBS="$XPCOM_LIBS $_ICONV_LIBS" |
9511 |
LIBICONV="$_ICONV_LIBS" |
9416 |
LIBICONV="$_ICONV_LIBS" |
9512 |
echo $ac_n "checking for iconv() with const input""... $ac_c" 1>&6 |
9417 |
echo $ac_n "checking for iconv() with const input""... $ac_c" 1>&6 |
9513 |
echo "configure:9514: checking for iconv() with const input" >&5 |
9418 |
echo "configure:9419: checking for iconv() with const input" >&5 |
9514 |
if eval "test \"`echo '$''{'ac_cv_func_const_iconv'+set}'`\" = set"; then |
9419 |
if eval "test \"`echo '$''{'ac_cv_func_const_iconv'+set}'`\" = set"; then |
9515 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9420 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9516 |
else |
9421 |
else |
9517 |
cat > conftest.$ac_ext <<EOF |
9422 |
cat > conftest.$ac_ext <<EOF |
9518 |
#line 9519 "configure" |
9423 |
#line 9424 "configure" |
9519 |
#include "confdefs.h" |
9424 |
#include "confdefs.h" |
9520 |
|
9425 |
|
9521 |
#include <stdlib.h> |
9426 |
#include <stdlib.h> |
Lines 9530-9536
Link Here
|
9530 |
|
9435 |
|
9531 |
; return 0; } |
9436 |
; return 0; } |
9532 |
EOF |
9437 |
EOF |
9533 |
if { (eval echo configure:9534: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9438 |
if { (eval echo configure:9439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9534 |
rm -rf conftest* |
9439 |
rm -rf conftest* |
9535 |
ac_cv_func_const_iconv=yes |
9440 |
ac_cv_func_const_iconv=yes |
9536 |
else |
9441 |
else |
Lines 9559-9577
Link Here
|
9559 |
|
9464 |
|
9560 |
|
9465 |
|
9561 |
echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 |
9466 |
echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 |
9562 |
echo "configure:9563: checking for nl_langinfo and CODESET" >&5 |
9467 |
echo "configure:9468: checking for nl_langinfo and CODESET" >&5 |
9563 |
if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then |
9468 |
if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then |
9564 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9469 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9565 |
else |
9470 |
else |
9566 |
cat > conftest.$ac_ext <<EOF |
9471 |
cat > conftest.$ac_ext <<EOF |
9567 |
#line 9568 "configure" |
9472 |
#line 9473 "configure" |
9568 |
#include "confdefs.h" |
9473 |
#include "confdefs.h" |
9569 |
#include <langinfo.h> |
9474 |
#include <langinfo.h> |
9570 |
int main() { |
9475 |
int main() { |
9571 |
char* cs = nl_langinfo(CODESET); |
9476 |
char* cs = nl_langinfo(CODESET); |
9572 |
; return 0; } |
9477 |
; return 0; } |
9573 |
EOF |
9478 |
EOF |
9574 |
if { (eval echo configure:9575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9479 |
if { (eval echo configure:9480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
9575 |
rm -rf conftest* |
9480 |
rm -rf conftest* |
9576 |
am_cv_langinfo_codeset=yes |
9481 |
am_cv_langinfo_codeset=yes |
9577 |
else |
9482 |
else |
Lines 9603-9609
Link Here
|
9603 |
|
9508 |
|
9604 |
|
9509 |
|
9605 |
echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6 |
9510 |
echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6 |
9606 |
echo "configure:9607: checking for an implementation of va_copy()" >&5 |
9511 |
echo "configure:9512: checking for an implementation of va_copy()" >&5 |
9607 |
if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then |
9512 |
if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then |
9608 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9513 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9609 |
else |
9514 |
else |
Lines 9613-9619
Link Here
|
9613 |
|
9518 |
|
9614 |
else |
9519 |
else |
9615 |
cat > conftest.$ac_ext <<EOF |
9520 |
cat > conftest.$ac_ext <<EOF |
9616 |
#line 9617 "configure" |
9521 |
#line 9522 "configure" |
9617 |
#include "confdefs.h" |
9522 |
#include "confdefs.h" |
9618 |
|
9523 |
|
9619 |
#include <stdarg.h> |
9524 |
#include <stdarg.h> |
Lines 9627-9633
Link Here
|
9627 |
} |
9532 |
} |
9628 |
int main() { f (0, 42); return 0; } |
9533 |
int main() { f (0, 42); return 0; } |
9629 |
EOF |
9534 |
EOF |
9630 |
if { (eval echo configure:9631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9535 |
if { (eval echo configure:9536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9631 |
then |
9536 |
then |
9632 |
ac_cv_va_copy=yes |
9537 |
ac_cv_va_copy=yes |
9633 |
else |
9538 |
else |
Lines 9644-9650
Link Here
|
9644 |
|
9549 |
|
9645 |
echo "$ac_t""$ac_cv_va_copy" 1>&6 |
9550 |
echo "$ac_t""$ac_cv_va_copy" 1>&6 |
9646 |
echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6 |
9551 |
echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6 |
9647 |
echo "configure:9648: checking for an implementation of __va_copy()" >&5 |
9552 |
echo "configure:9553: checking for an implementation of __va_copy()" >&5 |
9648 |
if eval "test \"`echo '$''{'ac_cv___va_copy'+set}'`\" = set"; then |
9553 |
if eval "test \"`echo '$''{'ac_cv___va_copy'+set}'`\" = set"; then |
9649 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9554 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9650 |
else |
9555 |
else |
Lines 9654-9660
Link Here
|
9654 |
|
9559 |
|
9655 |
else |
9560 |
else |
9656 |
cat > conftest.$ac_ext <<EOF |
9561 |
cat > conftest.$ac_ext <<EOF |
9657 |
#line 9658 "configure" |
9562 |
#line 9563 "configure" |
9658 |
#include "confdefs.h" |
9563 |
#include "confdefs.h" |
9659 |
|
9564 |
|
9660 |
#include <stdarg.h> |
9565 |
#include <stdarg.h> |
Lines 9668-9674
Link Here
|
9668 |
} |
9573 |
} |
9669 |
int main() { f (0, 42); return 0; } |
9574 |
int main() { f (0, 42); return 0; } |
9670 |
EOF |
9575 |
EOF |
9671 |
if { (eval echo configure:9672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9576 |
if { (eval echo configure:9577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9672 |
then |
9577 |
then |
9673 |
ac_cv___va_copy=yes |
9578 |
ac_cv___va_copy=yes |
9674 |
else |
9579 |
else |
Lines 9685-9691
Link Here
|
9685 |
|
9590 |
|
9686 |
echo "$ac_t""$ac_cv___va_copy" 1>&6 |
9591 |
echo "$ac_t""$ac_cv___va_copy" 1>&6 |
9687 |
echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6 |
9592 |
echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6 |
9688 |
echo "configure:9689: checking whether va_lists can be copied by value" >&5 |
9593 |
echo "configure:9594: checking whether va_lists can be copied by value" >&5 |
9689 |
if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then |
9594 |
if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then |
9690 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9595 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9691 |
else |
9596 |
else |
Lines 9695-9701
Link Here
|
9695 |
|
9600 |
|
9696 |
else |
9601 |
else |
9697 |
cat > conftest.$ac_ext <<EOF |
9602 |
cat > conftest.$ac_ext <<EOF |
9698 |
#line 9699 "configure" |
9603 |
#line 9604 "configure" |
9699 |
#include "confdefs.h" |
9604 |
#include "confdefs.h" |
9700 |
|
9605 |
|
9701 |
#include <stdarg.h> |
9606 |
#include <stdarg.h> |
Lines 9709-9715
Link Here
|
9709 |
} |
9614 |
} |
9710 |
int main() { f (0, 42); return 0; } |
9615 |
int main() { f (0, 42); return 0; } |
9711 |
EOF |
9616 |
EOF |
9712 |
if { (eval echo configure:9713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9617 |
if { (eval echo configure:9618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
9713 |
then |
9618 |
then |
9714 |
ac_cv_va_val_copy=yes |
9619 |
ac_cv_va_val_copy=yes |
9715 |
else |
9620 |
else |
Lines 9808-9814
Link Here
|
9808 |
if test "$GNU_CXX"; then |
9713 |
if test "$GNU_CXX"; then |
9809 |
|
9714 |
|
9810 |
echo $ac_n "checking for C++ exceptions flag""... $ac_c" 1>&6 |
9715 |
echo $ac_n "checking for C++ exceptions flag""... $ac_c" 1>&6 |
9811 |
echo "configure:9812: checking for C++ exceptions flag" >&5 |
9716 |
echo "configure:9717: checking for C++ exceptions flag" >&5 |
9812 |
|
9717 |
|
9813 |
if eval "test \"`echo '$''{'ac_cv_cxx_exceptions_flags'+set}'`\" = set"; then |
9718 |
if eval "test \"`echo '$''{'ac_cv_cxx_exceptions_flags'+set}'`\" = set"; then |
9814 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9719 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 9843-9854
Link Here
|
9843 |
HAVE_GCC3_ABI= |
9748 |
HAVE_GCC3_ABI= |
9844 |
if test "$GNU_CC"; then |
9749 |
if test "$GNU_CC"; then |
9845 |
echo $ac_n "checking for gcc 3.0 ABI""... $ac_c" 1>&6 |
9750 |
echo $ac_n "checking for gcc 3.0 ABI""... $ac_c" 1>&6 |
9846 |
echo "configure:9847: checking for gcc 3.0 ABI" >&5 |
9751 |
echo "configure:9752: checking for gcc 3.0 ABI" >&5 |
9847 |
if eval "test \"`echo '$''{'ac_cv_gcc_three_abi'+set}'`\" = set"; then |
9752 |
if eval "test \"`echo '$''{'ac_cv_gcc_three_abi'+set}'`\" = set"; then |
9848 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9753 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9849 |
else |
9754 |
else |
9850 |
cat > conftest.$ac_ext <<EOF |
9755 |
cat > conftest.$ac_ext <<EOF |
9851 |
#line 9852 "configure" |
9756 |
#line 9757 "configure" |
9852 |
#include "confdefs.h" |
9757 |
#include "confdefs.h" |
9853 |
|
9758 |
|
9854 |
int main() { |
9759 |
int main() { |
Lines 9861-9867
Link Here
|
9861 |
|
9766 |
|
9862 |
; return 0; } |
9767 |
; return 0; } |
9863 |
EOF |
9768 |
EOF |
9864 |
if { (eval echo configure:9865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9769 |
if { (eval echo configure:9770: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9865 |
rm -rf conftest* |
9770 |
rm -rf conftest* |
9866 |
ac_cv_gcc_three_abi="yes" |
9771 |
ac_cv_gcc_three_abi="yes" |
9867 |
else |
9772 |
else |
Lines 9882-9893
Link Here
|
9882 |
|
9787 |
|
9883 |
|
9788 |
|
9884 |
echo $ac_n "checking for C++ \"explicit\" keyword""... $ac_c" 1>&6 |
9789 |
echo $ac_n "checking for C++ \"explicit\" keyword""... $ac_c" 1>&6 |
9885 |
echo "configure:9886: checking for C++ \"explicit\" keyword" >&5 |
9790 |
echo "configure:9791: checking for C++ \"explicit\" keyword" >&5 |
9886 |
if eval "test \"`echo '$''{'ac_cv_cpp_explicit'+set}'`\" = set"; then |
9791 |
if eval "test \"`echo '$''{'ac_cv_cpp_explicit'+set}'`\" = set"; then |
9887 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9792 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9888 |
else |
9793 |
else |
9889 |
cat > conftest.$ac_ext <<EOF |
9794 |
cat > conftest.$ac_ext <<EOF |
9890 |
#line 9891 "configure" |
9795 |
#line 9796 "configure" |
9891 |
#include "confdefs.h" |
9796 |
#include "confdefs.h" |
9892 |
class X { |
9797 |
class X { |
9893 |
public: explicit X(int i) : i_(i) {} |
9798 |
public: explicit X(int i) : i_(i) {} |
Lines 9897-9903
Link Here
|
9897 |
X x(3); |
9802 |
X x(3); |
9898 |
; return 0; } |
9803 |
; return 0; } |
9899 |
EOF |
9804 |
EOF |
9900 |
if { (eval echo configure:9901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9805 |
if { (eval echo configure:9806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9901 |
rm -rf conftest* |
9806 |
rm -rf conftest* |
9902 |
ac_cv_cpp_explicit=yes |
9807 |
ac_cv_cpp_explicit=yes |
9903 |
else |
9808 |
else |
Lines 9918-9929
Link Here
|
9918 |
fi |
9823 |
fi |
9919 |
|
9824 |
|
9920 |
echo $ac_n "checking for C++ \"typename\" keyword""... $ac_c" 1>&6 |
9825 |
echo $ac_n "checking for C++ \"typename\" keyword""... $ac_c" 1>&6 |
9921 |
echo "configure:9922: checking for C++ \"typename\" keyword" >&5 |
9826 |
echo "configure:9827: checking for C++ \"typename\" keyword" >&5 |
9922 |
if eval "test \"`echo '$''{'ac_cv_cpp_typename'+set}'`\" = set"; then |
9827 |
if eval "test \"`echo '$''{'ac_cv_cpp_typename'+set}'`\" = set"; then |
9923 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9828 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9924 |
else |
9829 |
else |
9925 |
cat > conftest.$ac_ext <<EOF |
9830 |
cat > conftest.$ac_ext <<EOF |
9926 |
#line 9927 "configure" |
9831 |
#line 9832 "configure" |
9927 |
#include "confdefs.h" |
9832 |
#include "confdefs.h" |
9928 |
class param { |
9833 |
class param { |
9929 |
public: |
9834 |
public: |
Lines 9942-9948
Link Here
|
9942 |
A.foo(0); |
9847 |
A.foo(0); |
9943 |
; return 0; } |
9848 |
; return 0; } |
9944 |
EOF |
9849 |
EOF |
9945 |
if { (eval echo configure:9946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9850 |
if { (eval echo configure:9851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9946 |
rm -rf conftest* |
9851 |
rm -rf conftest* |
9947 |
ac_cv_cpp_typename=yes |
9852 |
ac_cv_cpp_typename=yes |
9948 |
else |
9853 |
else |
Lines 9963-9974
Link Here
|
9963 |
fi |
9868 |
fi |
9964 |
|
9869 |
|
9965 |
echo $ac_n "checking for modern C++ template specialization syntax support""... $ac_c" 1>&6 |
9870 |
echo $ac_n "checking for modern C++ template specialization syntax support""... $ac_c" 1>&6 |
9966 |
echo "configure:9967: checking for modern C++ template specialization syntax support" >&5 |
9871 |
echo "configure:9872: checking for modern C++ template specialization syntax support" >&5 |
9967 |
if eval "test \"`echo '$''{'ac_cv_cpp_modern_specialize_template_syntax'+set}'`\" = set"; then |
9872 |
if eval "test \"`echo '$''{'ac_cv_cpp_modern_specialize_template_syntax'+set}'`\" = set"; then |
9968 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9873 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9969 |
else |
9874 |
else |
9970 |
cat > conftest.$ac_ext <<EOF |
9875 |
cat > conftest.$ac_ext <<EOF |
9971 |
#line 9972 "configure" |
9876 |
#line 9877 "configure" |
9972 |
#include "confdefs.h" |
9877 |
#include "confdefs.h" |
9973 |
template <class T> struct X { int a; }; |
9878 |
template <class T> struct X { int a; }; |
9974 |
class Y {}; |
9879 |
class Y {}; |
Lines 9978-9984
Link Here
|
9978 |
X<Y> y_x; |
9883 |
X<Y> y_x; |
9979 |
; return 0; } |
9884 |
; return 0; } |
9980 |
EOF |
9885 |
EOF |
9981 |
if { (eval echo configure:9982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9886 |
if { (eval echo configure:9887: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9982 |
rm -rf conftest* |
9887 |
rm -rf conftest* |
9983 |
ac_cv_cpp_modern_specialize_template_syntax=yes |
9888 |
ac_cv_cpp_modern_specialize_template_syntax=yes |
9984 |
else |
9889 |
else |
Lines 10000-10011
Link Here
|
10000 |
|
9905 |
|
10001 |
|
9906 |
|
10002 |
echo $ac_n "checking whether partial template specialization works""... $ac_c" 1>&6 |
9907 |
echo $ac_n "checking whether partial template specialization works""... $ac_c" 1>&6 |
10003 |
echo "configure:10004: checking whether partial template specialization works" >&5 |
9908 |
echo "configure:9909: checking whether partial template specialization works" >&5 |
10004 |
if eval "test \"`echo '$''{'ac_cv_cpp_partial_specialization'+set}'`\" = set"; then |
9909 |
if eval "test \"`echo '$''{'ac_cv_cpp_partial_specialization'+set}'`\" = set"; then |
10005 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9910 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10006 |
else |
9911 |
else |
10007 |
cat > conftest.$ac_ext <<EOF |
9912 |
cat > conftest.$ac_ext <<EOF |
10008 |
#line 10009 "configure" |
9913 |
#line 9914 "configure" |
10009 |
#include "confdefs.h" |
9914 |
#include "confdefs.h" |
10010 |
template <class T> class Foo {}; |
9915 |
template <class T> class Foo {}; |
10011 |
template <class T> class Foo<T*> {}; |
9916 |
template <class T> class Foo<T*> {}; |
Lines 10013-10019
Link Here
|
10013 |
return 0; |
9918 |
return 0; |
10014 |
; return 0; } |
9919 |
; return 0; } |
10015 |
EOF |
9920 |
EOF |
10016 |
if { (eval echo configure:10017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9921 |
if { (eval echo configure:9922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10017 |
rm -rf conftest* |
9922 |
rm -rf conftest* |
10018 |
ac_cv_cpp_partial_specialization=yes |
9923 |
ac_cv_cpp_partial_specialization=yes |
10019 |
else |
9924 |
else |
Lines 10034-10045
Link Here
|
10034 |
fi |
9939 |
fi |
10035 |
|
9940 |
|
10036 |
echo $ac_n "checking whether operators must be re-defined for templates derived from templates""... $ac_c" 1>&6 |
9941 |
echo $ac_n "checking whether operators must be re-defined for templates derived from templates""... $ac_c" 1>&6 |
10037 |
echo "configure:10038: checking whether operators must be re-defined for templates derived from templates" >&5 |
9942 |
echo "configure:9943: checking whether operators must be re-defined for templates derived from templates" >&5 |
10038 |
if eval "test \"`echo '$''{'ac_cv_need_derived_template_operators'+set}'`\" = set"; then |
9943 |
if eval "test \"`echo '$''{'ac_cv_need_derived_template_operators'+set}'`\" = set"; then |
10039 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9944 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10040 |
else |
9945 |
else |
10041 |
cat > conftest.$ac_ext <<EOF |
9946 |
cat > conftest.$ac_ext <<EOF |
10042 |
#line 10043 "configure" |
9947 |
#line 9948 "configure" |
10043 |
#include "confdefs.h" |
9948 |
#include "confdefs.h" |
10044 |
template <class T> class Base { }; |
9949 |
template <class T> class Base { }; |
10045 |
template <class T> |
9950 |
template <class T> |
Lines 10051-10057
Link Here
|
10051 |
return 0; |
9956 |
return 0; |
10052 |
; return 0; } |
9957 |
; return 0; } |
10053 |
EOF |
9958 |
EOF |
10054 |
if { (eval echo configure:10055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9959 |
if { (eval echo configure:9960: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10055 |
rm -rf conftest* |
9960 |
rm -rf conftest* |
10056 |
ac_cv_need_derived_template_operators=no |
9961 |
ac_cv_need_derived_template_operators=no |
10057 |
else |
9962 |
else |
Lines 10073-10084
Link Here
|
10073 |
|
9978 |
|
10074 |
|
9979 |
|
10075 |
echo $ac_n "checking whether we need to cast a derived template to pass as its base class""... $ac_c" 1>&6 |
9980 |
echo $ac_n "checking whether we need to cast a derived template to pass as its base class""... $ac_c" 1>&6 |
10076 |
echo "configure:10077: checking whether we need to cast a derived template to pass as its base class" >&5 |
9981 |
echo "configure:9982: checking whether we need to cast a derived template to pass as its base class" >&5 |
10077 |
if eval "test \"`echo '$''{'ac_cv_need_cpp_template_cast_to_base'+set}'`\" = set"; then |
9982 |
if eval "test \"`echo '$''{'ac_cv_need_cpp_template_cast_to_base'+set}'`\" = set"; then |
10078 |
echo $ac_n "(cached) $ac_c" 1>&6 |
9983 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10079 |
else |
9984 |
else |
10080 |
cat > conftest.$ac_ext <<EOF |
9985 |
cat > conftest.$ac_ext <<EOF |
10081 |
#line 10082 "configure" |
9986 |
#line 9987 "configure" |
10082 |
#include "confdefs.h" |
9987 |
#include "confdefs.h" |
10083 |
template <class T> class Base { }; |
9988 |
template <class T> class Base { }; |
10084 |
template <class T> class Derived : public Base<T> { }; |
9989 |
template <class T> class Derived : public Base<T> { }; |
Lines 10087-10093
Link Here
|
10087 |
Derived<char> bar; return foo(bar); |
9992 |
Derived<char> bar; return foo(bar); |
10088 |
; return 0; } |
9993 |
; return 0; } |
10089 |
EOF |
9994 |
EOF |
10090 |
if { (eval echo configure:10091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
9995 |
if { (eval echo configure:9996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10091 |
rm -rf conftest* |
9996 |
rm -rf conftest* |
10092 |
ac_cv_need_cpp_template_cast_to_base=no |
9997 |
ac_cv_need_cpp_template_cast_to_base=no |
10093 |
else |
9998 |
else |
Lines 10108-10119
Link Here
|
10108 |
fi |
10013 |
fi |
10109 |
|
10014 |
|
10110 |
echo $ac_n "checking whether the compiler can resolve const ambiguities for templates""... $ac_c" 1>&6 |
10015 |
echo $ac_n "checking whether the compiler can resolve const ambiguities for templates""... $ac_c" 1>&6 |
10111 |
echo "configure:10112: checking whether the compiler can resolve const ambiguities for templates" >&5 |
10016 |
echo "configure:10017: checking whether the compiler can resolve const ambiguities for templates" >&5 |
10112 |
if eval "test \"`echo '$''{'ac_cv_can_resolve_const_ambiguity'+set}'`\" = set"; then |
10017 |
if eval "test \"`echo '$''{'ac_cv_can_resolve_const_ambiguity'+set}'`\" = set"; then |
10113 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10018 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10114 |
else |
10019 |
else |
10115 |
cat > conftest.$ac_ext <<EOF |
10020 |
cat > conftest.$ac_ext <<EOF |
10116 |
#line 10117 "configure" |
10021 |
#line 10022 "configure" |
10117 |
#include "confdefs.h" |
10022 |
#include "confdefs.h" |
10118 |
|
10023 |
|
10119 |
template <class T> class ptrClass { |
10024 |
template <class T> class ptrClass { |
Lines 10134-10140
Link Here
|
10134 |
a(&i); |
10039 |
a(&i); |
10135 |
; return 0; } |
10040 |
; return 0; } |
10136 |
EOF |
10041 |
EOF |
10137 |
if { (eval echo configure:10138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10042 |
if { (eval echo configure:10043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10138 |
rm -rf conftest* |
10043 |
rm -rf conftest* |
10139 |
ac_cv_can_resolve_const_ambiguity=yes |
10044 |
ac_cv_can_resolve_const_ambiguity=yes |
10140 |
else |
10045 |
else |
Lines 10156-10167
Link Here
|
10156 |
|
10061 |
|
10157 |
|
10062 |
|
10158 |
echo $ac_n "checking whether the C++ \"using\" keyword can change access""... $ac_c" 1>&6 |
10063 |
echo $ac_n "checking whether the C++ \"using\" keyword can change access""... $ac_c" 1>&6 |
10159 |
echo "configure:10160: checking whether the C++ \"using\" keyword can change access" >&5 |
10064 |
echo "configure:10065: checking whether the C++ \"using\" keyword can change access" >&5 |
10160 |
if eval "test \"`echo '$''{'ac_cv_cpp_access_changing_using2'+set}'`\" = set"; then |
10065 |
if eval "test \"`echo '$''{'ac_cv_cpp_access_changing_using2'+set}'`\" = set"; then |
10161 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10066 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10162 |
else |
10067 |
else |
10163 |
cat > conftest.$ac_ext <<EOF |
10068 |
cat > conftest.$ac_ext <<EOF |
10164 |
#line 10165 "configure" |
10069 |
#line 10070 "configure" |
10165 |
#include "confdefs.h" |
10070 |
#include "confdefs.h" |
10166 |
class A { protected: int foo() { return 0; } }; |
10071 |
class A { protected: int foo() { return 0; } }; |
10167 |
class B : public A { public: using A::foo; }; |
10072 |
class B : public A { public: using A::foo; }; |
Lines 10169-10178
Link Here
|
10169 |
B b; return b.foo(); |
10074 |
B b; return b.foo(); |
10170 |
; return 0; } |
10075 |
; return 0; } |
10171 |
EOF |
10076 |
EOF |
10172 |
if { (eval echo configure:10173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10077 |
if { (eval echo configure:10078: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10173 |
rm -rf conftest* |
10078 |
rm -rf conftest* |
10174 |
cat > conftest.$ac_ext <<EOF |
10079 |
cat > conftest.$ac_ext <<EOF |
10175 |
#line 10176 "configure" |
10080 |
#line 10081 "configure" |
10176 |
#include "confdefs.h" |
10081 |
#include "confdefs.h" |
10177 |
class A { public: int foo() { return 1; } }; |
10082 |
class A { public: int foo() { return 1; } }; |
10178 |
class B : public A { private: using A::foo; }; |
10083 |
class B : public A { private: using A::foo; }; |
Lines 10180-10186
Link Here
|
10180 |
B b; return b.foo(); |
10085 |
B b; return b.foo(); |
10181 |
; return 0; } |
10086 |
; return 0; } |
10182 |
EOF |
10087 |
EOF |
10183 |
if { (eval echo configure:10184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10088 |
if { (eval echo configure:10089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10184 |
rm -rf conftest* |
10089 |
rm -rf conftest* |
10185 |
ac_cv_cpp_access_changing_using2=no |
10090 |
ac_cv_cpp_access_changing_using2=no |
10186 |
else |
10091 |
else |
Lines 10208-10219
Link Here
|
10208 |
fi |
10113 |
fi |
10209 |
|
10114 |
|
10210 |
echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6 |
10115 |
echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6 |
10211 |
echo "configure:10212: checking whether the C++ \"using\" keyword resolves ambiguity" >&5 |
10116 |
echo "configure:10117: checking whether the C++ \"using\" keyword resolves ambiguity" >&5 |
10212 |
if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then |
10117 |
if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then |
10213 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10118 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10214 |
else |
10119 |
else |
10215 |
cat > conftest.$ac_ext <<EOF |
10120 |
cat > conftest.$ac_ext <<EOF |
10216 |
#line 10217 "configure" |
10121 |
#line 10122 "configure" |
10217 |
#include "confdefs.h" |
10122 |
#include "confdefs.h" |
10218 |
class X { |
10123 |
class X { |
10219 |
public: int go(const X&) {return 3;} |
10124 |
public: int go(const X&) {return 3;} |
Lines 10229-10235
Link Here
|
10229 |
X x; Y y; y.jo(x); |
10134 |
X x; Y y; y.jo(x); |
10230 |
; return 0; } |
10135 |
; return 0; } |
10231 |
EOF |
10136 |
EOF |
10232 |
if { (eval echo configure:10233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10137 |
if { (eval echo configure:10138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10233 |
rm -rf conftest* |
10138 |
rm -rf conftest* |
10234 |
ac_cv_cpp_ambiguity_resolving_using=yes |
10139 |
ac_cv_cpp_ambiguity_resolving_using=yes |
10235 |
else |
10140 |
else |
Lines 10250-10268
Link Here
|
10250 |
fi |
10155 |
fi |
10251 |
|
10156 |
|
10252 |
echo $ac_n "checking for \"std::\" namespace""... $ac_c" 1>&6 |
10157 |
echo $ac_n "checking for \"std::\" namespace""... $ac_c" 1>&6 |
10253 |
echo "configure:10254: checking for \"std::\" namespace" >&5 |
10158 |
echo "configure:10159: checking for \"std::\" namespace" >&5 |
10254 |
if eval "test \"`echo '$''{'ac_cv_cpp_namespace_std'+set}'`\" = set"; then |
10159 |
if eval "test \"`echo '$''{'ac_cv_cpp_namespace_std'+set}'`\" = set"; then |
10255 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10160 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10256 |
else |
10161 |
else |
10257 |
cat > conftest.$ac_ext <<EOF |
10162 |
cat > conftest.$ac_ext <<EOF |
10258 |
#line 10259 "configure" |
10163 |
#line 10164 "configure" |
10259 |
#include "confdefs.h" |
10164 |
#include "confdefs.h" |
10260 |
#include <algorithm> |
10165 |
#include <algorithm> |
10261 |
int main() { |
10166 |
int main() { |
10262 |
return std::min(0, 1); |
10167 |
return std::min(0, 1); |
10263 |
; return 0; } |
10168 |
; return 0; } |
10264 |
EOF |
10169 |
EOF |
10265 |
if { (eval echo configure:10266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10170 |
if { (eval echo configure:10171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10266 |
rm -rf conftest* |
10171 |
rm -rf conftest* |
10267 |
ac_cv_cpp_namespace_std=yes |
10172 |
ac_cv_cpp_namespace_std=yes |
10268 |
else |
10173 |
else |
Lines 10283-10294
Link Here
|
10283 |
fi |
10188 |
fi |
10284 |
|
10189 |
|
10285 |
echo $ac_n "checking whether standard template operator!=() is ambiguous""... $ac_c" 1>&6 |
10190 |
echo $ac_n "checking whether standard template operator!=() is ambiguous""... $ac_c" 1>&6 |
10286 |
echo "configure:10287: checking whether standard template operator!=() is ambiguous" >&5 |
10191 |
echo "configure:10192: checking whether standard template operator!=() is ambiguous" >&5 |
10287 |
if eval "test \"`echo '$''{'ac_cv_cpp_unambiguous_std_notequal'+set}'`\" = set"; then |
10192 |
if eval "test \"`echo '$''{'ac_cv_cpp_unambiguous_std_notequal'+set}'`\" = set"; then |
10288 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10193 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10289 |
else |
10194 |
else |
10290 |
cat > conftest.$ac_ext <<EOF |
10195 |
cat > conftest.$ac_ext <<EOF |
10291 |
#line 10292 "configure" |
10196 |
#line 10197 "configure" |
10292 |
#include "confdefs.h" |
10197 |
#include "confdefs.h" |
10293 |
#include <algorithm> |
10198 |
#include <algorithm> |
10294 |
struct T1 {}; |
10199 |
struct T1 {}; |
Lines 10298-10304
Link Here
|
10298 |
T1 a,b; return a != b; |
10203 |
T1 a,b; return a != b; |
10299 |
; return 0; } |
10204 |
; return 0; } |
10300 |
EOF |
10205 |
EOF |
10301 |
if { (eval echo configure:10302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10206 |
if { (eval echo configure:10207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10302 |
rm -rf conftest* |
10207 |
rm -rf conftest* |
10303 |
ac_cv_cpp_unambiguous_std_notequal=unambiguous |
10208 |
ac_cv_cpp_unambiguous_std_notequal=unambiguous |
10304 |
else |
10209 |
else |
Lines 10320-10331
Link Here
|
10320 |
|
10225 |
|
10321 |
|
10226 |
|
10322 |
echo $ac_n "checking for C++ reinterpret_cast""... $ac_c" 1>&6 |
10227 |
echo $ac_n "checking for C++ reinterpret_cast""... $ac_c" 1>&6 |
10323 |
echo "configure:10324: checking for C++ reinterpret_cast" >&5 |
10228 |
echo "configure:10229: checking for C++ reinterpret_cast" >&5 |
10324 |
if eval "test \"`echo '$''{'ac_cv_cpp_reinterpret_cast'+set}'`\" = set"; then |
10229 |
if eval "test \"`echo '$''{'ac_cv_cpp_reinterpret_cast'+set}'`\" = set"; then |
10325 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10230 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10326 |
else |
10231 |
else |
10327 |
cat > conftest.$ac_ext <<EOF |
10232 |
cat > conftest.$ac_ext <<EOF |
10328 |
#line 10329 "configure" |
10233 |
#line 10234 "configure" |
10329 |
#include "confdefs.h" |
10234 |
#include "confdefs.h" |
10330 |
struct X { int i; }; |
10235 |
struct X { int i; }; |
10331 |
struct Y { int i; }; |
10236 |
struct Y { int i; }; |
Lines 10333-10339
Link Here
|
10333 |
X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z); |
10238 |
X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z); |
10334 |
; return 0; } |
10239 |
; return 0; } |
10335 |
EOF |
10240 |
EOF |
10336 |
if { (eval echo configure:10337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10241 |
if { (eval echo configure:10242: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10337 |
rm -rf conftest* |
10242 |
rm -rf conftest* |
10338 |
ac_cv_cpp_reinterpret_cast=yes |
10243 |
ac_cv_cpp_reinterpret_cast=yes |
10339 |
else |
10244 |
else |
Lines 10354-10360
Link Here
|
10354 |
fi |
10259 |
fi |
10355 |
|
10260 |
|
10356 |
echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6 |
10261 |
echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6 |
10357 |
echo "configure:10358: checking for C++ dynamic_cast to void*" >&5 |
10262 |
echo "configure:10263: checking for C++ dynamic_cast to void*" >&5 |
10358 |
if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then |
10263 |
if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then |
10359 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10264 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10360 |
else |
10265 |
else |
Lines 10362-10369
Link Here
|
10362 |
ac_cv_cpp_dynamic_cast_void_ptr=no |
10267 |
ac_cv_cpp_dynamic_cast_void_ptr=no |
10363 |
else |
10268 |
else |
10364 |
cat > conftest.$ac_ext <<EOF |
10269 |
cat > conftest.$ac_ext <<EOF |
10365 |
#line 10366 "configure" |
10270 |
#line 10271 "configure" |
10366 |
#include "confdefs.h" |
10271 |
#include "confdefs.h" |
|
|
10272 |
#ifdef __cplusplus |
10273 |
extern "C" void exit(int); |
10274 |
#endif |
10367 |
class X { int i; public: virtual ~X() { } }; |
10275 |
class X { int i; public: virtual ~X() { } }; |
10368 |
class Y { int j; public: virtual ~Y() { } }; |
10276 |
class Y { int j; public: virtual ~Y() { } }; |
10369 |
class Z : public X, public Y { int k; }; |
10277 |
class Z : public X, public Y { int k; }; |
Lines 10378-10384
Link Here
|
10378 |
((void*)&mdo == dynamic_cast<void*>(suby)))); |
10286 |
((void*)&mdo == dynamic_cast<void*>(suby)))); |
10379 |
} |
10287 |
} |
10380 |
EOF |
10288 |
EOF |
10381 |
if { (eval echo configure:10382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10289 |
if { (eval echo configure:10290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10382 |
then |
10290 |
then |
10383 |
ac_cv_cpp_dynamic_cast_void_ptr=yes |
10291 |
ac_cv_cpp_dynamic_cast_void_ptr=yes |
10384 |
else |
10292 |
else |
Lines 10402-10420
Link Here
|
10402 |
|
10310 |
|
10403 |
|
10311 |
|
10404 |
echo $ac_n "checking whether C++ requires implementation of unused virtual methods""... $ac_c" 1>&6 |
10312 |
echo $ac_n "checking whether C++ requires implementation of unused virtual methods""... $ac_c" 1>&6 |
10405 |
echo "configure:10406: checking whether C++ requires implementation of unused virtual methods" >&5 |
10313 |
echo "configure:10314: checking whether C++ requires implementation of unused virtual methods" >&5 |
10406 |
if eval "test \"`echo '$''{'ac_cv_cpp_unused_required'+set}'`\" = set"; then |
10314 |
if eval "test \"`echo '$''{'ac_cv_cpp_unused_required'+set}'`\" = set"; then |
10407 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10315 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10408 |
else |
10316 |
else |
10409 |
cat > conftest.$ac_ext <<EOF |
10317 |
cat > conftest.$ac_ext <<EOF |
10410 |
#line 10411 "configure" |
10318 |
#line 10319 "configure" |
10411 |
#include "confdefs.h" |
10319 |
#include "confdefs.h" |
10412 |
class X {private: virtual void never_called();}; |
10320 |
class X {private: virtual void never_called();}; |
10413 |
int main() { |
10321 |
int main() { |
10414 |
X x; |
10322 |
X x; |
10415 |
; return 0; } |
10323 |
; return 0; } |
10416 |
EOF |
10324 |
EOF |
10417 |
if { (eval echo configure:10418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10325 |
if { (eval echo configure:10326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10418 |
rm -rf conftest* |
10326 |
rm -rf conftest* |
10419 |
ac_cv_cpp_unused_required=no |
10327 |
ac_cv_cpp_unused_required=no |
10420 |
else |
10328 |
else |
Lines 10437-10448
Link Here
|
10437 |
|
10345 |
|
10438 |
|
10346 |
|
10439 |
echo $ac_n "checking for trouble comparing to zero near std::operator!=()""... $ac_c" 1>&6 |
10347 |
echo $ac_n "checking for trouble comparing to zero near std::operator!=()""... $ac_c" 1>&6 |
10440 |
echo "configure:10441: checking for trouble comparing to zero near std::operator!=()" >&5 |
10348 |
echo "configure:10349: checking for trouble comparing to zero near std::operator!=()" >&5 |
10441 |
if eval "test \"`echo '$''{'ac_cv_trouble_comparing_to_zero'+set}'`\" = set"; then |
10349 |
if eval "test \"`echo '$''{'ac_cv_trouble_comparing_to_zero'+set}'`\" = set"; then |
10442 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10350 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10443 |
else |
10351 |
else |
10444 |
cat > conftest.$ac_ext <<EOF |
10352 |
cat > conftest.$ac_ext <<EOF |
10445 |
#line 10446 "configure" |
10353 |
#line 10354 "configure" |
10446 |
#include "confdefs.h" |
10354 |
#include "confdefs.h" |
10447 |
#include <algorithm> |
10355 |
#include <algorithm> |
10448 |
template <class T> class Foo {}; |
10356 |
template <class T> class Foo {}; |
Lines 10453-10459
Link Here
|
10453 |
Foo<int> f; return (0 != f); |
10361 |
Foo<int> f; return (0 != f); |
10454 |
; return 0; } |
10362 |
; return 0; } |
10455 |
EOF |
10363 |
EOF |
10456 |
if { (eval echo configure:10457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10364 |
if { (eval echo configure:10365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10457 |
rm -rf conftest* |
10365 |
rm -rf conftest* |
10458 |
ac_cv_trouble_comparing_to_zero=no |
10366 |
ac_cv_trouble_comparing_to_zero=no |
10459 |
else |
10367 |
else |
Lines 10485-10503
Link Here
|
10485 |
|
10393 |
|
10486 |
|
10394 |
|
10487 |
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 |
10395 |
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 |
10488 |
echo "configure:10489: checking for LC_MESSAGES" >&5 |
10396 |
echo "configure:10397: checking for LC_MESSAGES" >&5 |
10489 |
if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then |
10397 |
if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then |
10490 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10398 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10491 |
else |
10399 |
else |
10492 |
cat > conftest.$ac_ext <<EOF |
10400 |
cat > conftest.$ac_ext <<EOF |
10493 |
#line 10494 "configure" |
10401 |
#line 10402 "configure" |
10494 |
#include "confdefs.h" |
10402 |
#include "confdefs.h" |
10495 |
#include <locale.h> |
10403 |
#include <locale.h> |
10496 |
int main() { |
10404 |
int main() { |
10497 |
int category = LC_MESSAGES; |
10405 |
int category = LC_MESSAGES; |
10498 |
; return 0; } |
10406 |
; return 0; } |
10499 |
EOF |
10407 |
EOF |
10500 |
if { (eval echo configure:10501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10408 |
if { (eval echo configure:10409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
10501 |
rm -rf conftest* |
10409 |
rm -rf conftest* |
10502 |
ac_cv_i18n_lc_messages=yes |
10410 |
ac_cv_i18n_lc_messages=yes |
10503 |
else |
10411 |
else |
Lines 10573-10579
Link Here
|
10573 |
# Extract the first word of "nspr-config", so it can be a program name with args. |
10481 |
# Extract the first word of "nspr-config", so it can be a program name with args. |
10574 |
set dummy nspr-config; ac_word=$2 |
10482 |
set dummy nspr-config; ac_word=$2 |
10575 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
10483 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
10576 |
echo "configure:10577: checking for $ac_word" >&5 |
10484 |
echo "configure:10485: checking for $ac_word" >&5 |
10577 |
if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then |
10485 |
if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then |
10578 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10486 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10579 |
else |
10487 |
else |
Lines 10608-10614
Link Here
|
10608 |
|
10516 |
|
10609 |
min_nspr_version=4.0.0 |
10517 |
min_nspr_version=4.0.0 |
10610 |
echo $ac_n "checking for NSPR - version >= $min_nspr_version (skipping)""... $ac_c" 1>&6 |
10518 |
echo $ac_n "checking for NSPR - version >= $min_nspr_version (skipping)""... $ac_c" 1>&6 |
10611 |
echo "configure:10612: checking for NSPR - version >= $min_nspr_version (skipping)" >&5 |
10519 |
echo "configure:10520: checking for NSPR - version >= $min_nspr_version (skipping)" >&5 |
10612 |
|
10520 |
|
10613 |
no_nspr="" |
10521 |
no_nspr="" |
10614 |
if test "$NSPR_CONFIG" = "no"; then |
10522 |
if test "$NSPR_CONFIG" = "no"; then |
Lines 10675-10681
Link Here
|
10675 |
SYSTEM_JPEG= |
10583 |
SYSTEM_JPEG= |
10676 |
else |
10584 |
else |
10677 |
echo $ac_n "checking for jpeg_destroy_compress in -ljpeg""... $ac_c" 1>&6 |
10585 |
echo $ac_n "checking for jpeg_destroy_compress in -ljpeg""... $ac_c" 1>&6 |
10678 |
echo "configure:10679: checking for jpeg_destroy_compress in -ljpeg" >&5 |
10586 |
echo "configure:10587: checking for jpeg_destroy_compress in -ljpeg" >&5 |
10679 |
ac_lib_var=`echo jpeg'_'jpeg_destroy_compress | sed 'y%./+-%__p_%'` |
10587 |
ac_lib_var=`echo jpeg'_'jpeg_destroy_compress | sed 'y%./+-%__p_%'` |
10680 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10588 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10681 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10589 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 10683-10689
Link Here
|
10683 |
ac_save_LIBS="$LIBS" |
10591 |
ac_save_LIBS="$LIBS" |
10684 |
LIBS="-ljpeg $JPEG_LIBS $LIBS" |
10592 |
LIBS="-ljpeg $JPEG_LIBS $LIBS" |
10685 |
cat > conftest.$ac_ext <<EOF |
10593 |
cat > conftest.$ac_ext <<EOF |
10686 |
#line 10687 "configure" |
10594 |
#line 10595 "configure" |
10687 |
#include "confdefs.h" |
10595 |
#include "confdefs.h" |
10688 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10596 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10689 |
/* We use char because int might match the return type of a gcc2 |
10597 |
/* We use char because int might match the return type of a gcc2 |
Lines 10694-10700
Link Here
|
10694 |
jpeg_destroy_compress() |
10602 |
jpeg_destroy_compress() |
10695 |
; return 0; } |
10603 |
; return 0; } |
10696 |
EOF |
10604 |
EOF |
10697 |
if { (eval echo configure:10698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10605 |
if { (eval echo configure:10606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10698 |
rm -rf conftest* |
10606 |
rm -rf conftest* |
10699 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10607 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10700 |
else |
10608 |
else |
Lines 10723-10729
Link Here
|
10723 |
SYSTEM_JPEG= |
10631 |
SYSTEM_JPEG= |
10724 |
else |
10632 |
else |
10725 |
cat > conftest.$ac_ext <<EOF |
10633 |
cat > conftest.$ac_ext <<EOF |
10726 |
#line 10727 "configure" |
10634 |
#line 10635 "configure" |
10727 |
#include "confdefs.h" |
10635 |
#include "confdefs.h" |
10728 |
#include <stdio.h> |
10636 |
#include <stdio.h> |
10729 |
#include <sys/types.h> |
10637 |
#include <sys/types.h> |
Lines 10737-10743
Link Here
|
10737 |
} |
10645 |
} |
10738 |
|
10646 |
|
10739 |
EOF |
10647 |
EOF |
10740 |
if { (eval echo configure:10741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10648 |
if { (eval echo configure:10649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10741 |
then |
10649 |
then |
10742 |
SYSTEM_JPEG=1 |
10650 |
SYSTEM_JPEG=1 |
10743 |
else |
10651 |
else |
Lines 10778-10784
Link Here
|
10778 |
SYSTEM_ZLIB= |
10686 |
SYSTEM_ZLIB= |
10779 |
else |
10687 |
else |
10780 |
echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6 |
10688 |
echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6 |
10781 |
echo "configure:10782: checking for gzread in -lz" >&5 |
10689 |
echo "configure:10690: checking for gzread in -lz" >&5 |
10782 |
ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'` |
10690 |
ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'` |
10783 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10691 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10784 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10692 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 10786-10792
Link Here
|
10786 |
ac_save_LIBS="$LIBS" |
10694 |
ac_save_LIBS="$LIBS" |
10787 |
LIBS="-lz $ZLIB_LIBS $LIBS" |
10695 |
LIBS="-lz $ZLIB_LIBS $LIBS" |
10788 |
cat > conftest.$ac_ext <<EOF |
10696 |
cat > conftest.$ac_ext <<EOF |
10789 |
#line 10790 "configure" |
10697 |
#line 10698 "configure" |
10790 |
#include "confdefs.h" |
10698 |
#include "confdefs.h" |
10791 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10699 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10792 |
/* We use char because int might match the return type of a gcc2 |
10700 |
/* We use char because int might match the return type of a gcc2 |
Lines 10797-10803
Link Here
|
10797 |
gzread() |
10705 |
gzread() |
10798 |
; return 0; } |
10706 |
; return 0; } |
10799 |
EOF |
10707 |
EOF |
10800 |
if { (eval echo configure:10801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10708 |
if { (eval echo configure:10709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10801 |
rm -rf conftest* |
10709 |
rm -rf conftest* |
10802 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10710 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10803 |
else |
10711 |
else |
Lines 10825-10831
Link Here
|
10825 |
SYSTEM_ZLIB= |
10733 |
SYSTEM_ZLIB= |
10826 |
else |
10734 |
else |
10827 |
cat > conftest.$ac_ext <<EOF |
10735 |
cat > conftest.$ac_ext <<EOF |
10828 |
#line 10829 "configure" |
10736 |
#line 10737 "configure" |
10829 |
#include "confdefs.h" |
10737 |
#include "confdefs.h" |
10830 |
|
10738 |
|
10831 |
#include <stdio.h> |
10739 |
#include <stdio.h> |
Lines 10846-10852
Link Here
|
10846 |
} |
10754 |
} |
10847 |
|
10755 |
|
10848 |
EOF |
10756 |
EOF |
10849 |
if { (eval echo configure:10850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10757 |
if { (eval echo configure:10758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10850 |
then |
10758 |
then |
10851 |
SYSTEM_ZLIB=1 |
10759 |
SYSTEM_ZLIB=1 |
10852 |
else |
10760 |
else |
Lines 10889-10895
Link Here
|
10889 |
SYSTEM_PNG= |
10797 |
SYSTEM_PNG= |
10890 |
else |
10798 |
else |
10891 |
echo $ac_n "checking for png_get_valid in -lpng""... $ac_c" 1>&6 |
10799 |
echo $ac_n "checking for png_get_valid in -lpng""... $ac_c" 1>&6 |
10892 |
echo "configure:10893: checking for png_get_valid in -lpng" >&5 |
10800 |
echo "configure:10801: checking for png_get_valid in -lpng" >&5 |
10893 |
ac_lib_var=`echo png'_'png_get_valid | sed 'y%./+-%__p_%'` |
10801 |
ac_lib_var=`echo png'_'png_get_valid | sed 'y%./+-%__p_%'` |
10894 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10802 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
10895 |
echo $ac_n "(cached) $ac_c" 1>&6 |
10803 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 10897-10903
Link Here
|
10897 |
ac_save_LIBS="$LIBS" |
10805 |
ac_save_LIBS="$LIBS" |
10898 |
LIBS="-lpng $PNG_LIBS $LIBS" |
10806 |
LIBS="-lpng $PNG_LIBS $LIBS" |
10899 |
cat > conftest.$ac_ext <<EOF |
10807 |
cat > conftest.$ac_ext <<EOF |
10900 |
#line 10901 "configure" |
10808 |
#line 10809 "configure" |
10901 |
#include "confdefs.h" |
10809 |
#include "confdefs.h" |
10902 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10810 |
/* Override any gcc2 internal prototype to avoid an error. */ |
10903 |
/* We use char because int might match the return type of a gcc2 |
10811 |
/* We use char because int might match the return type of a gcc2 |
Lines 10908-10914
Link Here
|
10908 |
png_get_valid() |
10816 |
png_get_valid() |
10909 |
; return 0; } |
10817 |
; return 0; } |
10910 |
EOF |
10818 |
EOF |
10911 |
if { (eval echo configure:10912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10819 |
if { (eval echo configure:10820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
10912 |
rm -rf conftest* |
10820 |
rm -rf conftest* |
10913 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10821 |
eval "ac_cv_lib_$ac_lib_var=yes" |
10914 |
else |
10822 |
else |
Lines 10936-10942
Link Here
|
10936 |
SYSTEM_PNG= |
10844 |
SYSTEM_PNG= |
10937 |
else |
10845 |
else |
10938 |
cat > conftest.$ac_ext <<EOF |
10846 |
cat > conftest.$ac_ext <<EOF |
10939 |
#line 10940 "configure" |
10847 |
#line 10848 "configure" |
10940 |
#include "confdefs.h" |
10848 |
#include "confdefs.h" |
10941 |
#include <stdio.h> |
10849 |
#include <stdio.h> |
10942 |
#include <sys/types.h> |
10850 |
#include <sys/types.h> |
Lines 10950-10956
Link Here
|
10950 |
} |
10858 |
} |
10951 |
|
10859 |
|
10952 |
EOF |
10860 |
EOF |
10953 |
if { (eval echo configure:10954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10861 |
if { (eval echo configure:10862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
10954 |
then |
10862 |
then |
10955 |
SYSTEM_PNG=1 |
10863 |
SYSTEM_PNG=1 |
10956 |
else |
10864 |
else |
Lines 11132-11138
Link Here
|
11132 |
# Extract the first word of "gtk-config", so it can be a program name with args. |
11040 |
# Extract the first word of "gtk-config", so it can be a program name with args. |
11133 |
set dummy gtk-config; ac_word=$2 |
11041 |
set dummy gtk-config; ac_word=$2 |
11134 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11042 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11135 |
echo "configure:11136: checking for $ac_word" >&5 |
11043 |
echo "configure:11044: checking for $ac_word" >&5 |
11136 |
if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then |
11044 |
if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then |
11137 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11045 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11138 |
else |
11046 |
else |
Lines 11167-11173
Link Here
|
11167 |
|
11075 |
|
11168 |
min_gtk_version=$GTK_VERSION |
11076 |
min_gtk_version=$GTK_VERSION |
11169 |
echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 |
11077 |
echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6 |
11170 |
echo "configure:11171: checking for GTK - version >= $min_gtk_version" >&5 |
11078 |
echo "configure:11079: checking for GTK - version >= $min_gtk_version" >&5 |
11171 |
no_gtk="" |
11079 |
no_gtk="" |
11172 |
if test "$GTK_CONFIG" = "no" ; then |
11080 |
if test "$GTK_CONFIG" = "no" ; then |
11173 |
no_gtk=yes |
11081 |
no_gtk=yes |
Lines 11190-11196
Link Here
|
11190 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
11098 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
11191 |
else |
11099 |
else |
11192 |
cat > conftest.$ac_ext <<EOF |
11100 |
cat > conftest.$ac_ext <<EOF |
11193 |
#line 11194 "configure" |
11101 |
#line 11102 "configure" |
11194 |
#include "confdefs.h" |
11102 |
#include "confdefs.h" |
11195 |
|
11103 |
|
11196 |
#include <gtk/gtk.h> |
11104 |
#include <gtk/gtk.h> |
Lines 11268-11274
Link Here
|
11268 |
} |
11176 |
} |
11269 |
|
11177 |
|
11270 |
EOF |
11178 |
EOF |
11271 |
if { (eval echo configure:11272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
11179 |
if { (eval echo configure:11180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
11272 |
then |
11180 |
then |
11273 |
: |
11181 |
: |
11274 |
else |
11182 |
else |
Lines 11303-11309
Link Here
|
11303 |
CFLAGS="$CFLAGS $GTK_CFLAGS" |
11211 |
CFLAGS="$CFLAGS $GTK_CFLAGS" |
11304 |
LIBS="$LIBS $GTK_LIBS" |
11212 |
LIBS="$LIBS $GTK_LIBS" |
11305 |
cat > conftest.$ac_ext <<EOF |
11213 |
cat > conftest.$ac_ext <<EOF |
11306 |
#line 11307 "configure" |
11214 |
#line 11215 "configure" |
11307 |
#include "confdefs.h" |
11215 |
#include "confdefs.h" |
11308 |
|
11216 |
|
11309 |
#include <gtk/gtk.h> |
11217 |
#include <gtk/gtk.h> |
Lines 11313-11319
Link Here
|
11313 |
return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); |
11221 |
return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); |
11314 |
; return 0; } |
11222 |
; return 0; } |
11315 |
EOF |
11223 |
EOF |
11316 |
if { (eval echo configure:11317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
11224 |
if { (eval echo configure:11225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
11317 |
rm -rf conftest* |
11225 |
rm -rf conftest* |
11318 |
echo "*** The test program compiled, but did not run. This usually means" |
11226 |
echo "*** The test program compiled, but did not run. This usually means" |
11319 |
echo "*** that the run-time linker is not finding GTK or finding the wrong" |
11227 |
echo "*** that the run-time linker is not finding GTK or finding the wrong" |
Lines 11365-11371
Link Here
|
11365 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11273 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11366 |
set dummy pkg-config; ac_word=$2 |
11274 |
set dummy pkg-config; ac_word=$2 |
11367 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11275 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11368 |
echo "configure:11369: checking for $ac_word" >&5 |
11276 |
echo "configure:11277: checking for $ac_word" >&5 |
11369 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11277 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11370 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11278 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11371 |
else |
11279 |
else |
Lines 11409-11427
Link Here
|
11409 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11317 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11410 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11318 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11411 |
echo $ac_n "checking for gtk+-2.0 >= 1.3.7""... $ac_c" 1>&6 |
11319 |
echo $ac_n "checking for gtk+-2.0 >= 1.3.7""... $ac_c" 1>&6 |
11412 |
echo "configure:11413: checking for gtk+-2.0 >= 1.3.7" >&5 |
11320 |
echo "configure:11321: checking for gtk+-2.0 >= 1.3.7" >&5 |
11413 |
|
11321 |
|
11414 |
if $PKG_CONFIG --exists "gtk+-2.0 >= 1.3.7" ; then |
11322 |
if $PKG_CONFIG --exists "gtk+-2.0 >= 1.3.7" ; then |
11415 |
echo "$ac_t""yes" 1>&6 |
11323 |
echo "$ac_t""yes" 1>&6 |
11416 |
succeeded=yes |
11324 |
succeeded=yes |
11417 |
|
11325 |
|
11418 |
echo $ac_n "checking MOZ_GTK2_CFLAGS""... $ac_c" 1>&6 |
11326 |
echo $ac_n "checking MOZ_GTK2_CFLAGS""... $ac_c" 1>&6 |
11419 |
echo "configure:11420: checking MOZ_GTK2_CFLAGS" >&5 |
11327 |
echo "configure:11328: checking MOZ_GTK2_CFLAGS" >&5 |
11420 |
MOZ_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 1.3.7"` |
11328 |
MOZ_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 1.3.7"` |
11421 |
echo "$ac_t""$MOZ_GTK2_CFLAGS" 1>&6 |
11329 |
echo "$ac_t""$MOZ_GTK2_CFLAGS" 1>&6 |
11422 |
|
11330 |
|
11423 |
echo $ac_n "checking MOZ_GTK2_LIBS""... $ac_c" 1>&6 |
11331 |
echo $ac_n "checking MOZ_GTK2_LIBS""... $ac_c" 1>&6 |
11424 |
echo "configure:11425: checking MOZ_GTK2_LIBS" >&5 |
11332 |
echo "configure:11333: checking MOZ_GTK2_LIBS" >&5 |
11425 |
MOZ_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 1.3.7"` |
11333 |
MOZ_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 1.3.7"` |
11426 |
echo "$ac_t""$MOZ_GTK2_LIBS" 1>&6 |
11334 |
echo "$ac_t""$MOZ_GTK2_LIBS" 1>&6 |
11427 |
else |
11335 |
else |
Lines 11727-11733
Link Here
|
11727 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11635 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11728 |
set dummy pkg-config; ac_word=$2 |
11636 |
set dummy pkg-config; ac_word=$2 |
11729 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11637 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11730 |
echo "configure:11731: checking for $ac_word" >&5 |
11638 |
echo "configure:11639: checking for $ac_word" >&5 |
11731 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11639 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11732 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11640 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11733 |
else |
11641 |
else |
Lines 11771-11789
Link Here
|
11771 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11679 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11772 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11680 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11773 |
echo $ac_n "checking for xft""... $ac_c" 1>&6 |
11681 |
echo $ac_n "checking for xft""... $ac_c" 1>&6 |
11774 |
echo "configure:11775: checking for xft" >&5 |
11682 |
echo "configure:11683: checking for xft" >&5 |
11775 |
|
11683 |
|
11776 |
if $PKG_CONFIG --exists "xft" ; then |
11684 |
if $PKG_CONFIG --exists "xft" ; then |
11777 |
echo "$ac_t""yes" 1>&6 |
11685 |
echo "$ac_t""yes" 1>&6 |
11778 |
succeeded=yes |
11686 |
succeeded=yes |
11779 |
|
11687 |
|
11780 |
echo $ac_n "checking MOZ_XFT_CFLAGS""... $ac_c" 1>&6 |
11688 |
echo $ac_n "checking MOZ_XFT_CFLAGS""... $ac_c" 1>&6 |
11781 |
echo "configure:11782: checking MOZ_XFT_CFLAGS" >&5 |
11689 |
echo "configure:11690: checking MOZ_XFT_CFLAGS" >&5 |
11782 |
MOZ_XFT_CFLAGS=`$PKG_CONFIG --cflags "xft"` |
11690 |
MOZ_XFT_CFLAGS=`$PKG_CONFIG --cflags "xft"` |
11783 |
echo "$ac_t""$MOZ_XFT_CFLAGS" 1>&6 |
11691 |
echo "$ac_t""$MOZ_XFT_CFLAGS" 1>&6 |
11784 |
|
11692 |
|
11785 |
echo $ac_n "checking MOZ_XFT_LIBS""... $ac_c" 1>&6 |
11693 |
echo $ac_n "checking MOZ_XFT_LIBS""... $ac_c" 1>&6 |
11786 |
echo "configure:11787: checking MOZ_XFT_LIBS" >&5 |
11694 |
echo "configure:11695: checking MOZ_XFT_LIBS" >&5 |
11787 |
MOZ_XFT_LIBS=`$PKG_CONFIG --libs "xft"` |
11695 |
MOZ_XFT_LIBS=`$PKG_CONFIG --libs "xft"` |
11788 |
echo "$ac_t""$MOZ_XFT_LIBS" 1>&6 |
11696 |
echo "$ac_t""$MOZ_XFT_LIBS" 1>&6 |
11789 |
else |
11697 |
else |
Lines 11817-11823
Link Here
|
11817 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11725 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11818 |
set dummy pkg-config; ac_word=$2 |
11726 |
set dummy pkg-config; ac_word=$2 |
11819 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11727 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11820 |
echo "configure:11821: checking for $ac_word" >&5 |
11728 |
echo "configure:11729: checking for $ac_word" >&5 |
11821 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11729 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11822 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11730 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11823 |
else |
11731 |
else |
Lines 11861-11879
Link Here
|
11861 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11769 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11862 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11770 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11863 |
echo $ac_n "checking for pango >= 1.1.0""... $ac_c" 1>&6 |
11771 |
echo $ac_n "checking for pango >= 1.1.0""... $ac_c" 1>&6 |
11864 |
echo "configure:11865: checking for pango >= 1.1.0" >&5 |
11772 |
echo "configure:11773: checking for pango >= 1.1.0" >&5 |
11865 |
|
11773 |
|
11866 |
if $PKG_CONFIG --exists "pango >= 1.1.0" ; then |
11774 |
if $PKG_CONFIG --exists "pango >= 1.1.0" ; then |
11867 |
echo "$ac_t""yes" 1>&6 |
11775 |
echo "$ac_t""yes" 1>&6 |
11868 |
succeeded=yes |
11776 |
succeeded=yes |
11869 |
|
11777 |
|
11870 |
echo $ac_n "checking _PANGOCHK_CFLAGS""... $ac_c" 1>&6 |
11778 |
echo $ac_n "checking _PANGOCHK_CFLAGS""... $ac_c" 1>&6 |
11871 |
echo "configure:11872: checking _PANGOCHK_CFLAGS" >&5 |
11779 |
echo "configure:11780: checking _PANGOCHK_CFLAGS" >&5 |
11872 |
_PANGOCHK_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.1.0"` |
11780 |
_PANGOCHK_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.1.0"` |
11873 |
echo "$ac_t""$_PANGOCHK_CFLAGS" 1>&6 |
11781 |
echo "$ac_t""$_PANGOCHK_CFLAGS" 1>&6 |
11874 |
|
11782 |
|
11875 |
echo $ac_n "checking _PANGOCHK_LIBS""... $ac_c" 1>&6 |
11783 |
echo $ac_n "checking _PANGOCHK_LIBS""... $ac_c" 1>&6 |
11876 |
echo "configure:11877: checking _PANGOCHK_LIBS" >&5 |
11784 |
echo "configure:11785: checking _PANGOCHK_LIBS" >&5 |
11877 |
_PANGOCHK_LIBS=`$PKG_CONFIG --libs "pango >= 1.1.0"` |
11785 |
_PANGOCHK_LIBS=`$PKG_CONFIG --libs "pango >= 1.1.0"` |
11878 |
echo "$ac_t""$_PANGOCHK_LIBS" 1>&6 |
11786 |
echo "$ac_t""$_PANGOCHK_LIBS" 1>&6 |
11879 |
else |
11787 |
else |
Lines 11906-11911
Link Here
|
11906 |
|
11814 |
|
11907 |
|
11815 |
|
11908 |
|
11816 |
|
|
|
11817 |
# Check whether --enable-pango or --disable-pango was given. |
11818 |
if test "${enable_pango+set}" = set; then |
11819 |
enableval="$enable_pango" |
11820 |
if test "$enableval" = "yes"; then |
11821 |
MOZ_ENABLE_PANGO=1 |
11822 |
elif test "$enableval" = "no"; then |
11823 |
MOZ_ENABLE_PANGO= |
11824 |
else |
11825 |
{ echo "configure: error: Option, pango, does not take an argument ($enableval)." 1>&2; exit 1; } |
11826 |
fi |
11827 |
fi |
11828 |
|
11829 |
|
11830 |
if test "$MOZ_ENABLE_PANGO" |
11831 |
then |
11832 |
cat >> confdefs.h <<\EOF |
11833 |
#define MOZ_ENABLE_PANGO 1 |
11834 |
EOF |
11835 |
|
11836 |
|
11837 |
succeeded=no |
11838 |
|
11839 |
if test -z "$PKG_CONFIG"; then |
11840 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
11841 |
set dummy pkg-config; ac_word=$2 |
11842 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
11843 |
echo "configure:11844: checking for $ac_word" >&5 |
11844 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
11845 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11846 |
else |
11847 |
case "$PKG_CONFIG" in |
11848 |
/*) |
11849 |
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. |
11850 |
;; |
11851 |
?:/*) |
11852 |
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. |
11853 |
;; |
11854 |
*) |
11855 |
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" |
11856 |
ac_dummy="$PATH" |
11857 |
for ac_dir in $ac_dummy; do |
11858 |
test -z "$ac_dir" && ac_dir=. |
11859 |
if test -f $ac_dir/$ac_word; then |
11860 |
ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" |
11861 |
break |
11862 |
fi |
11863 |
done |
11864 |
IFS="$ac_save_ifs" |
11865 |
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" |
11866 |
;; |
11867 |
esac |
11868 |
fi |
11869 |
PKG_CONFIG="$ac_cv_path_PKG_CONFIG" |
11870 |
if test -n "$PKG_CONFIG"; then |
11871 |
echo "$ac_t""$PKG_CONFIG" 1>&6 |
11872 |
else |
11873 |
echo "$ac_t""no" 1>&6 |
11874 |
fi |
11875 |
|
11876 |
fi |
11877 |
|
11878 |
if test "$PKG_CONFIG" = "no" ; then |
11879 |
echo "*** The pkg-config script could not be found. Make sure it is" |
11880 |
echo "*** in your path, or set the PKG_CONFIG environment variable" |
11881 |
echo "*** to the full path to pkg-config." |
11882 |
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." |
11883 |
else |
11884 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
11885 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
11886 |
echo $ac_n "checking for pango >= 1.5.0""... $ac_c" 1>&6 |
11887 |
echo "configure:11888: checking for pango >= 1.5.0" >&5 |
11888 |
|
11889 |
if $PKG_CONFIG --exists "pango >= 1.5.0" ; then |
11890 |
echo "$ac_t""yes" 1>&6 |
11891 |
succeeded=yes |
11892 |
|
11893 |
echo $ac_n "checking MOZ_PANGO_CFLAGS""... $ac_c" 1>&6 |
11894 |
echo "configure:11895: checking MOZ_PANGO_CFLAGS" >&5 |
11895 |
MOZ_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.5.0"` |
11896 |
echo "$ac_t""$MOZ_PANGO_CFLAGS" 1>&6 |
11897 |
|
11898 |
echo $ac_n "checking MOZ_PANGO_LIBS""... $ac_c" 1>&6 |
11899 |
echo "configure:11900: checking MOZ_PANGO_LIBS" >&5 |
11900 |
MOZ_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= 1.5.0"` |
11901 |
echo "$ac_t""$MOZ_PANGO_LIBS" 1>&6 |
11902 |
else |
11903 |
MOZ_PANGO_CFLAGS="" |
11904 |
MOZ_PANGO_LIBS="" |
11905 |
## If we have a custom action on failure, don't print errors, but |
11906 |
## do set a variable so people can do so. |
11907 |
MOZ_PANGO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pango >= 1.5.0"` |
11908 |
echo $MOZ_PANGO_PKG_ERRORS |
11909 |
fi |
11910 |
|
11911 |
|
11912 |
|
11913 |
else |
11914 |
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." |
11915 |
echo "*** See http://www.freedesktop.org/software/pkgconfig" |
11916 |
fi |
11917 |
fi |
11918 |
|
11919 |
if test $succeeded = yes; then |
11920 |
: |
11921 |
else |
11922 |
{ echo "configure: error: Library requirements (pango >= 1.5.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." 1>&2; exit 1; } |
11923 |
fi |
11924 |
|
11925 |
|
11926 |
_SAVE_CFLAGS=$CFLAGS |
11927 |
_SAVE_LDFLAGS=$LDFLAGS |
11928 |
CFLAGS="$MOZ_PANGO_CFLAGS $CFLAGS" |
11929 |
LDFLAGS="$MOZ_PANGO_LIBS $LDFLAGS" |
11930 |
echo $ac_n "checking for pango_fc_font_map_add_decoder_find_func in -lpangoft2-1.0""... $ac_c" 1>&6 |
11931 |
echo "configure:11932: checking for pango_fc_font_map_add_decoder_find_func in -lpangoft2-1.0" >&5 |
11932 |
ac_lib_var=`echo pangoft2-1.0'_'pango_fc_font_map_add_decoder_find_func | sed 'y%./+-%__p_%'` |
11933 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
11934 |
echo $ac_n "(cached) $ac_c" 1>&6 |
11935 |
else |
11936 |
ac_save_LIBS="$LIBS" |
11937 |
LIBS="-lpangoft2-1.0 $LIBS" |
11938 |
cat > conftest.$ac_ext <<EOF |
11939 |
#line 11940 "configure" |
11940 |
#include "confdefs.h" |
11941 |
/* Override any gcc2 internal prototype to avoid an error. */ |
11942 |
/* We use char because int might match the return type of a gcc2 |
11943 |
builtin and then its argument prototype would still apply. */ |
11944 |
char pango_fc_font_map_add_decoder_find_func(); |
11945 |
|
11946 |
int main() { |
11947 |
pango_fc_font_map_add_decoder_find_func() |
11948 |
; return 0; } |
11949 |
EOF |
11950 |
if { (eval echo configure:11951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
11951 |
rm -rf conftest* |
11952 |
eval "ac_cv_lib_$ac_lib_var=yes" |
11953 |
else |
11954 |
echo "configure: failed program was:" >&5 |
11955 |
cat conftest.$ac_ext >&5 |
11956 |
rm -rf conftest* |
11957 |
eval "ac_cv_lib_$ac_lib_var=no" |
11958 |
fi |
11959 |
rm -f conftest* |
11960 |
LIBS="$ac_save_LIBS" |
11961 |
|
11962 |
fi |
11963 |
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then |
11964 |
echo "$ac_t""yes" 1>&6 |
11965 |
ac_tr_lib=HAVE_LIB`echo pangoft2-1.0 | sed -e 's/[^a-zA-Z0-9_]/_/g' \ |
11966 |
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` |
11967 |
cat >> confdefs.h <<EOF |
11968 |
#define $ac_tr_lib 1 |
11969 |
EOF |
11970 |
|
11971 |
LIBS="-lpangoft2-1.0 $LIBS" |
11972 |
|
11973 |
else |
11974 |
echo "$ac_t""no" 1>&6 |
11975 |
{ echo "configure: error: Your Pango is too old. Sorry." 1>&2; exit 1; } |
11976 |
fi |
11977 |
|
11978 |
CFLAGS=$_SAVE_CFLAGS |
11979 |
LDFLAGS=$_SAVE_LDFLAGS |
11980 |
|
11981 |
|
11982 |
|
11983 |
|
11984 |
fi |
11985 |
|
11909 |
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-1} |
11986 |
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-1} |
11910 |
if test "$MOZ_ENABLE_COREXFONTS" |
11987 |
if test "$MOZ_ENABLE_COREXFONTS" |
11911 |
then |
11988 |
then |
Lines 11937-11943
Link Here
|
11937 |
_SAVE_LDFLAGS="$LDFLAGS" |
12014 |
_SAVE_LDFLAGS="$LDFLAGS" |
11938 |
LDFLAGS="$XLDFLAGS $LDFLAGS" |
12015 |
LDFLAGS="$XLDFLAGS $LDFLAGS" |
11939 |
echo $ac_n "checking for XpGetPrinterList in -lXp""... $ac_c" 1>&6 |
12016 |
echo $ac_n "checking for XpGetPrinterList in -lXp""... $ac_c" 1>&6 |
11940 |
echo "configure:11941: checking for XpGetPrinterList in -lXp" >&5 |
12017 |
echo "configure:12018: checking for XpGetPrinterList in -lXp" >&5 |
11941 |
ac_lib_var=`echo Xp'_'XpGetPrinterList | sed 'y%./+-%__p_%'` |
12018 |
ac_lib_var=`echo Xp'_'XpGetPrinterList | sed 'y%./+-%__p_%'` |
11942 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
12019 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
11943 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12020 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 11945-11951
Link Here
|
11945 |
ac_save_LIBS="$LIBS" |
12022 |
ac_save_LIBS="$LIBS" |
11946 |
LIBS="-lXp $XEXT_LIBS $XLIBS $LIBS" |
12023 |
LIBS="-lXp $XEXT_LIBS $XLIBS $LIBS" |
11947 |
cat > conftest.$ac_ext <<EOF |
12024 |
cat > conftest.$ac_ext <<EOF |
11948 |
#line 11949 "configure" |
12025 |
#line 12026 "configure" |
11949 |
#include "confdefs.h" |
12026 |
#include "confdefs.h" |
11950 |
/* Override any gcc2 internal prototype to avoid an error. */ |
12027 |
/* Override any gcc2 internal prototype to avoid an error. */ |
11951 |
/* We use char because int might match the return type of a gcc2 |
12028 |
/* We use char because int might match the return type of a gcc2 |
Lines 11956-11962
Link Here
|
11956 |
XpGetPrinterList() |
12033 |
XpGetPrinterList() |
11957 |
; return 0; } |
12034 |
; return 0; } |
11958 |
EOF |
12035 |
EOF |
11959 |
if { (eval echo configure:11960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
12036 |
if { (eval echo configure:12037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
11960 |
rm -rf conftest* |
12037 |
rm -rf conftest* |
11961 |
eval "ac_cv_lib_$ac_lib_var=yes" |
12038 |
eval "ac_cv_lib_$ac_lib_var=yes" |
11962 |
else |
12039 |
else |
Lines 12029-12035
Link Here
|
12029 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12106 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12030 |
set dummy pkg-config; ac_word=$2 |
12107 |
set dummy pkg-config; ac_word=$2 |
12031 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12108 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12032 |
echo "configure:12033: checking for $ac_word" >&5 |
12109 |
echo "configure:12110: checking for $ac_word" >&5 |
12033 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12110 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12034 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12111 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12035 |
else |
12112 |
else |
Lines 12073-12091
Link Here
|
12073 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12150 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12074 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12151 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12075 |
echo $ac_n "checking for gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION""... $ac_c" 1>&6 |
12152 |
echo $ac_n "checking for gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION""... $ac_c" 1>&6 |
12076 |
echo "configure:12077: checking for gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION" >&5 |
12153 |
echo "configure:12154: checking for gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION" >&5 |
12077 |
|
12154 |
|
12078 |
if $PKG_CONFIG --exists "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION" ; then |
12155 |
if $PKG_CONFIG --exists "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION" ; then |
12079 |
echo "$ac_t""yes" 1>&6 |
12156 |
echo "$ac_t""yes" 1>&6 |
12080 |
succeeded=yes |
12157 |
succeeded=yes |
12081 |
|
12158 |
|
12082 |
echo $ac_n "checking MOZ_GNOMEVFS_CFLAGS""... $ac_c" 1>&6 |
12159 |
echo $ac_n "checking MOZ_GNOMEVFS_CFLAGS""... $ac_c" 1>&6 |
12083 |
echo "configure:12084: checking MOZ_GNOMEVFS_CFLAGS" >&5 |
12160 |
echo "configure:12161: checking MOZ_GNOMEVFS_CFLAGS" >&5 |
12084 |
MOZ_GNOMEVFS_CFLAGS=`$PKG_CONFIG --cflags "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION"` |
12161 |
MOZ_GNOMEVFS_CFLAGS=`$PKG_CONFIG --cflags "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION"` |
12085 |
echo "$ac_t""$MOZ_GNOMEVFS_CFLAGS" 1>&6 |
12162 |
echo "$ac_t""$MOZ_GNOMEVFS_CFLAGS" 1>&6 |
12086 |
|
12163 |
|
12087 |
echo $ac_n "checking MOZ_GNOMEVFS_LIBS""... $ac_c" 1>&6 |
12164 |
echo $ac_n "checking MOZ_GNOMEVFS_LIBS""... $ac_c" 1>&6 |
12088 |
echo "configure:12089: checking MOZ_GNOMEVFS_LIBS" >&5 |
12165 |
echo "configure:12166: checking MOZ_GNOMEVFS_LIBS" >&5 |
12089 |
MOZ_GNOMEVFS_LIBS=`$PKG_CONFIG --libs "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION"` |
12166 |
MOZ_GNOMEVFS_LIBS=`$PKG_CONFIG --libs "gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION"` |
12090 |
echo "$ac_t""$MOZ_GNOMEVFS_LIBS" 1>&6 |
12167 |
echo "$ac_t""$MOZ_GNOMEVFS_LIBS" 1>&6 |
12091 |
else |
12168 |
else |
Lines 12133-12139
Link Here
|
12133 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12210 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12134 |
set dummy pkg-config; ac_word=$2 |
12211 |
set dummy pkg-config; ac_word=$2 |
12135 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12212 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12136 |
echo "configure:12137: checking for $ac_word" >&5 |
12213 |
echo "configure:12214: checking for $ac_word" >&5 |
12137 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12214 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12138 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12215 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12139 |
else |
12216 |
else |
Lines 12177-12195
Link Here
|
12177 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12254 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12178 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12255 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12179 |
echo $ac_n "checking for gconf-2.0 >= $GCONF_VERSION""... $ac_c" 1>&6 |
12256 |
echo $ac_n "checking for gconf-2.0 >= $GCONF_VERSION""... $ac_c" 1>&6 |
12180 |
echo "configure:12181: checking for gconf-2.0 >= $GCONF_VERSION" >&5 |
12257 |
echo "configure:12258: checking for gconf-2.0 >= $GCONF_VERSION" >&5 |
12181 |
|
12258 |
|
12182 |
if $PKG_CONFIG --exists "gconf-2.0 >= $GCONF_VERSION" ; then |
12259 |
if $PKG_CONFIG --exists "gconf-2.0 >= $GCONF_VERSION" ; then |
12183 |
echo "$ac_t""yes" 1>&6 |
12260 |
echo "$ac_t""yes" 1>&6 |
12184 |
succeeded=yes |
12261 |
succeeded=yes |
12185 |
|
12262 |
|
12186 |
echo $ac_n "checking MOZ_GCONF_CFLAGS""... $ac_c" 1>&6 |
12263 |
echo $ac_n "checking MOZ_GCONF_CFLAGS""... $ac_c" 1>&6 |
12187 |
echo "configure:12188: checking MOZ_GCONF_CFLAGS" >&5 |
12264 |
echo "configure:12265: checking MOZ_GCONF_CFLAGS" >&5 |
12188 |
MOZ_GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= $GCONF_VERSION"` |
12265 |
MOZ_GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= $GCONF_VERSION"` |
12189 |
echo "$ac_t""$MOZ_GCONF_CFLAGS" 1>&6 |
12266 |
echo "$ac_t""$MOZ_GCONF_CFLAGS" 1>&6 |
12190 |
|
12267 |
|
12191 |
echo $ac_n "checking MOZ_GCONF_LIBS""... $ac_c" 1>&6 |
12268 |
echo $ac_n "checking MOZ_GCONF_LIBS""... $ac_c" 1>&6 |
12192 |
echo "configure:12193: checking MOZ_GCONF_LIBS" >&5 |
12269 |
echo "configure:12270: checking MOZ_GCONF_LIBS" >&5 |
12193 |
MOZ_GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= $GCONF_VERSION"` |
12270 |
MOZ_GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= $GCONF_VERSION"` |
12194 |
echo "$ac_t""$MOZ_GCONF_LIBS" 1>&6 |
12271 |
echo "$ac_t""$MOZ_GCONF_LIBS" 1>&6 |
12195 |
else |
12272 |
else |
Lines 12233-12239
Link Here
|
12233 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12310 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12234 |
set dummy pkg-config; ac_word=$2 |
12311 |
set dummy pkg-config; ac_word=$2 |
12235 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12312 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12236 |
echo "configure:12237: checking for $ac_word" >&5 |
12313 |
echo "configure:12314: checking for $ac_word" >&5 |
12237 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12314 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12238 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12315 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12239 |
else |
12316 |
else |
Lines 12277-12295
Link Here
|
12277 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12354 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12278 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12355 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12279 |
echo $ac_n "checking for libgnome-2.0 >= $LIBGNOME_VERSION""... $ac_c" 1>&6 |
12356 |
echo $ac_n "checking for libgnome-2.0 >= $LIBGNOME_VERSION""... $ac_c" 1>&6 |
12280 |
echo "configure:12281: checking for libgnome-2.0 >= $LIBGNOME_VERSION" >&5 |
12357 |
echo "configure:12358: checking for libgnome-2.0 >= $LIBGNOME_VERSION" >&5 |
12281 |
|
12358 |
|
12282 |
if $PKG_CONFIG --exists "libgnome-2.0 >= $LIBGNOME_VERSION" ; then |
12359 |
if $PKG_CONFIG --exists "libgnome-2.0 >= $LIBGNOME_VERSION" ; then |
12283 |
echo "$ac_t""yes" 1>&6 |
12360 |
echo "$ac_t""yes" 1>&6 |
12284 |
succeeded=yes |
12361 |
succeeded=yes |
12285 |
|
12362 |
|
12286 |
echo $ac_n "checking MOZ_LIBGNOME_CFLAGS""... $ac_c" 1>&6 |
12363 |
echo $ac_n "checking MOZ_LIBGNOME_CFLAGS""... $ac_c" 1>&6 |
12287 |
echo "configure:12288: checking MOZ_LIBGNOME_CFLAGS" >&5 |
12364 |
echo "configure:12365: checking MOZ_LIBGNOME_CFLAGS" >&5 |
12288 |
MOZ_LIBGNOME_CFLAGS=`$PKG_CONFIG --cflags "libgnome-2.0 >= $LIBGNOME_VERSION"` |
12365 |
MOZ_LIBGNOME_CFLAGS=`$PKG_CONFIG --cflags "libgnome-2.0 >= $LIBGNOME_VERSION"` |
12289 |
echo "$ac_t""$MOZ_LIBGNOME_CFLAGS" 1>&6 |
12366 |
echo "$ac_t""$MOZ_LIBGNOME_CFLAGS" 1>&6 |
12290 |
|
12367 |
|
12291 |
echo $ac_n "checking MOZ_LIBGNOME_LIBS""... $ac_c" 1>&6 |
12368 |
echo $ac_n "checking MOZ_LIBGNOME_LIBS""... $ac_c" 1>&6 |
12292 |
echo "configure:12293: checking MOZ_LIBGNOME_LIBS" >&5 |
12369 |
echo "configure:12370: checking MOZ_LIBGNOME_LIBS" >&5 |
12293 |
MOZ_LIBGNOME_LIBS=`$PKG_CONFIG --libs "libgnome-2.0 >= $LIBGNOME_VERSION"` |
12370 |
MOZ_LIBGNOME_LIBS=`$PKG_CONFIG --libs "libgnome-2.0 >= $LIBGNOME_VERSION"` |
12294 |
echo "$ac_t""$MOZ_LIBGNOME_LIBS" 1>&6 |
12371 |
echo "$ac_t""$MOZ_LIBGNOME_LIBS" 1>&6 |
12295 |
else |
12372 |
else |
Lines 12337-12342
Link Here
|
12337 |
|
12414 |
|
12338 |
fi |
12415 |
fi |
12339 |
|
12416 |
|
|
|
12417 |
if test "$MOZ_ENABLE_GTK2" |
12418 |
then |
12419 |
MOZ_ENABLE_GNOMEUI=1 |
12420 |
|
12421 |
# Check whether --enable-gnomeui or --disable-gnomeui was given. |
12422 |
if test "${enable_gnomeui+set}" = set; then |
12423 |
enableval="$enable_gnomeui" |
12424 |
if test "$enableval" = "no"; then |
12425 |
MOZ_ENABLE_GNOMEUI= |
12426 |
elif test "$enableval" = "yes"; then |
12427 |
MOZ_ENABLE_GNOMEUI=force |
12428 |
else |
12429 |
{ echo "configure: error: Option, gnomeui, does not take an argument ($enableval)." 1>&2; exit 1; } |
12430 |
fi |
12431 |
fi |
12432 |
|
12433 |
|
12434 |
if test "$MOZ_ENABLE_GNOMEUI" |
12435 |
then |
12436 |
|
12437 |
succeeded=no |
12438 |
|
12439 |
if test -z "$PKG_CONFIG"; then |
12440 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
12441 |
set dummy pkg-config; ac_word=$2 |
12442 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
12443 |
echo "configure:12444: checking for $ac_word" >&5 |
12444 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
12445 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12446 |
else |
12447 |
case "$PKG_CONFIG" in |
12448 |
/*) |
12449 |
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. |
12450 |
;; |
12451 |
?:/*) |
12452 |
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path. |
12453 |
;; |
12454 |
*) |
12455 |
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" |
12456 |
ac_dummy="$PATH" |
12457 |
for ac_dir in $ac_dummy; do |
12458 |
test -z "$ac_dir" && ac_dir=. |
12459 |
if test -f $ac_dir/$ac_word; then |
12460 |
ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" |
12461 |
break |
12462 |
fi |
12463 |
done |
12464 |
IFS="$ac_save_ifs" |
12465 |
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" |
12466 |
;; |
12467 |
esac |
12468 |
fi |
12469 |
PKG_CONFIG="$ac_cv_path_PKG_CONFIG" |
12470 |
if test -n "$PKG_CONFIG"; then |
12471 |
echo "$ac_t""$PKG_CONFIG" 1>&6 |
12472 |
else |
12473 |
echo "$ac_t""no" 1>&6 |
12474 |
fi |
12475 |
|
12476 |
fi |
12477 |
|
12478 |
if test "$PKG_CONFIG" = "no" ; then |
12479 |
echo "*** The pkg-config script could not be found. Make sure it is" |
12480 |
echo "*** in your path, or set the PKG_CONFIG environment variable" |
12481 |
echo "*** to the full path to pkg-config." |
12482 |
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." |
12483 |
else |
12484 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
12485 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
12486 |
echo $ac_n "checking for libgnomeui-2.0 >= $GNOMEUI_VERSION""... $ac_c" 1>&6 |
12487 |
echo "configure:12488: checking for libgnomeui-2.0 >= $GNOMEUI_VERSION" >&5 |
12488 |
|
12489 |
if $PKG_CONFIG --exists "libgnomeui-2.0 >= $GNOMEUI_VERSION" ; then |
12490 |
echo "$ac_t""yes" 1>&6 |
12491 |
succeeded=yes |
12492 |
|
12493 |
echo $ac_n "checking MOZ_GNOMEUI_CFLAGS""... $ac_c" 1>&6 |
12494 |
echo "configure:12495: checking MOZ_GNOMEUI_CFLAGS" >&5 |
12495 |
MOZ_GNOMEUI_CFLAGS=`$PKG_CONFIG --cflags "libgnomeui-2.0 >= $GNOMEUI_VERSION"` |
12496 |
echo "$ac_t""$MOZ_GNOMEUI_CFLAGS" 1>&6 |
12497 |
|
12498 |
echo $ac_n "checking MOZ_GNOMEUI_LIBS""... $ac_c" 1>&6 |
12499 |
echo "configure:12500: checking MOZ_GNOMEUI_LIBS" >&5 |
12500 |
MOZ_GNOMEUI_LIBS=`$PKG_CONFIG --libs "libgnomeui-2.0 >= $GNOMEUI_VERSION"` |
12501 |
echo "$ac_t""$MOZ_GNOMEUI_LIBS" 1>&6 |
12502 |
else |
12503 |
MOZ_GNOMEUI_CFLAGS="" |
12504 |
MOZ_GNOMEUI_LIBS="" |
12505 |
## If we have a custom action on failure, don't print errors, but |
12506 |
## do set a variable so people can do so. |
12507 |
MOZ_GNOMEUI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgnomeui-2.0 >= $GNOMEUI_VERSION"` |
12508 |
|
12509 |
fi |
12510 |
|
12511 |
|
12512 |
|
12513 |
else |
12514 |
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." |
12515 |
echo "*** See http://www.freedesktop.org/software/pkgconfig" |
12516 |
fi |
12517 |
fi |
12518 |
|
12519 |
if test $succeeded = yes; then |
12520 |
MOZ_ENABLE_GNOMEUI=1 |
12521 |
else |
12522 |
|
12523 |
if test "$MOZ_ENABLE_GNOMEUI" = "force" |
12524 |
then |
12525 |
{ echo "configure: error: * * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION" 1>&2; exit 1; } |
12526 |
fi |
12527 |
MOZ_ENABLE_GNOMEUI= |
12528 |
|
12529 |
fi |
12530 |
|
12531 |
fi |
12532 |
|
12533 |
|
12534 |
|
12535 |
|
12536 |
|
12537 |
fi |
12340 |
|
12538 |
|
12341 |
if (test "$MOZ_ENABLE_GTK" || test "$MOZ_ENABLE_GTK2") \ |
12539 |
if (test "$MOZ_ENABLE_GTK" || test "$MOZ_ENABLE_GTK2") \ |
12342 |
&& test "$MOZ_ENABLE_COREXFONTS" \ |
12540 |
&& test "$MOZ_ENABLE_COREXFONTS" \ |
Lines 12711-12727
Link Here
|
12711 |
do |
12909 |
do |
12712 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12910 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12713 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12911 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12714 |
echo "configure:12715: checking for $ac_hdr" >&5 |
12912 |
echo "configure:12913: checking for $ac_hdr" >&5 |
12715 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12913 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12716 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12914 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12717 |
else |
12915 |
else |
12718 |
cat > conftest.$ac_ext <<EOF |
12916 |
cat > conftest.$ac_ext <<EOF |
12719 |
#line 12720 "configure" |
12917 |
#line 12918 "configure" |
12720 |
#include "confdefs.h" |
12918 |
#include "confdefs.h" |
12721 |
#include <$ac_hdr> |
12919 |
#include <$ac_hdr> |
12722 |
EOF |
12920 |
EOF |
12723 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
12921 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
12724 |
{ (eval echo configure:12725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
12922 |
{ (eval echo configure:12923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
12725 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
12923 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
12726 |
if test -z "$ac_err"; then |
12924 |
if test -z "$ac_err"; then |
12727 |
rm -rf conftest* |
12925 |
rm -rf conftest* |
Lines 12752-12768
Link Here
|
12752 |
do |
12950 |
do |
12753 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12951 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12754 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12952 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12755 |
echo "configure:12756: checking for $ac_hdr" >&5 |
12953 |
echo "configure:12954: checking for $ac_hdr" >&5 |
12756 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12954 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12757 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12955 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12758 |
else |
12956 |
else |
12759 |
cat > conftest.$ac_ext <<EOF |
12957 |
cat > conftest.$ac_ext <<EOF |
12760 |
#line 12761 "configure" |
12958 |
#line 12959 "configure" |
12761 |
#include "confdefs.h" |
12959 |
#include "confdefs.h" |
12762 |
#include <$ac_hdr> |
12960 |
#include <$ac_hdr> |
12763 |
EOF |
12961 |
EOF |
12764 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
12962 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
12765 |
{ (eval echo configure:12766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
12963 |
{ (eval echo configure:12964: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
12766 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
12964 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
12767 |
if test -z "$ac_err"; then |
12965 |
if test -z "$ac_err"; then |
12768 |
rm -rf conftest* |
12966 |
rm -rf conftest* |
Lines 12792-12798
Link Here
|
12792 |
CPPFLAGS="$_SAVE_CPPFLAGS $GSSAPI_INCLUDES" |
12990 |
CPPFLAGS="$_SAVE_CPPFLAGS $GSSAPI_INCLUDES" |
12793 |
|
12991 |
|
12794 |
echo $ac_n "checking for gss_init_sec_context in -lgss""... $ac_c" 1>&6 |
12992 |
echo $ac_n "checking for gss_init_sec_context in -lgss""... $ac_c" 1>&6 |
12795 |
echo "configure:12796: checking for gss_init_sec_context in -lgss" >&5 |
12993 |
echo "configure:12994: checking for gss_init_sec_context in -lgss" >&5 |
12796 |
ac_lib_var=`echo gss'_'gss_init_sec_context | sed 'y%./+-%__p_%'` |
12994 |
ac_lib_var=`echo gss'_'gss_init_sec_context | sed 'y%./+-%__p_%'` |
12797 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
12995 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
12798 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12996 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 12800-12806
Link Here
|
12800 |
ac_save_LIBS="$LIBS" |
12998 |
ac_save_LIBS="$LIBS" |
12801 |
LIBS="-lgss $LIBS" |
12999 |
LIBS="-lgss $LIBS" |
12802 |
cat > conftest.$ac_ext <<EOF |
13000 |
cat > conftest.$ac_ext <<EOF |
12803 |
#line 12804 "configure" |
13001 |
#line 13002 "configure" |
12804 |
#include "confdefs.h" |
13002 |
#include "confdefs.h" |
12805 |
/* Override any gcc2 internal prototype to avoid an error. */ |
13003 |
/* Override any gcc2 internal prototype to avoid an error. */ |
12806 |
/* We use char because int might match the return type of a gcc2 |
13004 |
/* We use char because int might match the return type of a gcc2 |
Lines 12811-12817
Link Here
|
12811 |
gss_init_sec_context() |
13009 |
gss_init_sec_context() |
12812 |
; return 0; } |
13010 |
; return 0; } |
12813 |
EOF |
13011 |
EOF |
12814 |
if { (eval echo configure:12815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13012 |
if { (eval echo configure:13013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
12815 |
rm -rf conftest* |
13013 |
rm -rf conftest* |
12816 |
eval "ac_cv_lib_$ac_lib_var=yes" |
13014 |
eval "ac_cv_lib_$ac_lib_var=yes" |
12817 |
else |
13015 |
else |
Lines 12836-12847
Link Here
|
12836 |
_GSS_LIBS="-L$GSSAPI_DIR/lib -lgssapi_krb5" |
13034 |
_GSS_LIBS="-L$GSSAPI_DIR/lib -lgssapi_krb5" |
12837 |
LIBS="$LIBS $_GSS_LIBS" |
13035 |
LIBS="$LIBS $_GSS_LIBS" |
12838 |
echo $ac_n "checking for gss_init_sec_context""... $ac_c" 1>&6 |
13036 |
echo $ac_n "checking for gss_init_sec_context""... $ac_c" 1>&6 |
12839 |
echo "configure:12840: checking for gss_init_sec_context" >&5 |
13037 |
echo "configure:13038: checking for gss_init_sec_context" >&5 |
12840 |
if eval "test \"`echo '$''{'ac_cv_func_gss_init_sec_context'+set}'`\" = set"; then |
13038 |
if eval "test \"`echo '$''{'ac_cv_func_gss_init_sec_context'+set}'`\" = set"; then |
12841 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13039 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12842 |
else |
13040 |
else |
12843 |
cat > conftest.$ac_ext <<EOF |
13041 |
cat > conftest.$ac_ext <<EOF |
12844 |
#line 12845 "configure" |
13042 |
#line 13043 "configure" |
12845 |
#include "confdefs.h" |
13043 |
#include "confdefs.h" |
12846 |
/* System header to define __stub macros and hopefully few prototypes, |
13044 |
/* System header to define __stub macros and hopefully few prototypes, |
12847 |
which can conflict with char gss_init_sec_context(); below. */ |
13045 |
which can conflict with char gss_init_sec_context(); below. */ |
Lines 12864-12870
Link Here
|
12864 |
|
13062 |
|
12865 |
; return 0; } |
13063 |
; return 0; } |
12866 |
EOF |
13064 |
EOF |
12867 |
if { (eval echo configure:12868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13065 |
if { (eval echo configure:13066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
12868 |
rm -rf conftest* |
13066 |
rm -rf conftest* |
12869 |
eval "ac_cv_func_gss_init_sec_context=yes" |
13067 |
eval "ac_cv_func_gss_init_sec_context=yes" |
12870 |
else |
13068 |
else |
Lines 12894-12900
Link Here
|
12894 |
|
13092 |
|
12895 |
LIBS="$LIBS $TMP_GSSAPI_LIBS" |
13093 |
LIBS="$LIBS $TMP_GSSAPI_LIBS" |
12896 |
echo $ac_n "checking for gss_init_sec_context in -lgssapi""... $ac_c" 1>&6 |
13094 |
echo $ac_n "checking for gss_init_sec_context in -lgssapi""... $ac_c" 1>&6 |
12897 |
echo "configure:12898: checking for gss_init_sec_context in -lgssapi" >&5 |
13095 |
echo "configure:13096: checking for gss_init_sec_context in -lgssapi" >&5 |
12898 |
ac_lib_var=`echo gssapi'_'gss_init_sec_context | sed 'y%./+-%__p_%'` |
13096 |
ac_lib_var=`echo gssapi'_'gss_init_sec_context | sed 'y%./+-%__p_%'` |
12899 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
13097 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
12900 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13098 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 12902-12908
Link Here
|
12902 |
ac_save_LIBS="$LIBS" |
13100 |
ac_save_LIBS="$LIBS" |
12903 |
LIBS="-lgssapi $LIBS" |
13101 |
LIBS="-lgssapi $LIBS" |
12904 |
cat > conftest.$ac_ext <<EOF |
13102 |
cat > conftest.$ac_ext <<EOF |
12905 |
#line 12906 "configure" |
13103 |
#line 13104 "configure" |
12906 |
#include "confdefs.h" |
13104 |
#include "confdefs.h" |
12907 |
/* Override any gcc2 internal prototype to avoid an error. */ |
13105 |
/* Override any gcc2 internal prototype to avoid an error. */ |
12908 |
/* We use char because int might match the return type of a gcc2 |
13106 |
/* We use char because int might match the return type of a gcc2 |
Lines 12913-12919
Link Here
|
12913 |
gss_init_sec_context() |
13111 |
gss_init_sec_context() |
12914 |
; return 0; } |
13112 |
; return 0; } |
12915 |
EOF |
13113 |
EOF |
12916 |
if { (eval echo configure:12917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13114 |
if { (eval echo configure:13115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
12917 |
rm -rf conftest* |
13115 |
rm -rf conftest* |
12918 |
eval "ac_cv_lib_$ac_lib_var=yes" |
13116 |
eval "ac_cv_lib_$ac_lib_var=yes" |
12919 |
else |
13117 |
else |
Lines 12949-12965
Link Here
|
12949 |
do |
13147 |
do |
12950 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
13148 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12951 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
13149 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12952 |
echo "configure:12953: checking for $ac_hdr" >&5 |
13150 |
echo "configure:13151: checking for $ac_hdr" >&5 |
12953 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
13151 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12954 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13152 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12955 |
else |
13153 |
else |
12956 |
cat > conftest.$ac_ext <<EOF |
13154 |
cat > conftest.$ac_ext <<EOF |
12957 |
#line 12958 "configure" |
13155 |
#line 13156 "configure" |
12958 |
#include "confdefs.h" |
13156 |
#include "confdefs.h" |
12959 |
#include <$ac_hdr> |
13157 |
#include <$ac_hdr> |
12960 |
EOF |
13158 |
EOF |
12961 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
13159 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
12962 |
{ (eval echo configure:12963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
13160 |
{ (eval echo configure:13161: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
12963 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
13161 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
12964 |
if test -z "$ac_err"; then |
13162 |
if test -z "$ac_err"; then |
12965 |
rm -rf conftest* |
13163 |
rm -rf conftest* |
Lines 12989-13005
Link Here
|
12989 |
do |
13187 |
do |
12990 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
13188 |
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` |
12991 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
13189 |
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 |
12992 |
echo "configure:12993: checking for $ac_hdr" >&5 |
13190 |
echo "configure:13191: checking for $ac_hdr" >&5 |
12993 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
13191 |
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then |
12994 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13192 |
echo $ac_n "(cached) $ac_c" 1>&6 |
12995 |
else |
13193 |
else |
12996 |
cat > conftest.$ac_ext <<EOF |
13194 |
cat > conftest.$ac_ext <<EOF |
12997 |
#line 12998 "configure" |
13195 |
#line 13196 "configure" |
12998 |
#include "confdefs.h" |
13196 |
#include "confdefs.h" |
12999 |
#include <$ac_hdr> |
13197 |
#include <$ac_hdr> |
13000 |
EOF |
13198 |
EOF |
13001 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
13199 |
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" |
13002 |
{ (eval echo configure:13003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
13200 |
{ (eval echo configure:13201: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } |
13003 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
13201 |
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` |
13004 |
if test -z "$ac_err"; then |
13202 |
if test -z "$ac_err"; then |
13005 |
rm -rf conftest* |
13203 |
rm -rf conftest* |
Lines 13027-13033
Link Here
|
13027 |
|
13225 |
|
13028 |
|
13226 |
|
13029 |
cat > conftest.$ac_ext <<EOF |
13227 |
cat > conftest.$ac_ext <<EOF |
13030 |
#line 13031 "configure" |
13228 |
#line 13229 "configure" |
13031 |
#include "confdefs.h" |
13229 |
#include "confdefs.h" |
13032 |
#if defined(HAVE_GSSAPI_H) |
13230 |
#if defined(HAVE_GSSAPI_H) |
13033 |
#include <gssapi.h> |
13231 |
#include <gssapi.h> |
Lines 13038-13044
Link Here
|
13038 |
gss_OID oid = GSS_C_NT_HOSTBASED_SERVICE; |
13236 |
gss_OID oid = GSS_C_NT_HOSTBASED_SERVICE; |
13039 |
; return 0; } |
13237 |
; return 0; } |
13040 |
EOF |
13238 |
EOF |
13041 |
if { (eval echo configure:13042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13239 |
if { (eval echo configure:13240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13042 |
rm -rf conftest* |
13240 |
rm -rf conftest* |
13043 |
cat >> confdefs.h <<\EOF |
13241 |
cat >> confdefs.h <<\EOF |
13044 |
#define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1 |
13242 |
#define HAVE_GSS_C_NT_HOSTBASED_SERVICE 1 |
Lines 13077-13082
Link Here
|
13077 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
13275 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
13078 |
fi |
13276 |
fi |
13079 |
;; |
13277 |
;; |
|
|
13278 |
*) |
13279 |
if test "$MOZ_ENABLE_GNOMEUI"; then |
13280 |
|
13281 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
13282 |
fi |
13283 |
;; |
13284 |
*) |
13285 |
if test "$MOZ_ENABLE_GNOMEUI"; then |
13286 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
13287 |
fi |
13288 |
;; |
13080 |
esac |
13289 |
esac |
13081 |
|
13290 |
|
13082 |
# Check whether --enable-image-decoders or --disable-image-decoders was given. |
13291 |
# Check whether --enable-image-decoders or --disable-image-decoders was given. |
Lines 13169-13175
Link Here
|
13169 |
|
13378 |
|
13170 |
if test -n "$MOZ_SVG_RENDERER_GDIPLUS"; then |
13379 |
if test -n "$MOZ_SVG_RENDERER_GDIPLUS"; then |
13171 |
echo $ac_n "checking for Gdiplus.h""... $ac_c" 1>&6 |
13380 |
echo $ac_n "checking for Gdiplus.h""... $ac_c" 1>&6 |
13172 |
echo "configure:13173: checking for Gdiplus.h" >&5 |
13381 |
echo "configure:13382: checking for Gdiplus.h" >&5 |
13173 |
|
13382 |
|
13174 |
ac_ext=C |
13383 |
ac_ext=C |
13175 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
13384 |
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. |
Lines 13179-13185
Link Here
|
13179 |
cross_compiling=$ac_cv_prog_cxx_cross |
13388 |
cross_compiling=$ac_cv_prog_cxx_cross |
13180 |
|
13389 |
|
13181 |
cat > conftest.$ac_ext <<EOF |
13390 |
cat > conftest.$ac_ext <<EOF |
13182 |
#line 13183 "configure" |
13391 |
#line 13392 "configure" |
13183 |
#include "confdefs.h" |
13392 |
#include "confdefs.h" |
13184 |
#include <windows.h> |
13393 |
#include <windows.h> |
13185 |
#include <unknwn.h> |
13394 |
#include <unknwn.h> |
Lines 13188-13194
Link Here
|
13188 |
|
13397 |
|
13189 |
; return 0; } |
13398 |
; return 0; } |
13190 |
EOF |
13399 |
EOF |
13191 |
if { (eval echo configure:13192: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13400 |
if { (eval echo configure:13401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13192 |
rm -rf conftest* |
13401 |
rm -rf conftest* |
13193 |
echo "$ac_t""yes" 1>&6 |
13402 |
echo "$ac_t""yes" 1>&6 |
13194 |
else |
13403 |
else |
Lines 13486-13503
Link Here
|
13486 |
|
13695 |
|
13487 |
if test -n "$MOZ_OPTIMIZE"; then |
13696 |
if test -n "$MOZ_OPTIMIZE"; then |
13488 |
echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6 |
13697 |
echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6 |
13489 |
echo "configure:13490: checking for valid optimization flags" >&5 |
13698 |
echo "configure:13699: checking for valid optimization flags" >&5 |
13490 |
_SAVE_CFLAGS=$CFLAGS |
13699 |
_SAVE_CFLAGS=$CFLAGS |
13491 |
CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" |
13700 |
CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" |
13492 |
cat > conftest.$ac_ext <<EOF |
13701 |
cat > conftest.$ac_ext <<EOF |
13493 |
#line 13494 "configure" |
13702 |
#line 13703 "configure" |
13494 |
#include "confdefs.h" |
13703 |
#include "confdefs.h" |
13495 |
#include <stdio.h> |
13704 |
#include <stdio.h> |
13496 |
int main() { |
13705 |
int main() { |
13497 |
printf("Hello World\n"); |
13706 |
printf("Hello World\n"); |
13498 |
; return 0; } |
13707 |
; return 0; } |
13499 |
EOF |
13708 |
EOF |
13500 |
if { (eval echo configure:13501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13709 |
if { (eval echo configure:13710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
13501 |
rm -rf conftest* |
13710 |
rm -rf conftest* |
13502 |
_results=yes |
13711 |
_results=yes |
13503 |
else |
13712 |
else |
Lines 13715-13721
Link Here
|
13715 |
|
13924 |
|
13716 |
if test -n "$_ENABLE_EFENCE"; then |
13925 |
if test -n "$_ENABLE_EFENCE"; then |
13717 |
echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6 |
13926 |
echo $ac_n "checking for malloc in -lefence""... $ac_c" 1>&6 |
13718 |
echo "configure:13719: checking for malloc in -lefence" >&5 |
13927 |
echo "configure:13928: checking for malloc in -lefence" >&5 |
13719 |
ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'` |
13928 |
ac_lib_var=`echo efence'_'malloc | sed 'y%./+-%__p_%'` |
13720 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
13929 |
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then |
13721 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13930 |
echo $ac_n "(cached) $ac_c" 1>&6 |
Lines 13723-13729
Link Here
|
13723 |
ac_save_LIBS="$LIBS" |
13932 |
ac_save_LIBS="$LIBS" |
13724 |
LIBS="-lefence $LIBS" |
13933 |
LIBS="-lefence $LIBS" |
13725 |
cat > conftest.$ac_ext <<EOF |
13934 |
cat > conftest.$ac_ext <<EOF |
13726 |
#line 13727 "configure" |
13935 |
#line 13936 "configure" |
13727 |
#include "confdefs.h" |
13936 |
#include "confdefs.h" |
13728 |
/* Override any gcc2 internal prototype to avoid an error. */ |
13937 |
/* Override any gcc2 internal prototype to avoid an error. */ |
13729 |
/* We use char because int might match the return type of a gcc2 |
13938 |
/* We use char because int might match the return type of a gcc2 |
Lines 13734-13740
Link Here
|
13734 |
malloc() |
13943 |
malloc() |
13735 |
; return 0; } |
13944 |
; return 0; } |
13736 |
EOF |
13945 |
EOF |
13737 |
if { (eval echo configure:13738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13946 |
if { (eval echo configure:13947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13738 |
rm -rf conftest* |
13947 |
rm -rf conftest* |
13739 |
eval "ac_cv_lib_$ac_lib_var=yes" |
13948 |
eval "ac_cv_lib_$ac_lib_var=yes" |
13740 |
else |
13949 |
else |
Lines 13834-13845
Link Here
|
13834 |
for ac_func in __builtin_vec_new __builtin_vec_delete __builtin_new __builtin_delete __pure_virtual |
14043 |
for ac_func in __builtin_vec_new __builtin_vec_delete __builtin_new __builtin_delete __pure_virtual |
13835 |
do |
14044 |
do |
13836 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
14045 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
13837 |
echo "configure:13838: checking for $ac_func" >&5 |
14046 |
echo "configure:14047: checking for $ac_func" >&5 |
13838 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
14047 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
13839 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14048 |
echo $ac_n "(cached) $ac_c" 1>&6 |
13840 |
else |
14049 |
else |
13841 |
cat > conftest.$ac_ext <<EOF |
14050 |
cat > conftest.$ac_ext <<EOF |
13842 |
#line 13843 "configure" |
14051 |
#line 14052 "configure" |
13843 |
#include "confdefs.h" |
14052 |
#include "confdefs.h" |
13844 |
/* System header to define __stub macros and hopefully few prototypes, |
14053 |
/* System header to define __stub macros and hopefully few prototypes, |
13845 |
which can conflict with char $ac_func(); below. */ |
14054 |
which can conflict with char $ac_func(); below. */ |
Lines 13865-13871
Link Here
|
13865 |
|
14074 |
|
13866 |
; return 0; } |
14075 |
; return 0; } |
13867 |
EOF |
14076 |
EOF |
13868 |
if { (eval echo configure:13869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
14077 |
if { (eval echo configure:14078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
13869 |
rm -rf conftest* |
14078 |
rm -rf conftest* |
13870 |
eval "ac_cv_func_$ac_func=yes" |
14079 |
eval "ac_cv_func_$ac_func=yes" |
13871 |
else |
14080 |
else |
Lines 14109-14120
Link Here
|
14109 |
for ac_func in __cxa_demangle |
14318 |
for ac_func in __cxa_demangle |
14110 |
do |
14319 |
do |
14111 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
14320 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
14112 |
echo "configure:14113: checking for $ac_func" >&5 |
14321 |
echo "configure:14322: checking for $ac_func" >&5 |
14113 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
14322 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
14114 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14323 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14115 |
else |
14324 |
else |
14116 |
cat > conftest.$ac_ext <<EOF |
14325 |
cat > conftest.$ac_ext <<EOF |
14117 |
#line 14118 "configure" |
14326 |
#line 14327 "configure" |
14118 |
#include "confdefs.h" |
14327 |
#include "confdefs.h" |
14119 |
/* System header to define __stub macros and hopefully few prototypes, |
14328 |
/* System header to define __stub macros and hopefully few prototypes, |
14120 |
which can conflict with char $ac_func(); below. */ |
14329 |
which can conflict with char $ac_func(); below. */ |
Lines 14140-14146
Link Here
|
14140 |
|
14349 |
|
14141 |
; return 0; } |
14350 |
; return 0; } |
14142 |
EOF |
14351 |
EOF |
14143 |
if { (eval echo configure:14144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
14352 |
if { (eval echo configure:14353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
14144 |
rm -rf conftest* |
14353 |
rm -rf conftest* |
14145 |
eval "ac_cv_func_$ac_func=yes" |
14354 |
eval "ac_cv_func_$ac_func=yes" |
14146 |
else |
14355 |
else |
Lines 14278-14284
Link Here
|
14278 |
# Compiler Options |
14487 |
# Compiler Options |
14279 |
|
14488 |
|
14280 |
echo $ac_n "checking for gcc -pipe support""... $ac_c" 1>&6 |
14489 |
echo $ac_n "checking for gcc -pipe support""... $ac_c" 1>&6 |
14281 |
echo "configure:14282: checking for gcc -pipe support" >&5 |
14490 |
echo "configure:14491: checking for gcc -pipe support" >&5 |
14282 |
if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then |
14491 |
if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then |
14283 |
echo '#include <stdio.h>' > dummy-hello.c |
14492 |
echo '#include <stdio.h>' > dummy-hello.c |
14284 |
echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c |
14493 |
echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c |
Lines 14293-14306
Link Here
|
14293 |
_SAVE_CFLAGS=$CFLAGS |
14502 |
_SAVE_CFLAGS=$CFLAGS |
14294 |
CFLAGS="$CFLAGS -pipe" |
14503 |
CFLAGS="$CFLAGS -pipe" |
14295 |
cat > conftest.$ac_ext <<EOF |
14504 |
cat > conftest.$ac_ext <<EOF |
14296 |
#line 14297 "configure" |
14505 |
#line 14506 "configure" |
14297 |
#include "confdefs.h" |
14506 |
#include "confdefs.h" |
14298 |
#include <stdio.h> |
14507 |
#include <stdio.h> |
14299 |
int main() { |
14508 |
int main() { |
14300 |
printf("Hello World\n"); |
14509 |
printf("Hello World\n"); |
14301 |
; return 0; } |
14510 |
; return 0; } |
14302 |
EOF |
14511 |
EOF |
14303 |
if { (eval echo configure:14304: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14512 |
if { (eval echo configure:14513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14304 |
rm -rf conftest* |
14513 |
rm -rf conftest* |
14305 |
_res_gcc_pipe="yes" |
14514 |
_res_gcc_pipe="yes" |
14306 |
else |
14515 |
else |
Lines 14342-14357
Link Here
|
14342 |
_SAVE_CFLAGS="$CFLAGS" |
14551 |
_SAVE_CFLAGS="$CFLAGS" |
14343 |
CFLAGS="$CFLAGS ${_COMPILER_PREFIX}-Wno-long-long" |
14552 |
CFLAGS="$CFLAGS ${_COMPILER_PREFIX}-Wno-long-long" |
14344 |
echo $ac_n "checking whether compiler supports -Wno-long-long""... $ac_c" 1>&6 |
14553 |
echo $ac_n "checking whether compiler supports -Wno-long-long""... $ac_c" 1>&6 |
14345 |
echo "configure:14346: checking whether compiler supports -Wno-long-long" >&5 |
14554 |
echo "configure:14555: checking whether compiler supports -Wno-long-long" >&5 |
14346 |
cat > conftest.$ac_ext <<EOF |
14555 |
cat > conftest.$ac_ext <<EOF |
14347 |
#line 14348 "configure" |
14556 |
#line 14557 "configure" |
14348 |
#include "confdefs.h" |
14557 |
#include "confdefs.h" |
14349 |
|
14558 |
|
14350 |
int main() { |
14559 |
int main() { |
14351 |
return(0); |
14560 |
return(0); |
14352 |
; return 0; } |
14561 |
; return 0; } |
14353 |
EOF |
14562 |
EOF |
14354 |
if { (eval echo configure:14355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14563 |
if { (eval echo configure:14564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14355 |
rm -rf conftest* |
14564 |
rm -rf conftest* |
14356 |
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-Wno-long-long" |
14565 |
_WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-Wno-long-long" |
14357 |
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-long-long" |
14566 |
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-long-long" |
Lines 14372-14387
Link Here
|
14372 |
CFLAGS="$CFLAGS -fprofile-generate" |
14581 |
CFLAGS="$CFLAGS -fprofile-generate" |
14373 |
|
14582 |
|
14374 |
echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6 |
14583 |
echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6 |
14375 |
echo "configure:14376: checking whether C compiler supports -fprofile-generate" >&5 |
14584 |
echo "configure:14585: checking whether C compiler supports -fprofile-generate" >&5 |
14376 |
cat > conftest.$ac_ext <<EOF |
14585 |
cat > conftest.$ac_ext <<EOF |
14377 |
#line 14378 "configure" |
14586 |
#line 14587 "configure" |
14378 |
#include "confdefs.h" |
14587 |
#include "confdefs.h" |
14379 |
|
14588 |
|
14380 |
int main() { |
14589 |
int main() { |
14381 |
return 0; |
14590 |
return 0; |
14382 |
; return 0; } |
14591 |
; return 0; } |
14383 |
EOF |
14592 |
EOF |
14384 |
if { (eval echo configure:14385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14593 |
if { (eval echo configure:14594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14385 |
rm -rf conftest* |
14594 |
rm -rf conftest* |
14386 |
PROFILE_GEN_CFLAGS="-fprofile-generate" |
14595 |
PROFILE_GEN_CFLAGS="-fprofile-generate" |
14387 |
result="yes" |
14596 |
result="yes" |
Lines 14399-14414
Link Here
|
14399 |
else |
14608 |
else |
14400 |
CFLAGS="$_SAVE_CFLAGS -fprofile-arcs" |
14609 |
CFLAGS="$_SAVE_CFLAGS -fprofile-arcs" |
14401 |
echo $ac_n "checking whether C compiler supports -fprofile-arcs""... $ac_c" 1>&6 |
14610 |
echo $ac_n "checking whether C compiler supports -fprofile-arcs""... $ac_c" 1>&6 |
14402 |
echo "configure:14403: checking whether C compiler supports -fprofile-arcs" >&5 |
14611 |
echo "configure:14612: checking whether C compiler supports -fprofile-arcs" >&5 |
14403 |
cat > conftest.$ac_ext <<EOF |
14612 |
cat > conftest.$ac_ext <<EOF |
14404 |
#line 14405 "configure" |
14613 |
#line 14614 "configure" |
14405 |
#include "confdefs.h" |
14614 |
#include "confdefs.h" |
14406 |
|
14615 |
|
14407 |
int main() { |
14616 |
int main() { |
14408 |
return 0; |
14617 |
return 0; |
14409 |
; return 0; } |
14618 |
; return 0; } |
14410 |
EOF |
14619 |
EOF |
14411 |
if { (eval echo configure:14412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14620 |
if { (eval echo configure:14621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14412 |
rm -rf conftest* |
14621 |
rm -rf conftest* |
14413 |
PROFILE_GEN_CFLAGS="-fprofile-arcs" |
14622 |
PROFILE_GEN_CFLAGS="-fprofile-arcs" |
14414 |
result="yes" |
14623 |
result="yes" |
Lines 14454-14471
Link Here
|
14454 |
_SAVE_CXXFLAGS=$CXXFLAGS |
14663 |
_SAVE_CXXFLAGS=$CXXFLAGS |
14455 |
CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic" |
14664 |
CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic" |
14456 |
echo $ac_n "checking whether C++ compiler has -pedantic long long bug""... $ac_c" 1>&6 |
14665 |
echo $ac_n "checking whether C++ compiler has -pedantic long long bug""... $ac_c" 1>&6 |
14457 |
echo "configure:14458: checking whether C++ compiler has -pedantic long long bug" >&5 |
14666 |
echo "configure:14667: checking whether C++ compiler has -pedantic long long bug" >&5 |
14458 |
if test "$cross_compiling" = yes; then |
14667 |
if test "$cross_compiling" = yes; then |
14459 |
result="maybe" |
14668 |
result="maybe" |
14460 |
else |
14669 |
else |
14461 |
cat > conftest.$ac_ext <<EOF |
14670 |
cat > conftest.$ac_ext <<EOF |
14462 |
#line 14463 "configure" |
14671 |
#line 14672 "configure" |
14463 |
#include "confdefs.h" |
14672 |
#include "confdefs.h" |
|
|
14673 |
#ifdef __cplusplus |
14674 |
extern "C" void exit(int); |
14675 |
#endif |
14464 |
int main () { |
14676 |
int main () { |
14465 |
if (sizeof(long long) != 8) { return 1; } |
14677 |
if (sizeof(long long) != 8) { return 1; } |
14466 |
return 0; } |
14678 |
return 0; } |
14467 |
EOF |
14679 |
EOF |
14468 |
if { (eval echo configure:14469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
14680 |
if { (eval echo configure:14681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
14469 |
then |
14681 |
then |
14470 |
result="no" |
14682 |
result="no" |
14471 |
else |
14683 |
else |
Lines 14495-14507
Link Here
|
14495 |
fi |
14707 |
fi |
14496 |
|
14708 |
|
14497 |
echo $ac_n "checking for correct temporary object destruction order""... $ac_c" 1>&6 |
14709 |
echo $ac_n "checking for correct temporary object destruction order""... $ac_c" 1>&6 |
14498 |
echo "configure:14499: checking for correct temporary object destruction order" >&5 |
14710 |
echo "configure:14711: checking for correct temporary object destruction order" >&5 |
14499 |
if test "$cross_compiling" = yes; then |
14711 |
if test "$cross_compiling" = yes; then |
14500 |
result="maybe" |
14712 |
result="maybe" |
14501 |
else |
14713 |
else |
14502 |
cat > conftest.$ac_ext <<EOF |
14714 |
cat > conftest.$ac_ext <<EOF |
14503 |
#line 14504 "configure" |
14715 |
#line 14716 "configure" |
14504 |
#include "confdefs.h" |
14716 |
#include "confdefs.h" |
|
|
14717 |
#ifdef __cplusplus |
14718 |
extern "C" void exit(int); |
14719 |
#endif |
14505 |
class A { |
14720 |
class A { |
14506 |
public: A(int& x) : mValue(x) {} |
14721 |
public: A(int& x) : mValue(x) {} |
14507 |
~A() { mValue--; } |
14722 |
~A() { mValue--; } |
Lines 14520-14526
Link Here
|
14520 |
} |
14735 |
} |
14521 |
|
14736 |
|
14522 |
EOF |
14737 |
EOF |
14523 |
if { (eval echo configure:14524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
14738 |
if { (eval echo configure:14739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
14524 |
then |
14739 |
then |
14525 |
result="yes" |
14740 |
result="yes" |
14526 |
else |
14741 |
else |
Lines 14541-14552
Link Here
|
14541 |
_SAVE_CXXFLAGS=$CXXFLAGS |
14756 |
_SAVE_CXXFLAGS=$CXXFLAGS |
14542 |
CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}" |
14757 |
CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}" |
14543 |
echo $ac_n "checking for correct overload resolution with const and templates""... $ac_c" 1>&6 |
14758 |
echo $ac_n "checking for correct overload resolution with const and templates""... $ac_c" 1>&6 |
14544 |
echo "configure:14545: checking for correct overload resolution with const and templates" >&5 |
14759 |
echo "configure:14760: checking for correct overload resolution with const and templates" >&5 |
14545 |
if eval "test \"`echo '$''{'ac_nscap_nonconst_opeq_bug'+set}'`\" = set"; then |
14760 |
if eval "test \"`echo '$''{'ac_nscap_nonconst_opeq_bug'+set}'`\" = set"; then |
14546 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14761 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14547 |
else |
14762 |
else |
14548 |
cat > conftest.$ac_ext <<EOF |
14763 |
cat > conftest.$ac_ext <<EOF |
14549 |
#line 14550 "configure" |
14764 |
#line 14765 "configure" |
14550 |
#include "confdefs.h" |
14765 |
#include "confdefs.h" |
14551 |
|
14766 |
|
14552 |
template <class T> |
14767 |
template <class T> |
Lines 14576-14582
Link Here
|
14576 |
|
14791 |
|
14577 |
; return 0; } |
14792 |
; return 0; } |
14578 |
EOF |
14793 |
EOF |
14579 |
if { (eval echo configure:14580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14794 |
if { (eval echo configure:14795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
14580 |
rm -rf conftest* |
14795 |
rm -rf conftest* |
14581 |
ac_nscap_nonconst_opeq_bug="no" |
14796 |
ac_nscap_nonconst_opeq_bug="no" |
14582 |
else |
14797 |
else |
Lines 14867-14873
Link Here
|
14867 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
15082 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
14868 |
set dummy pkg-config; ac_word=$2 |
15083 |
set dummy pkg-config; ac_word=$2 |
14869 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15084 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
14870 |
echo "configure:14871: checking for $ac_word" >&5 |
15085 |
echo "configure:15086: checking for $ac_word" >&5 |
14871 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
15086 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
14872 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15087 |
echo $ac_n "(cached) $ac_c" 1>&6 |
14873 |
else |
15088 |
else |
Lines 14911-14929
Link Here
|
14911 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
15126 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
14912 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
15127 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
14913 |
echo $ac_n "checking for libIDL-2.0 >= 0.8.0""... $ac_c" 1>&6 |
15128 |
echo $ac_n "checking for libIDL-2.0 >= 0.8.0""... $ac_c" 1>&6 |
14914 |
echo "configure:14915: checking for libIDL-2.0 >= 0.8.0" >&5 |
15129 |
echo "configure:15130: checking for libIDL-2.0 >= 0.8.0" >&5 |
14915 |
|
15130 |
|
14916 |
if $PKG_CONFIG --exists "libIDL-2.0 >= 0.8.0" ; then |
15131 |
if $PKG_CONFIG --exists "libIDL-2.0 >= 0.8.0" ; then |
14917 |
echo "$ac_t""yes" 1>&6 |
15132 |
echo "$ac_t""yes" 1>&6 |
14918 |
succeeded=yes |
15133 |
succeeded=yes |
14919 |
|
15134 |
|
14920 |
echo $ac_n "checking LIBIDL_CFLAGS""... $ac_c" 1>&6 |
15135 |
echo $ac_n "checking LIBIDL_CFLAGS""... $ac_c" 1>&6 |
14921 |
echo "configure:14922: checking LIBIDL_CFLAGS" >&5 |
15136 |
echo "configure:15137: checking LIBIDL_CFLAGS" >&5 |
14922 |
LIBIDL_CFLAGS=`$PKG_CONFIG --cflags "libIDL-2.0 >= 0.8.0"` |
15137 |
LIBIDL_CFLAGS=`$PKG_CONFIG --cflags "libIDL-2.0 >= 0.8.0"` |
14923 |
echo "$ac_t""$LIBIDL_CFLAGS" 1>&6 |
15138 |
echo "$ac_t""$LIBIDL_CFLAGS" 1>&6 |
14924 |
|
15139 |
|
14925 |
echo $ac_n "checking LIBIDL_LIBS""... $ac_c" 1>&6 |
15140 |
echo $ac_n "checking LIBIDL_LIBS""... $ac_c" 1>&6 |
14926 |
echo "configure:14927: checking LIBIDL_LIBS" >&5 |
15141 |
echo "configure:15142: checking LIBIDL_LIBS" >&5 |
14927 |
LIBIDL_LIBS=`$PKG_CONFIG --libs "libIDL-2.0 >= 0.8.0"` |
15142 |
LIBIDL_LIBS=`$PKG_CONFIG --libs "libIDL-2.0 >= 0.8.0"` |
14928 |
echo "$ac_t""$LIBIDL_LIBS" 1>&6 |
15143 |
echo "$ac_t""$LIBIDL_LIBS" 1>&6 |
14929 |
else |
15144 |
else |
Lines 15044-15050
Link Here
|
15044 |
# Extract the first word of "glib-config", so it can be a program name with args. |
15259 |
# Extract the first word of "glib-config", so it can be a program name with args. |
15045 |
set dummy glib-config; ac_word=$2 |
15260 |
set dummy glib-config; ac_word=$2 |
15046 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15261 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15047 |
echo "configure:15048: checking for $ac_word" >&5 |
15262 |
echo "configure:15263: checking for $ac_word" >&5 |
15048 |
if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then |
15263 |
if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then |
15049 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15264 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15050 |
else |
15265 |
else |
Lines 15079-15085
Link Here
|
15079 |
|
15294 |
|
15080 |
min_glib_version=1.2.0 |
15295 |
min_glib_version=1.2.0 |
15081 |
echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 |
15296 |
echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 |
15082 |
echo "configure:15083: checking for GLIB - version >= $min_glib_version" >&5 |
15297 |
echo "configure:15298: checking for GLIB - version >= $min_glib_version" >&5 |
15083 |
no_glib="" |
15298 |
no_glib="" |
15084 |
if test "$GLIB_CONFIG" = "no" ; then |
15299 |
if test "$GLIB_CONFIG" = "no" ; then |
15085 |
no_glib=yes |
15300 |
no_glib=yes |
Lines 15102-15108
Link Here
|
15102 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15317 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15103 |
else |
15318 |
else |
15104 |
cat > conftest.$ac_ext <<EOF |
15319 |
cat > conftest.$ac_ext <<EOF |
15105 |
#line 15106 "configure" |
15320 |
#line 15321 "configure" |
15106 |
#include "confdefs.h" |
15321 |
#include "confdefs.h" |
15107 |
|
15322 |
|
15108 |
#include <glib.h> |
15323 |
#include <glib.h> |
Lines 15178-15184
Link Here
|
15178 |
} |
15393 |
} |
15179 |
|
15394 |
|
15180 |
EOF |
15395 |
EOF |
15181 |
if { (eval echo configure:15182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
15396 |
if { (eval echo configure:15397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
15182 |
then |
15397 |
then |
15183 |
: |
15398 |
: |
15184 |
else |
15399 |
else |
Lines 15212-15218
Link Here
|
15212 |
CFLAGS="$CFLAGS $GLIB_CFLAGS" |
15427 |
CFLAGS="$CFLAGS $GLIB_CFLAGS" |
15213 |
LIBS="$LIBS $GLIB_LIBS" |
15428 |
LIBS="$LIBS $GLIB_LIBS" |
15214 |
cat > conftest.$ac_ext <<EOF |
15429 |
cat > conftest.$ac_ext <<EOF |
15215 |
#line 15216 "configure" |
15430 |
#line 15431 "configure" |
15216 |
#include "confdefs.h" |
15431 |
#include "confdefs.h" |
15217 |
|
15432 |
|
15218 |
#include <glib.h> |
15433 |
#include <glib.h> |
Lines 15222-15228
Link Here
|
15222 |
return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); |
15437 |
return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); |
15223 |
; return 0; } |
15438 |
; return 0; } |
15224 |
EOF |
15439 |
EOF |
15225 |
if { (eval echo configure:15226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15440 |
if { (eval echo configure:15441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15226 |
rm -rf conftest* |
15441 |
rm -rf conftest* |
15227 |
echo "*** The test program compiled, but did not run. This usually means" |
15442 |
echo "*** The test program compiled, but did not run. This usually means" |
15228 |
echo "*** that the run-time linker is not finding GLIB or finding the wrong" |
15443 |
echo "*** that the run-time linker is not finding GLIB or finding the wrong" |
Lines 15266-15272
Link Here
|
15266 |
# Extract the first word of "libIDL-config", so it can be a program name with args. |
15481 |
# Extract the first word of "libIDL-config", so it can be a program name with args. |
15267 |
set dummy libIDL-config; ac_word=$2 |
15482 |
set dummy libIDL-config; ac_word=$2 |
15268 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15483 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15269 |
echo "configure:15270: checking for $ac_word" >&5 |
15484 |
echo "configure:15485: checking for $ac_word" >&5 |
15270 |
if eval "test \"`echo '$''{'ac_cv_path_LIBIDL_CONFIG'+set}'`\" = set"; then |
15485 |
if eval "test \"`echo '$''{'ac_cv_path_LIBIDL_CONFIG'+set}'`\" = set"; then |
15271 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15486 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15272 |
else |
15487 |
else |
Lines 15301-15307
Link Here
|
15301 |
|
15516 |
|
15302 |
min_libIDL_version=$LIBIDL_VERSION |
15517 |
min_libIDL_version=$LIBIDL_VERSION |
15303 |
echo $ac_n "checking for libIDL - version >= $min_libIDL_version""... $ac_c" 1>&6 |
15518 |
echo $ac_n "checking for libIDL - version >= $min_libIDL_version""... $ac_c" 1>&6 |
15304 |
echo "configure:15305: checking for libIDL - version >= $min_libIDL_version" >&5 |
15519 |
echo "configure:15520: checking for libIDL - version >= $min_libIDL_version" >&5 |
15305 |
no_libIDL="" |
15520 |
no_libIDL="" |
15306 |
if test "$LIBIDL_CONFIG" = "no" ; then |
15521 |
if test "$LIBIDL_CONFIG" = "no" ; then |
15307 |
no_libIDL=yes |
15522 |
no_libIDL=yes |
Lines 15328-15334
Link Here
|
15328 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15543 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15329 |
else |
15544 |
else |
15330 |
cat > conftest.$ac_ext <<EOF |
15545 |
cat > conftest.$ac_ext <<EOF |
15331 |
#line 15332 "configure" |
15546 |
#line 15547 "configure" |
15332 |
#include "confdefs.h" |
15547 |
#include "confdefs.h" |
15333 |
|
15548 |
|
15334 |
#include <stdio.h> |
15549 |
#include <stdio.h> |
Lines 15414-15420
Link Here
|
15414 |
} |
15629 |
} |
15415 |
|
15630 |
|
15416 |
EOF |
15631 |
EOF |
15417 |
if { (eval echo configure:15418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
15632 |
if { (eval echo configure:15633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
15418 |
then |
15633 |
then |
15419 |
: |
15634 |
: |
15420 |
else |
15635 |
else |
Lines 15448-15454
Link Here
|
15448 |
CFLAGS="$CFLAGS $LIBIDL_CFLAGS" |
15663 |
CFLAGS="$CFLAGS $LIBIDL_CFLAGS" |
15449 |
LIBS="$LIBS $LIBIDL_LIBS" |
15664 |
LIBS="$LIBS $LIBIDL_LIBS" |
15450 |
cat > conftest.$ac_ext <<EOF |
15665 |
cat > conftest.$ac_ext <<EOF |
15451 |
#line 15452 "configure" |
15666 |
#line 15667 "configure" |
15452 |
#include "confdefs.h" |
15667 |
#include "confdefs.h" |
15453 |
|
15668 |
|
15454 |
#include <stdio.h> |
15669 |
#include <stdio.h> |
Lines 15459-15465
Link Here
|
15459 |
return IDL_get_libver_string ? 1 : 0; |
15674 |
return IDL_get_libver_string ? 1 : 0; |
15460 |
; return 0; } |
15675 |
; return 0; } |
15461 |
EOF |
15676 |
EOF |
15462 |
if { (eval echo configure:15463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15677 |
if { (eval echo configure:15678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15463 |
rm -rf conftest* |
15678 |
rm -rf conftest* |
15464 |
echo "*** The test program compiled, but did not run. This usually means" |
15679 |
echo "*** The test program compiled, but did not run. This usually means" |
15465 |
echo "*** that the run-time linker is not finding libIDL or finding the wrong" |
15680 |
echo "*** that the run-time linker is not finding libIDL or finding the wrong" |
Lines 15499-15505
Link Here
|
15499 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
15714 |
# Extract the first word of "$ac_prog", so it can be a program name with args. |
15500 |
set dummy $ac_prog; ac_word=$2 |
15715 |
set dummy $ac_prog; ac_word=$2 |
15501 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15716 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15502 |
echo "configure:15503: checking for $ac_word" >&5 |
15717 |
echo "configure:15718: checking for $ac_word" >&5 |
15503 |
if eval "test \"`echo '$''{'ac_cv_path_ORBIT_CONFIG'+set}'`\" = set"; then |
15718 |
if eval "test \"`echo '$''{'ac_cv_path_ORBIT_CONFIG'+set}'`\" = set"; then |
15504 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15719 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15505 |
else |
15720 |
else |
Lines 15578-15584
Link Here
|
15578 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
15793 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
15579 |
set dummy pkg-config; ac_word=$2 |
15794 |
set dummy pkg-config; ac_word=$2 |
15580 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15795 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15581 |
echo "configure:15582: checking for $ac_word" >&5 |
15796 |
echo "configure:15797: checking for $ac_word" >&5 |
15582 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
15797 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
15583 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15798 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15584 |
else |
15799 |
else |
Lines 15622-15640
Link Here
|
15622 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
15837 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
15623 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
15838 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
15624 |
echo $ac_n "checking for glib-2.0 >= 1.3.7""... $ac_c" 1>&6 |
15839 |
echo $ac_n "checking for glib-2.0 >= 1.3.7""... $ac_c" 1>&6 |
15625 |
echo "configure:15626: checking for glib-2.0 >= 1.3.7" >&5 |
15840 |
echo "configure:15841: checking for glib-2.0 >= 1.3.7" >&5 |
15626 |
|
15841 |
|
15627 |
if $PKG_CONFIG --exists "glib-2.0 >= 1.3.7" ; then |
15842 |
if $PKG_CONFIG --exists "glib-2.0 >= 1.3.7" ; then |
15628 |
echo "$ac_t""yes" 1>&6 |
15843 |
echo "$ac_t""yes" 1>&6 |
15629 |
succeeded=yes |
15844 |
succeeded=yes |
15630 |
|
15845 |
|
15631 |
echo $ac_n "checking GLIB_CFLAGS""... $ac_c" 1>&6 |
15846 |
echo $ac_n "checking GLIB_CFLAGS""... $ac_c" 1>&6 |
15632 |
echo "configure:15633: checking GLIB_CFLAGS" >&5 |
15847 |
echo "configure:15848: checking GLIB_CFLAGS" >&5 |
15633 |
GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 1.3.7"` |
15848 |
GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 1.3.7"` |
15634 |
echo "$ac_t""$GLIB_CFLAGS" 1>&6 |
15849 |
echo "$ac_t""$GLIB_CFLAGS" 1>&6 |
15635 |
|
15850 |
|
15636 |
echo $ac_n "checking GLIB_LIBS""... $ac_c" 1>&6 |
15851 |
echo $ac_n "checking GLIB_LIBS""... $ac_c" 1>&6 |
15637 |
echo "configure:15638: checking GLIB_LIBS" >&5 |
15852 |
echo "configure:15853: checking GLIB_LIBS" >&5 |
15638 |
GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 1.3.7"` |
15853 |
GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 1.3.7"` |
15639 |
echo "$ac_t""$GLIB_LIBS" 1>&6 |
15854 |
echo "$ac_t""$GLIB_LIBS" 1>&6 |
15640 |
else |
15855 |
else |
Lines 15716-15722
Link Here
|
15716 |
# Extract the first word of "glib-config", so it can be a program name with args. |
15931 |
# Extract the first word of "glib-config", so it can be a program name with args. |
15717 |
set dummy glib-config; ac_word=$2 |
15932 |
set dummy glib-config; ac_word=$2 |
15718 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15933 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
15719 |
echo "configure:15720: checking for $ac_word" >&5 |
15934 |
echo "configure:15935: checking for $ac_word" >&5 |
15720 |
if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then |
15935 |
if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then |
15721 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15936 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15722 |
else |
15937 |
else |
Lines 15751-15757
Link Here
|
15751 |
|
15966 |
|
15752 |
min_glib_version=${GLIB_VERSION} |
15967 |
min_glib_version=${GLIB_VERSION} |
15753 |
echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 |
15968 |
echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 |
15754 |
echo "configure:15755: checking for GLIB - version >= $min_glib_version" >&5 |
15969 |
echo "configure:15970: checking for GLIB - version >= $min_glib_version" >&5 |
15755 |
no_glib="" |
15970 |
no_glib="" |
15756 |
if test "$GLIB_CONFIG" = "no" ; then |
15971 |
if test "$GLIB_CONFIG" = "no" ; then |
15757 |
no_glib=yes |
15972 |
no_glib=yes |
Lines 15774-15780
Link Here
|
15774 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15989 |
echo $ac_n "cross compiling; assumed OK... $ac_c" |
15775 |
else |
15990 |
else |
15776 |
cat > conftest.$ac_ext <<EOF |
15991 |
cat > conftest.$ac_ext <<EOF |
15777 |
#line 15778 "configure" |
15992 |
#line 15993 "configure" |
15778 |
#include "confdefs.h" |
15993 |
#include "confdefs.h" |
15779 |
|
15994 |
|
15780 |
#include <glib.h> |
15995 |
#include <glib.h> |
Lines 15850-15856
Link Here
|
15850 |
} |
16065 |
} |
15851 |
|
16066 |
|
15852 |
EOF |
16067 |
EOF |
15853 |
if { (eval echo configure:15854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
16068 |
if { (eval echo configure:16069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
15854 |
then |
16069 |
then |
15855 |
: |
16070 |
: |
15856 |
else |
16071 |
else |
Lines 15884-15890
Link Here
|
15884 |
CFLAGS="$CFLAGS $GLIB_CFLAGS" |
16099 |
CFLAGS="$CFLAGS $GLIB_CFLAGS" |
15885 |
LIBS="$LIBS $GLIB_LIBS" |
16100 |
LIBS="$LIBS $GLIB_LIBS" |
15886 |
cat > conftest.$ac_ext <<EOF |
16101 |
cat > conftest.$ac_ext <<EOF |
15887 |
#line 15888 "configure" |
16102 |
#line 16103 "configure" |
15888 |
#include "confdefs.h" |
16103 |
#include "confdefs.h" |
15889 |
|
16104 |
|
15890 |
#include <glib.h> |
16105 |
#include <glib.h> |
Lines 15894-15900
Link Here
|
15894 |
return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); |
16109 |
return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); |
15895 |
; return 0; } |
16110 |
; return 0; } |
15896 |
EOF |
16111 |
EOF |
15897 |
if { (eval echo configure:15898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16112 |
if { (eval echo configure:16113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15898 |
rm -rf conftest* |
16113 |
rm -rf conftest* |
15899 |
echo "*** The test program compiled, but did not run. This usually means" |
16114 |
echo "*** The test program compiled, but did not run. This usually means" |
15900 |
echo "*** that the run-time linker is not finding GLIB or finding the wrong" |
16115 |
echo "*** that the run-time linker is not finding GLIB or finding the wrong" |
Lines 15969-15987
Link Here
|
15969 |
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works |
16184 |
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works |
15970 |
# for constant arguments. Useless! |
16185 |
# for constant arguments. Useless! |
15971 |
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 |
16186 |
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 |
15972 |
echo "configure:15973: checking for working alloca.h" >&5 |
16187 |
echo "configure:16188: checking for working alloca.h" >&5 |
15973 |
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then |
16188 |
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then |
15974 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16189 |
echo $ac_n "(cached) $ac_c" 1>&6 |
15975 |
else |
16190 |
else |
15976 |
cat > conftest.$ac_ext <<EOF |
16191 |
cat > conftest.$ac_ext <<EOF |
15977 |
#line 15978 "configure" |
16192 |
#line 16193 "configure" |
15978 |
#include "confdefs.h" |
16193 |
#include "confdefs.h" |
15979 |
#include <alloca.h> |
16194 |
#include <alloca.h> |
15980 |
int main() { |
16195 |
int main() { |
15981 |
char *p = alloca(2 * sizeof(int)); |
16196 |
char *p = alloca(2 * sizeof(int)); |
15982 |
; return 0; } |
16197 |
; return 0; } |
15983 |
EOF |
16198 |
EOF |
15984 |
if { (eval echo configure:15985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16199 |
if { (eval echo configure:16200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
15985 |
rm -rf conftest* |
16200 |
rm -rf conftest* |
15986 |
ac_cv_header_alloca_h=yes |
16201 |
ac_cv_header_alloca_h=yes |
15987 |
else |
16202 |
else |
Lines 16002-16013
Link Here
|
16002 |
fi |
16217 |
fi |
16003 |
|
16218 |
|
16004 |
echo $ac_n "checking for alloca""... $ac_c" 1>&6 |
16219 |
echo $ac_n "checking for alloca""... $ac_c" 1>&6 |
16005 |
echo "configure:16006: checking for alloca" >&5 |
16220 |
echo "configure:16221: checking for alloca" >&5 |
16006 |
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then |
16221 |
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then |
16007 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16222 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16008 |
else |
16223 |
else |
16009 |
cat > conftest.$ac_ext <<EOF |
16224 |
cat > conftest.$ac_ext <<EOF |
16010 |
#line 16011 "configure" |
16225 |
#line 16226 "configure" |
16011 |
#include "confdefs.h" |
16226 |
#include "confdefs.h" |
16012 |
|
16227 |
|
16013 |
#ifdef __GNUC__ |
16228 |
#ifdef __GNUC__ |
Lines 16035-16041
Link Here
|
16035 |
char *p = (char *) alloca(1); |
16250 |
char *p = (char *) alloca(1); |
16036 |
; return 0; } |
16251 |
; return 0; } |
16037 |
EOF |
16252 |
EOF |
16038 |
if { (eval echo configure:16039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16253 |
if { (eval echo configure:16254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16039 |
rm -rf conftest* |
16254 |
rm -rf conftest* |
16040 |
ac_cv_func_alloca_works=yes |
16255 |
ac_cv_func_alloca_works=yes |
16041 |
else |
16256 |
else |
Lines 16067-16078
Link Here
|
16067 |
|
16282 |
|
16068 |
|
16283 |
|
16069 |
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 |
16284 |
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 |
16070 |
echo "configure:16071: checking whether alloca needs Cray hooks" >&5 |
16285 |
echo "configure:16286: checking whether alloca needs Cray hooks" >&5 |
16071 |
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then |
16286 |
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then |
16072 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16287 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16073 |
else |
16288 |
else |
16074 |
cat > conftest.$ac_ext <<EOF |
16289 |
cat > conftest.$ac_ext <<EOF |
16075 |
#line 16076 "configure" |
16290 |
#line 16291 "configure" |
16076 |
#include "confdefs.h" |
16291 |
#include "confdefs.h" |
16077 |
#if defined(CRAY) && ! defined(CRAY2) |
16292 |
#if defined(CRAY) && ! defined(CRAY2) |
16078 |
webecray |
16293 |
webecray |
Lines 16097-16108
Link Here
|
16097 |
if test $ac_cv_os_cray = yes; then |
16312 |
if test $ac_cv_os_cray = yes; then |
16098 |
for ac_func in _getb67 GETB67 getb67; do |
16313 |
for ac_func in _getb67 GETB67 getb67; do |
16099 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
16314 |
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 |
16100 |
echo "configure:16101: checking for $ac_func" >&5 |
16315 |
echo "configure:16316: checking for $ac_func" >&5 |
16101 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
16316 |
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then |
16102 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16317 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16103 |
else |
16318 |
else |
16104 |
cat > conftest.$ac_ext <<EOF |
16319 |
cat > conftest.$ac_ext <<EOF |
16105 |
#line 16106 "configure" |
16320 |
#line 16321 "configure" |
16106 |
#include "confdefs.h" |
16321 |
#include "confdefs.h" |
16107 |
/* System header to define __stub macros and hopefully few prototypes, |
16322 |
/* System header to define __stub macros and hopefully few prototypes, |
16108 |
which can conflict with char $ac_func(); below. */ |
16323 |
which can conflict with char $ac_func(); below. */ |
Lines 16125-16131
Link Here
|
16125 |
|
16340 |
|
16126 |
; return 0; } |
16341 |
; return 0; } |
16127 |
EOF |
16342 |
EOF |
16128 |
if { (eval echo configure:16129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16343 |
if { (eval echo configure:16344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then |
16129 |
rm -rf conftest* |
16344 |
rm -rf conftest* |
16130 |
eval "ac_cv_func_$ac_func=yes" |
16345 |
eval "ac_cv_func_$ac_func=yes" |
16131 |
else |
16346 |
else |
Lines 16152-16158
Link Here
|
16152 |
fi |
16367 |
fi |
16153 |
|
16368 |
|
16154 |
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 |
16369 |
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 |
16155 |
echo "configure:16156: checking stack direction for C alloca" >&5 |
16370 |
echo "configure:16371: checking stack direction for C alloca" >&5 |
16156 |
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then |
16371 |
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then |
16157 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16372 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16158 |
else |
16373 |
else |
Lines 16160-16166
Link Here
|
16160 |
ac_cv_c_stack_direction=0 |
16375 |
ac_cv_c_stack_direction=0 |
16161 |
else |
16376 |
else |
16162 |
cat > conftest.$ac_ext <<EOF |
16377 |
cat > conftest.$ac_ext <<EOF |
16163 |
#line 16164 "configure" |
16378 |
#line 16379 "configure" |
16164 |
#include "confdefs.h" |
16379 |
#include "confdefs.h" |
16165 |
find_stack_direction () |
16380 |
find_stack_direction () |
16166 |
{ |
16381 |
{ |
Lines 16179-16185
Link Here
|
16179 |
exit (find_stack_direction() < 0); |
16394 |
exit (find_stack_direction() < 0); |
16180 |
} |
16395 |
} |
16181 |
EOF |
16396 |
EOF |
16182 |
if { (eval echo configure:16183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
16397 |
if { (eval echo configure:16398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null |
16183 |
then |
16398 |
then |
16184 |
ac_cv_c_stack_direction=1 |
16399 |
ac_cv_c_stack_direction=1 |
16185 |
else |
16400 |
else |
Lines 16222-16228
Link Here
|
16222 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
16437 |
# Extract the first word of "pkg-config", so it can be a program name with args. |
16223 |
set dummy pkg-config; ac_word=$2 |
16438 |
set dummy pkg-config; ac_word=$2 |
16224 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
16439 |
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 |
16225 |
echo "configure:16226: checking for $ac_word" >&5 |
16440 |
echo "configure:16441: checking for $ac_word" >&5 |
16226 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
16441 |
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then |
16227 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16442 |
echo $ac_n "(cached) $ac_c" 1>&6 |
16228 |
else |
16443 |
else |
Lines 16266-16284
Link Here
|
16266 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
16481 |
PKG_CONFIG_MIN_VERSION=0.9.0 |
16267 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
16482 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
16268 |
echo $ac_n "checking for cairo >= $CAIRO_VERSION""... $ac_c" 1>&6 |
16483 |
echo $ac_n "checking for cairo >= $CAIRO_VERSION""... $ac_c" 1>&6 |
16269 |
echo "configure:16270: checking for cairo >= $CAIRO_VERSION" >&5 |
16484 |
echo "configure:16485: checking for cairo >= $CAIRO_VERSION" >&5 |
16270 |
|
16485 |
|
16271 |
if $PKG_CONFIG --exists "cairo >= $CAIRO_VERSION" ; then |
16486 |
if $PKG_CONFIG --exists "cairo >= $CAIRO_VERSION" ; then |
16272 |
echo "$ac_t""yes" 1>&6 |
16487 |
echo "$ac_t""yes" 1>&6 |
16273 |
succeeded=yes |
16488 |
succeeded=yes |
16274 |
|
16489 |
|
16275 |
echo $ac_n "checking CAIRO_CFLAGS""... $ac_c" 1>&6 |
16490 |
echo $ac_n "checking CAIRO_CFLAGS""... $ac_c" 1>&6 |
16276 |
echo "configure:16277: checking CAIRO_CFLAGS" >&5 |
16491 |
echo "configure:16492: checking CAIRO_CFLAGS" >&5 |
16277 |
CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= $CAIRO_VERSION"` |
16492 |
CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= $CAIRO_VERSION"` |
16278 |
echo "$ac_t""$CAIRO_CFLAGS" 1>&6 |
16493 |
echo "$ac_t""$CAIRO_CFLAGS" 1>&6 |
16279 |
|
16494 |
|
16280 |
echo $ac_n "checking CAIRO_LIBS""... $ac_c" 1>&6 |
16495 |
echo $ac_n "checking CAIRO_LIBS""... $ac_c" 1>&6 |
16281 |
echo "configure:16282: checking CAIRO_LIBS" >&5 |
16496 |
echo "configure:16497: checking CAIRO_LIBS" >&5 |
16282 |
CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= $CAIRO_VERSION"` |
16497 |
CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= $CAIRO_VERSION"` |
16283 |
echo "$ac_t""$CAIRO_LIBS" 1>&6 |
16498 |
echo "$ac_t""$CAIRO_LIBS" 1>&6 |
16284 |
else |
16499 |
else |
Lines 16512-16525
Link Here
|
16512 |
cross_compiling=$ac_cv_prog_cc_cross |
16727 |
cross_compiling=$ac_cv_prog_cc_cross |
16513 |
|
16728 |
|
16514 |
cat > conftest.$ac_ext <<EOF |
16729 |
cat > conftest.$ac_ext <<EOF |
16515 |
#line 16516 "configure" |
16730 |
#line 16731 "configure" |
16516 |
#include "confdefs.h" |
16731 |
#include "confdefs.h" |
16517 |
#include <gmodule.h> |
16732 |
#include <gmodule.h> |
16518 |
int main() { |
16733 |
int main() { |
16519 |
int x = 1; x++; |
16734 |
int x = 1; x++; |
16520 |
; return 0; } |
16735 |
; return 0; } |
16521 |
EOF |
16736 |
EOF |
16522 |
if { (eval echo configure:16523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
16737 |
if { (eval echo configure:16738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
16523 |
: |
16738 |
: |
16524 |
else |
16739 |
else |
16525 |
echo "configure: failed program was:" >&5 |
16740 |
echo "configure: failed program was:" >&5 |
Lines 16798-16804
Link Here
|
16798 |
_SAVE_CFLAGS=$CFLAGS |
17013 |
_SAVE_CFLAGS=$CFLAGS |
16799 |
CFLAGS="$CFLAGS $XCFLAGS" |
17014 |
CFLAGS="$CFLAGS $XCFLAGS" |
16800 |
cat > conftest.$ac_ext <<EOF |
17015 |
cat > conftest.$ac_ext <<EOF |
16801 |
#line 16802 "configure" |
17016 |
#line 17017 "configure" |
16802 |
#include "confdefs.h" |
17017 |
#include "confdefs.h" |
16803 |
|
17018 |
|
16804 |
#include <stdio.h> |
17019 |
#include <stdio.h> |
Lines 16814-16820
Link Here
|
16814 |
|
17029 |
|
16815 |
; return 0; } |
17030 |
; return 0; } |
16816 |
EOF |
17031 |
EOF |
16817 |
if { (eval echo configure:16818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
17032 |
if { (eval echo configure:17033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then |
16818 |
: |
17033 |
: |
16819 |
else |
17034 |
else |
16820 |
echo "configure: failed program was:" >&5 |
17035 |
echo "configure: failed program was:" >&5 |
Lines 17024-17057
Link Here
|
17024 |
# Transform confdefs.h into DEFS. |
17239 |
# Transform confdefs.h into DEFS. |
17025 |
# Protect against shell expansion while executing Makefile rules. |
17240 |
# Protect against shell expansion while executing Makefile rules. |
17026 |
# Protect against Makefile macro expansion. |
17241 |
# Protect against Makefile macro expansion. |
17027 |
# |
17242 |
cat > conftest.defs <<\EOF |
17028 |
# If the first sed substitution is executed (which looks for macros that |
17243 |
s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g |
17029 |
# take arguments), then we branch to the quote section. Otherwise, |
17244 |
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g |
17030 |
# look for a macro that doesn't take arguments. |
17245 |
s%\[%\\&%g |
17031 |
cat >confdef2opt.sed <<\_ACEOF |
17246 |
s%\]%\\&%g |
17032 |
t clear |
17247 |
s%\$%$$%g |
17033 |
: clear |
17248 |
EOF |
17034 |
s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g |
17249 |
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` |
17035 |
t quote |
17250 |
rm -f conftest.defs |
17036 |
s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g |
|
|
17037 |
t quote |
17038 |
d |
17039 |
: quote |
17040 |
s,[ `~#$^&*(){}\\|;'"<>?],\\&,g |
17041 |
s,\[,\\&,g |
17042 |
s,\],\\&,g |
17043 |
s,\$,$$,g |
17044 |
p |
17045 |
_ACEOF |
17046 |
# We use echo to avoid assuming a particular line-breaking character. |
17047 |
# The extra dot is to prevent the shell from consuming trailing |
17048 |
# line-breaks from the sub-command output. A line-break within |
17049 |
# single-quotes doesn't work because, if this script is created in a |
17050 |
# platform that uses two characters for line-breaks (e.g., DOS), tr |
17051 |
# would break. |
17052 |
ac_LF_and_DOT=`echo; echo .` |
17053 |
DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` |
17054 |
rm -f confdef2opt.sed |
17055 |
|
17251 |
|
17056 |
MOZ_DEFINES=$DEFS |
17252 |
MOZ_DEFINES=$DEFS |
17057 |
|
17253 |
|
Lines 17315-17320
Link Here
|
17315 |
s%@_PANGOCHK_CFLAGS@%$_PANGOCHK_CFLAGS%g |
17511 |
s%@_PANGOCHK_CFLAGS@%$_PANGOCHK_CFLAGS%g |
17316 |
s%@_PANGOCHK_LIBS@%$_PANGOCHK_LIBS%g |
17512 |
s%@_PANGOCHK_LIBS@%$_PANGOCHK_LIBS%g |
17317 |
s%@MOZ_ENABLE_XFT@%$MOZ_ENABLE_XFT%g |
17513 |
s%@MOZ_ENABLE_XFT@%$MOZ_ENABLE_XFT%g |
|
|
17514 |
s%@MOZ_PANGO_CFLAGS@%$MOZ_PANGO_CFLAGS%g |
17515 |
s%@MOZ_PANGO_LIBS@%$MOZ_PANGO_LIBS%g |
17516 |
s%@MOZ_ENABLE_PANGO@%$MOZ_ENABLE_PANGO%g |
17318 |
s%@MOZ_ENABLE_COREXFONTS@%$MOZ_ENABLE_COREXFONTS%g |
17517 |
s%@MOZ_ENABLE_COREXFONTS@%$MOZ_ENABLE_COREXFONTS%g |
17319 |
s%@MOZ_GNOMEVFS_CFLAGS@%$MOZ_GNOMEVFS_CFLAGS%g |
17518 |
s%@MOZ_GNOMEVFS_CFLAGS@%$MOZ_GNOMEVFS_CFLAGS%g |
17320 |
s%@MOZ_GNOMEVFS_LIBS@%$MOZ_GNOMEVFS_LIBS%g |
17519 |
s%@MOZ_GNOMEVFS_LIBS@%$MOZ_GNOMEVFS_LIBS%g |
Lines 17323-17328
Link Here
|
17323 |
s%@MOZ_LIBGNOME_CFLAGS@%$MOZ_LIBGNOME_CFLAGS%g |
17522 |
s%@MOZ_LIBGNOME_CFLAGS@%$MOZ_LIBGNOME_CFLAGS%g |
17324 |
s%@MOZ_LIBGNOME_LIBS@%$MOZ_LIBGNOME_LIBS%g |
17523 |
s%@MOZ_LIBGNOME_LIBS@%$MOZ_LIBGNOME_LIBS%g |
17325 |
s%@MOZ_ENABLE_GNOME_COMPONENT@%$MOZ_ENABLE_GNOME_COMPONENT%g |
17524 |
s%@MOZ_ENABLE_GNOME_COMPONENT@%$MOZ_ENABLE_GNOME_COMPONENT%g |
|
|
17525 |
s%@MOZ_GNOMEUI_CFLAGS@%$MOZ_GNOMEUI_CFLAGS%g |
17526 |
s%@MOZ_GNOMEUI_LIBS@%$MOZ_GNOMEUI_LIBS%g |
17527 |
s%@MOZ_ENABLE_GNOMEUI@%$MOZ_ENABLE_GNOMEUI%g |
17326 |
s%@MOZ_EXTRA_X11CONVERTERS@%$MOZ_EXTRA_X11CONVERTERS%g |
17528 |
s%@MOZ_EXTRA_X11CONVERTERS@%$MOZ_EXTRA_X11CONVERTERS%g |
17327 |
s%@MOZ_PLAINTEXT_EDITOR_ONLY@%$MOZ_PLAINTEXT_EDITOR_ONLY%g |
17529 |
s%@MOZ_PLAINTEXT_EDITOR_ONLY@%$MOZ_PLAINTEXT_EDITOR_ONLY%g |
17328 |
s%@MOZ_COMPOSER@%$MOZ_COMPOSER%g |
17530 |
s%@MOZ_COMPOSER@%$MOZ_COMPOSER%g |
Lines 17895-17901
Link Here
|
17895 |
fi |
18097 |
fi |
17896 |
fi |
18098 |
fi |
17897 |
|
18099 |
|
17898 |
cd $ac_popdir |
18100 |
cd "$ac_popdir" |
17899 |
done |
18101 |
done |
17900 |
fi |
18102 |
fi |
17901 |
|
18103 |
|
Lines 18032-18038
Link Here
|
18032 |
fi |
18234 |
fi |
18033 |
fi |
18235 |
fi |
18034 |
|
18236 |
|
18035 |
cd $ac_popdir |
18237 |
cd "$ac_popdir" |
18036 |
done |
18238 |
done |
18037 |
fi |
18239 |
fi |
18038 |
|
18240 |
|
18039 |
-- debian/mozilla-firefoxrc |
18241 |
++ debian/mozilla-firefoxrc |
Line 0
Link Here
|
0 |
-- debian/presubj |
1 |
# which /dev/dsp wrapper to use |
|
|
2 |
FIREFOX_DSP="auto" |
|
|
3 |
++ debian/presubj |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.links |
1 |
*** Please submit non packaging issue (e.g. feature requests) bugs to |
|
|
2 |
the Debian BTS and the upstream bugzilla |
3 |
(http://bugzilla.mozilla.org/buglist.cgi?product=Firefox) and put a |
4 |
reference to the bugzilla bug in the Debian bug report, to ease bug |
5 |
triage for the maintainers. Thank you. *** |
6 |
|
7 |
If your Firefox installation pre-dates 1.0, you might have had problems |
8 |
Firefox not really cleanly supporting upgrade from one release to another. |
9 |
Please try moving around your ~/.mozilla/firefox directory to see if it |
10 |
helps with your issue. |
11 |
|
12 |
Firefox requires the loopback interface (lo) to be up and unfiltered |
13 |
to accept keyboard input and function correctly. Please make sure this |
14 |
is the case before filing any bugs. |
|
|
15 |
++ debian/mozilla-firefox.links |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dom-inspector.install |
1 |
/usr/lib/mozilla-firefox/firefox /usr/bin/mozilla-firefox |
|
|
2 |
/usr/lib/mozilla-firefox/firefox /usr/bin/firefox |
3 |
/usr/share/man/man1/mozilla-firefox.1.gz /usr/share/man/man1/firefox.1.gz |
4 |
/var/lib/mozilla-firefox/chrome/overlayinfo /usr/lib/mozilla-firefox/chrome/overlayinfo |
5 |
/var/lib/mozilla-firefox/chrome/chrome.rdf /usr/lib/mozilla-firefox/chrome/chrome.rdf |
6 |
/var/lib/mozilla-firefox/extensions/installed-extensions.txt /usr/lib/mozilla-firefox/extensions/installed-extensions-processed.txt |
7 |
/var/lib/mozilla-firefox/extensions/Extensions.rdf /usr/lib/mozilla-firefox/extensions/Extensions.rdf |
8 |
/var/lib/mozilla-firefox/defaults.ini /usr/lib/mozilla-firefox/defaults.ini |
9 |
/var/lib/mozilla-firefox/components.ini /usr/lib/mozilla-firefox/components.ini |
10 |
/var/lib/mozilla-firefox/components/xpti.dat /usr/lib/mozilla-firefox/components/xpti.dat |
11 |
/var/lib/mozilla-firefox/components/compreg.dat /usr/lib/mozilla-firefox/components/compreg.dat |
12 |
/etc/mozilla-firefox/pref /usr/lib/mozilla-firefox/defaults/syspref |
13 |
/etc/mozilla-firefox/profile /usr/lib/mozilla-firefox/defaults/profile |
|
|
14 |
++ debian/mozilla-firefox-dom-inspector.install |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.png.uu |
1 |
debian/tmp/usr/lib/mozilla-firefox/components/libinspector.so usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/components |
|
|
2 |
debian/tmp/usr/lib/mozilla-firefox/components/inspector.xpt usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/components |
3 |
debian/tmp/usr/lib/mozilla-firefox/chrome/inspector.jar usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/chrome |
4 |
debian/tmp/usr/lib/mozilla-firefox/res/inspector/viewer-registry.rdf usr/lib/mozilla-firefox/res/inspector |
5 |
debian/tmp/usr/lib/mozilla-firefox/res/inspector/search-registry.rdf usr/lib/mozilla-firefox/res/inspector |
6 |
debian/inspector/install.rdf usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9} |
7 |
debian/inspector/Uninstall usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/uninstall |
8 |
debian/inspector/00dom-inspector var/lib/mozilla-firefox/extensions.d |
9 |
debian/tmp/usr/lib/mozilla-firefox/defaults/pref/inspector.js usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9}/defaults/preferences |
|
|
10 |
++ debian/mozilla-firefox.png.uu |
Line 0
Link Here
|
0 |
-- debian/debsearch.gif.uu |
1 |
begin 644 mozilla-firefox.png |
|
|
2 |
MB5!.1PT*&@H````-24A$4@```$````!`"`8```"J:7'>````!F)+1T0`_P#_ |
3 |
M`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`8=!!(VV`_# |
4 |
M[0``&*Y)1$%4>-KMFWF,7==]WS_GW.7M\]ZLG(WD<+B9I$QM=F18LFI;L1"G |
5 |
M-EHD7H`T5ERT!EH@2(.@@.T4!5H!7=(B0`H42%P;@1T[:9JXDMO85BS9KA?) |
6 |
MUF)J,2DN0W)(:3B<?7_K/5O_./<M0U&VO,AQVKS!#^>^B_OFWN_W]_TMY]Q[ |
7 |
MX>\^_W]_Q-_$29]XXNSPA0O+<F.C3K.IR&8CRN4<DY,5)B;*6V]\XW3S_QD" |
8 |
M'G[XJ>PW'I_=(S+QL:IQO_K,E4UN/3[ZCVJ6W*81&$`*03&`4@@K2]O?"!-] |
9 |
MZ9VWC28FT7\Z4(@N?>0C]RW_K2+@D4>>S7S^H1>FDCC\M7,KS;O=:.6^>1EC |
10 |
M!\I$(V6B?)8@"I"A1`0!A"$N##"`;BF2E2W$R@;%S1TF6O6%BE%?S=:;GWS_ |
11 |
M>T]<^M5?><O"SRT!G_SDU^)GSR[>/;?=^MALPOUS<8[LOA&*I2R#I2SE0H9" |
12 |
M+B:;B\C$$4$F0D0!+@A0#IJ)H=94U.H)F_46V[46C4:"6MDBN[C&='7GI6/# |
13 |
M^4_<,E7YD]_^K5^:_[DAX#O?.1L\^O69>T^]M/Z[9[;5+ZZ5^RB.5!CM+S#8 |
14 |
MEZ4OGR&,0\(H(,C$1$-E@BA$2`D"G`.M#4E3D;0422LA:2J:346UGK!1:[%5 |
15 |
M;]&L-0F7-IANU*^\=:+PJ0^^Y\2?W'WWB6M_HP0\]/!34__M+Y_[R)6F_MVY |
16 |
M7([RGG[&!XOT]^7(9B*B."2,>BP3$O7W$10R2"D10F`=&&-I-1*:M29),^F0 |
17 |
MT6HF)"U%LYFP56NQ64MH-9ID5C:Y4YK9$Z-]O_$'__F#C_^XUQ_\).!_[_>_ |
18 |
M?-]G'SWWA:?J^CWU_CXF1RM,]A<H9"/"0!($DD!VQS"0!$(0.$=8R!)(@10" |
19 |
MB4`(D%*@&BU,2V.UP2@_6F5PVA`80\89,):ZE%Q-3/_RRO:'[SKY'GWQS)>^ |
20 |
M_>-@D#\N^'_S[Q[^MY]]_.*C3S;,OOQ`D?V#1<K9$.$<6(NPZ>@<PCID.@KG |
21 |
MMP,A"($`1X`E!&AII#8(TV/:]GRW!,91$([^`*(PX&H4RV]OU![\!Q_^Q-<_ |
22 |
M][EO[ON9$/`;_^Q3#_[18R_^JPN)E4/E'"/%+(%P8"S.6)QQ.&/!.IRUX/RV |
23 |
M<"DA`B0."03.R]!_=Z`T:`O:^-%XCZ--NNU)"9VE)`59`<U\+GCTVN8[/O._ |
24 |
MGOWRQ_[UY_>_K@3\_??]_H-?>.[*Q]>B.!@L92EF0@_26)SUAK4XEY+0L]^E |
25 |
M"@@*640;M'`$PA$`<29$2@'&2[X#O+UM/"'.>'*$->1P9'&H*.*;2]437SMU |
26 |
MZ4L/_L?_O?]U(>"W/_8_'GQRK?'Q:B875O(9,E)@M<4:B[5^="8=M<4)`<4< |
27 |
M3@BL32\\$R%R&?\/G4.F"@AP"&MQB>X`=MJDBK+^M\;@M.V2D:HB=H[8.4PV |
28 |
MQPMCXR>^=6GC2W_V9Z\M',+7"OZ__N&C#_ZG[Z]_?./0_K#XTCR!<!ZX,3@3 |
29 |
M8+7!!8$'&F61AR8(*D5D'"+6MW$;VY#/0E\!B\,YBVLG/P<."`)):;1":W8) |
30 |
MIS1H[4E(P\&UPT![,D4@*;[Q`'*XG_KR!CM-16W/((]OUDZ,/[_XR+ESL^\^ |
31 |
M=FSZY9^X"GSZL]]XQZ>^M_B'YXY.Q1ECB!=6D5(@`TDP/N0;FD3YC"XE,I\E |
32 |
M.C!.$$FD$`3Y+$%_B;!<0$8A,JV_HJ<.6P=;"QMLSJ^1-!)THM'*8)3"*(U6 |
33 |
M&J.,M[0RF)9";59Q4M`X/P>;.X1OV$>CD.7*<FVX^MQ53GWW?W[E)PJ!LV<O |
34 |
M37_YR;D_/C4TE!%Q@$@2K#%>Y@-EQ%VWP"W3<&@26\AZ192+&,!8AW$.`]C` |
35 |
MM[K&.;3U9JQ#68M*CXM+.:PR6*W!.:SV9=!I@Y""N)('UPX-OU]O5JD^?1ZU |
36 |
MM(Y9V227)(0"MJ=&^?JV_1>_\]$_O^<G(N`S?_[\/WE,1U.F7$`8AYU?P>9S |
37 |
MV%(.=_(0QCEL7P&#P&SL8#,QC`][\+WF'-I:M&F#MQZ\<2ACT<8B<Q&%T0K9 |
38 |
M@1(R$_H>0!L*XP/LO>\VAF\_Z%-'2HHS72(P!A%'A(4LQ5`B!%R>W"-?6&E\ |
39 |
MYK&O?F_RQ\H!?_!?OCC]J>\N/+!Q9#^DR<V^\\W8V/?O1@HO14".#T&Y`*4\ |
40 |
M)@R0SJ*M1`J;2CW]DQ:LW^,$6.'+H3.6I-:DL=U@<VX5E2B,\E(780@"DNTZ |
41 |
MIIGL!MZC!F$-S6=G"`Y-D!&29B[BJ3`W_=!?SSP`_/L?20'GSU^,OO&]^7\^ |
42 |
M4RA.$DA?VHSU'5KJ1?V5%VC]T:/HC1HF"K^PN1EO;\;SN&;5Q'04H8TF, |
43 |
M11E+=;/&XKEK+)V?9VMQP\>[-ABM,5JS=O8EEIZ9(1XHT7=X@GBPY$/#F&Z_ |
44 |
M82QZ91.[4T=&$1E`6D=UN,*W7][YI__A]QZ>^)$(>/*IEVZ;M_)WDH'2KCIL |
45 |
MM<48B[$6>]=A;#&+*69W@?7;-C4?Y[HC^=32X[=7=UB]LD2CUO03H6:"5J:; |
46 |
M!+5/?$FM!5(P\*9#9$8JB##`:4-F<HCL@5%$&!`,ELG]PG%`$%A'Y(!`<C'* |
47 |
M'C@WN_Z/+U^>%:\Y!)XYO?@/3]M(@DMKK@5I<=)ZV4N!*68(?NT>C`!MK"]I |
48 |
M0B*P""$1.`06G$"XE&OA<$BL<U@AV+J^CFTIG$I[_T2G6=]_-\JK(#M2QDF) |
49 |
MM9;^-QTAW-//XF.G*-UV"#DV0'9M&YN-,4)BFQJL)<*1&$MKN,+5U:7?//7L |
50 |
MW*>!:S]4`8\^^N3^BVO-#S=+^;0=M9TV%).6(&70QG:E[79+7)O4XSTJ:'O> |
51 |
MJ\#O<T&`4H8DT2BE4<JDHR>A383,9SQISF&M(S,VP-#]=Y+9-P(+&X3/OXS< |
52 |
M:7:O5UNDL03.@A"<:;!G=:/^H=<4`C.7UMYZ;E.-(T77^VU+9V9M$I1.I6XL |
53 |
MNM%"+:VCM$7MU%&+ZZAZJRO[-.-WR-"6>*R"BT)L(#SX1*7@-3K-`48;"`), |
54 |
MFENL\U4ES.>P3\Y@S\SYUCN*.M6A?;V!GVNSD<GRS-G5=Y\]>[[P`PFX>/%B |
55 |
M-+]<_?4E&W1!I]U79X+20X#1QA-0K:,OS:&-02^NDERZAII?0<TM>8]:BS+& |
56 |
MDZ`MRAH2:[%12.'P&'W']Q&6\UWPJ5D@.SZ([,OWE%6+M0X+V-4=G)2XN]^` |
57 |
M"V6/P]+2:"S"6%P^9GZK];8K5]:F?F`.J%8;>V<7JF]/XB@%+D`*$!:D`2%` |
58 |
M:]A>Q0[T8;(QHM%$K&_ZI9U6XK-R*"$(8+,*C19.9G%"8ITA%`+C!(%PF/9Z |
59 |
M0!A0.#2!BT.2K;I/:OD,4:5`V%?`!;)37:QU?NZ1"7'W'O-S!=TMBV@_9W#: |
60 |
M=@DPCN<6ZFAC'P`^^JH$+"[N'+ZR7,L3]WDF>X'+M&>]^C+4&[BY"),N;8DX |
61 |
MA#A$*`.1Q)D`%_IY@EO9Q`6#N$R(=0(K!8$3&`&!$'YF*$"$DMST&#DZ<Z6. |
62 |
MW.VNTIIN:X.5TA/0:.%4"ESU*%;YZ3/:L.DD%V?7)F9F9N(C1XXD-R6@7D\. |
63 |
MSJZU8/@&X$*`-7!M'G:JWKO&X)(`$P8($_E%BR@$$T!H04L(#>ZE19S2N`/C |
64 |
M6.$\"<*O!AGA//AVLR3\S,BE#%@'KD-"VEH;Z\$G&GMM&;NVA5U8P24*F\WB |
65 |
M#DU[1:C=JE`R8'ZY5E%*98%7$C`S,Y-_^IFK4YO--(:D`)&2(`QLK,/**LA4 |
66 |
MWD$`@9\1:F/`1/YW48"+0@@DF``7&-BI^V4M*0BMP$B!%*1+8EV>=WU2!;B> |
67 |
M[&^MP6B+5;XGL?4F=G$%M[F-:R4XO8Z5`6YXCR=`]>2N4')MJ2J!_<#I5Q"@ |
68 |
ME,JO;]9/$@C_H]HV)`T8GP"1@;5U2!3MSA!C(?`9ND."#E/3G?5^F\O@*B6L |
69 |
ML81.8(0/@4"`Q!,ATE`0WO=I"+B4!+^8XM+I=Y<`@QWHQRZL8I,U;**P28([ |
70 |
M?18;7\(5^W`CXS@1>#S6L55-[FTV]<F;$J"U9G.KB;/X'VQN0'4+HMB[8WW# |
71 |
MCT9"D(*W/A20?DU`=V(OP$4&P@!7R.&T]5+M[R.0PG,G=JN`5`FB`]YUEM7: |
72 |
MRVQ6^\61-@G&@=T[@;W\D@>?)%X)V]O86@,G(URV",*K<Z>N"ZU6$M\T"89A |
73 |
M.%2K)YAV&<D68'T9KE[V7I=!5_[6=HF0TN>+0&*U1+>]K[4G8&$%M[J!VS.( |
74 |
M/7D8&P9>1&D>\#E`^,[1I6L$/02TYR'.N,YJD]4I"5ICEM>PC49'`58E6*5P |
75 |
MM67<PCQ.!E`>@&R1ZIXAE-+![.RLF)Z>=KL($$),ZG;?KPS$>8AST-CQGI8I |
76 |
M6-L&'?ACI4SC78*46*W1@<:I`!=VS=::!$V%"ZVO!*GW.WFVAX3=!+15D)*@ |
77 |
M?2C8I16_?6D6DRA,DG@"$H55J24)Z`2VU\%I3.$7D%(.6&LE8'81X)PK!%)X |
78 |
M\,I`?0=J6RG@'M"VQ^L=(D2J$.%)$`87R"[X(""0`:ZEL<H02(GM)$(/7K9S |
79 |
M@$M'BU]1-JZSJ.IT=U9J6P;[PO>QU5KJ>855"28=K?:&U;Z"64T8Y0A#V6^M |
80 |
M#5Y!`!`5<I+(&90VT&Q`JYEZ7:9@V^!3$[U$F/2[)\%IB5'"DY#+XLI]N(9" |
81 |
M!B(%WVNNNTSFND1T0L!V5YFMMKBSY[`KJ]A:'=MJ=3QN4OE;[4>,!N?!XPRE |
82 |
MK$!*PO9JW(TA4*N4L\JU-,0&ME=!JZZ7G4A#(04I4H^+&PD1:5V3."$QI2+N |
83 |
M^%%<%&.;"8&4Z>%=`CK-$/B;*ZX]]N8!3X*K-7`OS6&;3;]LIA*LTJGW=4I" |
84 |
MXG-0"ASGG92-Q'-!()M""'NS1FAM<K*T$AH_"_/S``U.IC<W4@6TU2!2-8@> |
85 |
M$E+@G7UA"`>FL'$&UU3(5/J!%#T$=+._0/B;)VTB;`\!;1+FK^,:#5P'N.YX |
86 |
MW&B%U0IKE)>]T_[:<1!$#`SDKPO!JI32W*P,OES(9QC*"ZXI#:4Q#Z:QX9DD |
87 |
M!=_V<I@V/NWOMI>,%%4<^F-:"B=\`V1%&@(=$GISP&X5M.\J]:J`M75LLXE3 |
88 |
M"JLU3JMT`55US(-/S?\C!#%3^\H((;8.'CSX2@5(*76QF)&C_='5:]?-%%$` |
89 |
M?7NA/`&Z#JTZ5.M>^F.#7ATKU_Q)>D&+E(@@@""$,R_"OGTP-.QOATN)$6D[ |
90 |
M#,BE342MA9@<1.:B3AGL5`/;)<&MK?J;)ZT$IY.4`(TU/@>X=L)SINOYU,*H |
91 |
MP(ECPTMA&-I7ZP-T'$?-PP>*ET]=69UR[0L(`XC[O-4V(930-P)6@6K"ZG4/ |
92 |
MVO:`%_X6%RO+?KM>AY-9F+T$(WM@9!0G\$OF:U7$BW.(/>5T%2E-A+TYP#EH |
93 |
M-'&GGX?:#LYXX.W16NW/Y]HQ[WK`>[QC8Z,,CY1D&(;77XV`[2`(SK_UKK'X |
94 |
MH<<6:2D!+DC+D?,>'>GSA"0:%F:@NNX9%S>`I_<[OJ+,S\/B`BPMPG$+@R-> |
95 |
M$:,57#D/VB"T2<M@J@+;0\+\'&QMI(NA&HS&6=,%;MM>W^UY'_\YIO8./-57 |
96 |
MRD?.N1=N2L"A0X?LZ=.GE_?MZW=3>R(N+)IN0^(""%TZ#TCG_9M+/C?T@N\` |
97 |
MQX^DA%1WX.+9[G,9ERY`L9+^!H@#:&GO./P$J$.\=1[8SK8'JY*TKG?+6Q>\ |
98 |
MNZD%83]WOW7O7"83KP=!4'O5]0`AQ'?Z^TOO/GFL?&KFY:4[G0U[DE"[#78^ |
99 |
M#*SR%R1Z8K\-N$-&S[85W8:_5H6F\D2UFJEDT\0:A#W$I^=.$@@R4!Z&0C\L |
100 |
M78'ME9XR=R-XNDH0DO'Q26X].;H31='9*(H:KTI`%$4KN5SNVKWWC)NO?7/I |
101 |
MSO6&]MYWSO<`84J$E?Z"U'8/R-3SR*YGVVJ@APCP(*M5F#T#29L`_,1KXB"4 |
102 |
MAFYHAP44AR`_F.(+86=E=YGK`-_M?1%4>-,=X\\.#Y>C.(Z?/GCPH'O5-<&C |
103 |
M1X_6,IG,]Z>GA]VM)TI+0FD?[[W6WM<WG4[:TX;#JIZQ9SN-5V_I_E8#7CH/ |
104 |
M6RO0J$*SYFUGP^^O[O@P:RD_!4\4*.LMT>!"R%72,F=O2'B])A@<W,<[WKYO |
105 |
MIE0J;4DI+_W05>$P#+]5J93MN^Z;^&XYRRN!M]*1K"^)'0)N8D:_DB"C0#=A |
106 |
M9:Y+BE%=XFI;</X[,'<>FHD_7_N<B?+;]1W?F78\;F\84Y/]W/7FO=<.'=S3 |
107 |
MRF:S3\5QO/-#"8BBZ'H^GW_VEEO&U^]Z<V5=ZINHH'U147^:@75WO*FIFQ"C |
108 |
M=JO%].Q7#5A_&:K;716T5)<(6009DQ;2'NM50<C8Z#3WOVOJR4JEHL(P?*Q7 |
109 |
M_J]*P.'#AUT<QU\>&!@0O_S+^[X],1Z`;KV2A$1#-`GY(Y`=3Y.1[BE)[6WU |
110 |
M@U72SN8=<E)2C/+)KY?P1'>)(/LJ\O??HV@/][_KP%</'1JKYO/Y)Z(H6GK- |
111 |
M]P:C*+I:+!:?/G1H8N.][YW\6BZ;@-GQ)6@7"0[(0;+2TX28W:KH_=[9=Q,B |
112 |
MVMG<:?_L1FD:7/:5X-OGED.0V7<3!1B$R'+\^.$+]]UWX-K`P$`KCN-'#A\^ |
113 |
M[%XS`4>.''&93.:AP<'!ZCWW3,V_[6UC7PR"*KCUE(A6-SG59T%O[59`+\B; |
114 |
M[;,W$F)`9J'O"!2/0/^;(!Q*P=\0`JU>%>R#\#B(@T`&T(!@SYXCUQ]XX-@3 |
115 |
MX^.C8:%0>.3X\>-+/_+S`<>.'5L^<^;,E\;&QG[]?>^K+Z^NUJX___S%<6OK |
116 |
MX')@LMYZVLWN0R\]HWN5_>WR*'-0NLW_#U'P;E$V)93=[;#=/3GR5DB?]ID" |
117 |
MZO3W]YL/?>CVIZ:GQ^/^_OXKV6SVL1_[(:E\/O]8?W__P;U[)][RP`/-K]1J |
118 |
MS?MG9BY,.%=+8S"7GERE@I(W>0+7W?S)W'86-PW0SGO0:7]\9S9XPWR@W14Z |
119 |
M#2X!6JDU@2;%8K_^P`>./7S''?N:HZ.C]7P^_\='CARI_T3/"I\_?WZ@6JU^ |
120 |
M='Y^?N_%BU>;G_C$L_=?OGQFPEJ;DD!ZUUG2?N@-QH!\"GXUE:9Z]<L(AD#N |
121 |
M]PIP/4].N51=G=R@4NL%WP(22J41_?[WW_GPV]]^6$]-3:F!@8%/WW+++?_G |
122 |
MI_*P]-FS9_?L[.Q\[-JU:\-7KLPEG_O<Z?M/GWYFPIA&&GL;*<@0B('#J3K" |
123 |
ME)`&<#G];^8FE^#2#G(:W%!/4M/I\3>";UL3L`P,'%`?_."=7[CKKFF]?_]^ |
124 |
M/3`P\-]OO?761WZJ3XN?.W?NX-;6UF_-S\\/S<W-M_[JK\[?\<033]W:;"ZD |
125 |
M_ZJ1>IU4`5%*0)BJH`J,`@N=+NV5GWY@/`7=:ZJ'A"X!0F38O_^-BQ_XP.W? |
126 |
M/'%BK]V[=Z\9'!S\8JE4^LOIZ6G[4W]<_MRY<P>WM[=_<W%Q<<_\_+QYYIEK |
127 |
MQ:]\Y7OO7%@XW>?<5NK]&"CT@`_3"P[24ZZF'A<W/+(XD(:42`DR/=[7-Q`` |
128 |
M^?PD=]SQIC/O><^1IR<G1W.3DY.J4JD\5"J5OGSPX$'UNKTO\.*++XXTF\U_ |
129 |
MN;R\/';]^G5S[=JR^>I7+]WQW'-/WU:K7<6YY`;OM\.@G2#;TA4]U2/?DS/L |
130 |
M#R#`$8;#3$W=>OV^^TY\Y\2)L>;X^)@9&QNSI5+I+TZ>//G7/Y,7)LZ?/]_? |
131 |
M;#8_L+FY^?<6%A;4RLJ*N'IU53_^^.P=%RZ\>.OV]BS.[?2T&VWORY[V0_1T |
132 |
M<<$-'=V-1,3$\1[&QHXOO.4MQY^X_?;1G>'A`3DZ.AH/#P\O%HO%/SU^_/BI |
133 |
MG^D;([.SL[)>K]];J]5^975U=6!U=56NKZ_K^?DM?>K4]8,S,U>.+RU='=)Z |
134 |
M&=CN*8<_Z-2]QV0(@D'*Y0GV[IV>N?WV?=\_<F2H.C!0CH>&AMS(R(@LE\O? |
135 |
MBN/X+XX=.[;^-_;.T+ESYX9;K=9[:[7:/>OKZ_'Z^KK8VMJRFYM5O;Q<=^?. |
136 |
MK>R[?GWMC1L;*R-;6\LH50,46K=2-3BDC-*PR5`L]C,PL&=K:*C_V3>\861] |
137 |
M__[R5G]_0?;UE:)*I<+@X*"H5"I7LMGLYW.YW/=?2[)[W=\:FYF9$4JI2:74 |
138 |
M+S4:C;=L;FYFM[:V],[.3E"KU6RKE=AZ/;'-IF)[.REN;R=]]7I"K6;)9`39 |
139 |
M;$0N%U*I9!:+Q=#F\QF1SV?"7"Y'H5"PY7)95BJ5H%`HS&2SV<>B*'KNZ-&C |
140 |
M]9^[]P8O7KPHE%)#QIA[6ZW6'8U&XT"M5K/U>MTU&@V3)$FLE$)KG1ACG+56 |
141 |
M"B&L$((@"&3D/S:?S^M<+A<7BT5;*!3J<1P_%T71M\(PO'STZ-&?VINEK^N; |
142 |
MHQ<N7,AJK2O.N;N54H/6VA-*J2&MM5!*66,,UEHAA'!22H(@$%$4B2B*5!`$ |
143 |
M9Z,HF@_#\!0P%\=Q[="A0^YOW:NS[<_ERY>%UCK66@=`&`3!"##BG*L`B1!B |
144 |
KQSEW52FU$X8A412U#A\^;/B[S^O[^;\Z\7.<>GK+0@````!)14Y$KD)@@@`` |
145 |
` |
146 |
end |
|
|
147 |
++ debian/debsearch.gif.uu |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.install |
1 |
begin 644 debsearch.gif |
|
|
2 |
M1TE&.#EA$``0`*4``/___^^_S]!(<,``0,@80-`H8-A@@.>OO\@04-]_G]!` |
3 |
M<-A8@."(H.>?K\`(0._'S\@@4/??W^_/W\@00-^'G]AH@/?G[^^_O_??[^^O |
4 |
MO]`P8-!`8.^OK]!0@-`X<,@84-A@<,@X4-AHD.^GO]A0@.>/K_?/W_______ |
5 |
M____________________________________________________________ |
6 |
M_________________________________R'^%4-R96%T960@=VET:"!4:&4@ |
7 |
M1TE-4``L`````!``$`!`!GA`@%`8$`P(!<-A*+P@A@<#@`.P>"Q#R80R9%02 |
8 |
M#T"`(&&22LQT>C%@I`,#P?#B&$J'&(`#*U0DF!8C?&I")%R$:48("8Q&"FD- |
9 |
M#F%J!A`11`.756X`FI)"&1I#&WQ4#QU,'T,1("$)(@N#0@^/B(0*D[9I)B(9 |
10 |
$A$$`.P`` |
11 |
` |
12 |
end |
|
|
13 |
++ debian/mozilla-firefox.install |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.desktop |
1 |
debian/tmp/usr/bin/firefox usr/bin |
|
|
2 |
debian/tmp/usr/lib/mozilla-firefox/*.so usr/lib/mozilla-firefox |
3 |
debian/tmp/usr/lib/mozilla-firefox/*.chk usr/lib/mozilla-firefox |
4 |
debian/tmp/usr/lib/mozilla-firefox/components usr/lib/mozilla-firefox |
5 |
debian/tmp/usr/lib/mozilla-firefox/defaults usr/lib/mozilla-firefox |
6 |
debian/tmp/usr/lib/mozilla-firefox/greprefs usr/lib/mozilla-firefox |
7 |
debian/tmp/usr/lib/mozilla-firefox/res usr/lib/mozilla-firefox |
8 |
debian/tmp/usr/lib/mozilla-firefox/searchplugins usr/lib/mozilla-firefox |
9 |
debian/tmp/usr/lib/mozilla-firefox/icons usr/lib/mozilla-firefox |
10 |
debian/tmp/usr/lib/mozilla-firefox/firefox-bin usr/lib/mozilla-firefox |
11 |
debian/mozilla-firefox-xremote-client usr/lib/mozilla-firefox |
12 |
debian/tmp/usr/lib/mozilla-firefox/regchrome usr/lib/mozilla-firefox |
13 |
debian/tmp/usr/lib/mozilla-firefox/regxpcom usr/lib/mozilla-firefox |
14 |
debian/tmp/usr/lib/mozilla-firefox/xp* usr/lib/mozilla-firefox |
15 |
debian/tmp/usr/lib/mozilla-firefox/run-mozilla.sh usr/lib/mozilla-firefox |
16 |
|
17 |
debian/tmp/usr/lib/mozilla-firefox/chrome/browser.jar usr/lib/mozilla-firefox/chrome |
18 |
debian/tmp/usr/lib/mozilla-firefox/chrome/comm.jar usr/lib/mozilla-firefox/chrome |
19 |
debian/tmp/usr/lib/mozilla-firefox/chrome/en-US.jar usr/lib/mozilla-firefox/chrome |
20 |
debian/tmp/usr/lib/mozilla-firefox/chrome/help.jar usr/lib/mozilla-firefox/chrome |
21 |
debian/tmp/usr/lib/mozilla-firefox/chrome/icons usr/lib/mozilla-firefox/chrome |
22 |
debian/tmp/usr/lib/mozilla-firefox/chrome/toolkit.jar usr/lib/mozilla-firefox/chrome |
23 |
debian/tmp/usr/lib/mozilla-firefox/chrome/pipnss.jar usr/lib/mozilla-firefox/chrome |
24 |
debian/tmp/usr/lib/mozilla-firefox/chrome/pippki.jar usr/lib/mozilla-firefox/chrome |
25 |
|
26 |
debian/mozilla-firefox.desktop usr/share/applications |
27 |
debian/mozilla-firefoxrc etc/mozilla-firefox |
28 |
debian/mozilla-firefox.xpm usr/share/pixmaps |
29 |
debian/mozilla-firefox.png usr/share/pixmaps |
30 |
debian/presubj usr/share/bug/mozilla-firefox |
31 |
|
32 |
debian/firefox.js etc/mozilla-firefox/pref |
33 |
|
34 |
debian/debsearch.gif usr/lib/mozilla-firefox/searchplugins |
35 |
debian/debsearch.src usr/lib/mozilla-firefox/searchplugins |
36 |
|
37 |
debian/tmp/usr/lib/mozilla-firefox/chrome/classic.jar usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome |
38 |
debian/theme/00classic var/lib/mozilla-firefox/extensions.d |
39 |
debian/theme/Uninstall usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/uninstall |
|
|
40 |
++ debian/mozilla-firefox.desktop |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.dirs |
1 |
[Desktop Entry] |
|
|
2 |
Encoding=UTF-8 |
3 |
Name=Firefox Web Browser |
4 |
Name[fr]=Navigateur Web Firefox |
5 |
GenericName=Web Browser |
6 |
GenericName[fr]=Navigateur Web |
7 |
Comment=Browse the World Wide Web |
8 |
Comment[fr]=Navigue sur Internet |
9 |
Exec=firefox %u |
10 |
Terminal=false |
11 |
MultipleArgs=false |
12 |
Type=Application |
13 |
Icon=mozilla-firefox.png |
14 |
Categories=Application;Network |
15 |
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;x-directory/webdav;x-directory/webdav-prefer-directory;image/gif;image/jpeg;image/png |
16 |
StartupWMClass=Firefox-bin |
|
|
17 |
++ debian/mozilla-firefox.dirs |
Line 0
Link Here
|
0 |
-- debian/update-mozilla-firefox-chrome.8 |
1 |
var/lib/mozilla-firefox/extensions.d |
|
|
2 |
var/lib/mozilla-firefox/extensions |
3 |
usr/lib/mozilla-firefox/extensions |
4 |
usr/lib/mozilla-firefox/plugins |
5 |
usr/sbin |
6 |
etc/mozilla-firefox |
7 |
|
|
|
8 |
++ debian/update-mozilla-firefox-chrome.8 |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dom-inspector.preinst |
1 |
.TH UPDATE-MOZILLA-FIREFOX-CHROME 8 |
|
|
2 |
.SH NAME |
3 |
update-mozilla-firefox-chrome \- maintence script for Mozilla Firefox |
4 |
.SH SYNOPSIS |
5 |
.B update-mozilla-firefox-chrome [ -v ] |
6 |
.SH OPTIONS |
7 |
.TP |
8 |
\fB\-v\fR |
9 |
Display warning messages, if any. |
10 |
.SH DESCRIPTION |
11 |
Run as superuser to update the installation of Mozilla Firefox. |
12 |
This script is normally called by the package maintainance script; however, you may invoke it yourself if you've added chrome to Mozilla Firefox. |
13 |
.SH "SEE ALSO" |
14 |
.BR mozilla-firefox (1). |
|
|
15 |
++ debian/mozilla-firefox-dom-inspector.preinst |
Line 0
Link Here
|
0 |
-- debian/industrial.jar.uu |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
if [ "$1" = "upgrade" ]; then |
4 |
# Remove old conf files |
5 |
if dpkg --compare-versions "$2" lt 1.0-2; then |
6 |
rm -f /etc/mozilla-firefox/pref/inspector.js |
7 |
fi |
8 |
fi |
9 |
|
10 |
#DEBHELPER# |
|
|
11 |
++ debian/industrial.jar.uu |
Line 0
Link Here
|
0 |
-- debian/update-mozilla-firefox-chrome |
1 |
begin 644 industrial.jar |
|
|
2 |
M4$L#!`H``````(!SE3$````````````````(`!4`8G)O=W-E<B]55`D``S]Y |
3 |
MR$$)9<U!57@$`.@#9`!02P,$"@``````E1)K,0````````````````T`%0!B |
4 |
M<F]W<V5R+W!R968O550)``/*$I-!"67-055X!`#H`V0`4$L#!!0````(`)42 |
5 |
M:S'?_8ARC08``'L3```5`!4`8G)O=W-E<B]P<F5F+W!R968N8W-S550)``/* |
6 |
M$I-!47G(055X!`#H`V0`K5AM4^,X$OY,?D4??`$J3DAFCMH)=UL7`C/#+0-3 |
7 |
MP.[4U-9]D&TEUN%(/DE.R&[M?]]'LIPX+SM,P:6*BB.WGNY^^D4MNL>M`XJ. |
8 |
M(_JD4CZ@?[,9.R/+XF@N4IL-Z.T9"9ER:2,LFFCJI:3(SRB)8F9$$JGQV'`+ |
9 |
M20<#L%^X-D+)`7WZ?$V]3J_[`=_]SDGWNGKHM0X@]9!Q2I2T0#:DQF0S86@L |
10 |
M<DY,<S)E_%^>6+(*+SAL^TWD.://99R+A*Y%PJ7AM2:@00T=.LG]\&[_Z(P6 |
11 |
MJJ0I6Y!4EDJ(KU3PIX07%H[!A&F1"R833G-A,T`YE`#2H:\!0L6609I!OEA4 |
12 |
MYBZEB%ELRZPM!MWN?#[O3"MK.TI/NN"@Z_V]5V,[=ZZEPE@MXM+RE$HPJ]>P |
13 |
M8&%30$&GI/WA/5W=[Y/CV[0!]N7JX>/MSP_T97AW-[QY^$JW[VEX\Y5^NKJY |
14 |
M:!.'(X#E3X7F!N1J$LY)GG;HGO.F.D"-566`*7@BQB`W9W)2L@FGB9IQ+86< |
15 |
MD!:3#%%B,J5<3(5E%JR;E?6`J1E;QO86FX1D.8V0,<ZM3RM6_-I*]$H**R!Y |
16 |
MP6<\5P4P`\&;&)"_4!J<W"G#9<SU!"#T6>G*GD1SYDB+%W[W-JRC?X0`>G_H |
17 |
M<'1$_9.37HCYEGB'AGE.=Y7O=]QP/0.%WNH1$M>'2.E#<S3`"M$YE_1!J70" |
18 |
M1?^(N?R7Y-8DK.`=Y-B/=+AT9EC:3.DC#S3,+3@&G]"Y:'L[=A>%2\*8NS1N |
19 |
M9@TV3YT@D$+0W>J'FY_I`Y=<0]GNBJ&^RXH<;.E0-BC-_:,V5@,;#N,:V0.! |
20 |
MYZ!0>AM@UQ4:H%`S\TPD&27,5)E7:#43QL<K1-EUA9"$OD.X*+$""9NP&)X+ |
21 |
M:2QG*<"\O'(%%R,U.W0U]B4^%R9SC8+EN9K[0E?^A:99,'&-227S!<"V25RC |
22 |
M<-VFML]]UT>6>I23-?CML*#SKQ7NT.1[FH-%:X6;MMH.I!1%Z!&0PRG/N77E |
23 |
MMT&;]]X;I'F1L\3S.O7MRXO"3(0(8$[$F]G<K?G_2J%75;+AZ9+55'E_O1$\ |
24 |
M),6F$:`%>(DH!!+6I^AW,!&PEEPPB88J^1HMNPSS]7+L/G1Y<T'75Z/+F_M+ |
25 |
M.K^^'?U4K;>.NZU6!U5IE3Q73_1[BV"41M4-Z*1XHG?X.PE_?T-+1-]@TIZU |
26 |
M_FCN.O</?B\.N]\B9")GVAT0./9@YUEKKWN,E['2<&9`/8`9E8N4+*1,@>QU |
27 |
MF+7F*.=CZZ4::[[_A,4]&`TTECQ.M`)!4:)R!=PUM+T<9T)D["+GD9BB.0^H |
28 |
MU/GA?I)I->4X=F*MYJC5KGD4LHNV/^[>%KXI=@HYP5G8V@NP7Y!Q:O[`GQQJ |
29 |
M[<,)GI=$X;E@:8K$&]`IG.OUO9F>#(171V.5E,:1H:<LW\W>CQ26HCC$H5;E |
30 |
M*'R6_/7MJU\B"9$)L\F;?D5KQBM"J]\[$`>9.\O:M+7N?0'D7\3TK,Z"ZHT/ |
31 |
M9A4@$'#P[H?SMY?]31FKBN=$?/R?$XH5+)SNDMI.EH\`S!WH*M#+)1]K(I]H |
32 |
M.ZCY-<EX\LC3?^Y;7?+]_U31>IF&EY#XIG<Z'/W]FR3N%MD@<;?0)HDKJ6T7 |
33 |
M#T:]B_[EY<K!&,WUL4'=`3IU.`Q#HKK,\>I\44::3_S@BYYH#]%EVCXCVQ2^ |
34 |
ML'($G"V8.CNW7FS%YEOZ*AU!X>G;AD*O\;,6,Y8LOM?P"H!6H+7E:SA-R]=> |
35 |
MO,#RH+'ZJC5ZE>\QUI489>/OM/W=:<-VAU?;O@[4-'[]S0NL#SHKZVN=7NF% |
36 |
MFLM<L=14S.P];W^O_\,JE`ZXMG\#JNG`QJL=5?V,`T%IY4"MU&L=IC-W_*7? |
37 |
MFSJ]TT;J>]C:_G6DIOGK;UY@_6DC:Y<Z6[@",3]]-4>!<&@\<X`[YXLJI4<8 |
38 |
MT"9*"VYP%C4@ZW,RG/%OJL/GF[M^Q<5"/M-J#][C,QKMMK'J2=LMRG5V-P9R |
39 |
M<RWD(_U.K_]LSC#(B;/7`EH<%1&&7*7]'7)0C82YP%SU,L`E#^6+$'8`EMHX |
40 |
MQ$()W,/T*T%;?[S>J'7`9I@'+'$WQ]=%>T4B;@7_!PXIE`X?7^`ZK2;(\HV% |
41 |
M@PSWN:J"MA/\(=.<7]QG#&,J\CP5!G><13U[`VF&F="CF56%M5L=PZV[+)EJ |
42 |
M\-_;FMU=YHT%S]-0VDSR_+UF4[Y=R*=^X)TB\>O!\NT)GU;[PJ!];YFV9?$1 |
43 |
MTW?A_E?2<?`P+!*R*&V8>E=S=-_-T5NWCC\!4$L#!!0````(`%2"9#$B[[98 |
44 |
M9R,``,HC```8`!4`8G)O=W-E<B]P<F5F+T]P=&EO;G,N<&YG550)``.PG(I! |
45 |
M47G(055X!`#H`V0`G7IE3!Q0E.[@[NX4*PX%BELI[EY<BQ4&M\&A0''7P4JQ |
46 |
M%M?!W0H4&-P9I+B[#Z^[F\UF7]ZO=Y-SOAR[N3E_OG.3$ZVIKH"#28D)``!P |
47 |
ME!1EM?_A]W\BC8[Z3^?%!M3\`U0K%059P'^>AX_MP?\`PU71T`,`P"+Z#T$` |
48 |
M@'/)_SG1/)74Y-!FL9!)"%D/;8Z````]0$GV@Z[O\DFN3Y;>7.>=E.-9X/*? |
49 |
MW(.(PCC>[YY,,2&Z<EJU.?:S_D48LBF.ERP70ZMW?G-,I=D&/PC:6^L4ZIA^ |
50 |
MA/RP0/@@C7P`#*&P\!/;^W-@=]8Y_S1\S(^[K?D>!'OJL).8#%*7\D\_>X2/ |
51 |
M&AUQ_$Y[51I$*4[8]G?N>;;3521##,%ZJ]H#-45'F(9H:2>K,CTT?A&BN2`' |
52 |
M0+3-[SOOW\YJ>;8GNE>_NNWD-$OZ6D)HX$I,4-%1Y2$T@VA6UAS[Z;Z=<1:' |
53 |
M!C%PRMG]92R=^4/?B]CKAY<LG'#8+S-5#P4D-XZA-HF*:+D?(3VJV1VW_3Z` |
54 |
M9^EKNK6%-OQ%Y8NBBNK=E>T)RQG(Y#G(Y*_=WM1B\G?AFJC`7RQ!CXO]]C+T |
55 |
M?@B%%R2S18@_3T@LEN1`LBMA`!N;DH\Y8#`>@I)T$$H(Z9I9!>W")WWNUXLS |
56 |
MG@FMY#(=-*&TW."=!0H!>WJYP<'[`,.6-6>CY;!9H69"3-1O^I\6L`,?TE&D |
57 |
M:"6VJ3A,#.%T0)/G/_,UY"&H(39E4$\R,ZYO411O*.,`^%A,;8D5]PI(O#BE |
58 |
M;OV1%Z-46$NF3;&<-:&Z89R)!6XS$WNYV:EN$K>\MD(;):%/-@BL(98]N!;B |
59 |
MM32UN2HI>AN,RZ0!UY,:"FAX^ZE>FY5+[:%+/5_H41??NDUF][PG8E'-VKKP |
60 |
M1068K4#$*"DI(6>P[E>7'F/I>.N@+NS?#Q-TI'^S<<3,8P1.L@)/Y1J$';?B |
61 |
MLUK.[4"_QT9DV"(<5$2W6$1`*/?NEZQL9Y/W&-L@EX?+@UA2'C.IV^>*UQ:' |
62 |
MAXKFX$%Z62+1#+ZZ]'A;>X7G=:EZSH!K#'4*,=1,*(7(!:?VE1'HT@=OILZ: |
63 |
M:U0]18\O*G;/%"UC*'$R1ZY>@Z"N/%#\9L1(5P@_AF>*P#I$S87'J/=8I0S) |
64 |
M!(\3U<KWZH4IK&JR\YYOYFU>R8_D6B<\9&V=TOSMC_9[W_^BHH4/8Z50;^Q] |
65 |
MC,1NW=S-<>'N/._#:GI^#DC3EBW2\CY>[!U-YZAJ/^ORESC'KQUX"#[Z3'E7 |
66 |
M!9,LX*'R#M`'<Z&:>=V\]WU^2"/^2QC'\GOD<LN-0J`1]1V7DIL9[@V01I%M |
67 |
M9/(B9<?M3;C%V7JG^,UU`[63D_'S07N-V2-)7"OJ7X23L?),3;I?PRFD8\T\ |
68 |
M;TP6I@9#SF`W&-)O\!_K4VL5WE'_(.C1*%/-#Q@LGZO80Z3IR8!_9;]-_[QS |
69 |
MU3^VJZEIT%.<G>J0$`&"-^,UO#38=#1YT^@UH8D`+V4%I(4!L^J$`7:(.7#X |
70 |
MZ)>);@O,BD].:+ZT60FGW,P$3H%;O^RL^4OSJ[1_$:/W)N2U$X>L;'-Y!V1O |
71 |
M=_JHFYFM'WGL_GE8`K]W?#3Q6?,"+QPQXZ/CHR,G:?.Y_U5T[KB0WV[=RQ?S |
72 |
MGRY6FD2`>:#V>O%)T$BUW#3$;!V'DIFY<8UNES6R%LQKIBGVE4JD;%CH)!43 |
73 |
M*Q;JS%!+HX=:[O^U?4)7(%K4UGKG2B\%/]#X)5X"8[:>;/U[$!SEP06GX`[X |
74 |
M1/&Z7Y0(]SI=;<6Z=&]X&_#ZY(%\WLW=ZCMO'C)<G2L40?5Z941:;2SS!+D[ |
75 |
ML*_<*?)9V!SSXK<<78*6I2F*PU'HM,64&MKA<YGZ_%=]&-0_$S3??0^+=_R" |
76 |
M0&I55HUT_UC2T%!</S(Q\@8?^Z+S[,68M*^%.3UJKN![=,O)*$=-[D4.[%F^ |
77 |
M`9C3UB9ZM.Y_=I+%;Z>^DBOB04D7<-Y["P93CO%BR\=3#FH$71)9[T,+A1"( |
78 |
MJ'=G-8I#/_UY6AH;E'Q__B@"*ZG_P1,8<X7P02N4;ARJN/3=$TF`ABK4N67D |
79 |
MZHGU^@E=SFH_,H&+.:/J]^U#RV$;%2L'&WQB@[_T=5_%@*IJ9>[`B<-+`.#] |
80 |
M"O\4H7VQ?ND3/\:3O?0*?SH[S50=&/"8%!=TWD_2N?2X>GYHOW6R'"T^T)T[ |
81 |
MW=LI.3MO#^Z.3K'">PA4:0F8\.FM2E4=\*_:C_8<T+08WEKXY`Y'(?I9C3FU |
82 |
M3EC8*:&NGY&Y8`Y'W\@W?WU<:"K-EF%C-C(VSA8'E9^.3012VP!1C4)_NX&_ |
83 |
M87Q%P\OW..N\^Q)I61OP<'E.\LFDS@/^_)!8;=;YB$87_'QQMSM9(&6WW@$: |
84 |
M@P4]G91V=(B+V$/I=R?RC`WU];V)-)%]$WSP6<R?MMGJYI==S+S&F_8CL=1F |
85 |
M\,&15<1J)Y8"T@R:X`19"X[:XA\B^+WUP%5G,NY,+!5VM/"4YPYJ6Q-/"MJ/ |
86 |
MS_H+-V&IO/[3%YEJ96>`),5&1CSSBJO`E8>73$S!FJY=]A#C#![S4I0P!%(> |
87 |
MOYQO=*"PY8\WLT*"UB65L_5VD!=C-S.VO<!`<6:R/[)JM)-XP2"L:L6D4<N/ |
88 |
M'V38LT4=`)@6Q+4>%WTDJKF^I%YH88WO(Z+D4Q:]8X9*!2^QQ)Y\!LXM7U!< |
89 |
M]S6K*/EM*Z'BAEA;=><,WZ<.<@?<`)J`3["`J_$2&70P&-QR,V^<<WL&>V4X |
90 |
MEZS%6L0,T-?3\SJ2N%N]FBI5R^F+B(B(HY4`ZVA(>+'SHO\67?=^E+L,;2A3 |
91 |
M+=*`P1>U+97D^&SJNR$1;1#T7@-,%?9B1.-0-F:VE5)Z(:K$X8_6CNC&H]SG |
92 |
MAA!9HK"M^B#57$'&YN/9FA<XTX]U]Y`5V,L[+&^)R8IVL^+W\S'<USR\%OJA |
93 |
MF13-\79#P.ULX1J^%V]0\\_[8F5C#ZJ]7(^)'9ZN^P7WE8SCY=8<M9QFCU-0 |
94 |
MP_Y"LZI)T%+E14^+G5EWXB&8<B)/,&)X5VK@[X$.A=A10$>$W/?04JJW*#V- |
95 |
M2VOUYW-W60(@AJ8FFMD%B)7U]N25%0O0R!BQ`_YX!%`5]V?8"7SBMQD52#:? |
96 |
MWB/*CN.1^87Z?<2R>QL#=^!\LW\R6\(?,C\_/^18TTE:7E7U`EA$IO:L]ON. |
97 |
M\+/\UZ^'I7]MTR'"C-"6DY,S\1A_+]*S-.P8.=EVB<;(<!*_/:0!#CL(>9O, |
98 |
MMU1[!*B:8FJSM&!3!`M>I"DQV"0+`*VBB<V:)T(C!7&;D)?T3">[ON*$,[BI |
99 |
M&J?4.TF_>_P3[6NZK)?PZB\NYV7=5=C=;B%Y=A8<VT+RD4BTS;703^G8EL0W |
100 |
MNJFQ_G;RR8U3'XRAP<Z<>C2YNVK8<'_>C[=G%C!"0A6CHM)R4`JJ-+A`H&WN |
101 |
MS0"*':/4<`;0^HJ3NI2NFH_$74T.9J3,9PC*)A08"*"6QG,W$J%:@!^\GU]V |
102 |
M[H2W_[@=PU94_562(-)B-_%<QTNF:J-\2ZU[.KM2CQ[EY;?0[F"4!NY[%D!O |
103 |
MQA#>ASE$+G7W:U]&'<N5VY#551-145K\FC`!$`;%7$C=]%$YZ7`&7%4B5 |
104 |
MS3CXO:VWMV#@TRT*^19VRY$!=E(5<Y=4P/7!?7U]G1/56(;3BC^Z#@:G<;*B |
105 |
MX4`J2YULC(&X$F<R4[Y`LC9!=`DKQX3UGR1XRQKW%EO.>'NY@S-.DF(V*PIM |
106 |
M0>*F]23[*-NOEGOD(9C[,@5`7APTI<)98:3:EV!=ODXF:G0W6]HKU/=@&I[Z |
107 |
M!Q7P?'B*!CH>#P30"`6^#O5RJ7%]@:UW?GD0PVK=.X4M@QY`WL[.$T+ZU::/ |
108 |
M!_=U.MF")R:H.)6R[-'U:D8Y8(RF1@(7K,UZO1K)H7<Z7#7<!D-+J2SNM6TH |
109 |
MQDJ<.LEQQL3$?Z&TV/7V4["6O=#78L@M_LL3WL:E2K6=Q:!#'`6(]$[\G.YU |
110 |
M981`_T:1FH[_)"DO+X^QI+BHZ&M&1L9GO(UHVIO,*?M&47+L!(_VM?N.=<\4 |
111 |
M<:IS48QS1O[0]-QEGQ[Z0TIC)9;4OX\O`FA%GVUL+%-EFIG:JHL<*-%#M3%7 |
112 |
M(!2:Q\/;@KQ<5"L9Q&1_4\XF?W0T`F8:,>2L%$NBAHFP:47CTL?66]%]=Y`- |
113 |
M>'>*1?^U*WBGCZ8#=X:=A]YX4I3RWB@/5J(>_O*8ECZU.#L[4@HW4:<0B-HM |
114 |
M'008T_IO=4MQ<?[AB9*W&J'X1]PWMV)G4IE'=^9K4P3KDL"M2M!!_O/$S=6Z |
115 |
M(QZ$NK&$@7:??IZ487.L5[4D0<PR^^1>PYBLXQQW>SCO@[4U\AA?,B&N[@(1 |
116 |
M[C>W]O?>^L"-T&]!O1-Y*Q22`4R?3-]EAI+T4T!=`%]1<0:VK]PW2ZP1=@%C |
117 |
MU/B&"E<(DW1&PD([$T^Q,BD%7+4II/&]3#+\BH:"$.`;Y/VV!)6%\S8<;-/A |
118 |
MDVD*[0PY4&&F3DS]_;$TM8/QK/[96G/G&Q$?C9[G:T7X7IKAIWD3[[5<'7W@ |
119 |
M:G\XOWRR8O9G&[MM]U8H#M(:=,J+YHT`_O=BF05D.^R#KT`5)V/O=V4.A@89 |
120 |
M:H$Z'-H8`J;0:4J+E0PN3K_-Z/2I#*09#09";Z16:3?U:/_AW++7B*F7X8O> |
121 |
MA)+P(]$NPG.OQ%J$0V/$:RZVC1N]G-8=N)!2)%AZYJ<Y'*K6XY/;<;;2LZ3\ |
122 |
MZR'I;_W2S"V/T>-(4X_@6Y(,Y&4J(;V1<F!.UF-51?MEB(*5-`(V,J3KNJ\] |
123 |
MUVU(F#('T:`TWD:)(1EWZX(WLK`A<*],_'Z1Y^=RPS<=#;'X;/[J8G,0<YDN |
124 |
M=O%6&J9X/B<R97#@%XI749_=F9[T'K_OXP>YZ](_'S#'X)?-"V;].V.,M%\8 |
125 |
M"(1EQ1=E.*&RM=Y"T?;$OXC;QGIV+K9N'J!KSE`3>W"/\J#F"'F9_E"T?!BG |
126 |
M"C5U1]4;$9J?WJJ^]7MJ'PL3)%$BY$P\UY=TZ9RDR;E_7#!%.O@@:BY,>9[P |
127 |
M`DCW'A7!>7_L5*)ME@P@\0Z&3"DL9@6)@7-H;&<Z,;""_HG.)E8'_\09S/OV |
128 |
M=S!+YNF4K4*5_,VV;D'&D_XL/#N;\D\^N.AT/.AX`L@&W6Y(7SG0^&[B"L6] |
129 |
M)O&B6%`RX]BG0_*VAQ,=LUY[Z%S`PJ#'A1#Y%>QZU]Z/G$:/T:<&N1PUW9LY |
130 |
MF9*OJQS^H7LG::T*X/EW:JYD5Q(/OQWCJ"7#'C]R*1K_2%-C)2[LJLN^O07, |
131 |
MH0E=77O<-=B,V:I+G`B4:K1&$7P<UC+25@=U=]V+Y[UP`F.?GV76?4$TF>;\ |
132 |
MFU[?,&">/0M41)@E[>]6#17?1+W_--.V9TV8C)YLP9%L$&[/A$IH0DMF5O.M |
133 |
M93)VDP^*36/*>JR+G1UE-;0=+K:L9$2H4BYNA[_L;XDZM4IY7FG0$%U7I&XM |
134 |
M#=.67((D\LMCEW:]1P9[9SV0H!=KMX2K\>E!*1Y$L>V-2$L=@IU38C'K2CY/ |
135 |
M&8\I*6F.>HM\2/;B/&^"0+0U-:&#BMK*VK]TEYDWKV<T[+8ZE.?A("DJ(>?B |
136 |
MGS_1NV&)*R?RPLYA:2EZ%?IN4W)D7KGHZ.\S_TWBM&I<56G$I.=3',&E?D]& |
137 |
M(5TES*T+-<;-\,M.X\R+)[%=D^OE%(W;P6TES[4(J94<H@26W36WI^#XAX=) |
138 |
M%SI3\!D.W`WN$?@43^<V4Z^0KT2#$V+H<+X6?->@JY\_U/72Q/K+U8&;H0[] |
139 |
MIBE^U?VIJ4#L9_<CB?50[D1Q0]F[%G=BD:76OWMDV]Z@),+BVB3(@.I2%F3P |
140 |
M[/29OQDF<N9@05H[8<BM<K-+RF1<SGOY2`!<C.;Z\`4S#1%%QCM(!5T3/#^B |
141 |
MVI8`Q1$PI0<2C?-"L7%,R?)@.N3J_OY8'9YL)_/@Q]VMY5W`M@;=Z$&9'K2F |
142 |
M,B3T1=G^"U:]FP\7=V;%56F(;LRM1=36JA/FI7LMS97CBF"&C?5*7N88KZ(A |
143 |
M:=MF+^38\ZI#P3#F&HEF?'R<F)24EO0`\XUK^]K?W=T?:59C&5QQ%/R1:CF" |
144 |
M6IJ:TL[.W-R91U@'V2.I;QL^CQ!R=]UO;:,6JJ#'8%W^JOYE>6'LDII9,$8' |
145 |
MO\?7Z+Z/5/DX\WK?GG.\2OV1SD1D\>I(K`S7Y6=%[]!@8/#]9%\723]WCJA7 |
146 |
M9'#_LD_3V]=+[<(&]PR7;/VK*8`O>^U!.<>NP%,'?'I-S`=)%`*<6:?=F(`% |
147 |
M)XZ.*N]*/2#"I]TS.)_%NI]W>%HW.K+32!.9A)KQ^UV3TW=.J`$S\M$3\"9@ |
148 |
M=+KRYM5]R^6TR]7C#[M,Q.V0O&M(MUJHMG?;PA1.:!)BHSH3!E(XL3TXH;KD |
149 |
MRG)-<%B8W[Q0,TI@(;KHX9,,_U:T?59NF)7@Z>+DDKF'CIE^N&[,CP`I<[$J |
150 |
MJ0I!O4(J^;T78D5FPWIWI#(<UI(2"<6,A?[LHF_>CV&XZ&HKI1+XGX-O$/Y\ |
151 |
MIIX[^/J8=ZVHP7*+1'-S<Y.6EG8-MB60V7!O_3T^+C<C4%Y>?OX0\-G.;MN[ |
152 |
MO7MCN*1``RP0/1A+YC'"G$E-AJXSS5+S/:2TZ8A<Y`MVFZ6FOMF;$`MK%=>E |
153 |
MR5/?@./820G)Z4:CN*''%ZL%2!5Y9.C"'L%XD]A5OE\`SMWS`:A/B[^8ZL<H |
154 |
M)$WR:9>J*3^U6@S0#+#K@IP?X(1*1_&K%ZR*Y)0,/@\[;U?[OPZT1*?Z!J^1 |
155 |
M/NXP[?-?8T]TGW[K>)IF#+B+Y'\G0"9#;I"AQ$"`PH8?*6-(29B3H)G4=/3I |
156 |
M\E]S9ZC(C!+`J-IY8A5.#I8YA,S,$(<P;=8Y!T0<AZ\I!36QRM'3HH$"A4?H |
157 |
MS`EOG\J1S!R,]:8LC@`:WMSDW.P<HW65$_'IVJG$?VT]UL,)CI?-)T,CYZM# |
158 |
MTY5K@>82VLKUJQC#U\NF"-'`E8Z;VR?T-7H*'"OF'U[2743C.1*`^Z\[8YD^ |
159 |
MU:4&"A`HN'3SPA?JE7=\[(3=WZ.H$5>49MA@Z[9@ZN.V`FR60`TXVO>O8J+- |
160 |
MC,WFG^QO1*E2\P+H4&^QH@U`":SO/>=DYH&K$V,UG(D'D?GB=[E*\+-5UZHI |
161 |
M*%1:/Z,TA'1%6]#U?2WZSU)C"?_'$.-0P[.J^Z=I@\JBP.LHC`@-R2<Q6O]# |
162 |
ME%$.=D.('V/_-SP;::4W+IQ/Y"I7B$F*+$G30ZK,2LRIZ(6%&/_^;-4?K:T9 |
163 |
MCX0"!BJP7JDVNJEW56A!*ADR(D1R;$KL!,RT&`3Q@^BH,DQ$2DD6+3@FFZS. |
164 |
MB529P_&3CDEY.1&J`[RI[RIU"6?XD@^SVE4[HETM`HL[W2*[BZ4>X)RJ8S+* |
165 |
M$;/O!=0^$A$F%GH\0C$IJ7(P!K5-)3/2"%?JH\/[J2L=BRM;OG-0.ML[L9`G |
166 |
M6',HB4/)FZT*C>P^J<2F=A]/H`=G";LQ1,N&:;+.8@2Q)9=?T2HK%7/5I<LL |
167 |
M33Q!XH_+OQT^)SP_*[_**RLI.;")B(@`7OTX`?)JT;S,;9N;/85&MAH4;T,( |
168 |
ME'\]]?>*IBC%WMZR+".](>VH%\=78?)!V(H?'%/AZ=Q:1@@*3CB:#WX-)1>S |
169 |
M?$SZT??CS:>@E\L+8PB-"99N+".OA>A5%V&+Y_CC3NQ\I?F$*9ZX.BQ&>=YY |
170 |
M26UGXTT<E636M]='5)PF-)$FIM@??7R5NBF^XF'<GH31PF"6)%9Q;K*+S[E- |
171 |
M1U(;9RZ22.=T$WQ&CD*H^\`<-)FC/S1';1^<M3`,@Z3R3:1L2$AM_\W+S&TK |
172 |
M7S>]"]NQ4Z8,WMZ_EYXAF!"MAGH*N*D"VABYT*1F3//M@UXME]2F=RV`1"]/ |
173 |
M&0PE2-)J].'TV:I3L[-AKB!J`'NQI\%D?=3@5G'E*C>_DXB3/0N1;(ZCE?IG |
174 |
M?Y,1M[GW%'GTLB)G;"A]%]$T:,TY9^Z+9S3-%#O(S)W9-_DE@OAV1Z>=^^@Q |
175 |
ME^X.6,,S!A<L#%[B3YDPJWUNS[6OEBTC$[<T4<PI.;D%>,U`/:NE:1)L%,/' |
176 |
M7?-W1&X0)[&?(D>7IK8MS2<&TPB#90`?^`6&_S&%7;WMC/KHZ-,[9UEFEZYF |
177 |
M\&!-]P@4H>38H#N&X..D+'N$@U%XT9M#JB]B'UB9>A,`*C##-%3828\"[KV, |
178 |
M@HUTB;0A*W%I.OWLK/18(248C]H"=BNA"ZRP.JM^.88U92*UWVH9ZZFQXB,: |
179 |
MEV[O<_?XF@S5D?/BR,RH#D%0CVZM2E4E#9KR(X=V)W[.URMF_V-[K06H*E,^ |
180 |
M4[)BDB*3HK>I4DHT,GKH0<!"(V??)J\^NU)QZS+$JI>R;%STV]GA:9/34GTV |
181 |
M=7<!5TYS4D[.&*3*>(2'U6(%`OQ'6'7`%>\8%>5%2""5C8W-\6+=5\F=G>/5 |
182 |
MNM2@E\<ZQSUU5&QR*$[.,$I/+Q)F0W6'[>X2##Z3U[RXET!WT>PRGB^,DH7[ |
183 |
M5R-70/*^J$""MOL`1E=_>/3UWL.C];2M`NTH<A[WF%S,.T[+S.Q0S/5[AEC0 |
184 |
M"WIWRY'#E=`=3]1%ZUD%G2.S+`*.#WRS][ZQ8=@?]KQ!-/JDQVNK*.6],'MQ |
185 |
MWX"UOU`3%R07-!_9GRMBB]]UG#N1'EJL]!M32TM+79S$[@'MK-9SB</AG,NK |
186 |
M9R'HCQ[&&VER=&3N?H4@4'#]%HJOAS$;G\ZB=IAVG@-9,U4A_?14J#:I\A=Z |
187 |
M8!J0$1B]DN,AGFU`Q6L-]*)SC+2+6S%/LUF)Z.@^U.D*.GBPEQ&V-8#.D]*G |
188 |
M/W;@\@%92N*!AK(,6I=78A2\A/%U^^,^R=-,VLT</XH#>S#$I\4@<\E+&E[6 |
189 |
MO:>A@WMQ/Z>)[R)@/QE?8>\`ODLVF1+!)TT+<4^9P0\+X[!7.'6=]?`\ADZI |
190 |
M>N#!N%"F`**+R[I1-[(P#OEJ,'3_V>`\2?`H[.IY9K+3HGILQQ'5T8!OVBDM |
191 |
MC9@?.&T_7PG+CAO2>3_A?",H[2E%=HD"\`M8TDF]8-U^JW895`_,%"YQYRUB |
192 |
M'U,<('P^[%*X\/=DB:,8^N@#ZP7-\##R\!08,$04'B@B75ZY"VNV)\93"5UN |
193 |
MELLY-*RD/E06L5BERRRSI34J,6^%@P\5Y<7L71P9B?=[5`T5F9R;L1(G8\=. |
194 |
MY&<\Q;E#NZ%XRDC,TB%B8G1O$C&ZTK8)!0:7ORQ`%IQRS#P/A=<F1AC2^=I5 |
195 |
MS^T*@)LS:NV_+_<LL_.PJXH?5\D:@.6W<YK:^G$V*KBSU+)L<C\?&WZ28!V[ |
196 |
MH=(O`D6T:-U,N\:":)VU\<1N&'`;YDP3R\D8U[&0;L'8L";',H)XY#@4'DF) |
197 |
M:L;9WL"[]3D-(S:(\SIG.=ZL/L*WD%P7LYOX&=L_'9J<OKL(\P$=<:N5E>[, |
198 |
MK*].5^JJ,[:_-S`GLB51S"&3S>XW\[F:"IY?&T"RM/$(<GRT+QN#@W0&[]&. |
199 |
MXF+@2,*!^_241LLM1\EV2A$KV9(VB'BP0+14%C/I`DF2`4(,AF1>L^;$T(_L |
200 |
MT/!Q8Y?.\:%Q.H35Y?$]1RGN<QI2E*_:+/"^`/>8J]_LOTMXJ?]1EZ;REKO_ |
201 |
ME(1S2ATR)+T/BMP'2=)''(,D3<O[M(L,%6>J\T)Q!90YFIA76VJ0"Q-KQ[7\ |
202 |
MI@7:%UW.UBD],W,^\TT-LBBSZ8(1@$H>*E1*,PRDL1<7,7J>L\X:S!]QT/+T |
203 |
MLN3M%#2A!UAS.`'5^6.6A^B!TT='_?EE%!K4&5K[O2%&/)P!5_D2>M61;:*2 |
204 |
M(IY1&I)KO^\;AMZY6@1;713CF""*^\%%4FO\C^L4W)M=#+EVI2[841Z65I_[ |
205 |
M6V49:#JNE]T!H)>FAJ;14.Z,P)8/F1EQB$^YWBL*2-^QOA<W)KYS.U8,#TD4 |
206 |
M.MDM+"/#=Q+NB=A3W1IY"AHYL&;AJ[7BE=00=-80+)$KN:;3G"@<HEP/=F$K |
207 |
M`,*%<;KP-*(>VB:1U9`*"QUHK2[01V2S7.FE!0C?IBN&:;8$LJTZ"_WC[O[4 |
208 |
M^-"(4T'IY7U(O&O[A:\']-H:D?<`<(Z?Y#(HIN\UZYPIP_*-1M0UHZP2!I`T |
209 |
M:(M['/)>[:KD'C87T6H[M(W,8:3I>.P;:Q28)7!9HE)".7(,69L(_C0#"N-= |
210 |
M9$3[*8*%L):2&C95I$"$Z\/K=VT?%@HH4D@L[>S,2RZ2GUJ>[ON=S.C@[&P[ |
211 |
M$$4@("#(%W#O>GAT2"X80-Z$YD@AZLF*ADN[_R?BAQ^?A2C%>F=NYV41WA#R |
212 |
M<LX`V.MHJ<,&K<'6],_/9.LLT/HL_"RP]C$L<JCTU0B^>7CB`W\NVS;WVXD_ |
213 |
M5A1@ILI9KJJ)+S@->LWK+O$Y1R;E-MP<OP35$[HUX-PO+DF2G8G`Y5TJ\,>Y |
214 |
M3F;GW^-'RQEV.C/*&I/S[1/G=YQE[G/C34/8N-B8Q=YF?I;1=E-FJ[//\LGD |
215 |
MMCU*T``X>PC2Y@I?W>1.*8<>JXHM0N)32"&-4(!-MJ+I49PNU[[GJS:K0V&: |
216 |
MC$_K%,["/P[JW&;:#QG`01<C:5YVA*#FMY^1F5=0\[\K>Q]S>D.6HLS2EE42 |
217 |
MBY#N::!I54+H.4LC8!VO1\-'LG;TY]G(3D@SO3]LREG2U>^3AGJ;3*_%N2]N |
218 |
MN.=#J<*R*I3?9__NJ3TX8VZ<3BT3K51-0@B>8[YV496]5U`4?-=^12[H1!Y+ |
219 |
M]I*7:69Z_PLX@D;#][!?.&R>NWM+G@Z&;H6P<[*S-XDN^*E9.`I3SZ1Q/8F< |
220 |
MF(.8"A;V;5XISJJ,5!@<"'&_17U;1E=0F^]Z04<'A@)9[IS7NN"XF9LXZ^=5 |
221 |
M9[M/`9)]-&_6#>IY<;J,]\7]0-I_%FQDG+!*G-+2^_0QM$NC;586M;VK/;X@ |
222 |
M%E+L<R/U[PQN>Q4=Y3E"1O<4%C''78D2T0X&"\[B48C4\R)T8*SXJI$KN,<F |
223 |
M#9[%FV-46R,\=RT>8P&10E2%[03@R$:N8UU",8HW%#^QRD3!JMEQU/NV[D<' |
224 |
MXNQ@VV[`MX)X_0-=_%H&RGCUFE^_'F0&'D46\>SX3!?:S1S!MQ&3:C/'?ET^ |
225 |
M9V:"3HLA2)B?>+`0'!42:5L][\\M;P_U*N2$B:'K`=MZS"38E3^%O6!P<#A2 |
226 |
M+?O&H.ZTZ)S#F,.GX&VJ5,F5^D\>Z';,FC31S)BYDFOK*A,-=_1,92VPZ[*@ |
227 |
MX+$8K8:]C;N'Q<[`;U]@G<K?*8+EC51R:7[["SG#][.?.P*&XG,&ABNDK,;; |
228 |
M;!S.`^]+LO#HI]8[#F;F2LJP'9@7&Q-U.>/2Z_%_";?Q?3#(8X$J6\AY*;;Q |
229 |
M6E/V*24J%;[A(N)/9R#$A%)#OBH9-]$R7^JO2;^EL447.[&77I[3;^R<C8$4 |
230 |
M$`(7YQ0\0+%)TW,4)^@1^*6J@]-5GV/]```DE?_8!0!6>]"NM"/4KB]%S&P" |
231 |
MUDZY,-'6V3DXQKSUJ>!:-GCG/<F/5D?S)Y,3>7=?77S"1<UR)!R';CCT*TW/ |
232 |
M;MO6>J5YT9V\#V&`2K<0>R2]`N`2%0)F[F"<UT3XE7?.XLCZZ5L_T`G2HW`# |
233 |
MDVG0W]Q>>U>&5F17R?,O<J\Z*[CS^B0BDC`T];)O]\\FI]&G"C,:(W,N&&]/ |
234 |
MSO9E[C5V.;\.XT<CUA"HUB`V#YSX@*UOOQA[-;T!A?N5:'P'Y7YVRV\HJ_H- |
235 |
M^N.Q?G=CD>3)1./#L/H=J4=PKZYH90@+%+[30[TG"9IP7#GHOCX0G!N/^^6L |
236 |
M5;GO%EG\U+*\!E?P;'"O<[;V9`H-<>OI%A'9'.9I_\QRPJ5&3$IROFO,@3T< |
237 |
MWI[GGP&PSFL[\])O`[?//40]20T2B/:C$2/93,033DQK.0IEG`-20WU"J4)P |
238 |
M<!V1U<$/DCZ_/4*"U/L[7/N&%?P%Q0]""A^$$U'LU:5:\I[L?-KK<R%WR-\/ |
239 |
MKG7^M"H,@/*%)SPH#@(]UYV=0P+#WQUF1QW`6?U:2+T3)Z>="K:$Y]@":(4@ |
240 |
MNG$T8KF:]']..^<.)`G5.QMRZ]S%4KDV&E^RM-FV[,=TUC+BIAM*GP[E_$+D |
241 |
MQ2;:=SR]MU1":MH=-SRX7Y@,-+V0+/WFW[:KQ1%E8SOPMK69RB?ZC3BK6HMF |
242 |
MS@$1<Q7-HVA/]KG,%U)?_)Y4+S2@WP[>6:(4T*'HO5U>7)<D"M!ZWE,44L=K |
243 |
M>8ZAY/*SE'3+W3@ZN<DDX"94:-V(W5*\1/<:24LEAZH^!)=]OD;H1O8/,"1] |
244 |
M[#;B>PSI_,I3A)<UA?9G'RGE/[7M-0+_8PA%8$^<I(4\'>]_!IG^.^6_@GG, |
245 |
M_]M^J\?W?U?\BWFG_V_[_W7Q_X][IK4_3G+#[7_>_=^ITGS_HWM2`?]5=E^B |
246 |
M+$]W_OKU,AAP.&2A/I1G!/N/E1PE.779:AF+L/\#4$L#!!0````(`")R9#'@ |
247 |
M^Q%V7@<``&D)```4`!4`8G)O=W-E<B]4:')O8F)E<BYG:6955`D``R^`BD%1 |
248 |
M><A!57@$`.@#9`"]EO]74^<=Q^^]N;FYQ)C<A(`71'>#44#`!J1(IF!"`B3@ |
249 |
MER0&A."7$`@$4`L(0CM*0P@A#1I`P6)U$P0<2KM&MN[0,[HE@`2F;2(%I9VK |
250 |
MI%BG4A65M78[;L.C/3T]RW&_[?D#GM?K?9[/ER=%FAS'SV$#;&"6"MB'_C0R |
251 |
M.CQVR?FI^Y.I:Y,W/%_^[<ZMN?MWYQ\]6/CN\;?_=3C_7K(M2;E#))0E1:_C |
252 |
MD4```#C_BA65:7/*M7E$96&YCE#JM$2*=*N,2@W-#2.B>;SU1&I.<86&""DJ |
253 |
MW+\_)S>$V%&N+3R@+0,XW\,^5(`!1"S>`CP3`N#<^7%IW\=Q<_$NCTM>;2:( |
254 |
MDTS`D8*Q'NTFJY=-`?BU"_=;64`!DUG51HHN6-XA0$XN/5X=O_K5L+;$=N2M |
255 |
MX?"K:5'40201E&?N/:/P"SCVL93R[O"*AW_13,"AP6*BWN3+],;=]X(;R>2, |
256 |
MW5IZ<0<@.,<,%00)U>73;JJK5"*V94>P.S4GLV@0V&MXPI0;,.=D619&GKHY |
257 |
M&9@Q\`4EV!TM"4&4<3N)::A'Y&CFX4V1IP7O>\[0=P?FAI(8L6'!69S,RAW6 |
258 |
M)I97@=>>"^S(75@-"*J<!&;&$'.LT3X_JBCNX:5A3A$:OR0TIA>#'!8.AG-# |
259 |
M7.,R]>---)[`H[B]KW^5]O;;)'BPE;3>$OH-9*`/E4B(,[[P86IB$9V/@ISL |
260 |
MP+7!"?E5?@=UE/2,EJ-^7AT./'=PB<:N^`4#`KW.2=`0:>`7,];[M=7^K`$A |
261 |
M<X$1<#EXE<]*\V>YR@&\AG0]/_,A"*>Z9V>@F$C*N>ZO_Z&@;RYU]R93;9V& |
262 |
M:JQMFIMUB<ZK>C(3N+X84.(P=VL"Z76\LDK5W!+@54'W7&'[>M.5*28@*%E4 |
263 |
MP,A2_T6%W\BQ@GKW:F$_UY'D7TU@3?X"/6TI5'?=.'.!#8.0N;]OMY6S;,:7 |
264 |
MR@M/L'>,W[-M,)%JW=4%9M5P4?B3^`D%3LX/"5-EJ[,MC=E>X=H?X.(K4^!A |
265 |
M>R?'*&!SYSFX$(D4,DI67XYN/GHZE<&K(M1_D#<;J+0MOOY1&_CEQUN':W\N |
266 |
M13K:NNICH>V80=,C6*5&[KI_KP:RNG_6MWSRGS;H4$9<<O@A4X/9Y)5<^)/8 |
267 |
M-SLY%V5L;E804L:\YX9BL?9T.AIS_8@ZI\6,CN3HA!@"?\X=Z(NC#%H\VG&? |
268 |
M;K;2$4R0[;ZS[1H,ONI7<:OYK]6\]^Q.'Q>^&=E,,+:)6>3*.DOC8>)_T?U8 |
269 |
MB^^N1W)P;A9^L=0O\@H$!52W;675"^S?_=:]BP%_5;+J,E+_9X&SBXW^VIV> |
270 |
MP:?G2RS;U<P[_:P1@:SG9LD)DFKHH9H..GPZH?A,(#IB;PU9SGJE9I%N\4K? |
271 |
M_Y.JT^OU*:5!W$+\KA8^L(26I\Y,RF9#H"/6%J33KX`<1<QUIU:0*>ZL/<O@ |
272 |
M^:RHY@$V\YSD#FCW?2UMK;`\H>WLDH/G,=UMF[X:9Z\,#X@`0^)!@H64''C+ |
273 |
M;&UJ-GLU*'Z17TF=N`H`I"?$*-\ZYMEM!M`&&CR"!QV_X&]R=-@@+.+"\NUE |
274 |
MH2M;3%]S*]/25>W0?1$?!C)2RT:U5JK_5Q],?-3K6C,I%*]MI+AV$46V2A+$ |
275 |
MV@OH"$K:&XHU6VH:K4TOX[_H?=8C(A$G4AIJ2=%&$9/:4`%[:C&8]$I,_V7X |
276 |
M[(3,&,4-(01$RKMLV%@0EM3SC5(%NY(NU`/UJ7,:>D\\64W5#XXE-SS6=_68 |
277 |
MR8S]%8$4_NOB=%]$\.;;5JY7?M$+OG$A4BBKF@*`NLF<&<DI([.C>#4`[F2/ |
278 |
MO6GU3]3+3CSE?2CUQ$B.TDB&QU'8%F;RW*U#MHCMP`Q\Y7WBC\Y+G5LP6O]G |
279 |
MSFMZ.DXK_7Y\'GJG!18C:A67188@Q'3X"/ME\><BFS!*RK.F'U5O2LJJ6A,+ |
280 |
M&/+>._B1RB13\NW;\M`1\3%2I]Z&(<N,'5R=XFQ&:A_\1(Y][C-DO[='8209 |
281 |
M,`P'Z^9OQD\OTEXUA:-08@`7)!\"R_S5K'T)DB-6QLL*\-GL1U/\`%D)I713 |
282 |
M"H;_JF0/+)`X521'T0J22'O-UX/4GGA8&XJ&HZ!]9T`KX@9FI%&MJ;M.<6K1 |
283 |
MBL$;\]W'%P`8NO>)8=V]*C[M3OA3122J`DB_V)2/4\AD#@Q&IS6GO6SJS<6G |
284 |
M>=I``&E@.^O01!5V)QTP&@D7#9T6MK)_"5".8HC=TJ#CCQBZ'/6\\_+>C4LT |
285 |
M,9KS"%1WL&P6&CPF]!.B*&JP.\_TE67?MO+5-;$/*D2!",QCE.0D61J]Q]?\ |
286 |
M")]BPI0&]E@=3534D0EB'%XN*E<TQ.M;#9]J,#1!(+8CTV00[!:/QRA[W9-& |
287 |
MM2]^:JWPG<S?,<L,PEKMAV/MUTO7?*F-78_<DG]P$4=$Y$*UH-[[T"GX`7O$ |
288 |
MX\>"T9UPO7AQS>=``H7DU!ZQ?0*P[6P0C6M":6%\^\Q`U,(;&RQ"(DYR6G\[ |
289 |
MS[W<K>DWM`VEFZC2&UT\(BAC-A7<^.#INK_?/V@J_1:NR0]$2AA&>`MA:?3* |
290 |
M_K_\,C;^!U!+`P0*```````B<F0QV)#%O5<"``!7`@``%``5`&)R;W=S97(O |
291 |
M5&AR;V)B97(N<&YG550)``,O@(I!47G(055X!`#H`V0`B5!.1PT*&@H````- |
292 |
M24A$4@```!0````4"`8```"-B1T-````!F)+1T0`]@#V`/;;H$;)````"7!( |
293 |
M67,```L3```+$P$`FIP8````!W1)344'U`@)$`HS41K:/@```>1)1$%4>-KE |
294 |
ME$&+TT`4Q]\DT\`V@8!II;3(;J7MK=@4<Q#\!,*>U+L'#YX\"A[TZA?P`RR" |
295 |
MQSV(X-[=8R\MM=&4EI**AQ**:3M)FF;RQHMZ6&KJNKWYCF_F_>;/F_][1`A! |
296 |
M8(\AP9YC[T"ZZP)C3'(<YZX00JK7Z^>ZKJ=74C@>C\M1%)U$4?1F-!K=N+3" |
297 |
M?K]_M%@L'N;S^??M=ON+JJISQM@9(82JJNK]?.1@M5IIK5;+VPD,P_`1(KX, |
298 |
M@J`(`,]JM5I4*I6>`@!HFI:ZKDL]SWO%.;_7Z73N6Y;5SP122M\BXJ$LRV>_ |
299 |
M<IJF_>X;YUQ"Q$-$+`HAM(OUY%]\:-MV,8[C@FF:GS.!0@@BA`!)DL25;6/; |
300 |
MMN+[_FM$O*WK^G&SV?SVIZ(@"*3A<'@$`(EIFE^WVB9)$HJ(+42\F:;IM2P5 |
301 |
MCN-4&&,?&&/O>KW>]:T*&XU&.)E,'B"B7JU6/V4!%44)PS!T`2#-Y7+)7WW* |
302 |
M;#8[D&4Y+10*FVWG\_E<`0`P#&.S<_2ZW:X1!,$)`'PGA#PV#&,S&`P*R^7R |
303 |
M!:7THV59IQ=!F4`AA)ZFZ2U"B!_'<1X`-NOU^DZ2)$\XYQ8`G%YJ.50J%7<Z |
304 |
MG1Y32GFY7/8!`%15/8_C^#FEM)?57_+_+=@?#";L@"Y-):T`````245.1*Y" |
305 |
M8()02P,$"@``````(G)D,9[\J5?`!@``P`8```X`%0!B<F]W<V5R+T=O+G!N |
306 |
M9U54"0`#+X"*05%YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````\```` |
307 |
M%`@&````T0->*0````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,! |
308 |
M`)J<&`````=T24U%!]0+`Q8!'4*HZ#P```9-241!5'C:[9=]4%37%<!_][U= |
309 |
M%E@^E.^@%7%004A2:Z8I-4H;=$0QQEB_.E9+TDP2G:$5@VB`T='!M%%J;3+1 |
310 |
M8.*,U524ML'4!&U!F]$XS+20C&9P_6HE?A(5T%U<=OG8TS^X,+0E5.KFG[9G |
311 |
MYLV][[[S?O><>^\[YQWXO_QWB[H?I9P-67UZN]<?D0>=U-^\B!14BP/I;0?3 |
312 |
M-;YD_!>`=9#G0Q5_\Z9KG@*X7V>_S&$%+`<Z@"#`=+:X:;O3SL>5GRG]CG&_ |
313 |
MI^,KX`$<`@J`8$"%C>EQUA;:QQET86U`*I"FKT<`F;KZ]P((D`3,&1=OEB=$ |
314 |
MVV3L*+LDQMAD3*SY&V`N,.R?C/TJ>-&:%:UY18Q_I@XHTKQQ4:&\"ZP,#^8> |
315 |
ML'*XG?W`>,W[!TF-BX_M-:;O^O5'EV3*JM_UW5=N3)3ZG5/DZK&GY?2N=-GS |
316 |
MRB@!Q&ZR"8CO9Z2_>=$8M&CGI%\[@K%SZOO=/[X\DY-`_(^SJ`6>T.,9FM<G |
317 |
M:8`<.]TDA_YR3:KJK\M)QRVIJK\N^X\WRA-YOQ5`SA]=)LXSJZ3CK_ERK^&' |
318 |
M<O-$MOQI^^.]#JP&PK61:8#4G.KAU9QJ\@>OB+A)+P/1C$A_!0C7;3Q)3]4# |
319 |
M12\\S7M`>&$.NX!AQ4LYW'NZ@'3-PU"&4@#-3B_7F]W<O..AJ=6#B!`88.'% |
320 |
M.9/(+#[*N,P]>+Q>3'L706$0&6UC0EH$NPJ324\V9P")_7FM+B]7;[NY>MO] |
321 |
M0#S@)E!"4_T^$C+7<JWV749.S>-:[3N,G/PC+AZ:0\JBIW:^3_U/%O'FJ[M9 |
322 |
M\;.5E)7L96'Q4DJ!*0DQK`,"`=.B]!+L^:B1UN9;&*8%7U<'UN#A&(:!B*"4 |
323 |
M(FG:2\1,?)/VB\L(#.E`V0Q"0BT\FC2,A##[MVMQ/@*<'8AG6`)0RD1$,$S+ |
324 |
MT'B*6!&*25FX'T?%)L;.K>3"P4)2%GZ`HV(-*8O>PW%@#5&I>WYYH*%LPPKV |
325 |
MKMW&LM)5E.=O9?&*F51M/\SKP`Q@GZ7W7#M=;7B=MWK"JF'2X7;VA''3@O/& |
326 |
M>2[6O$5]>0:*-K#:H$-A*(.@B!"LT>%!X!RNH^:`/)3Q'_%$^`(HP5$QC80G |
327 |
MMW'A8"&CIY7BJ"@D<?KK.`ZLY:''=G&CKFSY;++6;V?6EF+VYI>PY-47J2@L |
328 |
MX_O)7^/$V2O,`\+Z'/:ZFNEL=_49:+$%([YN6B\U<*%Z!P??F,KHQ!`"@BW0 |
329 |
MY4.Z!6]'-_=<'7C:.@!,P.^\OAT>,W,K?SN\CA&3M]!8LY:$)W_*I>HBHE)W |
330 |
M<*-NY[PI9._X@+F;"]B]NH0EFU=17K"59U^81>7.*@IT$&O`,-3#89'!_Q)5 |
331 |
M)_[@YS)^V@(!I"3W8;EZ+%NZSLT3N;)`I'&^=#F>D<O5,^3(YC3YWC>#K@,Y |
332 |
M0.1@O#$9.4/F`3&F%<\`47HN$:,:@:+)J9P!XE_+Y7T@N'05E4!XP6)J@$FI |
333 |
M\9S7`2S28EK-:ZX6]_,H0E3/#JF0B*`M[J83G*LYR(+OQI(\.I"P$`-3!'%W |
334 |
MX?'X:'=W<[O9RZ=G[O+)Y][3P#G`.Q#/%C9\RYW+I[ET_%=#YJ$(Z.[D6SJ] |
335 |
MI.N=RB<B?ALME]\>^Q"Y)QO(WO`<;Z]Y@\6EN93G;^79=3GLW[B;Y9D3J#YZ |
336 |
MACS`#K@8/2'.#`RQV2T!9I3%:L::5B/.,%7OSFP$I.SE9&FLSI*FX[.DI7:V |
337 |
M-/XQ2_Z\[SOR5EYRKUZNSG56?_,`A8D="$81"]B5ZMOIC4#1[&]P%AA9N)0_ |
338 |
M`#'Y"ZD&QF5_G;-:+Q<(!:QJ?EZ&.E=W1;6[O`K`V7Q/W;QRYT/#5+E**:^O |
339 |
MVY<BPN%-2^QW8\/CPCNC0FF[W(K;>\NYOMP=!KP$?`BT`.WS\S+P)R\\">Y> |
340 |
M!%LHAM>%S[1A=GM9H!3U.J"E`Y-F3>2YJD]Y?OIC;*NN8TW6H^PX<HIW@-M` |
341 |
M.=`%N%7_R@7@X\K/U.>.+X)]/E^`81I>B]72V=[F24*8"93V4]T`'`,N`$Z@ |
342 |
M'?#YFS=`-00*.T(W!@8^//H7,@RH!8J!$OT)`'RB3XT;$#5(46'H"47W`W3: |
343 |
M"=(1M!-H`SQZ]7S_IDCQ)T_I=[K[C07J-A)PZ6^V6<_7J=LA52B]58BI^SX] |
344 |
MH>\!:G%_\GI3&3H]=NJ^C_]E^3L(%JO(*GNYU@````!)14Y$KD)@@E!+`P04 |
345 |
M````"``B<F0QXGI."^(```":`0``%``5`&)R;W=S97(O<&%G94EN9F\N8W-S |
346 |
M550)``,O@(I!47G(055X!`#H`V0`;9#+:L-`#$7W_@HUW=9VNRB4"93^BFS+ |
347 |
M,R*>![(2FY3^>\=.3&O(3D*'P]7]8I^B*!Q:)]&3J6L[Q`:'>CQQJ`_'HE`A |
348 |
M@N\"P*-8#@:J=_+'XB=?:-8FSB_;`)]0W<>2@Y($',I'``KACEC]#;8G*_$< |
349 |
M.@,J&,:4N:#P=(N(08\+%:4C,1!BH&5/V'4<K('7-"][Z>.UQ)0(LZ*E#?R+ |
350 |
M6SG";/CW4CE0KUFP4A7W@O[1Q_N$DV-=`\0+23_$R0">-:Z.9W64A"Y,$WNT |
351 |
M>]G;O;VJYYFZD:^WLR.V+J?XV.K]!5!+`P0*```````B<F0QM1I"&0P#```, |
352 |
M`P``%0`5`&)R;W=S97(O:&EG:&QI9VAT+G!N9U54"0`#+X"*05%YR$%5>`0` |
353 |
MZ`-D`(E03D<-"AH*````#4E(1%(````P````$`@&````4*[\L0````1G04U! |
354 |
M``"OR#<%BND````9=$58=%-O9G1W87)E`$%D;V)E($EM86=E4F5A9'EQR64\ |
355 |
M```"GDE$051XVF+\__\_`ZE@]NS9_Y\^?:K!PL+ROJ:FYA6I^OOZ^OX_?OP8 |
356 |
MK+^[N_L5&?;7`NV?!M3_`R"`F$C1F)Z>+@QR?$A("(.2DM*-/W_^J).B/R(B |
357 |
M0ACD^+BX.`85%162]0/MYP0Y'FI_%E"_,$``,9'B>`4%A3=.3DX,&S=NO**H |
358 |
MJ,@`#(%#I#@>J.>-IZ<GP_+ERZ^HJJJ2I!_D>*#])5#[7T'MCP<(("92')^1 |
359 |
MD<'P[-DS!@$!`9V#!P^"I,Q)<7QQ<3$#,.DP"`D)Z>S>O9MH_3#'(]DO!K5_ |
360 |
M+D``L1#K^+"P,(8K5ZXPO'CQ@N'FS9L,P+SCPLC(^)M8QX.2S;ESYQB`:9?A |
361 |
MVK5K1.N'.1Z+_4N`^O\!!!`3*2&/YOAWP`Q\GI201W/\.V`&/D]*R*,Y_CO0 |
362 |
M_A<``<2(JQ1"#GE*'`\*>4H<C\5^N.-!Z@`"B&FHACQ,+4``8<3`4`EY&``( |
363 |
M(*:A&O(P`!!`\!@`.=[$Q`1<SI/K>#,S,W`Y3Z[C@?:78+$?I^-!`""`P!Z` |
364 |
M.1Y4.;"SLY/M>&#MRL#!P4&VX['8C]?Q(``00&`/_&)@5`2R[WWZ*,"P?]<L |
365 |
MDAP/`C^A^C^\XV+8MG$*28X'@8:&!@$@E0M4SZ"EI46TXT$`(("8OO]V]P19 |
366 |
M#N+P\7]@>/[\.4F.__K+$JY?0.@;./1)<?S"A0M50(X'L4&!";6?*,>#`$`` |
367 |
M,?W]8[D-QEFS/"[FX\>/1#L>!/[^MH#K7SC;/^;#AP]$.QX$I*2D(F%L9F;F |
368 |
M#4#[B78\"``$$`L;9R.8<6AO2OV]N_+W@+%X':CY`S&:OWQOT&+GG@!F[]P< |
369 |
M6G_[%D0_T/%$Z?_TM5#KZ%%^,%M04/#@Y\^?WP.9;X#V_R!&/[`])0H08``; |
370 |
M,:Y)RPGQ-P````!)14Y$KD)@@E!+`P04````"`!,F),QH@RE]LQ(`0##2`$` |
371 |
M%@`5`&)R;W=S97(O5&]O;&)A<BYX8V8N9WI55`D``X\6QD%1><A!57@$`.@# |
372 |
M9`!L=U.0,#RTY#>V;=NV;=NV;=NV;=NV;=OVS/[W[CYN'CI)I^I4DM-).GA1 |
373 |
MX/_^MP!=:T`H(Z^U]JC,S/,#P>`@L4Q$>43PBB@PD%L:1A,.)`S?4?/]B4'L |
374 |
M0S.2IY-'>D02,20Q3I!3YA_V<\^Q"V<(1&?28T6/;S.OJ-QE5X)BOIR=G9BI |
375 |
M7]%YU4BIW33=U2BYW7&6:>*LV;GB'AB<T0\:_)!Z"8*WP/Y.DPR.@0-`_H[K |
376 |
MAYOY"8##OG?_$P(:E4$7TH\.+#AI-WTZ94$?P:"3QN;S>!3^3L^0R6)VV"RN |
377 |
M6"K5OQ99D99,EYCY6V$JB8VOO/B<L<*^D<'16?4K/%0Z7*BUS<VZ%JO>.S2] |
378 |
M.[2T.VO=M8BZ0M]9@(UUE<W*UA:-/NV3UL%>J\5@<.#NNQ\VPTZO@!WM7VZ9 |
379 |
M2[=\)7ZX`,J^/+CL'K7]01U#2)K^DM]9R)T#5$FO^$I]L8WOWN'TFMX<FA@8 |
380 |
M6-FMX:/+_F$FQ@\J2PR`JQ$+)XZ$/]()AJXA,F8_1][@%]>!*6B-)DDV1"W` |
381 |
M*1$^3I45WBI<(>T%-@J4!+,!2V/)NM%!6%6,&"V`41Y[7U#@6E5!4I6#22O' |
382 |
MN:K"P:I<]8S^.#Q9-O1YY2QSE3K+$T<X='[5CZ8=0*(B/-14)UG:VMA8V%W] |
383 |
M;#]9F(.[$]*D-B-EO/+VBIV9;,EJO>&]5X%'&=;%Z:\!_L:/0P/<G1;1[7-M |
384 |
MJ<?GHZ)B8B+BH6$AZ1#OMQL\C,3U<$/3SL>AG1]\8/>".<BU[==Z&(S#A6A_ |
385 |
MM,3KJ>FI@7FZ&`)IKRIJJ4&Y@`/)IE`F/_8'ZGAAR//EJ^TDE_O[,&CR?T.] |
386 |
M1[LY-U=;4&DG[!/;76&IAYCA@W"7R^WNZFIJRM'#.0`#I)T[.GA=744-J!WL |
387 |
M<@J),KR,@T>U-UFCF8T_:JOL*G@=P[O=ZW-KDRR+E"'0)?[N`/5K`%7MN\=> |
388 |
M#[?F5*O=V.^U^D,#0#A#+`=.`0VO4^]"N#?Z!?R]8O;_LCV[TY(!$H&SMC2C |
389 |
M(H9&\PT%_?:!6\SO:@)Z2/6U21?$O;,&(\%KXZX0:,/GMKR7UP$ZL`W@$0^Z |
390 |
M-;/L_P(F$7TW<.H#?:S]Y?%Z3P:]H83)_).;&W""^<6&\;W@6"??7+\`!7P/ |
391 |
M&QLV0495&J&$<?<^^Z7['OR\UZL0V`-YS^94;A&/S9)L>=FO?8W*ET<RD&<( |
392 |
MK`1BV]T<7:OU14`.!/=Q=D$X!NKZ?/('5U^T5\NC%+4D_*[6C0[FG-1SEF<8 |
393 |
M3%RMV\!'X,P'+`3_>;?S@L^-NB>+T!>1GH"/)=F&\IO&6^-S?GEXMV13?JD= |
394 |
M^R/.Z!FU+2J*2OI*E1-=Y^#PZC5@_=CS42'Y.ZVR5-G+>F#251&#[:Z\K%/$ |
395 |
M>2Z!<OB9"6+XR7%G#*LWO7^DBNM4T%70]85&-&+K]WB:F0X.'AY&QFND\'Z3 |
396 |
MVA,6RX!OA+`O1=:G;"`B,3QVM&MC^^[I88.7>2Q';I>0J"B;2>/@E'N?W/)" |
397 |
M\I?&T%=&3,+DF0EM5%#7Z.6RY>['.>F7EI6=:O?\^93Y)%493$[5"4W9<,1O |
398 |
M*RXN-3,V.3M%T^[Q/>K2&B%(EQ11=)34]#15M=7U/6#ACY*<%/3@YF"A:<K3 |
399 |
M5E;65!TX2@'LR+_??+FS!>SH;J2$?JB<KL;&1]/M<WA2=9#0$#%!B>/KS9E) |
400 |
MLL/O:.XNC*PUG`/<U8RAT@-JK`\MCXP!;/^1Y:7UANI(4<D$7'<0&T_34Y'J |
401 |
M[ZQ4KHZD=$#!BJG>SL]/(A,2%!0:(I15*"MGZC$K*G3KE]-)`9].B]C@4(;M |
402 |
M0E)1#^2_K+"+4QK3`FI%U-IS:=0A^^8/-8%W3WZX>3@BDP7^[&;<&W@]F</! |
403 |
M3LV'Q/#_^`#!Q>1Q>YA,R.-DIQ9"800H^D['WW-@*L>(I$@B^_V1\<]J\K^X |
404 |
M\V-\/BR9>GB`@*BHL,!HW[!FC=<"#`P<(B2<$Q[)CNM!3HMW!G>C&YOC(V<G |
405 |
MQMX_=T*CU8V5$Y<]>-#&#Q/-YO1!G5`[3%)<9(0ERD7#QO2E?+1&CJ\;)B$M |
406 |
M*S4SQ1/@YFNV.Z%ZB-`/JK;&]=,&E[JG&B,A)<B8-8TK@E3[&F]W5&T5]]^J |
407 |
M>S$)T)8!N&[WY7U]3`D>3E;&MS1I\BT7Y*U._^?$U#0"N.A@^^>;!P0&A\/I |
408 |
M?1QEM-R0:]?+<WO6YL$/TF%E/_V1CLZ%;,!IZCWI]71*H]7Z"];PJFYNWN;& |
409 |
M9W[/&NF$J6\I-:;*M<&URA3#JJDE)X8@"[0V,3'RFV*A9`;]M[[Y:8-\`*V? |
410 |
MC'34>&M'FAQA>)Q5!X<329@-4MK4=/5:I(?]=7E5UP<@\M.C$-S$;^O@ZN+T |
411 |
M=K_^L%&[X_7JVVO7!U2*>')\?7C9NV,T5L;5X^IU]W/&FQ?$C=N#,KZ5<-TR |
412 |
M]I7W]8K'[3R,\(!.[.7;Z826^#8D@_>`<F^SQ1.2`O*HH+?G0C[H@>]WRL)? |
413 |
MZJ-!AGPP6.9S#!0&B_>"\M$X2SX(@K)VMG]`U/N?A!"ZO.+>SB@+4^FZ4$38 |
414 |
M;WK<\.KU11K\F;^J6YJ^AG<'!A8<AD)CL`R\6FU__C&GBZMCR49=-6.Q2)M2 |
415 |
M8S$.BV>%A\.NK5#]5>08>%:2#54D*[FB]+<AC/G2>?/XUQ%@OV"-#O_UE&;] |
416 |
MI;#\S`1DTC+Y=)9.F<*,&D<]#$<_WY]\HR<DHO;&0[ED\^.P#;%A-7M(4>CM |
417 |
MKURRDR3_HO:F5ZTY@NO?W-$>175[<JP1YGASX)6?]I28>'/8T9Y5>6MZ>HJZ |
418 |
MRLK:"A`@RU#32XLL)N#/X+.R!T,6$*5'7ZDW;E$F!N)RFUM:6UI7VY77%5VA |
419 |
MWX(>[J10",C`969B8IV#MO;&5E[5G-@:SIA6*@9EEI?NCH:.AGI6ZNJJ:6D- |
420 |
M[2!6>GO.`ZF7%P"H'3X8#G?9F0$?@<3+KBFT]+!H4ZA^[%Y2]U>,ZN;*020P |
421 |
M5N\]<G$0?',Z\PPJPPRE0+GK,L<="5K;P(!2,O1O3\R=/G.8J"#GB?D"N.9? |
422 |
ML=DBHZ"@I:6DJ:G\",*EAQ<:?,QM1!0:[/#1*OL`JOCQ,_?>5J7Y2)XCTWC? |
423 |
MJ-']P/?++L2\[-G)OZPIJOB]'.;-JOV=6O=2`(.%!>=&1G/CX#C1LJ)&<2<= |
424 |
ML8DSXUZ/OP@M\#.MX#)LDU1_]W@`",#Q8U<F(`H766+<0JZZD_*!JQ1AB;Q8 |
425 |
MZ]`,/H!/004&O9N4@T*F%@#(<4>J%-$SJ[=PV[8`%DN/,M:U8\(F`F2!-I>U |
426 |
MEH9*G1Q8)1#$`&Z7J7$>/EZ9%:KP7E17B8@MVV>0T>=<*73K;OAZZT5&QL9& |
427 |
MQ/2X/RARO^-%9Z7\0.T$KD79(;N6H^T1!L,*Y`M!G[MDVN%8X@0B9DI"[9$N |
428 |
M=P$#UU<YYQULA7D6S2NR0+[P'HRQ19XV>?_9.SFYO3UO-QBA*?_QK,.EDY<) |
429 |
M>#[HRS4C_<4?O+[UB]KOKD.FI]<(R#";+V[(S_'1;9^!OPVW`Q>TDAON/;7` |
430 |
M:05_9V,!+[]F'+P2[7KY:M7SBZ6KG?QKC9V%PAT8/`J?8XG#&V9=<#(0$S=* |
431 |
MRN>P`UV^HA?M-.2+&H5:+G+KM+*RGT2XQI"^EM6ET^L-R-[M<%JKY?'J;FBZ |
432 |
M?N-P?J^ON_O;5B<5#`@>+9QPH<6@7%E96%A96@G]I#@M]WK\KN_B^Y%GQI!] |
433 |
M86]-+&(W\0#(%F_HNM>#V[]J<TGK#5CI^/-CJ5_&4K=Q=7W";K"/*>N9PC+U |
434 |
M<PZZ^.*N&@B�[#0>G]8@IYKW\*AHX+1(`C\K+W7I>C1_87TAT*&_)'*SI8 |
435 |
M,I@.:\`<!47GTL<./HACZBGN>YKW,9SO>\K?Q6+>=Q*IH1CB031:::B0K")+ |
436 |
M8?6]]#FL4^9RQ_]^-).K^G'$)TC(=R3^-9-YV7^?NL]D+`""Q4-LO`42?.W' |
437 |
MR3,'VM5$IZ7O-O"&(((>)<F^$/`L+R@]"E4TAKS`_/$8>%M)*8'8FM`J%IH[ |
438 |
M\]V)6T$988-LG"!>Y"6NK>TM/?W-B2RT\J@'N?9X).QU$!?/NCWY#!T%DW'A |
439 |
M4T[S4?OG5C8=$YS..(CJ6CSS-=8YFE=GRE/^TTO(!VJ;-@$#%T3N]'D<5B]Y |
440 |
MA972T@(W"`@GIK(W!=D!K;6;@(7APOHI^/SQ='"E3T-Z.UCBSJF+@(KP7H!> |
441 |
MVN:YTZ6TA#SC\$9[&KQWL/_33<9&3\A-S>X/J1_X<W9P`B0(6,'OX>^G+[[_ |
442 |
M\!?*P<.1TG:W)B:T(*\\HNR$W1W6VIN(ANWX:&R/[[RPOP]"7W6S+O&']`L0 |
443 |
M0`8$)-2K`7[E*C4517G['>^9L+2_+II>M-VTHK*5XN#F`4;W>/`=<A@R^4&: |
444 |
M+[ZV)V67K*RZU^,64,1AHD3!7STAG9-1S0&_X>%N#`CEVJ.K[5[47MUXB;B8 |
445 |
M^?0/,+,]CU0T$_5BL2]!R_[G-",*C@-AC!5HT8K1J?0#/8:AF@*QAIJ9VKPX |
446 |
M4F*NX_FZNWQ)'08+:Y_..FU"VFE;)RJ#M+VK*VF1,3;OH/VSJH/%?B^^%2(T |
447 |
M!954?WO5H.(^:8JOB9*/@ZCEF-4R4D`=@]E%.B(N:FXZNLN1@N&!L7E!=^8' |
448 |
M0LWP0GWD([U\">$<;&*7JD%!P6Q..!<2"K2+'K-*B*@<7$3=O+X-*$.Z4U?] |
449 |
MUK?_"NGK3U.X-%'W(8HN,@)-PM>V]<ST*VFZE"'*?;`A05F:6CSMH/@D]]:6 |
450 |
M]FFT<(.YM-V]HU;7NLE^]ZN]O76EK)9*C5:O<]UT0%N:&@WI"Q0):>;!6=?& |
451 |
MJLMR)!$.]<$RK>0(I^0C?V.ZS4;S9P$,REJ-5HO;CC2SAIH%I(V(R('--FS8 |
452 |
M=FSR+[MMQG:V\01*&ZYH8W*QB;'IJ=')2:E/N$EGAJI=5$^IN)CD>E6L2>-: |
453 |
MO7/1E6U,IU7WF":]AIK@OU\"16ZD6>+A]L/CPP2$<B`W+RT!Q\$C`?-69UQ: |
454 |
MM?I)H&F7/;\)Z])CL?$[1/J_ONO$1.YYZX8(![7#?1\.`H*/1+),F:4=TX=% |
455 |
ME*>WH@W:H@U"V7>K+R8`7ZM[0MTMMW`W\C:MP@UB6B@;5#J-5D.\SO-)5^:L |
456 |
MDIY8GN],`*?V@P223)E#;KN"F;"HM$]"&BN.S)E%W6TY)"*8Z=*&$<_=0)&F |
457 |
MV'M3*N$FC<TMNHP:AJP6T<(ERA@59L4!ZZB:W;RO6JQM=)<,T2J-3;J!'AT3 |
458 |
MNP@O+K]7["H*+H[;Q)W(J,`5:H9J;9,(5:2MV4R;C]N%.M[<'N>+!7MEY*!Z |
459 |
M6G).UY(7K[L:W9_=:3<^[5;T&M$8O49]4!ZAA]FMI3)-?RQ/D:/4F1Q9&37I |
460 |
M+$L&$T;/F,\M9*C-0K=)XZ2U>4O-NE^C[70$(EV<2-6BEA:+<BN*N9C7;7._ |
461 |
MP(7@3-$(863-F%4OG]\O554AEW".!*SI^HR'R(8$`I-W5'KHO3S:(N-D!B(6 |
462 |
MYN%N6R-=BGO22?19AK0(?$&,2W@3&XY=Z0\2YXR#:@C&C&5Y4B96UN3\*<LI |
463 |
M20<RRLBY`4B=9W:K#.OT'<(*!I/J;W.PS>K6[L;"RL[+UYM&XN:-MQ6WVT4W |
464 |
ME)*3D;/H>5.A4ZPIXRL.VG'U4\+UZM;V[NKFXG!*0TG;G.$9:DJ:TL@3D;9( |
465 |
MJ2@[78&L&?H`CJEY4P!<RJR9<BH*&EI:"EH*"AH*B"$-MD@[A;;U0L/.=(H> |
466 |
M#-B,\3/)F!@34:T%TP#SINUE9X=.1ANZQB(AN0@Y"B&;`<4>0BHAHND_$+5G |
467 |
MN7B8S>E5L;$P%T$MX,,$FDUH=WYFW$8D"S31PAEKG^$?9H;%Y@(NS,70Z`'9 |
468 |
M71.)<T8M/+RR%<RJC;B$MYJP4+`8:79<H$YR$KR"&4"/K(U/]H-3S_?UPAE2 |
469 |
M#'3,2YOC]OX)(T#@K`U#]0L#*%8EQ21H\J#:-.[M&1C1GZ$3\,L(!74,;U/F |
470 |
M7Q*@(`@DZ.<7L5@V`"V&3M*Z"ZM+)40G=NR_3-X2NL1ZSWUX52G"1'E/R0;2 |
471 |
M;F\7*XNH%I869I9Q9D$%7>*;CJK<KLLWUY10DN0&64GBU31,#(F7D74$$<,B |
472 |
MN5M*]MJW7\]Z,*F!.-UW(@)(R25]&;*RD8O`.?8&T&_CNY/A3.3B%2D+S!(G |
473 |
M0UDP7V[[;7F>2/$/H@S6$-`%9LHCY_U3C7606`R2$H+I17=N8'#-8`2,8OO. |
474 |
M;%9$\U@,LVJ!)>8HA-1!(ACAA$H`%/7NR*4C>D"F9$29W[RL]WSPU816`7FD |
475 |
MH'^Q\?/O>?S,983SPA4]D4GVF.AI]M/J1"K:A,,4A<MU_D@(HR\$<;WMO&1C |
476 |
M[`F3'^4$8^FO(=#MN!FD!*+4POH^DF!DF94RS%XB88B#^G(R&+I3SON=.ZA% |
477 |
M#IW-67%,R:_PTJUY^6,N&M$'=#04ITAG&)V6%5>.D`$`$U9;_\24]OU]RC(R |
478 |
M%DM[C$)TSDM(B$8'.\KCY(YL6^ZU)N3^,4SKIF`HB$8G[RF+*A&&,*F&SA73 |
479 |
M@R`ATP52;!9CE=G+0:[4##@D>5`:"UR)";D:$HI5YG=DGXK&#-(C8\!8`+@# |
480 |
MPA317#%%[\H/T.N376#4(V'**-%G@F+*H'&7%_#=(;C++]I)`RT*6$F=^:R- |
481 |
M-.ZTH?KO#<QN(C8W"6NQ>]G>GIW^_IG;TB&`\5F[(KD2/[NUQG0+)]?%!;VD |
482 |
M([/IT+<QED6A)]Q6TT$P>$Q]R[#?SHAST@ZE^3XX]F5G=W>KBE=?7<$S+GMN |
483 |
M)%0,A1-<.$Q)1GQ=ZEWK>"@CJW7VJ>PPXUL1T3H4FAINATM)!W;!`^0(%YE/ |
484 |
MEP^@QUB1RK*.>1Q@L`E&X[(@I`G;$]$*=`KP:R`+@[@,XU,"$@+.Q#)K$3FS |
485 |
M[:RHK+STUF76@YO_NCO-9CVQB[QQ^-R][;Q\_=RZM0VB8@K=?;-(;G>GU(XY |
486 |
MN,#01IS#):2-Y:AC972OHT".1G?D9L,_40Q?HD8F]ID8[_(%#7+-!ZWUL3O) |
487 |
M+*96&P^XH4.&!50;TN<>8B([_F2][6K5S]M%@,'6D>7W-`N=YL!-<E(30TT$ |
488 |
M_.03F`=X>#,1B'9`'K_D:>N=<MD-#(Y(D0K)W2,P\5<\E-0-4A_>>W/#.T&= |
489 |
MH9?2\_!J-J`XK^_O]";-FW^3"EQZ+X_-G\`$V6V+HQ4&$[LGAGQEZ0:G@R8I |
490 |
ME/5DH:*A_!8Q$:CYF.5OR"#X@%6C\1%?5EY3JDO-[SV4BPW9)HDNV?\,?HS7 |
491 |
MWP1!2&0&'7EQ;FXJC)"IH\3HD]`?ZVO2;$1'8&%55:U(/#!,+F&!PC=:@*"> |
492 |
MZ+G+Q\:$\S2`([]3/SM%`TJ$%OPY5>_8"G'HU'9Y_UYG)%GA0&3\RFVC]\K+ |
493 |
MJ][OS[8\5>V-5E(!*]9P"@([HB6KYB<6H';3E=(+.'R.F:@'Y-W;QQ/^S-9< |
494 |
MJ=$)`]-B1.#TZN"[9("!GYK]0B?GYX,X&(2Q?>#;N7\9D=U*]OA>G<XL%]>= |
495 |
M2@_1`H1X(8W'!$FE^=[%T<HYI!)'143Q=AQ5]:XSV]&%WIV.0*'V]NWS['7P |
496 |
MLLLLQ7?NX4/91R3R"ZC9DQ$=.;M,3PCI?8.\K[3KWUYO.'63_<MCE"A&CF;4 |
497 |
M2+3>C0CTL&!;$L3+>_^XDZKIC_78V[B?^6:\\;U$8&CP`2_WJEA3K%!^S5*I |
498 |
MNNG/?`]P&I\*CE,AMR!Y._&F8@PWU]U^N*G%R:/S67MB>;Q95>&MVALT(O,9 |
499 |
M5YTL`L/C>3\?$'-[C]=MB":`#4?PP1+M%I.$)]H0'09/=Z,2-77OF*J?P`8\ |
500 |
M:FQR<G0.3^"X:QL2OY2VFV,C#D\`$),_%+#-!<@RIJ/EO_#A,C0N?=-:TATX |
501 |
MA4$FP>.E5-81.<QD-KYO36B)]$XSN1DWS\=YJ]>^_<ZOF'Y*\Q"1RF!+X |
502 |
MG0M/R+_6T6H%!;;=>R#`%+X\VS$B/F::]T")H5?M&(%C>.29?7^_ZNH:"1<H |
503 |
MT^D;=;HL;MB_,K;]Q9:Y)AH&?S8@B[[W1Y`L^M+O'$N.*/)$2&Q`$$@,PY<0 |
504 |
MA[A$)+ZT;$D[:YY`"MV`1^P$FTI4"CF1DI'ZO,7`SX#CB/:3D!PG"T,@OD!9 |
505 |
M02'YT&#ST]X#3#S:0G7^)Q$3J8@1->A#)H?.!5YE#ZN0F)B6EY63D>OI.?:, |
506 |
MFIRMO;\%0!+Y@;2'O@"FT`A+ML\Y\G.]#09W:X;]>6H$)2G;RW=OD=S]=_NN |
507 |
M(&2RSG[51B39"@;LBU5O,U7:IR6/^%I@YY6\#9`\C<5G*ZXG+-%/ZO<7<X6J |
508 |
M)=]H,;.MFIS^M%C.;'1^]'#TRQTOF&[]BF9PR.@W$ZB:GGY7(JFX<1"DEX@O |
509 |
M/NH-A&\1JT*>##E"12=/*"X(BPOQ<9LWY5.6$.3U@V:;'H:?H`&:@.O__*\8 |
510 |
M#'_GW_&;0K!H/'T-_D&.=8&\-T@4^D/6?"3"[,0";-EHSYR)ZCR**9&@<:,; |
511 |
MEK!T'B<'YWJ`P(.0$K]_Y7&5]#IVA(%YJ!(7X3"$L4W]R-P!1H?DTE'E9:9V |
512 |
M<J]+,Y-P:%`]D"RYRVX&REIAD='LR.@-?]/D!2;AV([`+B9!HGH"/$FDG8C3 |
513 |
M.-0M+"'I$AMOOE$4J3L=CR62(+$K5.9)4;`M?J$8G]6J,AB8%S"=&FI$V>7T |
514 |
M'J'H(ZU+%`+;^,AN*&DQ.S:#8@AZ1U[:.@91=#B"&-CD@#E=T,7K"Y1Z9B29 |
515 |
M^F#W8/:33H!P%Y9<=`I<`/5U=3VD`$5X(J%,4:FLCJ[]@SJ4Y*OOZ<[&VB;? |
516 |
M\L#N*N25/9I`HEI);34YU607QMD:8.)/$@^G_S$9VY?NJB+PQ(!R=L2?JJH" |
517 |
M!(^&JK?(1P\(R5?IJP\D2>E"W?K&^+QH[$&OBI/U=(<3PX("`I\&_^,3%VX- |
518 |
M/@.:L3S&Z-(*T8TU`1J_A+2PNOK[0`QJ<O5#UFHDXL]0UKZURL;&9#4\0((! |
519 |
MH:@UZ;N'VS"X&4U20,ZC'04`X2D[2(E^"N0\!C0\Q'HSC_Z-7@]I>X(,%M^C |
520 |
M.B]&:-P&S_BY@"@<(R>1D&?6/2+D-_F4X555<-*6>+C-U6<E54'P[K"Q^I%Y |
521 |
M")0#-\F/C\%*@/@]*P9-NS^XU\X(9-K]M%"^EU8JE\5DYCJDK#"E_0>M85(= |
522 |
M8C4(CR@M:K#"*C.S/-T``A;'BH+@^%D@3>5B._:5K920I2L@OVL^/LHZ"NOR |
523 |
M5+OK!673T,B8`3BE%T!HKTB@M/Z+8P1>K4HO[[SJ:628W>IK@#N8-I*O3CW" |
524 |
M.PHK_)0T]@5E48W`#C<RY%$PU&`4?6L_`".K+/:&6GV*)/VG#'DW]IJ'7ACX |
525 |
M[C'TS!2=%](B2W[\_-XN5!1[!OP`B)H76D&R!JQ!*(T1*-2@.WP@(_2;<`^% |
526 |
M^U[L:+%G"SA&#R@7Y%"8D&V@N^PFA)-F\$(TDS!3W4O*QIM;R%Y-PRM@VA6^ |
527 |
M[4S,!4W*9N'Y"82-0U3UEY$'Z/I^).W?`;GUQ4]@C_XN::UN5F8VR:*;PJ"* |
528 |
M:91,-?8/8:2U$$)VW!-R`''6KZ60`BMOX#[?.BSF@J9^RA$H5V$^%V1G$;X, |
529 |
M_]\$!]@Y=:?:G\'0Y\;\JD_^D,P?^E=BDK*U8[W')*9F2A>-V/RYA168&#[@ |
530 |
M%&:][>-54=C?A(#D=HA-8).^)FE[$AI#%7F'.0]B)"FGPXW;=OYNK'Y8_CDM |
531 |
MFO1M,/0.B*F^9?H5_LA,H"DRYBUAB4)4H"4_X3T)2G_?%9]%:-K:=`;O;'R- |
532 |
MTA5@?;+\%/%MJ<E7FXW6J>V)K8BZE8=>!]7)9(?_QY16:B`80JKH4LDOD,`` |
533 |
M#-+:3I<82)OJ=:*MP0#<<$"!EW8]$?;`<4X>5+3"(Q]@],*CV3\@PY%"YZ#H |
534 |
MUO/9^7W:+HXV$==^T+>#J5=WK@.,??V4HJ\)^5./<WH`SFN+Y&\_\+@:Q<QH |
535 |
MPM("1,U72MMCNE&4^AB\:4$U2S%(Z;I&6K^P+"^3$.6"#]S8S%@B7M$RRY)M |
536 |
M`$83N./D"XY(IH;-SD5\[*ZFK(C22ND7K`D3\M":RG8F]#=WWF2N0?$Q'1K/ |
537 |
M0:7N@UN:6!.82^)P@RP0115IE*M%;4>04H).S?"<<#995FM-<C=LOEVD;Z); |
538 |
M08RI)>^GE2CJ76.U,D,4$%WE)5TWC@1'CM]G)`&T`-A@CPIM0C8YD1H<$6JZ |
539 |
M@Q<&R%03="&G$]T&`!K+T>6T)HW2"W9"WVE%#I*SO7ZE+._8@+3'3R0"&CHW |
540 |
M^;;R\@;_-/'SDZD(,D2@OB$HBT[&MI5'"Z%)X()+1E5[,0PP$VO&IR_7`L<F |
541 |
M7:VXM1#U_'C4&VFB(AH*:3GU.)\99JX:`M+18?H2]S-&D3$';CO4:0`LC:F< |
542 |
M[U!KA2RG&HJR21>V\06I"#1$Q$);X'T6E)Q7R(Z:%0GG4W?SJ$UK)*K*IZLU |
543 |
M"WRKG-:&`7S++'$8=O9MFC4N3LVQU=340Q0*+9B]>_AE:4LEAJO1A6S;D\2M |
544 |
ME/0SDAB$PRL0HHH)X@R,VC"ZT;$Q$9'DW%'8"M6C'LKW>4LFVLSTR'1O0-'A |
545 |
MR]<>+B.1R,H*AM[=PEUIW$3P1,'%@8@JRBKXE9O)&8S\X6.L"9C!=/*DVM/) |
546 |
M2H:A/0OK<C/HPM1;^@U7\F!@X+&Q4>&<%N-)U(K(2&7$E`KQ$LK(,?^IXU$* |
547 |
M;JW"SL;Q/@&E,6,MYY:1/A36RD1E&)=SH,C.U]2@$1>VP63WPX]E,F&R7BDA |
548 |
ML^$O_>Y[XMS8M&$,0Z-"(B)"R7O#/!]4Y6C0F*(RN1!<CD"P7)H[5'K6PAVH |
549 |
MEQ<7Y9S6UL[6SLY'!P^'!,B4Y[(J/[];>;?GB&!U63X\F!*AEZ:(\CGT(`(` |
550 |
MU7*0M83(!9$Q8;&\&.70,+1(BB+FC^3$+Y4P.V#$$-KD,LZ<L8:++7?XS |
551 |
MI7XI"9F40Y_^QL3"P4"Q`GQR*18](+8%[)@3IZ=G;`H,"W29RRO+F%&K><D7 |
552 |
M:1'CXXTFA(1[X>"PO`^6._;26F"^1"5*9$G)"<KD27CIO1FD8YD6SB(`.>7, |
553 |
M*ZF*Q='$QL3%Q,5#1)6#HNZP,?W6$B<BXS.:E`5S<VF`M[9?7PL)!X6(=V04 |
554 |
MU%,>;WO@\F`H#I=/9!=)KT-B;C)!H3@<KL94:Q(&'NREH?\+?[RQ":""R1L@ |
555 |
M")9KDDQ_DNR_R#/IJS39;?<]KM1)R-]Z.PW2PP\]6&HNQAE0`UJ=IAF>^AG\ |
556 |
M__D.M`TW_(QE+(>!+%CL]5V:"7/Q_DD3JKV6NW$&M""2@5.=N<-T.V\*O:-I |
557 |
M7QML)X9TR-,^7]2Q[S:TDY(L_8-TJ(``*QILI__N9+S#]/_4#K2DG)B7>U\R |
558 |
MSI"]1'+/C3%I[(L[<:TA2;/2`T?LQ$#`^WO],E->RZ1#TN:BJ1][UCB=VZ?@ |
559 |
M=\3K.C._J-E:VO[N!7Y;PL`79_SZCO0W%V]\>%B(/&*>62W.F+P9K>?]LF*V |
560 |
M&)T+##`S37PA=VF%EY:JA4A.14='E9:2==<<+R.[9EPDT@@1*O?MX6\87#Y5 |
561 |
M%:F<'"E2J;!`Z02U<TSL5HIE@S0_DS0X+"ACHR+B45'^P[5SK"TQ<@4[\<6U |
562 |
M`(-B%QM58@1S5E1$F#QY6'2##G;'34Q*O!\2%ANMI":U8FFUS&+I(B*BD5!Y |
563 |
M#RY>M<4@*PH*'WOR.!0BS*EPMY=@;VEH6%AAKJ/LK*QL'$SX+0UPR=8*#\MM |
564 |
M8<$FTON@2Z.UTYT/M+=_XV81`F!91NG^#$_7NE7:N*:H)%+YH-NS*75H\BZ% |
565 |
MM7(O[0&,8A`;G4]$3H*$^WI5H:T]8*T<F44I6?+NAJ[TJKN3:W%Y)14I%1E@ |
566 |
M'!D@!/F(=\K+'BQ\](.\@#Q$+P_]`\B<E)>7E?6#A"AS_W`T5FZ46+2,0!G, |
567 |
M.?S7K>ALXBE>&F;\O_#K0VST8(*-4+RHFOGA&'NVQ,QD=VB%M+-E/MH-CN:> |
568 |
M2XH!$S^=@,=:EPU#;,3<:A_M@>MP&VO`J]5JV!"F4ZN_+/PS2Y_W>X0CN+T] |
569 |
MRA=DL#J3S>N4O1.1?/RN5`/-A+<F/<839:`:6S"*OO-IW#"*&IH1%]5JZ[KS |
570 |
M./4HL(R_`W7L[NAX2`<!`$!%\WTHIOLG]+U8Z%.WL:Z>[48%JT<P3$]*QI=. |
571 |
MK@!MY\G:5U^KYZ68VTEQ;$X8R$-H`@2<95^:#'L]:.$R=XH6ZLV3ECDUX]BS |
572 |
M(\S6<#DH6$RF.<1JS@R#^>G!;82O5T=:A=852CR<PX?G4'K_+Q@SP?2^(&^* |
573 |
MD;,Q@WRBZCBUM+6SNUU8N<WJ*.VQ]J.$(MB:QQF<M^'LW_5!8:H/55GRF?-I |
574 |
M<JFHBF8OZ9^@KXZ+"<4T(6SS4?(C&-Q#I9*L(9@L`T1F>_OZ4^)3J),9$<*V |
575 |
MP`TZB!V7B8GIH4H9;+2BEI*,BM5*RN7DY.)BX;>81[GRUB@YAEN\PK"5W+*/ |
576 |
M1.JOL9?@`8@+,HI(SHI(K@@GQ-?+\U`^JF``A:*7H$:C4FO31Q1L<""=6J&D |
577 |
M"[T=`L:)`&LO[3BHF81R)0<D5)OQF2Q?1)Z!!U85O70$H78!>-E0!=-T79GL |
578 |
M;V*(9+4X:7,B0H5(-A'-QD:"LG)("$AEX""@?E18Q\;;W9VHHL8C<@7R\1D? |
579 |
MI7OR'SD?'1T;V]7OCDX_SG3O#]CKW1:>,!C&*^C/_5`N3Q=O?3LM3_;B$,7_ |
580 |
MPI]6-F!N)(8<#3N2SAT=(J5ZZ^-A*)HY-^4C1*Y)>HQ^"8%>Q;[P^PWUK:FC |
581 |
ME\UPSS*<O5)CAP0\Y/">XD#`/1&3_1&=&?=M.`>4=@B5[?2!#X.O,8AN1.5# |
582 |
M,V+;LTPWD4RX/@S#*?2``OT)3/R@74=_Z+H"L",#W+`2\A:(60`/1=OP\<\$ |
583 |
M9-O+M.ZZ3H]&]*&I>N%DF,;1;GX'G^L\6F!4_X]AQ'QT,P)1-STA`)'C\!#@ |
584 |
M-KD6X7H!(/VB$;2[(02>$<3;H#TJD+O4NSIX&]KZKW_Q;(%N<+@%<TL()WA\ |
585 |
M/\FWRKWR/N@WRAI#/9OR2)\/_#-$\`CU)?DI8;KRT\Y6F,/J_92$_F5?-N5= |
586 |
M_AX8Y3XYNHJ>1P3,EJ8J;ST=8[3^:7X"!JWI[S+`.E%/"&?X6R:OS2-RW,7N |
587 |
M+JX2M_<NIBW9HE716$$T9VQ5'U;G]0W#;+L:Y."\]..N(QE9VFYM;<_!D744 |
588 |
M5UI,H$P>0I*WZ<QC!G-AW(@X;Z"M(6O7QGY6E7^V>63I?MPZ(@_)U<G^\?&\ |
589 |
ME"@1G]171XP+MI7C55C)3Y]-[*QRV^FYP58,!^[E4@R':?3Y)O85J8M-;+:< |
590 |
MVNGXS.4D]I69BT&LFT\G_=B\1,ZTPT;X[.F[:][L:3C)]21V0\KOTDR"D-,V |
591 |
M)(BN0'H-AUK=J34)$'B>Z6$U>RR+*!*9(;QRW,KE&&5`]S^GN4G'RFUU545M |
592 |
M;?5X?NP(77FU-365%;4JD,4\\PX7*Z#*U+]$/4U%1X'HFAH[1O1,2ZLGAM2Q |
593 |
MMM(CK+FJ%;4%FZ$WZ@N;4A$K==6J"JJ@2W%@G2ZU&2&;YN]:N3@VL)QJ5="+ |
594 |
MQ7E>)QG54E.?HEB3/'7E83_^Q>W/.(EZ$'=[8O+4P+@/VLMO."\U0%65CI:U |
595 |
MW3-Z2'=^X!$($1"1`>'FJ_A,IT^I3`[EM]1#&B2`)60$%$)L_IAI+5@.5<O# |
596 |
M9(YDH]3(S+Y\\PK_5,8<HG%O?R;[U[[5MKGI!+V_,[_.%^WO7)_OT)9>AYZ[ |
597 |
MW_6S:[L*E-?(S</(S<WMEIYK:4K0/)+J#"`PJ-G5G!V?&G4O&>4&I>5)E!$1 |
598 |
M$;P?7SJU3"U0U;$U):[)K^V?3:^WNS]7O=_]R`("E)QN3&^ZM5AG:I\<>:'+ |
599 |
M%(2J6K&17?66IT\$A1&!@2F716VOY+;'@$`H==+^.2]7GQ:KM5NZOO4.)ZSZ |
600 |
M//-*E%G(".H]'5(G-S"J/W)SC[C5Q0.JS.`4"S*+>N*;<FI0JC`*?'`5<:!. |
601 |
M,6;$EL(00JQJ[;+^CY40RE6<ED[0*EKWYI^V)-3%4UB5_2J.R:8^[#Z/[U6W |
602 |
MMM==;M<;==OA4A?0"^]ZQR;`+$+(*2L52\[]O*JC*I:4I#2LDA/]$V^05F'I |
603 |
MG['AM-%'HQ2Z&`P>R^EQB+KAD4Q/PY-$D-\6!Y'E;;9=#Y_+*[^\U\ED"[MN |
604 |
MWI\=]*3FE")4]=:#)A<(*;21;K0GW>7F>XV%A"?465;QM("4+U1.^"3(9OFD |
605 |
MB.J1`->7MC&_^.]\WJ>9MJ_>C4&;`\1KX0A,>MQ#.[>REO0UG&9(^?W&58I_ |
606 |
MR,@Q-H(Z2)>9\F]@1;2ZES.W;A9;;64LPKMP:;4[[0XWBW"M"6DN/ZJJJS57 |
607 |
M&JP);E1'JT&-C6%MMKA^A(_7>7NZY:IH9F8E?"2/Q98EE=<&$9HT?5/.Z64% |
608 |
MF$5@A%OS293)C]]>'B4F&!`!BD6)"SP+2`-J[_N[.UT0;DZY`-[`&X/?W=VW |
609 |
M')XT4F.BK0=F=?E)M5<E'-`-JKQQUOCT%0[`JO"`)Q-($`%22:^X30'\04'$ |
610 |
M0(`GI^F-]BG`?+6T^,"K^(`IYG4@CS=O<1I$\^?\$+W1Y:W\^J[#H\I!ST#U |
611 |
MCE7`6$2/4E;*TW4R.CHH:B45Z=G&R'2`5'A,]Q_7%7;!,;X6T&RB')[+XPA% |
612 |
MH6$RZMA&L0)09-+UOTW%'`E+IK)9W#<O$W1RF8PVF\\:4-,,Y@>9$(>\6GF= |
613 |
MU@[3@><@"TZETGY<EK->=WU;_X)4Y(;W*X7$9L5GR^5PN)]?!F2V26TOF/8^ |
614 |
M,N_7@OM(OW^\[L7>^NWGNSG=[ZOF1R$#@HI0QT9I8R/;(OK?UTDDJE1):")B |
615 |
MVD+ZWT4DOFRWQ:4T,3^$@26]S?ZTE9(::&][RL3T9W)^,EA8U/A,.:='U&,6 |
616 |
M7M:1$-3=C?[8V&RM8:UFLI*A?2>LB>+UO?X.?W.XAF:WIR=2N*%`H>Y,='HV |
617 |
M*:FV((.LM>4&\RO+\>GBYD2A50-*NIAR:FS.$;7PE;4"Z>D<L`/N?TBZ7C6" |
618 |
MYJ?9,@&"/5*WY)GH+.Q)/P1PKF(D56)>T_+:?FYYJ>`SO<L&9C=4H(/9,,#K |
619 |
M<'LXOII24/&9W\I!\V9]Y0NKC7#J:FKV*9E-ZD@Q1TY@^-LM5I<IC,2BC\4H |
620 |
MP^"\',[K"8S&QKK-.N!8G/I`KWY3[E^YZGHY+`:+)Y#&>K@='H_]I.-:M\,R |
621 |
M.4R"TN/6:J,]_&R?K\\W[KH?1Y\U[,2$P[2,YL\K:PA`D7IY[;4=M7V<W];T |
622 |
MKG7':HYV_4BA:6T']9!^,^_?[(;P=H#"`FP)>>IRQ>G('UYC8U^Y!V=5^-$E |
623 |
M>[Z@L5;'M")G.B&OM_E)[G@<EBZ6LD@]G_9E,A`GF^%VE(.WAF8*CEVJ.OCK |
624 |
M="_6D>)VUB5B3I_MR8Q\>Y!XBER0FLVFF4R>*W74&'8U+2._-IK8Q72<D2[U |
625 |
MRL`Z=4(\T\G'Z47@/CL0:]/'I'04H\G1NAVP`\/R/8+`^@.<W$K<`H%;H/<' |
626 |
M0Z(2HS*AT!CLT=JC.J'0.J*^0V@%;>C[#X;V].VYIGV61.1?@-9;7;94SVJ^ |
627 |
M62]6:0,QER@F*+PC63'^CA3?C6E#I%;UN47.J9<-+@9!T(NA6*!0#_]@H;K` |
628 |
M-:>S!V;DP^;2$7!YA3B#X-JR%D3D#6_?ZQ^.A@9'PQP,.A\,9@UF0':4+Z\7 |
629 |
M=?\!;8.>@\+&P_9SXSXI^SW]NW^#VP<L_GT!>.X;SH.;_UBB[E?&[G&TH"/[ |
630 |
M)R?GB3[;$N]921X8\&9-:^Z?!O+F=%4&/>H!(HMW.7[$+:)KI7G_5PU"EDP' |
631 |
MM`-Q#[*SP!G6^9GYM`^L:/)C'-!XB2P+:=9=M7UJ:P47C6+OXZ)VKJL1SJVK |
632 |
MTL;`P"#BP*R0X*X<(*DR^70&!Z.6%B%KCY/?:PWMX\>39]Q`Z`5"YQ:J>7*S |
633 |
M941WNU'TEA"K>/)`K)(1HMCB<E!'08@8-SF``E*7+8>+L:ETQ[P#T"Q"1G84 |
634 |
M:77&]RM9+5]9'D846)3_E=*+4T3[B+5<>*:=_)M/G5M,U33:%-E0%3D,=S[% |
635 |
MAGO98/G;3:GK7!=;PD(F=N"9G%.L%'*%C"@2@AW,4U&!%?*L3,"B`U^5MJT: |
636 |
M@XA35S2:68E^KI/]@FHI7]:P!A':V<<UC:?Z@H1SQQD@F;'`]GDMP8D5NJ(- |
637 |
M+&C<7@]O-=(IP]*&K-/,%72Z\%8D*]@$RL,KT-(9=>N1)>#S>M:,+*FD%Z)< |
638 |
M[6A463%J4&BU:YK_$GDM5V>6\]]4.M3S5#-:K<C:E%ZRR8_!5-:IC-JD7<)A |
639 |
M:W[R,98XAIVOA?.ZBXVJ=."$&LJ;WJ168\\W=N#8I$=!J$0M=N@]I_X8GT,[ |
640 |
MJ^EX-5/JRZ$\)'E`'K;WQDEW!)P$RS3YIPQMLF[S45RKR30+V&:MMRJ`F1.< |
641 |
M]BUD4L9R_GUOQ*@`IJ0=D/F;-:OC.HO9EUKUF[>QFSV\+Z0_&.)H!`)_K.H/ |
642 |
M*2J<64!G@'$I(\=@D%V7":^N)LE@KM!!*$Z*3K4&?4)!6#-]]6VQL0Q'L<9V |
643 |
M9944KX07%#W"9(>UQFQQ54+D>?)K:9G&!77B`T/.MSH\F:D$\T-AF]*Z3H.B |
644 |
MJJNQ#R`E3WIQ^>YD(P#K8V$]O[23+:/PM>MD:S`#WTVERAM4";\L7S:!F,O1 |
645 |
M'YT_^^M=_#O5*P`RIQL@R<RO$G_?R0N]9VJ'OKE=@!9/"[]_LBD\7Z[@H<LL |
646 |
M*$]&^.WVEH(V,8X6A<9YC_V2'9:_4$RL'+?V+W`J2PP-`6840!`:0P\]3;FN |
647 |
MCR"X)NR;#2YX5_R\R6XE=,J&@<[A&LE3'#G\U2VV.VE`^'<D&<<"F@<M$6K9 |
648 |
M?FZ/PZ*JUAO7/_'=!3/()]ZW!DE#MX3D^^+W%L/I5,TP6);)(Q)-<("&@^4R |
649 |
M#7K@)]4R&1WL9Z9D%"S'`NNAK5A(]AU^AH7XJ\;%ZI2E,B!'ZJT:1G+@-^-< |
650 |
M_([VB`2>Y[Q-`_%795.=<Q@:K!>\V$D@.MCW^)"XSO%W?7\=G&<K^X[J2HGX |
651 |
MNY1)2?3-U]6`"?Z'0;,J_B[:E1(OUA@:;&?;33JXMD4OZZIL%&QG.NXY:#8: |
652 |
MC>3*O0EZD)75''&_T)APWQ=G&WT_<[W%_VY^-&YVQTKL#25D%_P?LQ-Y3S/= |
653 |
MRS#(QN3'--AG\A]/G8[P2X>GH^72F\5QD&4D)/<NLI'Q".4!%'%/DV](Z.WS |
654 |
M^A=S?_*"-`VAESM:8I$$QHC_(QS\UT6#/,%F)WMA%5HX1F314.3;UA_/36.# |
655 |
M;WC^"',;&EXP!B5>>=W($GJ\Q3IWL;83!\&H?'QGA'M9A(QE;1#>.4[':&". |
656 |
ML1JU:)(FQC8,KSICISK#O.CVTEMP;.JH1W2?4":QJ#R7AL&L.$E4\%8TI82% |
657 |
MV/M]Q/*-J9+O$*;G4B%W7.$3`\];I:%JB?_]/53TRD+L_>%9N;(B_M[&:Q5\ |
658 |
MKQ%3$/?2N)G:],6"[_UQB?*@W5UYA02AIQ?&<3"U1H\S@>3V+CTV$WA_,C&E |
659 |
MP14J_=]FQ"YVRA,=W'F:S/OO\Z>5X7N;9I$.[AF(OJ?^_[,QPG&U$W]/$[TF |
660 |
M_.Z)E1K)*6?T_U+1REI,<*"5_O]2H22$2>#M]+6*Q+O!_J@A#S38QOQ,AM3; |
661 |
MT:.%V%NRP2;X?GIJ1^C]@0!TH&4X(/S^>(3T&KMQ:2+[?KH^C_3[D@36U*IS |
662 |
M*Q)L!X""='#5E!=X#R;P4VQH#]0S!TOY[N\+V3,<.R(&Z1I(50X2T1-L5*=5 |
663 |
M#^XU>6H0!@@;"%5.&$)Q._NL+H-".NUF1VIPLBE+^[RDJ3:0"]MKO188&SF< |
664 |
M:[[IT<@T)Y_?%<T&T;TU&Q)&CWB^N:I!-[\D-"C!CO/SO89+'%C:5,;3$;3@ |
665 |
MC,23[@[Y8K?5P+ACH!AM?L88$(NRM5SCPU194)+_!!^E5UJTR.EU6,:YV)=2 |
666 |
MU%N?I"ZNLBHV73S(S\?Y$X/B.B8(MM@LEF.[S`%A\@;?Q#$)6_R;WH@S\16I |
667 |
M+/\&;GXE"#1TS9\J8S9S`+[F>B=N%IB!HNP(9;=FM=(&M,F<9/^9":A1-JF: |
668 |
MG/;WWG[?V?TM8#)B^5G!(,=G;4>0NC5PA&Z@47A/WOF4*6CP2WD@!$>6^:M9 |
669 |
M4>US1JOS$[;X8,J3OC^TO7);L\IWN7_E\B<OMD?3U^):YK)?/$M;6VO+F(A$ |
670 |
M18T`J-4*C=CMLQU<SEHS!$)'1Y8)#J$V)S5=[+CFZ5'=>W:P0_UF;U6'\L;= |
671 |
MDS/A`N646W1%&DF-F)@8;$+3DXT*H3488E)-:"QE"X(#V-9:1#Y,HJ9<_60; |
672 |
MDB-16ZY])H)@W,7H\P<$V.D"=7]WSI#(441QDL/=W6,1C/Q0&(ZT?!$VK[W8 |
673 |
M/5N3@?/N"@5Y&NB0=B8H5Y23?9W!<6E$RP[KI1L"Y&:*.^.<2U\_<9TU_<LW |
674 |
M=SWQE<!G;D%T`G:)<Y4FW5M^G-PI;0[&DN#T"KMY?W2S19'<[DQ&5:OV6``E |
675 |
MD<Q>__&$0A?+8Y^%F)AK.2TG-USN'`0Z@F21WB5YCKV4./(<.L5^A^H-=9./ |
676 |
M!EB?SVSE%UO(KQ",YG,Z/,]EV_YG7YB%U7.?U\-6UE_`G_0TX;LY'R]$U2)O |
677 |
M_V0N&^`30.HY1M,ZA>#&%'H3#4P""<7XABH.I<S!T,74!!/)21`W537-[=V" |
678 |
M7Y>O?P!VX08I8M/*PG`M0RP?N>D!,O6F.T,5OE%/]&50(="G/#XU]?$]'/&C |
679 |
M9L0K(R?CI^Z2T3)R>ZU=J=G=EM1;J._A*?!:\_.UU.342U?.<FX5'+@\S<T; |
680 |
MUU4T59342*N\8:U'=#W;G40S<0JI4J*BTN(&<_FBE\UUXZC9MBU:5*/0'V9[ |
681 |
M;+UY>)!4BO)M58?_-XX*N?1BM>ZW\X:!T1#*`BVYZ>29ZP`C=C>;+F6%7C[Z |
682 |
MW;30''K%3(YKTQ-JU,WM#F?S!Y"3N7H?)V2P!/F;HCJ/&8(DNR#!R_5LM6ZU |
683 |
M,-K<+!#*<LU)9N)4[@`#1EH6,H_YGU3]J$1*HOZ+8=@3"L0S?F%3=V8L8_4N |
684 |
MEE]O`?+G215.OHR<JA(;++M/;J[G>CP`E@U,\].QF$D(,./!@'A<&P?LE2[B |
685 |
MSFG;W9'O&_53<$*^#-(6[YC]+NGJWY/^,I1R30^6:Q)C!?N<VTRZ-Q500M81 |
686 |
M=7%(6XMZ\8G+..4<WR72.4SYTUZFX@'7Q/QT;ZE0W:+:)ETE)?]+@[DZ^H?( |
687 |
MI:T6B-,(A\XVX9+HJ>T/-%75@T8.--O;,;TSTM/)$?-7ECA&LE+IM>B5>3T^ |
688 |
M6[L/TF+#Z7:W4&06UW_K[2;#QH?=K+9D_1?0A#-GUP_UZT=G&SX2\A=[N((Q |
689 |
M[%=W<%(0]S8\)1'MV'1OQ"Q2_CUR<8!P-QVE"\^RQ,;M:5NM1QYQ[TFC+?;M |
690 |
MA`,6DU;$.WMAE7AIDCUS.#-]2&OJH-;D[N2C$^H':VJ2^_G.H?202Z/:,_K( |
691 |
M4P;P.'?XPJ3;IYEZ5P'$O@RYWXZFB@1J#U%&@G3$!@3@ZX&P+\OEGZWHOX?X |
692 |
M#]=7,/.!-DK@"G+WGGNY.9@#W71`_AR(Q4@?=WB`\/L::,5NR%`\V`0>R*F` |
693 |
M3?D/*;4?\AT^=1!06C6VWQA2VT!W*4Z`$;#HL!1[8[C"&(AFY4+ZKCG\, |
694 |
MT'G(>"2KO#Y;QEKN$SK4D:S:$V.Z%#GT07F".GP$%+$_7H%VJ)=ZD!<D`;H[ |
695 |
M2D.%B=Z*X)*I!;X\,^CG:NZ8X0=;.90?6'KPG=T=C&]#O83]CUT5K%O%=7!? |
696 |
MPL@&1(?@'YM`CD5U3GT<S_VC&6*G;+OO"DX!EVL+&)(CJ`Y6-ET.'JU["1LJ |
697 |
ML`":ZG)N[^K]`*$-5O4$!.5-`S[X=C]:"'=]?2D,8SA<,V%MP.5J^OTH/J2: |
698 |
MVR@GM[TVCL(`0N5683Q<ZD=^*Q+)EF$@[\^\*>6FD9/UY7C^^:_2Q?0Q1;/) |
699 |
MBIHKOX="$<VJ!=@)XK47FS):63M*IJ*)&#VPWB%K^35P*;X0R?3]6"F@@')# |
700 |
MF"4>/<AJ)(4$Y(DK.Z8?-&.K>&\J)8T%^2DDK/Q*+D5[Q(YC(&9B8H-_X\T& |
701 |
MM`>3!EGY9?C.FSZ/0>.AL5=3HR0&ZRF0\FI`ZJ8+Z7FHX4HG;[/JD`6)D$0G |
702 |
M6S3_0":O.4T/?;`BE8"Y@`"Z8,,TC!MV\V%!^B70S[UG@/"G82.>_"F]@C"A |
703 |
MKW+B3W@!G>YZ7)]!,5W2-520@NI,:=:I(SWT0IC`>B.2"31+**SS+P4$)[\+ |
704 |
M>#I@)`RC%.9(]O3(-TT2SKDRXX^SH@$8JGPQ7RTQ2),G.R:8K`FXC"R^D@D0 |
705 |
M4?-S$&;$\LK"CH+I73CG2G;1T71X9T?F1U_(?%L9=JTHR5@7B)KTA,]M63Q4 |
706 |
M$=5%-*/`Y';B&$>CDB`E^^Y/2V(\4\\='`TV+5X,AR5!;0K.QTF_.!0$SUO5 |
707 |
M_HX9>6`=]*0705[P^$+RO.9]O,,T@^?V;WLJHB>GSFR'C-)S)^O^@7^WP(=0 |
708 |
ME.B\-$3CB0-/=C'VW$/Z<;ME]+W@%I(T2,T"0_UQQQ40+FP2W+A7@;XPPZHB |
709 |
MP;AJ*]+A<#_N<BJ6H@3.+`,/1+($]M3G'_O]P3K1$'+0DY@WFC1N9`--'IQ/ |
710 |
MZ@>U50^CLOFMX)R8U$?[2$UJ<[0-QI9MR%U'",V&T"/C1//$&>@9#'LZVV*9 |
711 |
M^;NNV>=HGW)\C6U7HT[C'>;><>R%0T!L<XC[-$3O1&_57UC/V[^HQW?,D;,= |
712 |
M7?(N9@6$X5#]*%%^:V%^1,[(R'":5W-#NX>8AA%S9H+2R@7S:@3I9?6B!BMF |
713 |
MALQP]7A#()1B";.K;:=3'7T%YCZOO#O?M]V_/3/M[1P.L\D,)=/9YM0\SUI7 |
714 |
MO9U+>*HL(I+6)-J7R9ND)29FLF6;,$YD.!?D$RM>![V3!XDI.6Y\8`4S&M1D |
715 |
M@L.^Q_?IIZ;4*A[5MN_B%8Y4`(7E[M]R/=N\,1T`O$$R=P#TF_CO35JI]8T7 |
716 |
MO%XD*KZ@HH"^-RXUK,#;^UC]S^:FV3!N3Z(V.]BI_21;^1)`64&D.N'5$('E |
717 |
MDE9`M$LCHKM[G9M^5LKG7@\"^9!^&G6`,>AJ?V6+G(&:3\A@]:(O+D,0YJ:Y |
718 |
ML-,0[MA-2D.:>?VO$\KA/I9OVE"#EY$_#GR8(/^;X4TZJ9N\-U7=9X1J;Z5^ |
719 |
ML4NF9X&6'VTQGZF[9D[C6.Z4MBZ,!#358[3,IDHUSZ;Y;!%6*WE\3H0CXWU< |
720 |
MK.];_FD?@0@L,H"N)G`8468"SA-E1@#VD!$7_F"'8K*%,8%C\7EAZ6UK"91? |
721 |
M-MA`/O)P3,G0^N-4P6[XY<$X!GC#><(`0A2Y?]$(\HE8A^`#JO'*/\#U37;^ |
722 |
M($%ZK\6FV/HD@=`,_.,=JJ,W$;[$&+`;'O!'\N5I.*=1!,B/,`-O#O^\"<GW |
723 |
M/E&]#E]<AX^',ZWC9&PA3B0D6L"IHY`L#6%X;:!HX*Q$[G64&"J2#0$=B&.1 |
724 |
MUT9Y&G9RZ:N2$RD)=*$$)*=I^`FNLH`4G?@K!^G,K;6&]A<RI6_](^@(55J, |
725 |
M(VK2'YBZ`%OR;5K619D1L3$M27X5F`4G4.&U_XV>`^I9,X"Y61.*67+C%W+L |
726 |
M]I"C>QHQF3;F$C&D'H?SFT=OI"2*JIDF`V=V,151B?Z#*S=`X7V[`D==T1F' |
727 |
MVJ_V!+#IY%F%#@=N<0P1I8A0$%I^T3D<C@1".B*%E_5_'B[2IV[KE+T4DMY% |
728 |
M9J_0!)T&%D*%-"U;3(71[;=MH@4''%(-0;`IH-,DNOGJ%R^:A+,7&MA]J2/K |
729 |
M&/E6!@F(04H\;N\J*-$GB/;!)S(7\BOF'V\R;MW'Y$K<%6^V!0P8$`<V&NTE |
730 |
M/N>H%-3$-UW!CMB`J9P+WT"N:<7F*.10[H!25E0UL\$`X)%0\6+=%12Z5;72 |
731 |
M(<C[1YP"1^P1<&WP,^U>ZI<`@[M5+]!$/%(5UH+H#2TS]Z!,`<:821XW:GD) |
732 |
MW($L67,@[$RO,E%`5"G/!,]Y@AN72NDWS$&2.UZQ7-B;S@MD,&S^[Z0X\;5[ |
733 |
M="DBPX[O&*`F\]'@(\BV20T32G?IY5>:28>)YM^`!-BD&W)13\5^W6O9$MU8 |
734 |
M+9[*,!#%[7W7TV`>-"\16-:5UB[(/HO2S=X((?NE6^Y;2KYZRA(])TG53\'J |
735 |
MD^&DNSR]FV:T'Q5?H_XS.D1900_`V"_/UL1EA*TR2=+B*]J'JSMD>7294ETW |
736 |
M2]]:\6F!0P<W,]<46&4>QBMQI7YG*A;K+]/,:F_9)_:="W-D9VO\N/)RCNO0 |
737 |
M&)C4Q3$4S9KEZO'T5,9:47"8J&FGHGQ9[9\PZK"RJ\*]%TL8H!R1(;7-;4VB |
738 |
M@Z.O!+D+_Y+8WLZ2K6+9_"EU,-]!P1OCT58HB<CW_A]QI[YZ:72K)A;X\V$< |
739 |
M027F*"2VC6?\F!I4U'D74V9W6A.S&6^P!T>2)]H]?_73SGLX!@-`;QHAE*'4 |
740 |
MJ>6[1H#?8U'F(GKH3-=DX#O)3@56^-IQB<P9>,#%<PO!/)ZAX^Q95S$[[:WJ |
741 |
M<%+Z('!0(&?.$9_SP[X%4W]K26S`]^6IUX<N,,.A(W"0A%X6:6$//2BERU;* |
742 |
M+#I^;%HPT`RH\O3"H]:/A10<A\NSHM(,N+_&HK&)W68@BP[2I"3LR=E)\.-7 |
743 |
M_6/;49?8!*))A(8"2(.(W14RLS?97Z8FJ9.*PIE"HD+DQ";<-^W]N[(A1!]W |
744 |
MF&=Q\"+VY3\5<+&)GAFQ"%$*,8H=)B/(HRK2#<^EU>41!>*$^=.[S>ZRC)/N |
745 |
MXJ&%`[+,IL8?H0^6`#7W`E#!#67SN3."D*#)LN$HG0\IG?*:P")=)I:[#;F5 |
746 |
MV1M7UDC703`TJ=U@1:WO%UB;1Y=CB#]C7+VTI0<BEB1\ZL8+X>=6?G`T;#I* |
747 |
M@<KN<`=2Z4Y^=97\4NI#,R%*L*%@+^"N"'@7$$%.<$8KC'!>D!$6@-/4ZU;! |
748 |
M0=!A%DCZ?$A3%9H/^Q;/8LQ\,@$&(X7SC*X0GN)*0LI0PQ#]#T(S54=<X`YZ |
749 |
MMGDB8E.=,I?VSP)WA'[9$(YSX&V)8<!>]THE\/'+S^VK^!)Z4A+_@+O9U7`* |
750 |
M38%DJ?F`<T#XS'5UB95_G`"F$T4(<%")_[I%LE94>F`5K']0H+(!!,CC)_-W |
751 |
M9D`^PT/^BO5AZ-WP%^H_KQ<XEY%T-<O8-0KR@TW>6:U]=!T)9H8SE4F,`S+" |
752 |
MPQ'8'/D;T9>M(5"TPHF-!`:\\X<YU[5F(B/1VX.73<D`2"X-5"#2HR8O'1,; |
753 |
MM^.7IJ\5!"$:-='7\?59S%@Q@D\UFC)1"[$OU6DR@]D&+66GM=>:-,GKS<C1 |
754 |
M,T8U8&JJA(14HP""#?2G=8<M::WY">HQ!UV](*HX!OZ--,2NQ&-WBJ,W]"2O |
755 |
MV*]2!=JM0[1DHW[898?>S#=NH4=D'X13-_VD,68@\4)2TF,P"AA)CX[ROK9( |
756 |
MDP+BM@H92NA.6JB[3,^GG&>#>X1N^%LCDD)3'M/7[ZE#!<P$Q_E_86=)B'<@ |
757 |
M.>&V#\K[<P\YK`Z`/E*Y&>(B8TO#6YTB!>)#*(YZ[ZT@+BJ8RTR!8INT*N>P |
758 |
MU&TX41NW0EMH8QVD:"JWB7+%F)CY(N`M'U(&LV+J;7^88C/]DDF&F&AL43+0 |
759 |
M^PSUAAK'^5VHTQ4^V<YG4<]>TRCW%R3\/I+J9-21C%?V[<MI22-D4_NZ4,SD |
760 |
MT]4C6+^;R%%B_\#*L73_T1NTPNQ::"W5`")"VP0/I$6??^!U_40<U3:>W-E9 |
761 |
M<BZX!IK:PAGY@2!K`@_1;/Y([E$%W/]U-W)P!*!7E>E,AN;#4KAV?F\">SA+ |
762 |
MJDNZ]^-_;$;XLN=1Y[\J?%/&S>C,/AXE$2:%3I9&NPYR&*"<R`DK-V)2B!<H |
763 |
MV2XE$%\+I@\U)]\GDT]\8P24M]P^*G`L?_&G$06PM!9(..0^<$");03XFO<= |
764 |
MO30*7!!4<.?_>G2(&$+JZZ8O$7*3$%(H,GHI,B'+H]->O_:=Y[&:N2QYW.;% |
765 |
MS_O'#2X'8\>1!]D'C7DY^^G=LB4:A'K0RD'(1:8CD.B@U9`$AS4(EC7W6A20 |
766 |
MO!Y(-*P;\^ZH2HX2V8X*?T>XW>0Z>?L-0H?Z&+B0A?*PJQH^(TONXGF3L:?] |
767 |
M56]PM\EI6=\X&%MR,4ADNY,?;AX/9\M/:./2'?.<M4G0YH>Y[/BCX&'CT)^_ |
768 |
MX-6_0S4_Y>QS*2ACI3#S,XQ>!/F.R$(F(C-\P>,E``O(:@'^;@S)&*G?"-%9 |
769 |
MWR#E(G,0<>*G2@N'6<N^3]L`^`%K'R1ETID_!'R)R2B^QR(B(M&G^='A@P9Q |
770 |
MC:C9S<EFI2/3-O?M^<)>XL%?L=J/*E7S(]JX-7Y-Z)K`-@`T`#Q$*O@NBTBT |
771 |
MLT,#\QVY=T.X,[#-X$?(!\M!!^'R(;[D,EO:1V]YTSH"K!)$[JVFN/)P.LE$ |
772 |
MA=SBM7ZJ/Z#LB0@>CL`3#X)5\._B93RSRA5,#77],CR;+RG8`FV#S=`;H(`J |
773 |
MT:%GA"B6L=N&.P=;)[/9%!*S7U?!P/*#/(KC3,B9*6,L7H^_9Q,`C><7EW.H |
774 |
M^UJ3;3Y-R3+O2[W!\?!5TN"!^;H,X"0_UW=\/VOVI3C:2C-&((FLFQE^```A |
775 |
M+RD[3(),"A0";]AWR/>:T%,%%W`3-'U<V$HM>*T8TN$=L?X+1V(ZXNJFX2*; |
776 |
MQ=F\"3"H.'M<Q:/J'7@DLZ@69"+/R]M]-'K6\_!&E=X!!?S,QP!"G1Y[[!@H |
777 |
M)"#,3P*6PJO!7D*8TC-FBCT?2TC0;\K4FD/&$9]!#^R-_F!?$?*HR^0?33JX |
778 |
MUPC/??^X'XF#!H[?-`9;3*D<)P^_`V1"FA:6!85'N9$D!9(.::E=B*]<E<_' |
779 |
MXX_4U]6K2AU`=@DPWR:C;6JWHC>KE\O-[[@&R`2X&,$ORLZWSHA:`\WK?C1` |
780 |
M<J\$90$/@F'!EP(.L2D)W?AFCT,4S(.S7(1-@A<4<)@&+$*M#%[(SB0/KLZN |
781 |
M2684D\8621H7%:1,;\!2IXW.9J?RR\U>($X5'N`O2=4%.EC3(M;$)R-U"2X0 |
782 |
MM=9IQ+&``H[VC[Z<V$@;KT"#5Y&=;![F#,\KJL.Z`,%H)3G7H6DRB8W8S&\F |
783 |
M===*[V@+T9N#[Z9`5]6B"IS*)6DO3-V'#-AG%WG/(_J?-N-_[/I]!T)@TX$N |
784 |
M3<^)ZO/O>N;T#H(EP:^!]DK/ZF0DR#7H%&E-;HFFE.+IZ#=#2T&N_*S+,H;Z |
785 |
M6Y("H3^')S7#'!M/WT/I4;B&N7(0)#F63;.=CI*0^`5_[FK8Z[6##039D?U( |
786 |
M5W)>:K`EDE`QF9/;AE0W"8T((?H==XD$1/DA,A%*D0IW7-RXVH8$TO(=99<C |
787 |
M=K1^WJ,!01A@J*AW)6XM^D+@(0YY=C&G`&_HM'RKL9R;DXFA+&$EE'Q;V?,@ |
788 |
MORT\&ADFL*8);)QO&J&?U,HIW_6]K&*R>2%P&:%<#57,DTNV6-C'[1W\BDV* |
789 |
MNT<;NAGEP?K\?"I&43'Y8%1A(BE%#\?IB]K/N1G*.O,G("MCM@_I$Z:P[!G1 |
790 |
M\#1J.%GYJ=,1MJP</93)`U7H=BNDX$9-JN39;/J6;23Y=,!F/A1I#BG$^L/B |
791 |
MF_*4M6P56;FH$?ZR33NW0BH^#N2K2;TY/)7/O7@)_.&)TL<JNV"/CMJG_(7[ |
792 |
M!Q<2S3KE()RY_TQ"X6MRW/W6W9OL/>W,V\W>0[XWX7Y>#94NMS*CM&%KOM&# |
793 |
MR[D^,5CB*W,89XWYFT17RHUJB][.+Y,O6-XXP]`%2U,?NRJWO\_^W77D!DK3 |
794 |
MO="[NA1L$#T8V[A!^AW>2\^"E5A6R;<].D#)'!S:6MCY0"J_^3\A-(CS!GI4 |
795 |
M"/`9"_30!TQ!49#P0"P(>=Y\N`H1N/TS5SQ8'^B@J.+P`0?;H.*A[CW7,AGP |
796 |
M#Q-I.P4B@$D\REJQN`+=+["YEI,;!NJVOWZ#`D^_LCL/OW1G%]0/%D1P/*,8 |
797 |
M7O>$&5>KF`)"3S5(`.*.4->@C8+(B'S!>5=9X3/(2-F1Y7^R3OJ+6XC'"/WR |
798 |
M..0;6!2N+?4LT*C!:Z'H)M:GAJD!IVV4,&<.ZN),`@+U%"GH`26"N(NAD`#/ |
799 |
M0*870"R(ST$1A6D[Y"&#.M7;-2G42[:IH!@B^I3LS[Y5NLEF6."1FZ]%7-K$ |
800 |
MQV,:/PVSRZ!;EF^-V\(M]I6;%!DLO3BLRQ4(RFR'L,^#>3K`U#D@5R8[R[G- |
801 |
M8DD'T<<U=Z1R4MGI+_#\^5;`,46(,*"NR8VHG=@%!+,)-4[C>JM:ZJE1_(@P |
802 |
MGIK$=+?DVKEKJR[)D%R09S,P7)!/5GI["N9J`<UTU^3:\`D:XE;>`FPK9A9! |
803 |
M-7X&;`:Z+CO%Y7>EGM^M,?HL!+6IF,LO\?[WTG`:J:B>JRVM)289_HFX@C'1 |
804 |
M@Z8@32/S+&2>=*TI13)"F4T$8C4@?J4XE%41OE!4G9D.OY;(E0:M[>V88B^> |
805 |
MJ;XOY704]5--]39_*-8),GJ&CZW8&XU$)#XU-/M@A-AI*E"V^I>A.(-1'`RR |
806 |
MW@.932DVEP@<0XB@<\<X]S>QEK[B_X+7Y<U+9M,^S4LA]4P5G[-_%';QU |
807 |
M\C&Q6C%QZ]<-'+JL.*:MH<;2<A7-+,.D/H/Q9MOTI8A'G$?1`+1\CGA:(]L\ |
808 |
MAY]X(9UIDN^%ME7;>E*8Y<N;HX)3$-B.<;C2/]NVJ$I@;:_153U].NB[\FEA |
809 |
ML^U1T%!]9DQ$M)BW>BJRH*Q0)0ZVROT+MDL?=P</O3ES'(@Y>8&G6@H5U"CX |
810 |
MBB\N<=GV?,--N;+B&L6>"8:VYUSL"+#F[<2_7F1O8:3.T%:SB+70.XV&NF[/ |
811 |
M)P-VU13IW*S=K>?:=96OAN&6?T^N3(KT0_&P:'<Q^6MH,/<@H=RT;ESA8T;% |
812 |
M>5=S8X1!Z7`X3UKZQA5[@U8%ENNOYUNO.GT2F'JTS-LN]`LT-F"CD.8/R>NM |
813 |
M(2A>-N'KT^8096*\YRI"I(F1?8@_D]W]YD)%W([#FC];9]IL;@M;,&F1=48? |
814 |
M&&`Q!)ZV*Y@0Y135[N5YF=_%92&1(47.^/L@0>:`E\DY4*E)3@AY!WX8]5O; |
815 |
MC,A^=.</8;_C4]6M4?1GQ8<-38H%!^7.A86\F341AHZ+:C2Q-FURI,S/7%Y" |
816 |
M2`$-@Y7)FZ.AVEE\]NZU8F=*S'7K&V2`03UJE>ON.'_F*<#DDQ#KE<^/?>7, |
817 |
M\C)>S+UWK[^<)(-4#)T1=^]4I]#G=^OG^<DW1SK/11Z-!_I*TN"9D6K">S$& |
818 |
M1B95V^_&Q=1W7L&,E(C`?/:"G?WK5`9/2VWAZRS)9QV=\PI%Y.'C0BEF<EVR |
819 |
M(D#\#&NVNU@R;PG-49^B[G<N07_SV7+M(J"V-D!H'`AK&DAF(MA:@7<:98'1 |
820 |
MGJNTT[.Z>(;95A&A'_^,:!X&^*+&8T)'W#[NZF8,#=-5&<'<$-/Z4IJU],GH |
821 |
M0,#:3W;WGGGW@)6KH$!*_GG<0&GP.HI%C<#Z/=R<L+=1.N$6?3A\Y[96?370 |
822 |
MT,`W5"^=_?X-USF)GW218PP'AR'A`@Z3"31'`%6&CFR'/<Q->Y'S8:;<PLI+ |
823 |
MIG^P\(_`P`3K45C2YZ+^C+>A(3$66ZN>5$\F9"B=W_/M10`PY&>:5+I3G*M3 |
824 |
M?%5)VHIL;2(9EKPZCLJY("#Q*O=HI^"W`*^PU90]!"$7%U15]`^DSF<#?X6X |
825 |
M^'OUD+$KV=$0!%(*?0!2:,TK`'Q((#5/T720M&55VQ+S)4%!^SCJAU;H7*?_ |
826 |
M0XI-]K]@A4C]3@]%)&9U-C4CX-,(_',<$[9P/)-;B=`F^D#1>,3:>?!I,XF= |
827 |
MT"EURZ*-JZG#(\>;]]!SALJ9N"23O<^C]=GRU;BZN%R@030%_SB(74LP1IS. |
828 |
M#(UW&T='C,72%DN`$+:WAAES9L`8>'V/)BA2%P[)A@ZJ(R+@1'![#M\_LW_/ |
829 |
M_!>$SN<L)Q+0ZHXCRB&*M5_!9K]_&OV%ZJ`FGH$5[:&](3J/VN]20[^:JMRL |
830 |
MWV5TOX3L9#T[:D"S[BG&1IU/H?7:CU/F6UQ)H20A8Y`.7'*`:C-=2`9+S%'` |
831 |
M3$<]$_0\RA?5?L<OD;9?6J'E[6]%EB9+BV/YUC6AR7EDQYGO.H4LK<TQL[P< |
832 |
M_GTOAM/V-@'7>?/#<ML(="RPW!*B6#5/&:SCJI@!VLOUV!*>'\\AL1R.92!' |
833 |
MN+3KCOA!?"P*3EL#8$C$]>FN1S85RYM@_3;_W`99B#^,/(QZ:"K`7[%%O3X+ |
834 |
M<'!<K%S8GFY/%#T`38X=/B7C6&*R5[`)"D8AJ4BJ<HT)5Q&ORUP-"::E:'!7 |
835 |
M"/Y&6RG1(8S*6F,IK&&XDE[I%@P31\^+%,%24S?-,E.#BP;@?-:.R6&5'J,. |
836 |
M]H,!($0+IQCS544-Q-Y:7"Z''R3PXHGH!`U+Z-!NAPW\<R-129;$#["<BR[D |
837 |
M#Y$/QLGO'5//''+DWI,,3F5BBC7O1A8!Z[DHDJZ>+U%M(:/9U*-@J1ASO9BO |
838 |
MO8U?%5J[VA;(O6/?6M$?&-S"6*_?JHXCUTVLK14%.1%[/X9;ILU[#A`RV?YO |
839 |
MKP/P(I^Q_=V2;)J^@9%R6W9X56V/N("XV/7(PJH0CD"`ONHR`BL^VY(HH`+- |
840 |
M@?=8UWZUOS&A!+*!/+%O/JK2&''SRO@NR4<6)-<G"O;:.$RZ)3WN*,E3[R!C |
841 |
MO7-A%MX-*M2WT@UG]R6RCZ?>.'E62X!=`ES.RU/<A'+SS'K^PS<-=#%`YP;# |
842 |
MEPE27&S(XLD#OO?,!\3;-_O)^4R.!$A*5`VF%02%(K&3LUF)BEV_H/^I7-++ |
843 |
MN:%-#$MGTN]S=X^'#F+$3:3G+QE)Z<9:#?S$B')OE1!@+F*XU7'^6;AVTBNH |
844 |
MT\7IH;$%)<&T^:[I,^.Q*!_4]GN0=8H@NC)V*"`.W4SW78_DT5O-2XRC*P-_ |
845 |
MJ4U#8.VF[F?^2WEZ1J'Y*S:_:L#"7QI;%4(#I:T)I2"O!K0>&T>87"N$^T9; |
846 |
M3?F,TTP]I$KK+U6@1I`'!3(9-NJ?N+C"F<*,=]:'ZV_CW>%L[XRZ_SIE@VJ- |
847 |
M"D<%MGU+FD0@EWU;1$P[!A<'A&H#.)UU??4EU("N.K1IU#WDH[+Z2AT<IO0R |
848 |
M^*V8<.V."/YWBU@%?ZB/)A2=B9]*NYR"_HEA"XGL.ETA8'9LL3JLA^97Y4T` |
849 |
M'E]@.Z39H>F&WBW%NU<)C&H8B;4>H*UNQ>+RC7":^DJ/JP:ZU>`E+2I^B,Q% |
850 |
MX69H^-4F7>-X&92E:4@)BZ(ASC'[Z?SR[&.^1*19HHI@DK*U5`7\/1>K!,ER |
851 |
MP6#4#?W8O:A-US2[4?5C^=;[3&$7.$/[29>)C<O&.)PR5]7.U?N,8HK(,:Z& |
852 |
MM&+/H5704!?LW9/Q(7.<'+=JP\WHF4?K9A+RAD<>'"W:2)OV8<>R4\99H^J4 |
853 |
M5IUYE^)(:A1ORG*HQ>P2CWW'N>R/J4%L`=O$Z^/(":%%(;,"*_8@^(?Y"3N+ |
854 |
M-'`F>005$O6:!KQI%^W)B2"H=9<=*I\XL[MHL56"GAU]+[.%^U6<%EW8W)@- |
855 |
MK^V71-<*JU7#]XE-M2#9*3$'%(>ZL"`R$U&E5ZM??`WP(TXQ>@DZ#5Y-/[TH |
856 |
MRX"IHEDUOY`#S#`;:U2_,L9/*061F7#'C&[]7%4;#6]SABR+?P7R(/H*>Y;$ |
857 |
MZU4#J`"NS[9GQYL5QO7N%,_PD-3D:?.RS\WZ(,BHAI]8C.6.!H$!4Y===]_E |
858 |
MO4N8';[WEH--F4O.6MA!8LF@@@&=FSQG!?9!44+]&+M'2&6/EGB6_=P_,;/3 |
859 |
MB5F\CVS=@AX?XG8Q((ZL(W:4BN-ARHR>;55*(:<,.LO#Y1*)H?VBU'A`5HB! |
860 |
M%(36JZ":N/!J5;'BER\$2`8\*X<Q&8$:<=N?</2/MMPTARL)'U'#JY8H00XG |
861 |
MH]7(]'N_^OZ1$<G"1F"LJ;\?!A/JJJII1;7!2TI?"1T2&-:`?5*`JL[(X&KJ |
862 |
M&?A7_^[R6L75V$U2J?3.RIJJPH!`)<#BDMI%LS*).95&,1^"VIB4;/FV96;4 |
863 |
MT<^+;S6"(0EFSM:D0E-A$&AP=/2N$BP;V?'*<=I"4<""H)J>187FHX#T)0>U |
864 |
M4.W0>[=OO@>U(]KG#XR=38":]M<8X$&QM0*QH>&LO]:GU?B@A;'".;&\B`^B |
865 |
M5^WGC/NB`/5?=#ZYV22K$0_'P;]4._E>%D_@FY\;J[TWR8LN,G.Y^8'THP(P |
866 |
M05\([L"3-JM!%CMB>-_$3YL5\Q/Q$7"/0NOTYJ>N1'J"SXQ:FE""OB>#-] |
867 |
MD6_5N9(95/[W_)5'5CRWSU(E2;K+4_YP(MNVUA9@KBD]+L%E`!NCGDL@C,WP |
868 |
M\1Y0SV$)&J-JZC;@C),NP9W!W1Y>>-FEX3Z/H7F1`5-70UGMOEL2R^D?M;/) |
869 |
M4VJGK3/L_3F"Y>7/WIZ:GCS$0C1[_Z].1.Z"X-5'Y2)>,706R%V-VH"GAY+? |
870 |
M[4Q-O]NF$DAV^4HT+L4R7X.*OP*AYBZ7WRAV],?9<''(M'PG<&17N4TSBO\L |
871 |
MB<PXD:\J/(QS?#Z@>!KY=HL-3C=WKE-8BPA<`L2]TN&"$#%AB,:`9E:=J?MZ |
872 |
ME_1&E06&PYKHU&SP=JJXC7&KH\S1;85&.XN(=07`GL#)M>#*S/%R6\>,^JY( |
873 |
M3!VSL3XIX:T'W`KHLSR)^.'(D=44G(-";>YAOJK<[\AHB5YK903R&:,;AV]W |
874 |
M"]1BA"3(77)_K`V-C=\1T:]02I0Q;]\#RR:8E&JB%Y[6DTTX65_U5DDOVVZE |
875 |
M<?=.:QGFU'&@Y)EW@:O*^#B9TZ2@CGH6RG&NN-'>:$&.D9>87=EK;*YDE%2& |
876 |
MF?:.8`SMK&'"L,".<$7P*D6*S+*X#4G'7(0RHU9&SC9N8(ZRI":G"VC6$ZR1 |
877 |
M(ZQ-B"RQJJ2Q."(.61+Y"&$\]_S6>R6SEW8F?$7/H,!%OF>'F2@5^W,>@.5* |
878 |
MN5*9AA!IYC>=;-Z?5I.N="36.R/YDPFQ<U8TU3VKD3'$8C!I0\R[*"K]GGC7 |
879 |
M!*M=%8$X4ONZ?_FH-\TTVZ(O:Q;#"LB?J#=1#G+QDY,F`[?DK[1OR"PFH5/T |
880 |
M,^XROC`G8#8*WUETWB*`)6'2$?4FY;C#K19CH[WJ@?9.LC7T77>9R)J(A%-- |
881 |
MG)-86NPLKRRO[*XF&L/PCUKVS^VOW^/TF]S+!-P:M]_IUP'OH$S*T!@"+R[, |
882 |
M$AXJ8F%81SV1L`N65/L]1S#6C5S[FV_P',*[=O`<S3MWJ!R+X2S8@M/-\D** |
883 |
MT)K\5QRMJ<FV)!<CG)Q[I=KN3$^>`]/+XTB3/LUD#MP)K_?]ONWI3%6:[]A* |
884 |
M`\_XY)V@T)0R&"ZO9W9>FA?=T6=*U#SGTD=.O.EF;CAL5<F;$Q[:CP<I']G5 |
885 |
M:4B>/<[S=VN-^_3YF$R#.W'S2TUV]G<-%I_,1+O3:1A0.ZZ]KYGDXVU/U]OU |
886 |
M!BO$(R/N9M=?_7F][]5K3$,[29_S0LXTF$<71<_35(=-AG70\T?,5IO-3G?` |
887 |
MEO[VMPXZ:M]!6,SV:";,GLVWP=&F@G\1E]O5ZTY8UP-O_W,>XSH*3HEMG]VO |
888 |
MP5+I#!;;?_73*7@_Y9?ADMM5[U:]P])H#)]W4%R&BI6M=D^&Q]T[G;+@3)Q# |
889 |
MV6,B1M-Q4[23Z>NHH.$0$4I"J3U>-DV;9)?WC:KH:TZ/NX^^+B8LD0]@2L#I |
890 |
M+?L8Y)`=;WO!+M-+W%3%FEW)G5A]X)X"U#LPY64_,C@ID4IKVIS>]]6=3A_R |
891 |
MX/MJ])@R#&]`P$X/R>ZI+/CZGMXAG:`\R,*/]^/U'06?X)!T'-Z`'GZ:G+Y; |
892 |
M<:U?/IRBV\,"4MGJ;>'S0=X9GGSV<J8W_<9QG!>X9!8NG^-SVYULF1Z[Z^5[ |
893 |
MR]9Z63HXAU">[/?-?<%0F1P>9_O?FAY<?.TPOH[#\3[O`N]/;IZB[W;LMW[3 |
894 |
M]7YO<O*Q#I>;]0[TM6$R]%9CSE;M7J?)TR+$<)HR!TS&TT2APY&8:,`$&[FV |
895 |
M-K+^75R/8:O:].O>L'6B[['/>^T*>3A?1>,=Z_$/1Y-9Z(''&V3$WK1(4RA, |
896 |
M>"PTU,CTR<^'AE`8+`8S/B<@7$G6G-%([T!DA-!N'B\U`P,!+RUIY,OK2])Z |
897 |
M(1)5PD;GG(_;>GAZ^'!!$%@P"&&3#M\O5N+1<EU4`C:K$1HT#BZKF_7X/@%" |
898 |
M$Z^(:9?OX_1%4U\>C]_O>]JXM=^O[T/B>>)O&Y(8ZA9ATP<=.C.S`T,)V&ZT |
899 |
M)B7]U@L16>R?ZS.]V[K[\SPV]>]]`]%V0N906"PVEZ,^"^-6\8+#`P13PL:K |
900 |
MKZ%!JRQ;+.[7RUJ16"PNC^OSN;=QJT\?+J?[^7V"7APV1^N?CS'K1?8Y0-#A |
901 |
MD!I^$PZ_Z5;O+=>'VRC,U=ZH(.J,5KZZ?B9:]+0I$Q.C)__V_GM<0A3LK)`I |
902 |
M%&X=MMTHV,5,TX,6/6/6S'/]^/DZ0!"O6#V34/Q&X!C5_P@$=)HTX]-475BY |
903 |
M;PZ]Z2=@&I7;UUL[GGC\FQ105BJ>.!P>.=V&_V^^[7,V--0!3'C<<N#H*+X5 |
904 |
MXB@HH?5`@.#G!U6QT\_ZFPZP"L2HD8(`74,F89V.O-UN4:TH"!1&<C.4)S(B |
905 |
MGN[9/*S`KO=AM-[`#O@U!H?[GT;,%3;:@MBRV%Z7VASN;S\,J,/8@-W+L><E |
906 |
MD.?[UP=AG<.M[R^A7U!>71Q88V9UB)K872J-5CMA5<2Q(\)YRYXNPR:5Z)>= |
907 |
M/K-`F8-A>BI`5<1R[D'!SU<7I0&EMM$:66=<5M!J;I,?#OZUD!>G8VQVD(*1 |
908 |
M7=Q+9\S+)TR<WE:8LQNR$*19'7%I-M9Z.M97PM3UEXN#\_(Z%R<G^_H6?MJ) |
909 |
MMIR0Y+;T#\8=+(*+]])"P\4Z>0S0F3YFP[\-ZK/1FJP+C(LV.SV^2.O4E(0, |
910 |
MFLG5LAWQ'PRV[A3.,"YVSEZABS?86"80UBF)'@>>FTV5V\J'3;ZL^'2U)<6. |
911 |
MY<RJO^+2DE\?^(WJ.+A]:%'6+?J]05,?Q[J2DE)=J1Y7FIO-EIIP%XX7O%N\ |
912 |
MIQ5EA4J&FSN;]J%OFIB@H")7T,8-4>.FIS$Y2ME,66JA\QTM5W+7]%9B0"F, |
913 |
MX9^-DC[2,HUQOCTQHBR26N5:9CFAUO7P/<2$F7^P_W"RT0C7=UO'32.H4%ST |
914 |
M(8&3@ER&K>ZO41EIN2*U4]L=3YH-$@U.%\#?;KPGO!$$!]WLSM&29L"-FV*B |
915 |
M9Q#59(4.9_4RPJU79V9W=7E"%F-Z=[&`6:6&C9>^A?69D-9F8INJ+!G]9-VZ |
916 |
M7'69^(9^AY7',=ZEMSHB<G32:%U;6VVXOOYI8:CPXK8J:LV6<GG?7!M,;43: |
917 |
M3%MNM]`V(6S96R8)0@;5669H$Z1-%B,B_FNZ$3D>IJKU'%'Y6]$F@1C%(F=O |
918 |
M&%0M6K&TWF@1,`QQU6[-51S2F:+L1#*H*[CDJ-C92E$65>DW4QY(W:T0C)1Z |
919 |
M`I6MY)%`489(`I/466GWC=C#/CG/9I1L6:M`M-,&HY0WXH+1TD,^<#/CZ/R. |
920 |
M,>S:*Y=LK]`1CL'!(29,&'<<X?$=@MK`*`=FKB<,V&&"S:>T;!P`@6Z))P_U |
921 |
M9C:))Q\1#D>^S0D+I/Y':)A()N\J1:(;8'N=WU*\!7Z!S;"Q&XSGKIFP*<AC |
922 |
MN61C`5.*)`,CU3*6]4DMX:I\1DXB;!6*/)ZG1&A(1C5<:RLI*P[ZFLP)N?:] |
923 |
MDJ)ULX>[P+)"O3,^D=/0Z/+/4O/D;B:R5<($Q0R>LJJRJES7WW]RJFC#Y08: |
924 |
M=)TMWXI,@4P(+``2-$%F"O9>2QLJ#FR4A20Z&1J`L\@*2HRFC,4272%&$0OF |
925 |
MFY&K4!J27%U`!#E_7(*E<-Z,JU)3L((.*$0SW-I-Z`:Y&%0@A+<.8<'UAAXC |
926 |
M.5K8"<$=$$/T5GV*WE(MP,`_A[G+/R=^H1BP2")^0;D_"'&KWG!?((MSM)D( |
927 |
MA;"#]%HR94/[!^[VX9]KZA8^U]9XB%Y=^A>*TY]?0L>#2K"(,0/#T02/$X:% |
928 |
MH'0NSD/TNUV3BCO"<@=E(<F*62_Q\-G+K<T]1:62V!KG8;X>@_%/AU/?GVZD |
929 |
M&'#?;T![+\=[$Z[,`_K&-5,?SB<DF@`ERQ/\X2!>&N5"K2Q_FOB)YF+E56H$ |
930 |
M'P[>)3#*D@NOV_=][T3[B@%XT/?3X\HR'H([2.P^U8X@&?;7_:8#YA)L@!N@ |
931 |
M=2.8LW'(UZ?3=W^`@U`HR:O(4R<('8HU3I??3,O=N8.GMP82?G#X):X.>S>= |
932 |
M"3:ML0PG&R4IJ^WX_'#N/%+IS@]`1?-)=`X@>W";EKY%5S2GSFJ)D%<2&D"L |
933 |
MP<YE^C_C3`,`=[K'W#8'M*ZQCZ>T<UQ/Z$&'S,\`K.+D<RO*R;]>=_NY6F(8 |
934 |
M@C+#3Z*M%T,C,.NTBI=<I4:E?AJK79L@KW.UJZ@HJ5F<C;^EV1/<8.PHP2]? |
935 |
M"`\;HT=B:TF&%$6<CT]#`(WPC+7DT[,S'*YF.I.O:]-@;WK0JL<OG>K=6R"M |
936 |
M0X`!YYG&9&]LZ3]EZYW+2VP%V9&('[Z_=I="'(*?4W[CDX1IL`RVVNP=OE\: |
937 |
M:T]&DH\-+'`2/Z5N1^CX2BC]YY(ISNQN'@MDUGTL[5797N>3.*>RV&O=U/,8 |
938 |
MG-[LQ,$J/0@H[+L#2]X5$]SMCQTP@G*VP#,CLEI.I]LX*+19["R$%;`N8/C? |
939 |
M![*S/ER&PZ,/]N,.+QEO&3?[NU44)GNFK`L:;[\J2_/M>`$'(*/"AU]2'0:* |
940 |
M[R<J[0<VO*&<@`PU6KW=W#Z[JTT+NT,=+(<%!`2%@=_WW&T&1[STQ_;W=@\2 |
941 |
MP%*];GN'IR*:O5XN04AOZ\@(_[Y.O,_BW(U^QB]`D,L\)K,Y>S/H[_:'=EAK |
942 |
M2P01382E@&-DA4B'SW\4#F0CME2IM9H,+L+&^U;&%X4.!$<T68QH#CYZ$V-4 |
943 |
M'^XD>'2)<!,2`Z'[L9!.)CW1P%Y1"J*+EO*B_CU7QL5^\72WH)6M.J[T-#>? |
944 |
M+Y#)">4"JHR.I,SL]R[;U4H;UD""V^T9NC'$']@X\BD,,";$S.\QO.Y\XB., |
945 |
MH!Y7KJJO$L"_#J-/C(A(CZ)YN>UJU8<M0199J'2ZC=='*$;Q#;$LM$1@8D#= |
946 |
M9)/CF<TJ>+2:C=8?D0?C\&:EO>JBJWU@[#CQ$'#%WN%KS!F\HQAY%]N7:)/B |
947 |
M+B(?TQ`!/4"=_>IGEX,5XX9$"J+Y<'E)"$CCX&K:"?-U=G6X."K!VKK^@HFQ |
948 |
M@H[OSYFB(<1T?'3D]7)R?ZZ0@JQ^D2X=O^A7;J>'#7&ZA,1`^<!]J8B"I`>W |
949 |
M]Y-2'1\=;XRU.N*9%@B),E%'F.`32=:T7:>SM>FYOSKV08$?:,F)2Q<8;$NU |
950 |
MNIQ-/B)\4<G6,5$6^"030)[=N[L8)<:0LOU4B4I+MKOM"9X>-'^M^"1:8"WN |
951 |
MJI*@(I\NUE%?G=),#X4_E2=2J30ZC>]#<+LHQ<9G]^A6%!V`BHA7:RTM4)(3 |
952 |
MB7"G<WKT)N7X)'C2X;5)B$Z?(K>&,Z=BOCH\6ONN6DN#']+2V*#2X55(2$]\ |
953 |
M9L-FT+JX-`_NQ15,<(**+O@<'"0<'3)*L1`3GW5LU7_FL^?IO,=7<V=P&3A1 |
954 |
M@H1(T>-4`!XD^'7`QR"`BE8B]F[Q&FIDQ*1>),J3R5;\&!BG>F1$HEY<++(Q |
955 |
M.'X=F523+&OYX<_0M6@(/\9>7%HLN:NV7IC_VL-*QSR)QQ9RQD-[L"3#>?H/ |
956 |
M0<F>Z#JP_2_Q>&;]`N\RTW_7W[O#W0'J:63)J0+K3G-WNMSVZ,!@:_E;.W?; |
957 |
MPZT?0=RYQ?0\F-_N<4%[P3<(?':BA(7KSH3^B450O\^5\+@#%5STAXVGML'U |
958 |
M\0M3.F2C[&ZMKH;BH/G=+W$:UY>0$UWT]<B+>N<C8X6$QW=UR8OB%D47E^+Y |
959 |
MZ(HZ2XM>6W-L86)Y_SO<1JB6N56J-O!<??F)@9#@`)\(RLY>E0_&?%/(6LT6 |
960 |
MI>A0TM;43D]+^KAZ0Z7X^.[9/QO3U&MM:3%PJ\S\$R60\,M^HW\;R'F&`@O3 |
961 |
M"#Z>RO7!`I]@XV6EY+`%8?7Q`34[].,=]P'G^=B_G4B.`Z'X*&R;8E(LO%L6 |
962 |
MK>G_Z2^]<]BIO.SOU?/=:'.;N[4#)OA@K;;+B4]GHG-*LVH]\ZI*D8<4G^C= |
963 |
MX7*[_?0,P"=!"GVI2$J<U$+3KW]1KTF64`#TW9PP%C[@HVXOB$8_8>2&,O`D |
964 |
M`G$+PI$^382AF/`_`B!L/`XZD2*%A7U\(\"C1M]P<Y:CQT.H(SY*,>Y.C#XC |
965 |
M$7I$8XAXN,_=M[[AC]8$T:73N-)S(<1V(?Z\A'!5=!X^V*I&':ND"5"$0%$` |
966 |
M^\>0/92F'V!94^!%<RN+0$8F:2E'O)Q^T"_.&SMI04(*6])<E+US(WD3/VYV |
967 |
M/1PL72(IC%+`M:H6(0:WC"S<"I(B/X0.L@;IDR;+R,*)MU4@OR&/TDM)7!0J |
968 |
M6>.._DG9U2(_F6W_-"/<G;J!ZC.X4QZ8.4J.K[(VM"5!FG@4M&Y3P/AZ#A\[ |
969 |
MMBS=79Q?&M8&I2(YG![=1F6U,+<%@RCM"1._QES)=:P5P[^\0@I>%4Z&BC._ |
970 |
MA14G;THSK.*WOA&DR/<OD-,=A%"73C"G'+Q)4</?,I#[NCPM#8K7:"5*13C2 |
971 |
M@[]1-NANM_>4L,G!)7#/I8)UV7TIE6;&Q359/!G<<["/ET;W-O+%HI0_KM:" |
972 |
M75?!^A=1+UUGNGOMDS%&'3$"7I:1))&])`DKD%H4/CLNZSX=GP:K>I]=!+SD |
973 |
MB6>97YB#I=CYI3\IP%0/>/C)GQ1A=_CU&4WKG#IALD6GBQ0R81N#4YNO2DK* |
974 |
M"X*(XYZ;#*P2\V^Q<%XY\KC5-1\<&,]>9,XVISMS2S*<3D>:19DO\A.1C=HR |
975 |
M+M4A+ATI`?+TZ^;RUKRLWX@JNR[UT@?"H@MR#Y(VHC5EWU``!="#0WR]@A\V |
976 |
M$R"C'P\BY"''BO\O/W]^'AX&V4KO[%\JO&WRNAK?Y=1(E-B'I$_),/Y:IWD. |
977 |
M.UE1$#I<!V2MOILA/(2;Z7<?&?*HZ_3=KV$%O:RQSJ-@`WT+_]"]80=]\YB8 |
978 |
M&?,?)?I[Z6H?E"C9C10PD**&BBX^QLO$7%3H0W!<*6]#@#5Z6-O@%H,>*79H |
979 |
MLJS,N@[_'RF.9SPLEBO$[A_<B%&"L#`GHH]6@_@J`-IC6"&8M8`@.VR):G;H |
980 |
MQ4H+$M[!X6X0->W4-YRF3->KW5&^934JG#Q6;^=O_N(XQDOHX^"7U;QKF4K" |
981 |
MX1A<XQ\QFTOV[#W[6R18[0/TVB$$T5$%EYQ,=L7G'5\TJ)#++@-WCYK(Q%'7 |
982 |
M]DYD%"Q;1:VQ'2_//%"X`L]7$($F%U\?/S>.TW'``#&C2L[GBO[\E>7CK#Y2 |
983 |
M141!2I[3NN/G<,&-G,6(+39_NICYB*:3W;"FPY@^8A;E&PD6-*>.R\K0'`8` |
984 |
M2',F4\TB=&>C#/E#CI@Y1\V%RW:+1:>N36(Z95OUF&,EU=03-;F'^L#>^"D2 |
985 |
M6:PM1^=UT80[YT7`G+M-WBH<N8\W(%;[80#"I;HIJT\#9$(5Y514HCT+C'(X |
986 |
MR)=E3.VW[FK)$%-#G8O**U*X;MG:Q2V0Z\`%9-&",:/24R((*'5'835QC`%6 |
987 |
M3NZQ/0?*V<3H7BPNA[?[W`<)?$T5.9_$+V4=O%HZ'``-Y.(S:*AM)D<)>F0M |
988 |
M.1U-A>FZYR/PGLWWT(5D2/F@O/W?KV6X*FJ6I.T!0`GWCTY0G()Q-7K6^YH0 |
989 |
M]5/;(2:WK)#5>%+5\:5)V9TOC_/Y?N[.6YM1V/'9R=G9@5BRF6A9Q&\L;=`_ |
990 |
M)`S*WO!KOE-G5XV+`D*`GLAMPJX)"T<(4(<XO&-&9Y?8#T;\"T;+<8_"):?/ |
991 |
M2#*R,9=72"H:BD45INK(N_'#EJN)1)<PV.NMIR;Y\@/9UQRNC4/KGYSK:ZXP |
992 |
M^D-@CCZ8MU3CO.@\/47M<BDD^ZF[WPR53!_JKF+X,7_H-=%U=6UW7S/(6_== |
993 |
MU@CEY)149#259>](0-D\7$0<1+QJWGJ[.[G_'IZM0/2U?`/"_O5VGZU3&"S[ |
994 |
M(:<+I7[R:@J1WC(1D1!M`P\!7P'?WR$Q#K<[8R+%D]?O3?N0+D6/9'B#MZ?1 |
995 |
MF<*9%(3@@RO+501OTJ9_H;';O9$]7Z^W/Q]ER3I=C>J@67A-]^9/15';(D\" |
996 |
MS42\`8W]E;?%Z0>Y9F@U/+[#/)1>[^""MT%>;HV,=G:@_!L83QKHI)EOAC_> |
997 |
M@$`]([LK.>(*!@(R,QK<GS53/Q=E>7Z[/TC!.UVN/^U$/DBGN8!'XD:2CHZ0 |
998 |
M:8;BLA(:<1]?P(<,,X&1F9;;"A:TG7,[=#UO^[L_7F]WNU.SG3F^5U[I-BKO |
999 |
M\(V/<=>9F9>+2_3?-)(]?G>W.5[4VQ.3DGTN1D"\3(V^6Z\VVZV/-%H$UAO= |
1000 |
M'U]W;-+$4>.]:IRG*;$>)4:Z%^E_/IRBC=")T]<T4"XYF1\_]Z5FR]&^D_'K |
1001 |
M!$`US=,-+DYZQ2:N=I_>`^VAFJ?CG7!8:XPB^2:I,WKT3+NE`8D<3K_[G7"] |
1002 |
MGY8?4"G2#!J,KLOKXEFAG*=K+H<NIRIT2PS>T&A*2)O%NF/?G;%:9IEOC#A/ |
1003 |
MOO!HR@=TY^E$4ZDRR,[3=E>][W'.T?\=B9;::]W1DJ&EC%B&S3]0(CF<,K:_ |
1004 |
MK,0/9V"V0D-X\@P].#S.YZ>.D'#=`CZ1WTIRL)F'.LW3);=VMV@[+AU:M!2L |
1005 |
MW.V>+P;AJLB9OU)CWARYT[XPR=/]`9X)MP06&.D)>P_3;Z-)OA=%%B6)5?], |
1006 |
M")*T7%04[LX\(N-[?+(S@5CJ,>^10NM:MEKK286-ZJ"Y@A_\R"Z,6HHO6=8T |
1007 |
M&WZ5))I)5JWEF9>CN:JL1T9Y-KFF6%,4-.[9F8ZY>JN5F9<DL_OVH0>Z/"6V |
1008 |
M;8*G`:!"H)6OM]N-G$1'MZ*4T0$F.#$XO%$@.!@660,`-?E?XCL)75W;VR"N |
1009 |
M#0VL?YQSDD?:O="08NS?]L?EY^8GWZ&09Q.]/EX=/2A>K[<;3TNWQSI\IH2^ |
1010 |
M%2('_.WN#X!+;`-')D=5AYCG66+Z[,0=*_.=U]-;;:M%.^Q&[%ZGT$HL`T=C |
1011 |
M8!%!E7O5:BRD.K.VMFT?93N%.]J1MFNS.%NVA6!-S"$TE<7%]7Y[!K,#1S4L |
1012 |
M,@H+/5UOMX&)'5"<Q$Q'JS-85@H+P'Q%YK>!&.U0/X"6I$1'IS/-=O(+U5O- |
1013 |
M%UZW7@^BMD!MN5I6GZ[46)/=BHQUR=-4)$^2$]]W2HR#ZJ!X6\Q2E\O3S^7] |
1014 |
M9BO2UG%KGN^K51A.W)SNN2J,(_G&K-ZM]M;`Y!F9F%&Q#&.'(2XQ5NEOHC$8 |
1015 |
MFVH^2:O(=Q4K]$EF(0B'1T=OB#!,),UZYFHOJ4MC<#952_1`\V:;+R:8IM9F |
1016 |
MM4XQ<4\L0C$B0]#\935QGR&?)LU<9[H+R=:<OM_G<&%IU!A4YVD&Q5M^Q7K4 |
1017 |
MZW_**\F[,G]'^UWL*PL7-V$#PA%+&<]T:W2@91X!VOHB=(T/Y)!?MTM-!)IQ |
1018 |
M3"52^3K1)RC_C7(RTF5&L89R_:B04C(=FY@4>"*B8$E&1DE%BOR5FE5.=#\8 |
1019 |
M?\N7O83!W>[U?8U5U^&W@JY`@R[T669`-L87Q\,>QQT&?F=WO:%W=NKV'3/7 |
1020 |
MZDVN)HE8K0V>]=/A7W>AI\KDR$YT_';+4E#-]*8K9#L0%]'_'?BDBWB;E"@Y |
1021 |
MVFX/%LFNQ;'.4WAJ>M_O!_P<_JST?7\C0;YA4L4$EN74ZO1$BN5@FB<'DGUH |
1022 |
M^WKL#G6'P=WM]24Y<.$D0%ZR3)Y0E2NL-Y#1JGC7.%:U"#(L=/-LX]Z>1>;Y |
1023 |
MBKHT.HV]:EE10X*4BJ]"DCB46)NL-(-"DIP!O/EWZ0$\H98JV!;[@/I#9I,X |
1024 |
MF$U[U3M&4*G!(L%5X>K4J3AW>DUT)2:Y1;@Z\%VZ6F]]#K$(,]*;$$HN,*P, |
1025 |
MGHI'4&%1IEQ75T]?3U=+SZ.VV9:6E-:*EB2^1RM.3(^WYWAP';F*>G[.9*TI |
1026 |
M_NF"=`J]C:3I^7R,I%D)6U7RZ3UMF.7Y=E(*H'=V+U+4.4]2Y3Q*EGVK72"C |
1027 |
M5Z0[K`6&*K/+<F5;T7-_N[@J>=?/<T.\,0KGUS>>*57P,-"P[5N6/CB!:$G) |
1028 |
M](M,5#)*,FW80;20D-Y-M=^[[<"I#3,OIU\%0SFYZTX?YT2)%>8"2VXD]NX: |
1029 |
MA]V!31*,>&=L*OAX,GGKJDG!7*U@\WJ:C(X!S4Q5A&*V6H8D/Y\J:J\R'0WY |
1030 |
MDXH!D6)\04EPW!RWLYJ/LOU-+Y4#L?SB$R-[4:D+PI-BCP9?63?Y-Q0ERK,0 |
1031 |
M^HMZ!B/(A;S/"G+S]IBQZ@=+A-\!/K`N[T,F/GM;PQ-0QS5^JFM!8GR']C'F |
1032 |
M163'],&R1CL'ETZWQ0;R!K3[/,`,8)?S>OG7N60CY/VTE'467O2TP-SG%`"X |
1033 |
M-I-ZB<(36>OHR$S=!\HCL&`%C',>]0+T9!G$L2\*BL-=KI69U?7^!`9]O5YB |
1034 |
M/8:F95:L+?9:T:%AQHCXV>&^J)K!U*8`TL=+7)6WM+G9.SLZ!L>)3MS^%$.> |
1035 |
MO0(0'!P0`-SD@)!B0.P4:YT7X5]+Y&"ZRF6"QR&J.C*FU/3TU$B&PGF@D\AX |
1036 |
M=ZZ[+'PQ&]11_^G-Q&+>AEROJWT`NFI??0.Z=F_W.KA20YMGX\00Q#04,70S |
1037 |
MN%)#V@7C_,%:!..P@7&/Q19M\LW%VG'\!^I#H^L(%<]_G%R8"3AH`B%C\#N% |
1038 |
M5V6R.GK"F0A+(CT*ELR8EJ^')T?,7PJZNT76WFMCQ5[I0R?+W.UN;[:JIP:& |
1039 |
M8I06NKX+1V,B'Q[N1I8=#I/#)'%B?_$.?[L]1-0M^>75G9W5^?A`2C+Z49&1 |
1040 |
M4%!0CT^R!_4P=QJ5RL\;6M;TR6AHO/KX5:1VE9I-+'PF,B,BQF-9GA6]E8W- |
1041 |
M@_KND?#T_ETL<CQPH:&DZ-3VH+"\IWT(\GET4W6TY#6ULY_7+-WGJ]U%59U5 |
1042 |
MP(S?'G-#22QD;KH4]+H(^\4?*QX?('%X9#M3LXG&#L7-S[]!V=MA<;AG)WP4 |
1043 |
MY-2"B*J[![?*9GL=3F^RNS]\5DYK`_Y$=5*NJ<D'ZD7)_V0[?$>24]3*>O,Z |
1044 |
M':=6@``CN?62S5*-)]"]<=P5'"!LV:D+CA?CN%KOUAN<ME9IM%@16M\4\^HF |
1045 |
MT:P<6S!C4)5U,D!*X!4D`TIRO4/;*M%1Z\0Y0HN,@E65'8O+LP=0P.U-@A<= |
1046 |
MX^V>D*PC>/<8\H@T3O[=%Z/F9V=K_8"C[516O7Q6-C:6P>59]WI-8WXZ^/+8 |
1047 |
M@VS\VIY,8(4MP>KQ.?)PW,RG"&DHK?HIP/V4#V*V)U;G/9Y;M,C";:S9LQ1" |
1048 |
M"FW$GZC.RU'6^%=53HQ2"(G!0L?!BRB'AO6\F*J?^[/_^E1E*J\"J*FJK,77 |
1049 |
MK?EPNWS>1T0((8D1#X^00<MY?^5XK,ZC[D,"KR;`K?E^C1R&/)W-I+,960ZN |
1050 |
M2RSM9G&X.?(X6US>1$]3GQ]Y57\]].I)SR,>7?Z$R47(7<A=;_5Y[8G:$K6I |
1051 |
M4Q)[0/U]P!OQ3H315D^0$>/U]?Y).NM&S%(M?.@AY(@DDDX_%EOO9C]VOV=W |
1052 |
MNI.PO$R.*,5$S;54K=7I=/F^:!8=.OW<7;U)2>)JRW%]"SXDO*Q_B]?1C;>[ |
1053 |
M%C@\))Q3N9#`0;Y\=F_]`Z29T"S172G_%G^D>G)L<HJ4^M7=!J#S9OM#K(GU |
1054 |
M30#FZ<SS^7H]W,KX0T(,=GPC9R,;(VM"O>*+)]#@31OC895@I#%\LS-\7O## |
1055 |
M%_7(@Q9FT'Q7>"SXXX]^U*46-5/E$V:H!&2HI*:A\4AO^Y@M0(M::*5`@1DF |
1056 |
M-YKLG+LJ</H%\U(#1!UIJ*GR]-3WSS!`!>Z)$"U28"7!3!@F*2_/)XPBC"1^ |
1057 |
MJS1'%9%0!HZ.)!CVEXI>2ROW;Q]&88D,#`^7`DX[!P$@`J=5P`X.1^?7?_5U |
1058 |
MZ0PS0/#>=7ORUNNU2Z\+6W*1S:FM?,J[S;V\=-KL6$C]@+/"%.AJE*BH'GO) |
1059 |
MW.Q?5SU4N?DF=]A]AO/N(8T>.\+JYAZ+><$^NNJC+G02VWP6LCX/S.<0"!`8 |
1060 |
M"/`%6`H,-/5!W.T@\GD8*H6A2A,)#@L)"Y'->ED8G)]+\_YDC$5V.W9GI=/* |
1061 |
M>5E*^.&S&=%ZB$SK`,W('C\6)B7[A,L&KQ4E$&=:V?&A]*S)P>J@TT9%:;$V |
1062 |
M<`ZS1<9IX6:EI77U4'86^Z^#X56?CT_B.A(HNQ.^YK1+%Q/C@=7WWJW$9DG- |
1063 |
MD;RW[O["12CX^8"_0=G!Q%9)SN[<G(\_T(;U/;N4!],">3,?TW]P>XJ[V;'$ |
1064 |
MUE5^S7JWYU`<R16B5N=*0_WCABWQ(JZ@*YO26TQ$XP<A1AGW`"JFV>@]-Y!F |
1065 |
M7_PXBT/!]=N;F/.H6I&[LJS,1[WG>Z5_%MOLI,MS)2Y23:0C0Y7Y-L26P[7X |
1066 |
M]G2KQD9NP-C74%&!NF:9*QOS4?K4U5F3)YW'ZG#-;JD]A!ZW4,0M*OL<\=[M |
1067 |
MQ+?YKE?%^^E^R0?X#01(YO4E`PO]_55=/_M#?MCULB=,_4%MK;O>'5?F37^5 |
1068 |
M%'<:%M(=C5>SZ?<.?!?,:7/WJ^/%=ACC/O%W+#8ES6O\2)`$]R/&"[Q&"%>< |
1069 |
M!^U4D71P@C$IC4\?M,U,&-J.:,.V/F14CR,#2V"XGNX*D[QS7%,F9Y=C+4;` |
1070 |
M17XL4)!QM2IV?$HUD#+S%>R1;B8QU"7@"1Y=NC>ESH`Y<\$0OZ0[S=\Q"TB* |
1071 |
M,!+-VN52`+P+TA3"H8B@-A]CJS:_55WR3ZAI))HV?49G-N5BWEA4,%+?%5/M |
1072 |
M:`QY8WDE+@)JZ$KP&OC26'34G#<?GO(@;5_+.>+?I!>3)80@!T='M[:,+.W' |
1073 |
M/G9VU=S$2(<R[)2MHP`YRPOY1[C2@T*K^$FH_&/KL4WJ5KFQ)U99,')-A)Y0 |
1074 |
MS<)HDI\[#$K<VKX[2\':/RV)=:FAB3#=2@@]R=\L.I,J"XD/:VXM'$8O5_%Q |
1075 |
M:T]6E,&\&49,\*&QM;&QM;4QM*]+'V\:GPY9Z3#9:G>L`H-#@\^#H7,#;0:1 |
1076 |
M2)6["?C+M3G<K:4?Y]?[O+6X1K4WH=8[F<>FYZ6""^-@3-5NFX#X&)CI1T,. |
1077 |
MFR+`0&]R+!C$==<[@PVA(/*(J*SUFH$0=1"#(;$(")A@CZ84F7V&@#,_&%QW |
1078 |
MPGK$"R8%N6(YI4PJEQ@T>`:+(-KX`$*3%)$4DHYZE"/#FX,(Z.+&/L"U`TA' |
1079 |
MF@HUVX@(#:445"64)%412@HL6FUV1M$?9$!\;ARX."^T(/0%`U41%4U$7X>' |
1080 |
MX6V?+\)R\!]`=X*_.'/X2BIB09G)>`R5)Z-%2H(2TZ$4J(<C[2^X8M#+'`.# |
1081 |
M\2*E`&#"S1$Y5Z?+<TH<SEGXH;U@,8EY5LNFSM#LSKO`YS2Y(H'.VOFP%:E- |
1082 |
M=90G$NZ*POA8\U+:\L*#1'NX]I@R[HB0W-Q`^.Y)2ET5&Q+#5YOU^I".]H`- |
1083 |
M^X2#Y:=(E5S[@0\8R^JJ./X@7+198I;\F>*%JDP7LV+%"DJV]MB=L#;/_XQ, |
1084 |
M<`X'2("R^DP<?!-^L(9D,^(.3687_,,HF+#DTY?$G%(\3ZM.%)-`%3*MY`E\ |
1085 |
M6CDS@O7\_**J*9!"AXE0E&A<J&B)I(!Q2RM4Z&"7-%IX?6WB4IF-^$83TITR |
1086 |
M#'$:NPO(9<RE1%7TC.6"0'NF6+#-R"K'X.I!$J,-B599T=$DN)J:2;73OM@K |
1087 |
MN[V3`Y+C["XSYC5#PJH7/ELQ]?:+S7;E>%L[OS0I>";^^Q^XP.?U5#;8DWVN |
1088 |
M:QT:U*#4O\$PG$!Z*JL]<]A@%FIP-!YKJ,%N;CI`0<><A28#14M5?WF;7R=\ |
1089 |
M[C24JX?8)+B3HC=C@?390'N%EUA8`?%-41MK``-GF.J^Q=53+[=_@TX:RJF4 |
1090 |
MD^"#H<\-X!YKQ7W@P1[=W"OH1.!KJS0$^--_]4#PO\!6OMHQ^-ZN-N.#U\]H |
1091 |
M`?#,6^@"[^0[3#U`\+A`-8A$X%*MO>#!^0[&4.!G?5_<X&YWXOT0E&FS`N.7 |
1092 |
MYE"#/]8XG4[P@C@66O"WLJ9Q2P#@>`@6/^+_#E+N4L5"9GV.3F:#_G>I?N`# |
1093 |
ML7-!*9Q_J_C5T@,4F^\'U.!^H/"_JPC@5$B(J]`'_._&V/M6!W8V_.H9B8S9 |
1094 |
M_O09DJM^8/C>B+""<G1M8`8FCH+E649W\I3*>(#UGN[VD/V6!BNGL?S@-D6$ |
1095 |
M6OSMB>4DBW)T7CQP@H49DO(S#('W&P,*X!XJ>-X`X%1*[A25;C'XVD]C@,SG |
1096 |
M;U-+>6`&)VY7Y2Z49$3@5W0PNO$N]R#XQBQ2T?C>Z9<>]Q[PJK:`-81$X';? |
1097 |
M]X#PC9@Z,?C7C',W'/"JM3HX,44J/EP@!&5%,.!4:PTN[CF!\35$MD"#D^]U |
1098 |
M&T?._P:OA#7O(/&WF4R&Z='(#,;.!)"`9>"]0^")SP80Q-'NT2,2"#3^23?Z |
1099 |
M0EC1ISUI>&(/F0F+S]Q/NZ?KG,T@7G.'0:>NI3,)%FOV2R=I#CJ'3J9I4+<< |
1100 |
M-GC?9`FJ+YG-SC.?7A3`CI1W3A$HXP1AR+AAL9XB)C@E\Q^3%LZK]D/X;.J( |
1101 |
M$^C!7WYUE@B4]T5_)XYYND(<RH<KSA@Q^UA/X].$C`9,%>L/G?,>`ODIPJ4/ |
1102 |
M28.`/'5!_1`,+ZB&X:KF5_P?`'*`C7\+HY>!B!\KX@>AF_K8D&_U@GY=!0:! |
1103 |
M-UL$0+UN_AP0<.H-$:E8`4>#``T:S$A=!V@P#UC.+2P,+"=H8UL6'[)#T(S: |
1104 |
MV?YU(72<L)R,+(B'149@O6,OB%O4CEF'EQ;KM.IB^]>L>-B@U<G8V*>K__CC |
1105 |
M_).*ZY5_W*^K70O+(BE8A"MOD:'0DPAF90SS>UB?=17,XCCF*YD%6*V)EO3H |
1106 |
M\U;??J,@').S4?C![;72KIM^?Z.G[=TCO7HFW>LF!=MAVE(H$HDE(-NBN)IQ |
1107 |
MZM)E`&/W-S&S\+5N(8RMK04,%@_K*%X[R=OK;65K[\CLK&ZG=K-=?<?&SI*; |
1108 |
MJ0$Q!X/YB%@D$QO+K.QB:Q'))(4P*UF%Y-R%5T,0J_6]R.#2?MI)0V$U:C6. |
1109 |
MKZW=:->5M"^^MFZC+1#DG/'4T"U[>P<'^WZ]9`!ENH>VNRV74=I"9F<'_0?" |
1110 |
M%@AR)C5TSIIGK11;\5%/AP$NV$7_*<WC($S#U*.%A1D+=0,E))TTHU1D9"S9 |
1111 |
M-$UZ&S3<Y%(FES*YU)_I4I`NIA_2ZE7AY)JFWK%I>6!N`V[0YZ/NJ'%!Z($1 |
1112 |
MF\\7%Z^!G4LEA5^\'7\D)Q9V#B<DKAX]\7`Q[/#ZJTGYQ1A"TILU1#P&^KZG |
1113 |
M&@(_5B^#5P*\[>247#OB?7O"J"D\5%:EJ'I$-O@NBX"7@O3'X?6!F^P;TJ4' |
1114 |
MRA3F"DW9/P]=1A!/DR9^K"A**U.8*31A.VY`81UW2]-\3\,C$A6*_`,*6J$J |
1115 |
MB]B;7]I<4<^4X_*Z_-2KBG*%8NF7%TLJN-KL;4OS?0L97E*[7/'U@:OEBHC- |
1116 |
M.TH?U#37KV'*R\L2,S,/78WX_N*&BP_J+[/'8N\5\`8U=[<`]:L47U]4E-XX |
1117 |
M=.AB:=E)15-S?0VCV)!?3I7C$GTYA!;*J>_P^!IF;WY)*:\45ZAJZNN;;C57 |
1118 |
MU^TZ=UIX6O]U!P?M1@3^!K<@[+!%HW^:+/C7MB#U>T=>>-%@PZ$;3^;E137; |
1119 |
M<$#LOM.+C#;TVIOW&=C024W*SX2!#3=JB'A8>QN.MY51,NW086^:;/CJO-!D |
1120 |
MP;^2!=M[H7\6A#[98;#AVY%;4E)&--NP;^B:!%>C#8?'I[P#-NRM)N7;@*0C |
1121 |
M-43\G?8V'"Z#+*%O#Y28;/@JO-!DP;^>!8D7:BJ>UHU#;R(!H_434.AOR(+1 |
1122 |
MPF^>;D#86U,<,4!J(%QDK0@*XC-;,^J9[*\W`:-TD=,8<^^PVIMQ16>OE/J: |
1123 |
M4VR1MS6"%TLU#VW-V?T`*;?_^"U1FWV=LZ3M_@!IF_WJ=OM/^K?C.[?:9U-B |
1124 |
MMF%KVU=ONZ^N)O(SH5M;)G$-5E:3!IG9>P>(`M3>]N9L6=,=)PG"9M82J5#Z |
1125 |
MS!KZ_W/UD^IGJCOT'4WI@CXB9(N:7NOCZ.S<W]G)D7+4./0FG;8UC?8K'.UH |
1126 |
M:C/9T)^[X9%M-O*71K8^B/N;03:9@>Y/-@N.Q)^0+R\@R"89/2MD_L>+PL(7 |
1127 |
MSND9$O99%`@0ZY%?D:2K9!,8:&2HWTQ;MJ*M6M'"5K2H%6UMT-7\9]Z*9V.@ |
1128 |
M^48N7EC<KJTT*6M"6-V=;`YD<VW#QV'O(/R5+\))G@AGI2!\(P[AZDD(J[+) |
1129 |
M]B^RW2';$[+I2%UH%XI$*MRUOW-7C(:@1OO82[=+BXLR(B`IL%7<O8?W2V\6 |
1130 |
M7+OT,QJ$ZKND/U0\>'"O[.;U7W)A=OTGR+D="CFW+8\K*AY553[\K?3&ORY! |
1131 |
M$I*<O9"M>W<PY%&/N?_PT9,KYZO*;]^\>`AF\W-^W`6IOO<E^T&J[][%Y>55 |
1132 |
MNY+6I93>/;_C.*11S]F;<@!BL$(05@'2IA\Y=H(ZH=ZU.\E/0*K71M\M>U!Y |
1133 |
MD&'NIE[XD4NC#A%8=VU/Q(E:",)*#I^X(PDG*1,3DG8D;?X'Y#.Y4'SKGN(@ |
1134 |
M3"V5'#*D4>?BKFY/VKY]Q_;MD*:R;F-RPI:$Q*3DI*0=W\,ZZ2;)K]=OEOUV |
1135 |
M.A72J$.`$MV7GR\V7ZP-7S0<#N(WP5O@K9O@2"S2^&;1M<+BTCMWC\`,5&41 |
1136 |
M3"@YNENXZP?#TXWQ0#E"*)1>!9>O%=PH+CD&8H]S87+)T5U@%!.`F!EJ%%W+ |
1137 |
MN70U;W\JFT?],>11=W1W'^Q`.^C[@^!8-]J-`E$!4AT^\W-NRCZ(W_^H@GP+ |
1138 |
M(*[K8!A=-W='&-U5F=EG-^]G&,65G`=<(G5'8.O<(.Q?;;?3&9E9">=*+IXZ |
1139 |
M>[KP%M@4F$0SL>G'62?23YP[EYYV[.3)XV@@TO"_R4@[2AU5_W0H9=]NP(/P |
1140 |
MJ[2C*2D0'V77=@(7+3UCYVZ\6[UKY_:8CY`K:K0)#(^/GC/W[Y/0NT@CL+45 |
1141 |
MD%N34R:PF<#VBL!&CT)1A)9*!,@--5H/"HP*7[)HO!.`C1ZR*'KQ#'\?[_'C |
1142 |
M0+GYV"\63Y\>&.#O,]$+&I8##?L>&L8;$_79C.#@H&E3?">QUKYQ!GJ4'0=@ |
1143 |
M&[PT=,:'OA.#IT_U'^\.8+MQ.@N&X^S)53`<PI!ETS\8OS1DS-3`B8LA7L^S |
1144 |
M&V?.GX-(C!"*D8S>E=Q+OU"_J+.R,U:)`&QNRP*F!Z]BF..>DV(XL$$0QJS, |
1145 |
M$_B$%N(PDL.?.)6!,Y0GTC-.91Q?"V#[9.:4:4&+`&Q'X@U@XV(O9F9D9I[* |
1146 |
MS(3<B75'3Z:GI9_(.)F1<>I8%("-'^[C'S!MPC<`-LB%I-N])<$\09NX=18< |
1147 |
M)#IBF6"9+L(#P"9<Y.WC/V7JM-6`HK0(`)O'7(NY>GA+7+\$*`\`F_"S\=X^ |
1148 |
M?OX!&T#L?""`S6.NP"@F`#$"-GJAY_B)DT:M9\%V&<#F,7?NE-'T:#WD_M6' |
1149 |
M!=%!%(@2L/F/'>?U_A+2,7R<`JAYS)T"8QLTUP/&=L+H,6.'K&"88R'34CFH |
1150 |
M>0!;%^0!4!,$CQKM\?ZWFV:.#@CX]D>P*#")7F)1I^F>(T?.F#'2_7V_J?X` |
1151 |
M-3Q@RL01U`CU\&%#WW4C:-#PG*=Z#<5#U>^]ZS;$%;"&>PQQH]PT0UP=WP"H |
1152 |
MF77OY^S0LV?WK@`URIS<UT6C+!/03$![!4#CSFF8Q\,`-<JJUX1Q8\=VM4"# |
1153 |
MD5(\PF?$ZS*I-;9^ATA8CQLJQW(LTTJLK:%=MZ!=6>1.5&L]9K"<1SC8V@+I |
1154 |
MRG^%SOQZ#%!F/<I%+I=8R^4RF;404%9^HPA&XF;!8:*AD7+VE,N[A4R2R+!, |
1155 |
M]^$R@%GYK\4W(6(;A&PC(W>[M.P.=4==]&O!82G`K,L$F5S^*<-LD\D7<3"# |
1156 |
M<&U%A=?Q=2U$;".#>1WBKRFOYQ<4%>2E`<Q&.)(Z;.J@Q$@#S-@H;06%!86% |
1157 |
M186%NZ#6M8)\G*^_7D`5:(OR?B0M47I)9#*Y]'.`&:03U>6</B,XH\O^"J0/ |
1158 |
M[MPCV*/;&4P@I>&-91_[Z&P6`WZV^0#,@N,LXO1A`(LDH((!9D2.",JZK`"Q |
1159 |
M(V\!S(+C!$8Q`8B9DZLC3(2(5[`HRP24!<?%A<V@9^AG@MP/D70D!9*$=B!V |
1160 |
MT0D_!)@EL3`+C@N#P8V,"P:8#1);6UO-9Y@D5X=$#F;!P-9%!D-X9CQ(C,6- |
1161 |
M=I'A@\5]^RU:#_8$+M%,<"8=8"<6N[B(1:*W!C@26&DM'=\0\458.)B0`]X0 |
1162 |
M81%/J+<B"-&;"7E";*43\,G-5Y.9N<"<;\:GT7L(XVB4;4*5"55_-JIH#W(: |
1163 |
M:\`\@4@BE4I$`K@B\@32.7?4#*.Y]RFL9(*T;>R+56K,%\]J8,P82X(S1D"3 |
1164 |
M'^Q<GC<+2',E/<-`J#9(]0:)L23&I&^DSWSI#<8"TJ=A2*?65T(1MIYJSOUF |
1165 |
MAK0\<19CR9AS"P2TSC*:HBC#`@J@X!D^*TJ3,[`@B+%B@`,/KH5\-AT9R^01 |
1166 |
M/9(ZPN0#DQ1RRQCT;`JS+NSJ")UY$,/.4\+3<:V3U,`7-F>9TXENDAUVH8(( |
1167 |
M$K(9^")&"7PD4;)<:YBK,;#$C$K.1TBJ)QQ(>F8!%?NWJCCP=0O,L0D\^7)N |
1168 |
MHL=XW"8W>Z@N:6+Y6L@_9M5*P(II='-@#RTL8!O.2EBV:KHEH^8D2./-?8@, |
1169 |
MGY,A\'UO8'^JO\:)&P4-)>SI1/9YS?(4C-93=BBU7!HU[<#N<BF6:B7LH&KY |
1170 |
M0@G9T\O!)[DJT$#!)%+%'#6QZ=3^F[TS@6KJ6O?X/B<AS*-HK;=J;ULGZE#; |
1171 |
MXJQ40%NUBDJO(FIIM0ZMK:U>6[F.4&KM=:AC"Q25JA29!&2RJ"VFJ"BBHB(R |
1172 |
M)$P)D`"&*?-T[OY.0B`D@;ZUWGWKW?>R$-?BG&^?\?O]SS[[[+W_O6^4C$E1 |
1173 |
MWG0H/@K2.1D?G1V20ZCNGLM):N1(6(U%ANE6@'/"WN"D!@GC.%B7,#B=W!)P |
1174 |
M.CGH_=-PHC$AT1QP#C*=YXEP#CH9$M,%B4E;MWGWI%JM[,$"G.\XG6V=()V= |
1175 |
M;'5_69/;FMS_%Y,;^L70YN4CP**YPV#1K+ZZS0&ZK>9+8;9I]G[,J+S=R |
1176 |
M`%3Z[99%Y^??O-D.)LTG?^XV:59L8U_-/F&/+X;$;3M$W+I=*('GZGIH$I%$ |
1177 |
M&KLTYU_+28>YM,3+Z,@[1<4/+T#P?JC!]S)ICL>QB</!I'E8=/[.I4L#EP6O |
1178 |
MG`6/U[/F39H;;N6D)WT$)LT;\T,"%@<N"UHY#6:73IYCR:19H>`49J<E[@4+ |
1179 |
MY*B#`5,A:8*GPI>QU`\MF#2W@DGS_8*LU(3OW1#*"Y@#:3>=KCO`>?7R:&X] |
1180 |
MJ!2)6O,O9Z3$[QN.T)6%\'POA%P[E;C1U**Y5=XN%`JN9*<GQ6T;@M"N-7`H |
1181 |
M-ZOA\)(SSRXWY]"L.2CCD3SQ;QD7+YS;X(+0["_!M>1R95WEDWM_9*Q[1V_0 |
1182 |
M+.3&F!HT<W(2X[X'XTW\MFJ#Q(F%]V[GYUU.CE@Y1F_0W%)\PLB@N3(K_J== |
1183 |
M_J`;?J%P$P^P\V_?NL6^LF7A3)T_<\N#R;W\F159:>?V;X'>@IIW@O#_TJ#` |
1184 |
M9>\%+@U8Y(]H@^:6.R<,!LWBRGM%17'"]'.1G[\-_LR!BQ8L6.@W6>?/7(N3 |
1185 |
MLLN?65Q6<*L@MN'LCY^NML%YK`E80!LTSWS(CC$8-*L?L&%V9M7.C]8Y@HGS |
1186 |
MT(7H):3)A+F7U5\LL4'#D.B%_5\?V+]Y];L^KZ&O]W[DO^XMZ`0^4-?1WLJ' |
1187 |
ME0\K'^;Y8/ZN>X8X`R.2;D;\QC"`D<=R8`2GMX&1.;[>++ADSA%9CQ^7E(B! |
1188 |
MD87O]6"$/=?/YPWHLRP9$@,13TK+9'!)CD`#E"3`F)&Y?F_-?`4N;P0=^;2< |
1189 |
MPP4S0LV%+::,!/B_-7.:`S#R6M;C,V%AX1'?[E\#B77%/"-9'^#XOP(C1Q\? |
1190 |
MV+,W/&+?_E60$.S-EAF)_@R7>162,#-I3S`P\BV\\6GR#UID1";NW+K>9\;4 |
1191 |
M";BN4[Q[,Z38^\`(OH<FC&@P(X1(O&+VK.E3QCH@5+0#("D#2'*N'S4+B4`H |
1192 |
M\/69.6WR2#N$8@_!L90TPO&Q"ZY\TP<D2_`>)KW(1&CC3P!)(5_(KZEX=.O[ |
1193 |
MK7I(SH0%&D'2Q"6X\JJ$@&F3)T!_8>TEH.1Z647IX^)"=MS^V7I*S@4&&%&2 |
1194 |
MN&3*&Z,'`B6;X`5<G/CP<>F3)P^+(G=^J*/DW'M#>U/RWKN3QHZ`>3(T6Z&K |
1195 |
MA71?>,37X6%[=GVJHR1^54!/2NYA2A9/FOCR(*`D?%=HZ(Y-03I*=JU?9*!$ |
1196 |
M6U9`%,AC&R9-_.M0L!/7[`ZE,?%8LC[0@(GV`9O!5HT:_B(#(!F_$T,BS:2] |
1197 |
MAEYYGJ`AB3X9$_W-EQ\$S$0GCX0NV[88(&'I'B)60*R`6`&Q`$C74X0$2!0& |
1198 |
M2#2N]C`PD:\"1H(G&QA1N[HXPJOQ@$O%?)*OE0,BT_RZ$5%^XNKB#)9_FA'7 |
1199 |
M<0!1KVE4PN7(C8<TG&%,B"N.A2$(VDM\`H<J&QJ%3="S37/[E"DBHW"P,[Q0 |
1200 |
MBOV*^7^DI:5?RLRB9UTN,8_(&6\<;PN(Y/)S4NGPO9`.95&6$%$J=_KC,O:0 |
1201 |
M@@\*4W<!(IGT$/3R'`N(2*">-7^&L[,3P*NN2P$7-.W7P$C958N,>.&].-F1 |
1202 |
M"%4G`".-P,C#LEQ31A0T(R[.A+/<";H`Y5^&H^'#/&NJ,DY)ACE(.C$D=3S> |
1203 |
MRW@7CC#'O^;H=:"D2M0N:A'P*G\]K:?DR&=^IG6MXR.<G>QMX!SN`R1EC6#B |
1204 |
M6U5V*RM8#\GQ:;.,(/G!R\G!%MP!-"?9\"9^IXY?C^]D7?7O2=_J*#DV8U`O |
1205 |
M2I3C7G&T8T&.G(;O5M+,]$N7TM-2DW_00?+CO%D&2+251421/$XXQM$>[P53 |
1206 |
MDIX<'Y]P<H>.DO7!,PV42)[>PI6M1D=[E@T0D!)/,V(W.=C/F!&U+8N%\U3S |
1207 |
M5A)&1)N52"2JDA)QF>$8D?!=^\(W_,UWLA?:M>/]61],PX^/!58RK&18R3`E |
1208 |
M@WD7:1@$KD?I&EM?16IW.P:R-[2O>B*"&H"4LO4N-M`0!\/Y]`VKSH@!\Z*1 |
1209 |
ME`<.4>7#8$)\U5[&MU??W$D2MLB><D5,2EWA05_RCRA;2@(K@RAJK"V,%72@ |
1210 |
M7.`BLUT8"&VF[*$H"<VQWO8P_M"1PL@.I9B4:HT=\1*T77JR'*'Q<:0=W6'8 |
1211 |
M`?J5LBB5Q)T1#&V5KP^U9WE"YYL-`Q&,V,2I]SIE1VG6V.&UBBEC/%FD+2ZN |
1212 |
M'8$/QA4:A)?#VDIGL,*9,F809<]DP.HW:9,;&RAL3VF4;OCR:D+>Q-N501`U |
1213 |
MV,D7#G$:;<S"A(W@**T[7B;;,WXX14W"0?@81OE`N>F(\J1(V)2#/DCN.]R% |
1214 |
M&C5J$'1DGDX?B`UL`Z]6N,%0R=<&L9P&>\)L>UUKG2AUJ3/]:6[\`";3'D)_ |
1215 |
MF]R];KGM8#B>(7;0HJM9-1:N]'$8?!A&MUXK.]P8S'<API-E#Y<X:=P+$!(& |
1216 |
M(?`^KB%@E'S'W^P(PLZ?HD*'.^*+:$NIDB8.=X%`;PCTAD`2''S:+CGCFT4Z |
1217 |
M#!XY\CD[TG8@ON'*OT]XT95)7W*<\X0MOJKJN^X`C82T=7;!0J!K`Q9/>WW< |
1218 |
MJ+\X,Y$W%4:Y4<H0RAN]`+M*=:>SAT&02$RW_4X<-L#%#FR("&]W"CIPCC@` |
1219 |
M0TQ;%SDSX6.!%()&>3!)*$7@TX"Y^T)P!*[?#9XZQ]=W[EQ_-[Q;5T,#,!,1 |
1220 |
M(0QO9<CQL+`0;QMO&Z2R=1_D[DEXJCUP^KOKFX*'(16IF\;N/P\*]4BZW=TR |
1221 |
M%>H-]"VQB(5F*#P8+'.A&NV"4]ZM7S"@5W7_8(QS[P,,O)8^%`MD=*\V14/] |
1222 |
MFY=;]THC-M2K7G*"J1CZ@$.5-.XY%L3T1X<2T^$$PV;_/^*QETFBL4@Y@D&R |
1223 |
M7C5X:^Y8,;^7MZ:VCD-PM`]0MR_X6G=G2[[@HL8Z[AUC7_!5[B[F?<%54@HU |
1224 |
M5A/5X@(/(V/P;;N6N;M,FN1CT6)30Q?KS/<P=@9?[<YPU\[HRV,3BLG9+W4[ |
1225 |
M@Z]V)]PU;_3E#"Z``[RJ<P;/C?CF$T2[;*YSG_FG7#;UI8OEBLX:3F'.5KC7 |
1226 |
M"JGK>J2$B?3[,P9OXA$\\0UTZFKNY9R<U!OA>+$"3#;O=HH9_?N"-\'(G=N> |
1227 |
M]\2D6-5<6WL0+[87:5K[,P9O*D;%16`,GIV5FEP;!S>$-@:'7U*@A483R^:: |
1228 |
M4O04):/KJ!!7XAKK^'1Q1YZV".G,-6^8-]<4@R%X-`J/RLY,3[VHVZFJBEM5 |
1229 |
MQ65PE6`)KK?9O''>U&93W%E]A]/.O<)M;8$Z(%VVRV;S1GP2]'@^O]'$#IS, |
1230 |
M9F3),M/34I*3:\ZB;I=-Z/,<&Q,#'9Z-O<"?M1`MG<W"9J&POH%77<6%0I(> |
1231 |
M7N#$/4DN0KK>SZ=BR5C)`F,S\&9<=232Q6GI:6D74Y(2$CCT!O16X`VQ#05$ |
1232 |
M@98VVO3R8?E(WS0RVFQL(!HZZAOP#[^NIHI361Z+`UE@M,E@:VE+<"\?GS&, |
1233 |
M,;)QW4:;SQ3\E)2+%Y-3\$]R0L*%7\K`)UV;A.N1:C#9))+`=).VVO3RZ6FU |
1234 |
MJ7U62]2VU]35U-;45M=P.>5E3T^#UZ97+Z_-VIKJJAKZIXK#*7OZ)`9,P:// |
1235 |
MQYTGSG>>/8=_SL;&GCX=LX$V\+5JC%5CK!ICU9A_F\8P(_`JK0<0ZFB0F9LY |
1236 |
M9WK;A&]:MGC9TAXJ<R7J*TLJDWSFR(Z/C%7F<M0>\RH#7N$1H3NV+G<R$AGV |
1237 |
MC:RH72=.[.O#*SQ\;<C:=YV,->;7*$:4]D!?&K,S@`B0SWVN6V-^C2*B--O[ |
1238 |
MTIA_^!*^XLDZC;D<$;%!IS%7HX[]*8W1ERZ6*3IJ*@ISOJ`U1NUZ%=<\%812 |
1239 |
MVY_('%I-K!:_AT7FUYSL[(OY,-<G(5;FH;OB3JP<_:K,H8^)C]4?>A9UDIVJ |
1240 |
MINKJ;_%BA_Y<PN7H4"@*_0Q$)BLK-;$:4E-%BPPAT,)__?F$2]!1+#-S46'; |
1241 |
ML^:&6IYN`W4\7AV/U>T67F)>;#I!;*+P;W8&1C&9+JOA5G$)K@JDADL:G,-+ |
1242 |
MKIG*36<'EILV3BY'U-S(Y]72I;ODIN1W-@QWN';<1&Z(;&U6)IDIRTA+34Y* |
1243 |
MJC[50W%@S$-N3@X,>#!6G)9FHKFS2=`D$/#Y=55<3@R.%O10G"+P#M<-?KB< |
1244 |
M2^9*0HT%IRD]/8U($Z>FI::"??B%2BC?KA><'N;A?NM8ZZ2!1GK3@!\<3+X, |
1245 |
MGQUXAT?#<X.M^H/-IJ7&;]TZ7X:O[.UNJ=$H>,E$LC8EF4PFDA0)\;^<+X46 |
1246 |
MS/8D^J,*N(?C?S_!EOW6(2/C\)KJFFHL,M580RHKGI8^B02A\>LE--7X,5"- |
1247 |
M[PN6F8J*TM+'/X#01)TY<YHXS3A%Q!#11*3FQ[5T5<8J,E:1L8J,563^?2*C |
1248 |
MJ\NX`*1,@\Q\L="GM\PLGO+:%.]NF=$NAP:>WB(CPB(3<WCWV@589.1RO<9H |
1249 |
M%R,W2PKS6<B:H%F.I91<E-JE,)_\?1Y"7EZ3^E"837-GSYWH>/;ZM>SS!H59 |
1250 |
M`FVF$_M2F+7CB?%RKX&/5'*]PBR!1ELO1XOZ\L$P8ICX>73FVK7<GW/"P]?J |
1251 |
M]"48O?ZG]$5?^H%4WEY==COK4WC542A=@_&+$J'0*/O6%Y7G=A_"1SP=G<H% |
1252 |
MV).O;\.+E?"F5(C51=TI[EM?%&C[(F*1>K[GW0ZR0R7@<$">2)&J521J%9'] |
1253 |
MZ8P,;5^'U@5Y1N=D960D7^"<P$OE(#/P0_:K,F*T&R6A5]%M4;.05UU#%W?L |
1254 |
MUA>>>7WIB$9[(R/Q;^8E#'L"7<K)H"F\$E--Z6CG%E2(*BY7M`CK:_%;Q(D> |
1255 |
MFL)[\A2&.I7D&FF*DA)E965F,#)DERZF`-Q'>R@*C'9Z5%P,0YV,%*6Y24@( |
1256 |
M.P7U@OKZVMJJBO(R*-3<K2A%]T!1Z&%/Q$/&(\FYGH*BH02I1"IQ49QR$>0D |
1257 |
M_I>XIT?U@H)?D7H*RLKO6-])/S<2%%X=44?4BO%["ZTH3QX?QH%V\)9$L+4P |
1258 |
M'Y!ZY7??!3."91]TJXI"49.8D)B80"80%Q2_G#_W\R,HI*+%A$Q2T-)"OR.M |
1259 |
M_,Y85+@<3B6WDE.)U>)IZ>.'#P^"J*SL)2J5%17EE>45Y15E9:6ECQ[>/X"U |
1260 |
M0W'L^(GCQXX?)8_*CAP]?/C0H0,K=%47JZ98-<6J*59-^>_2%%Q3T4*O!3<D |
1261 |
M'O!Y#E^EJO]UV_,D=!79"'T9%@"L)-XODW)%FGTJ^)JI/F)'?TM=`1\EI1T4 |
1262 |
M54G_S:2<D69,$7SX*YD$7\3<*#7?$S[,P7@QS1@^#(EJ\K&A/^DK-2XD0I0M |
1263 |
M7J,MHEPH9=D0IFX6JFA'`N&]:(="+XI]E!NE.N>N6U/V%QOXK*?UA=LU0`6K |
1264 |
MU'-TJW@C;>';H'8PW*#/*0]*_;-NA6B,';W"%U;DP(H2NK.`>JP]S`F%"V!% |
1265 |
M:H`%;;KEXW7+?6&Y"A9H=,LGV,/$5*K!F"33I;X(T=OHZ%Y*6]Y=A;\J>RW< |
1266 |
M!G]E&2\<@$\EM.<B?$_PLO3EQF$>E)*[Q+OG,C7,;>5**9Y],</=J/Q`?`(N |
1267 |
ME)R[Q9>^L(9CU43`M,8DI57CBZQ0IR^9,03NR`"J!:_WG3USVO19L_W\9DV? |
1268 |
MY?_6*$=:7MMG11:UJ-7/[L>&O#/>#;Z5XF!\F=P'N+NZ>H`7'?YULX<OE^V4 |
1269 |
MW<#14_WGS_>?.GJ@+DG>Q[=)L=O+#N:MPN)$$B2!_R%[)"%8#LZNKLXPFS36 |
1270 |
M9^9S7A-<)BB]GH.C_=^=CFZ$Q72<96\A'2,'6DC'HM'FT[%EJOET5/N;2T?U |
1271 |
M?'/I^&R^F72\[V\F'6.GFJ1CR&C3='QGH&DZPA&:2T>X2O_IZ:B&=`33Q#5( |
1272 |
ML;<D+Z]D+QK2R_R8XC8(!`U<RJSY,240/FML?"844.;,CZGF9QTR64=S<X5% |
1273 |
M\V.[F6DBE:I3U%*'3X=!B;4:M4HB$7=VM+?ALS'CAFRCE$K:Q2I5FZZ(EIK( |
1274 |
MF"B=[K\H:,VG7X7]$ZZ`J2\R2RAK;I?).(=?L^DN,D=7Y`"]&Q.#9!NA3"!L |
1275 |
M;FS\OH;+87):$15_M_#.[8);;/;UZWF__X;,VR.SA`I<+Q%,X')LH,Q]?#*T |
1276 |
M^R\^H4YXA)LQ1[85D@(MD\/"\=I""%?(<'P[O@#(U!F9[J)IY(RLN=.UBX[. |
1277 |
MC@Z0^*;#,/F**FQ_TI5N9^1F'*B+DXK;.]KQQ=4[(S<AO0EP!5+?5BKQ\U6* |
1278 |
MM]/>UM:*\@\V*.C#42JE>-/U3;'55XRB]6<&FQ.AN$\EM#-R">V,?"^;LRGZ |
1279 |
M6%<T'ZD*Z/,2XWHAWK0(16]J:),IE'CS<D).BE4=R_89H@5(>0M7(76;A@H, |
1280 |
M.K4IZ/VE\Q>0"R3SY[WS]KRY2P)W_J/[2!0WY3*91-))'_6S%G0RZMO-7ZS: |
1281 |
ML#)HY>H5@<M7K%KYX<?;NZ/E-^G@SO;V5J@;H3V1/QX+VQVZ?<OV+9M7K-WX |
1282 |
M^6=;O_JD*[H5R6[H3K$#'X>HI;G+&%F-I`^P:A%(?3`C)X^1I_PM/2,Y_11Q |
1283 |
MB@C3^R-+40,/5Y:JJ[AE-F7/6S)+_H>5.BMU5NK^AZD#BW)XWB7%QB:9DI=7 |
1284 |
M<._APWL%>>;)>U1<\NA12?$CL^25W"^I;6VM*WF<8Y$\UI38!J6RN>+1K3]) |
1285 |
M'E,I4;36M2B5@G*ZC)9:Q%@D#?KPDR_W[#\:$V<>/:90(N!S>:+6^V&O,@V% |
1286 |
MEJ_9A`L=^RG.(GP-M=SR\K#RRO\"?(!L`Y_'\ZK4E^K"#^>=1?Q80D)`-&J8 |
1287 |
ME32Q-(%*!:9$T@XTF1+X3=\$M@.!@G\N!0)W?Y.8;89`:%3`@:U=!`IZ,J5O |
1288 |
M;,'XM[6V(O;!>B!0B@F4X'RM%\169?<F4$9K2QLF\/PFL1&!%9O^Q=Z5@#5U |
1289 |
MK.TY)V$)^R;4JJUU17%KK<4JKE'!ZB^*EHJM5D009*M60=Q0B@J(^PH6BZTH |
1290 |
M!`11$0&U5@&U*KC=8E%O;XLH*H*"`;+.G6].$A*(_/H__]/;/A?R!.;,?#-G |
1291 |
MSGS?^V8RG#/OWBUJZ]]5".0<#)C:&_B@I@%:;VIL:JIGZF4O/*,UYH\H!!NU |
1292 |
M(+AOX<POW-T^F<A,%+NY3ACO.LY]VO)P;0Q2V@+JH*C:L3LZ*-AKOI>GU^>> |
1293 |
M4V=\YN7E[;]4&X--#6)UV]75:,7N'5M6+P]?&KHT-.@S;[^0H$5+`EIAL/Z5 |
1294 |
M&(S).GZ&=T9:D)F5FIG`)#"KWOB3KQU_[?AKQ]]_!G_P&>B#9)^.&O4IZM0" |
1295 |
M@:-"ED=$+`^)U(O`R(B5T3$QT2LC(O4A,')9=/J-&Z+H5<&O1""OZ\*?&QI* |
1296 |
MMJU8]/H(;+B34=K0<&4KK:/$@;S`AB4$?HD_9.3\^$H$/KR1<?3&C43WCFQS |
1297 |
MI54;MB9\SU72@T"`[3^+,@X<<#]SZ^X]WIM@\.']FU>NO'6SO`4&Z76]"H.2 |
1298 |
M1Y45%6PYP6"]>A9*%]Z9.J6^:>A*?2"4ZH*P(@JTB65+5J:DMP0AF662\'L! |
1299 |
MTTPU""MTIZ$4A+2E6G0F]O<FVAN)Y"6)OP<5W_V:W@*$31J@H`,+ZRD(;U$0 |
1300 |
M7CEQ:^'N#3H@A"DPX(1.0W<M_+U:W$0[WMCX@GDAJ_TT2F->U0J$"?XS/YLT |
1301 |
M?@([03Q..':,</2D*>&+=.>AW$R?S(>)];:=:_P6?/KEC&DS/#TF3_7P])SC |
1302 |
M':H[#X7Y,-=T-0K?NFE#^)*O0A>&+EPP_0MO?[_`4)^6&'Q)IMJ`P>K6&%R3 |
1303 |
M>N0D[Z3TQ*'4[P]M8[8Q2]X(@\O;\=>.OW;\_<?P!Y^!0J3T@/5J#WA`B34T |
1304 |
M-C8$+1%S3&#(=_A0*/S0@4].:X[IOH%BUL$CX?3I!`\'%CE`)@\R#8<D/"+3 |
1305 |
MP\0A1@AVU(-'KY1TQ>,0*'G(3H\3:/(5`EBCM<#R,]J95O"H72\NW9'?G.YN |
1306 |
M2-,,=-$"*SZ'!=U>6($\L!4Y@H5^IIIYRI*WM/HI03EV(->!;;#L"Q8A<N', |
1307 |
MK_P[`[#4"J'"PB)>D:RPB+R80J9(65C$%+&%/7'C0(2RLX^2ET4V<[0GEC@C |
1308 |
MM#]I?Y))$KN?G]032\EQ7&P<&R>/)7^8.#:6B6-B920=AWO@)E(:MI2\^&&R |
1309 |
MI6'DKU%83RPGF?.8>5*?>?-\?.;QY[$^!O-Z8C')G>(^98J[^Q1WQETYQ=W$ |
1310 |
MW1(K9T)G5PU":+C%<*7+</YPDL>2/,G'-@CU[NW(./)[*QSA+Z\WZZCL#:.` |
1311 |
M9I*K%Z\:)$#(S@X6PQE;OIT$$N3%VEEB&6*M!CI;.(L'DG%%C.K5!.J;D)C5 |
1312 |
M[O#_+H<#RE>WUE\7*SRU]=?%94R9_,@DJK]^&3XK'Z+6^NOUX@L7LL9)Z1+6 |
1313 |
M;[!Y0.U$^/_UUV"K$6%O%)>532HZ?'A'$I.DA`\HQ?-(L*J[B715V!O%ER_$ |
1314 |
M3AC2GQI>@GM='N5[$H_+OWYV$.F188<NLGNDIPORKU/KM;618%UW<PIJ)<-. |
1315 |
MFF8O2"+)URE,Q=\;\EV)/VKSVY!A%Y?QRB2NA,.Y&O'UX>B#IS?GMI9A%^=F |
1316 |
ML]D29S((Q%*`).*2CT+/YK<APTY;[D`8G-B;(-F34Z[YK678Q7G0JC4966)E |
1317 |
MBA3E^]J08:<M"I\1!("MW#YX6"L9=K$HY0!S0/(^9Z1'AIUKH_KI$UI,)=7% |
1318 |
M6;2.P=,GCU5U])W71EW,U4G[@9[GR6,N4TN&_2FQ5@KA*?]+Z`/4=//[S3%K |
1319 |
MEO6\P]Y1%J!(YF.(26LDRP-Q.$'KV+1&<IR\`V@%GCC3'Z<\)`L.0J\;JBR9 |
1320 |
M":"_>K#R4-TE=!ZA-XQ8%E3N6-R`-'%+QBR2_&HK>$D;-S&/\*TZAOE<G=<) |
1321 |
M9!89D(I<,),!.Q]%S_7JD";5+V(^9)/(-D"*PC5T,ON_QS><B.5BG,QN5D&M |
1322 |
M-@*=5+Y!QJ%SV_%.JN%=-JBSOK`G%U6(G3#JW';XTR8&(UMRF?=(Q_1@@7:% |
1323 |
MP79(++Z?_$MBR0"$]&,#_CUNAYJ>_E[VM/31:/*YK`L5ZB5HIU&5C=$[`#,& |
1324 |
M=@_X!39@_@6]B^07T448H"N$\/N^#N&7,"7R0VX42!>!\!_H15%!P>&Q6BBJ |
1325 |
MH82_^($NADI*W`B&CN0RN1R&:E:!U8O25A@Z5Q`M'.Q$#3D,Y5`,+:Y.UHLA |
1326 |
MTD5V6S.&(FO@WCGYB]+)>C!TKH`MD$20^3U'W^*<\0A-KLEI"SXEO!+).#(/ |
1327 |
MYVILK%M"@%,Z6P_A9\+]6D.>UZH(_^75CT+.Y+1%^-"R'8<Q0OB/<EQS]!#^ |
1328 |
M,6C52D/X=Q+:(GQH<?2SZFH5X0<.;4WX!Y,3F43)P%<3/FU#E_!3:1T^^8;\ |
1329 |
M"L*'.M:ZA']P/SW/T]:$_XA8*T=K"/_RUI410;[OOCGA%VL3ODZ<<H3_NJ%* |
1330 |
M"?^O'JQJPG_#B-40OB9N>:!(UIKPM8.WF?!5,4P&.Z0MPM<*9!7ATV`F`W8R |
1331 |
M5`_A:X=T,^&3R":$?RJT+<+7BF\UX9,8)WP6T)KP=0*]#<+7BO<6A*\3]FT1 |
1332 |
MOE;X:Q'^;0WAZV!!B_#_L?E:S(4^VH2OC0T5X3\J+ZTJK'`!PM>!2C/AJ[+_ |
1333 |
M;X1?I9BF3?A5(D8DCW6A0#H/A/\O?2BJ2DR,^T@+1<\F@+-#_J6#H2J1R(5@ |
1334 |
MZ-(-Y@:'H6=+P:KV4DL,5>U/#'+NVYT:4E0\2)\.`QGR>(\^#$$7V67-&%I- |
1335 |
MVB76M9?<6F.(-,TF2N9KZ/ME^AB$W*K3VX!/E8@GD@RM5=>(>QZ,/GAR:69K |
1336 |
MPJ_:&L_&2YPT,_SZBQ\&%Z2W0?BT9:L:->$_R'9-;TWX53N@57,-X=_>W0;A |
1337 |
MTQ:'/%/9RCLL=&Y%^%4;UT<RD9)>KR1\51O:A%\53^OP7CG#IW4L=`B_*G8= |
1338 |
M/8\Z4XOPKQ-KY1`-X:=,'S%\H)/9:Q`^C<UFPD_6(GS=..4(_W5#E1+^7SU8 |
1339 |
MU83_AA&K(7Q-W)(Q^Z`UX>L$;S/AJV*8S]5YG4!6$3X-9C)@FP:W)GR=D&XF |
1340 |
M?!+9A/"W#&Z#\+7C6T7X$..$SP:T(GS=0'\UX6O'NR[AZX9]&X2O'?[-A%]U |
1341 |
M7$WXNEAH)ORJD]/2)B;9:Q.^-C94A'\]/_/F_DN#@/!UH-),^*KLUR#\$4@Q |
1342 |
MXRFR0"K-#BA8"[="KS2@Z0G8`)LC*>89\ACZN`5-T%4V&P-B8(3-D"08?V9M |
1343 |
M`LMJ$G?\M;4ICY;+NYG!K;7FV!`VONQB2W6D&2SK8D?W/",&?:W89H.`+F8L |
1344 |
M<@>#7IU-5`;];7@,CU'"[;^&B(=E/>P,00Y&UH=3,+'#"C\#6J;,AHJ!7<RF |
1345 |
MP;9B"7W>,846.F"E#5<\%;9*ZV%'?DN#>X,"-BWLQA5"DXK`^5#HU!UV?Z.% |
1346 |
M?4FA$=0T)'7Z0.=XD-V/RV8@VPGZTYQM#.HK?"SMY]C9#"Z,9#O1;-AKCESA |
1347 |
MIK[OP9Y@6@5U3%B90BXM<^QDRF-4+3G13M6N?_[\IV</KU<]_[WNQ4:XU9B% |
1348 |
M&]MMN7(#]"P<KX["3T)[Q#_$7\?@;VP$,/R-?*MW>O3LU7L,;&_6CQK^<6^C |
1349 |
M]5L[GKS;U?Z?6>]U_?:WCM;@!X9O8F9N;F$%=ER#U=BI0X<!V.%M"QS2J:,/ |
1350 |
MMK<7P$#P&`7+T[*ZM\G>9N-]&P?3>]D=[=??MW,P`>D6*IZC[,.9+,/1T7AU |
1351 |
M!WO!,ORM#UY-&R)LR:R'3>`VO<<9,;$O7FQS>(MT)O9%W39[2!"VJU7UW]&Q |
1352 |
M3Q_'WN_93*!B-#6LP,;!`:X0$O:0$*`FU258\BR;+$P-4-<^`P8R`\DLSPQ6 |
1353 |
MHP4"0QJ.JI09N0Y#5D(NW(0JFBGMD$M[V+>'_7]?V(/Z46\DAXE4=R1-WK'2 |
1354 |
MLTC,B)6EJ`MJ"`Y*&['GI[*R.#BX>.?FBD&Q6871<'`D<=_ZL9..E,$!K[^4 |
1355 |
MY!='D21_CXR81\%EIE3#/J;5R^$)E\D.MJRM?,1(1U)0<S/C[N/*QX_(&W[? |
1356 |
M#8=GW,C\0P`?;O#`?WG:W4JC2MG=[1DPH0%!*RFNO'7B;J5AI2PT^3:=Y7"S |
1357 |
M&?5TAD<L'E:6IE7R*R5WPP^5EJLK*G$%4U%7FGVELJ*R,FQM\9V'7&TZ-5'/ |
1358 |
M37BHAM2NJ%R7=J6B,GQ/<OD?->KZ-;BBXNZ^O+R,*^&[BK<4_U%_B9Z+?K(S |
1359 |
M6Z3<9SO4?URYKKBR_'9&1G'YW5.5C>KZ,ERYI;2"K6#N*"M@IZS">KWGE^%# |
1360 |
MI7?*>>7,0TE-?7WCK^KJBN_/G38[K5RGYZ0=B<';\$%.ART2;6_WX-_;@^P3 |
1361 |
M?2@L5OEPV+93)241:A\.B#Y\>K'&AVZ'2KX"'SI)2?[94/#A-ADQ#VWIPXGV |
1362 |
M-JR-?-CP;NT^_/-0V.[!OY,'6Z)P6@'LY).L\N&@97M%HA%J'_8*BDL<HO&A |
1363 |
M2ZQH,/BPNY3D)T&2OTQ&S`>W]*&+#8C>#GK?JMV'?P8*VSWX]_,@0:'L86W= |
1364 |
M!-0-&6/Y5&,6O8T$6`Y?5SI"PM&2Y1(#K%6)@39:"1:V&[?$TKGTBY8Q;AIH |
1365 |
MRV<8[I%L1T,NZ\?+Y>Y&+,V:;(G@.6G9`WLC>CS#FCM^VM-<YUC1STKW>("U |
1366 |
MSG%UB^-G_5N4]],ZI@JO.L7REM5UCZ75Q'XN7-;>_^$ZW%1-.F3H.'F&^0SI |
1367 |
M9$<CFM=XW\D*,8:65M9FUB\MX?K/5S^K?BFYS[\O*P_N88[L46.G'GW[]>O? |
1368 |
MSZDOVU?6ISNY:/OVT?X31SN2W4/>Z/_WS8S6>9.?$^3=`W$_L\C;1I7N3]X" |
1369 |
M+LGXDU]ND(#RL=X^@0L6ARX-F=_5)_2KB.X?@`GQ'_F:CM!5\C96I9&J!77: |
1370 |
M1"MMJDI#BV9::7,M&TMH"Y,?U;&15IF=*MT/J7\8:2UBQUEI]9:/&)DE8H75 |
1371 |
MY-U$RO@Z5\/()B&6%2'6;#QB'78BMJLM8OMT0NP`,\0.6H_8P:3>T,\0Z^*/ |
1372 |
MV#$14#/2;#GY@FS;K9LM"\KN[_@EY>8<R]H**L&"@)-G3XE2#B0E@.BU5?SI |
1373 |
M_*RLC+24Y&_A/S;YH"&_EEQGO7'<F;QCQX]G'TG](8F,C>+J<1"?SUY$QJ/> |
1374 |
M+R_WV,E].X]GI:4D@,[UU:-9(%Q_/-V?6-9URCB==7S-YE7?I*;OW@HZ9%>/ |
1375 |
MG\S)+<C-SS^Z"JQ_+#ASCCTGS<H6^9N2XKKY>6E9Q_=A7!*W9\]=XA[)55'V |
1376 |
M4=(E)DV>D?HEZ/FD98H845-:JBA3=&@I:/,<R$C-R-X%RT*7ORO'L+5!SVL9 |
1377 |
MF>GI&:*,C,R,#&]2J>Y`>NJAU#11NDB4>1"4[AK-CB6GI!W9?@#SL0%2;%^W |
1378 |
MP6B#/&8=W&&D6##7Q]A',=>9M-30*2OI^\.IZ>G)L!C]#U@F<_80>"B%\%^- |
1379 |
M.9""=?>&CIF)20=^.)R:`E;W8'7-V<-88V4,5H:HP52T)^';[Z(.5F,>-D8R |
1380 |
M9P\/X4?\CY3#P&J6&]^-!3MC)(G?L7M/U$ZXGMNW2!"107+V$,*0NGF`[&=] |
1381 |
M\);M.Y8D8'SKX/[K.-)L!9*9VMF9(F?4:#/2;T-4U.J9X%F#,6OBUP;Z>,_Q |
1382 |
M`L\*9L1$!03X^_G,G0V>+03/[@+/\J=O6!T8%+0PP'?N'/#L[;/@V3,QX-E1 |
1383 |
MWZP(#)[M%13@Y^,%W;A]N@"Z\>.I->!9JR4Q`4$S5OA/]5WP>01X]O;9G\[! |
1384 |
MMHJPKR*QOEQT\6?V9VG!F=PUYN#9,1O\`H+689PWXXL-U+.PH6)!WDGFI!SV |
1385 |
M5"0#?S(_E\EM(N&1GWM\(WAVZ5>^_@LC8"1R-G.>Y;91S,O-R\O/RP,9Q+JC |
1386 |
MIW).Y)S,/96;FW\L`CQK^,U<'[^`F?&<9P_N331*E.]+@"A01(8O-UZN"!>" |
1387 |
M9ZU6S_ERON\"_XW@,]@_4BGT%?@JX5%LY1)("<&SEJMGS?'VF>^W$ZSHO3Y" |
1388 |
M7V.-E3%8$<\:KISI-?O+*=M5GA7Z^DX?RQ^K!/E>9:@7WXOUI;$@F>,Y<^;D |
1389 |
M%7`]!?F<9X6^TV%(O7R%X-EITS_U%$9CG+_(_Q3G62,+"R/PK%G?2:&!"P-& |
1390 |
M@V=Y_?V6^$T6CADU`CQK.#3$S]5UPGCAZ)'@V1+P[&'P+#LTV-MMXD17UW'" |
1391 |
M4>#9>Y?!LY>3P+/]`F:[?3+*9:+K>.$(Z,:]2Q>A&U>*=H-G36>&N$YT63S; |
1392 |
M>=SXD2'@V7N7KUZY5GJMI.12"EC?*KUQF[TMO7BY<+<E>'90Z'C7B1$89PX; |
1393 |
M%4D]>Z\0'KRXP%R0%Y^/A8&_4%S(%#9=.%]87'CN._#LEY[C)K@&PDBDKZ.> |
1394 |
M;1QRO[BXJ*BXL)A7K-P$=<X4G6?.-UXH+"HL+#ZW&3S+#QHM'._JLI;S[(FT |
1395 |
M=*-T>4;Z8C#>%;_%>(LBWAT\:QHP:JQPW'C7*/`9J"\JW<,$84J(`&4,I-S! |
1396 |
MLZ;^(T>-$0HG4/^?!<^ZAQEKK(S!BGB6YS]BQ,A1'\:I/.L>%N8]A3]%.0.L |
1397 |
MHOSY_BS8$<]^,MQEQ(=?P?4<S>(\ZQ[F#4/J'^8.GAW_\;#A`U9@G#5K:B;Q |
1398 |
MK#-J8'C&YJ#/;DY=:FP]_[X48]EO\*]J!G5`]!YR*6-@X2W&!M@4R1C,:<!3 |
1399 |
MJ1\!*)U8G\5&V(2J_:BUXSG='W)V`^O;&+;R43*@J,,)SRM9M?R/(9+S+`K( |
1400 |
M9-286Q.7M]2P5\(R-C7E@]R]%S;AEL)-L,+,@"K2T$(>:<>JCN32M762R:W6 |
1401 |
M*ZF*30>Z^*\P\B('!MS"L=S)6E5NIA8:4IC_0LKY4&X.FCRJ<G/<!.7(JHF6 |
1402 |
M6L+\1E5D@26V!@A9*TD)^;+""*!B?ZV*[W<6,%PQF9,;V'*3(\UY&YT=H;I5 |
1403 |
M(RV7@P2-J9:!*6YP[D-/;7:#=IQ:F&AUW01+.0O2>:,IQ";2;`U2?-X%=/M> |
1404 |
MJG3[K)%L]]99QG"KPE6J^WIXI4JYSPI)]^S8LL02XMDT^/#5J]>NU8-VWZI8 |
1405 |
M+>'7A)U;-RX"[3"Q?1Q8E%R_285?5\X#@;RUS>)])DCL/-091>_>%A\#6P>^ |
1406 |
M#*;6-VZ5W0%%-\7>V2WT^PA47%/@%O>4#:1*E`-)OG3\-WM7&A7%M:U/=3.H |
1407 |
M`00UZKT:I\0A*BIJ"TCB-:*B.##IO1H'1,4!Y>(0C8J`(`H*#B@("JA)4.EF |
1408 |
M4$2<4`C"$XB0*`$4F0<G1%$$F;J[[MFG"J@>:-IUWULK/]Y"H>OTV7UV[_IV |
1409 |
MU:FJ?;[O4M91)Z=-SENWV4"RQ"K(^&GC`Q1YHM.<^[._[_Z%V*C!+6OG^HV; |
1410 |
MG+=LFP\DA#>^5Z+EIX4^S$21XF8Z+=+?Q\L!GAU?#%MO"7';.@^N.6__J$)/ |
1411 |
M/#<FPL_'TQE/LC+7?P^1!YEPR0VHL56F)WXU_,BA`Q[K^B.4MA:2,P>>08NN |
1412 |
MN\EK^6F@FKX(@:1X^#$_W_WN2_&,["@HXDFRJ\##&TFQ+HIJ?OC:T`GY->++ |
1413 |
MTP\EIPX=\'1;B">"BP\!R75*V?.RPKP'=_>L9/7\<E(.M.OY83MKU/@:%&'I |
1414 |
MS!->[LY06">-`$F_ZSEY#[,R4VX$;IO"2OKEB=S;)/TP<)\A?)AKS@SPV+EJ |
1415 |
M,N31$C_8OZ&_93W\_???T@XX6C.J?GE1XV54_7@Y!(X"`X#CQPXX+EDDT""5 |
1416 |
M,\T`1]<E'7!<\D\[\V[@@IYW0FYN7EX#P/'[M1PX+OW7(IL9L-:D84`8],A_ |
1417 |
M7-`$N^'X;D#7"@4X+ERRV-8*:A'JO4GO)T^+2V#9GB1RFR(<YQ`XGEB&32QU |
1418 |
M`8Y&";GG/#V]O'U\U\#.2U0!Q\0MME;SQ@(<`W+]//9Y>1_T70%PO.>B"HZ_ |
1419 |
M[+%=:&D,._M:E,<R@*//<@!`FG^G<&RL3_3883-_[C1\O?#(W05V(IF+WCO9 |
1420 |
M"1R]-]A9SY]CJH=0MBO`L0#@>",E0`D<^P$<7[Y:9V=C-<_""./J_!'P)N\E |
1421 |
M>'@O(_&`2CAF.UC/GVLQ!A_1-H8"'!\\JWY67OAG^K'M+!QC3CAPX6B#&(%B |
1422 |
M^LI*2XMO1\$W`?7*^I2"PL>YCQ[<N^`[@X5CW.85"G"\LFK.#`'(\DDVA\/^ |
1423 |
M%>7D/L[/S\D.P4<F`L<XYV'*X#C\,X!C4P<<OYGZ%0_@6-0"<-RQL`..WYJ9 |
1424 |
MCH/'S8T&H:E%1<7%C0!'FV4<.'[[S51C0WA(VS`D%GJ4E)0UPVZ(.`[HLI.! |
1425 |
MH]DT,S3Y&S.3*4-)]I#>I>6550_`X*:/(AP7W`(X'K+`)I-!9ZY^:FK1E9"0 |
1426 |
MTZ'A9W?`SLM0!D<'!HY7OC>9(A@$<+Q0=#XX^'1HV%FB(YWMW3D<6^C`=2:" |
1427 |
MR2/)SKX=O!G@&.X,`/C])Q5'QRN;5AD+)HW!EX8%0=ZP$T'E6Y)]J1,X;K$Q |
1428 |
MQ=U'X2O9?)B;2\L`CFE9%Y3`\7,&C@M,C:<()@[%U\17?P9OBFO`P^R<C%!E |
1429 |
M<*PA<*RHO&^)AS$:Q$?(+0;0F%?]MOI%>>&C"%\6C1</+>6BT:KMX'C!<O+$ |
1430 |
M,0/@B_P*:,PJ*R\I*LC+OGYV(8M&X:I%"FB\MN*_Z`!KW$<;S6T^+2JB2 |
1431 |
MEJ?Y42=_8.`H=!BL`$>$Q-TXJHFC4>M&1=G$7JB95J6;:(!X_Z^;^%?73=3$ |
1432 |
M4[-QJ&4(GZ<Y3(4V5\O=^+CX2*26-%?!P\PDH9K27,`,G9'\Z]T+!AUZ%A@C |
1433 |
M/S1U)<U5C3+P%>Y9`XZ@!1K7M3#7_7@JOBEL\*<(<]T'Y8$3K#"7U_Z-V+\/ |
1434 |
MM/K*7*PY$;0HS$S8`@F@OC)7]FWJ=OW/H,QU/2$A-M4=#KP?U)?FRDZFDL61 |
1435 |
MC)[%Z[(R']CUM6^[J:'.E9V`$BX3=:[X6%'9>6SX\:7Z\EP-Z%<4A4)1YONW |
1436 |
M-<\K*HF]3H<\5Y9J,8N0:U<OQ\9$$:N68B7Z7%E7E&I99!2R^EQ5E>7$6)?E |
1437 |
MB,Z*OPZWTZZXR7!$-].U"0G7$HB4!2ATB4K#P88EB89[:M%"(=Q0DR&)KF$4 |
1438 |
MNEZ^?OFRZAE(68`1R:&^&+B]5&G">&W=M-4)J:4)<S/ZIR,_?H(F3+#?49]_ |
1439 |
MZ\GD4$I35Z(PU>B4ZR[7-7HR.=2U)DS`9FIST\J_?XHFS#$'RJ'>ALFAFU[[ |
1440 |
MU[,YI*XH#&O.B,)D)KB0'%)?%.;<+FI7_28VB6+N@59ZXX?Z>K558<[MI_:+ |
1441 |
M=[2KPAS`]I]UK0ISS@_Y[2.J,/&Q0@*MEI>?)@L3CG/('F6^>_/Z67D%\PF5 |
1442 |
MGZ@+`ZD$NC!@+"[Y%&&8C$)6&*:RHHQ)#)7",$PR<75A0CG)U)DN3`VC"_.B |
1443 |
M^L6+2J(+<Z8MF?I@!.NI4BG8X;#,83GJ0J4`4BDN(MAKDTPJJ9(I\/?P<G70 |
1444 |
ME4DDIZ:N=`JJT6'GC<[_U)5)I*YE"KR74<N:K/_6D4A=R11X65%6]3-8:26O |
1445 |
M_8YL&JFK4\":DS0JR$SX-YQ,6M06*A#W"=I`;:A?B<)N01Y%I^R"FL(/:BL5 |
1446 |
MM*"@'=0.L1.31Z]*2CRQ/5]=I8(F%.2)/'?T.7,](3X^.K(D!$+UDGK5JJ94 |
1447 |
M00,*Q-ED@S)K:ZJK\,PYA#DCM:514==I%!TE)%:Z[9E3E*$L<XHS"FL+;Q:^ |
1448 |
MJ7Y>45[*6+"94Y29!7>(,R[(215`YL3S<>+$QHB$D<5!G,2!N\3W4U/A%K%L |
1449 |
MXKRNIJH_O'K^ZCF<7HL*GP:1Q,%3Y_\;YO,68#Y'M!+F\U9@/F?NH\H0GXM/ |
1450 |
M?T:!5K4"[[GXR0!-AL)<GO9<7#E"FR$QEV4]%[_]NAM#8BY+>BX9VQVFL?*< |
1451 |
MYY)QI%F>\EPR'NZ"RC&>LXVRA.?0J"?'=][>QJ$[;VOK8#N7CN_NH;/VK\$Z |
1452 |
MW-#!/(6WU2$=GLZ?WFAIMV+=ECW>1Z&A:\YA.8LN*8??R3%.P8=TP3C\3HYR |
1453 |
M$89103C\KHUND:6-PI!1P3?\6AG?,%S$JR(<)GS"A)(**24<9C[J`\M9I0;A |
1454 |
M<%,C2_"$5!(.OV\C'&:YHQBD_058/KM$FE*2S\8E#IM^</<]'JH<:DHY/K'- |
1455 |
MYA_<?0)".P4;A^)33;#),GRJ!S<NP:<:B/-6!W$J"#Z5($Z1X+,=<6H0?'(0 |
1456 |
MIXK@4Q%QCG\%3CUU\"9'J;><O[QQG<MN+_]39R,[Q9L<HUZ[32"Q48-03WW$ |
1457 |
M<?CTU$5<!YV>&HC;JP[B5+/IR2.NLG/$J<.FUX$X56QZBHB;];],**9':R@E |
1458 |
M%&/:Y0C%V$9"*#:<>4T(Q=C7A%!L.-S"ZR`4&\[PBW7"*-:7T(W)4HKU@]NE |
1459 |
M?53PBNDQ'63)Q=A&688Q/=I#)Y!=$:W'_AV"-.J:%]/G3^Y=7,>KDZ9B'^4: |
1460 |
M\)RP3KH81ZJV[K><IQDS:.?-0M,#:4DY/P*R%-JTT`>F[1VS-EH+]WEP/&M" |
1461 |
M2RW4TQHY9*1M)7;R;5JHD6D+_DE$B0@-6&W=HQQKH,N`VMO956E;B.$CV[^U |
1462 |
MM>E_B=O`D/0+(889Q/"/@&-&4X:,&SIN\(15Z2GPN*FY;F;\M>6SS?AF+?^X |
1463 |
MEM_7A3A*NMUE5EʧZE?_Y0V?]S_N?3ZM(`K/6NNDT?4WK&K[`ZL78D#[O |
1464 |
MV^@S:F`U=3IZA++Q3\:AU,-)2<[$S=[<Y=24,S%-]\,]WG,H-+K3C?DHK2*[ |
1465 |
M\B[(PDFP40]:0FUF.F=4I56\XU!G:-#2@_A74[I/RN%4HB-76_<M=PVU`6MX |
1466 |
M&/=XU\&;(1T%5GB8E*H$%S+,-S",@0L[3&5:1:W,(FKIU[#4VYQ.]4GQSK[A |
1467 |
MS`X$];@F8Z=9CQ]KK=F?F-X_C'N\[5A&_?YKFDXU3Z4_3ZU(>I;@Q`[%HR6+ |
1468 |
MV87K?&R4^K@RM>(M9S6U!OW>B)X[+96FTWWN>:<3.W&=`!8@2ZVQH_BZKRXU |
1469 |
M*,WG7I?@398';S(7O/_S^^.TZ0!4$\_DF]DNY%O)M\&W(FT<\*;[9!@R0)VP |
1470 |
M+"UY`[&3;P,,DK:(6(;:!0RSLJW:@#JS(GD=,<RRYH`7MX$AZ7<AEJ%Z(>GB |
1471 |
MZS=.,,APD.$7X[]/370DX#7G@M>1.$JZ<<";D5KA>_9@F.]9W[/)I3<="7BG |
1472 |
MM8.7L2%]Y,'[$&5A\*;M2_*\2<QJZWK)@)<Q3?7"/13`FUR:67YC#=G5O0AX |
1473 |
MUS"=TRJ22Y6"USW1,REV+1GE&QGPKF4,/5/=$Q7!FUQZI^*R(QG&C("7]2FM |
1474 |
M/+FT$_"ZWW'-C'-D!^*"MR\Q3?%,=K^C#+Q)9;<J+Z]BAY(#;_*?Y4EEG8#7 |
1475 |
M_:YK*K$3UTV6`6^R_Z_N=Y6"MZ;9#K!J5\.KD<8`>&4;,'AKI'8`WIIK2;]= |
1476 |
MG0I`G;0].N*.#7PKA3;\K9BV#O#6)&RX/HP!ZIA95Z/G$COY-HQ!IBTN$9]7 |
1477 |
M&/#6)-Z9WP;4:4^BYQ##1,M^;6UZ0W$;&))^5XEA!F.XT>/+"7U']1O=;_3, |
1478 |
MN$L6`-Z::1SP]K$@CI)N'>"MN1&7O_?4[L"]I_:>BLZ)`+/6&I,V\.HS-J2/ |
1479 |
M/'C_0`_PSU6'J-41Q*RVQD`&O(QIW!K<0P&\T3FW\GX!X@X)-@+PSF8Z7\V/ |
1480 |
MSE$*7OM+JZ/.S":C&'/!VY,U7!UG?TD1O-$YPOQ0"S+,%!BF)^O3U;SHG$[` |
1481 |
M:R]<?BO<@AV("UY]8GIE=8R]4!EXHW(O%H3.8(>2!6]-3&I>5&XGX+47+8\C |
1482 |
M=N*:\5SPUL2XQ-J+/'06H=;7SVOK`+SD[Q#"I@J/0C5I'61`P[T>33SIT?PO |
1483 |
M7H-^>!/=L4VASSFOI35T[\[>:F;?DMQ[3)[?,F_WIJ5EY/X:[O&&],`MSW&+ |
1484 |
M%NVA_9#-PF&HA3/7&8@O?SNF,GB+,T'!6YR9"-[B3"^XRW]XJ($S@U"Z_@=W |
1485 |
M.6RIWUNWMZX96:@GNP8(QV%F^_(@N:5`&+MC2-F=P@(@'FK!4X[,9V1Y3299 |
1486 |
M)*1L-1#^`%UX5&R4Z+T>I>,]K:%L-1`/O3>CCURCQ]W<OP'YWF87#2FL#<(? |
1487 |
M-@H^;-P-K_4HE/TPA:5!/*0\W,EMX69/OFWA9DZI[>$FYTZ\Q3DARH6;<\[K |
1488 |
M+-R>%CU[Z?36,34=K"S<YBK"/>J_#;<."?>#,S^J#/=4$N[?SNQ2'>[A)-R9 |
1489 |
MIW_\I'"SYQ,VW.SIHBW<S$F@/=SD:(^W.(=PN7!SCM*=A7OU=!V#[@;=)TWJ |
1490 |
MJRS<TU2$>W"GX390+]S=2;B3O=:H#/<D$NX[^]:J#O=`$NY$CS6JPQW)'A6' |
1491 |
MH>[T%Z@'/9#S7XM9_-0*BY_PU]9"O6CQ**WVE_-[PDOQ97+DPMN+#&`M$CEP |
1492 |
M=6P]E]F2J-B2[?F";$GP5@\D,885$)(YQOAU7>\S1XX=WQ/[ZT_'3@<3\F!X |
1493 |
M3VH,1>\V(<?\_</"_/T.!0:AB:A5<T/@,5^>;ZO/@?V>9!V$XPG__?N]/#T\ |
1494 |
MW-!D).;/<G.GW%O=7/>L@94Q/6<LW>BP8.$<9(I:M0P,M!#4:$C,H41?LM0< |
1495 |
MAN[A9&>W:'Y0N(O=VK4A,#2\A\?'0T]>_R];6R<G6QMK^[4P-,]L]3(KGA4U |
1496 |
M7S)O+@RM.77-DGGS+.?.F6.!AY;P1EKP+<2S9YG`P-V&3S2;,F;L2!B8WZ,' |
1497 |
MGQG8"BK()1NL8&#M1::F4TT.'UUJNF`!/,&6PGM2*QAXI.T_3$P6+3(Q-K:T |
1498 |
M@8&IT0MG3>%-X0FDD_"X3?ROK6<*!),G49.D1O"=J0%&$ZF)E)%DPD@86O/O |
1499 |
M7WX]_(M!`V%HGK8V#P^MQ10]XQ.PJ9$AS[!U#%/6W<K3&3(&;_/;"J!Y4/Y= |
1500 |
M2VK#B0%%BXV^Z&U`&8CU296X6%-''V])>T,!#V/"AW+R!=BD&VH$$UJ^\KQ1 |
1501 |
M@Z8%I*LF$O-THS"\@`($=V6*V)MX](@1\#8>4T,_'<\/H`)>NW=;!?QG_9D* |
1502 |
M^%9*4S^2UB:5\YI,Y;P&E'OU0"V4AN[<MX3L1@K%7OB7'FK@:>O/S?XHE3;^ |
1503 |
M@038-;ZV#A3GZS3=/WG$;<._#.!YSLHM^/?'+9N<-V]R6K\.5L0TOT7Y0G>0 |
1504 |
MY)7>AG42A=E961$!Q]RV+P8P-FU:MWKUVB5SH+3L-KIWR0W=X=^1^D+')^GW |
1505 |
MT\^YNVZWM<!S`"19OQK_;CX_073I`/FP`-RGX8^4>RDI>U;.7]@=^R<9X8CS |
1506 |
M4Q(O%%&BUH6+IVFB0>CMP,,'CAS>YF#UW41TP&N#Q0980R(Q,T`>Z"YJBEJ] |
1507 |
MS&+J!+C1(]E^$!P_Z.4-P'=S9AR_MFT%U_'LK(A5*RV^&S\('/=RV[W;=?-2 |
1508 |
MQO$`U^7MCDN?I%/I3><L9G]G.)('GKOO)IX/<')U:/=<^D<*+Z5EUN318S7! |
1509 |
M\_%[L><?XX5"D7#TA&$\XOC)HT$GW9R7S#5%1P]OM7:Q!,>'=F<</V]E831J |
1510 |
MJ"8X[AL&CH>=#CUS.B0XT)-Q/'KCHG;'I8595%93Q()Y1H9#/P?/3P<>/WYB |
1511 |
MGQ/C^<$==ATA?WP?AWRBD>&0`5#&)PDZ3ASONW+'4CG')WPU:!`?'#<YB1V7 |
1512 |
M7A-2PA;1H*']*>*YCY>?C\L*RV_'(Z]]CC,=IX/G_32)YYIT2YT^7V,^5*3U |
1513 |
MT<*XI5M%AOVT8+:Z#XYG]G#VH("8K6YQ-XKJ-I.F=PW^3*L/1FF+R&BP#MQ2 |
1514 |
MDPJ@IP!Z\N#0^BY.EX\0KT?_$2/Z=>/A+,"#;!\_I"?<J-.%]0V4-DX!\0-2 |
1515 |
M^H=!K*O7#7\,R<7ZJ1,-1P[0U4`">A^M3[?8TP(T$(_5&FM`RA;Y%`_5DQPT |
1516 |
M&M1;KQL\"Z4$!G2+`*'AAX'=J':AK@;<>/P(G4;B/*7(HWJI/3SZM,<]^*B^ |
1517 |
MO^FL&3-FSYZGCX?MV9Z(&HBRYPM:[$_LVV<OT!1HHE9M@[X&?:@^8FT^!;4, |
1518 |
M)"4'X2,*159/UK_J$*+/IK(;;J'AS!(^430ONL&!*T7_AGX=%W?YRI7+5R[' |
1519 |
M@A;]I4*HWZ@G(O2,'#U&J)1HT1O;:ME^-)?1HG_^C'I65_4,_U26$S5Z*.30 |
1520 |
M!BUZ?HJ4U)`:V]I.X4]IG,K5HJ^,CHJ.CN)%4:+FR$L7(_*AD(,2\81BD*'' |
1521 |
M^2@4,6+TQK9<,7KIFS*J['UI>6E9:5E)2>'3QX_S0T"-WEA.C;ZTI*2X%"K! |
1522 |
MBHJ>/LW/SPT&-?K@<^?/G3T7S@MO#`L/#3U].G@-AI@7>L$-5%;6+63(+(B[ |
1523 |
M<8MWJV$7-TZM=#4.$G6Y/A;*S4B@P.UW;8'"/^GI]TF<S!VU'#_:R<3I6155 |
1524 |
M):VLXE4UDC@]R0_&MCU26O$1B43)W-%Q!G]&HT5'E"3-%5%:)$(7+_R2!]W? |
1525 |
M"2$\^)^(_#L#'VSNR(W0FS<X-&R`BI\6X.\>!`$REPE0\R,H[2DMYA53A50! |
1526 |
ME2?Y,Q`'Z$UP>'A8:%CH&7QH.!,<?.I4D(-"@+*R<8`$S+JRM/N\^PU'N`&2 |
1527 |
MT*]P>*C8^IC8F&B1\-+%"P509_".11$W0%8[M79^=)`)4!7,WBHJ\0^#H[P` |
1528 |
M;-L=@$2E2($B06RU<R<\U%O$!5(Y"05/2$4V7[P0\7/N"0"2D!))A4#^2X)% |
1529 |
M@&2U4Q9()53)^S:,%#S)^S/G.,3)2@Y(Q45%A<6%18481D^>Y.8\/`9`.AD< |
1530 |
M$GPJ.(@7)`D,"N`%2(ZM(''J*:M:WO:TGR-:SC0I:)8SS8J2Y4RQP7_8NPZH |
1531 |
M*)*M73T@IG79M[NZ^U"?HBZF5=PU/B2,B`*K(F#`@(""Y&185!!HD6#.()@C |
1532 |
MB`IF,*!D!P4=9%$Q`8LH`C/,#.!$9OK5[08!%</Q_><_YPF<.3U=?6_=V[?N |
1533 |
MK:ZIKOKNAS*6FWQ.QO+O_R\REBN'_(0[M-<?3V7;G,((?325+9/&KXGZ8ZEL |
1534 |
M6V5'^F`J6V%3"B,Z_6`-#_VS108C&MOS$S+9JA=IM97!"%JP]K-R&J)/S6G8 |
1535 |
M1/[1G(:MC/&AG(8?-\8GI#3\F#$^*[<5^FANJ]:V^%ANJ]:V^%!NJX_;XA-2 |
1536 |
M6WW0%LPKNP^D\^G&O)][3TZ?QC=W[TOLTWCI/=E]F$P];Z7W@<(/YO>A9\8^ |
1537 |
MG.`'NK2&#V;XP0W/5[1`O=4E=!L&FD;"=H6?LLO2RB]ZP$JUVDSC28:3U5I! |
1538 |
M#--O@QZ59Y?QFZ#0Q8",^VC@+MU(/*"49JY+#\TZ`^^YI+69.[/6I7>CYR3K |
1539 |
MF!->$TZNF(H<:9-)#1])RU3++LLLHYEXM05YS[/+6KUDH&72Q;P6(+IJE.+W |
1540 |
M2,H$V#GA&>%9%QF9A9MSPS,&T3)ES`D,<T&D.J4815&6]#UFEJ25GZ?EE3^\ |
1541 |
M\R*S1+\5JJ\:DC'%16IOL':QN,BQYK2V67X^/BZ.\))"RMGJ_R>@K=/BF!-8 |
1542 |
MG=<(>//=&^#K'U$]0/%FT=/>N6A0V^;OD59ZM2QQ(6V*U`DF^I/>-7_J@[*T |
1543 |
MTK;,'YP2D'IB$6V*U`UIP2G?-)J?/FG+_&FEJ:7QCK3,NSE_IY6.?\?\='%; |
1544 |
MY@^\'IB:Z$C+S`_%9SJ-YJ=/WF/^'C>*KY8E@)*\LL);SV\4Z[UM?J:X#?-[ |
1545 |
M+UYL-W\!B,L,7^*]R+87(XXY^4+S=T\HC'VP9R*HQDO0GS#&^!WS\Q)N/4@H |
1546 |
M;,O\#O&VI[>;@&Z\!(]$A_C.C/F9D[;,GU"84+AS,BWS1M+]A,(Q;YN?*6[+ |
1547 |
M_'8G[4Y'3Z9EIBV^9'>RT1[,R7O,W_W4O=@'T:`DKRC[RJ-3]T:];7ZFN`WS |
1548 |
M6YJ:3C`P`G'G7*RGFQC]P(AC3C[-_!K-D_W*ILE^9=-D?U-)]^:Y_]9O`RK: |
1549 |
M(."U?%T`)3_BGVK?4ZJ_Z+<MG5'M>5F%3*0LJ(=_"NNG.'_NS)F"#@4J+AXZ |
1550 |
MB?2IXE]Z&UX.<44SQ]UB`*_>Q<5B(9$:11E<OG8YQ&?INLE[WP^,A:F^HZZ< |
1551 |
M,KN:%.+J,C2<`U1O8++HZ6F">LTQNQ(R7WL5AX(E>UAZW*T7G$%K^ZV[F18' |
1552 |
M):H^8'7.N+T<;/5F$"TVS#J#HK=C5GZ"HK=S;\>L"8OZF**W<V)6^;U'41U& |
1553 |
MT5LQ;F\4U6,4W=.L:*^V%!U%*YH2[/0)BJ:DI@1[>(5^0-%O0='K5X,=%[U' |
1554 |
MT5Z,HBG!L]XH.HI1E&Q6](<V%.W6:@H6WFDUS\8JWIF;50%^E`+PHYKF;AL8 |
1555 |
M_"@%X$<UE2D:\:,4@!\%A7]A#63G*RI>BB0%ZN!R/W\NG--/[T`Y]?5:N,RC |
1556 |
M)9X3U0+/B7@+S^G;%N7?X8]::VBF86^@F5@FX:U`I%@FL8CES,,?*6*YM(9E |
1557 |
M8IF4(999'6)-E2.6%::=U0FQYFHBUOPHQ%JP'['L#R'6PJ.(Y8CK6!S/P#*I |
1558 |
MH0QJQ1?\8YTROH1_!530KD&[!NT:_'<TR/PB#6!O.JF.OJ@._/^%["O:Y;?+ |
1559 |
M;Y?__R>_O1MHE]\N_ZN7W]X-M,MOE__5RV_O!MKEM\O_ZN4'=R01R2(_D1I] |
1560 |
M8K6?VJVTU]=>'UT?ZW]AEJY=@R^=J219[0.2KUQ^NPM\]?+;7>"KE]_N`E^] |
1561 |
M?))@?R+E_\PH^+]=WV>N?X&%*UV;U\"T7/<R$GU>'C/X^Z;%]W?RF*'FO_?E |
1562 |
M,6,U+Y9Q27Y+375<]A"I+=^#/['X<[[U@AG7'Q!KVTW$RBI%K!I;I/:/<J2F |
1563 |
MMQJIS<A':G/LD)I]9Z2V>!Q2<Y^+U'SK@5,;5A!_1W6)Z4JO3&(!EE',(1ZE |
1564 |
M0:EX@"J.NC&HC7`7@`<.UV!#OG+0#?J"'*4.1/2&U:8K#1/NE3;R/+]K!'N! |
1565 |
MF&L$I:H&0(-J"E;H*>8\NU346,.SA/NS\-<.E`#H*'G&@PPY/G`>9&!Z`LD# |
1566 |
M"X^MSJ=I9>BA]];LY?B[.J6,@3KK,X24,$,NAP.E1DE0UP,%N]?X<R"=#X5Z |
1567 |
M_#J4&,H:\GIPOI?3DNO;<&M!9J(8@%2O!E`#A3`#,W:@^*A/+&=K6-"*[)2K |
1568 |
MR1?/GSV3<`)6,&;EYMWAYN=S\W(\'&UM8W?UHG,28'X6I<1\!$4(6=0K(62E |
1569 |
M&W'^XKHPTG_9FH`_O=V<[.=[',85O$K?LG)U\!IRM9^/R\)Y,Z>MBQX*\%C` |
1570 |
MWP`:JU,5PG3,;'QM7VA(D/]R;U>'N3,LS"8:6D>!^,MKE_FM7+5RN8^;D]T< |
1571 |
MZRF3G&+^#4O$8O!]TNPLZJ4P74)U<CB[(2@P8.4R;[=%\V=;39D\0=]B(TA/ |
1572 |
M7.WEX^OKX^GJY#!OUG1S8WVSB&D(M69_376<%QNRPF^9KZ?K(EL;:PMS$R.] |
1573 |
M/TA8O'ITN;,KX5KC[+3('JJ=9/3OB0&FP-]"^S2L_>B]:WT\W18OG&\S8_H? |
1574 |
M6/C8R<M!^]V>=O8.]G8+;.?.LIIJ.D'?:L6OC/8MC:<4P@\G?M^@,*=%=G-G |
1575 |
M.P#Q-#.3J0"JT[#!R]&)Y53ON,AA^A138P-[1RU8C=>R]=+3H=%9J.8[!])V |
1576 |
M]@RK`&]/=U=GQX5V-IBRQG/)$E_?)4N7^`::3S:>X&31#=;U-7M-NE2<!E[# |
1577 |
MPCXF59^\U,9BJA,.0JG/1+:)O3Z]=X\2[#S(>&2Z1"X5I3ZX08N3#W:8:6J# |
1578 |
M:>4+#29;_X*K95$"%(Y)50T5<D#@%17SL'U82/&#E07LQ"0@TY6UR>3O:;A4 |
1579 |
M(4TKI]%RA375?.R!^'8[CC%HC!MC74`>TZ!$0*<2U]4*!?QJO@H'#NQA[$Y3 |
1580 |
M-2`M0!GKA,FA,CI>.U(:^(H&ZH*OAD?':,2HHG%DJN,R@!_K@B"YTS]HE([. |
1581 |
MZ!MZ:Q(+=BV%172*:!'^85LKH;I*.OP)6A@D8Z7+Z=!G76@,W(L$$_I-5QKZ |
1582 |
MWGK2>`O%V;V9T(=K.&8J(/0KF-`?__#$O<8:'AZ\.Y8)?:"C9,G<9!D^7.<F |
1583 |
M,Z'OG+=K<4YCZ.?/"KAFRX1^!-19G\RG^,DR&1QPLQ!(MOEVF(?C=2;T44<- |
1584 |
M0H/50:J>,\-\SKE`P`ZF5!'@.Q5<\!U^<C+8G4""J.L!OB[VU\XFGHP[?N3P |
1585 |
MP1C`6+F:D9G%R<GA9-ZP,C,RB@+H81:P8X_%;-AW^3CP^1#XWQR/6^;K[CC/ |
1586 |
MPVD!CK&)AE;;(?22_!T6NWFX+[:;/762P9CAR\(AJ2D%_`V@+PX=?A)FUCZS |
1587 |
MT=O3Q=%VEH6)_FC=0?UZC8+$([S37O/L'!8YV,[&03M^U-`!YA$]('0B('*! |
1588 |
M'4<N/TE,$29'_%R<Z>`V-1PW<JA.7RU=@&![=6CQC-DV-K,AF`W&CABLK35H |
1589 |
MZ7"$6K/74<@@RM/>;AZ.>5,CO5&Z@_OW_GD(#;6UTW:*!6%1,\7<=")4.Z!W |
1590 |
MCWY.`X&_A?:7L/;?K_>:;3W]CTF&>J-'#,'"?]2Q!>W#K(TGPO8=(_VQ(X<- |
1591 |
M[*LUTKXCHWU+XRGY,/%5X^)K;FJL/\X$:(</ZC_,`N3[S3`S9\%V*),10P=J |
1592 |
M]YQH!MMT6C9=4A(TN!H2F+@;C1L]TFF6M:7%%+-)QGK0=-9SYMC8S)D[Q\9Y |
1593 |
ML(YV7W-=V/S7["])DOI+X"\L[.LRG;EZNL/,<1S+9O?KTW^B%KU[3D!N83PQ |
1594 |
M22R3""YR+S`AKVXR9J`>)E5,ZJDS"I[#..*78TJ5XKE,(JX3"8HJZ>V[#2-U |
1595 |
MAS0&?,.H_CJ8$N(=*(&L5LBOKJC"?@=8QCT;`UF[*Z:":,=4JGJ1D,^KJJB" |
1596 |
M:.^(+W>D0QSXZ9AL&>++PR,T(E3A'PGQ!C9VO6^I+I8J"C96LR%Q82=<:@BK |
1597 |
MD6LM;6(!<^G*Y>1+A^@<>^P_&`(%VUP?GO@B2YNXE%@<%P?V[=UWGL*C(H+= |
1598 |
ML""/31/)V7<7&(R`/=66-B>N']V[)WIWY,X=VZ(HU`&3*98\?L'02=D5CWP- |
1599 |
M!R-\#P),F7I\_P:&-&0+)"HDV/*0Y[E_,[02=OGMTA"C,9".I@:(8_=XG_+> |
1600 |
M%16YU?>4!RS-)MBR`\7IIYXRY&+VW_$I1?N,QL.6\QK+N.O'#WB74"5>.[9[ |
1601 |
MX0,XF81M?OG9U<2316P--F&$^R^VU2*-1>)G\;$)]R^:C8<A@<SRQM']&T^! |
1602 |
M<Y5X83[PCG+VW-0'E\Z>CG_X5\$]+O?NG3NWC1!BWW_T^.G39\2S^B>/XV./ |
1603 |
M'KU]=8X!#`JDEM?W[MN+)6/W+F%1>5@RF^V2DWO^;,+)./@<.W)H?]Q-W!;L |
1604 |
MPDOQI\^<.W\V\=2)XT<.[KMRP\EP*$59INPA]C1$8N'J5&Z)!\5F^^5?3TP\ |
1605 |
M?1*(]D9'[MBV*2H5V///QIT\G9B0<"H^]MB^'1'!43=\C<8BRVO1K.B&G;3N |
1606 |
MSTH\(BC3+;?/G3IU,CX.9,3LWK5IK7]$$O#G)AR/@RW6KTX</[!C8T1(X*HU |
1607 |
M%]8:(<NKL.5W!UW![1*/,,IT8W9"7!SLJ3VX?T_4EK#@@!6A9Z&"FR>/'(O% |
1608 |
M5PY&;MNT/I0,\`M*((W0]"N11&3#]D;]W2E](Y^TL\>.'CET<'_TUHC0-8&K |
1609 |
M_EP3#^SIL8<.'SUZ.&K[UDV0]6W5AE-NA@/1],L[B9U*KR;[Y6#[Z1C:G[EX |
1610 |
M$`O?B6]^\P9<Q_JC4,&U^..Q<<=C=D?M6A>Z)L@_>O\\PQ\0LDR.V;&6:4$/ |
1611 |
M#Z8%'^I;[;^X;_>F]8GX+HX>QBX<`RV8</;<N82X$W%QB6O)P,`#6RR@VQ!: |
1612 |
M'KZP>YLG=AF/=>'N^(`'QK#%OXLF'O22P32L.+D:0J9.L[M?U*X=V[=NWKC> |
1613 |
M$[N^G%P73"?Y49`1*R%B:C6[KXST<%J(N]89L];BB"5(>;2`I&GDI&"WOP/F |
1614 |
M$FEV]X]VF3/3:IKY)&-#,W@PDK(3$HHADY*4)"YP!L2+4+-[P%X/6^-9-.5P |
1615 |
M/7AFD=)DE53%D$I(2J9*#O:"<!'@2O=ZS=4F^TZ9:L[N2_:$AR@IN:.4B)0, |
1616 |
MM9BDZB7*N\%^$"T"S971'G;:7(K;QW1B;WR``32YKEPEK<?T&B01K$`4N?6` |
1617 |
MQ@&QZG5]O?)%Q`HZ6#1C7&Q-2#`U]U^8K0.N-:I:*<6=H+*!:%!72.1!")$* |
1618 |
MI5)%0*Y,E5A<7RN2\W;[TX&B&8T[Z+[0D1-<%G632U$D>:Q.(<%$0I&PAE?U |
1619 |
MZF5YI0RK2S:(A'6PDY8>4`EJZD5'`FTH2C-RYJR9T_IP\;T5<[4P\WF%A-FX |
1620 |
MR:_&K'^7/"T6`[="**A]+6%)*L7U=57%W.S"NC-!/DASEY65Y73S?W$!5HVK |
1621 |
M-8**R)&+A")"Q(4Q5F7%B^=%=])RA'0%@AI1W6NQ^'5=U9._[M[*O)')SPQ& |
1622 |
MFMNG39LZ97)3!<.I"(Y4P*]AU3SD5U>]>OXH+SL]Y68-\,MK^(+:NOKZZI)' |
1623 |
MA?FY-].OI5>G8_YMYH1Y`YA;G9)P_TFM##HK%?$`]K6HZL6CN[EXR'$UJQKX |
1624 |
M97Q>C;!64/KH86%^'BZ^PSL=:($TMTPB)BE[-]DOATNAJ8%':NJKJBHKBA\7 |
1625 |
MW2_@YMW*OE,)%4@%`E&ML.39T\?<W)RLU"=E!U;CQ[CF)DOCWYC6T]+BT@.G |
1626 |
M\E6[RL6OGA?FBWC5U565E:\JRJ$%7TLDTCH^P7_-$]VZF9E17K3]3WC`:GJ' |
1627 |
M337HB=U%ZW?=?X+78$.@91%/ZA[>S:O";J,(\L?,G4A)358ZI^)NF`<,(BG! |
1628 |
MM]V]0LU':Y%:(W[7'?(SV0-+%B.?X&N5#SFO2/S;7$)6I]XMOQKL3(^U!*A; |
1629 |
M=\\0DU$ZOXT8_NO@@3W[@;F0<W!<Q:,7)'Y.$?C!*"5?_?4\-MB"'A,*,8,' |
1630 |
MR=8=]NN003H#M'\#MT3F@7L>ES&>+R/+BV)6#Z3!WD2H6P_WP/&8\)?^?4?X |
1631 |
MX2B3(.M56V\WQ6C>EC\'8<).5"TF=%M#DL'!08&KG2&4D=POC"%K($,!,K0+ |
1632 |
M_$;6[*39!8]F?0+I*TK2C=XDUO0T5BU!1,L'L@_]0%9V90!Z(&V"MR=T,(2[ |
1633 |
MBNY@NA)VH6N"@P)6K5AN#1V,US(WIH-Q7[J8[F"Z$@XA5K@W,-`;/=8+:R7U |
1634 |
M]0SGN3/*N_/"G&=`!].5<`R?.G[,R.&#!VCW&@3WZ.L9(Z88,JD[)8YV,:4[ |
1635 |
MF*Z$TWHK(^VQ-&7GG\%PWNXG51(50RIQIZ2JDVX+Z`X&5[I^ACYR1T.'#>Z# |
1636 |
M#[CLM;=[EE(L4#+48G>J5JS,=G.D.QC"(=S*&'$H#AK8#P[0P7@M*U%):C&] |
1637 |
MAKO,#=?@'K!98[-855=;JRQ=ZD1W,"ABJE%_=W!1#L)L6"'/T`JEI%XD4"H( |
1638 |
MA;I<(G-%R%W>W,'@KD,@JPQSICL8%#Y^O!Z-]45P<`?#H2A?SUTB.1#Q(<9? |
1639 |
MEI>5O)!B==T5`KZH7DHC4XL$O.I:P0Z7/_"8/F3,V#'#$:`O%G,0Y>UQ')#X |
1640 |
M14(!'I9AUJ>/'A35`[><S\/]$TM<B7NWET6<:WFBPZ[V"*T9.?*W$8,1[`,3 |
1641 |
M<W"3+[TA$_`%A(`+P[H7STN+[V5=NL&G*^!5"T2X@Z@3O;R?FYUV^<+EJLNX |
1642 |
MI8.&#Q\V5*>I@L[4TNL27E4UJ_IA5<7+\N*"S&M)9U.J@5]67<43BFIK*QX5 |
1643 |
MY.5DI"2=2:I(POR!@XG!#?UH_258?Q?7(Q)!)5%)5!2]+"W(SKA^^4+BU0K@ |
1644 |
MEU955O.%O"<%^7DYF;@XJW*_BR%"_@.(`<HW]LOG4&B"RX[JVI<O_\/>>X!% |
1645 |
MT33MPC.[+$$0%1$!<\+TF$44#(\1Q82B`HJ*"064(&84%W/$1\6``3&@@F01 |
1646 |
M,PHB05&"`H+DG):-[+*Q_ZZ917W?<\[WG3^?P+6Z['377=/34W57=<],#^;& |
1647 |
M[SE?/Z5]>/\ZI0842)J;N3Q.84'^][3DQ%?Q>27G77IC4Y?M&S>@\^_31S', |
1648 |
M%O\R475I9CJWH:ZNMJ:FNJH,3J%0+);P&\G&U@;N^S<OGI?E^,%RJ5QRI=>H |
1649 |
M7I39Z.M29@,,X[PSCY_]\4,MMAOYMLT8K.TF:7J5\+;JHY<]S3"=2#N/X0;8 |
1650 |
M*O7T=5E@G,`P:UVC:[+?5KL!P[C5Q7\LBW*U4S.,#KE\^Z"N1&<]'2T-&,D" |
1651 |
MPZQRO5Z56^[6SC!NU9]+K[I.IQA&A`'+W/KI:FNQJ&6%.E,4,VWKJ>\EM.U+ |
1652 |
MW<IR3E(]`(2B0]JZF+!@D2^EWCJ*8N9M\4UJ]](/!YS[J"E&AUSJ[N;FZKK5 |
1653 |
M9<M"FF(V>=%B"C>/-13%*+`031:8#HBU6VF:<5OUKS2SX5]IIB/O[\C[._+^ |
1654 |
M_PMY/S4AKOU[1DRHK;\!!^/=/MZ>VU=2LV)ZZEDN76I27*"MO^G`XGFS_YYF |
1655 |
M:3&%SA*4@\+5,UR1@Z@Y,KZV_N:#\R>;CQ\S<MB0@:.HB3"%9>)GM:+LUU.H |
1656 |
MZ3*>MOZ6PPNGCL!R?PT;8M*7FJ&2+TF_DZ)6]^EF\F)ZP@PK/+S8LA?;=/3H |
1657 |
MD4-,V#WH"3.O=^>VO%%/F*6L\X]WHZB+J[WIX,+ID+.9C!QFK,[TB4[GWQS: |
1658 |
MMBD>NY,,$=V'#C73,!._7>>X-?*8#C51+M7VFS_U+SI5-#;.HN;)>P=&^[BY |
1659 |
M;(@+?_R0.LDW8,8G)N'%J]=OWKQ^F;#68<6J&Z=-J7GR-NV#DZ=,-FW/5.NS |
1660 |
M8+IL1/#-'6Y;-ZWW=,=?:U>O<@G$"NHB]V]RV>;FMFVS,S6)?/BL&4R7:1\P |
1661 |
M)\T58TT@5:[+ZH'1E@^/N6YSV>3L9&^WQ,9ZSLQI2T_#_D.]G#=NWK(9ESNL |
1662 |
M7&H]P]+A]'A\V$KM?>/)\?)Q?QE#BEJ;U<,8::VXN=-ER^:-ZYT<5M@N6C#O |
1663 |
M;\N)\PYB#>6WW)VHV>HU#LL7S/E[ZN2)?Q^80Q#:N\>,&3UZ1#O>"&DMO;1] |
1664 |
MPP;<;OL5MHL7S)X^9=*$63X87W'9Q6'UZC6K'>T6S<?#.<M)XZ=Z89/5]AGY |
1665 |
M%]7?T'Y#W/XQI[R<5CNLLK-=-&_F="N+B>-FP$1W\VGG%2M7X4'-`NNYLV;@ |
1666 |
MXOEN0ZGV>P\CARF-VSM0F47-E??VVK5RQ;(E"VP7+YP/-C=W'5;!.;QIC9/3 |
1667 |
M:KOERY9BQ9/-5SKTQ*52;<\)0WK1)[!'CRQZJKR+_<YE"^?,<L='Z[3:T7XE |
1668 |
M3+FU;'%S=]^Z<=/&C=NG64Z>[#A7#_,M5]M^V]@!1MA:>ICT-*03?9@IG^4R |
1669 |
M_^\9,/O=MF'*)*N5YNJ9<FW]52ZC>O=@]S`V-NK>G6U`3YL-MK.V6@0SY2LG |
1670 |
M3E\P0#U3KJ6_8O-P4P/CGCT,#;IVTJ-GRKO-FS.S?:9\P;3I7=4SY5KZ=AO, |
1671 |
MC+!@MRZ==4W4,^5CS-5^,W6DIGJF7$M_^?J!!MVZZNOIFJQ2SY0;J"?8C$EJ |
1672 |
MIER`A6PW;L`'OLYIS<(_IM*4A):VMG:G_W2F7*GY*V7_Q0V:Y%QL3VOQ65UN |
1673 |
M\6\SY@)-<OZFT68#^_4R-C2"_3$(U4VJ5DG<@<7?$%^37+!E6`\#?5U-!C87 |
1674 |
MFA6,GR:KCRX]VHAB!;P3&]>1IBPLI\6@T@M,"F,2`UZI22'I]//1-"E@?:ZC |
1675 |
MC7'NHZ.C2=#Y.28%^_A]-C%J4G@UR_V1+4T*Y/PM(WM3:1;>.YV=DX1T?XS+ |
1676 |
MDOF/:%*`!7U@^8U94Q?=\:"FT*7$UF&F6G_FYB3!];^[VG;AW-";05<#+U^Z |
1677 |
M$'`*<KA[81%1L*9@9-A,JTF33^VB<JXV8DL/HQZ_<LMZ6$V!8)T_#2]VG[UJ |
1678 |
M&?Z:.6WR0G^PR#L;YR]<8FN[9,$<:GK9=2^5XRF)30:D@4*/RF[KTF!-`N.K |
1679 |
M'DN7+)P_9X:E^9@10P?U[S66NOQTQ7Z.]0*;!;C<RF+LT#[&5KOTX>J1LSZI |
1680 |
M+^^L1677M6FPJ,&DTXX+;198SYYA-6G<J.%F_8R[FL'R.TUGE\V@YK&G6TT< |
1681 |
M/JB?:8^N_38-PFV0K-75U=%A_:%@[.'E<^?BAEM.&C=Z^,#>1MV[#%@-"M@+ |
1682 |
MK:9-FSYMJOFH87@$9MQ=W]2^'ZR3M%I3B^KO]@/0];&?,0W[[+A19OU[FQAV |
1683 |
M[=P'7+)YUYQ)%I/Q0&3XT,$#^N#B8;:P'IO*@4$R?F?GRC1J&MW>R6+2A#'# |
1684 |
MQXT>.0S,;3"LV][B.G_ZC!G3S"=.&(O5]C"PL((7)J[J@LWBC]0<N[FEXX21 |
1685 |
M@P8LPX<Z`UX#/P;.GHWMLF6+K.=;6R_O9=RCQ]3!&"HF+9?H$92Y8!>DLW), |
1686 |
M,0,6#NO7!R;&I7.-NIM8&%!SZ!)-<O)";3!`#4)))>),0FX^U&043*!;=.T] |
1687 |
MG)I`EQ(L<M("#9Q]PGRXPFQ0__:)\^&]>E,3YS(L83X7"VC"A+ENNS^;:E(3 |
1688 |
MYE`[<39XY.0_)LL%N'2<]5Q\.+-FX`3K3R]G84W_L9=W),T=27-'TOQ_/FDF |
1689 |
M5/V(KH1R+!>N4G'A);;C_;"?$0JTD5K3&%?`JM(RGYHZ8PTLB9G\I`9.GZ%" |
1690 |
M!WN\LNL=N+XW@(7K,*L]-`3O&TNO@ZWL"ID'7<=$BF\](0A#I2ZB_S+5E1I( |
1691 |
MP;>`@`6%>HA%*&VYN(/I2A:NW`I7S%5<!*O\JKSP'UEML@;!A<FXO;!,)KS! |
1692 |
M0G4'=4&*^EX:,,)^R**&U"35AFZ@"7_+OQE1)*$@QI;!*IVX$!-'Y202]&!M |
1693 |
MW:DB_,W7^R]*>E.X"56_<=6+H4Q.D+V^_]Y#_OA>>M3BH0I2YS&TIP&7=T72 |
1694 |
MR$$F.B2T'[.AUD$X@(9/`UAP`))C`WMH$<1X'CYP6"7<B0\7W,T&:`Z0]]+0 |
1695 |
MZ#6`A17(^'O[&\`1*4@+'NX]6,1S*I_JODXL%DNN01`:^"^F7?[BOM1RR)0@ |
1696 |
MK%BO8/3^_L=)D.6/[]V96@44!'2HQ<I-'O]Q!F618TTZ40N*@X`V/L-MI/99 |
1697 |
MA*AJ$LDN#332AC5%J6IL,GS(-UB;BJEZ&=HUH#L+#[+PT7?OJ=E3EY!K=*7, |
1698 |
M1C[(N*L&H8]3,*864P]G>)2-#=)@P-K2D_BT)FQ\DT^Q*.-SIXP/5U#&=["^ |
1699 |
MJ1>]?^5%%A@?KJ",SX!JNIDF;7PXZ=*AZBCC,\B#XZ;JL/'],*6,#U=2QC>) |
1700 |
MZCVJ$AN?<!IE?+B0,CX'.`5T)38^H1=E?'S:^/;#N6M,9Q%\,!$VJ]WXJ)/= |
1701 |
MU!=.MC):L]WX<!NZ@28PC1\F:N.;1!D1+L1&5#N--CX^&!DNPM_"SO]%27\* |
1702 |
M-Z7N-ZYN97_:^/H6_M[#S\E].ZN-3S<&VM.,R['Q)0SMHTOR:>/3/@$'T)QM |
1703 |
MI@D'(`DP,\;1?K*`-C[-+4(POA%FFF;ROBQ67S.6&38^(7MP#TW*^*8):.-C |
1704 |
MS192W:>GR=*4LW`BB/]BXQ.N'-B-11D?%J2-KW_A'R=!]G-R?WW:^+``;7Q] |
1705 |
M8OXX@[*$27WT:./#`K3QZ00B1%5CX[MIAKV(,CY<C4U&",:GN;V<JI>A0V9& |
1706 |
MFI3QZ1J9:IIBXV,94&8C']K+@/6G\5$VUI5%&9_Q/K8F6[4/C,]D!@,JV..H |
1707 |
M1=%QA38;&Y^ESRX]6&R?9"OG,,#X<(4.&QN?MBT;EW5C0M/92KM.8'RXKA,; |
1708 |
M&Y_V-C9#7<=D*]ST*./#E;IL^B]37:G!5NSO31D?+M3#YJ0<MH^MH:YDX<J) |
1709 |
MU-*^^]B=V=CX)N,_,I\-#&(?6Y^MG`I3E%W8N-J6W86MV*7/8'?%[6""\;%) |
1710 |
MJ@W=0!/^EKOI$@3&X!&5%]N`*C1@*[Q[D:`':^M.%>'O_9K_5J+8K^^/]XI3 |
1711 |
MMYV_@/*=0ZE";'[Z;K_WX6ZB#V@P%-8*:-%N7-Z5+;4WZ,PBX0B4ER'5PNTU |
1712 |
MI(:3#)P):KB2VTC7KDAQYP2\6YHDQ#T7[O#S8^]>,0P?G+P+W/C'1`+7P\VB |
1713 |
MO.R8)V=/KYD#ZZ;)FT$>1E.<R7L]')8O6KG>\[AG?Z*+MR$]`>+*YLJ%`B[) |
1714 |
ME8JR71?\3<`J[;M.D"=DB$*R4!,Q=>^JF;/FS,.#%?M])Q;LOF!(S7VT8*2B |
1715 |
ME==45]E4O?_,[CE383>MODBE5-%0)LHGC'8[+UFZ;*FUS>*ERU>ZGS]^$;#( |
1716 |
M-5`LEPBYC;4-W!/'+U_VG@.31:*#JLR@-CF-9:`\8OE>S^7+'7R.>#@M6V'O |
1717 |
MZ+[A$F!=`UME8B&ON;Y!%,R^=OUZT);98W`C/_HJ@MXGR=I4S==A!X31QOXL |
1718 |
M/>ROO>V.[G-T6+-V0R`&NP:*VN`::D-#Z[/=5\(C@JZ&.,V"M++Q@#S();^F |
1719 |
M582"*/1?>CUZ&X#-E!A[G-J\UGG354-BPQY>&RP#WE`GS/*]\?!10OKM1_<< |
1720 |
M9\)A-OE*@SR2VD1\-9SLV9>Z<:VXJ\_I[=L]O*\9$DM=3Y5+^(UU-<*J`W<? |
1721 |
M?+':('D9%?5X[G0XTN8#DLR@5HF0IX9W[=NO$T:WZGJ>"[AX^<JU($-LI_6. |
1722 |
M7H^%8@Z7=R(X)JUL[M:VJLR$M[8SIV`\9W^K0M'6*FA1XWOWZ0>C*(0]L`[9 |
1723 |
M>;D<SA4+;P4F?*SA5U:+JT4Y'^S,1F-8ZWZAI$TBXG$P#/LE#CY8^H*[J^NM |
1724 |
MB'.O/S355M=6-PI;6XOM*#MIV,OG"W@";A/LQ)!.ZR_LA,6XY7H#!W:AYD?J |
1725 |
M[7Y>\_'>X9Z67,L52=IJ/\G$8B4-;]S#;6QZQ^,T4/!K.[T\/,_OP4Y-R$W[ |
1726 |
M&9'4P!FC7T>?VK?G>PF7QU\]9?!@N432CM[-J:K*+VEJIM!7-V]TWG;.RQA> |
1727 |
MI=.]=P^]OW[!$^*"V-4M/'[+:(NIH^62-C6\W*>QZ&=B$X<R#L.KFS:N7[ON |
1728 |
MX-&5?0A"6Y?5?Y/1'_C(!VU<?)06BQ99*-K:\17>];FY]1A^QPWCKVSQ6N?D |
1729 |
M:+]QU]&]3BOMO/8N)Q@4/.T3AH?)N'P!=[J]_72%5*J&B[UJO::U4&CLA8:7 |
1730 |
M3U_THB;(EJRR7[G<>9<1->E0O\TI/17P/+Y0,'?#IKF_\1*/JJ0)[7!D>&F? |
1731 |
MS=E#:U<L7[K(9OX\QSU3\>XQG-CH%)$1&2;G"82RA:X^"Q52F8J&MVTO?_F< |
1732 |
M1I.(:[BK"S'`Y\SN+4ZK[)V\]DVFEC8EB<8YCD\^TVA;KP.V2F5).HV6NI?& |
1733 |
MQ%!@')TZP7D6#[??=^SH$8^%,/T&Q%)IOOQZAEPHQMWE[FYWR&ZMSV:P0\,+ |
1734 |
M;H5%A6[4T>D`DVD2,&W,,U]VHC;UT<EM=M[;UKHYS:<L1[HWP&GUFM74G`V\ |
1735 |
MY`C'F$Y85M+7UFGKGJUKYE/7JB2^VST]/.#*,LS(,'',TT/=X);'O9ZDI\*; |
1736 |
M#92IHV;+UE5+ERY;9F>WRI[*)`)V`6?BH=](NZU;W=9.8L!K!I'`WK5!\#7] |
1737 |
MWJV]NZ9/H,BR`03AF$0]UJ^TFCC*8O8J+[@"I7*@9X;LW9IE?%XSV2P5I"\= |
1738 |
M/O8/LJ20+-1"F*Z?W'_`(+-A(\=8.GL/7^M+]5P+!LJ%G+JJDKJRC7O6#AGS |
1739 |
M!U=22)B6XJZ=,V;LA+%#1XP>.]%BV7XO/^J,<>S]13(QO[FVLJ;9VXO-=C`; |
1740 |
MTDZ6$O5N,040$]>OFCC1:O7VE3,F3+*<NFSN80QN1/;^0JF(SVFHKA&<=SM^ |
1741 |
MXL1)FZ%FT$I@RP2I1-5P@F(,PAJG&F+S'<Y3K:;/G`MW@C;8^PLD<#FXID;X |
1742 |
M>.V1F[=/'KLP8R1P91-P95:Y4(!.4E@M@L&$ET.7KO19,'/._&,$L7X=1P)K |
1743 |
M[=94\=,VG[IZ/2SQW/5+4T?^8LH$B8"K!A,L;>KM/L7DZEW+EZ]T.$X0"^U\ |
1744 |
M?HJYM57E_-)-%P-33.:*(T-"@@;_]8LIA6(^1PUG==:'+$I,KMIWP(]]Y/A) |
1745 |
MN#-TJGT07]38S/$^?^]MX>!%DM(/8;'C^H]H)TK,LTUJ>#<#P]]$:6Z_T/63 |
1746 |
MB'_6/^QU.;>D3%0FR'AAKM^_G2C%`DXCAF&B[`)$:>Z[;.G2L[?W1;^HJRRK |
1747 |
M+*OE"X7YYI3#M`)1<GC-=5@:!^D3QX^P#Q_R=82CE&L9&&C23&F>=WRU@]VR |
1748 |
MM\\KFP5B26625"12JO'`E/&<QAH*+SGN:+]RU?YUD/@H.NEJT5QCGA=]U\=Y |
1749 |
M769!,X<[#8_4@&?5:&#*K(*Z!@K==FR!]9PE^^QA5DR#Q22T:*;#\+#0DVYE |
1750 |
M31QNDXZAJ8Y,+&F'`U,^K6L$P\"-/S;?>O;,65MV6,"KL^?_VG=8Z)U`23,^ |
1751 |
M1L-1HPR!I=5@H,EJC`UPQ."6(S;VLV9,M;1VVK%^AH6Y_?J):OS;)(R_(6WF |
1752 |
M\II[6UKVEF.:-?_-DTT4G$%PV;O\[*DIPS&3+2TFSG&B:<YN1N(;0'.X?-[@ |
1753 |
MN?,'_T;3+$GOFX.(P\XC]KK,G#1Q[*@1P\RFKC-5L^22&;??W[DAX_#XTI%+ |
1754 |
M5X^4MTE5YK]9DD;#%"S<A"U:O6>MS8S)EC/LG7NTT^2XJ;>2:?@X^TWCE,J" |
1755 |
M1//?-$FA&3CMEVA8.GOLV+YR)#5QCQERZ*03[V5\$>ZI9<O,7<QGKK;YS9". |
1756 |
M%+48T.0XU-R[\LWUG4O,'9;-6;5PVG](CD;F,Y9LL)MO\=]#CHL)-!`I)IE/ |
1757 |
MG,"<@#L,.''5/'BG$.DH<7!T<W1PL(><CG14@8\++&P>A%\XX^F^S';L8(H8 |
1758 |
M0T`:M]"Q9?N5F#=OWSV_M=]A)>'HLH$Z>IZ%S>.(*]>O7@NZ=VKNR($4+29_ |
1759 |
M(;_(8N\`#K?(D7/B>6SHO;N/HIXGQ_K8N\2YT3FDA4U8U*6S)_P/7KPV_Z3' |
1760 |
MX'[`BZH,7",-C*&P&JC`\4S"W<!K-VZ'W'_XY'7RY6>I@$46:Z(>!P:<.<X^ |
1761 |
M>W>I[\U;VP8;`RUFH*;L4_]$!P,4YY".[L\>WKP=$G([Y,'#Q^'/4I/2`&NQ |
1762 |
M)N+AQ8"S)X^<#MWH?B?D[KT5@^"JBS`=9=>XGSH?>=N6:MQWQQL)L3=NWGGV |
1763 |
M+OX)1C^)CTK':(LUX??/GSMSZMBI![M6WHZ.NQ<<-F\0M#,%PQ\]\3UV)AK@ |
1764 |
MR-']\2ZX7.;@=>O=J["P\">1&6[$N%FAC\^>/G7BZ-&0T\N#X]Y\_A(:\_CO |
1765 |
M@4"-'])0=IS;R:-L-=QOH]/:-0X+B"G+=T0G1SV)B,+P81:VU\.NGSAR."3( |
1766 |
M)N1)WL'0UK<)SR.'#:!RI(_XT(_C.AKOX.BTUFG%+&PTK0M=GB;'Q3U]]@EB |
1767 |
M<;W]3+>'#R]?N[?T2D)&=4"TN"([,=5I8%]X:"@%'S3WY#%_ORBZ":L=U]C- |
1768 |
MQI@BQXTQ*1_3TC,^?8;N<SUDM^#LP_L;_%^G5PH:.:V5@KQ,UY[&H"$9:V@^ |
1769 |
M<91]B-9@MW3YJ@4]\"]';<=J!X"&'/69Z[S#ZUUJ?55E=64]ILT*5\J$A.]5 |
1770 |
M"/G[^_D"$HM3$5?9:?)L<K8*DI0ZY%H;=?Z,V_I/'ZN:!:V2FD]24:N"QM:_ |
1771 |
M4ZI4KH</[H_$6+?/GS+2TU(_QFV$R\W2Y:LW;'!RH+RZWK4V*^5>X,7"XB8. |
1772 |
MSVGJT*&8-M4:5&\4I(+SQ,?W"*7BT_.$^&<?G[G`<QMB1X?USNL<[2F3`!6? |
1773 |
M4V-OU38VMW#&6_T]'JB35E'R4B:5;O,]&GZ3TA`3'16;$K-CN37AZ+!VW=J- |
1774 |
M?LO^4)#\2H*YMV7J\N53@3YI!<H$:2O1JM2G1GY64GLK*TM+RB>M5.!"VE9X |
1775 |
M[->C,S7VLVIQO/'Q1]'/[%`/JRF$E>T">NQGM3*_[/73\R<VKI\PE/):=Y#' |
1776 |
M!&3%.9J5_OQI[*L/V>4?MUC:IMO3;FNULKCV:U;FEZ^%T?-'#Z;<]B:\M\R? |
1777 |
M`N*AG]69K+B[#QX]B8E_\2Z_[.KG&KH;6JQ6EC9\37D3'Y&2:GM\Q]"!5#KS |
1778 |
M`*D4<P^[&76FAGY6CE]?/8F,B8V(??;R[;NLFO(ZP"*K[375.1E)K^(2OZ_Q |
1779 |
MO1ZT=:@)N.T#G,V,G^FW#;#8;:T>9*???Q#^Y6?F^U=OWW_(^E0/6*OME95? |
1780 |
M/Z6\37CS<Z_[K=O!P2O,>L'0[YXB")F.F^:[K0NU`\=76V?9S+.RVO"@..]] |
1781 |
M4DI:!H"MW,M*X%&7%Z^++]K?B(P)OOG0>@CEM2'RH$SVX+\F'Z;1>Q:N<K:; |
1782 |
M-HXPLUB=7)&1FI'9:$],LBFL^)#T[LV+A((8^UM1[[(^WXUX,&L('&9CL#2H |
1783 |
MWF3,R*%^-'R:_08G2QB0_!R_+*/B:U9N7I,]\9?5^M3*K%?/8O/3EMT)RS\= |
1784 |
M+WGS-#YLQ"`XUJ9;;9E!HT>-,%,K6+INP^Q1$'RL;#Y65M?6-30VPZU?]2OG |
1785 |
M'?U9FI:9[W0E/KTV.*FM\NOK#ZN&0'I2'R16J<;^-6PPK<%BI</:<?K073I6 |
1786 |
M)':;C0=6K'A:4K3;_V5:M9##%U<)OZ5O-#$%E[LFDBM&CS`;!$`LS2"4FD,6 |
1787 |
MD`M40RA_VWC[L+?U[A/>B1\;:ZIJJAL$(E'91MK?+O/;VH8/&S+@$`;:-S<V |
1788 |
MUM?55J<N,`-_LUBP;=M2*]K?-M9'GC[AMCXMI:8%CPYJ/LM:Q4I:0T,`5]1J |
1789 |
M;#:HWT'0T)3_/3>WZK/M8(!9M:W;XCC-DO:6C?4Y'T/^.5]0@@>^:RS-S.38 |
1790 |
MW6@-)6<Y?#[;M/\87]#0F/7ETY>JE-468P@KJQ4;5RW<,^F7@B_IL4&US2V\ |
1791 |
MEK&6T\>"NZD5G&SD<(P&C-WC0BGXFODI+?7'SX<;K*SFV<S<^MIQR!\*4EZW |
1792 |
MX82CQ=+6UA(2#EJ!ZD@]65_=;]P>%Z-.5!.^9Z1^>/<QYV=61.B#C.S0*72R |
1793 |
MM3'W)U;P7@;#TEEKULQ2M$G5"L1^M<'NX_8"'&<6]@U5==]2D]^]2HA[GA`7 |
1794 |
M]?J+XRBZL_>YY1;0"@3\!2[;%L#`D%8@V5]5MD:-;T;V]5^N5?[\^/;EL]C( |
1795 |
ML-#XK#,6],"2V.GV_`?&XX&IS-9CORV,#&E\VZ[RGT4TG$1-]AFVD[>D5WU+ |
1796 |
M37SQ_-6GK*-3NA/TN*31=EM"$8U?L9N]0JDL_T+CI5ZE/WY0<)R:+[`=0XRW |
1797 |
M]'R84_*S\.,-1_/NZE2D<OJ&!P4R06N;TL%G][K3&]T/>]*YSPZ<^W2BFJBT |
1798 |
M&@OCRO$64ZSLK::8]\4;5#(TP_ERW>>H2[LW'MJ]==>6)50RI-@;L-:)=&+\ |
1799 |
M6RXT:+V;C[_WIL7_/;E0)V#8UK%#^II8FO0=-!Q.LV)$+Q!N'=&K=[\!9F9_ |
1800 |
M_45E2*0.L&WS^"%33[W.^9Z7?F5EGV'$B''#:;8=89%5&/UPO[?U["X]*;9= |
1801 |
M!O*:J&E\WQUIB>$/[T>]2/_YVJ;?N$1+FFU'6.17?DS[D/(Q]^XP':/?;.M. |
1802 |
M`3';#MR3%GHQ\/JM>X\BXK,*CR67TU[0,L+B1\W'5S&/;K]Z,\[+CFG\BVT' |
1803 |
MN]H"%+/M7U,_1MVZ<^_^[?N/(V/CT\I_5@$6C5A>7I;Q/B$J]&GF],TG3BYB |
1804 |
M&;:SK7[_K4L`B]FV;V!ZXN7`FREY'YY%Q3Y[D994#=@1RTM*/B:]B@V+R5N_ |
1805 |
M[.RY\^<G:1JULRW1N=?F)7`[*1HS-6K1@!%F)KWF!N9_?9:`V1K`(Y85%B2^ |
1806 |
M??$T(CK?S_+4G7OG3U\=J@=L*P:V=2.T>KA2-I<[9-U(RWD6??L0)GVG/2]^ |
1807 |
M_^;]AUI+PGQ$;O&+A/B8B+#L>Y9G0^+3DB_>#AR@3]WK"G1+Z&J26RE\6]_> |
1808 |
MTVWF#(#;47^:F;\O_ICVZ6N=)3&B_^PW)6E1C^]GO9T0<"-KUR-QS,-'-UC= |
1809 |
M*:<#OM719A&T!JGI9)O%8_H"X8[YZW5)665536V#)1"NA=F.O!]O/V3-./(H |
1810 |
ML?)\@J3D8_2+R80AJ`#"U=-BJ%6TCI@S?_$@N$VNMXF6274O_,-ZTZ1)#PN^ |
1811 |
MKW6/?%O&;^2*2OF?$ZUUN@$6.%>'15!852\,4$'KE2SC*>04E3%%O-;G7!V& |
1812 |
MKO5V>/JZMKRTO*R&)Q`46M.,`<2KP2`(>(!`9-E06UM=55GV9J0),.\(BU6K |
1813 |
MIIC2S&M=?6>7M^WLMZ_*F_"HHSQ9*A0I:15R8%X8]6Z!U-"R+BOSTZ?2Y`D] |
1814 |
M(=,9-62![:S>?6CBLZ[.>'WAT/[L`CR4GFZ,QY@BL5J%&*@7)X*ZFV&BP+(V |
1815 |
M+24II?35M+X#B1']+&VL_EK7]Y>&E,3[)RL;FCA->L:]]6"4:OV;>PE";]U" |
1816 |
M;$26M1\_)+U]DY-W=6XOTZ$C!RR*GFK\AX)7T9+&9FZ3\;AQQC),WM9_<"_1 |
1817 |
M&2O0`@UIF>_?O(A_G9&7=OM*X/OT*[UH[K7^E(<5/)/"0'?`].D#8$K0^C?W |
1818 |
M=EX/<$QPEC6E59_?/(^/"@L-#PL-B4Z9VIOFWDVVG[)I!3SN\(5+A@/[6__F |
1819 |
M7C6^&5E6IQPOR7L=&_GX_IT;5QZE[>FMYMYUMN$Y&(\'N])Q*S>.@_&F]6_N |
1820 |
MI>&8>RW?C^MEDUCZ^<W3B/"HI+0=O?3;N7?:DK#O-'[26K=)2N7/%.O?W$O2 |
1821 |
M`_KFX>-Z$_U[K[J:49"7^_K4U+[Z[=P[=EY@MI0GE"BM5J^=M<MZF:O];^[5 |
1822 |
MHKFW5Q_@WOY]>V$V[-77L)U[Q\YC5R6''%YK[;)^B?.*V?\1]YK.LW7:L=9V |
1823 |
M:L<XM&,<VC$._5]E'*H-61(9)XF-2XJ+C8FFO#*.'HEJXI&HOA8U$HUK22H7 |
1824 |
MRA4J6<WGV"=$W-N7=&ZDV6.ML\W<,7\9]V1I4'Z[`N3Q2#2.DR=I%0C%,MS+ |
1825 |
MPK3HMZ(DVG$U>VQ<9S%]VM]SEOT]L+,&Y;A?"\E"V68[`.+,+*ZPM;F^F2>2 |
1826 |
M*N#F*E5)JRJ)]ES-'IN=QPX=T-O(8J'QL:T:3"HY*D(JY8B-RP'+1,*X)(QM |
1827 |
MX@I$$KD2;O!5U0,6:0[<NFK\B"']34?;&>]\$+I>@PF>^T-5DVEBYKP,L`PD |
1828 |
MB*MJ%555UTH4,IE<H225-7)JQYH#-]N-&C%T8)_AJ\Q6/<9>-1NC6:BZ0)5Y |
1829 |
MMT?/06N7:L,>XI):TJ/#(^)B/]8H%#*FK`:PF@.=EPX?AL<^0U=,G/3PV<N( |
1830 |
M1T_':H#C5N4K,R>PNQGV=Z;!V2\?W`F-NDSXA";SE%*&M%J91&CJKW$<-GC0 |
1831 |
M@+[]%L\9<2\QI_Q;Y,NH81K44/2[(G.<H5'WKNLI>&SLW5O!CXYARY%??2M4 |
1832 |
M2$EII0PKT-`TL5TS8V`?T\5+34/B2A(;1,GOWL?I:E!CT2QY3:91#X,NM(:X |
1833 |
MT,#KMV$:61;W2@'N1Q&XH%`H&4HE;C]<BC08Y;AJRHP5QN???&[\T=9:]CTU |
1834 |
M>QL^?NP!7V0(]33LIK^.TO#HZ,F`R[`>3)QV7'4L_LL^.]-P[JH59A[O/Y<+ |
1835 |
M!!)1!:\PCZT#2&&&%*$>!ET[`Q*+JV+![PR]/4@/E1?E=^RXFX<&#!FSXD-& |
1836 |
M345Y944=3HMJV93U"%+;$#+HIJ^[%F.35*2*H90K!"]]P.]"P^[>#8^E_8XM |
1837 |
M2'WT8-N*+^D5#3R1N.8SSHH4M(:&9`E"W;OH=7*B-"@4<KE2]!9N!Q;'Q8;> |
1838 |
M?1@;37L-6U!=]"8FLNQG?2-W_8R1(V6MK6H-_+=BA-B==(W7T!I(18M<R4L. |
1839 |
M#2#B8A_=??@R^]XO#>4_/[ULJ&UHYDSZ>^XD2(K8:L<5X:/0-5D%=Y4F(95* |
1840 |
MJ9`KY#4?8^,BPZ/36Y(\_U!0D"VIPRG43`>'F>"XZFZ(%R($>'U-4(#;I%)( |
1841 |
MVZ1R"<X21:U5$71.Q"YMQ/AO;?5-+2TV6[;80$I#X\6Q`I\))O8`Q[EI$C8I |
1842 |
MGE(F@<4:&FN;1$DGU6/_DZ6U@&_`0^KE7CN7PWB6QDLB^&BH&MZ,DE!KB0I1 |
1843 |
M"C@--0VBPD?JE.C,R;3:@F]2G-2U.>P[ZH"'LRH:W_:8AV0T'*=$2:*W86E" |
1844 |
MI)"*!3RN4)P7,:4])7(]D5J#\1QNVSKVV75*16T^C9?>YR)$P7%*]/)M`'$M |
1845 |
M^G.U5"&7"<J2[EBJ,Y+:98>?5TE;A&+%IJ.G=MUAG[QVDDZ)[C23S2I-.B>* |
1846 |
MNP0YT;70",Q]$2%KVG.BY8<>-WY[^_`"^^JY0Z=V.[;G1&=.D:?^/2<:??#$ |
1847 |
MN2LG?!S^>W(B36H\>COD;FA"Z-W@6]1X-#B48CTF09(,)E-#@QZ/LJCQZ*V0 |
1848 |
MA)]\F5PE+4^^=YT(CHVD.D;")&;.&3%8%](Z)8,BW4D`P`/26_>_BH4\ODB* |
1849 |
M29?_]DZL(($F729A/<NP=Z]^@R;T@R6Y?I'N`G,`XMW?RQ4V5#=P!&URBG0+ |
1850 |
MA*H$R@BE3&+!'#VX;"\Q'$EX+`*PFG59UA,!C%DW.`&#ZYIY`K&,9ET1@'$O |
1851 |
M+9JL#W?HB77,"<?`*SBU;*==@I@S`<#8E.^7"@6E995BN50JDP/MRJA=X_V: |
1852 |
M:[/PH$%C,C$YZ,;-6P-)!FZH'&@7CGOF6,IX!+<2FA+OWKP=>O]UN5PN94I; |
1853 |
M`<TDYHS5@&<+!.2DKMVO/HZ\??TA/@C,O#)@7LA*5',H/#\D/3(PX,H=-K'Q |
1854 |
M\G..LHW1)E$F$"QB^E2XK8,_>A#KTM.,GY_O1(8P&'"L<J!>&%3-IH>E=^_] |
1855 |
M<^;<57@D6GXTEB]O(]M:I5B!!DF,FPZ/1')'CR4NA!8\K1$\CW\6"KV'!V9` |
1856 |
MOK]U2$,O^Q\_LQO8]U84#],1L&\"L"_.LZ=.-NHSB=@?DUR;(Q$69KY)7P*7 |
1857 |
MO9$<V!=4S*('II>]=_FR!^)NNQ^J%5I]'_]PV]N?&#QY$K'R6?)/'D\L*.;D |
1858 |
M?G5C4EC@WW:L3JB*ZLXNSFO)M:KU%/VZA9YVP6.^22_>EQ?_+"FNXO!XE6[T |
1859 |
MD!+H%Z`SH0<3:/Z5\R(W`O_^<R4@X/I]FG_=>&^N!RZ9E))87,,1B,J3V_@" |
1860 |
MN5H%\"^H@,746A-4<KE,IA3$K@4SN7WG<D#@O3LT^[GQRK['W+M3F%==VSR[ |
1861 |
MCZ:F5"A4JY`!`5/G$!YE56(=I+Q%IN0\O^1+!-^]^L^5B/0+OW3\S$N*K*FL |
1862 |
M:6CLWF]P=[CVJFX&4#"@)X^$H6T"D+!<)I>5O[[_(/A&2&)3PKH_5&2GBZMJ |
1863 |
M&QO[6UGU!Q9W^TW"!#%Y)*E!$`D4"<O;)&TR<659J4!8>HLF8;<?M1C_65)= |
1864 |
MU]0TPL9F!(QLW7Z3,&$)<.A,BH0Q!7(Q!U?6"1)VT23,WOFC$O`U>&P]T=YQ |
1865 |
M(@QLW7Z3L!K>C!*0L`"3,"AHK"FO$>1>59/PWIUO*[,_M^$H)+%RWF&%@X#* |
1866 |
M[3<)TW!,P@F"V.MO^4C>)N)QFOFBK[=&M9/P*N\WY1C?V"R9Y;9WEE)>F>7V |
1867 |
MFX0I.";AR%A?XEA(<EF;7";E%2:<&]U.PC-=PTO;FO@B^?P=/DX!;CN/>_]! |
1868 |
MPAHT"8<>!A(^=OD6IL5;YQ>VD_"LK4&UGV.O^KH=V[=E]^8E_Q$)#W;QWG=T |
1869 |
ME[-UQ\"T8V#:,3#]7V5@.IXD=`E%_PO9\&Q']MV-$-$5SEP-N(5I/;?\?0R; |
1870 |
M/6,&T850\"Q(`AZ[N("]35*QF>&,D#'<\:]:C[,HI3-)Z!%R!$*:U+,/G9#J |
1871 |
M@_KV?@;(=$+*E7"'-0M1FEB$*AIUH:I)J-9%"OXDP&K2]7!S,2Q[@.N)]:@S |
1872 |
M4E;VI.YXHRJQPBQ8W017K@<EWXW@02TDY>G@7&8L=BT5W*:O&,!:#_>H/X)G |
1873 |
MOW20I#N3("X@14,M62L_/,@F`A^'<L`$N,_].MSVI(.X/;%$MC3Y>4+"VC[= |
1874 |
MM*;`<P:*`8;O0<0-GO;003P0:7UXXNB1I3T[,\=RL0Z\&R8R1*I%E``?!/ZV |
1875 |
M76*SH$<G!E&&Z^5\W$Q0$3*/DE#T9`),6JYMU'^PS4+&0MG``;TT*(G!AI2$ |
1876 |
MLB<3"W#Y-D;:K,E;W=RNMNIKXO!'/12B]4M"$_'Y2_KHD=.NW[P=T?;-%#K2 |
1877 |
M4-W?[3H$3Z8RUW[._%H@0[=[:?PAH(V[&TOH(!D7QC20(R\V9/XA`.V>VYT) |
1878 |
MO9P_0)?\HT83R?AS#75(6&W"U90ZNW?IAU,(>+&YE*HDX*74KP=T@7.EU`B@ |
1879 |
MGU.A[OIIH^NI95$SL%7(\\?WI.[=9QKN@F<8*#&F>A^4'\GW#?2N@HX,&6>B |
1880 |
MC4^T7+.'#3PP(>''@'4PJ'R+DL8!CKN[?S>MKMX1L-IG6_Z=&?T-M<&JY"R# |
1881 |
M!=6XRP099ZYLGC-X4%\,).&JK:*[#AA;BP8\)L+0[&+4N_^`_KT-.V%[("J8 |
1882 |
M^B/R4?7WVQOG#!HXH)]IS^[ZN"<(5G\K2\LI3+!AI0;<UJQ@,#58)$NAP01? |
1883 |
MXC`Z&?4;T+\72&MJ:#`9)&6PVOH,?>5DRMD&!^6!L^6%N5/.YLIG856MKOSJ |
1884 |
MM%?GSEI;DX0^H1!,H[S-(`B\K7H'PQ6A7M!-JFW@;:ZTMX&0)O6P!_:V3^KG |
1885 |
M&1@@@[UMG=K;0`A[VW-P%#-J++H-O$TX3>UM4(_U.H"WX7IB&WA;K2GM;5") |
1886 |
M%>:!'>#*;:"DT(3V-@%TQB3P-B%XFYGF-CC-,5JTMQDQ8>%717,CV2@_/71Y |
1887 |
M/'B;V42PX;N:M+>98HD\6?J[Q$27`=VU9\"#%0JS'JD@XD,;,0]$Q-'_G#_G |
1888 |
M8*K/G,0';S/3I+QM!>UM(&#ML&KY,F,]!D$9B1`W$U2$+:&]S90),&FUCLG@ |
1889 |
MX<OM&':DF:(O[8_#C6A/,:6\3;C<1$=SAI>/3XBXJQ:+]C8S[5\2V-N$JP9T |
1890 |
M)N?<??`P7OJCCR;M$51_M^L0/)W-=,GY]KU8CA[V9?TA@+U-:$IY&U\FE<&4 |
1891 |
MFV*E$?,/`6CW(B/*VWZ:=2;_J,'>AFMT*6_;V8<ZNV'TTSBTMU&5E+<EFW6C |
1892 |
MO(UUG7XPA_8VNI[RMFSPMI^3334I;S,Z!-Y&B3'5^Z"][8C9@3KHR#"+/CK@ |
1893 |
M;5K&RX7@;<*78!VTMU'2V-OX?H.[:QL<B/\)WO;S\;S!1M2J,]A#E\'*K8+L |
1894 |
M*\';%PP?.E"SW=L`A[V-!<_%,+2ZF?0?;#:XOY$>[6U=Q_Q$=86A[HN'FID- |
1895 |
MZF-JU+7SOWD;2^UM+$U24\%2>YN>R2"SP7U!6HO%^A=O,R&)@43K.-^=F];, |
1896 |
MGC5H`.57^WJ3\,1-U_G;V"1;OFW9.#AJQ=A]<,^M:BQ;FZT<2_D6&P3A>9KY |
1897 |
M;"VVQ'L\.9;-UH/=8Z%.;.5(J,29.YM2R**>>>G$5FU4/YA#@I@N6[&_%W0' |
1898 |
M$S%H.;P+!W87M@Q+$&/AN11O/:J:25=CY</87=ER7#T6BRG==+%F)M+`M2R2 |
1899 |
M<EQ<J^C&'`N/OJQ@8G5,Q&++<)PAC-DLMFH_6P?OO1<\0K.(B;L9:B6XT<1\ |
1900 |
MMM]N'])'_K?!D%7X<!3==)U!R)Q!G7P6FPM"VPYM<%JS9DP7'8T^\&02W@^# |
1901 |
M;<A6F:EE>"#C:S=[ULQA>EH,XWV4'B8!>FP'J67X(--_V-`A0W1Q@[VPB'R_ |
1902 |
M6L:@DUI&H<<`K-1+0[>KP1`SAAG93:'/H&2Z::AEE'H,+,+=/T17@]E[HKGY |
1903 |
M0E\M)M9,/QOTAXPFF[]_:!=-LM^B)4M7'73K3+G4+QEXQ(E2)%C5ES'&Q67K |
1904 |
M]D/LI?J,?Y$Y3+"1[@G5+CQ:41+C^I!]Y+U,J?NR!7)I&ZPAR&FLKZGRQ?FR |
1905 |
MZFV.7HXJ$H8:?@%D@,`OX!3QXMV+J+O$J0`_;-HZ08IGM&`&]A;56RS8<NSF |
1906 |
MC:O'D("(O_S/Z1!"H#H&([KR]_`1,\2*H*J#_RK/OG'@JC_B$4_.GCYV@RA7 |
1907 |
M^8/\4Q?X@/,$51X`^3WXMT@A$315E^1_34W<#4B_H+U7_!"'"#G"]KU(E"JA |
1908 |
M1=+G'O"AD!44T@>[J1#6!DQ-?!T?^?+-+H`>N+KG\@%5(Q&X=\_.$T21X@!] |
1909 |
M,$\I"-=;I51\0YG*-U6W?UX/?^8%B#W_^)S?JZHECF]WV^I+%,CWPD!=(9>( |
1910 |
MN`U5/[]G9I;OQTC.#EEN;G9F6L+]V[<#O9R6K?&^`K?*[SRSX[2WLHK8NW[] |
1911 |
MFAU$OM0;L!*Q$`^H2PNRTM/+`-OD+OJ*/BN?%@07^6\._U;_]?Y&_UOP_/GV |
1912 |
M8]N.;E>4$%OMEMNN(W+$.P#-YWXK+OB>].US2DKI/D!OJTU.>O?TYJW;^\\V |
1913 |
M\K@OFYI^'@.M+5O]-A_<*B\@5LV;.WLID=FZ%="-]8]3$]_=_)+Z_GW)'NBD |
1914 |
M+7X,/^Z&*_D7W;@B4<LH3B.O9-M%+-FR8<_Z/1NDN82UY12+F42:8`/`*RL. |
1915 |
M1H6&^Z2]?_6J>#=TV,;RTM+"[?Y7=CYNE4A%`V&A1N4M'\`[>:_V=!)G$I-' |
1916 |
MC1HYGDCFK@%\4>&R&^>O+4YZ%1]?M`LN.VS9GY^?X[ZGP*E((I-+AI1^^\Q] |
1917 |
MZ@3PE6XK7%<*/Q(C!PSL/YA(;%P)\-R<L6<.G![]^EET=*$WP->&[O^2L7UG |
1918 |
M@!VO52%(O]]_F&WM:SN`+]V$/]PDHD_/GD8FQ,NZI3").$VTW'^'_](IDRTV |
1919 |
M%7@!W"DM9'^RM_\]IV)Y4^['O-RL0F$,M??YZVS6SF]Z31CH,77UB=BJ!3"* |
1920 |
M"?8G_57N^$L6/#8TWP,4K'9TW+)___05VQ\)OJ?6Y7SY(BB_3!W]+,=Y#K/J |
1921 |
MX@F6EI,6DX@HG07-'QOL[^;NYA\\.C@D;P>L<["XY*9K?F53;DZAB/=AVW4` |
1922 |
M3ELQ>\6TZEA"[V+H13TBO'@J`"-&!?N[^@>/"KIUZYL[)#Z&,"PIV7\JK;B1 |
1923 |
MVU*2?'Q?JQ%"A(7MW[8654_[A,0\C;K=.[)X$@3"IL*LT<'^P7]]S,W)SG*] |
1924 |
M@".M@%=3S"S.RBO*9V^XGI#\[.J&PSF?J#7ZERY=/*ZZ++^PO*H\/[>H=!R, |
1925 |
M,E>O<1@6/,Q^S>HUY!JQ4\!>Y/LM]?$)3]*3].![G@R_LFW9@F7;KMSP]E@# |
1926 |
MG#UBI,9(_,4<*1\Q<N0(F`=#GAX>J\T</3P\809ENR]"&;'1L3%D3`O\>5]4 |
1927 |
MU]C44/$U.OJK!!'=<40FO64>7EX>'MZD-\-3M1>9(@/B,'&T@[<Z>*N#MSIX |
1928 |
MZW\^WOJB2J9X*^H^>9^\IWP"J]U)L+_*9&V2##!EMUUZNU0;@;*>?B0_"IY^ |
1929 |
M?'>1*^`VU5Y\]_$I>'FVHHH2Y'J'W`F^?>OF]6NPC-0__[B!E[\J_OGC%4+_ |
1930 |
MM%24%=?^@]`KH)36&O@`I61+TO]`W@#DQ7\N4,@7Q:\+7R`4T%A<7%@=($$O |
1931 |
M`%GX"#Z_D:K'<..E2BYIY7/JJQ\#[EG1RX)G2!50^Z,@KP+CG@&N-`X^%*X5 |
1932 |
MEDU2A0*)E9;\+,R'!9>+JT(!&EOP/"\6*<]5?,O-+CXK1K'TX56V?@3(78`4 |
1933 |
MHT+TI?%IY;,OI2$`B?SV-#L*R<\4?\G\].-,*XJ"&0*50BH1"EL_`('=1,7% |
1934 |
M/POS4I_%Q4?XNZYU]0\#`@O_$OTE#+6=S$]+2_EV4HC"\/A,K%+(VEH%@M9D |
1935 |
MH)^KJ`C]0"EE<96!.]]4WZI\L?-R'-#/_?0G:0^0Y%CV^_?O,H_QT0/<`:+F |
1936 |
M5CZ_1B+D\T5P9;OI8FMV]M>/D;%/S]YN4RASY'+!C3.`#?[P*.D.:CV:\>KE |
1937 |
MB[2C7'0'G$"ES.;4-62(^%RN$%Z/HCH73H:WA/F'E3[:KT2JM@D*F;)U'_1Y |
1938 |
M2]";>V]N(('_AZ=QL>_9''0#O%\NBBLO*HL0<#D<X1O`GVPE6Z6"P"M11U_" |
1939 |
MV%II!E>KE$\A;+5<?G[K62#B^KV)B'CRRJ\!708-4M$_W])S+_`X34V"EUA# |
1940 |
MZ^G[?'[+I7-EKO5PT69$*Z]9F><&\/,QUV("4-/!%Z&A#^(/UJ'S`&\5N:>] |
1941 |
M3'-O:6YLY,,UI4:_C/N<AL`S3]:'X_9_VCEXE+WXQ'J`GWQRZ<EQU'`@-B3D |
1942 |
M3LR!:NI]'M28(TQUD_*!&Q?)B_)_+EQ3QV[)K]C]``YLR@R]&2KS/V,W6X[D |
1943 |
M;3SVK]B=1`ERIUT-O'#NY)&#>[VWNS@[.4SY(XH?DF6D?^0=@BBNC9@0O>_1 |
1944 |
MB,O_8,2AO3NW;]W@9$\A_&\=N,I&O/WBU)3DEGVE=!ROS80/'<=#H%'P/AZ1 |
1945 |
M2MX&5\%J*TN#Z#B^/Q#'\5V\I/>)#3[J."ZJAP^-O`/(RU0<S_^>D_4I[6/R |
1946 |
M]Y)`.H[OACCNV?CF]<L:SU]Q_'W%36AF`%*I\E&N,JWJR<_(CP4!=!S?B>-X |
1947 |
MG6OU\X3X,M<?=!R'2XO8)UL::FO+KX,;G%+DYWW/S4J,#(L(W;MNV=I]]\$- |
1948 |
MO*DX7K&Y."8FNF!S'AW'Y3+<\9A@ZJNJRJZ!.1^1?D,YRM<%X47GMSVO]JB( |
1949 |
M=SGSA([C;D=W*$K6Y3\)#\M9ER/>#FBII$+4POU17U-967H9T`=;/F6DOPT- |
1950 |
M"S]R32Q7Y,MDO$ML0+O@..XB+W#\$OK@?H8#'<=)D>@=OY[SLK:RK*PD`#II |
1951 |
M=R`CD.L2DA_BI50IQ*/D4IG((YB*XWNI.+X\-3CX]H?E=!PG>6VW6RJ:KU>5 |
1952 |
M%Y/%JK-@BY[<EI:FP^=##\2KD$HZ4"&32J/VPZ70-=Z.$,<7)UXGK\O>+/I` |
1953 |
M!7(QI]FWY2=G?WE)$5E$O2^FT?ML4U.=W[&"=;58@7Q(FY`KRUOW1R2?_^+R |
1954 |
MY4O/K!.;5D`#ZD7KN?DMZXH+"PH*CP!\\ZNS=56'_>^O."I%RG<+^@];VN:\ |
1955 |
M@HKD6Y9N6L)-FA47$'`^>M;+6BJ2NXM.\+[QCKMNVW:]P`_@SE4OSI8=O_9V |
1956 |
M78U*_GE[F8`GD'];]T<DGQ9Y<.G!\&EQ5?-AN4B>*H='\F3(,3<?TCZ&$V?' |
1957 |
MV?-_K]H9)Q=Y\@4\KEP4!O;4,A-'\9EUSZ8<M6$O])M"1W'%&L3+)K/;>,CQ |
1958 |
M:U;>+CJ,/_3D8U;C">72!H_[@)QJ-WO%U.K824MNA`8MF11>;`6G_/MJQ,O" |
1959 |
MN$]?OW[S^AW&V=>:A&VM4F'=%385QLV7_6UK7O5TS?WH^*B0U4_:P_@WO&.T |
1960 |
M^C.$\1TXC$LXG,I"9F%.[H_\DUN>Y.[.#=]R\EN:E`KCBQ>/J2G-_P%A_%MA |
1961 |
MZ1@(XTY.SBO1JHU.3"?Q6@CB7U,>'O\5Q&_ML%M@M^-6>Q`?/D)C!/YBCI`/ |
1962 |
M'S%B.-R;#4'\@-V!/X)X:E1D%#.*&QD5E5A4V]#84/XE(N(3_S\)X1WTU4%? |
1963 |
M'?3505__D])7QPBD8P3RO_L(I%#UE?*!ZC*RC"Q55E(A7*F0P]N3Q*TB`;\( |
1964 |
M#DRGDUXGE0XXPOTWY!OY_3?/\N`.S;QG;X!>=#(5-?Q"L.9.\-:=$4,'#^S7 |
1965 |
MV[2G87<=RDYP(A")!-\0UHJ^"5`D6&7V7?C`-&(FOX!&C@'D$(PT,3(TH)#A |
1966 |
MS2_KPI$@"\GE4I3%1^&`#)H`'[#G3%X^M.T+3$!^`?E'=<^K'R%!)I)*)2B3 |
1967 |
MC^#,2:^/@P\M_QWDT_&I8?T@\^4%?)0&L'M53\ON(4$ZPL>+TGCHGOJ0>-D@ |
1968 |
MG@2V_P/]4.;4OBE-J90E`>1V<?3/VXB?@H1"`4KAHMMPM9R;B>65K]`/Q@]A |
1969 |
M?OJKEXG/C[DZN1Z+`:L/R@_/OXYX[Q"/UX+>M:#K%`"XH^DI`NVI12]*@WS> |
1970 |
M-\YL?.]S_168[,6O#[Y>0MQ7B-/<C%XUHTMP3VUY0WU#.6Z?LB45L!'BG)SL |
1971 |
M]+@7KR^$R)6H&"%Y"(3?EK/I(6GG$#<!-3;4HX0F=`ZP\1FI&?$4-HGB@70R |
1972 |
M790:&%T8@_E3(1D#-;YP<L3'W@6].XXX<:B6K)6AV`9T'.#^H2&AD$LI.92O |
1973 |
M!,.;$951MUZ>?(.02C80:MZ`6;7XO;B<X(>:(E%5926*K$5^@%[,WL=>##+- |
1974 |
M8.>\D$2$E!%7BEP;$81GJ&BD['Q/[/F8O:CA,2HO*T./J]%>``]T7NE,[:`Y |
1975 |
M'JS\4EDB4D9=>;W.7HI0\H3^PY?)YD!T%7N&GPSS1+4/4`E9(D,/*I`G>,D$ |
1976 |
MV1P;2YLY$\@)"I^F&%!P'I4E*I_%_(2]?UU9A9N`Z+UONW?DWE94=1?E1&>C |
1977 |
MNR4(DAN5APUIHYJ"OV0>0U!C!%;`/WWJ],W$]^L/L/&Q.TC@M-.'[GS#]Z8S |
1978 |
M*@^N#W\;5A%<A)S![@9YV$PF)[?9>`R0H89'.,:TN50\Q7W>!LM\^@+3MJR^ |
1979 |
MON_::E1R*SP]*_7)S1_($>A)W,?#9I*-1V\^0@WW?\?G\P^5@$7*A^>I^+S\ |
1980 |
MRI[`Y:@T]G-116%&;"%:3L7GYE(C#QN/'GGU]75U(3@^_\C.S4QCIN5\^)Q[ |
1981 |
MR?-%I5/E"\]+7YX7XOAL<^GRY46HC2M4((60VX860GP^=<JOJX?^OE/,4^(S |
1982 |
M$)]?Q`2Q?\7GT'UK[=;N#VV/SW/F,N<J9L^9,Y><*YLS>\[<.>TA>H[^K#]" |
1983 |
M=-R=X#O,.]S@.W?BOE76UE47I00'/\O]3T)T!SUUT%,'/770T_^@]-0Q@N@8 |
1984 |
M0?SO/8(@]-`@0@6/Z:K@5C18Q[L+TB:Z4B^R^;_[6RGV)EB_MKLA9;$.P?RU |
1985 |
M;8!4S7]L=L=V2S#^V%2*X':Y]FU#I&+\ZZ;&?WL3@^$Q0?5V)T+!Z'0#7M)S |
1986 |
MY;=&K(R$)<:-J!M+^7![)8FZ(!5(Z"&2(2.Z3)EA/H8Y1O[7A!5-N'_:FA?U |
1987 |
M[4)H=(*[-#O!C=RZ2&)*$AH3IYJ/&:DQ4CYAP0,I/N=BZ8-IHWHQ2#UC+%AK |
1988 |
MK$<24RPMG83.EI93\`^K_BR"Z-S-H)L!:5`#?WJ:39H]_^^Q?0RZZ6D3&CIZ |
1989 |
M^EV[&QKU-":-R9YBG*ATU=/!N]+7U5=I$Z:$C&3`@X_:&B13R2`QA1WI.'T= |
1990 |
MI^__W]-WF#B%VJK8^P\<V'\8]ZDJ^K'>8U4T<*$IH4>P8"E@;;C%20O)HQY7 |
1991 |
MJ9`VDJNJ'D=`YF,Z36>:XMK`:?#2`%]<@;^TD/*?PF:]9F7A/R!!,'68BCB2 |
1992 |
M"1('\-F1**7"YIIB=``$_1L:]1J5]9`TZN,="?=!HBCF-U86H7U0SZZKUZA7 |
1993 |
MP1=9IV)3ZB1Z$BRX%\FQ'*>VM`#G?UI(Q*ZIJ:7_U=9HU%"B/(+;_"K<A>L2 |
1994 |
M_JJ9^\QS$FZ`T)-;7U-56O@],Y7K`1D!NTJK2EQ=57%AJ&XGTYZX=1B4%.1" |
1995 |
M<`F7H"3NN'^Z`FAST9?/&:E)KQ.BBS91H`KM"F')<N/ILZ>-TN^*\ZNF3DUU |
1996 |
M=2L0"KL2Z!48>`GG#A?.GSUSZN26XT>OP;-U/JH5R5K)@G>[3+;8(61EJ=L5 |
1997 |
M$=]UOE?F^)D@=*U1D%[$YV+ZKZNMJBA+C0\Z?/PA5HH[DZ]LZ3UG^0R$1H\; |
1998 |
MH$655$`)0E>;^8W/[\.[BF[#JX@>?7.9>$J-D<O+6?-PJ^4#&32"VD97F_@\ |
1999 |
M'K>%TU1?5U-97EI<]"/_U*-V1`EK!B#ZD]2VA-I&5QJX#!P3J7=Z5V!$(4:T |
2000 |
MMTM>TG.\U6B$!@XQ9JGW@DL0"JSCM+0T-S?"N[@KRG!V4I!W\A>F_$27*>,0 |
2001 |
M&C)(4X<J$4$)0A=*J^?-F\N:2\XA9TMF97\]^OO@B^?K]1O0MZ<6BZ!*A%"" |
2002 |
MD/N]T-G'0L\SSPO.G3T=<GCF]6N;*(@.$LCKBH_T9K%,3Q)T02LN0&CWLY=V |
2003 |
M<3(-F4`JYC<_61H>OB,4JCLAH;REHJ2DHD5.T-MB>0M"NY[Z;/,]Q#K$."@^ |
2004 |
ML-4[C))-T4U1)2<QDJ3)*02]*4WN?-+'<YM(5R01;-WJ>K?S!8+3E2-]@8@+ |
2005 |
M^)<>1W;@Z!W/S5O(+9+-6_`'OL@MTLV>=XX>""`,"3)`GY`==(?$E_24>'AZ |
2006 |
MP"\/*GV6>;H?W.[I07K`1ILGG1U3FS*<)?^J$:IKNOMZ>$%23'I**26>^+<4 |
2007 |
M%_EVW^O)\&1XPW^EAY<W$TN0>YF_2W#F<++#ZSN\OL/K__?S>L[E<^?/G[L$ |
2008 |
M7O_YBMX5U6?P^LB[>G>QU\<F:B>J8N$!KT]7WJ=V2E6\OY(!+AB9HI.BJ(E/ |
2009 |
M`8]^"3[_$EPUOEZD)U+6PZ21ZNX3G2<*WKDG(/$<:Y2JY&TB]!S$'O,%>@(E |
2010 |
M_S&(A03K!>/]/`4)I4PB1$_!O1[Q]'DJ&*6I@A'.:V)@Y*2$MW^@&*JZ1;^% |
2011 |
MJN8%*V0EQ>&*\.(2F:(^]QFXZ@.Q$%Y_TE17+7Y`"3<SFP5-S<WX7V/R"6\O |
2012 |
MW\/@X[<5E=_#]RGVA7^O5#S)NPW`JU6E)7ATF_\]I^H*-/-10R/9R&EHQ)^& |
2013 |
MNCN^V*O/[SF`T.VV3FUUK;<1>O$P]$AHZ/W[=ZGQ_HV@?=>NP.NGR*LJOWRM |
2014 |
M?,'W*-^H8.P/MW<=1+?J=.HJJY]Z(_28W_:]2B(644VLK\M-3GI\[1E"]\!T |
2015 |
M%7XW@D\CQ+YP>B>ZB6VQ:M<EA!X))(*/<;&QT5&13\(?/TXHN;C_!@;<A6?[ |
2016 |
MA.Y7P6E/N2+(IMLD&R]0\J2D6=PJ%/"H/6`O+`=`"`#X[H$`..F*@@#0NO$\ |
2017 |
M0@_Y8E+<W"H2"'@M'.SI-96_`0+^P8N!;(1\SQSW4D-VXA:&<D6DJ%DH@%T` |
2018 |
M9U575I0%84@P0(0I>V[C=IRYM',ON@9)OB3)G<HI:_T/^/H>\`<["U^CMT85 |
2019 |
M#G:VU4'/@05+A&K#O2OP?-N:A-0T[31Y:L(:R@"V7M&YHHAWN0)V]``L#4ZJ |
2020 |
M\FQ>O5:]JJ&>4:_,/PMBJW;J[%1D3-L)8B$08E2PIDX+[B=LNP=Q3DC5D |
2021 |
M;1L=(@X"9,5*O95XU[=`6B%K$_$YB&J!;V55525925:1E:JJ2F8ECF=8>F6K |
2022 |
M7BL..E>14BF#E2::T%6P+M]R1CE9QBA7E963Y?*R\C(0YMEQFK\K,CF9BN_- |
2023 |
MG.QG,)LJ/,EM:FRHKZDL_<D]"6WR+2DI)HL%)<7%^%_1R^->G@=.@F':<KZA |
2024 |
MS"!.4";ZQF$G>`%T;]'W;[G97S,S4HOV4/LL8A:I"HL81<*"FWYW0VX%'<"G |
2025 |
M:%%]I_JZZCOM$0A>7!/P+Q'(3;7DC=8;P<M@O\^1V'Z>[3V&YN?HY%1^#?/[ |
2026 |
M'8&:&JC8D!:/:B`"S:9)^-#CR),(^=VZMHLJJ8`2=01ZH(Y`03@"93Z%Z#"= |
2027 |
MCD#N]\'2+KM1VQ74-KK:R./C"-0,>ZE21R",F$)'(/>[@+CD2FU+J&UTI9%+ |
2028 |
M<IMQS((05%E>4EQ40$$FTB'(]\Y=W/A]5R_MI$HD4()=KI[#X&#(OX6@,70( |
2029 |
M2MC_["96'+;;CRH10PD.0675\\AY[2$HZ^M1S/DCU2$H:-_E?P("]FPFJ!(( |
2030 |
M04$0@A[2(8AQMO4N6QV!S-01*/[PCAV'7P^A"]01*/[5\C@92R9L:Q5%+7U" |
2031 |
M!:"!?P:@0?3V?RL`]4W235*]2V0D2M\E]:4WI>_^/0#U:NS:*(U'O2[@7WJ- |
2032 |
M\@-'0[RVZ&^1>87@D-/#L`<..3W^AP@Y'530004=5-!!!1W99T?V^?]1]EEW |
2033 |
MQ/?@05\JY-SJI==+!0\`JIJ;])I8L!Z@-MS7@`G_1B_K:5.UI\JG6?>"&Y)5 |
2034 |
MS:!"V@KSN45@:$5P:@ZF_F#^D!7^@`_CA_(C%4(:05*>")+Y(%D`DCN^X3&^ |
2035 |
M+.][WC=XM%#54*-7@^MSH#X'K&-[-IFMRLKNE*V">WY5-=5ZU2Q8,D0;OK10 |
2036 |
MZ_;,SY\S/U-?S,]D)B7%JRDI"SLTH63"H;"RDBIN)5P5?L'E:?*4W)>4SC1F |
2037 |
MFB`U+0W_2]G76Y/530\LKJKDJ<L$HH28X/*T)+O@&X`>%/W4_*DLN@\-W9[\ |
2038 |
M@?S`2?Z`/\GOIM-#;FV$*@LZ%=1]G_,[DERD(LGI7Y%DF6IJF%:8X.'ZSN.' |
2039 |
M8R;JP])&Y4DZ296)VSLC=+T!1Q*P@T:*?5/C719!)"FCN=1PX/#^"/4TZ:I! |
2040 |
ME51`"4Q2"!I?P+3&'74DF6`*)%],1Q+F0#`@`Y+:KJ"VJ4C"AVF-7Y&D`!`_ |
2041 |
MZ4C"[`^(KB2U+:&VVZ<UU(&$GM9XA%`1'4@,3/KT1,C`0(])E4B@A`HD)`>[ |
2042 |
M<6-]>R3YD0^1I(".)/[:?;%0=P,-#:I$!"4(!93!O(;&7(9Z7N,()N]\=229 |
2043 |
MI=FE6Q==IB5!E4`DF?7'O`;C7.L#?QQ)-N)=?%='DL/&3&;/XSET0?NT!D02 |
2044 |
M;9DX5CVED?MG&,FEM_\((]J'Q+Y;O2G)G&C=:%54!"-"&A6=0V]*H_X]B&05 |
2045 |
M=BV4WD?9%_`OO4(((MXXB$B](8C$1!E$R6,"\%^]J/\A(DF'AW=X>(>'_Z_L |
2046 |
MX1VY8D>N^/]^KD@H!]:4,<OT"-5!N%7T(,$DE"]KJ#?=ZR)M0L5&^DAU#I:% |
2047 |
MJL'UZD()%$K^M;`;8A+Z_^EO%2S`WKYI@!0O"`)U1B2A?*""^Q]B<&T/I'2C |
2048 |
M"_%^NB*Y"EY]8HB47'5A&^J&%#WI,M5_9]E_#;O]OU+&4)?)?I=!<W&)]#\K |
2049 |
M43"85(DI`]:&(YGZ2$[...=:KU\O<STW@^P&A=WTD8PUP/QO:SSDEEC/PQ_X |
2050 |
M(N>)K?\V'\`R&;-@P?PN\]L6C#&A?G::+R.UNAAT,V`:R+L9=(._;=T,NFB1 |
2051 |
M),O`P$#.@K]Z!AWGL.,<_L]_#OV0:AO!(G!<"(35D*]![-IU0N.$XMB)$[A! |
2052 |
M8L+_VL!I=1733'%"JH@Y?A'3I>+V$UC04>0+=[RV\;YP]I_`W27,???NR=ED |
2053 |
MDLG-9\(JS/*PA\="<$B2QX27P6V?*GB6L4W>\K$^%<MW0K+WBNSCV7C7FE@D |
2054 |
M,006JY'?JXV%)W*5^Y6PI*",DU577;T'9-_)`PX=DFA(J'>F".,>Y)_&\2;L |
2055 |
M=<V),"PNW*N`6\7K\V[^<WLOY"WOI(VYW[A<`5?.I=;2?YCX\2Q"D<UWKD"& |
2056 |
MM$>ND$L$-85),5]V4]+*QHK$J\-T.PVZ!&M)2Q[FW;H=7IY_!E9LW"T5-C$9 |
2057 |
M3(:T9M<>Z!!-+([D7S+H*_)Z(/XDJL(Q@GLF`(NW[)0TYC."_/T9%XIWYE+] |
2058 |
MPD("#.!?^W4Y7@M)'R6XB2//X5USO$1EJ8P@%W+-C0JO'+IC-`"@$I?\NAB/ |
2059 |
M`:_<Q)7'KP#`4_#M-2.(=-&Z5^>90_>.!NX=A)3UD(D/9(!XVMO&MZ>"07P' |
2060 |
M+RV&0:[6W&9:ON,KW3TX^W@'ZT$*0;X_"?(OFJZ<C+@$\MLYKQ\R]A_=U]U] |
2061 |
MCFLFW4%J>;'DUU5X321);DQ]\N3>BPA\S!RWIL:"UQ\+TIZ8GQB77I2=VK3K |
2062 |
M%Z;MUU5X)N)_>9E04AN'4/2;MQ&14?#^&E?N-I=-+JY;U]D-7^>7G?&N<>=O |
2063 |
MY*_+\=@.,K^^2"AJ>0OF$U&:%W4O(@Q.FUOQAX2'GB'WWK]H\&K'2:3M%^6Q |
2064 |
M;"[Z@&(?P>W6;?$/HE%,6"S`<`]F?7A^-3(RML[S-ZS]XCS>6RI*PCE``JYK |
2065 |
M>W[_'8I]'(./4HA[,C7Y9>RCB+":';_Z4);$2%+`A7H,^QCR#CV/*L0G7!KS |
2066 |
M',4')P`*]^>K%_&1X0_O5;G#B7JO1$C&87"JX>H](M(2'CT.?5;):1$(.(V5 |
2067 |
MSQ\\>OPB80@HWHJ%FW''-C;4U]765%6Z!79%J//9G'>,=YI$70`B9D5%A!^> |
2068 |
MX'PF./SQI2-N2TY'/(FDEOE4[HP(8X:1&V7.&S8X.Z\GUY/K5!?ACN+]I^*C |
2069 |
M&%$,G";7X(P9$58/PR+CDC.^E926%N9FIR>^C(]\_`B.PV/G3F_\SX?T(7>J |
2070 |
M?':2._D^>`N/W.C,W)-*FE5[D0F2>GKL\,+_&%ZJ'5Y,+W*[:C?<-N[KB7-O |
2071 |
M;W2H@U<Z>*6#5SIXY?]Q7M&ZBYT^%4@E'4CE>;)&LB(I.9DBE5=X")X2F1() |
2072 |
MI/+C[0<@E<^%A<`2B:!#U58I>YT,I!(?%!2:)#[WI/3FD[M`*M^_O85E0N0% |
2073 |
MA2*8OU/!4QE2:86T&8MCGK@EY:4(@S6"52$@_*/J:PH(9[459H#P:TJX3BJ1 |
2074 |
M)(!P$$I[_QY.9C"0RH\\SOM/".562Q)S0?@%"$N:TMY]>`YV$X0JOG]7R/CY |
2075 |
M>8I@X)3LRLKW"/V0?_D`!_>,&NBW\LKR2I[1TI4E7]/]MFQR3[L-))';]"D] |
2076 |
M6]3T#C@E5J64[-O[?[!WI5%17=GZWEO%+(@D:6,28WQ9T<R=:#K=FD'R.MV= |
2077 |
MMY+NSGKIV)W5Z3;:2DD013`:9W%@%@U**2(@!D%DD$)FBF*>0:9BK$(@18%5 |
2078 |
M4!04-=^Z][RS;PGZJ_^\7JO7\]4?J'O./G?8^[O?/O><?<[F';#,B?)`'\X@ |
2079 |
MKI)*]YX]&W4F`-8'F>X.S<5)Z<IBX)1<QJH^,-#:>J!L*G>44POFE`0TJ2C- |
2080 |
MO(10C-`_&-[A]H%4U`$WJLFBC:,'!HJ_RVG19OUD5PR?:S#>=PE_$>\//R&` |
2081 |
M!GUI:*:L!!ID6.?D!_J_*SXLU6?\9%<.AFH".SDA`XXX_@V(#X\9)"5E()YF |
2082 |
MT?0?^"[C4%F4]L:873T@SDQ,C(#X,4Z\SUQ=4L;=3JKI?L^!FT59)RMO)(_: |
2083 |
M]0.W8QD?'XG9C]#>T",[@%$J[B:GI<5<30)&238:)SL&)H=J+C>>&]7/3IM$ |
2084 |
M7!.S0C$B#$<H-$H0"(32D)==(TK!'^^)5X674X!0DK17$^(3DJZ</Q666Z_5 |
2085 |
MJ(RY,&B08!P;&\;=9_^_./UEP<U=!J,E9O(S;1F9F1PBSQ3XQ>_]8[P`$"DZ |
2086 |
M$V=W<X7@YM+L;J['D)P)B,R.B8D^)_T@^/J&X,T/W%PJ@$STP,VE<E#0]^@5 |
2087 |
MR<!3UEBZ^VS/E_POV3^!=%[E@J>[PWFZ9,[3,?,R@WY>".(QM#`\W,`WL%_: |
2088 |
M/9TT\BI"-Q<\70+V=`P]-RK*P,;'.(NQW)=V:Z:;S@1JON`2)(NKHQ#*GDJ. |
2089 |
M`T]WD688VCPSV=W8?I&3MFE4=VO"]@3NJ_X<8/9C5\+E].&N"*QT^IS%JA/P |
2090 |
M!1;EN7A0"09E#&N2W;-'$0#$3&DY`U_?5D<<!U!&F?2C`E:K%=R21W5SFL&@ |
2091 |
MC&'UZH+%$`*,@FMY@;H?3P`*3NNU4@';ZA=6.G:ZSZX:/C0P3/<N!A#@!EF[ |
2092 |
MYNZ>.`P-CNE4'0+&K]6_?O)8GUTY&&4QC&Z6`^4%>$TL=XKE0<<.@OCW6D6S |
2093 |
MP._@SH9]HP?[[-H!<7KJ_C"(Q_F#>,YX]/'=AT`\1#-<+XA+O;BK*B)8:E</ |
2094 |
MW(YN7#&\&#:`0;G5W_N#]]U7OPZ@#%)C-]<PT)AUL$8@U4PJILYQ3;2C(T.+ |
2095 |
M40,8E'M^Y_O5&Z\A]/IS*Y]Y_BU\$LVN@%W^?OX!_ELW?QUY<V)\1!W%-9R6 |
2096 |
MR_L7HP<P!&(_?O:#71]!JF6SS\]?>]KY"5^PV%%Y=VU!0F/SB%QU&H;Z8E2# |
2097 |
M`]*%&`(L^N=7OT7+W3Z$GQ^Y/(D^7+("6F'EC0]U5'3W#$P>XUI-]O5V+L02 |
2098 |
MX&OYO_MWA%S7@(M[V5F`WG5["YP5UN%/(P-=[5*I\B"G/>780*^$DM@@K`"W |
2099 |
M^NO2;]`J+R!6R]*5Z+>\U=`(:W)8/MC;W=6E`+]O/=LS,BI74^IQB#5`Q(XW |
2100 |
M7=U<?KW@X3YS=G7S>771P[%!:E)-JG3WP<4%V5U<2@P5X_P4Y^)6+5W^TD,7 |
2101 |
M]_;37L\]XN+8'=O)[>0_S%NW;<.>[M_6=79PBH-3')SBX!1'M]G1;7Y<N\U3 |
2102 |
M3E,N$#KK_"#,]NX@?]#6CV$'B(RR&-#FE]`T(++D2C(@\F9=.;BX(4CF:S., |
2103 |
M,CV#@,A7">*U.)L$G7=#:@!98<&53`!9<>TXY/AB^SF032"$Q3'(>#6=UV2P |
2104 |
M;DL%PF5MV;">G[ZMEL!F!DP/"W"WP.X?K2!-S*0D)8WSQUDE0+*THB_I!D(B |
2105 |
MZ60BS+HR'9RT6=/16-L.*".&HH\>&Y9+CNP:AFQ3AMR6^B2$))KLJY"UJ9GA |
2106 |
MI(W*86DS)RV+.AET>J43;\DI2%UD*NR]>?WV>"],7-)U-F3F\7F6F=I*4(@S |
2107 |
MG/N'_<'VP8O?@'1FW>#?\J<2PP&2$AJI*<&GGU+B"4D?IQ<,2:(_-N)+>RR% |
2108 |
MLROGKTIWZVYQHT,E%J2@_-ZA_/JF2F1VS6"#$M+HL(.+D13@@O;-M<4?AP;Y |
2109 |
M7`/J'7?5?+[<KAR,,:(C,N(P8,R'&^VYTR[?_L/W()YMPN)4D.M':Z=SY';M |
2110 |
M@'C+Z5.<N+=]<&@B)2[@-`=X(Q:_)1&MW/Q)VK!=/7`[5<>.'5H,H,"0_'J; |
2111 |
M^_KUSD^\"%.JUPV&L;K.G[H+-@1^-@H\:ZCEVI0?.G1@,7X"8W+GK]___&G\ |
2112 |
M2/_AZ;7LJ9?P6:B4V41A8DIB[-$/=UQ@$-)+N'9%^_>'+(918-:-W+1BPY9G |
2113 |
M/(!%W)<M6\KS>!<L=GMLM*OZE*B=1?H2<%5$;DA(T$(P!1;]?,TVY,E;!S_? |
2114 |
MI=S1.B<O:(651\\JJ^_-XI]<JUO!08$+<17X6EO7?8D0]0PXN&>I+>A5$IYP |
2115 |
M'NL0,<8Y-8UT.9SVLI)"CV53V38(LL"M_N2U&?GP$\#!.7FC]X@G8&(9:Q)2 |
2116 |
M"],T@^8RH!6U#[]^@]2@"4(O$/'U6I(D#;]:<'&^^,A&//?0QUTWD`92KYO7 |
2117 |
MZ>9F?[3[N.<@T53N1!XX.1^^Q_,/G=PK'GRO1YR<,?[BA0MQ/_QP_GPL&?OO |
2118 |
M&W-VL(J#51RLXF`51]?9T75^3+O.!.L!6[LITPDGPN95!OEM;1[U+H0+@<UW |
2119 |
MG%A*,"0W5::$>C]4`O5Y*!C7NT&]!\&V@:&A&G,%NQ:_B_0;+.K%`NX@X$YX |
2120 |
M(&>"KD-(09"$E;R/4`NN\T`>7,4\ED7'"6(/9NQ7%LM="(,8(9IPIA$J(UP7 |
2121 |
M2XU\V`RO$6&N<2.\X/3.]@@:;FYM#RY<"H40#L-^"^E,20U$.8[BN_"&"CY4 |
2122 |
M:/%EV'>`%-@7<<4R+GJ&97&I936^&>;)1PN="3/?B'\@[<-2+>0S)N6(W;Z9 |
2123 |
M14WXH@_*=^%GGW6JU^-[["0(?)?S4SGX!`]J8><:S0LV1+/(1E(D:46L`5F? |
2124 |
MY!0$`A1A<K:@()X)!3I13N:_8V;\/:-_M#H3)9$\-.KF07H8W=WZT;/\_2@1 |
2125 |
M7WY18!I]1DZSR[V\26^CEZ<G,^OT)M;Z@@#-(\@>K`[#[J=6//OL,RN6_VPG |
2126 |
M/F)JN720)*<;3+:$C>3=A4C>983+S]2,X<1;Z];SUYO6O77(P&J6N6)9L_L+ |
2127 |
MJU]<\\KKD"CV#<AX27J_O)':R/]$^5\_7T'P7-RQ'UNQ<M4++ZQZ_OF5SZUX |
2128 |
MRGN)"VRC-.:Y^J6U+[_Y]B]^]?Y''__NLS_^]Q>;OUI'$03_Z36PK9$/WX=Q |
2129 |
M@KN8X[EX>"U=ZN6YQ,/=U8F"?+,4C^21?,J)=.:YD*Z,"^2:9)P]O"@O!WP= |
2130 |
M\'7`UP'??PY?/EJ+K*$G3X4+T6ID"5.I(L\1R`?1S?FB9EA"6UXFEIS-JJSL |
2131 |
M1E[((KE677--@ITU9;98>F,Z;55H"3(TW,KJOR>79MUJP-T,IZ.V\W0E!I!G |
2132 |
M&1_QV^CNT9D2C#FR&D.PFH?8JFJJFJYI:($N#EV?=[D)BYJ:$O+J$0H/L6]) |
2133 |
M1"%K^:4B+>11)CMUHDMEZ/)[5IAM,>IUI(Y;LFV-')C5]F.!Z?ZVENI(])7? |
2134 |
M'ZS8+'KU2(\&HI2,89I9_0#-L/CE9.\CEJ$']+.:,'1GU?&7+6B.I[C7K8%L |
2135 |
M%[)3XNZQCAF#A;::S5;:8ICI&.N^>0K5;5D5M"2/HGID'=/?@]R)R=B,%H5* |
2136 |
MJYO5:&9U6I6B121L/(&DWY:[":@$JJFO;1KR+LI.(E/=F9+>H>&A_G[\I[?D |
2137 |
M;/[(Z!$D"^[?0_DE4#5=$%V#Y0ZB<;.I]&)]5_U%^!-_7:::'#V(AD.ZJ=#0 |
2138 |
M!*J<BZ6AT/A^U-DY8M;'Q46VMD;&10VI1GL[A_>CT4`*\PQIH>Y4E:@@.0D3 |
2139 |
M@AJH!GW=R=QQN7P\-[2JJ8%LT,I#D&)G3=S9Z/"+MTM$DT%PY2!6+!:%GNT9 |
2140 |
M:&UI:1WH.1LJ$HME04@9(!?EY69EB_(RE9`3TK2;R0T/+I%6B_EB5;6T)#@\ |
2141 |
M5[8;37+Q,(6BG(Q4!:QLL@1T;Q>VE^6XYG24M0NW%P>@B@#8<79""8'Y`=&Y |
2142 |
M*-H_?L*LAR4'*EBZ,S(LERMZPORC<[=1VVQ;MVW%_RP[(G0H8ML6GRW6;1&P |
2143 |
M&(6_6P_?#0%"]&"-"H,+77>;N,*]07OV.NTU[`[:<Q@A[L.!W,O@,K>]-%>V |
2144 |
MQ@%G!YP?)SBSE;5D+=L(>&Y`J*F>PW-[8V,KX%GYT_ADS8V$A`+`<VM#?6U] |
2145 |
M,_X$MAI;9IFK`.;VQ@9)87YQ36TC@+G*UH02`,SU?$1U6KHZI7(SMU"F!;ZY |
2146 |
M+8S%J&NH`?4W-3>1371+^U@4X+JIIA+>!1W4:QLJ)#4(B;@%F!V`W;J*VN8& |
2147 |
M[.7FN.KIAAME995(S,VE]T%]:5-+,VQ6KK77JQM24[)+T24)3%VS4D!%4?O= |
2148 |
MKAH;=F4VBV%..ZU2UM145A2ABM"ZLS"V`?9CH7LC*Q@0UY7,FV&;N)EI]<38 |
2149 |
M4$EQ;E<!JB\^7;;_7F"@!;$(1G)D^7,)U_.GM'.STQ,*Q=AP?U?^C>+Q?-1> |
2150 |
MHP@I"I0'SB,&P:WK\Q'='7YW9.3>H+2+[%*U-Q5G],_K<U%GL^%.8*$\<`[1 |
2151 |
MJ!5.F(T,-GU7_MWNNQ7BID;)[>99DU&?C>5T@>WM\D#\:`@6IZDRT<R,WF;* |
2152 |
M+2D?'R\K*-2:]+,S\YG@8B.B8V(Y3CHWI8Z+XVQ8FYLCP5JR2LHEU>=CR!@V |
2153 |
M&XQ8GE)<F%SP@)0&XKOH6+!C?69F7759T8VT(K!CN.T2#4.!GIF8E%KHSGL: |
2154 |
M&$AD*G)P&9/#;>(GJ:0JZ:JZYA`PH#C[$H1.FD3QJ=D(I5^Q[\B";2.*SQTJ |
2155 |
MP#6S!9>OQJ4CR8E'B"F-(Z9F^1!\\4^77+IX)1)%W([#Q,1:]%J5)I4CIOMJ |
2156 |
M3?&CQ%3<7%<5AC(#6X]8D'ZG9N:^)ME.3&V#.8\24TYI%B:F_$,A+8'5`L&( |
2157 |
M9G+ZBIV8HJ]E/$I,&0DIF)@JSI3[MPE80=^4<CK>3DQL\ZY'B*DLIM6$B:GJ |
2158 |
M;'^<H)45]$PJIL[;B<G&ZH"8FJ]?;^ZJ3RJ:ULQ@8JJ,ZA-HM:R@8WQ$'6TG |
2159 |
M)H/!S!HNI`@'!X4IB<II[;P!$Y/DA$#@1_I9!*VC,M49.S%I*(U!%B<V6ZUF |
2160 |
M<5P_/@)>JOR^)C7Q2L*M=GG_)&Q4:`QB)R;Z$Q*5^EEJ]KY>F9C0/S&!>:GV |
2161 |
M>UE+2U-C:V^_5'G8SDM#Z:=:M?<G^!.J^]K64^E#F)=:]VN&Y;*A@=Z>3L5^ |
2162 |
M.R\=RIP8D[G*.L8F,@]A7HH*7N"ET9'@?\9+`E+`^BW\L?C_BSVM`]4.5#]V |
2163 |
MJ'8XW,?!X0JO74ODJ.G'&4WZ9<Z&N>7EF6##>G%5T\77".)5L&%A0VI2/21& |
2164 |
M,%HP-=V[V='.`SOF5Y8?_MN?=Q6570<[)ME29F`W4<\L;,>#ED,'CYYI@<U( |
2165 |
MF9PTL*-5.R%/NPIV#-H;1`;1P?NR8"$*G2ZJ2`([0KTTJ31#B-`?VNP[5V`[ |
2166 |
MI9?>/`9[GTUQU6WQ'\<7)Z(O=EIA?I2V4!9V"*3$<<>/<CE=[%+UL1^^OUV, |
2167 |
MWOX6?R$X(<;8#]HJC8J*.05\99E1RJ2MM>6G!-NWE:)O?OD5_CS0\\P(&<'N |
2168 |
MLJ*!0\?W8;XRJD?[.INKBK/W;?EJH`C](^V%_UR2Q:/46`[,)+LS]ZW?3H5* |
2169 |
MK1AHJZ\JS[^9O'-[EN8.\B^L<'N'$E`*A`PMG!QBRS^KZ6IK%-_)OGDC*3X\ |
2170 |
MYAZ+;B/_JD%_ZAV[7#U@*1NC:FZRZ5I1@:B\]/JEF/,M5E@)GXT$E3W4IY_Z |
2171 |
M@:2^"B1A[E?/SB?D5:M45>EY%L@RE(EVW*'XE!6$($,'FPYI&&8J!V'1T |
2172 |
M+$RZI*/MF8UYM\A;EDK\%//</@"0,X4V-#;H841?W]!H@.,?4<@M!4]A46.E |
2173 |
MZ&X#"Z4B6V^)$N/"H"SIM:%4%'O+B(W*S$&Z(6NRLK#+!E[&UE6H3$9$^CPU |
2174 |
M3^KFYV:UVAO`4%?%.HPBDTY\-3I7&!\OY`F-\4+A%6"D"^=\SEDO_$O\K`/, |
2175 |
M#C`_+F!VN-?_^^Z5L#:R;,M28C7!0\QADO`AZ/4*Y7K"%9:AMA%>A"6#Q3WJ |
2176 |
M#&ZPWI-@/IF#>=ZY3P@G?.Q!>"(^_N].L#M@(X`=!(6/7`EF>1>V.MVUG,O] |
2177 |
M82'<7R%.VY`WLMDBH(`FO,-@-3T+!R3!?/SH`6_Q@$<\];_Y@<_E^?#$/,87 |
2178 |
MMDE@>!LQRFAOC_>\\1'MO6'CAHW\C?H-&S>N>=J)XF8YR`T,+G3=:.4*O=R] |
2179 |
M+![.!.'LX>7CQ>!?:QP:^_^C,8)@$;Z>:<-O8K//A9^YYNOL2V_Z@"!\77U- |
2180 |
M&<<.AR:'?OP+@B1(-//[S:GYPNB`K(#PR/"3_ED[$<$C3+_<M"?Y7.@57_S$ |
2181 |
M)M]K!\.$@9O68W$*S1"_W7Q-="'Z2&1XV.F3)_8=002?,*_?]+4P]H(OX097 |
2182 |
M=2;,OI<CSO]UTUK<@H^TN$5*WOG_:>]:@-JXKNB^70G$UX@X39UI6D^:--/I |
2183 |
MI)TF[3B_<3SY.1EWQJ2)P1_J-''\$R:QB4$2Q/8*[-@!"0@&#(BO`$L8(S#& |
2184 |
MP<$$.8Z+72<3$TAL,,:`"3_QE=!O]7N];T5<DG8ZG:9)VHDT.M+=O?>^?7OO |
2185 |
MW7UZVG??`_$TQ;X]*6D8C,/=LSQJ?P:1%V%N1;9B]?+;0#8`SQ)9O3)5P>Y] |
2186 |
M,R7M&"G+^<O'GGW-)^E<D;#RD<4@*,(F$"QM:*BOU^OKZM08'.)^]`F?E'O% |
2187 |
M$\O@S*&_3CT3)8J""@51GF7+>9YGQ>]`/8RX!%,_(@_Q'H+M13C(;RV_M;XU |
2188 |
M:S&41["<#6.=B9O%C(P-9^U/B$,$%+5$QH:R`LK-_%K."ECO;>(`L2N<IL/% |
2189 |
M0K&0=<H?BPAB^`?@/Y&Q(:R0<M,_E;,,ZQ$+&2'CHBF*AF\!"-ZW2$3#07C! |
2190 |
M8#8`B'`)2X,@0T50#.N,6Q(>B,@3:B(0Q`8"$?8BB^8%:-89\^,P(:("?0(B |
2191 |
M5D0YD.`9EN79B'4^![5%<(X\.X#URH%V,@^\QO.=["/B8(8*!:XP.#0@-(1R |
2192 |
MT:)0&CBNR%"H5SCE170@;92G'5-'/T11DDL-#?KCQUL-);O6KEN/UG.[=7'+ |
2193 |
M^$&`8]L[KWW4?JZ-FYB>G7YJX\:G7`Z'9SM%TO!MISA]BJ\`1$U*+C4VZ^N. |
2194 |
MZ>K>-317%*L;WRV*YN-G;,^NKBND@,GI6=.J;9)5;@<W7X"]T3Z[8UY_'$O^ |
2195 |
M>OYB\_%CNFI-6:6FK+BZ*>Y)7FJ,2MKUWM5S;<ZI&1/W_,Z4Y]T<Y_45X&BP |
2196 |
M3DWX]!&>DEQ\]_#YMCIM546INB"OXE3Z"["?@1NT,?KUT]T^_1A9:HS'/7C9 |
2197 |
MI\_I+48CKT[C"4G3EA=WGSQ_NKZFJK+Z1/-;T22!2`#J-Y_<IKWBG+78W1ND |
2198 |
M\DV9VQ,.))*5,!]LJC6930_QQYA\><M*:E5,<LGILX:VAKP=J^^BR/04B)I] |
2199 |
M<NN1L8\;\U.VIR7'R[=%09PB["X_6:Q&:AJN%<^ZYV"7;=4?H]=)UD5'W<^W |
2200 |
M1HBR_V+++OF!I*U1$.<(VZOR"PL*"OGJ,"20R0@%,1S66UZ("BFUWXU^-_K= |
2201 |
M^+_B1H9UR7\>3,,]W2G;\^:>O7!/=]\73(:"+>9O[M`J8+B]@XP0L1&L*TX< |
2202 |
MP`_'>IZ-O,5'+,?S*1!P_SZ,[/30*UGQ+0$[Z^-3["+6M5$L`IN1M18?`?DO |
2203 |
M17Q'(-9DO9NA"7+%+0DE2Q6ZF)![Y=#&V>5K09*B:3"]BQ>%.K*NQ\0/)["! |
2204 |
MK"MJ29@`6F,7$W1O`K0OYLU/KWK@[LC(1:""[@05-]%@*)OLT8@@@>CAZ#@X |
2205 |
M3T=<U-*(8`%IM0;IP-OCV`3)ZM_>'2D61X2%!@?":5+"I8_"+WR:#/J:IDE+ |
2206 |
MA!A12'B$."(\6`A-.#6'A"%DBX@S-*)I!"86A=/A*,62;:@S9"?+Y4=-I\AZ |
2207 |
MJ2GC[97#ZO+V[>/8]7GNS9EI,_Z,7VZ5K<ZLVH='9,?S%+FUL@&\CW2K.PW( |
2208 |
MX#T.'\Y.R>@L69/6*)/*#E96K7EMSVGO;+YU9FK*:]7SR[W*R@Z5R?!-:3'; |
2209 |
MP!9*KWO("`JWI--0BVH=ALYM-X=GR,0QLW\>ULM--OO,#'2S1V6U1#.A>']Q |
2210 |
M`AY(2KMTY5+:[EXW&;)@'MG2:3AFZ-S<-S0THR>#N.X@JTCTI9>-69R<VSI< |
2211 |
M\K;K3HPI26%:H00/9G;VW;S>D7G='4<N>)MI?%.GH?.5H>DI-&6O;7H0FT9' |
2212 |
M^[N9[LFNGM[LG?5=^9WZG5E7+\Q!W^+5(^C(Z*O89;%YL,<ZY_"\2BX,M3H_ |
2213 |
MMC,V1\VH;<4GRW'JQQ]JTY-0$DHT)66>J)9N7+-16JV1);Y"0G!#+!.+-@AB |
2214 |
M71MB8S?PMP&(]/3U;T.XDY#/K\+X+_5U]7JDGR9?9_N,,[-30QUU=1>-\\LU |
2215 |
MJYT%144%!>1Z*O26\\LUT]CO.[_O_+[[[GWW@UV?E_P`<9:-3JU=&R.(H:/1 |
2216 |
M&ON+UWIRF^9G`W;/EB>2OFS"-@J3:3&LED*,]YYH6I/?5,J4HA)+\8F<%W2Z |
2217 |
M1'[VX&`\9Y_]4!$?K[A8C#&9<\/FMF!\\-R%S1^03!*OQ\6UOO+>>RR47@)G |
2218 |
M;G'/F4QS;J!!.!P[W_K@0(HJ6YA-9]J4R6FGB5AQ3TB/M_LJ?97K[H$R\ZZ% |
2219 |
M7.-Z;B\\H$AQACCMCN3D-T_<?D9MB;!PG^+B,\VY7"CG5.;5ITIE2&:7PM4C |
2220 |
M)1](QDE3Z_.4+:K%*G=+\X']H?N=F7L5+*M`"CNK8`E%:.@J*O9FEFDJ4`72 |
2221 |
MH`J'ID*CJ:CP;3HK-&4%ZB)4A-2H:$Y=I%87%:GO4K&I;!I*0PJ.+T0!-`>[ |
2222 |
M5'?I-+2&KB3P5E0**I'&H].H:35=0N`M*O8;W6_T'XC1_^^G7;9+]NY)D6W] |
2223 |
M$Y\6V]%<6GOA%!DBY<BIU>6GYU21:*@:O]'5?J:G=WS$2J;,GRN<&QCH.RO= |
2224 |
MM$G:3@8ET087/J(B4]X[:C)R\=$L?HHAK=,T_47O9T.C0Q8MKV3N[[_NL%H= |
2225 |
M)$K@4&?/MV"L)'G?CK+T][%&64:R8JNXJ<GQFS>&C0-SU7P&X-ST\!#$C;OG |
2226 |
M6A[1.I/5@M7O])*LV)PB7'M(390J[&.C(U\,W+C19R:KB#F+^Z>F)SF:^Z(# |
2227 |
MYS5CRE"I5&8<L[K=7J_;:=6G*Y6Y9>O(8[94/DW3AFPD*=8R9S:5UOX,XU\9 |
2228 |
M](5TH7#_R`'032[(SCD85]!RL>.RX63YP7=RLO)\*;'*L^\S[Z,\Q^'<PSDD |
2229 |
M*19E>\D$^^Z&UKYNNIN&\#(7J0LP]<8G'5U7!H<GS,ALG9DP#M_H[>ZZ_`F? |
2230 |
M@@RU@K<*J9#2JU(BI4D%6R]AW%BMTVIUNA*F!*F]&I(3F_[VH0QXTQG>0QE, |
2231 |
M!CKHS2)=M49=C;:&JO$[T.]`OP._3P<&^!/\OI4$/U?'N?CX'6@'%S_)V7$[ |
2232 |
M.1\M-M)&RU!SE\5LMG0U#TT8D7'&K,6?MHY>_NC2Q<^G[%9,LO-M5=Z1D?Z6 |
2233 |
MM@G3)#TY9IIH:^D?&3%7X:MMW.2$T3AIMICQ!^2_3HUWX)R^=V:<C$,=G^G5 |
2234 |
MGQLP:_"@`3L<=GZ=$FP@?TB6#VO;)T<&18.VD<EV;6\Y+F@E_R-ZIUL-W?AH |
2235 |
M:9O)[7)R'%&Q((MMSFRV&D^7'NUN#&KD3K5B7'DD+S+/>:12I]5I!5H+":[J |
2236 |
M"SA=I51"['F4*J5(:2<;Z34UNAIAC55;HVO$N$"5J<Q"69Y,5590EEN9J2KP |
2237 |
M&\1OD']MD-#O>!R&EU!4$^`>RO=:#XB<I^\'!/E(M`T^GB4$0/QT_,[=\J5_ |
2238 |
M>%F^.6'IIM=WRHD$*0AZ\A0&B.9I:KZ`+^G@!73(`CIT`1VV@%XT7]:7K\`% |
2239 |
MO,7S]..WN$QBW-<J*X!]&123=!!P&%#V%3Z3>`%P%3`*L`,_$'`'X#[`,L!* |
2240 |
M0`Q@*T!*-/=%4'@!OOEV,'S_'=0^Z($LP#??1BOP`E#_@;-#%SC[^_2SX!:7 |
2241 |
MD;[PCWZ6OD$QLM<!*8"#7_6SM!Y@`%P&]`-F`!CD%@%^!O@-X''`:L!+_\3/ |
2242 |
MWQS!7P/]7\97_8S_'3__#7!0A:B3>`,`4$L#!`H``````")R9#%=R2MYD`$` |
2243 |
M`)`!```9`!4`8G)O=W-E<B]#;&]S92UT86(M;VQD+G!N9U54"0`#+X"*05%Y |
2244 |
MR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````P````$`@&````4*[\L0`` |
2245 |
M``9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,!`)J<&`````=T24U% |
2246 |
M!]0(%P\L++APD`X```$=241!5'C:[94_:@)!%(<_<PG!SB;>P2:572"66X@( |
2247 |
M%CG"0KHTPGH&"XM`M@WD`A8>0AN[!6]A,\7PX^V\62T"8;]FWK\9WF]G=Q_T |
2248 |
M_"V#R!X"K\!SHOX,_`)7(S<&5L`DL?\$[(&+D7L!-N&<-B[`!W"PDFM@Y@B> |
2249 |
MA3J+3V#I[%^&.HLCL'/V[T*=2176:63'N:G4*758YY$=Y^92IS1AW49VG-M* |
2250 |
M'0!/QD%OTF@E<8]"&JTE[K&01AN)XPDHC5O1>(X`?=JY`D;&K6@\*<!JMNSX |
2251 |
M<R@<OXN(UN93`BK']Z@=WZ-Q_*2`*N-URFV^N$-$D_$Z)07\2/.EQ',%%"T? |
2252 |
MM<>7-#^2>"OK,,@>F0/O#\Z![ZYSX%]-XIZ>.[@!55]#3J)?*P(`````245. |
2253 |
M1*Y"8()02P,$"@``````AUYE,6.00_^P`0``L`$``!H`%0!B<F]W<V5R+W!A |
2254 |
M9V4M;&EV96UA<FMS+G!N9U54"0`#O:^+05%YR$%5>`0`Z`-D`(E03D<-"AH* |
2255 |
M````#4E(1%(````/````#P@&````.]:52@````9B2T=$`/\`_P#_H+VGDP`` |
2256 |
M``EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0+!1`T#=S(&8````$]241! |
2257 |
M5'C:I9,Q2()1$,=_[^'JT%*)#8%3BX304"V22Y,4[1$%+07A7.YNADOA'$1# |
2258 |
MT.`@+6D&A9#24A%DF?H%11%)-`3O&B3K([\/HX/CW3OX_8][=T\!PT"2OUM, |
2259 |
M`0>FD`Q+K=@U)94\GC4KYP&06A%]MMTU7&\J`#P_DZ9W"#VU\5VA44**:?3C |
2260 |
M94<1;;L\7$`ZC,G$$*N,\H?0TYN80*0C[.FH:)7!*F,"$^BQ970DCOEX0]^= |
2261 |
M.%<&8#&'1%-(-`4O5<S.++P_HR<3F)Y!=]CL+J#Z@RT?7P%O'^9H'0`UNN0. |
2262 |
MZZ=K2(>1VT);0-\<(HT2:F#$&9:Y#*Q:R'P6M1^WS_9\S_VUE3\$7A_*%[2U |
2263 |
M`,!KPQV6ZC$T[Y'ZJ:V%K]CD$LZC4ELSK=-AL_15]C<LE7Q[Y?YBZC^_ZA,[ |
2264 |
M17(H(EFPKP````!)14Y$KD)@@E!+`P0*``````#+F9,Q0SR)N%<^``!7/@`` |
2265 |
M'``5`&)R;W=S97(O5&]O;&)A<BUS;6%L;"YX8V8N9WI55`D``UX9QD%1><A! |
2266 |
M57@$`.@#9``?BP@````````#[+T'7%37$C\^=W=9.H@-N]BQ8\4:5`1%102# |
2267 |
MB!T5%7LEXJIH8M>8:$QB[$E,5%!L*&HTQHB]@HUJH;G(BHH("[OL^<W<N[OL |
2268 |
M+F!>WOO]?^^]_V/O9\N]Y\R<.3/?.>W>LS,U9-9<I\63ICA-"9D9#/AZBV\7 |
2269 |
M$%X.^.8X_*B&;XM^7P/0&U_5\2W!=SB^:^"[.;ZE4X-FS0JB5**H[M*N2Q<7 |
2270 |
M>G7HT+VC2_>.W;IWI;2:6DI.H.0&_<.45::BJ&U#9@5-#6X[=7[(9&U^SL)Y |
2271 |
MP<*PF<%.(;,7!L]?$#QI8<B<V0M:6CE/F3IISLPY\YV<^:^V\Z=.#')R:<<S |
2272 |
M=BGG1P?MCY9(.K$<T@ZF&<O^(-+%"^8&30J9/=6I0U?=52OGL/(N:J^U730[ |
2273 |
M9"$*/VE:,$F]>,Z4*0N"%^KE(NJREX0KQJ10^N(*`5Q[`O38#3#R*,#T#(`Y |
2274 |
MWP'$>!ED>DTZU>J\:K^@23.FSI^S:/9DITESYH8UZ4@YI%I;W2;K:W_3R]+@ |
2275 |
MMY7!;VL#V]H87+<U^&VOY45YG/!M;I"F0U7W4B%%OP"T^,%`6DP77<)K*_'] |
2276 |
MI7%-1*DHPCR$F"-`H\:4,!$*Q=VGKU@VN9,8"])\":WA0X--D8<._+ASV^(Z |
2277 |
M((8BJ\8MCZ4T0&DUMY&%9A[6^7V]/4=/G#AR8,_W6U;6`A$4K4]Z]4SQ#"4N |
2278 |
M\>V%Z26WCV'6DLAI*,M+\;HC)R^</7YH_]YO-LX6@]58Q;GH4Y<>SZ3<6YPQ |
2279 |
M1\'MDZ=C?HLY=VP9GJ@O_G;A#^X/U?&(:=;(6=[YP)&8HORSQ]\6?K?QB];0 |
2280 |
M_/+F&3/GS7#"I)+>X2C>A]L1QX\=/G3H\,'Q2/WA4%1$Q*)&_+L(<V4'[ |
2281 |
M(T^\97EY+&?K^B^&0<^S0P"&.B%529>S6+RRV9W#49&1$8=%AS5!2%W\8^3! |
2282 |
M@X<BN`AUU/Z)F)X6NN]`Y,FWC"GV?+7N\R#H=XCC_;R7,\#.X\A&X^HG]=.X |
2283 |
M(ZEF'/URQ4)S%^S8\U/4.\;>[-ZT.GP\M/P%,RJ=F*S]@;A-5$%7/[^NXJZ: |
2284 |
M'D0U:J!X($=T8L@=M>V'W6^80L%>;_Q<-ACL?D!FA<ZWWN?(4_:-`3,H<?4C |
2285 |
MI?JY(F%:ZZ^V?O_^U:[MV>_7+O\,FY;VJ["EV'<CYN3QS3Y2M`"RK$(?9O!. |
2286 |
M-&OCEUN^VK1^W>KE8>-%6*W\%G8(7-^IDT(F6D,3**D>MI9;JUS]Q<IE83.K |
2287 |
M(?)*9M>`%O"AVN3P\.7+EGPVMBJBN:25!3A#H:BIU^C``4U%,)R`(VKLYCVH |
2288 |
M1P.1'CA5/YTZ97+0J`!/>P).%>>69U)YX#PD8=81<!S&A\R8$3)Y_$C_P78$ |
2289 |
MG.V9>2_SGA,4Q@\FX#P\3W4\LX*`(_(+F;ED_O0IP1-'^+J)P&9.7NS%/VZG |
2290 |
M+:#</[4CX#S\_=*?5_Z,/;^5]'KCRK6;W$W5A9@5M@2<AI-#YN5G+UF4^7Z, |
2291 |
M[^!:T.;NSVO7?[FF-0''[2L"SL.8"^?/GCY]]M0B`L[I<S$QIT^=BSFYD8#3 |
2292 |
M8^+4F>DL^R5[/G+8X+;@=GL2P#AG`D[7.`).VT=GSYTY$W-6=%:SF(!S[,RI |
2293 |
M4Z=CN!CUN1-A!!R/"9.G+LQ@[$7P<.]!KN!Q40Q0"^"3E@`_7R?@N`=+@S7# |
2294 |
M"0(+Z9<[`<=]S/B)\[(8>SG5;\C`+M#^#P).$[:T?53*KU1!]^#@?N)^F@%$ |
2295 |
M-2=0',@1'0*G2T#@^`SVX@7+'#[(LQ4X'"3@M'F@?)N;<7(>`<<]F)0:3#A- |
2296 |
MJSW<?_3K9Y,F/GT];(`[8J;7]KH`44\N_W[AIRF6!!QWLI4[`8=S\QT>X.\W |
2297 |
MS&?H@/Y=.`*."_9VEE._6+Y:9D?`L?$8(AI2--AK0/_>UH2;M;4)-];=!PX< |
2298 |
M,,##O8L5X::3);2$HAHM.W5TK@Z?$FHXQS:=.SC7X/2HL>GFX>'>MW<O%RM" |
2299 |
M3<UVK?]XSJ,FA2393:BQZ3,`>;KWZ=VSDQ6AYE">\HWR!>%@UBA"3<IUJN"5 |
2300 |
M[P@U7+<!7OX^`SP\!_1T;<.!7;CR[LU;3W*74.Z3G0DU*3=NW[EWY^[U7TBI |
2301 |
M#^[%/>0>JF[$?F=/J*GN/L#G7<;H@.?O^KEV<8".R6=^_O70C]T(-7U_)-2D |
2302 |
MQ-ZX?O7RY:M_KB?47+X:&WOYSZNQ?^PEU+3HYS$HA66DL>1/7+LX@?NS)0"S |
2303 |
M70@UKB\)-5U2KUZ]<B7VJN@J5AQ1<^'*GW]>CN5BU5?_V$RH<>GC[N'_E+&4 |
2304 |
M(=V[=FX!`Y^8`=0'Z-,*X,@S0HU/J#24;ZDTZ^B7#Z&F[2=]^HUXP5BZ3[<N |
2305 |
MG9I!EV1"37.VK/VIEW]0!7U"0X>*AVH^):K/IXFG<42'J&G:JW??9RPEA;WH |
2306 |
MV;E#?:@>0ZAIEZPJ+%#$KB'4^(224D-]"#4.W7OTS4D:-"@QIV?']MAZ#(AJ |
2307 |
M"'`^\]Z-&Z>7V1!J?,A6/F2KUJ[=>_?LYMJM>\?VS9!E?G?LLNR6[?WAQVT. |
2308 |
MA!F+#EW$78H[=6C?RIP@LZ\A0<;<N5.GCAU<VC>3$F0^L2+(V-5OTJ2N'4*F |
2309 |
M,12V_S9!J4SXW@7YJY9<L^2PN\0VQ0XT#$&DMOBNA$F8NN0'2Q15M8Q%62-Z |
2310 |
M.&:/;\2&Q7EFP8HN8H?<()Z)F/*V-6<;--(2:RC"+")F!IIOF!53?0].CY"- |
2311 |
M,LHZJ*1DF1159,F$=TEK-690E[2+8&:LL&2N521CO:5H,"M,M&(BT'S-;%C) |
2312 |
MMB),_K#!V=R:L6OH*(R2K1D'FCA,UCQB''M75,!*-@[+JU*+,;D3,&O,@93P |
2313 |
M%C,H\AE3?;F+;6B?Q[I<QO0FABPH1P'FR.DZ?I%/'LI9@ND&$MS#],('&4S> |
2314 |
M0EHE#^4HN=\8E:^K@68C)BN_FE/"[EK_@JGJDA&.6$%!`1(H::["D@K4K:IL |
2315 |
M9+GUK6XS,5.5'&]!ZM2I$3E8L==?8;_1P+FJQ#J*L5?RD-96'*H1C<!;`G5M |
2316 |
M=A)U77*:=)-G)L6^QOHV<V]=UYJ#1J`V6U],9E)MDJ+ABZVCFJ,=FT%ATW6W |
2317 |
M<A2W-S3'89**L[07H5R=0"T6F4$]4"\)'(37E0ONR^7I-V81*C5PE;NJ@I+G |
2318 |
ME[#`XBT`P:-Q4*6>Y&"+T-%<><.]*8;LS!=GR#LQ[]&C\.ZRZB!2%@7#A.^S |
2319 |
MIR`[]1@'.Q0A_\K;]_GO02%/?W8*"\T7<A\]$CJV#Q(K';IOO)$=NQ-+X18J |
2320 |
MEXYPL.O:U0VOYRUX\[ZPJ!#>O,I\GAQ"`!?HWJ:M'E03TPL'[<R.S;Z1O9J$ |
2321 |
M;3?60>R@Z84_\^Z_R2]B10+9[Z5D45%'<G^C=F50](UL.N[NQ$2.J=.0EG,H |
2322 |
MZM0JC;%$TJ?<H-R'U`@*#'*YW!+%;WC^OC:\NOGJGKR=6V<<)7+PH42M>MHJ |
2323 |
MV*%WDZ<J3J5YQ/-0Z*N<](AXE/`\CG!'2G)^(^&?N7MU>M.==:3&1EW(%7Y0 |
2324 |
MVD^!0F6A4OD`Z=4X5D8%*Q60^2(U(1X9*`4&.:^X5QJ>P7./#1ZOVW5O1XU> |
2325 |
M\?M\+E]U$6Z]SQ?E:^YB=DTA<BE\)<^$ITF/SY4*<(@[5"(7!$#ZC/,II!*- |
2326 |
M!I'*Y7,Y)>DWD$SS(8J+*H#,]!=/DY\\""85(C%L!;G\Y4N>-@UIDT_%GR;: |
2327 |
MNV>MSJH.`+R+$D45PO-GJ4E/'AZA[J4$8!/``>Y`229/E.SKX7K[MP=$].;N |
2328 |
MV=WQNN/L3P!^8C\E)"<E/'YP!+-B<2^SLB`S,R.#],VY9XP>Z]6]I<W(P:Y= |
2329 |
M!@/<.;TS;F?<CCCZC-F+`HO]BN#AH_ASP82$DJQ,+I/+$*6CFE"1[@"#Q8,U |
2330 |
M,%@T6`2J"[MV[]XEVL7M5M$/TI,?M7!_7N`N<.?%OVGV05_R">J"T2>NG-Y3 |
2331 |
MQB>^XK[2^T2(SB?.;0\MSR>^"@K2^X27WB=BMB\OUR<H=WD^<4D9&[U]Z3?? |
2332 |
MK*[`)XBN?)\XLUV\7;.A`I\@LH_XQ)GMW/:BSS[F$\2@0I]XAS[QK-5OV[<T |
2333 |
M>:92JQ]7X!+$PL`EVK@TUKI$H4JI+"RT_PU'OH4E%7L$T1MX1+O1[8P\HH#W |
2334 |
M"#PJ\@BB-_`(I*_`(_+/<>=,/>(K\#7P"*0U]8BWYT3G/NX17=LUK<@C@L7! |
2335 |
M'_&(`1E!DX;U:6<[SK=W=U_!(W;P/K$C[C3O$<$5>\0``%^QKP9\1;Z"1^S: |
2336 |
M+=Y=3%^\0P1_Q"'F>KN5<8C/N<_U#A&D=0A-`'V8NL/G/CYZ=^BK<P?-,/PH |
2337 |
MZPR4MSQGF*Y<X`70JE77"IR!Z,IW!E\R38<*G('(/N(,OEA]KI7J(\Y`#/[" |
2338 |
M&49!QR9/U6I51?T#L3!PAA:M&VJ=X8.:=X914%BHY)2:^(J\@1@8>$-+OY9: |
2339 |
M;]`48[>@_AUNY8LK[AV(VL`7D+H"7RC`88&I+WP._0Q\`6F-?.$@0!X.Q3_N |
2340 |
M"QU:-JK(%T+%H1_M'0)'>W9M;CW"JTLG+_*%'7$Z;Q!\(?2CO8.7V$L#7B(O |
2341 |
MWA=V4>\@WLWM0M%#RSA"-9`PA']0C((I8OC)P7!FSC1#\%?1"R8'QA#+$H:# |
2342 |
M;9<;-#*\X8+R63&<?8I!RBC)'),42%.B<,'BK8D6Y_0XZK/"P:'F!K-D&M*Q |
2343 |
M#8XD+7"\3(-.31`.7M7H6?P8UI*&H)XXQE1[0@PEQ/`)(G[L:H\#7`5=5/`7 |
2344 |
M<?#.-,#LZ,.6"5R)WB1;Z<4[I0QU%S5#J2S#TNN7BDBG];1UL:&Q\R#,)90X |
2345 |
M%*LBU)\2U&SM6ASJ:J;AM$`0<RB>%NO4B$0/P1XT85A6T43`1$;MQPQ2QV1^ |
2346 |
M:;8H_.'%BP_#";KMH2,4LM0LN3PKE1$>U4H+)5>D>4\3E,WI(?B%-E%@8Y') |
2347 |
MY-FO7[Y\G2UG``5[O]Z\3#9_?NB2\,VK:>:6__JEO.W2,7Z-0C-7X6D!^_K! |
2348 |
M@\W?7;OVA'AZ8TF94I?-R7D%>3DY20"*@1Y>@[R'^?F/'#=G"4^>><+EH$)Q |
2349 |
M>'J3$W.IPV$YV:)L+D>33#(^+A859WUX]UZERL]5I`'D_GSAY/5;MZX]>G+W |
2350 |
M1MQCHGYY8E.')FV;M`_FJ0O8NLV;<Q9%1_/4Q<CIC5R!U&^/?6*.U&<SG[\D |
2351 |
MI"O4F8FWJ7V)`>$X<^(>D6M8CIFVY.)L<79.SKO"]V\SGR6GP-O+<GDV1$3` |
2352 |
MR=?<:\UMK)H%4\&F$W.0ZAW[.B=GS\$#!^X!VI<*?2?/SGD9D?4\-04I8[-I |
2353 |
M'A_A1TW?:]5M0+B)F*81?JAB3MR;@X6IST?>/2\^K[PR:RMRH)*+Y-GR7L]2 |
2354 |
M4[B4M_#VRBLL>)$?%O[Z-94L9@4-&6O&L/BY>/KF3Q4K9L4J5;$R__<])(`D |
2355 |
MFY.KS<U$R+HX[U8.1/"CPI,*;=D%3JS9&A9SXM%LHBXNS/PR-RXM*37YR<GC |
2356 |
M=9%:FFU6K(+"!(5>;/5)OMP\=L1S:>-F08Q*GD6TUQZEICQ]EI*8E)2XXALJ |
2357 |
MV29;C2T0JDB%A<))[N3K7+[03JQ9L]9G&>,KC(1W=X_W\QOFZS/8>]A6/:'R |
2358 |
M,3;\8B@^F9O[1BAOC>=JSY=>6-YW)WBRFQ?/G#A^].CA7R*.'-VI(RM^6R`J |
2359 |
M$)_D"HJ5N@JN[+&5RCI!*Z)%WX2O6Q<>OIQ;KIPS>WJ0CNIM>II%6O'SV[70 |
2360 |
M(]&AWN)45P5C`GKBQ!!;!,I3%0IT\(A!*Y/O1.S=&U'J.Q>OW8F+NW/MXE_X |
2361 |
M3OS]A_'Q#^_'D^\<_&'[^K7AX9^OWOC]ESSX%9DOV\K0=Q:EKRS?=R2MPF^] |
2362 |
MRDU[B`TZ*/S]_`,"1X\-FC1]\4J>/#VR_8%7KR)"&D?.+,=WN.+,HC?/<XJ+ |
2363 |
M%4GQ5Q'^^R]&W[A]^_JC)_>TSI,9N=:E<>O&[29&SBC'>;CL7'E:*I++]W63 |
2364 |
MEN<]T:`](F_-,/4>+CM;GI&:GIN3]B0I2><_,3$0;>@_:R.G&_O/!*W_9+U( |
2365 |
M3=R5D)A<ZC\QP7K_B=;[#Q8\W<1_)O`,LN19&>FNB<D\`_2?F)B-P5BXB?^L |
2366 |
MQ6J;^,]NX/V/DZM>2LTXG0/%\(/(:(6V<,&!HB/C0XP=Z/&)8V4<B)=;'6WJ |
2367 |
M0&LCI_$.]#`EY>E3=*#$A!5;31P(*:.Y:-Z!HO4.A#4.$1QHK*_O4!_O04-\ |
2368 |
MMFXU=:#HL@ZT!37-.U#,\>-14>A`AZ-V&#M0M-:!HO4.%!T9.1:)5%N7KUV+ |
2369 |
M[E.P;/GL62$3/NI`(_Q<R8$\=`ZD1PB:N2:H_-W<_`DHO/NXS5X2%K9D=OC' |
2370 |
MW2<\;.FJ=>M6+0T+1_<YLF_?-ULV;-CT];?[OA7ZCN2GK1>/&M9P;N+"\MU' |
2371 |
M5,MGQ^W[$:N6S4+WF3@V:&+PE&DS9B]<N8XG3]SF_%-&QJ_3ZF\;4[[[%"0< |
2372 |
MOE=0<&^+;![B_Y=+IV[>N7/CT9/[6O=)WA;:LGZS^BW\>?)RW"?SUD$DOS7= |
2373 |
M25R>^QP%X3BX[<*8<MPG*^[PL;C;4;]>3]"Y3VPLG#)TG]!MHXW=9SP9A\M^ |
2374 |
M*W]ZY?"/DP]<>)"L]Y_84+W_'-7[S]%M%T:;^,]XP7^R4N-O-;P>GZ3UG]C8 |
2375 |
MO:%8NHG_A&*]3?QGE^`_Q2\STT6T+L:[3RP_[CRET)8MN,_1;==&&;O/H^-' |
2376 |
MR[@/+[;ZE*G[A&X+Y-T'*_@T%=TGX<F*+2;N@Y2GN%.\^QS5NP]6.%!PG]'# |
2377 |
MA@WQ'NPU>.C6+:;N<ZJL^RQ'39/[7#A][.B1(Q&_'(P\\H.Q^YS2NL]1O?L< |
2378 |
MW;9M"!%M6;9FS;)ERY<NGS5SVOB/>H]GWY;D/?UUWJ,#R%&A^Q%)+2QHA1+' |
2379 |
M?>@FJ<]R:14[D`;.@?CK@\2QL[M[9T<)T+@1011`H[X`?L55"ODB1[\?SI__ |
2380 |
MP<]1)"3;,!I1HYOL1P9%*OF.+N;&"5:LN/A\?\O2BQ*F2499.6C(#XB%7`UU |
2381 |
M8V)-!QJH!@)K(%PI">A`8]A`X;P^$REPWJ/(47`*S6O\*,E1".-I3$G@$JT2 |
2382 |
M[+4G5U2Q5_#@8KDKFM@KW!7M=<VQX[;'M;^M=HOV<+NU)]P&]?H-ZS=P&T3K |
2383 |
MN0W<>LT&@:TU4V4PQHL0%BH)52T*#5V$WS1B_H1&]`&=A(;&0OARA)>&HUC0 |
2384 |
MGWRS"B<K+_=#QY6*BY&CFP'.^?7CU54T9.0XC8BSX/`'TPSHP_51]S]+@^G2 |
2385 |
M<>D/_*B6^U8M5:N?KZ$NI8!]P60C8[KVH8S%62=.W/,#2U!S;"V3,-6++](H |
2386 |
MDP4JN#CCQ*83@/;!1ACQL0RA5?PB+#F9[D.I%HV?1O1I&4B/$R8;>VN[FBDX |
2387 |
MQL",Q>&,O9AS]4,R1^``Q)8('J7SO%CUKW\*JGY(R*>\$OYLX^7+N9@OB/EX |
2388 |
M?=^Z/8/P+WBNZ0)7JZ_V3K+>S>=6_J%234NY\_MS0ZZ):2>^0ZYU3VW>.V6> |
2389 |
MQ07*=U7UH:@@M2#M[#..L:`^;%:?0$9WFN8`I/%,+]A=_'FRY6+*?.[18^ZQ |
2390 |
M\N&3)PE/+Q-7.9R@D1Z\Y+FR"W5_LEE\@4JWYCZP-3X#D-D:!B>X$RJ<W*3C |
2391 |
M-R]&T86ZF(OA+!-M\!1U^![&T4@.5H1,0$"*6,G/*9BM)Y2QN>'H"_0G6U>2 |
2392 |
MS7^&#BMST.9-H3^6I1MGK9CY$9OKAU/;9GS<YAF1D;=\C&S^0F_SM,BUD65M |
2393 |
MGF1D\S2D+]_F^4F&-G_!\V+5]T<MT-F\,!9M_N>?KQ/+VOR%P-5J_^%%6IL7 |
2394 |
MDLV3[_S^+-'0YL\CMR#7NG_^?#ATJ<[F^<H/*1]>G'UJ;'/L=)_S3"_8W3H6 |
2395 |
M*MC\[,-'W"/E@\>/GZ3\*=@\D@8GD,5S19L?*\_FD5RD:BS`"_RNR.:!-/B` |
2396 |
M99-&?_I1FQL.&4!_LG$AV7P7N*Q\A39O0@^KZ`<'L\=\Q.;Z,4#XF(_;/&G; |
2397 |
MM@O]C6S^5&_SA&VAV_0V+]+://&)D<T3D-[8YD6"S6/?/S&T^1.>%ZN^>=]8 |
2398 |
MK<V+"BZ'IVZ\>.G5H[(V?R)PM=J\9[S6Y@6_%Q5-2[IU/N61H<T?;UN.7.M& |
2399 |
M?[EGXDS!YK%%[POSD_.?QB0;VSP$X#'/%/W\IPF"S4_'Q7/QROL/'CQ,N"38 |
2400 |
M?!OUJ)#*<T6;[RO/YMNX;:HA`(_PNR*;#Z0N$^;Z#G0WM+E4Z!TMA*^:0E?( |
2401 |
M!5A1=^@`M5E5?.-X:P1>58_`[K(6?T^3@[K8:PGK/?6HXJTJ_B@!(D8.]9DM |
2402 |
MDFHRF#W^P'XPP)8*H<>D(%3[3!2]>AH\#Z5[YLFQS--93K."%LPP?$2+&3RB |
2403 |
MQ9D\HF5G<)W8B8V?MNI1^K25L[WQ<V'.K0%<F^"[O;%$SMBYM1D$X.(-T'D8 |
2404 |
M):R0`/OL7SO^17)667YE^97E__O*KVP"*LNO+/]_NOS*)J"R_,KR_Z?+7R&Z |
2405 |
M_Z^*4'E4'O])QT=FZ+K-<OP>.8]9<Q>&.0T)"@N>+TS3.U0T0P?XZTU4]/JK |
2406 |
M352@G:J7MXDJJ'1:[_K*1%Q,I_NT/5;C>XMQ6K?&>,T?W\'X7D0)"VDG0P\H |
2407 |
MDM1K<3"Q`72#HK`[Z4\RG])-%_>VT`$*S`=G'CUXZ-1UNH%9$MX(V10V/+W8 |
2408 |
M>^BGPZK3WH(>L_"*TO67+@"?U*:EK\X_XH42MRV8O0"KTKTYP)8==*G)>GJ^ |
2409 |
MOSX+:[<W=CY=L%I'#^XWNY2;\?S!)D\L*Z_Q;*SPEG.1!_:'=9-`1\AO@`H3 |
2410 |
M]1PT8,A`<^@.)?Y5H!>4.$DAW&(UB;Z)1+=OV?),2GT2_?N,O*P\?B_7^$$D |
2411 |
MNO7LO-C?_[C]8CZ_[Z8MB=[F[D]KUFU:+6RFV4RBN]U&98YMH=TAXP+O^O\N |
2412 |
M`G#4;WE!087]+(W9TG91R;_2A2H'M!M5WKS..#&7)._U?5V`(X\O_W[^IV!+ |
2413 |
MDMP%:V(Q9>6R+Y;8D>1K:Y'DG2QUDF\FR>MV;GL]C9?\C(85,GY;R)(0DKS* |
2414 |
MURSQT>-TU0JZ=*4'2=Y=?O>/RU=^ZT^2]S]!D@]X_S7`,MJ!5=*-D>2#WY@! |
2415 |
M-`+HUP8@IH`$[5E(DCNS<)<+[Y/H@N,UDMPE@Y5H/CS919(/CVT"<.M]\J-' |
2416 |
MM[;9D>3]L.X.6W\[]?N1ZB3YV28D^4!K7O)P!.U?OBV-W_A:#/PF(O[52PM] |
2417 |
M4P^K8K(.5I%[F2Z`_2ON!16XUYS2Y)ZZ794&[M43W6?D]_C^V3BMYTK4?0[` |
2418 |
MH#$`OBLH(=QB,BA%,`1&0Q/H"@75(!R6P@((@,Z07Q6^@#5X.A?&H][S.%@) |
2419 |
M&V`U-D<S@?;':`J@+>3)8`WK!$N@-@1#`[*Z)[+HP=K1_=`0@?`SO-(55303 |
2420 |
M)H,G9LD;#HNH46,M80J,Q<IJ&+0`]6R@_6=*%]8,QD$7RE<?9H`33(?V!>-@ |
2421 |
M)''R@:EX3,9TNCV*6!@)DV`B4*HM2EPP$-F-!EK8[`K%M:`O9OD4ZS@%BFM# |
2422 |
M?=0^UE`*K<`9FD(=,`.U)3C0#HOJ*'V^%-I@?9Q1#_7IAG!M=+'J=+N[&MV^ |
2423 |
MK(X9-770%OFMH3UF:XYRU21IZQ340N)&E-&"=D!51\9U$$N-D'U!'>3A"/6` |
2424 |
M[C"_:@%M617D+T4U6>#1#%H#>;5&)-#51;JZ>"!=7:2A-PFBK(D"5T5*U*<3 |
2425 |
M7N5`TYH^:M+^D([T-&8-S%F'/[2%$BD=8LAMSA,#-$9>U6G3"15(7QH'*K6* |
2426 |
MEI"44=!0?R*&O+I8Q>9TBQ:EK4/Y.Y$L8B9&1;31D5;A#S-0.O(5Y57:&"M& |
2427 |
M+2NSQG/:K(AD$JB&I3<E1581%&D&>1:H0DM\VQ?40PUB[1SH>5]0-L*SIO0` |
2428 |
M)65&NSBB!`U1?$$PC0WE$:,>6Z(432&_#B;5XY4GH4?R)9BB-X*8KMB@"HHM |
2429 |
MH"H*0U@X"6I[M#%:O26R*.X*[=`.R+<%%=B2I.L,-4#9L<`%.H$'I52AZK;$ |
2430 |
MIL@%CWZD*1<D:H<0-2,:AK94VL-@&`&T^TLC%;)W03RZ(N`PNRN>T$]7`>KX |
2431 |
MX4\:;4,6G$P6;(&)G?FC#^7OC*==\.@NY)<23D4":R1K2OP;HG#"@?E[ZT^L |
2432 |
MA/R:::1U"R9%Q07JLC?$PXF,U1KHZ$3[`!D]TVI.F<TQU04&$G%#4D(GTE`! |
2433 |
M[7)KB'[#D5MWQ&0S(4-+T#C210L8CDHUQ[Y"8XT-IZ86>OH:5')3*'3\=IIR |
2434 |
M<8(7O[&LYS4)O[%LJFYCV7L+KY)IN3Z*0.62'R3\UK).468H4(F,=CS1IQFD |
2435 |
M68Q6#<KX)*/?RX&O%US$5JW!A%=35UG]9L9)@UK3)C.U;*Z,GD-@/:@:+P:H |
2436 |
MW--[IO?.<)</4BSX'IRF[K<(E(ZTB#(+\D[J19O./LCFUF<R_D!U?A!^R39\ |
2437 |
M0F?/:JB'I/=(<DUW2^LG'Y*[I)W/%5A>[XL:,_O--8MLD]6`-)\OFUOO\SK+ |
2438 |
MZRRO?U1&5F,UESN&U0BKM_&3(DR-^WIZ1N]4_W%='DF&>[SR*1J85GU_KS^Z |
2439 |
M7YRVH9JYV:,NU[!)E\UU6E-_O=.FAE^Z4YF799L:;'3:U&B]TU?8/4+PV[X9 |
2440 |
M/8/3QXD]I5E#<B8\&K-J:-%G]Z9M;)%G46O"ZKE.,'5.P_4--SBMQ\]8$N`R |
2441 |
M:[JAT9=.&YTV-OBZ+X.W?EE],KI-3O>4I@S.&987&M=`U7_7O`V.MZ9V&;>M |
2442 |
MMMP!RW\ZY(YP?$KEQ\FNZLY'8_D+<SVR^CT6>Z:/Z_-JJ&),?O"W\[NV6]3\ |
2443 |
M:?K!R1MM#LQMPFL`.8QYAD>*H`'/![YX\/0</+LW5NZ9*?&4!J>/'YSC]V'* |
2444 |
M4V=Y-:E%@H,?-]K\6X_[57BM/QU2U@9$CS9P+QHL]QAIGN(^%;)\<^=\U36M |
2445 |
M8ZS9+\T6U5Y5_^<AQ:UH7YU:]E2P.5*(X5GSL#=#7GG)A[SR?NF;.T9=O8J[ |
2446 |
M?&9]LYM#8OO\V5<YH@5!RQ!2SS<N>CTT9VB.C\(O=V2)!_;?]LZ6$K.HGN_G |
2447 |
MR3NU-N.WW,ET6^[>B4XN>CM,X?O:+W=,R4AAXYU8!)S9F<_<:]0UHXUW[T7K |
2448 |
MPU03WX\KF*OJ3UOO5&9152VQV2QLVN_6?,6D#57YG7<2>[J!&F[1A;95B&E; |
2449 |
MA27FK05*5/IL&CO4!8T5>6,!?F`ON)3<N!TV5WP^*ZPLYK$$%69?BLU:@7#5 |
2450 |
M`F@S.I^FI:H#2BNPTB8I"X"2"NC6+$^(+2D#/EE*99H9D3I"'ITAI3GP=&;& |
2451 |
MI=I`$3;+Q%("[\68(J9A#>4P-Q`;JS`$6?"LF$A(9_P38^C\.D;J)MCZ6D`! |
2452 |
M`]W![W.L0BRF""QJ$4][NHHZ:(GJZ4:##S&6+>+?(NS.-/P3X[1-14T7M%]S |
2453 |
M4<TC0.T%[EK]5M?J=Y1>O]6QLJA?2^(]%`89ZY?ZL`(O'*2,PG=7`_U6YY.4 |
2454 |
M/I@P"GJ5U:^C5K^4H:.Q?JOS?:.@WR'8P-.#5,;Z=23]FH&D@*?+IW3,::3> |
2455 |
MZGPF[,L^IE[*HC8'<U/UJAB-!FR)2S6!2RU0%=`U&ZV2:>CB",6Z_C_/'%/L |
2456 |
M4#H;5(\U=@=JNFJC5;HY:=N:[Q7XKVK4H8]"S2^@#+P\K4CL7KHZXH5VPN\> |
2457 |
MAGK#R_6$[D"C5XBS\$5GAEK"#%5!+>!/):8DL9"#UX\S%`M5Y70_M$KA2S!1 |
2458 |
M15>@`\>\4$`_^$JUAF*A_^P!ZDZZGK$M=8)4K1K(E6^P+$$9%*B0*0)I#T.^ |
2459 |
ML[8=D^%X50)%L]A<D-%^D&+9@8XW9#14=+S1)T02()WM?L.1GJ-D5UF[$^W8 |
2460 |
MU;&U&/W?@9+U8[+3WL2VF+7/&T%M3IZCHJ8?^,D"S,;45U`/FR<;*#OA_E3F |
2461 |
MZSBH&:--WX6R1-FY=@$#!:1@Z1<&\ZTHC=ENU/3K[M.=B0*DXQK<X!\,Q!*? |
2462 |
MNK-&7[A=X%O8`K;@2>?9XGEM2(_YLDCG7SKE?9K0/XX:\Q=!??RZ>V_VEOF) |
2463 |
M`RTF>."<4UNTG_D^_S<ROK6^V2;`,:!Z@"MI^KZGC`6?'YR'QR,2H#$$AH#/ |
2464 |
M9L_-#$:8C;4*#42`"L4W_KSQ\+I$\KGL9L/98CJFHP0@\TP?S7-(FCHZW=.: |
2465 |
M@4)B((&]0B_!<&ZX:+$,3U_+1E0?X1`0'!_$YJ,]KWI%C)MZ:G#\]'$1@R*" |
2466 |
M92`+$.D58#U%5BK`%XW]Z_+]#;/(#LJ%)^G8?6$-9(/F><_S7GA*AI_SAMBC |
2467 |
M`*V9#-4O8F9C+"=6(0&\>`'\Q2/$BP45C)T8-_'3X"?!O`K89A\L+U0VJSM] |
2468 |
M3Y?!)#8/52$.,&.60;:+2U70='73`+T$7MG2SZP6"Q(,3/?D#Y_N_J+1U5ES |
2469 |
MUGU]@_6R0.D8RPDV4P<&"1+(,F0!DI$2K02C48()#:8U(`F>LZIA]4J/M8@# |
2470 |
MI&_`+,99!ME,::P#@6P'@G1MLT"M"%:9$U]76VPO(Q&>RZ;7VUQ%=X0AJ/D! |
2471 |
M@6R"]43;J8UY#%Y&&4::!<H"S49)R0Q-[P=<&G1W=.:BR\.3Q]T&5E769IKN |
2472 |
MJ+])-I3GP.RG5%D\D`?^%78UT(R(1TM'HP1PO^_:X;?QF$:?6,/0-IM;ZP\$ |
2473 |
M!C)`0.G\+$^VH$YHG<_J+L9CTU1LK%Z%R9CAT1Z0@AJFO!D&ER>CXV*+-@3G |
2474 |
MAI.Q_U!^C5]3<*HHTK:?^J,Z]1/"80$?EN$L=@R^IS`<?Q?883_2A9]N5J,N |
2475 |
M&EN5JD)K98W>#,R\P!>L6!><H':@B^A?+:`CL\)61$0$YL)TQ5S8QE\@QLZF |
2476 |
M*WCC.+L&,>.G8%5Q>$`-N0B4=IC<'1M.?EY=E?K^JC3\%U'K1P,3916<+39$ |
2477 |
MEK7IW!S>EE8!4_F6L9A&N336P`(;"(/[8C'?;UKI&L9&\$:$V<7Z`[3M9!70 |
2478 |
MT"FRIH=P@49.9O1'#MA9X]#>C#XD1"L%(9$.GE;?XO)-M43+AJ9O^;HR)/CN |
2479 |
M2X6TT1G%$Q6+1IF`ZA@&0__:*$-QZN$-?J2H_*K\9)(..QQJ%5AC?]L:$]UH |
2480 |
M?%H5^ZHJB)$JF&:F-5D58Y/U`G/6&FAS:+$PEM`.'1II3>@$SLP<&W_>A*0I |
2481 |
M'"J4FK`[3GUZ8?>)5^KI^D*-K:$=K3%/6V@LV%%"7:,UJ,U04=6U=K3#65@- |
2482 |
MY&L&Q?50N]0QES&H1#"H6LIKCQ=,*73--)4NM:RHU+)2DJB.H/Y"(4UG6PGU |
2483 |
M[()%-9Q@9!PA<%KK\":VH#0+P<2"6H1/GD6>7BJ)UL:<`53$_-Q4;&CCH(_8 |
2484 |
MTT&H3GY#G+RW0`,V1:AVA/S&J#(G?J;?@/R#[%4L#!0X83B>3V8PX_6F-18_ |
2485 |
M;G2F#R?0=$%F0I_/:YVZ\N(NO/LZ&HX`2@<&J%&ASY<*&JUAH,A29KSR.O%# |
2486 |
M[8G")9TR\!)]!Y7BNDC$23F<Z#:%_-;ZAJ@UC17%(B=)2XF]4#&QMCY,V_1[ |
2487 |
MBJ@J'*?L8#G3.M#,#L4I\9;1HJG,&Q/299X=I]IO;S^GQF1L>U<2S["<'NO% |
2488 |
MD\Q'B<VHH9!-I79<+9LGH]PLW5\<(`X0^5M1#QN\>?!F;Y")O#=/MFS)46YF |
2489 |
M0?V&FCGR4VR99]?MG;S<EC6<0+WE9B24A%A-V>PMB1Q?(D-3%03.J86UE'[C |
2490 |
M3[F1MX@_>-Z#L9R1TJ7FD\5+;&=:3:#<WI].PU[X,S]OFH]W0,']15]BOS-= |
2491 |
MUE=@+AYKOM3FJ,U\JPE6*(L2^<KFUR45/^\@6]QD>MW/\)CG_JVL+\\\0#Q. |
2492 |
M&C)AIE40,J^&UG%D-1-H$B=;$.&)XXQ!$8/G^=3Y2J;XPE<\#(_A$L5<Q?R< |
2493 |
M^92W[9UY*;0T\IQM]C;[@9MF/A'[PQ5.BFENXD'"L=B-#FPH\IMAES<4/([) |
2494 |
M&#G]<]E<VR"K\183K(.L)W?_3G9EEKO(\"`*UJ`!FL9;YFY-,,(^>//@J[[7 |
2495 |
M_6[ZWQS^G0OS[RSJ97@@A4IFP8].<9!N(>,+F5U[J=/*1E\T6=]T5:,MLMT! |
2496 |
M746&!Y$PZP9D5Y6L@;84EU^Z[NWQ2X]?>QQWCQ[$W)U%[0T/(FG+4"PD&2/C |
2497 |
MAXK/:QGUDZU"^SESA@=Z6KBTDP[VSJ4NBN"LC3Y%C8\--BF\>_!>:`4%W;%U |
2498 |
MK8E)36F1S("@,;HRK6K61J[2TA2)T'*JJ6>S@T*M[]CJN@O]@%T$[QKQZXWZ |
2499 |
M@\.!BG8RBFPM2UF*!&XVF,YW7]@H$3_]%(#WV7=-RN'&+/D501NAY>#*L)0* |
2500 |
M[OF!T;YMG(\AI,V%!3L4KDU9=E98,$VGRPHG$:3(IVF]<$BHM^`E:VS,JJ8) |
2501 |
M<7=LW$J54I?^IK`TLUO%%G.$^KS%K)"CD<7:8,FT]%O/Q&+UL*VE+KX:=F?E |
2502 |
M6*P--LBE%K,NSV+$X1^T&'$SM)A%68LU*(<;D_`+P9;E68Q8&EE,&.CH+-8` |
2503 |
MFIBRDS#:E"\M8S'BI+.8E%\BH4ETJ<7J&[.J:4+<QLAB-=%C_@&+-=>;J%7I |
2504 |
MQ=HF9FA4VB<9*]_<L$_C!%;:]08]AU(0:#5LJ&]+8P9:6F,=VPK*Y=/LA,[/ |
2505 |
MB$C+SZZ4PEH_IS?B;Z`PYW)K0$H"^/")KJU:2?L/4F?2,_$?6$.AF\3Y'4X& |
2506 |
M`BB]TV@/RD4/R7^0:3O1=,;/%49))@0?\KXZXYA+%/5?'UAZS*=7TT]^XLE3 |
2507 |
M,[/M$S>)1C<Y-?UD7S)65BO#]I&?D1HRF]@P:F).<,[D*VTO4:N]@FO'VGM% |
2508 |
M",=8NJ'%TJ_Z>PXOE9I)MC<,\S/@B/VKP'!,M_$R+7^#"LF"&T8UU(\#L%26 |
2509 |
M/J0GG[WW9.ICF?2B[W<&0J'\#<-DGO4VUO-LNM$>ZR3SC!C<`[/WF^\?K.=? |
2510 |
M6F79E++\YRWH,;YSJ.,(:^)OBY?+Y3^UWL9TGO^\T(@A'D%5/S/'408(!J)* |
2511 |
M.Y]L*/`_9,)_?L2PS<,LATEE%C3`>&S(7*IE[AR6OIH7?JEMB&V(_32;J98+ |
2512 |
M:>SRF*]N^H6!E!9DPGF$05<V`C-GF'#>+O.TW^B,:FF,U-4@@Z^:5LO'/>X. |
2513 |
M->2%R7JHS8,`X^ED*W['PC]T1[C,_]9VHAPB;<Y_U[WA\-+DP."R]X8#5P), |
2514 |
MQVGW]`3CM,#=`&,+`().`$QQJ[PW7'EON/+><.6]X?_[]X;I`9S*6V&5M\(J |
2515 |
M;X7]]]T*XWVWO%7U9O_O%]%%VE7KBE?2'3^RB,Y35_^KE?0FY2^B<UI3%:"` |
2516 |
M99?3'2E!^L\MISO]4\OGIMK7KY9W,5D>-T/\ZHZ_7![/KP:ZH\K?7!W7V:;B |
2517 |
MU7''\M?$*S*+X7IXL_+7OTN-4L-T$5QGD;^_]NWTETO=JTQ6MOM"?A5HK#_* |
2518 |
M7\IN`;JCD>E2=EV!,7X,%6[CF"Y>MS-:K"ZM-=\/\#6=1+^6Z03\$=X9S6]D |
2519 |
M]""N;&+7`[K#C7\TES5*'*$[G@IY?,U'2T>9!4H"Q".J"7GJZ2^(9FCSZ"]\ |
2520 |
MZJ#-H[_`A0AYAO$7_/&"GS9/=_T%F*;-H[_@6T7(8S^KVLRJTQU"'*95"17R |
2521 |
M&%4#!Q-?5RY?&K&L7+Z$RN7+RN5+W>7_I\N7']]&0+MDG"I:-*IPG\[_K<6B |
2522 |
M?5I>Y2T6S2M=+)JQU41:3)_QJ_&U&:?I!+NL)Y]9?*:92OWU+QTL.FCHL87W |
2523 |
M[UZDI6=D9KV49[_B_S?NG?XTYPY_KC]]?8_.\[2GBM>Y]^G\/7^:@Z=OA',\ |
2524 |
M?<6?OHWCSU]F:T_?T1\@OW]X\];M.W?OW;\?%_\[W9W]CY.I#VDJ98/%!LUB |
2525 |
MDNKX4(NA?#B:?[NF_N-DXC65ML=BCV8]275QIL5,S;A_NU03_P-EZH.N:,O_ |
2526 |
ML=T_^N[[-_.[&"X84[OA8+JU\/_K!DOW*J_!\BU-GNNN_6&PNCUW/$`,MJ@Q |
2527 |
MO8W3YM*S$[\`?)<($+&7$B9!H<1KPZ\_K>PGT8=+:GXJ-24A[L:EG;1FJ]MR |
2528 |
MB/U*+$UF1E,(GJ9WTE]F/4^X>^7\09J"&F]&E$))[,\4V6?/,*#H;,>>9^?E |
2529 |
M9B;'W_P]^BLQF.Y3E$!![*\1D4<CHWZF8&[J4T=/G.9.J_;O&F:!G.7N3U[D |
2530 |
M:-3R9TK5']&1W<!D2R,.&F)W[?]Y[\Z=>W=X(?6'G?MV[=JY8]^N[\=CCNSP |
2531 |
MAZF9Q:RXF.5?.!D1`L:['[&/K'=E[[X]>W;M%>W5#*:N=<N>'3MV[N)VJ?=] |
2532 |
M2_\%F?O#O2>I:46,?;AV]OC!Y6"Z61(G(JW<I&X:BOFD\:)?U-CF?GO][H,D |
2533 |
MI"J(/77D%QD8[Z?$&K9R<VLI;JEI2U0>KF)7CNC$D+OPTM6;A2P_G^6?./3C |
2534 |
M1##9=FD&):WH08T2-QJ8IKF>O?"G\GWL'^\*C_R\"RUMO"431U2MR%BM*,J6 |
2535 |
MZ,OHF'-G3I\\%KE_CXP/SV:X7;,)O*^])^KHT2,1!W[:O:D6A4SRI^6!#[4^ |
2536 |
M__67_3_MW1GF2"&3G*04G8UK-SYTX9AV'$X[8BJ!4PF<?P(XDN'4YG#U.G_2 |
2537 |
MJWTM/D3;)H*.G8>_O]_009ZN-$?1[14V"NQGYS-RU*@`/^^![CTI;J/Q+F*3 |
2538 |
MP'Z<>\"8J1,#/QWNU]^M`P>F&XS_(K!?;=^`H+RL&<%I[P:[]:P&)GN1_R*P |
2539 |
M7_MA_J.?L:P,EC+`K4<3,-ZV_`\$]NOF[>L_^3EC3_W[]>[>"DQV.5<0V*_K |
2540 |
M(&^?H'3&,@+Z].K6$HPW0G\DL%]+SX%#7[#45);6KWM7)S#9+VT2V*]:O_Z# |
2541 |
M<Y*'^R7E]'7MA*`QWDMM'-BO@UL?#_<^GWSBYMK960CL9[#/N@F46';M)>I5 |
2542 |
MU*-;U\YM+?C`?K4(.19MNG5S[=JE8POSTL!^59R:-V]@CPW.F4K45*+F[Z)& |
2543 |
M\BE,AB*IC:V-E1DM@6]&U)2([:MR58L=[.UM:!U3M[T?89-.HIP@6(@=JHFJ |
2544 |
M%56MPN<1F6S\Q_1T0EA)W!$46VY?K5K#.M6J.M:UM\7FT?0O`1`UZ8^>)"0E |
2545 |
M)#X\2TI-24I.Y5)5C^*..!!JS*I6JYN3W*9EPNM:MK82,/GW`$1->MRCA_'W |
2546 |
M[\??VT.HN?\@+N[^O0=Q=Z,)-98.56O&LY1$%E_-UM8<C/]H@`-5[XSX!W%< |
2547 |
MG#A>\Q.!YG;<O7OW\5S]X.[/!!J;*E6K-GO(V(/&=K:VEF#RMP0(FM'KI.LT |
2548 |
M<\C\N^@7_?EXKK5]%8>6B8PE.]O9VEB`\3\78/U&KULW2CQ*,X&HOELL7LP1 |
2549 |
M'8+&TMZ^VA/VX`%+JF9K+063/SA`T(Q>1RI=-YI`([&SKYD9U[CQ_9<U;*S$ |
2550 |
M`,9_?B"EP81N1&%E:U?-P<ZV2C4;*^KWC?X6`2$CLK$5VQ;;6%M9B@@Q9YL@ |
2551 |
M8DI$5C:<3;&UE94%1Y`9:$V0$4O-S:5B;&C.5@*F$C!_`S#8QC2IC"#Z/Q5! |
2552 |
MM'FEO?^G[!TN$4-GBADKK2AFK)R3Z\,!'OJ+F+'R9\_T`0%#_S)F+.7^9V+& |
2553 |
M$MW;M-6#_V;,6"+[EV+&$H-_-68L\3"("3@LH/??C!E+#`QB`@[_9?C?BQE+ |
2554 |
M]`91`9&^H@B9^[A]IE$!Y?";051`I"T3(7.?:-_'HP(>O*"J@F]CM(U$! |
2555 |
M^V6,'.W9M45I5$#3F+%N%4<%[&<2%=`T9JR;263`194>4>D1E1YAX!'ADK[@ |
2556 |
M7WX`Y3`N3.\.(_\B@')8OWYZ=_CD+P,H4^Y_)H`RT97O#A\-H$QD_U(`96+P |
2557 |
M+P90)A8&WM"D>=V_%T"9Z`V<H9E7LX\$4"XHZPQ$;^`,2%^!,[PO)X!R&+@: |
2558 |
M.`/2FCK#F[\,H-RZ6?U_+H#RH(S)4_P].MA-]._3V_]O!E`>!.`O]M<`[7W] |
2559 |
M!P(HA\/WE9Y0Z0F5GJ#K%<J+(CZ!FZ#W!:^/1A&?T*"!WA/:_T44<<K[ST01 |
2560 |
M)SKT`Z^_&46<R/ZE*.+$X%^,(DXL#/R@3OWJ?S.*.#$P<(2ZKG4KC"*N+.L& |
2561 |
M1&W@!DA=413Q!]P#4S>8`+4-W`!I3:.(OW\@>O!Q-W"J6Z,B-U@G7O<1-^B3 |
2562 |
MX1_0UZ6QI9]'A_8>Y4417U>Q&_0!\!'DKIAE.#]`R |
2564 |
M2C+')`72"-'GK8E6!.9,BKF0VPT*<Z8+4V_!S/C%.$T0Q;<WC&6O\:3H]IX0 |
2565 |
M4QKX7L2OZ5'`305=5(`06<U6&]=>B!IJHZ4WR59Z\4XI0]U%S5`JR[#T^J4B |
2566 |
MTFD];5THI)MF$(4`Y4L<2@%*^?I3@IJM74N15Z<QD5;,H7A:K%,C$CVD_6%A |
2567 |
M6%;11,!$_C'6&:2.R95:_[=H/5P"4!.*PA]>O/BP-`H[2\V2R[-2^0>8]6&D |
2568 |
MJY6&7Y=GOW[Y\G6VG,*O;U^[:OZ<*5.FSUFX:FDR9BHG8+3497-R7D%>3DX2 |
2569 |
M0$[/;KT^Z=M_@)>W7_!\"ABM2:2/.#`O$RM:5)SUX=U[E2H_5Y$&D/OC^>-7 |
2570 |
M;]Z\^O#QG>OW*52TYCE]7.<?;S:.$BW*?B-7(.';8Y^8EPD2C8/FVY?I+E[F |
2571 |
M/OX!=H,`T>+LG)QWA>_?9CY+UH6'WK4+C@OAH9%N:`+17:>-H@8!HH.T\=7E |
2572 |
MV3DO([*>IY;&5]]%&YEX8@D49^R&^Q?IKH-!8.@@/K!SD3Q;WNM9:@J7\I8/ |
2573 |
M#+UKUW@W+)<"0YN!ZAK<I$T@1A&A]U*1DFQ.KC8WHQN9?$3H76YB-Q4<5]RF |
2574 |
M!?6:MEB4/@[TTY2$DR?*Q('FQ5,?QV(<X,VUQZDI3Y^E)B8G):[<9A+V&3,> |
2575 |
MYXZ7Y-(3I"6=YI,J.M&S3F_N[0GZ]%-?OV'>/K[?;#,-^7R<#_F,>G\EP;<9 |
2576 |
MO+GUQ]F3QX\>._QK9-31G<:1GH]S!25*/O-\S#P?QP[;5JQ?OV)%.!>NG#MG |
2577 |
M1I!1B&<UA7BN#^BD=+%K)7HKT?M?B]YPB1/?_D;LW1M1BN"+U^[$Q=VY=K$B |
2578 |
M!,???Q@?__!^/"'XT,X?-JQ=$?[%FHW?;:H`P9)6X;=>Y:8]Q($7*$;X^8\, |
2579 |
M'#,V:-+TSU;R"$[@AW#E()@KSBQZ\SRGN%B1%'\5D;C_XJGKMV]=>_3DWO4X |
2580 |
M'L)/Z2.V'`ASV;GRM%2DE.^CZ"EE,7SS3S)A^FY3#'/9V?*,U/3<G+0G24DZ |
2581 |
M%,?$P*E2%#_FG\#P-4;Q!"V*LUZD)NY*2$PN17%,L`&*TW;`[=\(Q;^5HG@" |
2582 |
M3YDES\I(=TU,YBD1Q3$Q&X.Q7"V*8^%*&13O`1[^G%SU4FK&Z6`<$RP.5L&I |
2583 |
M\F"<FO+DQ+$R,.;E4Y\28'SU87)*ZM.4Q.3$A!7?F,`8,Y[B3NE@/(^'\3R" |
2584 |
M\9W=XWS]?(9Y#_;VV?J-*8Q/Z6`L1V3*$<8W+YXY?CPJZO"O$4>B=AC#^)0> |
2585 |
MQO,P\SR$\=;E:]>%AR_GEBOGS)X^H5P8>^@;X4H(5T+XOQC"U!([@LK?S<V? |
2586 |
M,,&#V&WVDK"P);/#*P!Q>-C25>O6K5H:%HX@CCX4L6?7=]]NW[GWT.X*0"RJ |
2587 |
MY;/C]OV(5<MF`;R>'3)K]MSY"T(7AV_XF@=Q/'U<+A_$!0F'[Q44W-LBFX=0 |
2588 |
M_/7/F%MW[]YXG'#_9OQC_1CD3/D@SKQU$"EO37<2EP?BJ^?)@*G;R@%Q5MSA |
2589 |
M8W&WHWZ]GJ`#<5P<Q)2"F)YX+3GK;0SB<:1@+ONM_.F5PS]./G#A0;(>Q7'K |
2590 |
M#%",)5XZSJ,X0D#QS*U(RZ,X*S7^5L/K\4E:%,?%1:_#@K4H_@U^JVZ,XO<7 |
2591 |
M=@HH+GZ9F2ZB)_]X$,>M$Z]#P&E!;".`.(-`G)B2]/#8D3(@YL53QVA!')^4 |
2592 |
MG)J:G)#XY/'RKTU`C!ECN!@MB#O.)EW@)X%X5^#0H8.'>`WP&K+E:U,0Q^A` |
2593 |
MG(ZX3$<0WSA_ZFC4X<.']A^(.+S=&,0Q>A#/QLRSL=I?+UV]>BFWM$"V=.:, |
2594 |
MJ>/*!7%__J)K)8`K`?S?#&#M>%@DM;"0BJ`I:`)I$2@0E5`H<>SL[M[944+_ |
2595 |
MN:'_9V(K)H4/(D>_'\Z?_\'/4015H<2;$DL8_1^Q%:V;[$<.Q2KYCB[FF"IB |
2596 |
M../@EX3H&3A5\?G^E@97)4R3S,3\*DI5T,0PCA9<\..8EA=_V5M_F?XZ6-.! |
2597 |
M%F,":5VF&DCIH<`.M$X3B.?50<PTF4AJQT0*+J=$D:/@%)K7^%&2HZ!__AUS |
2598 |
MAZ5/%](3N$2K!`?(]V;LSH^P^1AC8U!_F'!%%7L%#RZ6NZ*)O<)=P3QL:&NL |
2599 |
MG3=]\7DTQX[;'G<`%7-T%/ZXE[XIP6JW:`^WFU):MQ926FM)N`WJ]1O6;^`V |
2600 |
MB-9S&[CUF@WTE[QC&!/^DI>^1=J*A(5*0E6+0D,7X7?72L/\9QJ&O,8%-"<9 |
2601 |
MZNDQW7O?G!Z"@QES9@[Y[Q2OVRT?.[Q1V/>;L&J%;++W,!:RF/];BIQ+G2/? |
2602 |
MO(F:V?RK)6@9CM.(.`M.))`I+FWOTMRE>:?9OU):"?>=6JI6/U]+&SZ*V;`A |
2603 |
M;!B%`LFY="EA)/W_*<?68MFJ%ZLR*8.8E8!6%LR=?6G[)4!38P4XIEK.1*SX |
2604 |
M15A**L\I?=3P+<"D:.6T;.0%[.R/9UG$CP]P5H!Y52L8>S'W:F&JP+0`],(; |
2605 |
ML<W#K$775CS;&!O[EL^J>2P@P9CO@[,_,IYOT265*B3U[L7T5/JKG$*JS4\A |
2606 |
M)WFF\DL_ES*]IBHL5CXMS#R71OG,D9E"KF5&4O)"GG^2P"4H'R<F)CV/Y;E1 |
2607 |
MC=B8*3RWUWIN-IPYST"3?8F[]`'8@Q]_Q&I&T9_CH+`Z3:U?.".8\L^K-.7_ |
2608 |
M7TP9+NY;H6>^S<YINVS,\$:?;5MC:LZ7T1T.*A21TYNNF5_&G-G1FSLV:=O$ |
2609 |
M9>K.N;PYORW/G/+HZ/M^1N9,*VO.K.C-T:7F7":8,SG)U)Q9R,O4G.%HSCE7 |
2610 |
M/R259\Y2MF1.Y97P9QO_O)R;6,:<>KYZ<RK_4*FFI=RY^#RQC#DSH[>7,KVJ |
2611 |
M^E!4D/(A[=PSO3DSM<STYCS[\!'W2/G@\>,G*9?+F/.5GIO>G)G17'2%YOQ\ |
2612 |
M^L11'_/,2E/^UYGR8Y[YXE%"R]"1/@UFKIUI:LX'JYON>?[\YREU)OF6,>>C |
2613 |
MU2'-ZC2JTV3(?%_>G-MX<ZXV-N?#U:M/]A;,N88WY^?)9<T9OSKD_ZP5'IT_ |
2614 |
M:L#167']"GIT7@*:A1J=/W[6`:,S[_#'*]BB\R+<6&#(__AZL.YNU]X#+RYA |
2615 |
M1.<%F+GPZ/RZY\>/])NG=M^\A!&=%UH+$(8>^O'QVZ=;GVYONP&/3IAA\.C< |
2616 |
M<NX\X_D?9R]<N'CU`$9T7H>;!H_.<ZV,K3BC,]W5UAQ?SAR-RB$7E:"<^:\1 |
2617 |
MZ/Q_D+/U[X/.UN<$M>##09/6H*/T03P>8)L?0@.['&%`F3]A#`S_.:`B/.`9 |
2618 |
M^K^-H-GYO^&0&7L^^(P]:3R@8WB0!-B`UF+A_64`.>(?Z,!WJ(@(@@'VSY]" |
2619 |
MAG"02>&@?4_#VX/US*`#<H@ZF9X'Z<@>7*?U,-#AM!YFA/3VCYBG]>P`FK<C |
2620 |
M$XA+4>5V:`*Q)1![`G$D2**>A^$_29@3%>,*-P`E:?:P@;@``%!+`P04```` |
2621 |
M"``B<F0Q3B05*SP```!#````&``5`&)R;W=S97(O<V5A<F-H+6%R<F]W+F=I |
2622 |
M9E54"0`#+X"*05%YR$%5>`0`Z`-D`'/W=+.P3.1FX&28R,#P__]_!ABI^).% |
2623 |
MD8&!B4$'R&8`R3LPB4SIUUP@P,\<7'(P4OC&''GQQ/DM(@S6`%!+`P04```` |
2624 |
M"`#8F9,Q_V'3<E4E``![)0``&0`5`&)R;W=S97(O5&]O;&)A<BUS;6%L;"YP |
2625 |
M;F=55`D``W<9QD%1><A!57@$`.@#9`!MNF54',\3+KS+PN+N#B%8D$6"2Q8) |
2626 |
M!(($)[A#@.#N&TAP=[?@'MP7#[`X)#@$@@5WA[O_W_M^NW?F5/69ZNXZ-35= |
2627 |
M54^=,^$?5.1QL:BP````KL([677D>((D'@PPDD,ZKUF0`]CLO;PLX/E_=UYG |
2628 |
M22)2@NGT[J,K`(!-_#\"`C*R*)!"=#<%Y;?HLS@D`#R(;<%P*`#``%"0E=+T |
2629 |
M6CS,]O32G+NZ?F,]CK"8QI`@E3YF>/N!X%/\.TR370KB3\`_KR(84`B!'`6# |
2630 |
M=I#=2Z.Z0HP7/D5A;*5!#&S*WVVD,0D8@-/%A]>Q]=;"Z0@E%KC6VAK_O??V |
2631 |
M`B)=XVK!U_^W9W(GRL/CH@`\$AZ0IQEP!8*`#D$M`=PG$@18;(%38AB0W/(& |
2632 |
M9S@YM*M#T#B`?F<GP[3:NHP!AP&Q.A1_9JW<^W!+X1$HW-OQ9RPG!=?QJN'@ |
2633 |
MR2G$^\D/)Y#?6W_7O/,B]ZM6QP[C.H;354U`ZXJ.0AKH$]DZ<^&7PL`O'SF[ |
2634 |
M!*4[EIC4.^8DI#D[6)0NPGDQ"[^`O+2^S.AD7E]H+*#HXH7H.%<&_CS=]@;4 |
2635 |
MC1R+>YY+F"%V@ON#`B\K1R060?I6B#1&CZ-E]K.S,UDCHYR?8V.D^DWVA)XK |
2636 |
M[JF`IIL/%KU[;EC0OV.4^T^`WC].86N!SX;VRRU3`BFFDCEO6`"F9&?BS\2U |
2637 |
M^26GD]<S!;&.N;Z?5ZM%%+S;MU_2KDE>+\JLJ4:246]3/P^-U"L.Z53I,?LU |
2638 |
M=OI>:S<%%(KOL(J)Z?_=WHY@URCVRFQ7TSFW3`:P2+<J$I=KHJQ.9&AI).:T |
2639 |
M<G\AF]-"-?&$IAM^L/54MPT%?<6C6S)$Q+_8^0T'Y,D:&:]1D#Y_5#*P7W(: |
2640 |
MT;U!$(F^#B]T/*9NVOF[?84:`<,P:>FP*CI:=#%_-'$+E.M\1@.DIZ>3D).? |
2641 |
MCXL=:[K3]8<(%.H&W(`.0O_T;@1MUTG4.IQOCS7J-=IN2>H6RN&JY(B'KS@, |
2642 |
M.337.ZY)WEWN>X);,.?W@"8X8)"WZZ#ZCRT.`%5`LHRI*>.;YP?^W\:!$O2! |
2643 |
M#[R%\K%@"E2_;1$'QH?]#'[K\0_M'I^[CYGZ_?J&C2O=24I\@J=L6A?^O18$ |
2644 |
M\U`?A!Y<34.^]M2)M%7=-A1PNFFK#>NP=`<'J?I'*0."85I:_M9OU1XZ:]@X |
2645 |
M;T#Z"V])@A6/)<N674898FB&\UN^A]"*!9A=_.R9K2%7G;HU1V3=]\[!D]IO |
2646 |
MIT/,9HX,VIK+/+7H$IIV-5;3)71O*&\2E<O+%(XOJ^56/H#D@@67M#_9BX1\ |
2647 |
M66&WH<@_\[KG.5K[N+P?^\):D`?-!E#9Y3A%7?4-7['80>!K)/G[\+#:DTNA |
2648 |
M3%$!V[06DG?HWUA7)*\O-4HF3D=W(!!`#J`R![00\"`,,!^**4(2#JUHTLF) |
2649 |
MDY'OH0!A7B\H#Z%6S-4UL'^\>G3^;WLLTZ[1885*2TN-!"W5I*P\@@"E9$8! |
2650 |
MZ?R/G3[N53`0>A>6`?G/A\#+.1WA;)4?/WX(.V^@=OI<;NS7=!MM[?OG^%]] |
2651 |
M3$A(`.BV>W"117[%HQ4%?$!.GX51OMX]U*K0+MJ+_9I&5ZQ5WV81U1(CQ0X* |
2652 |
M5SD(F[)I6(+0V6R*!T*EDK:>K@864/(0[F-=P2(/OK=M07_+U@\^&1FZ=3?G |
2653 |
M2CZZ/T^\=IP:=ZWJKZ9=<U$>HO:'92(02O\[$>7E?F?#K$K9HLFEI6QT@0^G |
2654 |
MBD/F7"(3JX>Y?.:KF8C1C%%EH4N@2=\WQ_#HF.W-V%1^2[_`\>W<RR(&.13Z |
2655 |
MW=\="8**&*?Y$$"D<KNK2(*.;OI>/JKM*]9&U>\V/4.5NCP(:@R]"BR-G'\T |
2656 |
M4ER1P'I"Z3ZFVB7[L`0^>S!/A@Q/>E12=O>[$+4_.5;YB.6/KX<9O41>=MR! |
2657 |
MA)1U)_^--V0NW)T#`^H7U7"P"`GC9\N)Y;<[L;]Q#AO%878T/;V)Q4U[_K7] |
2658 |
MA]S54\+M;^IQ5\JVC0@!Y)8YM-JP?;K-W4[4XP`#*B<'SA;S9.'GGX&$63MD |
2659 |
ME:<3V[*A8UW9HF=/;GE'J\E,R-?RVE7HY'H.1E$:(L/E:WDY1;0<,BQ42F9P |
2660 |
M3<C;7T5(UUN-I?%9*J:F&@=XTYQ865:LM'LZCN>^F7AZO%^HWR&_.EK9-_Y3 |
2661 |
M7-2:FYU2;#IC,MGP24I*JM45F2:2FSR/C3)>?RI(1!5KVJ`Y^-K.&R(T2#1' |
2662 |
M`]]UB\BPW0N7&Y].8'OO;BYB[#64(U.YT,#$`$@ES;Z^U0\3Z=\_3=AXT7UM |
2663 |
M\,-"H?48TGFAOFX5E)49ON?_L>/&^<</.@9.SI"-#;X73#)[J;/QNZ)J69); |
2664 |
M,\Q/ZP/D.=;3?\4>)'=VIPH[KE?%$-GW<'1XJ)%4RR=/;I&2<7--`5/><O`! |
2665 |
M'FNY5'[I[.!VYY"7Y>*848UAYQ:#=KM'M5IG@Z0U)$G=MO%\(27XX7HO/,E( |
2666 |
MN*3[*E>AKKC=N$4R@:=>6C?MJ][$4;]W7="#O`9[G6A8]C6FK2:MX-IB1B1Y |
2667 |
M)%M=W\S]^YL_48\#_8*&_,8!^\3G0NVQ]3N[WB3!$0LV<"-M1+%G+D/@1!LK |
2668 |
M+'`X[TN=_D0FMP<57_3.,>U#\.N^B;TU4W@0\'MQ,9_7B4G`_:%0AN#GD>/N |
2669 |
M9Y5@,*[7X^7OX9&1,[]KB_7W01Z'B\YC&X-^5_>LI"S=E[=X]AF7B3M_,F$" |
2670 |
M<'(QSZ.#U+2TL&&+7@L^4\',.KVJD)`0IZ-E$7M!_595!P=N_[N+6\AD-Q^Q |
2671 |
MS^W9%K=^_&JG;[W_O<?=U>&^.^Y7`O'3?N*T,2O`],P,/K=11XO"1(X$T&:U |
2672 |
M0T0Y4W#.F*-2FV-G/)L#W<14(F;*(RS.=LP04+Q[0-?U=)QIT7TFHN_Q5]W* |
2673 |
MO>6("0L;FYV-#:J6I/A&1$3$P/>P<77P>2!6OWM?1UT/$2WAX+)VKWO$^*OZ |
2674 |
M]DL=\9$!YO+&8;:&AD;=TF&E7F/$[*RF=J6N&J4#/<HV:,-MU>'JJ84H:#?$ |
2675 |
M@]/+AO<8\BQ(<!";@N#(4F&-)),8/UAP[<A)2TSLFRYZ-C48I"`BRF0,^2!. |
2676 |
MJ6N_F#WZM%ROBY`;L<=#?GZ/T.+PZ')@YDH/?>N07\SV37ID6E3Y/14CJC0& |
2677 |
M@N605\C3]MUL\/O;"7]V'Y;]E<YJPE""^6R3QL7:7!%8F92^K545H`2DX<<? |
2678 |
M@??XI<]AY@401513Y_9/5*>G4I7MMNNXTR_'FV^?'5?-T6@DIG>^/C6Y1_,_ |
2679 |
M_^9:@'O"M?,D3>I2#/XN?I<"X,+8:(,&@H"@-%'W5^[_9H%P"[YDWVYD@&DT |
2680 |
M.QBJLCQ-6UXA2RPR3TJ/;,RZ,#BX?2>UUDF.3TR4Z?3)T'=9AP,SA!R?BCI4 |
2681 |
M=]+2**ZS1+)5*K4K,M$Z&]O<]U'<\&05?2[_;3TU=_NV+89@$E\89R(R!/83 |
2682 |
M;O_UP+NB^`=,Y$SZ/]ZA>\P%K9B"[+BS:_;'`]LL34I$(WIT8UI!P)K]S<+. |
2683 |
MBTFFR#LNHPNGUN!6$?3;@WH(</7$_0]KKH%>#2F'=JWMW"MU]0[T@^O#)?D* |
2684 |
M[2JZ)(#'Q%X72![H%7C;#$SOC2CHP/=;;UJW6AU]0-^I.\D/Y0BZ3M8QLNJ] |
2685 |
M66+GXN*XS@0RY!]&FYWG%#YX'-#(S07-60U9>:X[8465]XP5LQ1&2%W20CF; |
2686 |
M%IU%LX]B1R]<@**O^V53MYV_(SZ6"[42;TIKV>/!YO"*M,6\8_'Z[H;HE.JB |
2687 |
M>0>$"F]^.@2DNV)[9.*6$&>A_`NA`!!QL3#=[AS:WT_X>ZRCK:\8VJUN]]?H |
2688 |
MYX!7CQ8+)_3'])K"43-01J>/,U0_AHL%%+7!J:FI1W=R`U52N0V7I<T$,PFE |
2689 |
MX]+3AW_&,Z6__D2$1"+5##&3P4AD18!<%Y',L1!P7(/CZ,<!^#PBJGZB1IE; |
2690 |
M]10U/R]\@(?N$4K;WE>=VZ8'P`L%A?;!D*#$JMZTV6Y'F`;O.JLMJ8!D0X]. |
2691 |
M<\/=4-!^?OWIAK`2KSKP9U[VJ*S5X]UEI7YSC/O^+^?3C;=CV_29O(.QRN$\ |
2692 |
MLANO!\T:%]F%.Q,AVEW2SLZ4@C*O59AI!O)\<,FTKG@I<!Q<5]_K7^Z5Y!(1 |
2693 |
M$O90UW0"&#R>6N(3-M0E[RQ(C5!T'69><W%%_^D+/5]VG0#>H$*@HRE<G?2. |
2694 |
M*5`W:;'K:P&[7R>_]!WKK,:H`"E<^H/ZCIT#1RM=B6+G=%E#O6CGH[#K](,2 |
2695 |
MRM<V#*?.SJO!NO*!M]JM^>Y?;)*3Y++E/C_:1A?4L_H]7:TIB[%S(ZY]'_?Z |
2696 |
MNFL]_6]+JU?8V5PQ4%4.5+X2A!+.OC\H2>,2QK$Z4*G%=L*`R6!M3,V@)5%Q |
2697 |
MKC>0OOO\Z\?)WWAC&.B2JO'FJCUZGVEG7!_^3S5:OP3BE5'\N;W6;VD*ZX?K |
2698 |
M1C\F0$U3L]_<W(%15DO$2+.WI#V025P\JZ;[*4,E6Q08EYM;DS2QAF%/%%?' |
2699 |
MRWLPWY6]FT8AY^_&47/IGYJ00$0"=VC>C+`6I8UQZ5F9J]#Y[<*;NTHS-C%1 |
2700 |
M@LRR-&(>E5DN;C:_<S%#8+X7NW_`U?@`3X!'I7Y[2JRDGEPLG<1\HUTJV6J- |
2701 |
M\9J_NHT-V_/=;VKQZV57I4S!PQ5G<WZO\S7'6Q,3[%Z28(UH6=[4T^4$]#V_ |
2702 |
M3=FL;SRHC*25:]`@:@`(Q(9Y21UY+%0UAZ)DJ2U7I"R,UW_?QL#(F)\UW79_ |
2703 |
MU%Y!,4^T13%_J,_,FGHO:=8?IOA[9*_6U=6%")L<L7-5UWP^)4_/[S=/D(6' |
2704 |
M;FG)S)`E63@YLGIY'*9M@'):)O-&1[9C^.#\CT=F\G0DJ3+G>UGWW'6T&)K6 |
2705 |
M=?NU8E'A;)3VCT7#7[;2B#/4W'1G-/]$+TX^#:O>VMKK'.!Q>)2LRX83K_\, |
2706 |
M?X/WBX#58Q"$ET?@A8]AMUCL/[Y_[$_F78WSQ+LIQ:*:._$U@:AK.;[OJ"HS |
2707 |
MOM7H3S2:9G#O^J`SYQLO$B0^5%,C7&ES=^4W^ZI`KG(@*.;3JE>W0>QS?=37 |
2708 |
M]'FI=HEVT9&[3S]H3/O(*%`IC2=?6\&9/=^4S':V-'_LN4P#"21C:,7D_/S$ |
2709 |
M0_'I/>J=C8SHX$W0PLGJ[3-+B<48QZ[;;T@,9/::JF[!/DV)Q5XPDYJ3>^8I |
2710 |
MPVZQSGU?>_7A-]%@](3?;YEP`T7*5^4?<$PC>'2AP@M7&M73E<I"?VK%G+&N |
2711 |
M6Q4M`5>H#LSK[HT7U2OW*C7ZS0Y#WP/*Y"$&+;M"21W(/J*FDLK+Y/V-Q7I' |
2712 |
MA[B9F5E89.3FS>GFWZVM^/CX/Z`.O(";/[YM*Y/9=NT&0PWM1U;;"%]V3L[O |
2713 |
M)WZ,Y./DVAERK]`W_(T[]8O<IA:M2WPD5OE=XR$G*)7W5TE5_FNZQ![!7Q2T |
2714 |
MU'K+G4_7)PXRLB,,H:%O1WE_APVRX.AFHV3*G&C`0":&SCW#:\:^IV4'GR". |
2715 |
M$0'[\4MK',(>NW+K`V+DW.&<&H6ZW8<,'IFDH<17-!"KOF;]F]/#5I5UWKQ2 |
2716 |
M,[QZ\>+WBHH_Q\>+I8+!-"(N_:0/[&_"Y<S1`EMU:E:/?$E)/\6RL\\I74]/ |
2717 |
MJR-]N#_;`QV*)(^X-9EQ?/`=@^A1<;1R"6:.C;5PG[1)(E-&'VGXQ2]D&]6W |
2718 |
MN&\V"OME&>!K][].RJ,]6Z-$Y>SIGI['85G8Q=6U3*T07%3$3*&E]>H5QUMR |
2719 |
MR(<**^6-S4T1CP/=KE1$B%/Z-!;XPWKO@'K-A#O:J+C4`6Y+<M!\,@@\#SR0 |
2720 |
M=/^GR<J@#Z8R=H-1>^G31R4\V7\MQK?G,FQ+0H*C'"`(K,E38ZB1X7KQ^J1> |
2721 |
M%>PP4QQM_'`P7Y?M(.0VY,`E(Y#AQ7*O$$,_46@9298EX9H@<1]8^'9&+GD; |
2722 |
MML)0O2&'EQON\&8=3??'8>5CSLK.P>#VG&;EE7I7:V,V2PO>&/X:3QVYX-NB |
2723 |
MR@:<S+[A^!>L[5BT>":83@\GQ;'$V@;B0C/:;G7`#\0_LW)2ECOL!GM5U$ZY |
2724 |
MG.>KTA#Y\^_'3V?0L;.N$LYS@>U!6+<86EH<@);*RJB-#3.)W9%&)%!WN;O8 |
2725 |
M>\7>7F^]8G4V\L65_&;W7H9T''F,';9G@J_A,!#GQQ\6%34DZHC-Y^VRDIR" |
2726 |
M8T2Z`[VNHXJOW5+@0WRI+6%(B"X%GP4/VLZX&A<?2F8C#B,J7@GHCUL!&]CC |
2727 |
M8%ZJ2D\`Z6<*(XKYOE_P+3(VNAVO2Q@'J)H>$+A8IC'$*.'K]B;I$>':#D.K |
2728 |
M)@#PK&P*203MM']1RTDJQ[<O*BE)S,DY\E3>9YT]'8$#>'EY7[*RUMLO\.DU |
2729 |
MV7\$(O9_5[)(2L;(H%\E8PN7ERN.TX<V7I@6RKK$;*,UQ,LLM#]ECZ[0:N3? |
2730 |
M`B%P8,EZKNHA)/O69HFG/%.J3M^079-&Q4GX<#Y+T%ZEIY6OA[I;WQDK!]T` |
2731 |
M<ZPR*]M8`C]$0;M1]/W$Y?+#8D,1$]TSG_OAZ`S;3S$WO547QA/<N,BFB3:_ |
2732 |
MF+K**%LKXE%\NJ*\645D/V]5+\(P<XAL!-R.EM,_+S7='JIF"</&/-@?Q2U^ |
2733 |
M11H=EZ#78O>CX]&8S->:6@<-=PTZ(VM(",&RSWY5_\!`J]1^+(R+D?&AUI)C |
2734 |
MS<%@XBOVVSR;'OZW:M]?N(\`$A1SOW?YV.=T48E%/MULXD=$1CZB_+H\?O`[ |
2735 |
M=DZ!:-<LH\0A77D7-/<*THW6D'*]%OC&TM+R8G<J^--,<7Q.CHJN+D5-UYUM |
2736 |
MJZMR<5P0Q7PLO7BY8[<4O:9IFYP6V$1<8)>T:83,ZRB<R#JR]0UYB=)GLWR% |
2737 |
MD)YL;I>1H.058&ADUL/^-9]*2C@$\*A-P^$D+3ETU"L9UW58:"U(1K[M+KW4 |
2738 |
MG8E.\E,U_.@1?$$Y:2<`[V#=+EAUHB4?S]Z0[A&9YI-WN9C$!.,=(U^,?'>Y |
2739 |
M`J02JC$;739*/OKK%;>)35>9#"BKSSN\T6TM&R^TW=,`RPQWH<7B:B0G/?*D |
2740 |
M6(GD;<\?I[C4U*$?EJ,&"+'TLR4V2-%9##TD]96HST6I\7K;)CF>6#25`(/D |
2741 |
MDV"EI7:6S:8VH'T&-F?;9Z&YQ<T;3"=KS:V!)ZN%&(4N%K#F5/J+=*,1S:/H |
2742 |
MMKF5Q<ZKAF?"+C]?'ZT@@[>OD])FX8=E4E(2`26E@JUM^>KG^\E<,3=F^!U_ |
2743 |
M)J:7+&SO<T5%,=Z<5L$8E@I#C>:):WZP,1:M!W"B0(OF(ZC#4;B6)*W*?,6E |
2744 |
M=\8:"CF=VS&&H.R^*3@^P,KP7UAD?Y2_\%_83%MZ:=`=("$?0Q,/>X66CS&1 |
2745 |
MQHE!@,6&\@%5&MX?3FQHQT.AN\#O2DB=FN3[0)G^2I0)I$V_X;N3?+.=Z3B2 |
2746 |
M?MOU8F(HAM8<::XO@-RV'WOB,?'AP4]:1D9JRB#T_5.VU249&1E#"!)@:!@8 |
2747 |
M;$1`W[`+N7AE3*P&E7N!VPL*"ZT-F6];E:OK.:IK7\'7.L:WD)V8?W&D!=V\ |
2748 |
MLHNJ^.OT&>]0=G:N`3U;R^%V?90QD#$O^%D%X.%(`V!!4;"YSR)=]USG6'=? |
2749 |
MAUMV%*+Q@,A?BAF/"<J#^[E+E*%+S-M$E<DZM=S/<=XG4/WB+%5/JK)R?*4C |
2750 |
MWYEE`;O?(J\.^LMW]^\N?`L+"\F?<2V=&$],F'>6L<69QA:N(><BA5.?_]YT |
2751 |
M3W^YA/?XK+^AKD1RQ1"1.+)*=+Q?H/,W2<TF$B>D*C:U="TN)^!]6(U20/`E |
2752 |
MO%H*;1^&'`G^6T7\'T?_3X+<;B+A5$LGK(M/\Y_8UZ['Q^0_[2;-RI25Z"RZ |
2753 |
M^'Z?3/^OE5>61$@%F+]`J==B_R\UR$D.\__)!AIQ?H%TQL>K_S\+C>OBD*8\ |
2754 |
M+_[_3PK8OT#/RGK_;7S0^<_V!AM*W@Z9'UOV#3[K3ZC:^'X@/8G:^.XF.N'1 |
2755 |
MPAI%:E;E)S]O_ZZ'HQJZEJ_[WA$'6L>;-G?6RM**6&#H\+M!'#;BQ*=I@=,Y |
2756 |
MGQM=B'^@R"7<\TRH%#W'+QGI)2O@'?7KM<N8)-UQ%)GI?Y]ZEX2SU#^)=NN% |
2757 |
M'TOB[X9HX]N7;^@>)VQV#I'2M".$H=HV@:L@4;V$^1?'Q*5GBR@7TA4-?(JX |
2758 |
MCN!BA0J+2/&:7G%LQJ[$S<]"58*Y*(=N0S,PBEM?;/H)1]H@'FSOG+6KB;K2 |
2759 |
M(-,-!BK`H$+S)!%/#+W2;&Z>>(6/..$[,NF_/GO\'!^[U8RV2XCCP!>7?(&% |
2760 |
M3YPG1M4G1N/^G%`]+GY!$_B#-@V:C_CDET)H+J6R,/""FG2(T@2L9PO%W[B# |
2761 |
MZTH7J@`3RZ9N""GCC3BD*M\11"7VDO^SYKW?9;EW;7@H:,%A;&,YT!X',8$Z |
2762 |
M)/7X/AN:E(H+:C;OLNR-SB7NO/5-WPF`IJ`Z3H.F:%*&-+9N02]!]V9F?V3" |
2763 |
M5B06K_2[C_D=Z;#R+/"*000^^F^.4'OYT7G!/,I4BHT`SA2HSX3@3_SY'W^/ |
2764 |
M5V-8=<Y6GU:%.`0S]('FP3Y1:'QC5I(`<-FK->!S&(8YVJ1D-?=H11ZBAL"M |
2765 |
M47_5-9F.)<@A6:EW3$#@A$5B^9O!^K>AQ03L93:I+#=5\[,@8+-=E#CH4/6` |
2766 |
MX?'O<+^'-W4MP8H#CDFQQ_Z4.F]+FA<-3YC>&#Y@A3F/H\.S_4-`\G&G'-\\ |
2767 |
M&R8.(=RW[2N'&\\^#)8")$&S47%TANE@3)%2O/!EE-HTV\`IJVVZ,3?!7'UY |
2768 |
MV\EXPC-)K`M9D+HALLHK;.@J"-*9?$),K4!I*7-_GIV02ZPYJC0ZJ8!6$D3/ |
2769 |
M4/,\',90&2PV&!S09J-RMBH+.97FAD"&I5.[G8"[G*Y!>K)!"XA+IE:]Z(S_ |
2770 |
MS_KWG_QA5^CT78EK.@KGHJU$-!CPV4;<&L!F8:\W%L]LE3+5Y+R]A0!/HP)* |
2771 |
M1="JY.!*><1(A1;#>I7.L+(?[^<!R:/%`5'COOHYM899U9'>7W]15LB,^X#K |
2772 |
M;?("!-=9<U$T>1/9N#]!ZM]FMRI?ERP!9<+V6RB#TJ[P43#[/7PH2F7ZNCP5 |
2773 |
MY3KEOWA13H+?7VX2H5I!(GE!\^@&'&/:I&G<3$T%1/7>E).]"0@Q*.LPO(]K |
2774 |
M^`#=@<_3-!7?E()US(K<"QV3\8=[%)]FC'F4IJ)YD;<@-Q1,AQ4">`;+Y6F9 |
2775 |
MW!)O$YYY%[IU2M'AGZ>%<C)HQ'CF$;P0>REKWC9[9`'\5DMPZ"_:;/6"0%0@ |
2776 |
M.<7HQ1QNV=R#CHE%D?_EMU#_:./QV!,7\<7<Z38BL$,2W(NA[N.+4=@I&7$) |
2777 |
M3&E!-:IJP"KO\R.%X!WEM0`T,%W];*X$9/@0/82VBKHA*H[:3_C[28I!Y4LA |
2778 |
M'>Z]WX8U@?O6[91L<R9H-MX?!3,[%]7'A"?9N^T]?+9RFP;-P:^2*S2$@$E4 |
2779 |
MBQ6T*]Z,Y@LPKTPWA:XA[K)0OLTV?P!?]!$E@V:+]^#-L*,&NEN!R>1M&<&? |
2780 |
MT'FS]`A,H!(%PG=RY*0K-?*P-4V?65=^^"T]VFS*H[L1"^1C225?W[=:/`JV |
2781 |
MGOTCKI6%S;>MK5<#T?&2D`3O^J(3B_T<(?57^6Z8!1^3GI<TGRA:"/4>;9D: |
2782 |
MND-)C3%!GO&()04PON_(O'2!)MU'NHFQ*T![G3>H&&!*J\^C@!%/6PQ;G*_B |
2783 |
M&@U:P@73M-VW(!X(/M&FP?2W[F.F!E`T1?`;_:("E<+"V]V[NMYSCQ'FBT-( |
2784 |
MXR!%E]D/$NGO`QEXXN`I@*@$&+&^@%F,9IJ6J?ICQ[WZBV;@;_EOKNV02#C: |
2785 |
M*KC?,P"G5'ZY4=5FK<87Z]W+KM$9T?Q2KTX/(W],[=_NN`J[!2LEJ^X3@-^^ |
2786 |
M!KGI!JDH><T7_HZ[VHE*C+(.8KC]Y7XBYTE@&G1UA]B=!I+O$O#/#72G84I] |
2787 |
M2<!KC>8Q5:(.592QJ28EO;^],46;_?+,'$(G**NRM.<^5QJ=/'5&P27>H+I6 |
2788 |
M)O3O"AG%Y\Q][M?#J=)ZI."8A-]HO?"^EYNXB4JB8@"PX,UN)^\)5,*\XE4A |
2789 |
M\#RH6AP0XO9I6!9*.YO="K4PP_$<N8^:DQ!BA)Y068P@4O'%Q3E#Q"Y&\N5> |
2790 |
M7H^*X,RB5RN:<%28HJ2+@E5P7J:L]QQ(8\13$TE'(`J\0,?19-C$G8CN*,'? |
2791 |
MGP*$XMAZ4MC&5L%$_>%'7:8UR@$4+>$=U?FHOB"AM,8N24S#Y[T_V"0`F6/' |
2792 |
M0>>\5-332T-;/C76@VTQ:F<""N$ZNA*8?H*=*UW:5UXW\@_T`R8R]S*.->\3 |
2793 |
M/7D)HJ<ZE+^4\,=)1;-``'4V[3]L=\E.HP[D%0=IV0/IF<D/K#_]P$H'D=`A |
2794 |
M=OA<^8*&4TBT02`9G]-ZU(!O!!LRFNY!XI"98)B!E2V#I),PSS`V\9WY>JCE |
2795 |
MFUYTD.?)"<PPSU\/W$&7^JC)\%YM]S`4B>K^?`<Q$O43&BZ=81),E1->_X-3 |
2796 |
M;_?`84&>+0;D@6J6KJ7A.[#*C/CE_:$-IUP(J+`,_E[K=<6E9&TDS/`\C4'A |
2797 |
MI52`XXMN>>^;7]4[_J7E.$F\3!)>]Q31RQPA%(2?3FE))PI\-DP9OK:H+#U> |
2798 |
M]/GS.6U$KZ$Y=5H#++=KO<91_(]GH,O6VOQ7;6DZ&/%+/Z@HH34*&;?BPA(Q |
2799 |
M?K=FY#`ET973`E0M\CWR-?37,HTTR%)8D+&&SJ+.=*K`\$70?#419WD^$W]N |
2800 |
MLE_!Q*!R*GMHB97U/*\9$!XA"L7@I=6B?1F25FV;$6"5!M[@'"Z=D4J68'<A |
2801 |
MO,2I5/VS6SA975K#@46+%85>[FNZ_B1)X16"AUI.#CX"6%`V;$8SO]N<:JKX |
2802 |
M=[^GSMY1"G)&`WM<SC6Z\[]W];$WHXWVUDIVEJ00)CAY-;U2REG[]\Q[_Q76 |
2803 |
M/<=P@B;`FA1%_V/T/O^>+6\M@9E/:3PE5$AKRV-]\0-_?=!NV`<Y'UV'Y"\W |
2804 |
M@N6L=.QK0L*[H;#$<(='[+A_4_<H$+@J]*Y![B]PF#_#18G;B,_$@;XH?499 |
2805 |
M8"G01(ZF!):?7<B&PI+_C2;%>TQ\CSH=B#T8]PC%M67&0R.Q;58%2=M,'[^E |
2806 |
M!"RR2ZVWINW!;Y(P/!3R<%+M6U6O>B,7TJO,$8S28=5@4/W?QZ,S$TV=-UI" |
2807 |
ML<1__8M];]Z5<W]]^=)K"!A/%`*[@RL'R5N^&<%FL@3R?[>,._@3W,[Y#>;B |
2808 |
M)Q,DG!AO;9"I%$*`__Y*?>II.ZE=R*X.N[`\`7^YT$9QQZCA19BO^T1"ZN8* |
2809 |
M`(#Z\+]_`;H'T+WDO8(\;9AQ<";)YKE)QZ7V1N]!OM_ERP\">^")AFL2.84Z |
2810 |
M+V:BY:PP&263MMV,$XL/;*FBE_%#9D_H+*^!&Q5D7Z\PC8*^^^A!;=??-+"Y |
2811 |
MKH'SH\#2Q8+K#'%NRDE-^2^98)O0?S:?$X=6;/07VCXP\:+OAHGX)9)\\0PJ |
2812 |
M?JW4A1_&W+3)!)7(N-#'^IZ74<D71'`8#:,.=2+:A?C66^3QT'>9DTW6)`QX |
2813 |
MP'XQ1WV:5B*'\F-V54_[ET'N.=D15K3G,6_O[W\E%G6+C>.#K)7+!]2RO1UD |
2814 |
ME]JL+\[HI'=<,_]:4;X=))363#Z%EEJ,8Q3"T/@"XB`3>^P]@G`=2$@:[L7% |
2815 |
M@?O$,16#5_S$A4%HL6CK$K?YBW>6G=*LL9]!"^%;S+5STGQ.!:PW5(I@AYDT |
2816 |
M_.HPF`#_;1\/?S,&XP^FOA8T#%Q^5VR]/;>46+9V50+C*G&GC-Q00=`V3O@V |
2817 |
M31S?1_[$>U65674YXGUG+(HDPB%,!G<E&FO8DL6_LB:+J9<O"L[_7C7Z!&'. |
2818 |
M_2!]ES]0JPR%Z.$]@W>C>;]K9EB,=1[LCB28S_&?Z*:[M,E<K:J3"$Q=R;*B |
2819 |
MKE+304IP1H.;N[B9$_+-5S'V[@7+7^)GH77(W1XF<M-[1`F!!6VXWWZ?O3%] |
2820 |
MM8RGJWGXV,?LU:>5'`[5F5N_(A7"9CQ*L'=LB3*:0"85(:WJUF;WTII7L]?S |
2821 |
M#;SO,NX5DM-S4]/UB():D?4=B(C_+?%O#!V/_QQ`0$DX2&)(3YJ/]O?%"^DT |
2822 |
MG!"J:`0.26K@MDHE*^Q>SDZL"JPZB:(5/,3J1$610*@JR>/6`%Z=BI>C4:]O |
2823 |
MR_BHHHC-?B`W_'(41LWSS3AN6S/G=8G>OH>--Y:4[GOLH:#34SE/@4E[[V=. |
2824 |
M>AQQ+6[M)I+JD3N1W2ON^S!2"X4M0FY2A>\6JW(!'F:7J8\VV2+_S%P2+WC' |
2825 |
M5BDH2C]-#@I-EI[0QMEJW@(I;-47L*+B'GF"P:M79VV$?-8.<=06Y8OM.?1? |
2826 |
MFY(;4S3[!;8Z?L5).N*6R5:,DNA]=<=H;IGYL@J/?I#@@$ZSD\\GK.M#N')= |
2827 |
MUNTT8YUU?L*9*EI`GRVTX)X"%"T_K.*VA_T?;34`RR]`6F6?J$I#8R*FTH2D |
2828 |
M!QC19EV)ORG8.J1JZP"("7F?DUF<$I852([1.I23"#Q0"F<Q!%%`47/SP.^4 |
2829 |
MTB+@9>NH=7V3-,:HM2`<&>$W/CQ.*4J\*X108WPO12/^>8XP".;E2_8&)!;1 |
2830 |
M;"+WB<+K\)DLWKN+P+$WH2*P$SP#3,)-3!@G)VW63?/JIGX20XD+8?)_3ZVW |
2831 |
M;M8(I*,2@+)]EA<&VX**C@RXOWF=;J&%'@^!X_`?GKQ.23&P2[5=.>#!R=US |
2832 |
M->7D4WNB""^9/?QF5:`58.$65:`K%VU8]L*5]&C?;"/C9A[$U;.DGY'>]U)X |
2833 |
MI1,U>\?YT6PB81V1<D#WKF:"=5^JDGRZ7)/)<MC0PME%W+EM]]0^]HE]A+P< |
2834 |
M(Z_3=ITV+[+\C&52.>"XN+P#VXV_O!(U03-YXGL@QW<S>\;?QQFCNS7:=A69 |
2835 |
M0A-^QY\UJZ@JI$U&C>F$N[@Y8%VX&_.,OW^4XSP$E@O$+]$W#[-9=D5-<Z<P |
2836 |
M5-IJ?%>@'7@N3OH\3LH39A2$;IR_=!;[2C*PX&@Q;90FD,,DA:`@%K7.A?)Q |
2837 |
MK0Y-W4S8,$?L']:O[KEDO(MG('IX*'</FF8I`'DIO%61K98V^?)_`%!+`P0* |
2838 |
M```````[8&4QG"C/2W8'``!V!P``&0`5`&)R;W=S97(O;&EV96UA<FLM:71E |
2839 |
M;2YP;F=55`D``P*RBT%1><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12```` |
2840 |
M,````#`(!@```%<"^8<````&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q,` |
2841 |
M``L3`0":G!@````'=$E-10?4"P41`3;.,%@E```'`TE$051XVM69?6Q451K& |
2842 |
M?_?.3#M38-M*H07J@D4"I0U,I(5V9&7:4H50C5!K05$)XB8&EO+1Q=6NV:R[ |
2843 |
MNHBXA<(6K?@7&M&(:.QFV4T,!4PQ-=`:L2KAP^[8=BW0$LO'5CKW[!]S[G`[ |
2844 |
MO9VYTM%AW^3F[;GW//<^[WG>\_%.%0)6"KQ+9+L7J#>Y[P:JI6_!NJV7_D:Q |
2845 |
M+8IL"$W33'L)(?#Y?+2UM3%OWCR`!X!](=T.:D>JO<+79/GKXLPA[+_O:``8 |
2846 |
M!K;`;GS0V]MK"O#Y?'@\'O;NW<O2I4O?-5-"^)I0/WO+,HEO>Y6H8.VF/:Y= |
2847 |
M0>G['A0;PI5,5U<75555='9VXO5Z:6AH^!!0S*#:V$S4^W==)]=^'-%4AWKN |
2848 |
MJXC$;@2KFMU4KG9C__I#7.\]0OP_*YD]<SJ)B8ET=Y^GM;4U+`FUZTNH\Z+5 |
2849 |
MKT=T-*-,N`-U\2MHDXLB!G`CV$$!:)J&?^1X^F8^QN5[ZQ"V>,8V_H$G5SW& |
2850 |
MGCUOLG__?DLRJQW-*/7KT3YZ#JYVHQ8]B_;+O*ACU5#R`+;O/B=AW\/$'W^= |
2851 |
MJW-_A^8:C:OACVC]/R"$B,S@UPV(^VH0]]7`Q3:TMQ\-$%FP&2UY4E2QJG&U |
2852 |
MT:_^L=E<+7@.6V<SKD^V\=_9J[&=^P*N=%L*0-OW.$K:C,!U9P6,2D7[>%L@ |
2853 |
M/?-71Q6KABZ9FJ:1N&,J"?^HX%+A7U"[6KD6ET3?I$+0_`RUW`YXZ8734.=% |
2854 |
M?',D2$0]>QC1?APE/3>JV$$IU-_?CW+E/&K/&7Y(RJ`W?Q,:*GT3"_';G!$5 |
2855 |
M$"OJH:H#L?(`RK^>'?BL]?VH8^VA"JBJRKD-_]%OT#\V.["RIF0&^X0S9<(= |
2856 |
M,&I<<(W5]CV.6OIZH/%]^X_"]J5DP;A<R"H'105'`CS]'2D"+OS)/G?$B!$7 |
2857 |
M317P^_WX_8%TT2\]O2(JT'84>CL1WQX;D!+ZWUK#9LO8,V>_H;!H/LZD5)R) |
2858 |
M8W`FC,"9E(HK.962DA+[J5.G[-<56&9#]`5V)R-'$51'>O/-VAT<Q3=*`WZH |
2859 |
M'#]YP!1GALU\*Y?=NSYEU9-K:3QZ--C/DY_/]IH:D9V=/?)Z`)-`7+Y.>`!I |
2860 |
MHTH73'FUB#.'O,8MWJ*UR+/-D-A1=;-Y;5<33\@@//GYO+:KABQW[B%CL.+P |
2861 |
MPW#-/_3(Z]9^"5;\G2^`[)_S-'KLV+%?K5FSQK9SYT[_K%FSCNBG4?WY:LG9 |
2862 |
MZK6*&-B)$R<N#9KX47IWS.N!X=K-40\,QVZN>F`8=E/4`\.QG[L>L/]4*X;: |
2863 |
MT0P=S6B3"U$]:P)G^FN74?_]252QZD_"/A;U0%3G0:SJ@:BE3ZSJ@:@LI[&L |
2864 |
M!Z)A,:T'HJ)`S.J!X9^%8EP/#,]B7@_<]*?12/7`_X69U0,VP_\'E@"'@?XP |
2865 |
M/A$X.80"\X%#0#NP'?!;\*HLD.J!,<#SX?K7UM:F&MH'@,LZ@2I@@1"BT<0O |
2866 |
M!)Q`I>Q7:A+`\G6Y5`.W_ODN/K#B=Q9S$E@.'`22K>*DGRYQQI^$1".P6`B1 |
2867 |
M;N(W""'>`5Z0092$%C3`K;L7T@6X+?H\B5LN25G%N5_T<EX&3Z@"Z<!B0)DR |
2868 |
MFA6`+<Y&*9`!O".)?R;[#U!`)U%33`O@N'\*%8!C70[5P-0P)(S!3]5QTB?+ |
2869 |
M]PT5O+D"F6-8":1L+:012+_%R4I@CJ+0)&>_L*#`%)E6.IG;K"I0/9]/@60] |
2870 |
MF*T%-/P8!98`N&R4`7%/Y[$7F/@+%\ODLKL^G`*A(RT_[I)D;H^@0"C^MD>S |
2871 |
M>09P_+6(1BL*+`&X*YT*(&/3'/8`-AE$>IR-<B`UD@*2;-+:'%X&IKUR#SY# |
2872 |
M$)D1%'!(7-*.8CX'9NA!["BF-9P""^4(EP)*;AJK@<DRB+B7`ND4!VRPH,`T |
2873 |
M77X]B*U%'`$<ZW+9'DX!25I/.SV(#-F^)9("#P!J;3&G@2FS4_D-D.&RL0Q( |
2874 |
MNSV1)X`TBW/`_=L\:@U!N.6$=EA<A4;K0<BV/B?"*J`"Y8#[;X$@[',GL!&P |
2875 |
M>R:P02I0&4Z!A[)X2@A1]N`T*HWI)$EDF)`P!N_,3*$<B`]))[>N8"0%'I2[ |
2876 |
M<[G!VPU^*3`NG`)"B#+@;B%$64@Z!=-C*`4R4R@70OAD$.Z[)[%6")&^:#(; |
2877 |
M@?BTD90!KN*);`1&`YY0!>S`,L`1QF\*I\`C650)(<H>RN0ILU5I2P$?A5$@ |
2878 |
M09)WRO8XEX.S\GLBQ)^61YO@C]&>+3/I!KPOS@CQ,^D!"C;/H`=89*)`SPWN |
2879 |
MQ#U`982=>%`03AMG@6D#YL"K"^@"YFPIX#R0IWLY4D%?D<-%,P7DV690_PA> |
2880 |
M5V!ZA'[C)6F=_/A!<P`H7)=##U`4XN=+TKHO`4Z8G$:7RQ'525GQ;KFO')2+ |
2881 |
M0[C^&3)M,F0[U4@@QR3'PGEWC$J"Q-`;_P,?D`9W47L`U0````!)14Y$KD)@ |
2882 |
M@E!+`P0*```````B<F0Q$4X<V=P"``#<`@``%P`5`&)R;W=S97(O<&%G92UT |
2883 |
M:&5M97,N<&YG550)``,O@(I!4GG(055X!`#H`V0`B5!.1PT*&@H````-24A$ |
2884 |
M4@```!`````0"`8````?\_]A````!F)+1T0`V0#9`-D`\<*8````"7!(67,` |
2885 |
M``L3```+$P$`FIP8````!W1)344'U`@>$BH3,;IE'````FE)1$%4>-I]D\M+ |
2886 |
M5'$4QS_WWO'.W,:<\3DZ5IAA.XF00!0-6I2T<!&$TF,11$N)B*B($(*(@@CZ |
2887 |
M$]K6RFAA1(^5%502IJ+FY##J.#H/9^[<N<]?&Y.+:&=W..?[.0_X2NP=UX!! |
2888 |
M7YX$;@"&OTG:1:@`D7L/GVYLV%'JZNH)U=9SH"',E8'C;X#+0-;?O!U-L9:1 |
2889 |
M!X^>C`T,#(QV]?1++\9_L/3Y)1NZR>"9?E#4CE,G^T;R^8*SGEG[!CA^O7KK |
2890 |
MSEU#""$F9Q)B:2TOWL_EQ?-WB^+5EX1X-CXOKM]_+);7\N+\\"4+Z`0(^`&& |
2891 |
M84HE%\(U-<S/SY%-I_#F)IG(E@GU7Z7GV%&BC1&RN9P,'`)^^0&*)$D$9%!5 |
2892 |
ME?1JFGCK8?1\!JT^2)V\2FM;!Z8%KNMM#Y?]-PC/PW;`MAVZ>_N1A,.1]G8J |
2893 |
M^B;=)[IHCL>199!\K_=O@&6[Y(H6J]DB<J"*U$J:6+5,)K-*(KV);54PI1`5 |
2894 |
MR]D=8-@.2^D"B50.I:J*4LD@JLH8ALZ?E1Q(+EHX@NMYNP,<QZ-LVNB&A>P* |
2895 |
M\H4"YGJ:XF:!<L5&QJ5<,1'L<8+C>NB&35$W41P)O5@@\?LGMB7(ZP8*@K)I |
2896 |
M8]E[;*`$5%`4@N$P055C.KE`9CE%)-I$4WTM^[4@K;%&`JJZ*\#]]'8L,STS |
2897 |
M&R_K)1S7XW1OIUPLZL1:0HR.7!1:*"2T\#X6IK[K@+438*62B:%4,M$':$`P |
2898 |
M<K;[=D-#(R$MQ.+4UP_`Q)9P#9@%W)U&4H%J(`+$VMH.?KPP=$XTQQK+P$T@ |
2899 |
MME73_OE(^H^=%:`=&-ZR\&M@;N?4OZ:[$3)57LM0`````$E%3D2N0F""4$L# |
2900 |
M!`H``````")R9#$'T5!3_@$``/X!```6`!4`8G)O=W-E<B]396%R8V@M8F%R |
2901 |
M+G!N9U54"0`#+X"*05)YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0 |
2902 |
M````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P`` |
2903 |
M"Q,!`)J<&`````=T24U%!]0("10"$#RMB9@```&+241!5'C:C9.QBNI`%(;_ |
2904 |
M7&]CXSR+A6]AMV7:V\@6/H2^@^F7*VHCI+:(J(5"%(2;6DAA,I%H&+`),_\M |
2905 |
MEH3-)L(.'&88SO_QGS-G@,_U!H`_B#Y>+!IC&D-KS<OEPO5Z74#>7@*R+&N, |
2906 |
MS6;#/,\YF\UJ3JPO`"BE&NVM5BOL]WM<KU>$80C/\TKMKR:!XS@00D`(`<=Q |
2907 |
MT.OU((1`FMX0!$$EMP:83"8(PQ!!$$`IA3`,,9U.,1@,\/'Q%\OE\G43[_<[ |
2908 |
M`?!P./#Y?-(80Z44`?!\/O-VNW&[W19]``#\+@DDR,][*26R+$.KU<+C\4!3 |
2909 |
M3@U0)(Q&([BN"Y+H=#I8+!88#H?06H,DC#'-)6BMF20)HRCB>#PNA\>V[?+L |
2910 |
M^SX]SZN44`%(*2FE9!S'C..84131]_W*-,[G\PK`^@)`DB2-%H_'(_K]VA37 |
2911 |
MYX`D+,O"][MNMPO7=1MKKSB(X[C2Y>)<[*?3"4HIV+9=:LM7V.UVR//\I1@` |
2912 |
MVNTVTC0%@'_?G;S_\#L7\:<0_@=?4%M6IMUIH@````!)14Y$KD)@@E!+`P0* |
2913 |
M```````B<F0QK:[IVT$"``!!`@``$@`5`&)R;W=S97(O4V5C=7)E+G!N9U54 |
2914 |
M"0`#+X"*05)YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0````$`@& |
2915 |
M````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,!`)J< |
2916 |
M&`````=T24U%!]0("1,[$MEH<XL```'.241!5'C:K9,]BU-!%(:?^Q&3$-8/ |
2917 |
M(ANR7./"-FI,&K<(B#\AC;\@K9600B&%-A=[P;^@1;K`VL44$>P-9A>YNL4& |
2918 |
M8G27)9N5^SF9L<G&W,`500],<<[A/,R\[QGXQ]`2ZH^`AT!ND4=`"_@`J#\! |
2919 |
MKY9*I5>M5BL:#`;*<1SE.([J=KNRV6R>93*9%X"1.)W/YY_9MBUZO9Y7J]5F |
2920 |
MEF4%EF4%]7I==#H=9=NV"SQ.!%0JE>-^OS_/9K.'Z[UJM2K:[;8$WJW6]=5$ |
2921 |
M2GE-2JD\SY/K@,ED(@N;FQJPDP1H3,8CX1Q\,K9O6#NY7%J9AJY,0U<ITU#% |
2922 |
M?"[U;73(5CYW$VA<F+#J@GK]\@GW[]U!+72*0F_9%"+$.SEB;^\MS]\,+QPT |
2923 |
MS=7K/-@MXTZ/F?WXPM%D2A2%2[=%X%/<D)0+,1.T&$#3-.;!C/&IQ^WR7<+` |
2924 |
M7S04PG<Y&PV1<KXZ$IEK(A+Y+H7+*8:#CX1A\/L)@<O6AD37XVL0`R`%4@K& |
2925 |
M,[A5W24*PZ52,O0Y^?P>33>3`0J=2YDLVT7)5V>(6`#08![\Y'HZ0WK-X!A@ |
2926 |
M.M['/?V.[YUS!1!Z!(!A&"@=I-"8GON)B]A8?)2_.4_Y7_$+!`S.I%ID=^H` |
2927 |
M````245.1*Y"8()02P,$"@``````(G)D,<;[ZUP=`@``'0(``!L`%0!B<F]W |
2928 |
M<V5R+U-E8W5R:71Y+6)R;VME;BYP;F=55`D``R^`BD%2><A!57@$`.@#9`") |
2929 |
M4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_`/\` |
2930 |
M_Z"]IY,````)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"`D3.P0MO,;: |
2931 |
M```!JDE$051XVIV3L4M;413&?_<E0L2"8HI1J0:1%U.'%#ITD4"Q@XBDFVY" |
2932 |
M)E<A3H+2)?HWU,&UE$"A`4,I1#"+A0Y=BH,^?-&V,2&XJ"7UA9<<!Y-70Q)3 |
2933 |
M^\&!>\]WSG?O/><>:,1^S3+`%*!X(#*&84@ZG:[&8K$+C\>S";@>(I#U^7SE |
2934 |
M2"1B)Y-)B<?C)6"9_T$H%+(3B405V+TO3FM'%`J%JF]@0`'C_RR@*<3MTJ3+ |
2935 |
M[9(A;T]7_J?)L+?'#T1K(4U%;7!,ZB/R<6L=`-LN\^?\!SL[*=Z\.ZC'N@&[ |
2936 |
MI<#+YV/R.JPSY'T$*&SKFL6-5,=:.4_8^Y8-I+Z<TMTW2'`R2/!I```1:6O4 |
2937 |
MKE2'L?OU,'!Y>7&TO/`"VRHYQ,DK/P"#J4,*<Q.WSNU,DX#^;&+DZ&U\":6@ |
2938 |
M6KX&THV=J2<#FJ8U"7Q8BTYA&@>@H&+]=HCA3P9GL[JS?_+YF'P^W]3&E?G5 |
2939 |
M]]][M2OZW24>=_\E[B8#_)H91ZG68Z(#<M=$1++3HY*='I5*I>*L<[F<`-)I |
2940 |
MVJ18+&)9UFW/E7).-DV3<#C<<5RETS^X`;-2JIH)4B);`````$E%3D2N0F"" |
2941 |
M4$L#!`H``````")R9#%UM)T)>`$``'@!```0`!4`8G)O=W-E<B]);F9O+G!N |
2942 |
M9U54"0`#+X"*05)YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0```` |
2943 |
M$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,! |
2944 |
M`)J<&`````=T24U%!]0("10(!C*6U$,```$%241!5'C:K9.Q2L1`$(:_G2SL |
2945 |
M<H46BJ:./H"-X%,(!S:"#^$S^`J^@-T5B@\@5UYW<-J(36RL-Y"(63E$M/%D |
2946 |
M8[(DJ`,#LPS_-[OSL_#'4$']\0O]M@Y/#_D3%]?37I5_>>;\[!1@MP%8W#]R |
2947 |
M,UOT`MZ6KZMRH_&$JJHHRQ*E%$F2H)1JI;46YQQ9E@&,I;64#E%7KD+'`,N3 |
2948 |
M`P!&DSG^>!^`M<O;%D!BT[\7]B6.]:.`T63>N-GZU5T_((2$DP&JH[WA`!%I |
2949 |
M3/[9"_L-&^NZQGL?M5%$,,;@G"--4X"Q'F*CB`RS,<]SK+4HI=!:=P*-,11% |
2950 |
M\6^?Z3`$;`$[P":0#!"_`\4G9FD_K"H.Q%L`````245.1*Y"8()02P,$%``` |
2951 |
M``@`(G)D,3A*:OF,#P``;1(``!L`%0!B<F]W<V5R+U1H<F]B8F5R+6UE9&EU |
2952 |
M;2YG:6955`D``R^`BD%2><A!57@$`.@#9`#=F/M7$_>ZQK]SR223S$PRF23, |
2953 |
M3&@3DQ`0@H9`0@#!1.X6%!5;%%1NP8#B`8K6:E5`$01%0%14$`4OU`M%J[;: |
2954 |
M6A%0\+)9:J6MM;;>Q=NN5MMUNO;>YYS8[K/6^8&]_X`S?\!WK<_[/L_SON_$ |
2955 |
M)\;9P[)8P((UWN#,F3-GSY[M[>WMZ^L[=^[<P,#`X.#@Q8L7+U^^/#0T=.7* |
2956 |
ME6O7K@T/#]^X<>/''W^\<^?.O7OW[M^__^C1H\>/'S]Y\N3ITZ?/GS__^>>? |
2957 |
M7[Y\^<LOO[QZ]>KUZ]>__9]OS']+IL2FSHAVIL1:QID1"``PYK]LT26NK%)7 |
2958 |
MKO:#_%*W-M7MTL8G)J>(Q7XY8[46LSE8.SEKP>)LK6]!?F%A5HZO=D:I*W^1 |
2959 |
MJP2,^1W%!4`#3)Y7P!L`(+A]V[<N-W_GR-JNO=<33!\FTL;L^**,EZ%O(<[> |
2960 |
M7ZZ:X'5)EUDWK/I,."VF."9I6\RG^?8Y):L#\K_^3C>UR>FX;5X!@;[[35G$ |
2961 |
M6I]:-'MF>PC'YU`87)P=J6?@=(#,&*M:J7'E063`/$1@UA!;0+,?"3)L5%Y1 |
2962 |
MM9'8"VV,Q=?OQ:5TO8$I@"0K61DND2!%`LJ?(4F5^@)E^Q#K`JB"0:&Z@T9Z |
2963 |
M_08IW@7-":!WK;F+;#)^FS?<EBXTY7Z!2M4JT7KLII&74WQ2RDLH&A4I1,;9 |
2964 |
M_SD&'0WZ_I_0#Y?$?K/V*YT+%0AJW\MAI_QF+=?>VS(+12K.GR]>^(.Q(B?3 |
2965 |
M?-:$U=2*7G4V&Z[=OM=QP1T36WXV[@"Q!UGWV%*[-80HB]IEWZ'%R"B#BL8Q |
2966 |
MG&+'<^/T[P0#04ZHCWR:$R"JS08B"YKBQX?CLS5MTT&[+QTOF9\4#R!Z/'4, |
2967 |
M$D9QHFG'</E,7TZ((%2=IP!B(A@6+N1HFO-F>U<:3I\\Q98ZA?O]F/^8+C\Z |
2968 |
MR2Q_%"__,%YHOA,ORFB&HLTT!A<P@V8_LQ;:KPY(F]!N/K2ICQX#1@-_X@&_ |
2969 |
MOS4Y[>,N7:DLOO_`]]5*YY2,5Y\EBWK+RAN($NALQ_P@+8)?>%^[(VPGU!,- |
2970 |
MC1@+U(EQPSVP-R?L:_@^!!6^C5<H[:G;8LK,8Q]\,0<K\9&+W#XJ>A)&*()Y |
2971 |
MM4$]#EY.62-]F/@P#_PV'U?:!R8U+=FJZYA*!K-HXCL:Z50`K3!Y)71I>/%F |
2972 |
M`),*5;./FA!@)XTTL4"""B0Y41RG]N;/!5R8$R:I)Q&$_.;4E`14%1>6&JFT |
2973 |
M/U6^]V6D6CR5X)1'H!?-!JW#X:R1TG)O>U-BWQI\)":&B"V.$8V&__@-_J_F |
2974 |
MH=BN9TO'3))YIUW*VS;27W+EN_8-]\VLP;]F)]'PZ2SB8C1\!?';'EAE`0E% |
2975 |
MRS>2Y^BLH!.@JL]LMMNV1F=J9T6>@`<&+"<71BE0")8&L$*P#A*H3#P9YV_@ |
2976 |
MY`)$0#`V-<<','@L2NUTF-B*#(#MW6>8G>YRJ*C%X>G0T4"^&ME>-B$#L=HX |
2977 |
MQ+),5Y_187?(A))^C9J14HQ,C._1\X>'9JU+O1`M.N68&XFKV91:Q3[U$PO. |
2978 |
M,0.K3SBZ5U\H@8@0R^;=9\L1:GN:N_[QQH-2OGM"RXC_J*K_@[Z?K8WI>F97 |
2979 |
M.I.2`@^ZVD[T_[U]N.TO'GJ3'[:30(X9<D`TU%.;;=ER*>]!"@90\.M-%A/5 |
2980 |
MS>R3N,T8I#<&O7T[3OI)3\.V!*,=6ZPT<*79;]CG!(G2]6HE+A`0BD">DI"U |
2981 |
M>B\2PW"FWKI/IQ:E`$FG8QP\]P,K*U^CDR_;&:@F8,Q+QZ(SL8E67@C!_CJ/ |
2982 |
MD'M"NN4MG2JY7*4BR<\__L2JS`+(]5MD4K=F00JI*X7$@XZ_!KW0F"'L2RM3 |
2983 |
M-)19X%L+'9ZA8,V[MD3WKE[\3#>YQ:X;E?Z!AW[/'EFBAYZEG4F=A:T^Q76Y |
2984 |
MQ]V!@DD=\"4!UCPUKZ_7NZ3,$[$^26PUFBN@'9``6$$*>Q[&+V09(E1(C^,J |
2985 |
M.["D8UUH:%FND68X:@F$3]!QXNQL8:*!0>+()#U/"C%295*3Q>]7:WBI1$RI |
2986 |
M-IOXL@H#.3>;BK2J&X,`QA];U:)3+[>TM[8)#]@_EQPX:$<8O8IP$E]%*@CJ |
2987 |
MDEJAY'E:_L4Q&YY=M4XFO7M,N1R$M$'D/0V3$B(*PI_>A^"_Z>82S;'CH]<( |
2988 |
MVVT9W3T;=_95O9XTJNE?OB$_IGC3=[__)>_*/5X=)D3[IP^>P]C+N;UZ%UOA |
2989 |
MW0<&(=&&OK+ZGGI_Y*!VV@:(J"C)O/KWI/5'!K(!ZS=XOMQ56OX`2V+D#+MT |
2990 |
MU7(=3X+U"_@`J@#"YNIYV@.[V5`)K4<9O5I%42IUI!<E)MOUM'GQ)Y&!]CSB |
2991 |
M8VL-AGOIL3A\HY5NJ]-1TSSV.=X0)$SF*1RG^FU"&*%.K5-[JSGNIP!6+K]A |
2992 |
M4%,>^Y]2O_/0RJY$DH\@0\<U*^*WAU0?Z?FIBI2>Z&>R[CC*19AT=G<WU5>Y |
2993 |
MC`XN.$3#HU5AQ%,%P[`VV>-].^=<F%;XC\*D0\';_Y'?&)?3Z!S)92?'5,PJ |
2994 |
M]%[-WBD'(P"+<YKM5^+8-"*E*&T@^RU=\"E9%_+.:JW63,Q_2]!R/MNF9)19 |
2995 |
M'P8Q!@9^%Z:F$)4"KP`5%:TVJ<P`(-*M.HZ)B2K!Q'2;Q@NO$2?;U#*2^D1# |
2996 |
MP>%2&T]"[PH;3\1OL&Z+)W4*P5>"*JMB6H1'`EMLG"0<D5GYR$"E$$7)A28% |
2997 |
MA@WI5/-"?S)Q8LO#\<C3;_$@X4,J:#`J)BFA*/-6I4#TXO?!%$EJ7YE,/UDQ |
2998 |
M.OP;"=P76*DX3_#Y3-)J9RVHG>+];.CY9/KRVB,!1DM3=<SQ[=Y814PEY`>K |
2999 |
M-E1D%G76AT@.9NLZ8;#N;IWMXIX/0)]OMI;UKCJPW?)]R"%<YZ7PX@3+8AD? |
3000 |
M;"968XBNACS\'"-+"E"MGX](U2M8;G<H0Z!"BO=X`D4CH^28IY-6#8-&(!L# |
3001 |
MOYAO(75RY#0=2C9B*@V;#XM/!L84('+=5OIZH#P\0KB]?N\6(AR5!;(D,?2] |
3002 |
M3,:KY13UD6EE!+&73.F/BAJ1]$SMWX$>@H\N>/%7Y#!T%!:;?&6K*]?(@PNN |
3003 |
MLZ-6X8\(L,4V>JK0:5UC-J<OJ+TJ>S:I="-7$WO_.^XM36U,8U8^*XC6SPB! |
3004 |
MO:F^S/J>0P<B!BIE`(BH\J!Z=QW_S;FJHW:3`>^9G3(F\GH$J5.S:EZX+`Y6 |
3005 |
M!)#IDKD&-;DN`FO0>_3K;V*K\]`HG]90%8D)J44ZN43"3/3(.6^.SDL8(;3: |
3006 |
MPC87)F);#ID^7(!T''-//+6\8TWEQ*8%Z)&)JW>P`Q!,GC:D4@V;PF=0!"'; |
3007 |
M:\B'$C1A+BA*?=N4#[_(A"J^TZ3]D*IEM#?.J&AYI_\2<T9?E7[T"/AC[E?] |
3008 |
M<^[']0_ET3_TQV[<88RK2'>\,">;=@SK&^H7&IU9AHJR((O/11#_NPD&/<ZC |
3009 |
M2LM'^@0%^#W7FQC8"\FPDCV2.[;F)ANQ>!*B\I'C0JG;0$T+Q=-\^`9_7IP) |
3010 |
M!"LC_+EW1-(FC1=%C0WF2"0+K]1)8"`)V5`!B1KP4&&(Z$2T12,7B3R[U1FH |
3011 |
M4,=QB0&)I4O0'2'JHN+!4'A^J[1&\^W!+((4X[L#9`@2RV&3`/*7=A\I#%-& |
3012 |
MU\WA8"G5G6LW/U?LI^G?4';7SYGK<%+EZ'Q4%#_JW'_^IO&=F]WALXG>C`*3 |
3013 |
MO_/P8$'<];/UZYIG'+CFSHS:,8ET]*2R56MR9GSO75#5D0-D+#D!VM/$74>9 |
3014 |
M^_U!-^S@2W`W_A1VM/.#'XH,6=ZD8JP\;P(Q:::_FLR`\!7VW`4DX\E[F:S4 |
3015 |
MGT\'`%?I*7BN10H76?%2`@*$!2^.I!V$1&G)+(9/Z-1;#+S*BSQ@1?-G<ERJ |
3016 |
MQHOPC$KTP-S>12A"JKF0-B`@)1)IKX:-@&!.<0R2\2,ZKZ=1\D$K:5F$H+=, |
3017 |
MHI%?P0`F44TQ\6DY4PP6CT;2M$]VQ_Z+Q>_NGQOOOM_,#6N_:M>C%<B9^%WJ |
3018 |
MSYH3-ZU/V(T8HKBJBJ"PH#RRX1SP2XB:>FM7MN79N*C:%,N5Q_R.Z1V795O> |
3019 |
M=@7KDZ_%O/W7QDIP!7\[TBB?B[K+C2J:]BK5J1EF@Z]:*@!PH;X(H<WRC_(D |
3020 |
MXS0D!&SCB;QP-#F!)%DSOB*OQ9?OT+$*!74\(F.Q3"RFQBEP!!$BQQ&J42,- |
3021 |
M!OO9L%BDFZ2O:6)B<6G//MM/.CP/B,X<A*:-I_)6,0^L9IX2/>>Y)WE$V<DC |
3022 |
MSF\KK3"5$98+WZJ2_9OKYL]%/]N%Q@G.).\*_NSSK*T-T3(0$J6NT3>&.46K |
3023 |
MJT6?LGX5=>53BK-'5/KDN%<7+I=65(V%%[>8T=:APJ-)&?M1(-.F+5LLP433 |
3024 |
MR\8JE<D&EJ+84`9',*I&0\1DCE?-A^!X'1XN-%,EX=@J#2,2RLWD1R6>:<AQ |
3025 |
M$QEFXPQ&(8LMP;_4*X0Q71I%(R)L13^I%1X%&-,*IFVP^<AGEP#QT7!0ZOOC |
3026 |
M?FC98W+IXM80ZM[[XSV%W8G)N?82S/GK2N?M);O/`N@"L:T[=?1-YY_0\_-< |
3027 |
M[HCL2]V9BP)PIVSX[MJK[?@8<WVU9>NEAR%AK/%T0N_9[=KJNDWZ`6U^'.Y8 |
3028 |
MU.,_C5ASZT*]_MWICD#'^K1?)O-5[<5C74;&-8[GYNF]<'OP.);$Q'$ZRAXF |
3029 |
M#63%[\<TI!?.\I,CA1#NC`9HBA^=72ATJ0B"45!29@FG4"H$AZ$Y/E+T?812 |
3030 |
M*R4H*B$1&!:J\KX*`['"PP#S1-<2@[3IFVT=4-OLAS?/A)&V]D*TM1`>,?)# |
3031 |
M.:F2#F&Q+V\(R7SQ/+K#A:?>FO4O3KI'?T+O7UOHCBBHN],]+IR&@H;O;G'I |
3032 |
M:\>D=+XV]\QX4-2]WDCA`5_[&5KVQ6NO.,+0FWT7&OT24C8$T@\6)&.@Z_%[ |
3033 |
M-]-X.8G?<VCY91-\\`)`A'AD35*L3IE9`"<:^?SB9(WG4"UN\E':"^:HVUNQ |
3034 |
M<J,":9'HY)[KS;*>*??8FL.+(42F]Y++R2*`!+,$)ER*(2C9MAT]#6!:7`R` |
3035 |
MT+O02+6T2EH;Z<"[+>#+%I@*I!O2$>DKZ+M`GFA`KLU+1_T2-L.]%0+ZM7MI |
3036 |
M48\#B:_0U8B@?W/.NM=V^>R98%K.E6>=RQX.:6[V*>]S';O18JMR@*M_R_!6 |
3037 |
M7C7VWMYF01YDEFR7-=5]#8'NQ9NA\X]O[-IE%@'G]-XD(W?//_CD2"SM@<$S |
3038 |
M[`;5/#?F'Z"2ENHHM]OL)Y^'D+R&;()`EN]$-[R(;@+P-%\6`^XL-3'K`$Y2 |
3039 |
MS"H^ENJVAFHX>80$SD6HTQZ/<R2&RU?IYIXYP%#P+D":I&VWD#,0DNR[Z6,R |
3040 |
M=V^#KWR6&Y4ENI%H/YZX^8#B934AYZXX*IUH),.;EEX9J>^3CIYJ__]_7D3\ |
3041 |
M#U!+`P0*```````B<F0QXDZ/=((#``""`P``&P`5`&)R;W=S97(O5&AR;V)B |
3042 |
M97(M;65D:75M+G!N9U54"0`#+X"*05)YR$%5>`0`Z`-D`(E03D<-"AH*```` |
3043 |
M#4E(1%(````8````&`@&````X'<]^`````9B2T=$`/8`]@#VVZ!&R0````EP |
3044 |
M2%ES```+$P``"Q,!`)J<&`````=T24U%!]0)$@(+`%(+!%D```,/241!5'C: |
3045 |
MO99-;QM%&,?_L^O-V%;MM;>.954.&R$:(E+%(@EP0Z"*`X@C$@?$RU=`ZJ$' |
3046 |
M)"3$BQ#B$R`H$@<0)^#$(0<DKC[0E$2!;#8O7E?:K+V.@[ROL_-P``.E:F)' |
3047 |
M@3D^_YGYS?,V,XR(&/[#H4PS>3`8J)9EZ;[OJQ<.&`Z'W+*LESS/^\RRK)=] |
3048 |
MW^>3K,M-"MC;VS.3)'DKR[+'A!#7;-N^;1C&YM2`P\/#G.NZEQ5%R<W-S;GU |
3049 |
M>ET`@*9I`8"[`!YAC-W5-&UTKA#YOO]L',??A6'XO>,XSXSM2TM+3K%8O,$Y |
3050 |
MOUDH%-YLM5K[8ZW;[=;:[?8+&QL;RV=ZD*;I=2GEXP!RH]'H:0#K8VUY>?E. |
3051 |
M',>;G',YMMFV77%=]WTAQ"M1%.VTV^U7U];6[CS0`U55UQ5%^8DQUN&<;_Y+ |
3052 |
M0[%8E*KZ=Q$%07!)2KE$1`4I92-)DNJI'JRLK*Q;EO5KFJ857=?/3&*CT3B* |
3053 |
MHNA6',?(Y7(_ELOEG_^ILXMHM$ZGDSLZ.LJ72J5D86$A>2"`B/XPLHMK[K]" |
3054 |
MM+.SDS\^/KY.1$JY7/YA<7'QMPL%#`:#-Z(H>@\``_`!@(\FW22.8[:]O7U% |
3055 |
M"+$&H+NZNMJ^KXJR++L"H`S@4I9EC6E.:=NV%H;A.Z/1Z%80!)]O;6T]>I\' |
3056 |
MNJY_>7)R<AE`5BJ5/ID&$(:AFF7950`Z$?$P#*\"^.6>)$=1Q%S7S3/&J%ZO |
3057 |
MQ_E\GB8%>)ZG[._O/Q_'\6N,L4/3--]M-IO#,\MT,!BH1`3#,+))0+U>KZ0H |
3058 |
M2F081GIF'^SN[M9\WW^=B#3.^1>M5JL[UOK]_HSC.-<`*)5*Y;9IFNE4U[40 |
3059 |
M@GF>]V*2)&\#4(A([?5Z']9J-0$`!P<'SP5!\#$1Y=,TO6F:YE=3/3A22D9$ |
3060 |
M10`:`!6`-F["/RON*2GEPT3T4!B&3T[]X,S,S,AFL_FUXS@J8TRO5JN?SL[. |
3061 |
MBK'..?\V29(G`%0*A<(WIP%.3?)P.%2EE&JU6KWG?NGW^VJGTZD*(=1:K>;- |
3062 |
MS\_+<P'^]U_%><;O(3&$>7!OM2D`````245.1*Y"8()02P,$"@``````(G)D |
3063 |
M,43U6FS`!@``P`8``!0`%0!B<F]W<V5R+T=O+7-M86QL+G!N9U54"0`#+X"* |
3064 |
M05)YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````\````%`@&````T0-> |
3065 |
M*0````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,!`)J<&`````=T |
3066 |
M24U%!]0+`Q8!+!-VZ`8```9-241!5'C:[9=]4%37%<!_][U=%E@^E.^@%7%0 |
3067 |
M04A2:Z8I-4H;=$0QQEB_.E9+TDP2G:$5@VB`T='!M%%J;3+18.*,U524ML'4 |
3068 |
M!&U!F]$XS+20C&9P_6HE?A(5T%U<=OG8TS^X,+0E5.KFG[9GYLV][[[S?O>< |
3069 |
M>^\[YQWXO_QWB[H?I9P-67UZN]<?D0>=U-^\B!14BP/I;0?3-;YD_!>`=9#G |
3070 |
M0Q5_\Z9KG@*X7V>_S&$%+`<Z@"#`=+:X:;O3SL>5GRG]CG&_I^,KX`$<`@J` |
3071 |
M8$"%C>EQUA;:QQET86U`*I"FKT<`F;KZ]P((D`3,&1=OEB=$VV3L*+LDQMAD |
3072 |
M3*SY&V`N,.R?C/TJ>-&:%:UY18Q_I@XHTKQQ4:&\"ZP,#^8>L'*XG?W`>,W[ |
3073 |
M!TF-BX_M-:;O^O5'EV3*JM_UW5=N3)3ZG5/DZK&GY?2N=-GSRB@!Q&ZR"8CO |
3074 |
M9Z2_>=$8M&CGI%\[@K%SZOO=/[X\DY-`_(^SJ`6>T.,9FM<G:8`<.]TDA_YR |
3075 |
M3:KJK\M)QRVIJK\N^X\WRA-YOQ5`SA]=)LXSJZ3CK_ERK^&'<O-$MOQI^^.] |
3076 |
M#JP&PK61:8#4G.KAU9QJ\@>OB+A)+P/1C$A_!0C7;3Q)3]4#12\\S7M`>&$. |
3077 |
MNX!AQ4LYW'NZ@'3-PU"&4@#-3B_7F]W<O..AJ=6#B!`88.'%.9/(+#[*N,P] |
3078 |
M>+Q>3'L706$0&6UC0EH$NPJ324\V9P")_7FM+B]7;[NY>MO]0#S@)E!"4_T^ |
3079 |
M$C+7<JWV749.S>-:[3N,G/PC+AZ:0\JBIW:^3_U/%O'FJ[M9\;.5E)7L96'Q |
3080 |
M4DJ!*0DQK`,"`=.B]!+L^:B1UN9;&*8%7U<'UN#A&(:!B*"4(FG:2\1,?)/V |
3081 |
MB\L(#.E`V0Q"0BT\FC2,A##[MVMQ/@*<'8AG6`)0RD1$,$S+T'B*6!&*25FX |
3082 |
M'T?%)L;.K>3"P4)2%GZ`HV(-*8O>PW%@#5&I>WYYH*%LPPKVKMW&LM)5E.=O |
3083 |
M9?&*F51M/\SKP`Q@GZ7W7#M=;7B=MWK"JF'2X7;VA''3@O/&>2[6O$5]>0:* |
3084 |
M-K#:H$-A*(.@B!"LT>%!X!RNH^:`/)3Q'_%$^`(HP5$QC80GMW'A8"&CIY7B |
3085 |
MJ"@D<?KK.`ZLY:''=G&CKFSY;++6;V?6EF+VYI>PY-47J2@LX_O)7^/$V2O, |
3086 |
M`\+Z'/:ZFNEL=_49:+$%([YN6B\U<*%Z!P??F,KHQ!`"@BW0Y4.Z!6]'-_=< |
3087 |
M'7C:.@!,P.^\OAT>,W,K?SN\CA&3M]!8LY:$)W_*I>HBHE)W<*-NY[PI9._X |
3088 |
M@+F;"]B]NH0EFU=17K"59U^81>7.*@IT$&O`,-3#89'!_Q)5)_[@YS)^V@(! |
3089 |
MI"3W8;EZ+%NZSLT3N;)`I'&^=#F>D<O5,^3(YC3YWC>#K@,Y0.1@O#$9.4/F |
3090 |
M`3&F%<\`47HN$:,:@:+)J9P!XE_+Y7T@N'05E4!XP6)J@$FI\9S7`2S28EK- |
3091 |
M:ZX6]_,H0E3/#JF0B*`M[J83G*LYR(+OQI(\.I"P$`-3!'%WX?'X:'=W<[O9 |
3092 |
MRZ=G[O+)Y][3P#G`.Q#/%C9\RYW+I[ET_%=#YJ$(Z.[D6SJ]I.N=RB<B?ALM |
3093 |
ME]\>^Q"Y)QO(WO`<;Z]Y@\6EN93G;^79=3GLW[B;Y9D3J#YZACS`#K@8/2'. |
3094 |
M#`RQV2T!9I3%:L::5B/.,%7OSFP$I.SE9&FLSI*FX[.DI7:V-/XQ2_Z\[SOR |
3095 |
M5EYRKUZNSG56?_,`A8D="$81"]B5ZMOIC4#1[&]P%AA9N)0_`#'Y"ZD&QF5_ |
3096 |
MG;-:+Q<(!:QJ?EZ&.E=W1;6[O`K`V7Q/W;QRYT/#5+E**:^OVY<BPN%-2^QW |
3097 |
M8\/CPCNC0FF[W(K;>\NYOMP=!KP$?`BT`.WS\S+P)R\\">Y>!%LHAM>%S[1A |
3098 |
M=GM9H!3U.J"E`Y-F3>2YJD]Y?OIC;*NN8TW6H^PX<HIW@-M`.=`%N%7_R@7@ |
3099 |
MX\K/U.>.+X)]/E^`81I>B]72V=[F24*8"93V4]T`'`,N`$Z@'?#YFS=`-00* |
3100 |
M.T(W!@8^//H7,@RH!8J!$OT)`'RB3XT;$#5(46'H"47W`W3:"=(1M!-H`SQZ |
3101 |
M]7S_IDCQ)T_I=[K[C07J-A)PZ6^V6<_7J=LA52B]58BI^SX]H>\!:G%_\GI3 |
3102 |
M&3H]=NJ^C_]E^3L(%JO(*GNYU@````!)14Y$KD)@@E!+`P0*``````!*7V4Q |
3103 |
M$;;]<MT$``#=!```&@`5`&)R;W=S97(O;&EV96UA<FLM:71E;6DN<&YG550) |
3104 |
M``,LL8M!4GG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```#`````P"`8` |
3105 |
M``!7`OF'````!'-"250("`@(?`ADB```!)1)1$%4>)SME^]K&G<<Q^\O:$;) |
3106 |
MLR&A7>E&22%LA4"WTC[/N@=I6>B@%-8%1IJ%/4FZ0N$G6C2Y;,]<*F[D[ |
3107 |
M-8E13,BO1U&?70-&T1B"HH;$Z)/XX]2+2&/>>Q"]5:.GFR:7@8_>G-Q7WN][ |
3108 |
M?3]WWS=!DB1!$,0=DB1!$`2JZ.?Y^XD2[2!)TD(01#ROEAJU@R3)COQU_%^L |
3109 |
ML^37$043F)V=12Z7.Z9FLQFQ6`PC(R.%$'?*A+`8GO?#Z_5"/]15DU(/+J%@ |
3110 |
M)AP.U[Q./]0%N]V.?`C!!'*Y'"8G)Y')9(ZI7"['P<$!!@<'*Y&P>+U>T#VM |
3111 |
M8%FV)K5:K043%OU05\WK6);%V.WSA?#%!`JF>9Z'7O,*J50*DWH=/!X/NKN[ |
3112 |
M830:T=[>7@A11*!@@NF]"H[C8%(KP7$<#(I^.)U.,1-">*?3*:PSJ94(A\-@ |
3113 |
M>J^*A2]/0/^7"CL[.V#Z.N'S^?#G:Q5L-ANN7?L$"H6B,!.B!%PN%PS/^P4S |
3114 |
M&QL;-1-@OOT8X7!8"*,;N%$[`;U>C_W]?>BU#!*)!)@G=[&YN0DMK0'/\U`H |
3115 |
M%*($2I^T;N`&HM$H3&HEW&ZW*('2]1L;&S"._PB.XZ!]U%F=0,&\3J6$Q^,! |
3116 |
M\_0>4JD4F"=WX?/YP-`4MK:VJA(PJ96(1"(P*`?@<#A`??6^$&)M;4V4`,=Q |
3117 |
M,"@'$(E$P#R\@M7552$$_?5'E0F8S6;P/`^=3@>>YZ%]]0+KZ^M@GMY#(I$` |
3118 |
MW=>)1"(!N5Q>E8##X?AG!O(AM-]=!\=QF);WB1)@'EX1METAA,?C@4FMQ.[N |
3119 |
MKC@!K5:+=#H-^OX%N%PN,*J?X?%X0$]H$`P&0:O'$0P&:YH!EF4Q/=(KA&!9 |
3120 |
M%@;%T4S4\A8*A4)""+JG59@)40+I=!H418%E65#W+R"93(+Z;?1(7\J12"3> |
3121 |
M_1Z4)6!4/4,VFX7QCY&B[43WM`I/LA*!6"P&\Q2%>#Q>M)U8EA4(BA*@:1JI |
3122 |
M5`H410F:3"8%G9B80"`0$"60S68Q-S>';#9;M)W>W1Z5")BG*!P>'L(\=?00 |
3123 |
MIU__A$PF@RG5*.+Q.&8F&42C4>C&1[&]O1V?F9FQ%1%()I/0:#3@.*ZB#@\/ |
3124 |
MBQ*8>4D>$?C]6?FWTO>W*A+8V]N#>8I"+!8#W=.*0""`#S]H*WNLD<ED;T.A |
3125 |
MT!N!P,K*"L8^>P_+R\OXY=-2;<'2TA)>7&^!R60J1R#^'[_$<9(DXV)?XG(A |
3126 |
M+E]L@\/A."B:@8DO6V&SV?#K%^=AM5H%';M=K(]OGBM+@'IPJ>S]8EH@8+?; |
3127 |
M1>_S^_VX?+%-,._W^X_/P.+B(GZXU8*%A84BG9^?Q^.;YP0U&HT@"&*]A,") |
3128 |
MGT;=;C<GD\G>NMUNCBAS&GU4NL>JZ#<E!$Y%0Z'0FV._-^C/)>\#]:KD?:!> |
3129 |
ME;P/U$U`ZC[0<`*GW0<:1D"J/M!0`E+T@882D*(/G,A;Z#3[0,,(2-4'&D9` |
3130 |
MJC[0,`)2]8%Z5?(^4#<!J?O`F3^-5NL#_PL]R3X@F9X)$W7IF3!1AYX)$TT" |
3131 |
M4IMH$I#:1).`U"::!*0VT20@M8DF`:E-U*-_`V#XCM>V[*>Z`````$E%3D2N |
3132 |
M0F""4$L#!!0````(`")R9#'WB=KW0@4```L'```?`!4`8G)O=W-E<B]4:')O |
3133 |
M8F)E<BUS;6%L;"UD87)K+F=I9E54"0`#+X"*05)YR$%5>`0`Z`-D`*V5:TQ3 |
3134 |
M9QS&WW-ZVI[60@N<HSTH[K3<RD4&##=@Z$X+E)92A(*(`^4B"E-CBF!&F)H> |
3135 |
M6A@T:*%`MR'6(3B5J504=0I)12ZB>$%D"V%JT0W(LBRH6^:,BU-9EBVK^[3W |
3136 |
MT_OI]SQYGO_[?Q.4\LBH/`$0@`=<T-'1T=G9V=W=W=/38[?;!P<'1T9&1D=' |
3137 |
MQ\?')R8FGO_KB)XO2(Y/3XN5IL2'AX0R(`"`Z#>$PP1\$/SB#EYB`9(X-ZS\ |
3138 |
MLC<RJZ!=0+B#W-28;UG';H.6U6YV<QAY.\RU^;L3;&Z^?=\S<+$F;[R>1&B= |
3139 |
MHY^X&ZB:1DN'830(3"O+SQD?6,O=(6=XQ2M\F6=##L&&`;JIUBY";N7A$O^+ |
3140 |
MCPRHCA+%17E!]L^]B?Y`!!Z(W/Y[\YFFW)0B7[.%D>@;,2`/KBU6H.DULZ6( |
3141 |
M,[CZ%3Q3+$KQTTN!78?[A,(#)9E!N2/\IQH%0*SR=#9$U7W&TYQ57J2BS&9W |
3142 |
M]VT"H4%2F<&LERWIMC#,<?T"^#V];NW6"_YNSA14+Q6:T'590#(9BU8Z.%DS |
3143 |
MS+LZX<*I70C-R]EAH_V\0KA]$:A:N_1>/]AWV8Q35"2)NV+3E;]*D.9/)O3" |
3144 |
M0%J7V5:^HL9I^DFO^#/9\WRY@YDU<UP6)L1/GK\TQ<'S69<C=F+])(6JTX&J |
3145 |
MZJ!L-1S)G=HXJ[8LA$"AH.CM"T.=YZ)ZEE97C%_>IA*_-O\7`BI`3J;QY`XH |
3146 |
MJ]A*`U[3#WOTO"*/?.[8%!.7'=\N(255!WSUZ1E(C`^M;&7EF"XYSA4_C*X4 |
3147 |
M]$G"#-=GU4[S5_T#GN"`JO.(PQQDDRYE(,KUTE$-3"8%FU@*H?L>DWYFC4CG |
3148 |
MEYCC:XS!-ETK/,2*+GIS/XW:)H6V[^O*USE/)_%OZ6_`%`YF=6OJ4$#+3""Q |
3149 |
M5,LK<]'$4DE>-^CN-HQ592Q,:656>8R9SK:W!R^CN@B%^(M]USL9=QJOMIX^ |
3150 |
M[WPVD^;'QQ,DR:UV#JD1023/>]&G'GT07VK+3L4K0O!3#&9!`((V86:9(]A7 |
3151 |
M?,^'B;8$J^WV[0*4SZ@;ZAI=?HA0EU\[$??Z=GLSK8+DW7<!8.23%LJ]#44D |
3152 |
MRUFK4FT;4@E]&.&M^SB\'8/UQBL)Q;[^XFD?](DB&UZ0+X`Q7O15R+%XXW&^ |
3153 |
MGC)N*W3:;O)?#\"*`)ZIV(7*JXX#B"6H42Z"_7;PADX;K:L"J".&<HRNC@A` |
3154 |
MZAH6.TI")=`I;KZ.JH8K92F+0I^!F[7A03O;)RWH:SON+=M;_P%$/237N`G9 |
3155 |
M1:@NUP5\2++0);BF3L-%]@]+R4>(%LNL[;JOWJK;2]LWKUUI\#QB^VA@94<M |
3156 |
M1*//6@C/Z"+G'2OG^1;S44A73_31"`@'AGC;&'O]_5)85LCO7D@VX;D.44;* |
3157 |
M*>Y!;1G&@NOJ*[@8I9.9*G;1D1&0Q\]C*RSJM_S@_W#OV1```[.77H)PW+`, |
3158 |
M2'N+O3X!![$)^/)XT#O,MS=CL'3816`3LH[U44"<[DIFGP%MPBZ5N"K0'AX? |
3159 |
MC:SZQKG[/_G6AB!P)XR\$1HSD)O)LB4?T-;?!M@XG<5V8?@G3CTV(\!@).52 |
3160 |
M(5I18)R;4+__QN+Z-&+WWOZ)5.V3IV7N,U^5..?+Y_GBQBVHETS17\;+W@C8 |
3161 |
M+YR_@].I;A7+%E&=,&TQS+3QRD].Y))"`HV[4U#Y(Z3!Q3<##Y'KI=J$)[-7 |
3162 |
M0IRNMOGE&;E%5,H93,/X&O)KP&M,S/2+)OJD(GANLXD+SG#$9-TON\$#_9RW |
3163 |
M4L"`'NZ0+(%I!V\804*9!3\=[F6"@1+_MF6/G2O\GU_+NW\`4$L#!!0````( |
3164 |
M`,F8DS&TB*BH)6P``+YN```3`!4`8G)O=W-E<B]4;V]L8F%R+G!N9U54"0`# |
3165 |
M>1?&05)YR$%5>`0`Z`-D`*7[`W"D;QBWB79L3VS;MFW;MJV.9V+;YL3F3&PG |
3166 |
M$]NVDY/_=_:KLUOG?&=W:SN5?E-O=27=>>[GOJ]?OU?_4E*01(#%@04```C2 |
3167 |
M4F(J``"(U??/4M"0W_=K`HZ:WP=($UE),<#7?U_YW65)WV=@G*2T70$`.+3_ |
3168 |
MOD$`F=E8WR>AW*3EQ:$6X'\`()%_X#LT``!$`&DQ836OU?,<3R\U\]4O04L+ |
3169 |
M5(H4-1$X&#+4:`D1*N'(GVR:">)V?1V_+SLZ+G7BES>5#'_H>0ZJ+Z$/MF#$ |
3170 |
MFT"@H("D;.I"2P'CD54HB/E5I[BGK^)<I_8GS"@@G`QKMYJGW2?9S;@>J+>. |
3171 |
MWORNWMH=G[]:I8#H=6#*0O#(58$F]UOGK\QSVINBQ\O0W!&V[ZB1T-?<A.0$ |
3172 |
M;4C/L%20?*]'/Z[9KP$S"'5NVYF!'40,.EK"6D*AP6U4?RF`56#X?.ZG:G!? |
3173 |
M]%_T].,/0A!*H-D@-D$W7S6I7W+,0&Z,-OW@X-\>HSGHMNB8PUKBFIW["=M< |
3174 |
M3FD!T2`+^#D`>*8H*)Z/"2)_@:#&P6;"-2Y1N;=3'.?%M:*I9?]<,#[7PPF4 |
3175 |
ML^5:S+>G*TQO;^_=[3\A)EL]_B87J\TFC^<KH/%!WCZXX%6]UH>C>_N&%%%% |
3176 |
MG(CHDI26_^/860;_F*>'$[1Z?&PU6VLHZ+QFW_JQ,/0P:2X3#U/5/)U\-PO= |
3177 |
M:&',7;<?/N-^%=U0ZVN9_-&7B"MB.;F;)O!'ZF@GW7*J<"K/BI(9A_`<ITJS |
3178 |
M%J.R$C9MG)S`[_K/TB6[]I5@JJ')00ND@N`RZR]7KF7(4)#EAS.[C$!7':WG |
3179 |
M]'L&LE+]GS3C5")$54I^5H)GBDO7H])I=V4\#P)&S#/%8.%6P_[5P+*6/^)N |
3180 |
M8I1`AE>Z<X'A#I2@TR+/JTTQ,3&G[;X@5^O6_*?W?D[.F]'ZN(0XX0W#Z0I' |
3181 |
M/>BNK].J6D0\?A^VV=G9@>'A^0K5LL,LF*#YDX$#E]F9F;ZRO("Q:&Q61-!> |
3182 |
M*`_0R*^[BZW>O*8FMK_]_14ZKQ2_.W3XV!>]:&2<DM,2.YW(O_^QQ24EWE5U |
3183 |
ME:?PD85*&AI#R=2J"N@8&!9@ZL!5'7V[S:Z,(#`HDWIPPC@1Z!_BQHN5ZGJ^ |
3184 |
M%\U'ZQ0F&U1KS+Y?SW4S(V91\FZ02N85I:/ZA@O#V+K4,0$2GQ"_.^Q>N93N |
3185 |
M>=`MG>&!6O4F$*;#L?9WI965#:Y'"A*Q>-;5,Z?WZMHS1W965/8W>_:M&X/# |
3186 |
MA(%_?:^Z)?7U\<W-S?&X7>+?+M]85U:T-_=BSS\R0?H=Q`U/U,%^YZ&\Z?Q8 |
3187 |
MTP;D5X+E5P=.>19%G,10>]:1P#O%1M?5OX]F'\]RQAPK2JG1R7Q@ZX6]Q6?A |
3188 |
MW%"!QE6B@NEMD";7ZXM>5,FNPQGPSMVO2809GB$0G&]:]RG?(?G&J<\<WR,[ |
3189 |
M(%$[0A27:`#:Q%><AMT><VFV-U-T0<0L+"B,C8VE$L5\?'@DXPC0CT"*_7/[ |
3190 |
M2]J:H)JAW@,KP+:[+#8ZW/E55%1^1D61TM!4MO]^O!R\\&"UFB$Z]^#UZ,SY |
3191 |
M^1.Z5"%'QL+B4'QO.,X09!U@=TOH9FUM'1H69CV=V8MD*4JO5:V5'5/N[CX@ |
3192 |
M+@%`QL&)7+LHK*]/H-?E8+7[Y^3BXI(N&!@0=Y3K^]MN/)6^7LC?EB@G*4E4 |
3193 |
M7!RBLO(5T%!9"5V@'E5(!4T\@3:MC09';*$]]MBY1ZI^YI0U*?"G9G4.P..> |
3194 |
M"%>M,7[:`/TD06RA+C7'>LH(GGW%/`J^=9Q_<._[97BVQ0IL?6#>@6=Z`67R |
3195 |
M.->RL;%9=;_K\7_#^8J>K5VCT,CF>^]^VO)^&;8NKP$8'4WE0!-C<;N0X?;H |
3196 |
M_NG!MTTX@SV>(T<$LAOVF/=HSGL3&0GB"LF6*N`7@66X$!`N`8(HB(0)Q?`K |
3197 |
MX'&1,_Y)O^YLC!<RG@J288YJQ[EXD:(B%P:;+3J0QBN%":$;H3']UH6V3DA% |
3198 |
M43RW_Z=R8F$5K_WBX:OVGI5$X)/%#*8R(B<-Z"/Y<UEDOK#`>X)GC00^IQHD |
3199 |
M_LK>`,R[MX7"MWM3S"/BH4,%_M;O3,S.EG-S8Q.-0#0_F2MA8V-S>KT_<84\ |
3200 |
M@>)XQP9TLD>3+GKSB`<1UUJ`(FO@CH8/M[KO)U[5ZC172NKHX'ROK.T?(5L; |
3201 |
M&Z=V/8-X-!&C>JV?OW[M),HR&/>'(_PJDHC1`>B!)&?!`$&F>&*"(^>)?/LP |
3202 |
M@M>5H/H>+]:H&1DEE<VR%6)R<`$\/O=6V0IEYM]_F]&'+S>C`QZUSE&[1B,W |
3203 |
M\-/;3+O4]^ERW7D8G^_UN$@OX.4`'I<C6B&'AUA:9Q%WZ_56D[LJG.OG)$V4 |
3204 |
M0:K26VA\>;3TSJS_'@B?>P2CAFV<%+3FK&)5)?PCAMVYUE3_V+]`%\0A+\.5 |
3205 |
MCA=?%\9N.^89V=[6ZB?;O>=IF4C%F6[+TRT@>>FB=9WM[4E9GHJ!P>\'Z<Z< |
3206 |
MK8]+3[NMGAS]3@_GHQS/!J,_H-]5A\7G5><<J4_X9*\0&SMF<[&F/-F+P7!4 |
3207 |
M51M8W-&1>3)?AH:+&[5V<=@PJ]FX75,BU^G,YS_ODY".%;)VP,:`\AI([/R/ |
3208 |
M!W0J[]TKG9J4!5#XL*+$LP7P?Q)<9OIBW,/#3X:O%M)J2R%WC(ONH?*=,2H. |
3209 |
MIRF^W?M7O3K:4(Q`$0.CK40'&UD)4BT>;+"#D3L5V;9=P(^0QT&M5^1)9MJW |
3210 |
M@3O_$1RX_C*1)8>7>0EA80K4(>/2\PL/I^!$,2ZPB'\$1%VFMV:JFJ=49_/Z |
3211 |
M"S*!<^4CM0")[)NUVMQ7=+Y70O2[AC,$_'FR..Q)R,G#5AHM&YUV1'H^'G7Q |
3212 |
M$(?;@6ZUCI<O-V9?O:7UNP-EDT^7,(()P^+-8/!.EXL&D]Y3V=Q@K"PLH,&- |
3213 |
MV/F3U0O/L;&Q%/S\.=YWA^;K@5\?KK/149:@FZ,7X))W#>KNXP-BH4E)K,"` |
3214 |
M#P8Q=70]!L[O?4Q*03'T=:Y,<8CN9$TGC=IH.2T!O>,_E&;@,SI>/FFWZM#: |
3215 |
M"C.#1JGP;C48B3X?K*ZG-64'>43&>C=5A<5NS&>,@@D@&I?I6O3NB#NU.[6+ |
3216 |
MJV^&1!2$:E28>ZMC)8J:;/MI^&'#5Z7ASXJB5?!D&3+Z^1IHL7EV%TFQ)C13 |
3217 |
M*"LN8'Z]_<=`J&<OEM?O-4;@DOX5*UY'EYQBP/;#Z'+K:Y+UBS?N8#S-5U/O |
3218 |
M>QQ+)I*1D)#\E#T>?1*\).Y69+EQ9L;!MAJB/$F#GD'-__3*_YETT/S9^(M< |
3219 |
MJJ1)LO\A4!NN;R9@@YOU"4[`STS%FU=89RX&0E.0)?_NGZR+"[([NE9E)$SS |
3220 |
MWUD=B#*Z8TQ34>@ZK::X<03R&%CIG&HI*2E4L@C=MIK6CX;E6)Y:*($YW@#' |
3221 |
M;<*]JU=<M(C25H"%=&*=#IF=!IRD;*7VO3[!_.\1.BC4!\LXO[U/F`=7#'OA |
3222 |
MGD#BJJ.-'H01@`+DV;NG_R<IO^\CV?<"+2RH=;B?2:BHH/J_/99T=66+1V$P |
3223 |
M>]^:(>+S#"202O+`SG&>^/"^/5Z$1!CM&M8^@)P(#+-6O,[!%5/*'\6"],`Y |
3224 |
M37IM%]C^;J>@XL(%7+CQZ`(;L8O+Y+.&/IZV!/&]"+70ZOZH0YQ69MUT_.FO |
3225 |
M;X#U./^W8V[44&W4K*/5?4K;<O$O%CSY1]Y^,X2C.`#%OKZ`<\LOZ7N9F;XG |
3226 |
MQO>@&,-U[!+6T\-#HY`S^FXRR<G)3F\7K5D@JQAV%=TF@Y'6_\WOLC*HG2J6 |
3227 |
MW*&D$7>HNO!PKT"-'X/AR!<V:Z*2BK>7E%NYK$1L2\NWIXVL@#EW[FELNQD$ |
3228 |
M[(4\]:H>;WE'RD[KN3>[I6I++N?S.FPI>PHF!*Y40M]SYLS,S'1.1X)I@3<Z |
3229 |
M:6GI_?W]_YY1A\<%SG&R?TW76$X?[Q!A<_-#&S]+6LS(84:9A4MI!V+9/+K3 |
3230 |
M`]O%T(T6V2_61??R0E/34[QQ>YY++TV2EL?@NYLYG+N)YMX4U\+[E85Y!=)T |
3231 |
M0M]DK*0<D?[Y\9?SD[-5L#F,OEP,:VTGT2\SNA:ET"*L*`0-'A%G2WUQ=W-N |
3232 |
M\S#!>'S;/Q3"8;BQE@HD/;HLXH)T95&C/YDJ9:%I9?5J,3@B%1\\L59I?>%- |
3233 |
M(8L!UXLMIG@\VB<0UF#9Y-*%QV4??E^/10`P]Z69?$/2FUEK4=K-MT-`U9$U |
3234 |
MK<-VDE&.(#U]3'4U7<#7VY;K^3_F[Q<K,YW+/SHV]A]R9D)[3?/_1T,O=T>J |
3235 |
M&AI+!O%3(!A9JPF%A22_NVYE?G\-NZ6B^PT,_L:325VL<]C@24Q*`J&BIR=G |
3236 |
M9(QC-AVJ7HPA_]1(RSJ:R#"-^FX.9&1D1*3H(DKZ^A?]^1\9;$)24M",W?>) |
3237 |
M[H<3&;TW4%9WSD%C0!"PX[2$(+/Z;8_V\NI*$8_.GS%Q_3M.2NK:08A3]AT: |
3238 |
MWUUG_NBJ]_V`<=,S@\4\\DE;#L>M;`E>ZN3D))O;E6+DIY*0A_&-D)4J<<,@ |
3239 |
M*"J7C,?="^;9;Z_`DQ9:1`(&6_>#]C,CD*WWMK-LE+][-BR*'8/"B&^%HXML |
3240 |
MUL\SQ.M>>^YTV@U^H-=AFWFUGWD93[LW;2NMGIQ]N`$NTC,2?I\O1]U?`:<5 |
3241 |
M99D5?BJHA@$OY-^%:[?,B\?C]G-B8@*BCV6O]=A*GB7;;=%<3%*\Q2?`0J)2 |
3242 |
M,P21A!Q&D$[W?2>"D,7X+_CNWAZOWE%*2DK7_9PLW]?[W15`%VC*L]D,.R,P |
3243 |
MT:[Z$YT87+9W>MBBF8B61B-'@8.+WVZ"=_#L24%H.0Z?3==>MVX_13=N-U6= |
3244 |
ML>W%2IP])C3\7WIZ%J(BX]%9[Y;!937O/([4&M!PPT_93ZVLV(`KSJX@25X$ |
3245 |
M&GH\9\+1LANR[P;=L3'P,V0@3"9[X@._OVQ#_!ONRMY*7$U6>IWRN,[]3YRE |
3246 |
M"W;@XCI_+UHV(M5V/!"SJ*)JM=D0+CXH,#+ITJ-B1$%.#2,Y6,Y#30/T*L_L |
3247 |
MY2E,+?&%O"AQ]R[]<]AKWT_<<WYI/",M?O<:"OG,@>\8(RTO7]+4E/Q=:XRL |
3248 |
M;&F4N5[!WV1\<]&ZI:*FMD`0WV-TLSM(%1E<6+XYU>O[1-#A)KU?:C[O;;HN |
3249 |
MV:;O``X:MQ833\0@L#GQR0(&N`^59>Q.;FOC8HS/9-?9V[(`<NR#?<4-FABO |
3250 |
MMSD#0G2J]]3#0D/!Z6ZD__G<.Q@(<H[6/;#Q>IP7%Q;BJ:.45^Y"*)<U_F+0 |
3251 |
M1SW!,X>:K&F0!WZ^WTTGD/U:7]=#)!28J#/N_]=DC5924F)F9C93I<EH8FHZ |
3252 |
MF22AI3LTO$TZ&5PG5K#:L>.15UKO'!<>;%B]WV']Q/+"J8^L8L0H7*1/89#; |
3253 |
M__-<8//U<F3XN#^1;,>)ZWC^B#[D`9+VJNOF%3?ILOM*@,-A!9*)4*NF\5@1 |
3254 |
M_K'+;.7HV"6W,FY#@]VG$=+>:DKBHP4S&X2AZUJDT7@Z0AA,+WL%"NC8NS8T |
3255 |
MQ?]BMY410?<FH&/1N_E-Y2\G>T.*C&`[/E_>R)-Q6[:R8]][]^/UX?YJ*^\[ |
3256 |
M")II#UDT%E328$0-OK5^734W-]/IM<5_OT[')-"R-5`K1JXC3'5CI.:=6RM\ |
3257 |
M`V5SLY)VI-5J#+X&$>-9ZKTRZ'QU5SMI<WYBCJII]PFPA5+/&!@PW_F7BB?O |
3258 |
MJS^_:IA/E+9'Z\%>=VBX@\2!)$+*03H13_F;:(%QNAK<3L7`==O`JXM_,66P |
3259 |
M=>+NC\X^YR@.(%X_M&#C<Y;"Z"-DRG][J@2X868)9EYT7]X?]>[_"[*W^[S6 |
3260 |
M!LNV!<K@^_4_0";'+`I/F]46KZT09JNJJ#QOAR!UK6II:&!\YY#%/](/+QS_ |
3261 |
MI;[CV2*HJYXWAL'!P9H@-\0ZK[%DZA$";.V$;B$:9+_7E3(]YE?8%L>M\/$] |
3262 |
MB=OV1"(!@=P46DV7AT5-*)/9E9N;F]#P<`[#^7O[IMH"X>7%193O&W*Y?/Y\ |
3263 |
M([E0%1>>3I8.25;5M$62M)24D9!'(`L+B]^4M8U-<7T!`?#:0M2TZC9\_L2L |
3264 |
M#P@":--C^(Y!5-34Q.SL*9O=OK[ZY]\4&T;G>Y&^8^DHEAA/YR$FI:EF^T.E |
3265 |
MG.-7=^N^<<!'EI@8K_[Y-$3Z9)Y'\K0E_QT=DL`]<G\$HO'?MMEJ@T8'T.U, |
3266 |
MMAN9'^(%3<4_&37\8A3$]A\!3;V0_M^42A)JM%2MC2.OWY4^-Z=2._L\Q7ME |
3267 |
M=G<X:;?1D8+-:G%].\Z8E)4U7I)F8,-!\LIDY;K2\`'PW'KB,FQ!>F?DK+\+ |
3268 |
M/-VK&&):MS`W-VY=6VFVQ>3FY@Z-B/!]"V>VB.F-N7I]]=&HT1G\WKXGF]V= |
3269 |
M+QGT-=8S*M/5":?#49C.Q6VP68N[.=YDTB+*86D/.&!,`Q:#)LW-:\'KQZF_ |
3270 |
M&J3**R-IKFW:,:(@HD(QV_IYPIC(BGA3XGJF([E[$2#GEM*17P?$Q;=I5A3+ |
3271 |
M%X.KH<G(3.YZ#Z+:63/N1V0!9G(]^'?7]/HW&,T1GD5MV3Q"5L#9%0H4-!&9 |
3272 |
M9DE3%.S1FZXN/]P8=D2P;$<(1-`UN#M/*-`C%C3HY;-PX1_JR$O4`WSU7BA, |
3273 |
MW^,-T]`/)4Y2-9R/`.ELN9:2@R/UX6P9#17U[^O#&;9@SX%%69IA0,9H$N7= |
3274 |
MP[)AZV&PYY\HQI[RQ4#5HM:":)F)RSQY]47LF8S&7C4J$/_7>YBA0K3O&P@5 |
3275 |
M`T.IY73N]SXSG&^3GPLM$,;\\6.FV]=S=W?7#^"WUF(/C\<U`_A5+@2P3XZ< |
3276 |
MDC:;]D_BCWM'R9*_V_W7;HN)'@MK[TZD!K[MT:G$QR(:#E^JN\Q0\S!+W><B |
3277 |
M:O'RO!='S<!`P<V=05O;E=BZ%;!VAMIFLTCS'[E]?7Y,TF85]4V^5E;MA;N. |
3278 |
M1IK!2&J=$S4]\7D5XP7A%S_N?+8#7:!`=`#+/8^KMGF;WD?X9K5ON8NV2Y/3 |
3279 |
MHZ,[-9Z?\LH[R@(Z77C;!FB^'``>JPTL'+;MQ8*8``@F]],%C",]GY,2`Z%< |
3280 |
M9E,)HA<T(!JEC--XC\&?179W?)-#"H]-:<(U>8OIS.]@S\+*RNWWS(2-C?U= |
3281 |
M-ZT^-=^D8-N@UQNPL+S<NB95_GFSPTWW1MRK+NGOB""%<[V0C-Z"F[]\(1"[ |
3282 |
MMF(%^:`155EI%ON"X&TK2+=,GJR3-$0_Z-X07AD97`U+9[5-%YKO&1K:=.0O |
3283 |
MD&5J?%L4>-=NL3+6ZOS^#(%0IJADJ!--<QV0^2-EBAA#MUDR!<#7$%PY4NU] |
3284 |
MH`AH!&X,T1CO]>:!CBR:1\ODV^E^6H??GUD`W"#K/'8T?9O/WG3"NGDTA(5! |
3285 |
M5$OE"BHK(__]^\>!Z['=%_1-EDGIZ5+FYN1W1]-/A$*)@KX]1[F^5C8V<X!_ |
3286 |
MXR["T)-2L"*MTM;N/XOE=21^Q43M=;J?M9G<'V/0==37)_S[I\5'$*<9\;@< |
3287 |
MS=B^C_J]/?M-X_@E7%Q86M==X$9'1\DH*$A"^RX\6BM9JR(E^FCL"_XKC!+9 |
3288 |
MM'C__IAJPD`4Q(B0\_-/L_N+J$*J[RTTO#>TEU"O1?:C73WMX[LV0AZN5AHC |
3289 |
MON>JS\-I&')P"!128E96%)GT^5IKW.5&)VFHT=5F-]4KZV3&!WB<`/,;V(=/ |
3290 |
MU'MQK(S@)$N\85>H&0HJAO27(0HV=@Z3U74\AD[/S54LT-47V`X&0+A^`4,2 |
3291 |
M&-#WW!B45RUKO'R;U..Y5WF\6HLZKS[<>,+$/5\1Y?V(F,1I*A"MJAR;5Q1$ |
3292 |
MZ.M^VI0U-26%PV38_V:;4MU6!X,A.XNY(!D;FR>,7GS>`!HJ5B@=TR-G'BG= |
3293 |
MCS4B!@9$[=3_&@VI1#2TG-*#Y\CDY,%?.$8R-K:F#0,\5&2!LT.4F`S3`%&3 |
3294 |
MO&J/:3J%I.P9#6?VA1FM^<\]VM@+2L>+",B9T)-+'H.H=J&[\%DS,O0@B*KX |
3295 |
MNDHB;?)J8WI+%ELUO.9AI-E]*E'U,"2A/.<J+[G#M:LGS"2L(WV5K_*01N.; |
3296 |
MD[+`/)`Q#@(JBOI&3^H<I#HW48%')5QU=X6IA4Y0'._H/SIZ>G)V=G9]02;P |
3297 |
M4P$?K\QNQTJ$5S\Y*(;A#/QNQ$.1%Y:67G=;K[-H5K'R9F=G@[3<PNC&-T*1 |
3298 |
M[R_6T@B1?C#O[IJIJ3]XQUG/ER:DI`Q*$OH/M-BO_6MS)OUN(,;?I%->.393 |
3299 |
M(/HK.IJ-HCY<".T!UY%N^R_OY?Y)F>6.DUK#]D.@\TO>Y6Y&F66][9&#?<BO |
3300 |
MPE.BFE&72B5L%BNEK&T]98V)+4.O5,Q#@?%;18VF*D>!CWVPB>\EM\;4&^&D |
3301 |
M36/Y/,45F+&](463XEVM>P!GR\WC<:<IJ'G#59E]`1PB@C8!JE$2E&5>3DQR |
3302 |
M<Q[([@R\8ZIR%J-[7R%G_#[1-YR.B_&SI'7F\T$,O`_0KWH-O7;"\N5XXD7_ |
3303 |
MCNXV8!C@AE_B_<QH3<IY4TMEUJ8DLYIL,1U&[/"\4GBZW.C.;-PA_H&"(FQC |
3304 |
M0V-L;"PF(:&BKK[(`.0P(27;K_F829`>%GH]HJ)P(K!AZ<G`U>7*CAPO,DE3 |
3305 |
MUY?$H-$`D3R%,$;[^GN]M;F\VP&3)A^NL'/NNS/-13NNK&9/G@\KG*.KQ`A7 |
3306 |
M6S4^5,.+G9QDGZU3(ABB:A@N>3JM6F^SQMPQ$&K:+/6NIA>FJ^'<88Z335!Y |
3307 |
MEO/NE9^>61G)03^CK:V3D];-'_>:-/SL$$@0J->SY!MM',TJ4W>04$'7\W;9 |
3308 |
M65%;-7SA\2840B9TO+5)0/_BPB_-]H6-B6:Z5!B#Z%-77EZ>!3(U+&O[SH_G |
3309 |
M)_/=0,+"PNBTZH#_C7O_R)@_Y6>7(!L8I?(Y8VW.IM2,C)3?N#$0"CX4BR_Z |
3310 |
M_6!K:^N!P<$"*M@&NJ)CGL[*2FCV\@N'=N>MNI]8%@+W9*S3!;VI:1BS);:W |
3311 |
M;U8]?Q8#`/@3FIJW;QRKS2PC"]2KB5Q3D.F\T#-#KJ%N)TOSKF1?@&7%EV:0 |
3312 |
M*<:3I"39/*NU=8(:*ID(-JN015`#BTZC/Z#?F1:TX=B`/TD'Q[SA#<+\\/`, |
3313 |
MTN@(9,.Y6J.JM=?]9"ZLMN=U[$S#I@VFYW:,]OYR(ZNNC@D5%;6+UV9M/'_V |
3314 |
M3RG!<6+K8[\+JQ2G6D[ICIP1L#XLM*53W3P.U]+?O>^K47(('.Q(Q[]"*^X* |
3315 |
MP[5=X5#*6/F&O+ZRA54)W:E201B^/56:->]A-AMBQGZ7D"U^"E]Q3/[)V6RV |
3316 |
MBDT]N1#:J4TMFV9A[,<Q_/:0>^VTELO'D0$FQ>)^@8F=OOV[E[_`S:SQ`D?' |
3317 |
MS0@L@3@1+8[0,F?[*&-EX2RY:IMOS8K37"&6A#"@:E)FXS.'RWS+8FQT%&:D |
3318 |
M4(=60E)*2H[K2)JUNJ2EQ6<BG=ETDD#P<U/`0C&ON)@,%0T-F\LI'XEK[<(C |
3319 |
M%+G:H!MGVRDJH&C$;KUM-`HA-A+V-LS;97P9P:MA.;XLJ-;H>EN8RL8(=S%N |
3320 |
M*W`XU9[W>?*^XAL:TXO!@RK+B6"JEY"[KWSBS5O39CG9>&#J835^OZ:.2R+L |
3321 |
ME8D:+*__0!/2A`39<Z4F01;*HV?"/6J67+JG90UZ1TF+N?2=1^#\:2SJNBBO |
3322 |
MVV(`T64]EZL^#XZ.7.YYL6J^^1>_[IE5/Y"(H_B7D'F@`3'!2LBY@\6LNJ7- |
3323 |
MJMFA\#_OOB<FK*9O]/RF??@Y3?NPL,SW3KL5EN_!(/Z-""L=[K3?LR27WQ?2 |
3324 |
M3=X>(3_,H*(Y2.AUQI.PF1J[U;TO,_"=^_CK0,$7W-=,CLC)`_QF]QJ@>.D9 |
3325 |
MYA]008*,`2,N5***C(NQ<<Y]>Z#[([`'H.C/WT`CE>O6^=B0B+Z(&EP(BV.> |
3326 |
M0I,V5D$!HA-*SWD-UD>Y9;>;$(:;[OM6WBV$U'VY+K1G*+@IL_S/28\@#+DJ |
3327 |
ME(8M#D%]L8?S(,6IZ9^P^Z@R8LT;-!O4:SB@]NMT+TXP8/I[5A[:PQ)K/QMI |
3328 |
M"@!P.1W,/M]?OFEVT;:NO*;&_'*]?>@.DIY2(3O_]^_+KFH;>$585>_9K3U) |
3329 |
M#;7:^N6M^6&`PE?<I$7_@<M-'Q@254?R@@D`?A)_M_%\$2LJ>-!$?!%$*]6< |
3330 |
M3$B9G<(>Z,Z$J.G5D/X7+<SM$F]X*"9+2D:FL*XN?G_?+#(R\GB1-J.09-+( |
3331 |
MZWOM_X,<[ULR_4Z/@J:FZ&@XE7_UIKP.FFA3I9D8!.`\0G!3#D?VG;MMV?1< |
3332 |
M4#QE^`?>?5@#OD$,!P?HYK6?=\TN^54.>5HQAXD4,WX%EK-XO<.$I)<XW"[[ |
3333 |
MO:L=%7_<@A#/9K0SJ.D#HJ(NUFE8'<-RH.Z/$!$0Q%/-4^FT_W['&VEIZ8*" |
3334 |
M`I#6-?F`@)YE75)BXJ!?:)0J2DK`19M!BT9WZ/R08#>OZ#1_!-83F<_M=:&S |
3335 |
MV9)"-U'#_`V]MV"F(Z-M.Z;/*TR_UDZ?`7<PDW5RR7JI>`+S@^=P<[MT3/%E |
3336 |
MY+#*G+-R0>_0^+;?>-Y?CFJ8>(6J)D@!K^_Z?`2<#33E;A5L5,'^["XYFW_, |
3337 |
M/C:7JS^.-@S#)_RB*J;]1W>':[G%[Q3^7$<XC-EGOZZG>9F)@UG,G@N4EH,6 |
3338 |
MT+`MJEWW\\8%'7:T+@_\GBB!M=J<,8+[8Q^W>Y@=8$=/8_E\O0-/*+#>:0UJ |
3339 |
M-)G)#BE$B,32%@:B0Q"W1KMZ='3$ZK#.]<U0\[^O=G=)Y.&$O?CE`3X6,3^" |
3340 |
M^`+4@N+B.E?F*9&Y),7%B4.-9@O%CV_[;H0D_LIG<9PL6PW1&J;U'-K_RTR+ |
3341 |
M!Q!CL5D9S2"NS"C%`6PJJT9&>T(5'IGFYN?CR>"P_=](D/7B<V.1@^_OV0`^ |
3342 |
M93:7B=_G"BMIT-'1N?`024A!&X@ED9?PHI6C--A.@?#O?NW_FL'R"25<A7-* |
3343 |
M]H:3K!A*&`&T08(@\[,BX'SY<4D1[EWIEK=^3"'W(DTY7K,=GDEFKV[+FMD" |
3344 |
M<JTY/$U/YK=QV<6S)X_&,UMGN+ZK)H<@_[S]\M'C0:8T]=W186!@RBMEM+2P |
3345 |
MOF>GGM_-X.;B[WJ9T;&QW>>;/8M.A4X0'B(II(ZIJ@.>!X7E8\W9\'!\NJG0 |
3346 |
M`EEN-V#BN[[)Z5@4#^C4$'M.6<YN:HEO;*"SOP9-+JOYR&\*'YU,HV$:F:#P |
3347 |
MQ#V=]/';^=`A]Q*SNU:O^^LB]X,RZ^OR9`Z8VS.UL8UWX4#)/?P>B"'_CSG" |
3348 |
MZ!S[N%,TN20!;'*&@/?,R+/<%_BR\1@26X!%O995M;.2H?;?I<%IW&T^R<"\ |
3349 |
M5<!5`VIZ\S<,('#=/F[#QXDOV.`TUD?-!%J7IW4M`724S29E15PQ^_;T[571 |
3350 |
M_J<+<)-/14,0)_GD=9U?&3G=6OCUNYS&H74XOUH`H-_U!67]+,XO[AL]AJ!> |
3351 |
MUCT'Q"Y'<-JL-X4*?)W/BP6Y0C'"S*+SQ>+SBD?R73)0>EH79@-K/"%50Q=/ |
3352 |
M[8;O+/&P`BM@N0N*@&F&.3T[=>Y8E\(8+1N&*6CYIU9$%2EP7,W&P:%D>.0` |
3353 |
MEZ^;Q,ECU1`6&WSO[=3X1GK-N:V^D42,85]U9_EZ]ZG.V140WJ*K<1QZ;K'- |
3354 |
M_N$(L=4G`SOY9W9BB'/4+HH+#F%US>?CM06>&@T=W;D%IPFUW)[#[E_?09JA |
3355 |
M@I96^K+^#)P#!EQ"0H)!^VP\.R0BWLAWW)R&S=<%WL<>?%%QCL(BO%[9`%UU |
3356 |
M=(>\W9"1L*)$H8Z(?4*:(:8.+?6^/#8SS"LTEA]6,(L+5[\SE,8.`\]2]'Z' |
3357 |
MP`4=H[AR6$N!.#0.'XWW(BQ[PW8G[`M<IB<,]I-;45C?>>GT;?J]I6F94=I! |
3358 |
M(T7:UZNTO>?)6/O\1]X="/ZQ[?THM=)V^@6`G)P\.KI1U=^)D:P4I?3LS70H |
3359 |
MVMKY[Y\0*/\I!"7.'$!F9G;;!@&CR/W)?$1>`(](GH`_E\O`\^?HT5OYYYNB |
3360 |
M9,!M_0\?/@-DEA9.V>\D]\."NKK+R%")5YSHL,M^C8.A\[R!QG];<QMS:?'" |
3361 |
MHX@*5K?%KF0%`5F-4>KLV#(43%V=B?DD",P5^O#/D1O/:,>S264E7G)J*C(F |
3362 |
M;DB_LKB8&-<#`@)59/"BS:)'J'?3KRF+1N-ZG3H=.VBB!8>RRLKLX_)C(P"^ |
3363 |
M5&_R:CP#SX_21\%]BS3(KBK3B$+;2<^SO3^5@4\2:]Z6Q]-908+'PQ''P]Z@ |
3364 |
MR+SD?6^R1Z(AFVF>>*VZ$BE9E#/)!OK3&B$.]2A7'T];99JU!FH:&KDI=E8C |
3365 |
MJ?@0QQA$,1B0<^5>*8U1Q8LX/RW3Z4HN8BS*0.4)_A#F\?[[=V?\,#`#@ED: |
3366 |
M`GJY6GF(>THL$5:_I@0=NS26S,T>N*THP\?+%ZQKO5EZT3_WL(5SKV#*`?0Z |
3367 |
MLUP^NAMOK+VQ.>]_N.-[97YX=0ZG'#,RROI-.,VBT/&PI`MR_'6B850U#;"+ |
3368 |
MF#W6\`<@S`KSHN2W/?^(B4'0<4R['D,_#IA910!/C._*Q4LL(#_N1&C>"$.U |
3369 |
MK.R6.+?*;*UZ`[K9ML":GE@VKB"+7$\'?B9!$7AM8ZVF[OA;U4.?OO.K_Q`W |
3370 |
MOLX/>F6UA5]R.F`U0U179__07FYO=@QYJ13F8Y0Y7BK"9<XI^OGS>#*#=5%, |
3371 |
M7'Q'V<S$Q-2ID_\;@;8]?)5^A$7"0NWL&(>&ALZ,;L*HJW^WL#\6S<J8_XJ& |
3372 |
M9F&99(6QW"+&9HLDZ]<NZ(7:BVXE>0&E`/KZOW`^A)\UFP8$:)UT0G#5S6I? |
3373 |
MO/*"$B4/]H\D_R)WO]/1(?VZO8](QH5Q3'.)7N+*V]%"OF/G0:KN)C?280[$ |
3374 |
MYZFH)$](\9EHPBN=EB0ML_MTH935FGG1_="E%9\5J5%@J/SN`VZ2J&/F#/N/ |
3375 |
MJOVH!D@I3':J'YQ4H1%2/SB@-9)]!!Z@/XUN45'LF3*%=(S+$76&9$@E.9'9 |
3376 |
MTX56T8#4\)#'*XU'+;U\+Y)\!$B/"L94E1,GD:A3"VK.I86)':P("VJ+]4<1 |
3377 |
M?+DY7^"1D@=JVLR4L3GYGK4"[V[WT&>":Z$PV2`,,VDE2"X!XW8Y%Z]0,"BO |
3378 |
MI22`_QAF:9RQ-WM@0,SG_GC'?,:A-6NCT]/UY2"-MN/P/1?Q<?C>D3"\V?/* |
3379 |
MP*2PGSU_$#.?/A%C:ZT0K$E;(L$<.VCF_NRJ]R`NT!N:")>K4#'YT&OCJ(H/ |
3380 |
MP@_FG)G"IG4-GT]+Y>W5H\\Y/CFY*2&/$OA.MJ&QV_L9()9VDCO_%:!'B?DU |
3381 |
ME]>(2*]VCK=-G\//N!#GK2]8%IL*\JGK^W3DIEU/>D#N_U>PQ?$LXGSE'091 |
3382 |
MDMM!?%!;,VZ>O/$]2R0V^[AM1R^Q6*:I9FOPU8;KQW$(AF1_`*+[Y8)F[+![ |
3383 |
M_N6UG3TP/R6/LBARLLDMD9LWJA7=GG7\9ZB20!<)-1L'N1X)L5BA,DJVC4I" |
3384 |
MO!-U,"O!GU2:]HZ_DU=`=XI#/P;JU@FB#44H7%%8V!:7:\M>^Y2EV#O'^=^O |
3385 |
MB:QS;,S_Y%Q33UL'V$YG;%AV<9(BU0,%L>GS99F#NI6CG[##4A6=F.)E7*\S |
3386 |
M<?*5H(`/'5-:A2'"_L``<HRN3Z2_HN17#,HA>A4B"$3.4@;=VHN<>!4BYL-3 |
3387 |
M&W1>MBA"@4T#,/*OO#2,4_Z9T=$!_^R(0\,B(,P^W-V;M<C@&-*RXI5P8R,M |
3388 |
MTN:_0020^[G5BRUQWQ\^BSDR`])!/UI('V(,MT)*37U2U],@/]]L<.:-%1&I |
3389 |
M0!<+F0XD-_KM`"]V%3%]UMLI9S;`)2%RI^.C4&M[QXPO,X0R\),*0BL%J^H3 |
3390 |
MIRE?MRI$GXN1L79C8MWH*",C8_@>YCQY-!6C<&^J?2!&0]Z#'N3KZX",[6Q% |
3391 |
M(DP?=J)%MXV)1TSV6.T,A:%,1D!G=S3F=>+@\!U<X.I89L]3.-HOP\I8-D8X |
3392 |
M@.\G<1T[PNK,K_X'RYMG!".P;/H`EY3%VJ(7QDD$T;I&A#6A]!Z2R.48:12V |
3393 |
M82+G,["':$1(=_"M&:>HJ;IIS$[]WZSNI.MG+V:SD+X"U4@<0'#\?''D#6V; |
3394 |
MLC]U8>")R<G[,]JZ;$>,SO4S:R1:?0%1`;5,W8;826TKHOU?6"'@X+>[5HPW |
3395 |
ML`A&8O`:GI'6@YDV/HAW-_UNH`G6E8:=`7K.M$G+57TT.5H+-ZRI7U[AP"\C |
3396 |
M9I/6U7O8UA=W+U)QQ2IKKZF=3<$CF3T["CIA)\-UH5YM4#S&V9OSW<2*S\EJ |
3397 |
M/?::Y'T.R&IYJ!<O-*)L^YMC-)&2"GTZGKZ2[#W41:U2C%U;H32`LH8&Q?>L |
3398 |
M\^Z-09L(3$M)D>:Y;N'ZC>__X1=SUJ)B8(RCJX'F]-)JZAO+C=F5N.H%M;>" |
3399 |
M$+S;R[_&]RM=52?CS9M(?[T&K)$S<R-P?(6]5)W02?GUED?C:^"X=\5:TFZ; |
3400 |
M@R<HY[$D\(L\3:CB<%KRU_+#2*V;Q.ZL8-D,GSF!T%WTR<ACLZ`^,B9]-1$= |
3401 |
MD8BPW@]CM+[%(,1<'O?*@U[1G5YRH7:#-$)9*P\IK*\MFY?I'V#IID%KY%3' |
3402 |
M-FGKVO4:SL[1ZF[-L@322?"7<W'U>6$>EKGF>]-[MPW\T=M=AF_U,:P#3;6_ |
3403 |
M432[^4_]-HZX^U@MI_#J`SY\Z@._`A+2TB@1"?BH'B_6*)=^Z]-:3.?:5YL= |
3404 |
MGM@C5W^69E#&)05FT,5N<JGAY633_W<\SV7Y%^AB#6Y35%0DWAOP,6#?NO&H |
3405 |
MBKO,F48M3%&])*`Z)4DZD1EV\)]`N-S-.M9SF:/\"";K`)W#'F7X"DZ:$V&: |
3406 |
MRQW%$UB8,V#E5V?[G;%URBMI]!C2O*[_0.EV+IN][[)])=*TLCN]MN>>Z$6[ |
3407 |
M<?B/NNCW3J6^<):%A<5)7XF8K(:5OP[]T`[;%7W3#FP(5U3HR!9<K'@JN#"[ |
3408 |
M11I8P.!]6N!H^QE[#(XOZ[*6>U"BZ/_?FQ<_?T(CXG%=NTJI[B)MK0]0#@M( |
3409 |
M"$"Z!_*7]3@37W]6U?;P.-T?SXI)2J(1$EZA<4E#_P^+<([%,?#UI&PBG7F/ |
3410 |
M*/-M24''I_WGQ]M34FJJA)<7E[KLUH"Z9E19*8ZB.$SLK8H+YF\R1L:XIB8V |
3411 |
M1W0-]1QAY1]C8V/I+.9C%7___K5CD^]M)F_YU^7-"@:%:,?.$+;SM]5FD89T |
3412 |
M9)J[^9<6YYC'Q*:@`!T;RXH)6@Z(FG:EM<LRYH/SD(9,45Y"H'$?G=QM&*H8 |
3413 |
MHO4T,\!D,!(]&I^W93*KLG)L*H<7F]NEN%ZDJN@A9[RPH*!I,*YUPP.3,/`= |
3414 |
MYJK[B<#=W3TY)<5Y?T3XLO-JVLR2T[&-I^')%A*^$]V_Q-),`_.K0J8E!P)0 |
3415 |
MR0/XQ%NM--;BP65$!,LF);6C"V2A]+F7)WU%0T6/4@F$U-P1V"^5X(OL*ZH< |
3416 |
M`&@^09O;+2N]G:(^!2_'LGVT*.\L^X1`=7KB!.!2/1)4Y<^>$*\3S.DLI2': |
3417 |
M<_W[7XB#/K;"+],^)$[4F<D4*V"?O0L@3@:-#AL=!-34U`.#@RCHBWB>@5>; |
3418 |
MW6T;#I`(./L(FV;@?Z8G)KJLWI]O:(&X,QP0+_`=_PF=]]%4O]_]N7!M_I@, |
3419 |
M[MJ)U521,JBLH6/\GPJ#30F9-)24DG"ZE:\6[\PM\:*-><W6N]RV)L0#=+(K |
3420 |
M`9Y^Q3;X#HTKE&WJNCA"90HN08LVVOH8.YM4`]6PTCX2'V'`.WZ*C&U<4-SH |
3421 |
MP)K`:<#FTG!H$I&V^E`LOBUBUIH-,X0Z2T-CZR]T2J3`JP]/@T]G'!MVI.P< |
3422 |
MWO^NT>V/)-@].T"\>52+_Z:]/B33NSO0/?1MIOW]\(7^/PW!OR\/(1*UH>`\ |
3423 |
MEU#V8"1HO-*"7;[:]^(?$?LDW&?*B(X+U6HT4AH7'*"3CAKH.O>=SALB4E%- |
3424 |
MT5XFCOVI,IRB(1-CK6M%NUO9]S-KT=CQ(A:1&&D#_T<_T`(IB([MB4'1%E#_ |
3425 |
M=0]3V-]D7Z#?Z4'.S9UQ?&P5CH@_-E<B:VUEM?U-^4?P<TAV,QP+_VJ,\2J6 |
3426 |
M\,74L&YM*`#&S0EV7GZZD@POGY7J53[%)240$Y?VQ5TLELKU6G0#`P-.H^1I |
3427 |
M=<;]X0/*11+T@-]"KE>WJ,"Z.B;6_X\8F(\]U^JXI>#MS1U)LN=F<[X.F/DF |
3428 |
MPSTW'OKY,L7`V;V;B6+T:9RJQ;&[:<$XNG&WJ\T<WLNV$$E"_^3_H.G[E\]6 |
3429 |
MJ%+F94?YU,](R)3E'Q!Q5-'Y:(M<H(D4LE"$23[%0%TOX/=HU?"3$.N)"]94 |
3430 |
MLOS3K:N_RV-#[6EPOWO:-_!9,6E*Q\7(C+D<NLE+^9&7[SN]T`LB*U<UGQ\N |
3431 |
MZ<IGU;DQ=17PQ-OBN#7U6[^SZZ;`]7]:@#D6>X%57#OE"R);7'B+[[8[+CVO |
3432 |
MKY*5557_&73U]?7?M<N`Z\\.MZDSUH0[/,]9@_GK%W.;O@%EZLP7W*_^)12G |
3433 |
MS_WA?CGL!)#,P37OW!)$F.W+P-_&GX9#W#Q4V%I!=4ZTLIL$V/[*C_E_I!#4 |
3434 |
MI0Z&Z[7=TQ`JN$G#*G7^5QZ@:&,:2%\W\P;C\W#.=-?H0,&)@1$'9+EX</^@ |
3435 |
MI965"QH*A@VD-5+=<:QW%;>ZQNAW]GLJLB?A%J+]+:$1%::;5E.BF"?@=KF> |
3436 |
M<3)?UF@]3Z&BHI+.[\OQW^6<-<?>P1VG;#BII]?#7$+%QR];'%H%OU6_J]QK |
3437 |
M-&\]-=X^P)'!Q6+VT40&*Q,I*2D15Q;(ZH1,S-5W-<W-SV=P.AK\#Q\,DUY? |
3438 |
M1;ZOQ9/WSVR7G?H&"S/*SOX^?+YA+YRR.D3:^&2#^?C/7[]N!'V3?WE#Z.'( |
3439 |
M)@Z<KS3ZFZCUWL_)"C"+P7/81Q[@_LBG5,A^GHU$IRV%J&JKRUZ!GY*V.,S1 |
3440 |
M9+;YZ_67A`$@E)KB577G1KBXLK!"8&J+@!>`:)$CYL3)^VJA-U`;P)ZK7M63 |
3441 |
M\;-E=L3<I*'W/ZOGM:MPE`.YZ7DX!/*_U<6,OVK;0\P+$&W45+*]]`"0_=]7 |
3442 |
M``56NC\LT&3C9:SCPG&9,(;_C^[?JM->QVL"2,ZP06)22'E5GXJZ7#EZ[!(- |
3443 |
ME[EP+Q:N"'"PT%_/@<I:3>K43%Q$]B49SV&G9?-QW(#WM"OW,!JK.R@PNO?, |
3444 |
M40XO<Q,T/09^BZ,JK(A\D>Z5(<Y:TRQU'N^"X3;FC7)A6KL)XN4SK#K7\XVC |
3445 |
MZ>(\[,_FV>_IP&++Z=S_KFIF9LJT.FS\]R:GXU9/<EI:H]4L"85B[D2!:`27 |
3446 |
MR[Z4I/`KA;[CL@ND`#C:ET\-DM03=Z[T8IH!$?L5&6X(@?9$[0`8DK[K)+OP |
3447 |
MGQ6`%2FP'3M[DHC??I7MLO?K\\2J<[IE_EQV?7V[$M1]\@]@`X$@-D6]SG08 |
3448 |
MD1$LR1RB:O'OJ;IAO?VP!UE^\3-9+;T7;7!?P@__L2S'GM%?:)18;%;(JF4* |
3449 |
M!S&<FT0,#+$P:!3?C0121D:F[>-Q;1)@#]>R8%!O,MC4U<7G:N'6BT*Z9\WW |
3450 |
M2\\38&O5B%E02-5RZ/]<D_;_I?X)K:%[LF$)R?;%"W]H-Y]F+0/9>;+8*;JG |
3451 |
MHR<V*8B:,_K8MK4X7%!Q7J"3$A-'1D>-9_*%-X%/`>:&M+4NE*N0V/G<54_F |
3452 |
MI`W>AQ49V16_;1.,![7XY3N=^3"D=^7<\2N/_Z7S#+MDQ?)NIORLZ=[VZVH: |
3453 |
MXG.]<#S(IO+G>&B:ASX<)B`?,BN;N;YW$?!][7@$-D'4E8GK8*S/"&)'T?_8 |
3454 |
MH1HR"4F)55K7UE36UU;0WD$R&]:IDU;:"=_+2/IYE2HWBS1^8L)"$GV*^G<, |
3455 |
M=;DJ+&97]0,__'&,H#\=1(=OI;8%?V]F5(91"G>;3AI57/#BZ*V5$,(^1!IK |
3456 |
MDK<4E3"'HVFWVQ&QSB>W97<IS5^&"/]_*?O=2C1U?L_*_YCE[FBZK+JZNILH |
3457 |
M!XR.8UB5@89F=XRV=O\U4,Y2^X^DWOE8@9DVPME2#2DW-S9P;D[E]O86B]5" |
3458 |
M+C]Z$\`YG<$ZC(&/C\_TW%;O4O'[]Z/QS*<<3E-HS?^T_.:!HA9`!WI#XGSR |
3459 |
M[8D1H08MITX]-0UUXD[]@:'A'2>N\LIJ(:@C#GU:RZG[R2J34*\4LE_4JJ5> |
3460 |
M>8/%PIXVD\#DW%P"OZK6_[N&WQ\.6[_9?9M,-K]C9(>N&YY4.FT!D&<1J+NJ |
3461 |
M+\O#;B\^A\>+#00=.JM&/=0FE$ENF#R?TPH+FKSD@33#@)5+\-I7A][_Q#Y. |
3462 |
MTJJGXBH&4AZ:AL4[5E:5;APW9&KI9^.5723!]_COFD4F)-S:X:FMKMXO23/8 |
3463 |
M?3G*"X3Z%]SR:VP#0^B-Z4B!6(<'\TL.&ZC8`J\OZ)%>W4*O=3M6(^D\7HFY |
3464 |
M[M=4F"DA(FHG-R$?499V][#ER.BYE&.-4&S?5^O00R50J:K"F"W9,C-*00P> |
3465 |
M>J!PV-IH`+;]'-FZ(O@EO"M"KG#X&;LS?TG"SY\S_S''77]NV*:(]]ASWU8\ |
3466 |
M<QTVK+]\VK@2H;GQBIQ!#4.GUQQWZE.&F5Z3>DAE_+])?,`6UUFI2?-8#\G_ |
3467 |
MO</'MF7TE;Y*PLZ>(IU$P>QU;:2BJDI-3T].2SN>S;^JF^NU"Q.+SSO4NA4@ |
3468 |
MJZRL["OT&CP8A5E$%9GZHG/UWNEY52";)N:@PY'#.>0?NG8@<;S2'0;N?'-C |
3469 |
M\9B&#<BG_,\QV533D]@F`9N)#LP"X5&2LQ)-(N!TP+-:Z]^S1AP*K:0A(R,S |
3470 |
M^J7X=ZF(^UE>*PE>5['1=%B!AF9,&7UG4A)ZVXUCMD26)*?H/+]=O05F)B_P |
3471 |
MDSN1+"$K:WRG/P*;PPXKB\.^L*DI.3H:_K^+8G9VU=YST+;CSUA^Q=K(J51J |
3472 |
MNISKE_-L'#;$?#W/)N3+\IUIH[TGP?&@OC`X%RPWMW@29D_<978T_W\4/IV) |
3473 |
MJ$6>J,\!HVG95/]8AB-LD$&=Q6/=<>E_">=KI35KS)_P.-N[<O2\'ZU;]J9' |
3474 |
MN7XM5Q-WAY3W'K<!W0EDOV[G-^OV&8OLO7Z)1]G>-:^D?A/\X.O#V<E6K^#L |
3475 |
M[.Q(0_2DQ=TA"=OGXU=W2\M2EM"2E4H3$VP-:!-F]J0V2Q/@OH%3%;)I(K6` |
3476 |
M-5ECLIX\Y2'T7[7`,C.24M8F.P7\N?Q1V>91-Q1ERU"Q:!#E,.)Q1-4^.`:I |
3477 |
M2@YL.NK*8^ZS[WK#6!`IQ+[!FZ_CL`.?.I"^LC%NWC3."<[JCW8JJ%F9N_%X |
3478 |
M`6KE64XRX<;@89R%;RWOQPLCMX<1;I:@WQ+@"*=)WP;=)Z02$EJ7'I4_R?=E |
3479 |
M.4E86TQ&!I;0[SI($W?\N[.4]MTB@9HE8[-:S!1)(FWZ/^E'1D7I@IW@&=TD |
3480 |
M4ZO&\[,TY&+(S)$N^O\?1+TETF5V1I_=O;W)=N@/;3<//S^^@H("@3]WD]KE |
3481 |
M8<@&"!V_?T]EE8X3YLOG)U4B02;9*SU8N-:+>3A<AG!DA(:"0YH]49*2]A^5 |
3482 |
M9&7B6-O-D$R$<>+BZ*9P9BM0@D'"`_H.7!(2$T6DI6$J*BJ^4^/:F8GGZ0+U |
3483 |
M_J'=SO^)J*<Y\_E_R=-#F#S96`4_CMTG8VMP;$WT7F/Z7PEXHYU)3+2T<-_@ |
3484 |
M^0V<WT.(F(]O?8US(JAS8NOAX:%:IWDLRWKP?B)UB<VJPG))BETI%5XZ44EM |
3485 |
MQ[Q[",!F.6ZEJ&CC-BZF3<:_!V%`OVQ2;Y1P#>JI588<;N96=CO[I,U\U/I' |
3486 |
M:!4'322OK1Q:C_P-IEDG'IW>P,GNL]6/V9,BB<`;!A@]VFI*T%-"NUGX>.WP |
3487 |
M(TT5"AJ!B6>-S$1$JN+1BHZ$E#LW+<VQJ'[(&'A7TR=LY&O\>2FT;5<MR7M6 |
3488 |
M;0-M)6W=SQ.6?K9I1$WR_];M9G'AM_9NZ@(^?$Q,3;5[`_B)B8FK#7MS;_9T |
3489 |
M'3Q\7@[2,OB\60P#/]QM&;PPNYYWHW0^.-E]<,?*!\X_5]34<T!RN-]DPU!U |
3490 |
MX$^(Z'B8F9E1@+N[)CZ/Y])?GQ_L,6MD\E@X;L+"(!N=GI0,#%-0?:WV:T-] |
3491 |
M06`(\3]G*9D)@1PRXD=D#4<]H[F2GS\G2[V=S]>;HV`EPUIXD"M;*)<O1&Y& |
3492 |
MX+%9TAWT.YN6),OR!X^)R,A"XP0_TW=-Z"<74S0-1K_9]\(=1J_9!GVCP[TH |
3493 |
M\.OS,&52N2G_GC`G94>O@43[+PH&[[&Q,A(!M:015(5_VQ<A[#]'NHM:_XOF |
3494 |
M98'NNRG>$8,G_JKEZJR\I*1^W:OWK,*_17Y-7MP=!<M&TY!"4#6XHB&073Q- |
3495 |
ML[5$3H\7'F:;D-L#OU#7&VHSM?15EXDM'$R.<N[K-\P>JW_]_$G$RIK4'X&4 |
3496 |
ME)`@[#6^GB-@_OG^DDFW7&LX,S`=!-#YV.MWU7H4#>A$E=(A0_"R&8-=0Y@Y |
3497 |
M\R`<OK!C"_&I$E=7OT=./>@(5;&=:RMI4UA24E>.5P\:'/E-#-Y-2E;,?W6W |
3498 |
M@@>71/B1-<T^KM$3LS?,:,7E'_PZ9^+(%*@NE%0XQSU@4O58C@J4U%!"S_B> |
3499 |
M"S!-=;\Z8]3_#@4*0L17C6.E"*VTO,_#GRQ/`H[AC2[^UC[:+&OJAOJ@YYMW |
3500 |
MY+*8PZJKJP\,#;6LU(%!(?[W^9.!`3$:6MH,P<">+T#B^\H=_].ZJ*IJ$F2? |
3501 |
M06K58,C24,F,O8J$D-\.VKX`!T/LU5+-7N1LD6[=\="0Q'<YW7CQ&>"O&K+V |
3502 |
M["?*:C5:(,3Q/V*-CHZNNXS3DU%2)J6G'R,(GWK&*E*8J"N.:5O#D?M>9M'I |
3503 |
M=X2>XSJ8?3Q'.7'AF5D^418Y&OX0GVT<:+OQ,J/#@!%W6#0/A/7Q<)1._-=H |
3504 |
MB?1?4SA=A",&AT(B(./DQ/P^V^I(^%UNDM!_-KM]NW^)'$T$!$OFI7\$!72+ |
3505 |
M!ZA(EN198(\P&H@T0,-$%7_5_HR.5L!B\Y*"H]]Z]I3L>^&#/']J.(8B\/O9 |
3506 |
M>=D1E56J8+GQE-7N=EQROM6*N:(]V7G%R/&O$46L0MZ1KA'2_GBFLO+V?E[1 |
3507 |
M]K<:"$M>$R4AL=#_$YON0MIXOY&NVKWI34M3%"&&_4)P,[F(27+Y%6<2PS7H |
3508 |
M$*%H5(H&%$Z#V%A=N$%&JU]GRFRIG,LFCK!P5#F\$I80*+"G<9,^T;IUQ4C! |
3509 |
M/-59_*D,9=F_.Z_X)0"6;,^G)&=B>:7"0VAT$NYW7L!1>9J=7>$)P7:+%=+< |
3510 |
MUI;^[]\_(-@@5O;'ZX/I\4R!P":*O5SL_]CQT,3E-34/@U>(%-HL!XJLC<>P |
3511 |
MVJF=,,3':ZV,@@14)@.#HYM&KQ(9'/8XVMK:?O>SDG9K+3$QN)QS98J$&(P& |
3512 |
MT965\/@\R2,C4J:H53!LRKTW0Z`,77L*N0$^&(B2Y'`&7YAI7R<,N=X^&)T> |
3513 |
METL<Z525B'.1!%^ZYB/YPO;!KN+:S(&!.]H&Z6]TXX+:L[][7NZ3D)@L']&* |
3514 |
M]9V(MZKUQIZK')^%:@?CY(@NK/J7T&:\`DX7*CA4Z_ZO^7-3N_^;/U?P,$$) |
3515 |
MTI#[O'#R_UR<,U8PO@]4?T<=P1GB=#6%BU!U]E8[;[`Q4U"NA^52883.>L8, |
3516 |
M_WKLP5B6;[-C<8.UW((+'-+6CBVTH051ASY=#_;1]M+7YW#8&,W/MMM;H/G` |
3517 |
MSNX8EBG^Y$.O:L$ODI7CTH@:4!Q4;S-'+],M_7-2T+$Y&@<565%1:34/FI-2 |
3518 |
MLNB]LG97+N@=??5X=#-\,/D"C6":K1Q,'R=G?K/AN27OK\_OT+H&A4-60*Z9 |
3519 |
M$%HA^398RVK>2<)`,50MCHM_;_0-B)Q@V7%I2\^^7,_)P<&@L'!PVG5&(-V^ |
3520 |
M3R[YK8W_TP5X?/V!&Z*\O('`*9;'8G^J-A2#*^OMS7US<T-&0<;D<8X%"PLK |
3521 |
M)2M+^EWZXK,-WK0=4P[[Y/`JJ;A/"%$_C0]%%5GN\%YMO:U1]#LH>N,.<?4N |
3522 |
MH&9JPM#M4:SK>GIZ_D\<NMGLP*8@#[LXC1\EHCANO*ZH/K*UN=+T,2PK'\$L |
3523 |
MKG?N8'5WP$LNC:K%M:T.MY._FH;^!^ZT[.O@AMX'Z#Y/E_):6E@P,#";^,T7 |
3524 |
MYC/'1JIQU%FM(',(ZF767&A81M%^KA?4#<,QC3T\VU\KI*;!0:XU/6KW2,<, |
3525 |
MRZ-XU'0T/60:BQZ0E:`*B]0_B9=9K`\;!3(;`1WR[R&0<^U[TNTG`K%T/BFE |
3526 |
MD2H_0!#3(E7#=#)`<T#6VRX?L&5_?ZV?_2W.Y%.+KJF*(:R=IA3@B5Z5X"30 |
3527 |
M_E,$;28.=OQ*P?DBKL[680;K6<N>&@#RP-5/!6W4K%VQUHM6=KXFQ\W-#:*M |
3528 |
M9CMX#`WS"^:(SSJ\>6%)(^X;V:I7]H:WUH;/3Y*2D\5,3$B^._@]B&7G1BQR |
3529 |
M\&*59@C&Q!8E-K#Z_X<V1[V18O&*S^>%+!-?7"\8\(6OVW*QS3E?AHJ#LYM% |
3530 |
MK*<LC*I50^RS]4!TYGVAIEY2,"O]4[W.9;%53\`&2Q#_MN.P-!W0P0*-E2>+ |
3531 |
M$@1XM0M:X:KE;R@US(#9CVNS<]O*<F@3AL?-K')8;7B@:=(+.VQRFHE$NO\& |
3532 |
MJ`G=-K!4UU'I-L%:Y+CSF]%3???24GD+@M`<*#^D$&'>'(6E6L-I(O]%#:WR |
3533 |
MT=[Q5/HBS5J#_SXK4Z/;NOM-^2N-ED++"TN`#G$.1U:IUE3;*7"CFE3VKV?7 |
3534 |
MF:_QG$?HQY%TH6T\NJ!J*"^77MKS.UGTH#HI*E":G.!_=8?@N>2&/>(W1W#7 |
3535 |
M"\ND5<'[TJVVC+3:RO3$5)7YRAH5+A79-JCYXO]<P`0!?K>3%`3:;4'MK7&K |
3536 |
M</<S9U,(;)\/>S5N,0C#!\K0]3+E(G?_E-0O?%4-8"2C\-72\`YF.N*$7/.? |
3537 |
M/.O!O!YNA@E[C^J'">XXPN+I_.IH"8'?K9$E\-//,7@4CK$K?G55YW`JQY;/ |
3538 |
M<<9E=P#F]'1*T<ZY/^FOFL']TW,"^J+M^</3/3-P_LNT<<6I78_ON@\,5J<T |
3539 |
MA?43S,CJ$CG/O'9(ZP<=1A5G5"3=N(Z!B+KI'*06U)Y3&&44-9^RU-&4\_>" |
3540 |
M_RHN)OO>PM(*"J7EY3\-NA.I:>;@P_\;F-^XDD2I./<]EF1DQT?:B,+P>5OV |
3541 |
M/-AW["JM=X3SP9JVSSTV6VACQU>"7?-=5Y5SH:*%NS"/50P,E!]/!0UI)<>W |
3542 |
MYQ$F+Q@T`@\YW=;DZ_YM><;@<=\:VF\L&'4(1;@?5T\D8_3F#&>'9OXA8_NA |
3543 |
MG:K=8`93)!E'04X>%AX.N>[`^?+R8N`8\YT"*!2RI;XY4:,*/6MRB1B("#NW |
3544 |
MPVSPR$X'W5?.YC@%K?&_<^26&GS'^Y[@>M;T^7<[0)@O$XNTR*3B&ES\^EDX |
3545 |
M)J(*;7^*+$ZY+^3QB4CI:<9V?7%6PB'.4M=#"?I_,A#$X6JCJW6HX?SXTX/3 |
3546 |
MKG!EU!!P9;OT>7?)*&K1,[APU&-VL[><7>A=9O0LRGG`H>!_*<O74`C2:.5! |
3547 |
MJ*H6I(2>:4/SO),S+.2ZP?JOX`NUY_^1(^=8J-T_#Y[_'1101O8DT9^?V[+X |
3548 |
M_4&#&A,V?/^'(">4\<O;)R;T.QC/U<Y&:_8P^$^NU;$S$M/+7N<+@X5XC(2' |
3549 |
M^X`KJ>J+*SR2NS5$).3FAI-ICQRO809M!]^[A2(7EY6!S/"JNZ9-?)]35Z\H |
3550 |
M+^_;<4+&1HE'X`ZN.S2*UFDJ5(8RVSX:'_R-#_A@RH0[I<,7S!5SI?8'T?J5 |
3551 |
M>FC#H_,3"'7O?%L7BWD'G:UL3KRJT"5$7=-Q1JM`6+JF@+_ZQO(BJ3!W[/;& |
3552 |
M='SU$,-OSWP'..<3F($=`1Q5_>Z(_%Y51Y?]NCHFAN_(?F6SK%5B9F[N_/[L |
3553 |
MW*A?M@'`1RZ&TC]:=,GQ*;.]K[(2[4?$L/P[4X+'=G1[Z_RK@I;Q%)H+=]DM |
3554 |
MUR-2-_62^W/P0;O":RJ9N#/SV-HZ&+^*"@)')M;6F&%<$0UG.25Q<FMWMC_N |
3555 |
ML_=QBJ^K\G3]*Z]Q.CX)#10;QHP$#.N06\DL/!Z6C(PH&`A*0A2;3X*8L%3` |
3556 |
ME;:VN62SMN:KZ]NM[HMO<_9@&=BB4*-:KQ!7_E.4EB0I7TXDT?7QP[3[S,R\ |
3557 |
M<3H9/'#S\S(@E^^J4?%QQ?**W6_9TW_+L_ML)E>1>P[5>#F-XPHOLJXLP_4` |
3558 |
M_X&7#V;B63!K^J/7):`9GLGGJ^[]+?/T*3?@@Q2/=U.N31TDW5P;[\.$,$)P |
3559 |
M;53V::/XSXN%=QXI`]BZ:5]KJ]U*(=#TS!8/SMR44`VGT4#\.!MGK)Z=0"BB |
3560 |
MOX9&1B0,;F9N3H0+KZ"D1)R$0.>GV-\+.RT!)$D2-LY6J[%5Q'S/KI=LR_=\ |
3561 |
M$U[LLMN$CSR)$A"T<G8NQY6&,';;)3_@ZJ9-V8BV!)1508>/&^]CM8$2B6?= |
3562 |
M&G#EN9$4Y6]-C7*X?Z'',1CO7_.S6K+M1FZ_8Z;A6,Z]>KX+';VURVU[YK<= |
3563 |
M)RV>G+3O?>STK.1*`HRE="P^;@A3$^Z`^WNN`>*9W^(O@Y;:A>PEEOO$X=PE |
3564 |
M`,I'=I40`2O\CF*_IISQ*^5O$[FDJX,UNK[("@@"CX[OAR(W<XF<A86$)/MQ |
3565 |
MG>X&W]T$JUP&2]C]_;U5F]&/=;HHAXT.\0,)>MMH'/;(WJ^/*WS08S0AG_&0 |
3566 |
MK2W3$5A)J]Z:N)<<KWFN[LED6P9$D"-F%>-??2M^0V5?[F=!7W1W!'F"78;8 |
3567 |
M*%LH.HB792][2*OQ>O<GIKX>*+'_;(2C[%V+R?\N3??[S=K<#7?7Q,VUR$A] |
3568 |
M6;#20%@X8A\PWUMVJ]0=A6PYK,_7*=<P^)^G#DX=Z3$*?87!*PSKC5TR`G@] |
3569 |
M+\U,%.*GMWSP;VFE,?T#7^]/*+O>=1V[%R\[&<R3(*\/TH:M'!Q^D8B)BT-< |
3570 |
M=;?&1$;"MMC//W9[>'3Z?6ZV/*UZP^KJ%!(5IW'ZMGSN&*PE_WWL^I*0$PS# |
3571 |
M=0WX+X"S6<\%G#S[*G,+%7H3969EP43T?V.Y;%,8B`@9[-QA:3URK%B?T5R1 |
3572 |
M1`S9DLR-Z7`LL]FUT>/5UO!O?=[1T2F3K9X/,[-0+K]]Z!TGK-KE*HW0YO*@ |
3573 |
MJ:,[8V_ZKE0D7&CPD/.MWHC+C`U3D*:L@!-I(OWBY-)'6MC&*C'['U6<GI_4 |
3574 |
M3@D+*9IVW#8'.4MYAH"IE+,/%_THN'JXSJ[>,EJV8\Z6`"E75]J$I1:0)D7K |
3575 |
MVEB;&4HQK(_;M-[BIJ;D:8&W:M&&@E1Z58CO5<-)@53!]`N--9^+A-I5#R]C |
3576 |
M6['S0-D>Q\A2S]KDT?$SWR]RC,::P?P[X^<4N(8D$ZFL6\O19-]":&?^Q(R. |
3577 |
M]#XSE4I/SS%NK5NZ$5LR;BE9/)N.&&_U\O[`*;C.VB5061^7=M4\PAYQP(/_ |
3578 |
M2P6AB^[UIO4A+971$+&O+L(0U,!F&23)"8<^#9%-0HB7T&@X5I'+Y_ZGS05! |
3579 |
MH0L$*E1-0-^0J6]A`AY!#?F(C6ASQTQ_T'31G)/G:JI)*]B)5P\L_\/=B]^_ |
3580 |
MELD<S\W1UX<S02%Z[`"PE*CM.M+"("<NN8=CY=N)R#^G2@+TKF(D-FF.-:ZT |
3581 |
M51F.9!+[@PH^F`\459(4V-@'>%S7W!D9&4VANJ-C4X7M[6%"?8JNKG`[3NG? |
3582 |
M?(T"6[+W]"8-5XKR2^SZ[>.Y2P"Q77+A/`IL(A<+GJ?$].WQ`CSD#YH0M_H+ |
3583 |
M*0S0F["Y_F_-7/ATZJL-\[^#M_(!G=[4.YEV"I%W\T>/:NS!-<?>G/O+[_L/ |
3584 |
M#][`?[,AG5@\=>]F-C-'WS'[?JNCK_O.M.PU7L94RKWU5`T)R:;=KE3-H_(E |
3585 |
MW_WO)WQ>1"=F,CA&0*,FH+:,?\PF_O-9*AU?\F_H.\&GQ\"A9Z<.@4,]]_)/ |
3586 |
MU'HT)AS.&B:B_!)+'%)Q27X3H%L4G&HY)!4#0\#+WY@J*VMKXO14!:ZYL3)? |
3587 |
M3Y?MJ`^\?V_8$8AX.U$?$5X7[37KU_VV,*UBSV9/B`*OVZ1CLK1>CF\<N0'[ |
3588 |
MWO!.D,>4\W.TQZM[O'\]<J1%[+35P)%[#E)UNU1+Y8@%!?,*"PNI0AP<'`X7 |
3589 |
M-0W-QY*IC;]S`;'15]`_#_BSAV5#RBI?*1#Z"Y#5V_+WS51`$W514TN+B2GM |
3590 |
MQ^L*I;;[#B1PIX\#FZK31=+1_SBGVW`>K/G\=".C9V<5Z3N[?$Z,2A,)2OJ1 |
3591 |
M3[T\J9/,VR?>41!C>HZZ$HA<B'JS7K,:3W^1+*_3;W&+O>/OY%SU2)L-JL5. |
3592 |
MLFP'7@_)/MVNPB'5.VX19/:CQ.+S3-3OU?`]O_767Q0MX!\1Q!VQ+LQ=X;/@ |
3593 |
M(@+0R_EP<E;<GK%LQ$\C0!>HXY8H?5MM\IC=;4I,"1P9;9C'0[L`3PJTT&9/ |
3594 |
M,-XC=[Y<."TO^^/0!'QX2&MX5O7>SH%G1[Y9VI!\YDQ'4W;MYL%N@2"X]!"# |
3595 |
MF=Q<*XZ%I)ON4SP7Y*I3#D-]VZQ#U3]-(RO&9]:#=)%H#+Q[-=1$TO"Y1';P |
3596 |
MKEBQF_.,V&E:)5*9Q=^S`'WSA:R7/YBXSN=^GQ-N??B+@"BZI913:*+P[I(X |
3597 |
M>Q7ZN(IAX(F?0^L:>*<0?IUK`OJ5<"G]J*^P>CY2S\HK3^.FCRCYDR_'7I'P |
3598 |
M>7X>U',%=&$']@WW=-L3E_%Z^,'WN7-N%N0<7]F4,2J1`W*D&J3VF?B$'ZFH |
3599 |
MJ+PT+5I2"A]\.O,)P\.T[#RQ@?Q]]+OP8JL[\K<OSB'1Q[9\Y>4E\BI+A^S4 |
3600 |
M]D,H_;^.G3-2CK6_,/NLG)\["71;'>0S,VP]!)RV^Y#,`&\#UR4O$)X\29P\ |
3601 |
M)L_-=L_#:TDS"XWN03%@/6A-6#,;M1QN//],"`4Q=O`7AI("4Q.J,GY+^^6> |
3602 |
MRIEJPU-N":FMJFR,"D;O0$>7"=OF:#GR;NT>]^%DTT?H';BSL1TMZ/$&QY%? |
3603 |
M(Q2/1U-I9DMC-]%O.:3&^@CU;2/78[+1H8=OJ)\_"AN?ZNQ=RF#4K-QU-I'_ |
3604 |
M'4,#MI@>3^62X8=32A%!0$"\A3:[EYUQ,+24,)B0G[?NM\Z5Z)\(KT?/.!D4 |
3605 |
M20-U?T@V#-!N[XI%JWL8FP[I6/!%>']4B!!!XAS@)I]Y#&!W!0#X&`9VD2EO |
3606 |
MGL<\H9]AD7(Z%RDA+EW9O+K%%=?MO7ANUBA=2V<30,8I/.A^KUFFCC\0J&SI |
3607 |
MKYLF]XZ.D0[)5;`+1SS`C!SA`&=FB\0A0Z>C?>K!MU_=7"(KRRH"B[K!-L#^ |
3608 |
M=7I>/?[X\4.LYC/8N\?WR2$.<`6S3#Z[U%EI2+EZ"UODZ(VP[;)DRK+L!EG+ |
3609 |
M![,I+-A)035UL')(9.)@;=[BRJG?I0WDSIR\#(R+Q?>AC)`[\5HQ:2P6"<[) |
3610 |
M3OPW!+@6?*D3EV6SU\1K+XSXPJ1IU(ZR^I4'[:K-R!JCEEH;,]'$!<\FC:RG |
3611 |
MJDA(7_CU\24A\OET_,PLM#_<S!+5"5K^P0/Z3Y#&%W'LC1Y"POS5JY+[;T\P |
3612 |
MD2*^M;G@M>RL8/-A4F73;L(5?XS+S^.:`T6*GRTDM+B=SU;R>:/;2Q=T<`I' |
3613 |
MMTM([55P`99H-,93G"5H]^*#?S5`,0LYPOT1#ZI]"4J$AS.MX0OMT5;>LNR' |
3614 |
M#%.GPS%C70[-7_1>]XU3`8$I7X*T=(_.W+V*GZV\HQD3?"^^2VV&)+Z"-V@D |
3615 |
MY!NE&@K#3\M(]6E+J%X?_B3N[EIK+?[NG5)?@IEABJ`",@5=NLJ?,8+DSE<Z |
3616 |
M"7796X'(Z,R'S?9O,]^=2U#IM6[M:H/21>\Y$!40D&,><]E7]\[6`\`P4!OU |
3617 |
M,!H01^>#B]91_9,'G"\]=%9*W[#).'U6?<=?:[E@!><3=8F;(G"06\)0>I,2 |
3618 |
M$,3>%J1K2@_I"U9@.>8S@J-1$4D[PUMK(0181.:8KSUR&?6\?S$L$+B8_JRA |
3619 |
M?@2<!I6R-K0C'#=R106"A>?D]#>J,%39K6V>/ZA8KCU:G*2#4'<>W-KEDHT% |
3620 |
MUO@%ENZUY[0@'@`O4`'ZS!$$0$=W4C#`UIC/&."L$L;PPV%.ND6U]@:S2M\Z |
3621 |
M3ZXKHY+^5B7'?BV-HLXR_S:0K6`N@((FJ]2@6\OH^VG,@\:`;H(!>8-@!`@# |
3622 |
M06'QEA^2C\Z6(&Z7-3GPEV8Q*(OF0AATE&GR,Q#H<E>B_/O*QQ5VD/I&2C_] |
3623 |
M`'+=E9$Y0I/F_BL0V1["W)U!C6`8T[.;)SL>9GE$4/L(6I0QE"A2OBI46ZJ4 |
3624 |
M#]L(>YY3HN+XV:2W0JJ8BZ;W_'-'UU!&'DX8DCS$GOL%V;3=YH?!P)6[/KD3 |
3625 |
M)5N$^``AH>4(V*T.M?2$@SF&4_NU3ZU<R[Y3O@`X>-VD\;T^LSS*3/TZ#:%7 |
3626 |
M-Y#IL-ON&*H(NR>QU1+@'0E(*GDXPI@O!,2UZ*V=?`XY?=71+/YU;:4E2KSS |
3627 |
MDK4>>'%M9C]T7Z/SWG+D#W59?OAD@1W/BD9(ZK3QDBZ6W63E)'@/@X7*`;-J |
3628 |
M>A7S5K&+]98+9](W5_QXTL=DI7C.8GT^T(61:$=K8\5+")G[!U/(&TSOGL^Y |
3629 |
MUII:7B[.`I'6=\H@Z;.WH\2!'N=8T9"[R$7T<\AP?59@&O`7)_RAJ=%<*V0= |
3630 |
M6+I/"?"^0\8#A'4YN1XWG?#VU@$OGB`6G0M1+M]JPC.([A:R&JQAI$*'-GH& |
3631 |
MH1@*^XH]_3&697F(ASII&8A]V^W^5PI7.>A\7`GQ]U2PF^JK7`#"/=*2"R.3 |
3632 |
M#-;]NQ']%8`]B+DK=_?*#D0&2`XY[[=9ISGRQ<XUC<%4C19O$`<[2>.6G$"? |
3633 |
M4X%AI9,T7AM4G_:P#V%TWL[=1?W4@W]LKZWW:PRB("UL4>;#3Q(R,AJ<S+C4 |
3634 |
M;75825G($K1163:;5:P2IA##.GEF]-Q-DYWF+^EV-H<%$RW@4'Y'A<C?G=0< |
3635 |
MYK)VI>*2U0?J(E;'$36:T]#N">NCF1IKFXYZ.A%\?Q`C\<Z?^LK7#%F+:N*5 |
3636 |
MH/V+WZ5'Z9(7>1A#N1Z+38FO+GLM**"`R%&V,XORJEZD[U.SKS*8CP#T%:%Z |
3637 |
MWV,!<KJ%Z>2\MMXGG\4]<C(!\W0LHAE(05/Z6?8C(`"6Z"(AO,$JQ62@OQ9_ |
3638 |
MA+;O.2O\VM/H/0:VF-+AO%;H-9)&`,)"3^4/@]'2J<HCP/*9/G=G8`.U\L:2 |
3639 |
M`#0\(Q_>+$'7'68F9/T3LYW)NL8VKL!O-6^_NS(F%KDJVQ*G8<@#NYL0[>-1 |
3640 |
MQI@2BA=FCKRO4@E,$;01(KN(@RNH-7HJI?J0#U(+!RS;$K9HPXSI>!)T+@TV |
3641 |
MZ;$(@W6BX",@5!ZT(5,8J;V!TA$T:6"IU)N+B.5GCV.1J=/"([[QZB>7T4V7 |
3642 |
MFT'<"!/!MEM%XXL)I@R_`?%3#.<=3E0GJ<9:E4O''0R3E9C@5*N]KRM5C$^? |
3643 |
M#D?6'6"KD@>4>L1$W]AW*(.<TUO=FPXPE=:S/'E<5?;<Q2>GZZ6/J(07L4`^ |
3644 |
MGN\?OIB?$>++US0<(QP1W$6\U8G=_/-,XB;E/6EAOJKO[RW)):3+$.+/Q&1C |
3645 |
MD<WJ6EHN2V4VGZ0_X//6</J-7,P+$602?G>^/-55Z6.9E"K@)T1,5A(@;T"4 |
3646 |
M9<1]=J-W>]$77J:/Q(!S%B&?.?:/%_#T^J[D[O`)Y=:&T&X6=WWC+MU4OF5P |
3647 |
M**XGHM:M02&*%7]&`,O(;SY%G$+($^"LU)LJRPV$=ZWJ+GM`^R?J-OHV6\9G |
3648 |
M'*:'-IG<K5L"F@K$25#LE!>H%)1$@[P9NF59#L9>;GOY<?0B:`LEL/'?6@EK |
3649 |
M-F"JD)Y#IKT)-KV3Y5CVUNM'>H`]""%@7O.HTJ6.K@?N!VP(0PO=)4"&+LH7 |
3650 |
MZ`CNQ\=PX".#MZ'&>FRSK0SRXK-0.;.V[YNUW_7'*+$'/)IU/IVYJ=$:-CJ# |
3651 |
M]Q=%'VR)LN/:XR&*>C7('&/Z.``U(CELY/<S.E-IDH=($R$-4=2#;W'9#3!9 |
3652 |
MT["H^^R5YC)WBOSV"X3%RR/JP#3>X[H-?@K.''+/;*("GH6T^,H:<D,7ZYY3 |
3653 |
MQ-H.8DKZ[@:F;M6X"-Y'":)5)JLU"-24R8D`KM-*26\3Y$"HK[WNU<*4!_-* |
3654 |
M$C5,?O`K8';D"N!_S+MW0B:\"@?N"HH'4.CN(IP&H#EH;//Y6GD&P,D9EII% |
3655 |
MCVX1C"`:2;@CQH'U*S#N\AN5,AV_EHB?HVL+*UIB@%45-DB<#/@"I=66!"#D |
3656 |
MBDV&DOJ\:"SYB/%7,&#*Q7CLA7!JZ><=='D\`[)OVP'H*TH4B$UTV[Z@*IHV |
3657 |
M46//GD00\9?FP3G_R/N\__`0@%F4R>\@O'R00U*]`A'"NP[XA@!?-(WA6MM\ |
3658 |
MJCR3BCFWX<`[O'YGKLA'6G+VD`"#,<MR2,OZCO7&;MAS3M_N"8C@`$9:(-_X |
3659 |
MKD[&[TO,&KYTH/"TF[-=1XXAT71:BI!I#GX<L09&(P[T8LP131_K=[,)RC;^ |
3660 |
M\,+1LO?^.7#,>?J9,<@)!C=2X].JRM%Y]:9SAZGDSHL!#DI34KX\[EJ^Z$,^ |
3661 |
MMW0$J@H&@C$R<36LLEF28S0CWR<AV1EC;<ZT`%>RSG:,4L@^W*",X',.+&>T |
3662 |
M2A>6R1$HH5@8DZ;-.'+U-I#=1Z]Q]^7]FPUWPG\JD1__=V<+%/:$_5U7R!'D |
3663 |
MRJ9_C<"V6(U%XJI@&=!]S'^N0Y077*")VQ):>)H%9`$Y08`16J5%S(%(NS^P |
3664 |
M-FJPFMH;WK^.5X8.HQU[^5&./9/S!L%F&V1`*^N]:#2#8-K(18*."IY)E?7( |
3665 |
M%"\^>#\,'/U>H0O0J9C;3_&_6"+A3SP(5H7+(V<'G`]-TS5=C"(EUGSB6'?( |
3666 |
M+PK*\+QPZ,&I\%*,R=8;<I1)8$L1/Z0XVYGYO:%T(1&.;@Q)`MD'XCG9VC;! |
3667 |
MY-BPFAZG;)T<DM]R*`,OL)J6Q^FV&Q;;WU&Q/,45#<"'Z*</T;TO)X42()8! |
3668 |
MY*DZU#JG=S?X^40+0\^0E.E_)L0.--J$A<Q#^(X@*]+@2NAMA\L>;]]0N0CV |
3669 |
MY+<^^E^=F9$KLT9BA%IW8+-9?<QHKCGPDDIC6#1FA^;AAP])O#]9$;S[X+*- |
3670 |
M1]@)C'+]>I5#<&C`:]B&WMA`RR(GF`V08D$'Y$$8[X!VO7&]T`QJY#^#G>;S |
3671 |
MFP_YIL+4R,!\Y%4B%"!KFH]WW^T"H.CJZ!!!TWSI8[$\K)EBGHI_VU.OI8G- |
3672 |
M63L])S;UWTI4I(6I7);2[<7=>$.CEVH3/YU@6AJY@1SMGJX%[5*%,.#YTRI) |
3673 |
MS/[C!;)P,Y;9S=VI4(7L0C_E6E$R$A1=%EW67FDR')68T)9G?VJ!4N3`5&MK |
3674 |
MC(WW/=NF#/$YSR,+2-`?L-'6>$DA7:)+*M;8KQ$R4NT>]6D9S[B&"C.FEO\" |
3675 |
M\CE"E*!=@5*H,MW'>,"7F@Q=Z?=Q]Z-<[/ZR>49G[TVZBHL%F4H;<SLU\;[$ |
3676 |
M'3`XJ,N4KDVP/MD$)^*?`VS)0L@-B]>@FX]@MKZMUPW!]YUP&\)E4Q*QT<9" |
3677 |
M\JN;@<6);F)!L<%*321-"WH:SV0=/"FVL\4)@A8-QF+*"PR?E<Q^T\LJ9!<= |
3678 |
M>+"PX'CHB>T%"S^B5C;Q+,Z)\[D(B"A_3*T<4=:`^8P!HR7HY^UF->A<Y1@7 |
3679 |
M(1<C"%=$]-OT!8#+-+AQH5^EW=`4-+_.?DV`E'8`X187$[0?(CEAFIW`;!X# |
3680 |
M=5D94I]VV[VUZ>!*]LV0\JC99!F[)[(+"UYG3;R"R;6^JGC*%^>A)H]1=+\V |
3681 |
M7OGSQ@X:?5>3VK]<^I1<F,N0RK$UD5UB"S99A>N5(U_Q1W;*!2E1E6">A9=G |
3682 |
MXQ[+L<!>`.`>925?KQKR3$!Y1N.I-M_OUM59B"?]\@"+2::0M52F:6@`CN9% |
3683 |
MK73Q=QA_&68KZ"*MC!=VN6X!EINIJ"(BM.X8:.8Q][.+$0LYFD'BD98%EQRN |
3684 |
M";`Q%0Q4A2-3.(Z#3:"LVCED_2F2:\D^TS?-RN-&Y!H25!`EGA?_&AIL#I$) |
3685 |
MR6O2U>HK$)C"W'2,`1*T,M=F`0/F,08>-[[P8F)=K./K@!S?)A-0BS@8G`/? |
3686 |
M06"%"LDO8AL3Y7L-3L/QZ%O([0@N0Q_E"((N$)4%--+X28@UKTZY=N&8?&0' |
3687 |
M<B<YF!LGD^>=U_0K;_3A*$JBLK>U&`U>)Z2)L7P?+$]R%.>F;V4T/PG$LE$@ |
3688 |
M9WN=Z"'MIS"8FC:&8+.]KYX.,.+@HQ4LU6K:767:._S=F-QH1B<D0";W29E8 |
3689 |
M&]]\)@0!4G^V-900Q+\9`?*9:?$M<H,63*&T7[)!"K(Y1CKXOC\8NPK!<`@0 |
3690 |
M$;*>PHU4Z'?[T><T5K:.N9PJ_XYD!-X=T4L3QD(&`\F?$3D:"%FJPOS03G;. |
3691 |
MUO#J9Q2ZG?$T!<F0-DC)KDD;GTLRBY/T&W=@V(&(?IO/Q9UP$]*BELX8:<;) |
3692 |
M`^4-**YM\^+$Q(.J*;<<,M!J=G]N"C0K`,MNADR-BCRS+ZQ[]<B7VD^D,/9W |
3693 |
MR'P_@<&)B-$!;UARJHZ-*Y#G:3Z2#;/F[MZM[SJ@S-5-S<+P;Q9SM),8M.$< |
3694 |
MO<K0N:"KB,"$X,J-%[;,``[H@82^W&8;8T+ZAX,0M#`AK<7'W(+2?*Z@73<` |
3695 |
MKM^ZLQ'`0X61F/`$3A2</)AJL\2GVM3/Z4T<D\X<,=_T\ZE)1[HAI7A'1\U1 |
3696 |
M.4[0+4[93_]X.P3T$*1L**Z-ZT\Q8SGR.>7F06>7^$W+)`K[DF46@8S<>/V# |
3697 |
ME&,5P6/7=N5!EDX0SK-F6CCIVU-11.+"<DV6QGU(SP,*&V)$9"S+"/;J3EVE |
3698 |
MWND0(X4@E%;E*88X?B.LU\1+@+4B)K0#V6`^OP3T."JL9#?H`KGU$24*(Q6\ |
3699 |
MS^X=]7KK%.`(!77.U..W46J>1;X.1AYQ@[TS`(!(^9\+L#!BDEPAKWX.H$": |
3700 |
MW,5D(+6[?#&W8Q4Y/TVC]C:]3-9#A-.=U,"YW_>-5JI@`3EB`PNM@G>:*O2= |
3701 |
M7;GH4V$^`H4=7C?Q&I4U&9.QA^^#Z7B]H\67VTD`OQT2,;Y\R&Y[)E'/VBL4 |
3702 |
MOTI^JA7%N!J8:<`<,7ILDT,73)T^'/,_''?_'C^&-=AN1<@`W?1%0=RC/3IW |
3703 |
M`YL*X2:]IB/8/$:&D-A@5XGX0:'FK>DH:J^M83BN)_;2!TONU2_>%GM#\I!D |
3704 |
M3@C>8:?\#AW69#I(+EUJH&OW[&\TYF.K0(6G!JG?&[N`HT\&8B_#$DC^$:,9 |
3705 |
M<P5(>VV\"Z(01%PN2Q:KQCPSL&48`3H7^%RD$=^:I`;M9-B01]S8X'UAGM[3 |
3706 |
MBQ]8;O)0?=YT]MB3$[Z6(&>:R;>4^1HA]Y#H1WJ"U;Q/`[>_0;5I95<0%VJI |
3707 |
M-&Z'$D4$P*9@?+@=F(ZU[S->"6_Q^JUEL["1*;`C.<8F"LV!BG;QZY5P0#OG |
3708 |
MG[$%;KMWB)`79JA9\)`SEM882%;A5GZY>T:PC3][=Q5]#^@3+.>:'WBJ[[Z\ |
3709 |
M]&L9W=\W=ZV2(T"/Q&8%3ES\0YA@HKGV5OZN;[H:S^RYN86;UV-`PY@J/&GK |
3710 |
M@15#==$H<.<+D2)?TPQKXT':>WPZX]_\S=(0,I!T/S;-<).2U3+2U$D2SMKN |
3711 |
M(E)WPHC72R0+68I`LH*%T+:'3V4GJ3"'^4>F@[U.%B)/@].TE"UOP;M@U#7* |
3712 |
M=$SNG-[N;9@DO0Q[1X`3(6S+1$`KQZ,9,,YXX4]E'Y5['TT+@=!!'^'D&Z]! |
3713 |
MY(>A[2_@5A^59#%34M8#/E%B-)/%P('!=30XDP]6/G#%RD"C.=YJ'K:=K>I: |
3714 |
M&.8PAM.-3Z3?H1:VRIZM/B)@M'-,@(=^I%LZ6T$;\S0?$CJ=[OPC8>V+)#]K |
3715 |
M0-+RET<.([Q/O)AO-L2[,)LM)R2_!BN0M?&9@.EE(=HJ683.(N>G\%H."#ZF |
3716 |
M;^G>TQ+NMI[<SD]<O4)_&:JX,5Z$\&ICFPT$4%3!A-@3LYFRJ)8N%*H'ZICV |
3717 |
MN(,Z@2A<H$O>($6^BNW,RD;;?)@P9PG4/T`T(B3WN-E[XOR>2FT:]]"193$4 |
3718 |
MUT;+Q:X0\`5H*.0MQ#3"/;2M;L3WY6BW9D#<2%D553.:/YW\.:OLE&L_<$'9 |
3719 |
MG\_/<MV%4'U7Z>&5FGTD@_N$.]7DY;P+X;S?\MMH1GT0XAT<2V4U*@],=`[4 |
3720 |
M;_W/XY<V*&2W'EE\U>"R6U'R\,?<8Q->HT)="S,Z)#Y2\1$E\X4L123IXQ.[ |
3721 |
M%"74U"NW(G;*H(;18YBYS<NCWV#H\+%(S=F@?=_SW>MUK%RCK?W:9QM'7""H |
3722 |
MC9AOKF'2./&-U)G$')Q5H=?ZN$J;CBDBSI6J^&;?.)`.Y(B@X2]35FX(!X"4 |
3723 |
MNM9[Z><R/@GZ,5_/B=$8^9'Y#::SQ(G$NV@"ZB>1N6MO\KP[#-:8BC&;;4<? |
3724 |
M!@]6$^01"TR"F\2;5<2U6W\!^S3(U!U"S#N.,]:N$15!K:8X\<\A.^GD<$8; |
3725 |
ML,@_(RQ[;+UY!T(^,].PU'=HWV']($@2HII#ZH,#)L1M5=ZD%L+%K&X$.6(I |
3726 |
M7@E'D'6U1N`TE%U[CJ)S[O36^IB."Y=;"I7YN`+5O)'`2Z+I.H=$]R)Q^HN" |
3727 |
M91%3Y8K8I(P;*P/\MUC&;S'PQ<A`2HQY^3#A89/#TJ$/_[VOM.\"[(9T-:`, |
3728 |
MF>=6B>6$'=6EO#!OGV##E'XI&\C?$.Z0'\*B[&,7@Q5?$Y8>$(82ZYWP?.E! |
3729 |
MF)`'R68_M@1)HZ,_=#=JV5]*9Z_%Y`WZ`P?[XFFT^W)Z9_W-"YA83+1YA*#S |
3730 |
M:3\:\-,Y.RFA@DHVNOR$=3M4:"MK:+Q%>/>;]OHQW1?4ESY1TH4..+^@Y9(' |
3731 |
MZ9(JRKTQFDEF,(QP1-8NMP^=<SR^$^8FO!P3=A.<Z@PM9L00%2Z""/'X+DF" |
3732 |
M)`-J>!,31):I\<F5H3W3\=U(K<[9S]/V&OVFN)8#U7L73TZG33O`"BF+N,-P |
3733 |
M/D3H.%W461BQ;:E?D3&MGX#QE$!S]K*E,QSR*8J+Y3>M"0)LP!><F0ZM//BT |
3734 |
MP5TKEJM$P,!`#F6HMOCR9QN>PT`X#N%/.-9:SO8]:QA:+*R,+/]XI\[FFC(? |
3735 |
MJQY\H9&?EDOO7@__%*V3Z-.AE,G$0(!7LA^FGPQ2?-6MJ!L.<+%/B4T\"::* |
3736 |
M#5"`O`AR@L)NP@\19DQ\[>T;])Q':!;AWG;"PG!+%NX,:K*8\2G1X[&7OFZ6 |
3737 |
M;TJ<843*.'@V8)A))N'*BIWTV3XW)^\27QOKZT`G[X*1FSU"K5%VU7#<!+7! |
3738 |
M0+]E8+J*!D4$C%>R<#&$_7!;[QW"FE5,"2_:(O]AWP0;729]&5/QM^L(>YM/ |
3739 |
M!)*9$\C`)G)M9V0E&D\)'],.W1P\TY19KSX,<DQ1^QT/!3#.BN6NXI]DEGY# |
3740 |
MW-(/`EZS^_+5N\G/I!X'`$>@"[$SZK%/OVS\@H!SMP,VI>L6']GTF8TF4\(: |
3741 |
MH-C"@;PQ"Z/Y4+Y\[QA6UV]>.%P;EC>P=7V6]8/&7[!T]]HTEB'3N^S;;K41 |
3742 |
M1T&_K$$(W+[[MAEQL"2>I;ZU/`(GME,N&EPV^:J%\??&UT^W:[E_()0Z#R!L |
3743 |
M[RF;$"),%3"@F!N-</'WB/ZLYNPYIO"G4:VC/".SF4GS5`KIH0B'K"EBZ8!Q |
3744 |
MG7+20A@C*!(X5?VU*P59K.C!@(C`,0ITY;6X5%_KRO/V0+D"E(V.]?G8DT^U |
3745 |
M"Q>RXXB[YG(:!MW=*F?@I6C-RBFLXPPS@JG&JHF%$[NF'["N2$6;*<SW$$>7 |
3746 |
M1;QK.^__Y`5&,8X<UO95)+%Z<2.&$*`,"Y>S9I^D&)P=X"<VI_&>^^2GF8MG |
3747 |
MJ.K@Q7O<J"?;<^(40&07W+V/?333L?^9E;)?:^&,ZJ]ER2]DH6%773HR>8L\ |
3748 |
M7&?<5B5V`2%L!=OP"6T;3Q'6?8?&.GUR05)*PMCV[,/K3=L"<WVG4;S&ZXVS |
3749 |
M!$+VIF$&2?3J'/(-'QU@&VGH`"E#J7FP[V'76H;S;Z.\X'5WN.(>OKR6,^`[ |
3750 |
M&K?YYJT8Z[&:4IE%YP0?)CA%H<-C02M268XALV5U04NCN:)"LW_%L@FXI4!^ |
3751 |
MS">5"(\#VP4@?\D,Q5Y0A7B`G22E32H$&2)6F#=&*23-T1D`,.@UX+U+@<XA |
3752 |
MU<AV/VJ\+Q,W8;/%70V86Z`DS9+'8T%R>1"*"%9"8BU5#]#&ML)6$_59=Q)4 |
3753 |
M,M1O-^3V/C.9%0O/&N+I79E.3;BWJ%1GY/6-(K!8D'X3X7]QT_<3:S$2`Z]D |
3754 |
M27,HS/==@7_]5C7`(?_;N-73(9\M=^A"4NFNK4HXMJ$/;<S',-8!`>#PF`C> |
3755 |
M?IEQ4$!I$$(DD'GX-UZ0$\J@56#<%B@["&$O"`44*-_EWWS%A*U[J8ASF:IQ |
3756 |
MRY@_"_<D&-VWRF42[)HX#!Q8.=B,W30PD/JB:S83:V',1R-7EM!1[S%`5\79 |
3757 |
MZJVT(QJB9K5!@E4.4REV3,E<K2_IF?P(+#(3*\R'+6V)<E)\B!,W!0.!8_B* |
3758 |
MA=C]D*5;Z1D5VAX->@TB/LWTVW7RO^F8#X>L1C><#5RP=+C)?]+^\J"&@7NC |
3759 |
M>A7EL"+06^X/`=S]U>"TKB`DP'UNK_J<`@4$H2B>?6]^S""/6%0!ZA"B'RU= |
3760 |
M&9DFTP9M^]P,/3?=$GA=S)S%-<N*LZ-]6UA52VW0);HT5N5SZKLZM;"&V0NY |
3761 |
M-6%</60A;,"TL?]X$&431!N+VF]WS0&."/A%WO^%"2,5GJFZ.[B).4>WVG=F |
3762 |
MM^#K=\RYH.8:'H7^+!-6%#Y87HIJ%6DJH>J6$?C"A)%=S'0G@<0_:ZL`FS8D |
3763 |
M98TN15%?AX[&XTQ/"Y(VA;S&<-*)@X]UBQ>^0@/-,!=+/(!EQB8R*R1MF>J+ |
3764 |
M1"0,4-B,I<'`WU(>-)L#R?A=@U]J%M5XE@+F-*H%,48K-L75FY7V\=>)A?>E |
3765 |
MTX$H1U87$916.#DLYZ\4WA7/T:RLUCW\+%C9:'*[!LXUVRP2Y9C[7HFI0LI9 |
3766 |
MV7C[9Y?$[UH2#T2S#[Z2<O/C(YFB'@FA-Y<%@:`'EFTUG,Q<W4X;&=D]!2,@ |
3767 |
M'0=V,OYN1!\13`[K11SPSS?-P&$EXN\Z&)4#[^04)@8+,'3!VZ&HD"#:0:C@ |
3768 |
M(=J'C&LA:#H@%N5(?NQ3&$E1Y?"2^^R!]`?IR;V9:;4WV:/F^R-EP-@]@>=Y |
3769 |
M>B)G.8-6QJAPYM1_@/]D-8E/MD;-<0YC&H>WMA1>U8#?I/D2M#INNV$[%FN+ |
3770 |
M)S<KJR5F/8QLBJ<%I%EFI\GB+U,<*U;QQ$?MB9#J3,(_R;O>U)28S']#+\O) |
3771 |
MWEF/:D,J:4/Q72^HW?$A*;S=M?<S:HJFR%$LM,<-;PG+/!8-D;H5TXG-RWN> |
3772 |
M^&>;PE25_F_:Z!VBA0A-&D%1.RD<%RF<#H\9R!*PXM&CDR'W]M@[NMTCP24B |
3773 |
M_.2S-SBK12FH+')\J^QU7L$_'ZD>Q*S91"@DAT).%IA;@6U[G]XM]I98.8R3 |
3774 |
MQPN'WG2X4D[=FRJ58J=U34DM`]?U`Z>&`J)+,XG*'::I%8*T\6<FXLYD(9RI |
3775 |
M*-PIU"V=R<)($1<,'PIH/UFL.T4/M,-_\1NN+@D0([R13=RV`:_?&![]U&(3 |
3776 |
M[$QG^*R'!6]3[PF*E&V[[]/9TAE+"ORHE[.C-WP^PN]^/]BJ8/`$DV3X0](3 |
3777 |
MF6C%B;I(-;N62',7R_*##YQNS%Z`3R<R/JB%1C9?+`IG147.\CLL1`T?KYN7 |
3778 |
MQR!'\EK=`3V#+*A;:T^O<1[,.Q<,:3CL_GFY%W*&VB>X6O+[%!.*#7",?Y'F |
3779 |
MV(VWF!+5Z5>O*'S,?<5%?<Q91:ST*2^`MG2#KON&WERE>I1-/XV\,+0?66;O |
3780 |
MY_1\X?X#O=[\=[Q*`OB^28LKB/T6,0K^?P%02P,$%`````@`(G)D,07)PTJA |
3781 |
M`0``;P,``!<`%0!B<F]W<V5R+V%B;W5T1&EA;&]G+F-S<U54"0`#+X"*05)Y |
3782 |
MR$%5>`0`Z`-D`'V2S6[C(!2%U_53,,FFLW`3)_/3VIK%5*.1NND+5+/`<$U0 |
3783 |
M,1==XR;M:-Z]@$/J5.I@V4+FGLLY'RQYBZ/_I;E!Q?X6%QU:7P[Z!6IVXSS[ |
3784 |
MI'N'Y+GU3<&8XU)JJVJV=H?T5L=)4_PKBJ4P&JR_Q4-HQ%C+Q:,B'*TL=<]5 |
3785 |
M:#B2N5R('6$/]6K5$NX'H-7PJ.TJN;AR5BT^-^=:`@?<U\SB<?IN7:!!JMGR |
3786 |
M=QHSEZ5'5[/->AOM,9;KUFE,AEOB5M[S'I+A%'T/6NW"=BT:V;`9#<-)`04= |
3787 |
M"T()GFLSY*@G+M>92?I<9S!CR/E3!3:IN@^=M*W9-M?%R=?)Y7^#O8\PV[C* |
3788 |
M!S*UBVMECR\E=P%92"D@$K00%_`)J#.XK]E.2PDV_ML=8V^NOD"?C"!)H"R* |
3789 |
M(8*MH)PEF`"_G3Z!U'ZXZR@#%2,-T;"$CH_>Q%'.4`!H2?;Q!L#1KM!V<Q |
3790 |
MRW^SCD\S0UE!_W8?J^\G2^B>*?8XXYXO;^+_[5C;CMZC?9!&^6<'/Q9P\,0W |
3791 |
MBS_SO`:ZX*;:?B#A0H#SYQ*:$IPTKU!+`P04````"``B<F0Q4+[Z<GL%``!% |
3792 |
M!P``&@`5`&)R;W=S97(O5&AR;V)B97(M<VUA;&PN9VEF550)``,O@(I!4GG( |
3793 |
M055X!`#H`V0`K97[3U-W&,:_Y_2T/:W%%FBU17&GY58NLH+H@*$[+5!:H%@* |
3794 |
M(@X4"E2*%U)ND3`U/;0P;%"@0+<AUB$X=?-2\3H=24$8HD.=R!9D:JL;D&4N |
3795 |
MH)MSQLVI+,N6U?VT[Q_P>9X\S_N^WP2Y-#)*S0(L<(\.>GM[!P<'AX>'1T=' |
3796 |
M;]Z\Z70ZIZ:F[M^_/S,S\^C1HV?_>OQG<U+BT]-BQ<KX\%`1"0(`\']?%ENJ |
3797 |
M49=K"K`M1>5:+%VKP1+D"B6=+LP/Q,)%HB58HGIC11X6L*%H\V9U?@"65JXI |
3798 |
M*M:4`OZO"(T,F"#D.06\,`20Q.DA^2<]D5D%72R>!\A-C?F&<O@&:%_E;C>' |
3799 |
M83?"YK9]>Y1*S[/O?@IZ=ZA'FS"$T#OZ>;>#DB;0\B$8#083\JJSIGO6*@_( |
3800 |
M%5[V$E_IU9S#H\(`75]OYR/7U1QA0.\#(ZK'^7%1WI#]0Q]>?Q`"#T26_M9V |
3801 |
MNC57J?4S6TB)?A$#TI#Z$AF:OF.J''$%5[R$9PKX2G^#&-CU'%\1/%"6&9S[ |
3802 |
M!?.)2@80JS2="N&-'S!49^2]>)39[.%1S.(:A349Y";)PE,6DCFNGP6_9="O |
3803 |
MV70^P-V50M(+A59T;180CL>B-0Y:UB3YMIX[S[D-(1@Y%3;"WSN4WA>!*G2+ |
3804 |
M[O2#W1?-'!R/Q#ASV1,UOPB1MO?&#-P@0I_96;5\!W#%3W[)G\R>Y4L=Y*S) |
3805 |
M(Y(P+N?XN0M.&B>/<C%B*[L?PU%%.DBJW2=9!4?2G9HIA64>!`I9VF7G!X^= |
3806 |
MC?IL45WUZ,7B),$K\W\ND`2P\32&U`%EE5@)P&C]?J>!H?7,HX\XR1S)D5(A |
3807 |
M)JS=ZV=(ST!B?`EY!R6GX8+C;,E,=`VK3QAFO#*E<)E_TC_@"0ZH3LT[0$/6 |
3808 |
MZY4#47,O'%+!6')(`T7&]=C98)A<S=?[)^;XF6+8ZX<+]U.BM:_O(5#;.-?V |
3809 |
M76/56M?I)/XM_7RVS$&NZT@=#&R?#.(MTC$JW52Q>++W5>)4)YM2:RI4=I!K |
3810 |
M/4<:SG1UA2S&NWDRP4>[KQPCW6JYW''RG.O93)X='R^0++7::9B*#V$,G_GO |
3811 |
M>_9!3+$M.Y53'<HY02(7!")H*]LL<83X">[XDM'V$(7=7LI"F:3&P>XOE^[G |
3812 |
M*:J&C\:]NMV>3"LK9?MM`$AYF`7WZ$01X5+*RE1;?BK/$,;ST;\;WL6&#:9+ |
3813 |
M"25^`8()7_2Q+!N>D\>"V8SHRY!C@>8(TX";B@M=MIORUP)8$<!H*''#U75Q |
3814 |
M`+$$MTCYL'\%8_"DR;HR$#]HK&(3=1&!2&/S`D>92`B=H.?I\3JX1J*<+WH* |
3815 |
MKM6'!V_M&K>@K^RXIW)74Q&$SV"KW;E4+:K/=0-;,`JZD*-J5-&1/4-B[`&B |
3816 |
M8V?6=]]5;-+O(NP;UJPP>AVTO3.PXN-ZB$"?MO.\HK6N.Y;/\BWF0Y"^B==' |
3817 |
M("`<&.-M(]1U=\MA22'SU#RLE9/KX&<H3]#WZ2K9%+BQJ9K.QO62ANIM1&0$ |
3818 |
MY/G3R'*+8HD__!_NO9H#86#V-@@1FCL[`])=IZY+X(#8!,[2>-`SQ+2WL6'Q |
3819 |
MD!O+QJ4<[L.!('TNEGT:='*[DP2U0?;P^&ADY=>NW?_)MS8'@UMAV%51S$!N |
3820 |
M)L66LE?7=`.P1XDLJALI(-'YT(P`HPF3BKEH=8%I>DSQ]FL+FM)XVW?UCZ7J |
3821 |
M'C^I])C\M,PU7SK+%[1L1+TELOY*1K8&4)\[?X-#I+I7+YZ/'X,)BW&RDU%U |
3822 |
M?"P7X_+0N%L%-3]`*H[@6M!^;)U8E_!XZE*HR],V>SPC-_++:9^GL9DJ["O` |
3823 |
M:$G,](_F]8GY\/2&!CHX31-@C3]O!_<,TSYR%@F:J1`NA`D'8PA!1.2"'P_T |
3824 |
MD,%`64#GXH>N%?[/K^7-/P!02P,$"@``````(G)D,?/W&"2_`0``OP$``!H` |
3825 |
M%0!B<F]W<V5R+U1H<F]B8F5R+7-M86QL+G!N9U54"0`#+X"*05)YR$%5>`0` |
3826 |
MZ`-D`(E03D<-"AH*````#4E(1%(````0````$`@&````'_/_80````9B2T=$ |
3827 |
M`/8`]@#VVZ!&R0````EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0("1`* |
3828 |
M(CNJ^LP```%,241!5'C:Q9,_2\-@$,:?-Z^IX)_)+J+%I144!ZD-M)NSWT$G |
3829 |
M-S^#".XB#@[N@CB[^`$2"&GI&RF2EBPM9.C0#))B7TAYS\5*U+1J.WAP<#S< |
3830 |
M_3AX[A@1,<P0&F:,B8!.I[/8;K>7I@8$0?`0!,'CKP%"B$W3-"\:C<8*`'#. |
3831 |
M[SGG=P`0AJ$NA-B>"(CC>$\I==+O]_,`4"Z7;RJ5RC4`^+Y_'$71DVW;QB<" |
3832 |
M$;%D-IO-C:\:$3$A1-ZRK%//\Y:3.DO:J)1BFJ;15"[8MGUD65;+==VU<<VU |
3833 |
M6JWH.,Y64IL;%8RQ%\ZYK^NZ'`>04MX"D`"*'W-_N<1JM5H$0(9AB+&`>KV> |
3834 |
MDU)>9C*9LU*I].RZ[OI@,#C,9K-7A4+A]<=#4DJM#H?#?2+*O:]]$,?Q>:_7 |
3835 |
MVTE=*\VR,`P71G6WVYUW'&<WK>^;C?_RC6]1A-VS&%[4@@````!)14Y$KD)@ |
3836 |
M@E!+`P0*```````.G),Q````````````````$@`5`&)R;W=S97(O8F]O:VUA |
3837 |
M<FMS+U54"0`#FQW&00EES4%5>`0`Z`-D`%!+`P04````"`!`<F0Q.39WZST" |
3838 |
M```T"0``)@`5`&)R;W=S97(O8F]O:VUA<FMS+V)O;VMM87)K<TUA;F%G97(N |
3839 |
M8W-S550)``-H@(I!4GG(055X!`#H`V0`G97!CILP$$#/X2NFY-!-M(0V2K,M |
3840 |
MJ_:P7U#U6NW!A"E8`1O93I,TZK]W<,#)5@Z@2!$*#+R9>3;#-)5R6S&UC?9< |
3841 |
M9'(/1LHR92K=&2,%G`*`DFL3:7,L,>(5RS&!G2H?PDVA9(5)'*=*[C6J6&^Y |
3842 |
MB#N<CE^Z?U&+7-0B#V?/1(PJ^2=*Y2&2BJ,P"?Q&9?B&E4VPXH)JR4R1P*>G |
3843 |
M^M!<JEF6<9'3A>;\;Q!,^ZO^!HLW%R*^:7NA9W+B*YX7E/9#BXOG('`/'13F |
3844 |
M<1"\`4PI[**GK@-K(U*8<RD24+@Q#T2$Y:H[T-G,)K@)2PI)O?<B+[C5YU', |
3845 |
MGQG7+"TQ^QH:M</PM1=OH1;_M&SQ\(Y7M52&"7.MYY<L,ZK5*Z>-#:FY)&L. |
3846 |
MMH\;J+%B+-%A^XA^+?U>[,%ZL?0;8C363#$C;[BYA(?TN$PVL;\91QMKR$)= |
3847 |
M-P/0._:.Y;LD/D<5%=KW<C7QE[%OUY?U]7[UM'--&^O(0ETW`]`['%F^$S7K |
3848 |
MQ-1*ULWD0^VQ<A4<<O)QZ>9.D\E3_P4V5LF9Z:KWS9P+]`XE9[YU8OF>?:-0 |
3849 |
ML`H]:MK`*9C073^:60Y"[A_!%%P#_?#`-J8\TCF";NYD&L+OKMK%8A&"EH_! |
3850 |
M9`XEFO<:"IXA<$,C3MF'3,5IQR)]<^C>IH`)-5B7[)A0(H'/0^NQ<C/;MNE9 |
3851 |
MD',+HQ=CY69=/_">A5BY*7%F>U8B0_+D6XDV,+A!UV[PVW2>^L^DT4+6;CSW |
3852 |
M`^\1LG9C[<S^7\@_4$L#!!0````(`"><DS$KS$%N5!X``((>```G`!4`8G)O |
3853 |
M=W-E<B]B;V]K;6%R:W,O0F]O:VUA<FMS+71O;VQB87(N<&YG550)``/)'<9! |
3854 |
M4GG(055X!`#H`V0`53D%5%1!U\O"+M((2R,H(2`-$DHL"R(I)=T@W=TI)2%( |
3855 |
M(R$@*+!T@]12TBD@O30BW4ONOW[?^?]S_O?.W)ESY]X[=VZ]F?.BU53DB/!I |
3856 |
M\0$``)&"_"L-3%^,:?(/P!AH3M(NC.G`YDIRKP#H?V]>6U$R!H/G(J_G#@`0 |
3857 |
MD/]K6(#,;&H,$M=#X8TL[A0A!/"$J'RYBA@`8"!1>`73])G?S_$->.OY`XW< |
3858 |
MMG#\P;HD,C])J8@U9\')D\=%A:MV!)=RA?5%3)2N1>JL!QE1>TRI0R(>6M.G |
3859 |
MJH\SQKOW65;$Z23"0)IJ:ESE@\MUH!^-`P/-P=F'>+;RD^-)/VY/`MM._.8_ |
3860 |
M!;B=O!B[/`W\LGT3B(_#2'#]C:4$K&:I-I)''","1]29\GX1M(X?1ILPS]_> |
3861 |
M+A[?]36'T*[Q%Y6**`5!QT#&,\%7JYF?/9J(I>3H,LJ?^T$B.^Y+T/X&6*H: |
3862 |
M&AKF*BK$FYN;J6-0]*V"5`OJR&3^@S`4ZGV+,`,RC`X-M;1__?H^@H!*0T>G |
3863 |
M;[4[:J[55_"P]938N>V<$@$-W0WA#0NEO@L*\EUH<(104;VKG9//X/MX\1.\ |
3864 |
M*$>\[K5?4+`%`"PT.A<U-5&KK0/^[I+DL^/CDC!PZ34Z&6U>(H.AA,6XK1U\ |
3865 |
MN!__K1D0,H`07R$+*4%[T8HL']&!";G8))<C)P`@4#,A.[<YJBJ(A56Q:>F+ |
3866 |
MH#$Z^-")_#`8C,*NTL/=8UGJ[>WMZ>W%&K\_UY[W<I)UW9=ULO^Y,"NO*"T. |
3867 |
ML*JE"4E+HQ1VNJ5ZFAS]D/EUE<?.Y&+UNSX&'#)@=8$X"V+EDN_B*']=OFU@ |
3868 |
M;(P>+;ZRU-%Z.\MZ>+>NVMIQ,#9<FM&9%7PC-I0.'6CU=?_LO6HXFB.4<\/8 |
3869 |
M1)(\T,^:/LPD(I(L@M3MA*<S;A[W.9D`',CB@^+>7_,P`"JI#&\ZU\$%>*KN |
3870 |
MS(#<H&L.(2$A]IBHA@:OS*RL:ETN0+;K3YJZ^OH!"@H*DI:E`[I02O1F7I5S |
3871 |
MT"LEM/<T5+YO)V]";5<Y#\MFEP/*IOHR8<D`^B<IU^:4T?)VNK+]A$565I:: |
3872 |
MZ*GR4X+SJ+PZR++/NB,<7JK@.FMK9V>ZW8BLMO86HJ`0_//;F6_@XGFKL8AO |
3873 |
MLY[X54^.H?]2<%MI;!C_QOZ.3=@\MER':A2N?^O'A\R1@J92-,:5TO[^N/8S |
3874 |
M99U.C;CM_N*FN"\!C3X''H#M?=Z(<WR=?4FG#L<&VF)CHX^/4J%'?;_117W& |
3875 |
M<Y-3B.1+;AQVK&=WC^K$;EE868\G=/P_L91P!GT="=8\+M?F_/9-QJ4EB\_` |
3876 |
MH:>754.W>$V+2#E+./7Z^B5&:Y=I>A8H-#8EQ:+!L7SC[/B=K8.+F4`6'^U' |
3877 |
M%M:?47$PL8][N%\(#J1XJ#!&!/B(XX/#AL6<[W)4A0-C</863K%5H3>&XJ2, |
3878 |
M580;P+H&SZ,E;\]^`1_Q^0U!6E9Q!BW=INWE>JZ@#8WZ\N/Q4$!JJT$/>U\< |
3879 |
MM\G^VM*Y@=]>WL&%]EV?IJEJ?T97J=3Z:L%ER]R;:1A5EK#CR;&@ZQK+3'!S |
3880 |
M5H[_7QI15X8%I']T:>6U)WM0/!V4&NV]Z"LBQ<&'[=/>>+0P/U^EO[[SVUG4 |
3881 |
M_U)[W8O3PLJ*>0BLJ!1KZVA;6%$!QA-QW!^A?[$HI>WU\B">DA#\.3S\E6&% |
3882 |
MGYW=WVZQ8KB=RJ_EY:#A]!I=KC@Z$6)-"H6T'1OGHHIV!E4YL?@IB)V]?4FE |
3883 |
M^Y-^$9RWL%)+*MR+#E49&6R&A+Y+W]#<X/G91$PL6<XY"./CX\LK*;T[_SO- |
3884 |
MV7YWL:`:4A[:](LMSG3T[%?BYI>(]NGI:0B%1%13D/0QN1TAHV0VUK=ONNL. |
3885 |
M96@W$>C4\\<*9#NR;/R??,7O]MS-KJ(AT$_!_C%A_.\&70^A$3-C&O+7TUE# |
3886 |
M(=#8LA:=HPZ4.7D+_(+?=<V"1>%K00&1;**-HWV7G0+KLE77KI:H6T^$Q(N' |
3887 |
MR2^(HYB39[1)SL_/'99;4[?2M$/^?B+^>_ZL/?=R;T[&U94?EY@>82&`=;0: |
3888 |
MQ0A\9BS;NZL58-)47IX:%^>11%X.B%<3`>3!X3'\[WZZ_"TI,N>S"3+EH\9$ |
3889 |
MAR3!I\S,P<%4SA(XG(F;NUQI.\F2YC?C`=O=B5C`15,M-T>`Q>KYL\)OWYX4 |
3890 |
M69D/[_L_#W(^1_3=S-79"G9'$EG?I;>42+K@Q`Y(&43A(K8+,=[E8($FKK08 |
3891 |
M"N6@=+12;7]9K[CF1-Z0$^A4%D\BK;`S_;&A0D+GM3)1=I%9RD\EKS9,-K:V |
3892 |
MR!ESI;Q4\DF)\*9+\WPHYA<6;.P=U_H3_2X.[N(KV^=_'BQ!QR<G%8WNS$)D |
3893 |
MS.BG%CAVL?L'!S$4S(`X3EZH%65#0\/XY&*AT?&$E'AABJ\X0QJ7WMH0Y9UU |
3894 |
MX^]=676(B2B_]X$A);<^I#ILNB+@TWPJB1WQ0PK<<PT#@]+`SO"-`J7$"1E] |
3895 |
M?=KN*"+0RE1G8-WP:E@E5O%<?>JC7>.#Y[D_8DWT]>>C:WL*+<1Q53OOHE,- |
3896 |
MC"5Z8NT[@"[`M.6NRM)2@XZ@NZW5`KD63/G(;]X!1$1@V]H4?RNOC]A*\VI5 |
3897 |
MQ"TOCU(7=[HX6!C)OW[9"H_A4NBOB?M-\)'($6#/Y#8>>'.1F)S<C?E.!,(O |
3898 |
M5J_/0V*^^L#.OP(?/=IG=R(ID$M@$N-DGGT:DODY=69Q?G[R=D7FL@\[A?B/ |
3899 |
M=X!LOQ;OY.3D(F:J`<LFOC%)_=RH'/)'UY).?Y9_]/5<9-K!="F3BYJ)^)?L |
3900 |
M@:I>3M0MM!)A,U6S,F+0<'2Q$"RGWHJI)'?4PU0ZD@,1Z49*Q=.L9`$ZY02R |
3901 |
MQU_]*+Z/B4;%2ZS;W(C&VYO8;5SI".\XHR5U81(QJ.#;TUAGPQ9O$^;-S>YC |
3902 |
M=K";FWXUS;JMLS/3J%UA=77.]Y]A@$+1-5?ONFKG8**8M<VC5<J&0]272R0: |
3903 |
ML+(T3@QG#ZH=[,^7B?H7B;C<O(P$\)BO[#YMQHL'Q(M.)#5<^3[B3YSW9GC; |
3904 |
M8Z!8WW)%0_P/6]CN=XK2(CS*#EY:OR)^ABH1S*1I\`&5ZG0,5IWRKMQQA!67 |
3905 |
MEUO.5N6G7!P>&H`"FFJ>U/CIA:,8$J*FZ@CG2X=LT5.#YZ6TOO?3"<WWF2:G |
3906 |
M-T5?L$7IRX`/96^Y`2,C/&D\=]B6V-?\JW&"?PPRQA*9>08'KW_-S\#\[<G] |
3907 |
M+QAZ[/AK]X<4:6DE]N;K8\<D%P;S8+TOM2W3\>&_VX%]<KM0:=G>4I^(9#O7 |
3908 |
M&)US`;^-_JH-'2VMG"HF2S>F"N:/?9(=-A-,F."<=*2+?L]C<L]EJ6/<*W&Y |
3909 |
M^,;1\=&89&T<'D%0=]OEXDC:2.ZJ6_/1LV458EXZ)H_Q!T?V=G89DG<.\YQ] |
3910 |
MDR=:M(T5RT.#.HU5:W.6`29W]<2>['RPOT2WKNN1ZKH9"4.>'WZ;F'Q<X)Z8 |
3911 |
MF.A<;O/GX.#(KZFI^;4K**"AH*1D-5NED91,?EZ4X*%G]=)E(4`?:KQ]TU8S |
3912 |
M-[*1<)F<F2D=G$_*D(`K>XPREYNFJS'^<CW.G#!EQ&<_PS_HUKH>NX^T0>8E |
3913 |
MQI'O9\=2<INO=D48.0^.?>[>&$@N+BEY(B24>E;W_.F;S/X*HQ9V'IZGK*R] |
3914 |
MEQ*6)D#K#RBQR&[>9\^^%IIP.)HDY'O61LC:>]>:3V^7Z1YS<1"+C<AIW%Y. |
3915 |
MIB[_3(BM-7^>^5GT6#.>WO9[<7&&48N7NMX5MTPD8>?F?/?%?@O[L\&"_/SH |
3916 |
MS$P_`<&W)17+2HJ*;K-M/MRAZN)F`PLUFX)V=H:2?9H0B60=&B$[EA@1=K;S |
3917 |
M!.@MW^GVR/K1:K>$V_C@H+//3H1EA:G2:1*K$L#/XO(0R7AQ*A$3E2`YGQ<U |
3918 |
M,_7#,&"?*GI_]KA^I9<Y[6)4*>!!$%,7IJPE!7VK<WCTYO0IP>^*%SU#]HUN |
3919 |
MIR,B;J;H('`:4=[!RJ69]^^O'QD9&:.XZ.3EY:74+30T)J]6HY;88Q0#`H`Q |
3920 |
M2?%<.NOGBADC3UN-4R^\1))8S/CZC<2*OX;SRA`RB'^XO[M9/?;YA+/J)_%6 |
3921 |
M/:5JV]!!.(LW+,Y#.?,YQ^POFE7S/ING"C%?^;R&_ZBD$CJ"U#]9AE4J;S\\ |
3922 |
M;E+GVG]J\/Z`?*E+!T+BU!AY%;BYPW6U"_7QW==.XS6)E'CQ>6^/*RDYF8_F |
3923 |
M(Q3<OI=[YMN&W]S\XKF0UKK++`<GY[OMT9R>WKDJ7>5V$5965E,!FH&AH<+F |
3924 |
MYHBXN*F*1U.E[&9#I+F!]R_JZWD<%:B46G2T8%HT+TXV7!9O%WYQ:K<*>J[U |
3925 |
M?,BQ_#M5DB],*.T4<4!MO9N8_#J)Q7&V"K8X6\!0!'^6Q'*E32Z1EGY.?2:: |
3926 |
M5&CZ+S=/1W-'7E@7OO4Z8`8L,J64M[7ES,QH#PX)MBP6?P"VHV&/X@^XZF/" |
3927 |
MV,!)26465M\3<W-E'?=A&AI)[!P#1145#'K$@XUZX22#U4JM?8\:"/DW"F$I |
3928 |
M*2DV\3N7:FW&D(2BM_E0T]8;5#>)H.TM:MTKTY0.G/]ZWK+Q!O]\0DTMH6^D |
3929 |
M6)U9K"0!I[A87KZXN#VZ=-73>*W-B/L8=J2NI;]0%W[U,?B'C]6<!B$8VZLE |
3930 |
MIZQ,><]+S"H9;WKWCO^(M:XVM\%4W*O7^H,9%1V@/(>^KJ"@FVIQU_+#@G-+ |
3931 |
MJAG)W8Q.).KVE->EV4Y6?!,$996XVGCH49W\/0*<%*ZC6J8I.C4N[Q\EMN'_ |
3932 |
MWI&:GBY+V[Q>/_'GV):\)>LDC;LMO.(B$;)34%'!<W9%TSGV\R-CF(L\R]%U |
3933 |
MMF:+P78.\BJO:4U"<?";SI+'(HI!-O];<T1O+&->?GZHA/^%>6WOQ/($3,F] |
3934 |
MMA)GE@*MWI4^'H_\AOMVO*)!6R;.<.7Q^/(`+"LS4PT2@;[J6TAY\V5P<#OM |
3935 |
MK9H:@L9:Q;1KHU;W:M'MY/24@X=G<DTU\;'M#&=#;]>7@.2*IA.!QK]:1`^- |
3936 |
M&R!VW8]="!^]3"$7CT_$S\E59U8%*S";+&`=7Z=Y&_%O<=]SDD=1J"&+.9*% |
3937 |
M.D=1G)3K\/F?%Y?O<__@1QP>^]C8V9DCV^^:EIS(R,D5E.4?\XS&#%B0D;?9 |
3938 |
MWQ>$.^.0A0:$4#KR/HKM]5L,%Q&Y(?YK$4.FG</OPE'/-L?.P6-^^OWCU/0T |
3939 |
M)GZK%_8=YNH2C;3F/TM.E^X_WJF5T=+2K`[P;5LU&M-ZZ_PRWEY;QI$:)TXY |
3940 |
MCUJ>P+._@&Y4CTKWS\S5A-/4Q.'AN5]B+_RQ$IE6JLE;38&0+7_C=]<99'%, |
3941 |
M8D3;V:M'6EJ]Y@V?/G\.#??*TR7Q/(M^B(>QIL@'HA0+1_]KM:)PKDDSX2P; |
3942 |
M^]--NID\A<F?P6T)(URVU2D/+D@.2GI*_0*59M-S&2'HIU=K#^^^ML'3WQA( |
3943 |
M[FX82M`GR7]X_ZP4:0/PRG^4D*R"V(:;@T4\>DGD<U")/43H7S%]S1LQP5$8 |
3944 |
M;4X^M$MNM_[][>Y[T:P%N\*+2H!?2^.-N&ZL;T$540SJNMY8(MPF[5O>M=;H |
3945 |
M&.?V.07_EJC(2#`QHY-4VN8[LE[,U<E5>(74J3%*Q]B7;H4A3UT<@L[RY3\J |
3946 |
M(J\37P:U@C4?_D4<1C_20*P2[."(%AOOOO7O2A":Z"Q$^[SOD/!0U[E]E86V |
3947 |
M66V,Q1EX,AA<$(($R&!MC>9$P!LF,*<S]/TWC!\PM]V$A?)->N>V^N5&!;PR |
3948 |
MD"36!4&U;2K0/%KSF._\B*"IETR/S6J6U^PL/'<LU,SHB-SQOB"ZTOK$M4MO |
3949 |
M!-&!;0U40-CF/Q-#>)E*''TD#6<&BCA<VI3Q2MY^..^5DS0//&Y[C@'5[:C< |
3950 |
M,PRF[WK-/X6E]WKMW7]P!T?DN[$)_T&W;$'A*`Q*UR2@C)?AORS_&4O.4#'N |
3951 |
MQD;IFHAC,(R5O.WES=HGSMFQ_^$*_3^2B?]*Q\C-%][$P"?'&)"*/+H(KB3^ |
3952 |
M\?R_,]#4=A\.PSWJW=A#SUL,)R(25L;[Y;\B;(A$,%)Z8!BR4#IPW\_O_W_] |
3953 |
MP]8;&DSBF/9<KT7_[T+_-O!2X)]6!-`9*C0Y#68XCFI#4I%PI=11B1)EMB62 |
3954 |
M!OXZ<PI;5#5[E96;*]:.IGY,/T+3XS5'=8CN=+];SO8+I!74%-W?(K3B=)F? |
3955 |
MWC'DTI3"=<9R>GBA6+>._DD.P;Z'R-5=736OXQ*3\X%0I!F/N[#$YAGN!Q#* |
3956 |
MB;,5!%SJ$;0J*\^TM,:HJ#X+]G5JY*$M2\I`/Z.WR4-MX7!).SX^(T,/T"=@ |
3957 |
MP!.6^_3BXHFM[>UX$OV6(\*E@7+*!F"@\E,>#2VA,0?3>#C<]]AU&%2S7N:P |
3958 |
M\<>$P14X%++W*3JT"<41<@J'&&-%&B?^I$-\N.((8+*:HH###RBI$KC<<]F% |
3959 |
ME+'P0RK'5?0O&Y)I;QN6+&`.WN600D,*QZ"@`]0VUFB91QK0%Q3H0\JN)+_" |
3960 |
MB"@!8^<"W+FLVH&C'BRGN5*AJ,MV/1IQUA0MT'6DQ@>.?Y)Y:9OXPLX1NF9L |
3961 |
MM*SSKY1=!3]A+X;.K'I7^"!?2#>DXT6GOW0.=B5M^LZY,%*VX/O>L358HD+N |
3962 |
M=G:2^#5"M>XJX660U4M5@*VO'A=P[]B5"QPY0):+I3,DD(H`ZGVG%!5ABV4+ |
3963 |
M6:6Q701!+"U/</B8--T*8V(S@**5"N^X7:[+:1RP53K$4YU#=BT^@^#P]G]6 |
3964 |
MU)H67_&&.1T`JXTVH4,JO[.=$052>C8&51HK],@3^QH3<-Q/]3JXG##_H>?Q |
3965 |
MU7IX\D4*HU:/L='QOWSYB,02=:MM)I)745I_]GC:;O.):?C<,">"L#::-Z0V |
3966 |
M*0E%YZ+H]?02.Z*Y61P(L;(Z<BB^813MEN90BN=R+\TP:\3"CA-0,2V#;8%@ |
3967 |
M"*>'M2C&(486B-N#R7$A1`G?F="(JZI??>VC,V"5_%0W);Z_A(LO-6A?R6Y' |
3968 |
M!`&2J*,`5N:V!U*]SWWB;:$!4H9H)[0-WJ(FL@6M-YPG[JT2:2-S#U9PUTTZ |
3969 |
M5)G]Z)")/=-P^)?<;(265``\YTI*48/L-W"'&)<$<#4W)PXF'!YZA_<)R185 |
3970 |
M%;HW[,&`_=K[6][;7EGEMUKGZL$$HD1@JV*X7UB&V29"-N1-6C-QOPBM+L%B |
3971 |
M88E940Z\V?PJB%Z4;O;!\.L;`_%[KUIVJ`.8!S*F"M*.!AY](DVV3X/#Z6Z= |
3972 |
MI+WW>X'.WS$ZQ^7N3J)*D2,Y/I;/_`%%7.[U<+@(*EO0>P-;2O(%F_.%^Z3I |
3973 |
M+3U5$.E])6YV1T>Z9U!R]U062@I:D"AVCJ.D-7V"\MG"QHNWH`1<+'(Y`6MD |
3974 |
MXS)3<P:D'T]_Z6E#V$9'MU(\&_YE/5NZ-B0><Z$SF-WE>K;4:JBW)?Q8-:T9 |
3975 |
MNS^]7O=;O\V&U0KD^(>'>A.1YGARR*.O'_RA:CB+N)"8C"(2EU)=Z0KP4R!C |
3976 |
MK/FA\?M;-N,UO]/PEQ37"^N>&@^]X4P7@R2=JMCCZ#1"8>!FEPKI(5V`Y@LY |
3977 |
M"9R-3X)N>'P2"`7LJVAJZ`.T-W`4B1SSEU*!/47BMYX9]W3P2:1NAS+%1ACT |
3978 |
M>&=Q2QYR:6F)4*_H_$MJ87<>4U+%K.3L8473`&G@(?[Q/+T*K&@'G[:J=8Q, |
3979 |
M=LE=4XM;A#JCQ$"J(;,)I^JIKJ]Z:Y`\-:A-D]T]+]F!U.2UCD.M[AIOC!K, |
3980 |
M&SD1I;]2)G:MMO`&U%9,`,H!BU8J;XXA^NDF=7'C6OL[HQ`?!6[EV);=7B\2 |
3981 |
M0$QYBXE7W.4?@/;)H"%HO2[?&:P7=]=5;U:0/%ZN?@1H/-/7\#"J$*R2>;<O |
3982 |
MIK6N(%.1STU8_?(*J\9YJHKX8P#FMQJZH#AEQ;5*A$5M]!OI#>EG?XB"\.%4 |
3983 |
MWF/GI;GGB?49+$AV=RHUT^=N4#6F[#KE5IY?JD\T5VCUK$Q8]`+8.8<D#:*W |
3984 |
M'O2Q%Q\4+AEMR1I2J,#.-UO0#F+V6$55!1$".86G!7U[3.`VM83C]T>_N`/T |
3985 |
MUI%7J*5;\OXA)>M2)`LUEW;^<M<8V9A.QD@9>#`IJ8FXZAN+N^"*BVC3(_;! |
3986 |
M:?/QKV>:VL"BV61=`N4T%L;[@2<44PXK]%"0T(-MKLM8V!B%[.]3K#F'/&!5 |
3987 |
M!I'A`]U]X2^00\:_1:1^&::B,"\-J<?[.%87?!=3^ZTN^/!30<X(:$S&/A;" |
3988 |
M5P_?)!99>;K>IPHC*`58/PB*IT,^/F+L"+L,E0RL<UBT%3SU[KBA^AV+`JC$ |
3989 |
M1CQ;L=*S8G/Y,="C8:KI)D""Q?J91AP[3L'SB(QOQ'2%>47`%5H)F2%3@0VU |
3990 |
M]*^=6GX6"P46:/=P)UD>X,:TJ*F%]??\\K=CC18)8[=I5D,<2]1M\4#J#,,Y |
3991 |
M5/2V9$T_<)WBK*340[\+O=J66[$@`)5_4(,Q=W80N$AZB:$)-BBWJQZY9!** |
3992 |
M/S'WI.B7$=M9-D!=!TH*\L1_E(KH1`0]G)F.&4/2]>0Z\67-X1HZ51^]:2(K |
3993 |
M>.9%:A4Y=*(L0(`U#.8!Q&D+4@&MDJ-CN]F+\0J./1-7%MF=5"[+.D\*U<81 |
3994 |
M`T*G.*+;/AU53XO?7_=:I0-LP=CI<'BFM8`+1YY!#B,;3?<!$-\%$HBY=WM% |
3995 |
M.(^7G4[(!@`@D,T:&=&%=2G7KZE0O-O5MCB2E;H%7W)1L2>A'8!U1^$T+/(R |
3996 |
M;4F0BH*RQ2,^7OY$DE`];4ZQ4#TKP>DUG!1:ITK?&*3R`RTV.B;[;:P;6LM[ |
3997 |
M`G;A07%V\_$K!((/_YBN^K>?.\E>N.C01$<097&>!";$=E@*W\?L=XC=:9-) |
3998 |
M:',>Z74F(`;(\%_*(3OQBO+,CH4,MP^=UF3RG',)O6*J=H5,RR;ZWW0=!Q,& |
3999 |
M+#G_U.<*`,15Z>N!4G2YRK!&8V/702N:L1&/$'4H'V$@56]O-2C#N?;8E@7? |
4000 |
M3]*EH/_DC.S550!N%E:1^I85=/.Y7KDA88_>&T/\V21'<0K%)SVC<<;2,5-@ |
4001 |
M`L'W;RIJ[[+WRAA$=[)Y(&<!4F3X'#=EGYN#M+?[%"[XV-2D_.:\$#3QN2XH |
4002 |
M;4&*H%4Y&)*>V^JYS9!3=&\_MU0-<Z@E%-@>Y-7Y.7/0'C'G)98`>%>N[=@R |
4003 |
MY6#%S,<E^2552M:0GA'P-KQ6I4%?"..#0;^THO3'X1*R%K[=(_HSQ@["=H.V |
4004 |
MSVNH_UC7NS6;/.)SB:2(L6Q/8%=_93Z-&`&:3?/A/AF=5'JSI*GVC@K_V9#` |
4005 |
M)3"""7Q(9^,9A*,2J3;NCOVW,!_"`VF/+^JK45$P)U+C&1(G2L%L]IAY->O6 |
4006 |
MA\Z^OH:!O5[?%Z]?1<6*GT]OME.:8R@YR0>WF'2HW2G'_*M\?@T*O^/EG,MQ |
4007 |
M?C=GDB]NTX3#AC8ZXZV.2I;7,9Z9595*TA>I5^9WM;):*SE4%C1''']NE=-N |
4008 |
M%IQ$=_9X,*P("V%!$KXK[:31?S;;^K00`A3`=<3.-N(P?!!0.]!C&<393_K6 |
4009 |
MVK+6X(WA'`@]T94>$?;]BK.XNY,<,=OSR@G[>MZAE>#,4]0'G&'96`L6?:LS |
4010 |
M"@!-HU_]@/@D%X$LJN$F,\*RR+#I=RI&+T9>IP&^49+K1.=\=>%7-*G[6=QN |
4011 |
MCEOR('F3W_2#?$C\?`'^7X/E.V)3G+5YV68FA@S>46YCKHI5\VH9CWQVLV%R |
4012 |
MI'O%8^_XQ_X-HB0TBK`B+*L"[4R."SU'UN.Y$!>6G%9UDMB/Q.CM,`Y#]MNH |
4013 |
M$(&PT.W07X3@>V`</_5S2T$Z7U'@?4$$;_2&B(04#/=2"A85>V-*V#J0Q$ZQ |
4014 |
M4XV4JDU<N`T6L5LP=65Z4H-Q`3'++!<7@.PM64"1^GL.]B1E"9<"E@G2T&D% |
4015 |
MH:L7FW-/(&>O&)NS'A;G!=WJ>NXV)J&@AX4^DV)26,T%##CXO<+;'GL@+3/S |
4016 |
M,S64*R7!;T#@\.L#4`WWTPILLO-4SG^:.,/L,\0(7%[2ZU,>NAQAZL%"@@RL |
4017 |
M*':7BW*@\,G14UY2*BBCO!"M*Y##G$;UX>!G\U]I8:*KV<+\M62.E!4'3$-B |
4018 |
M!^Y?I&&\I!VYY$S@$5+/9AKI*ZN+\5%2'QHSU`2YC'U>_<Z0Y<#&9:CTR6NT |
4019 |
M,.*%S#_+#(7@Q$;88T7U]@`?&XNJ%M[*$2!9UB9A:U<E0?Q_X.MJXW/"=(PW |
4020 |
M$3JVH2!_"NHU>5,.M:VJ:@CUGUH\\4UKW%B',Y:'R82NLSY@:C+G\X$STJX[ |
4021 |
MJ+*$6!R]:%S7YZ2>FNQ%F2R6HSB)#3GO2::E%]U'ORCN?R%,H][4+JU`]5%6 |
4022 |
MG;]?F<:ALC]CSAW$<:K*&UAYPU;KW'E\4K`BW?(`HN$Z_?H10!W:KEB-92!' |
4023 |
M93_7`YC>)]9+6#4I)G/"Z2DOX7#YZ<ZED!PQQG0=C^8#_OO9]/QX/2(YGC1A |
4024 |
M[,XXV"M`G!%[>\ZA%4^9W'-L3MN^J.U.Z56.F$EVKQ"9"_:9SU=`.>\+`M'Q |
4025 |
M-RTZBQ94'=EHS0:V6V7<^QD0=&(+.H_RLV4'E9.?_5[S_`TX_%"0ZHTSB^\J |
4026 |
MOZGG&HC;(\3PZN94YB\:JPN/DSX=Q^4G`/,HR*J\JI`V??\_4$L#!!0````( |
4027 |
M`")R9#'\[-^YP0```&D!```A`!4`8G)O=W-E<B]B;V]K;6%R:W,O861D0F]O |
4028 |
M:VUA<FLN8W-S550)``,O@(I!4GG(055X!`#H`V0`A4_+:@,Q$+OO5TQS2B%> |
4029 |
MIRWTX$+_Q;L[\0X=/[`G=-.0?T_LD$/20B\""4FCZ7>1)\R*QAC@$WJ/8<]4 |
4030 |
M1+$=D-40ESNUVC9=_T>H$1H5XTX>M>8[=@#?-,ELX.4]+1\7.B.Y66[\U/U? |
4031 |
M7$LF*HGMP8#R\:<N_!VMMK:WR(%1D;<.#>PSKU?CG*-'H[7C.%C6Y8N"KJ&B |
4032 |
M;PV"OD_!K9[AB7R*66R0.K?=:UTJHZ,8#&0<9;U-RP;>7BO63ZYX'SYU9U!+ |
4033 |
M`P04````"``B<F0QY;$!AZX```!C`0``%0`5`&)R;W=S97(O<V5A<F-H8F%R |
4034 |
M+F-S<U54"0`#+X"*05)YR$%5>`0`Z`-D`)V/00Z",!!%]YRB8:6+MLK*E&-X |
4035 |
M@@(#-%#:3,>`,=[=`B9(C!MWDY^?]]^(`!K+MM#("28JW,0>"6.CJ:A5[)R! |
4036 |
MS9-GDHBM5J'S5F,'N#3CV9B!D_.*97[*MZAP1,Y&R)SN&3#$`G!C=0,?%,5. |
4037 |
M*Z$W@7B@>__N*';#_I"6+3H+2LH"W1@`9>C,(*\+ED>N\$.3'G\+?PWR'FJ: |
4038 |
MW]R)+[]<_C!9-[G&&(K&U*O+"U!+`P04````"``B<F0Q`$Y&O%@!```W`P`` |
4039 |
M%``5`&)R;W=S97(O8V]N=&5N=',N<F1F550)``,O@(I!4GG(055X!`#H`V0` |
4040 |
MI5)=:X,P%'WOK[A+GS6U8P^5UJ<R&.QIA;U'F]:L,7&Y<6GWZV<T50<=8RP0 |
4041 |
M,'K./1]Q_;)]3-L-YTHJ]$\;4EI;IY0ZYV)W'VMSI,EJM:*+)5TN([,_1'A1 |
4042 |
MEITCA7,R@^OJ!Q2ET17_-J/2GT)*U@UJV;2'S$DV:\GKNRB"9X$6F)1@2PYX |
4043 |
M$@HAYT(=`9NZEH+O(;^TWP1Z0,4ABC)/]=9W_!U8KAN[(8U1:=!*_9#4:&U) |
4044 |
MUCGLL%*`X:@;4_`;Z$(R1%'0)%X0H)T`#0JCTPD(GM1!FXI9H=74T99C843= |
4045 |
MO?[)V50K&.Q;26M6G-B18Q:*_37D9-1`)MEP+7\+GN9&.^2&T$%_[*`_WO#9 |
4046 |
M8R:YQ[Y>N4%?Q*2K&&!GF>7M73(+CH/3Y@1:R0LX84NHV)LV\!&(">A#=_77 |
4047 |
M1$$X_D?E0\KQYQU7R.<YP?R&)/&#;Z3/V>YL]@502P,$%`````@`L9J3,;H* |
4048 |
MS*AO&```T84``!,`%0!B<F]W<V5R+V)R;W=S97(N8W-S550)``,-&\9!4GG( |
4049 |
M055X!`#H`V0`Q5UM<]NVLOX<_PI<^T/L7,NV[$2QY6FGB1,G/G7=G"0]G5Y/ |
4050 |
M)T.)D,1CBN`E*;^DD_]^=@$0`$F0!"DW)S.Q)1)\]@7`[F*)A?>?D6?XC[Q^ |
4051 |
M^^[BBEQ>G+V]^O26O+[\]>QG<6>#/"/_HDD:L&A,KCY<DN'></\=_#[<.]B_ |
4052 |
M%!^&T`C;?5Y0,F511J,L)6Q&LD60DED04N(EE*2KR;_I-",9@QN47-$LG7HQ |
4053 |
M)1]6DS"8DLM@2J.4&O20%-G&MIORYN;.*7E@*[+T'DC$,K)*J4&$WD]IG)$@ |
4054 |
M0HPI6\9AX$532NZ";,%)2I0]\H?$8)/,"R+B0>OX07"L6A$O0YQ%EL7C_?V[ |
4055 |
MN[N])?L:A*&WQY+Y/FAB7TK]B<VR.Q30#](L"2:KC/ID%?DT*<`!EV8#$,^+ |
4056 |
MR.:K3^3BTR:9>&F0[B+:[Q>?W__ZVV?R^ZN/'U]=??Z#_'I.7EW]07Z^N'JS |
4057 |
M2RB(`KCT/DYH"CI.2(!B4G^/?*+4I(=8,R982&,Z#6:@X]"+YBMO3LF<W=(D |
4058 |
M"J(Y28+Y`GK+BWP2!LL@\S+0?*KY1YQ<;T8W_PK/!9$7DC/F<]D,Y8`V_4+C |
4059 |
MBRC(`FC[AM[2D,4`+%5=1L$'U+@X8\OE*@JFDJ,SEL0LX5\0FWQ@B;@Q3:B' |
4060 |
M&IT\<,PJ,>R;,^A@+BK9/MLAPY.3XP'\.$$@ZT-[Y%48DH]".1]I2I-;4+*4 |
4061 |
MZ0S&..]'EFRG.V.\1,@_&"7O*8PU(+'@OW^*I"A[,!AW9"LOA9[_&08X?2#; |
4062 |
M-S3Y:FOU(:`),KWP(N1J>RH^_!0QEN[-$MGJ#841]!G&P1)^;_OP[4LFOOVT |
4063 |
M8-G2"\(<$MN_"C/H<M`?2/BPRZ6VSU6<&!.*<\L<QO#P$ALBE!R%>/G=U6_D |
4064 |
M'8UH`FP6)[*:Q8<X3$/HHD1.9C`:FSN[<#77/H)<`N?0H@T++$()[5+`(19, |
4065 |
MY;M%,%V0J9>*R1`G[#9(^3"10PXMEIP6W'KAX/!BF$-3;P+"!U&:4<]'-/X` |
4066 |
M0T,P@=FR1RYFW/;<!>D";9@7ANR.6R#&;R3D5C)9T":+P@=$JVJRH,8B5[M\ |
4067 |
M/J*%4X08MDWA.P<#JO4D+:2XP47<(/)Q1HG'$<H'T\`A8/KX-*09&H62ZK@" |
4068 |
M.$L)C4-ORG6[U'85&(5^0C1LPSDU'T_H_Z^"1,_0DK!*LS[C(G,N:#XVRFR` |
4069 |
M:@!P&L0!C%P^5AV4D8,I?7@1F/N(%E1C8TW.'>$CWUZ]L7E(\FQ_8^,GL,-@ |
4070 |
MD,@J";<WIXN$+2EXC7G()EZXG]X$T3[X+F@6>4N:QJA"WK+&N]S0AZ4'`S'9 |
4071 |
MGT-?W5`*%FD?U4KW@G0/A]3>_2KDB%L?0&H&-O0S8^'$2\A?&X0L@VBPH&B\ |
4072 |
MQN1P%-^?;CP9`/X`!CKU$G2*8U`UR/\_@FTORJ#)A"6@JS$9QO<D96'@@_%. |
4073 |
M*'WS:>'Y[$XU&&0L'I,#^+[_3#]TV/+07>!G"X%]J/^?`K.<,PT]F+*0)>E8 |
4074 |
MXKP'*4)NN$O?RX]RZUYZ^(V7W`A&2EP5'YVP+&/+?L^&=%:F>HF<%!XUF'X" |
4075 |
MH^7;QL;^,S+&?V3"V,T22!%P)QF.<G$9QU0F>E3<V,L;#H(,YE[>RU*M!\C6 |
4076 |
MTKM7:CZB2]%!A,2>[\.D%EUTQ`<#H!/"F1X+8=Z`=V'SS_0^*PR)ZL/\]Q!! |
4077 |
MOC4R.%Y@A#'VINAO=IM:7H.[C7[8S)(5W?P3Y"HQ;=`DSW/F@79)'S^2O0*- |
4078 |
M00#.C6LIU\A(C+9\6HCOHB<^).#VP9I<+R$,^6$3'TV!EQG,8K((_-PBAMZ$ |
4079 |
MAM@S;;0SU"/2AH`/[.7#.!\Q]P7M.DBQI-%JX"<LQC8T*8+B#.8H6W<)SNQD |
4080 |
M$$M;,,AA4P48>V!5,XID.".MJB$0E$YOY@D#"SHNV;5)PN[`6PO#]CJG-9BQ |
4081 |
M$*;$7AS--W>`NP%X"PC-:F5.!Y*WP725P@0,OE*;@,6!_0+45`*L2GC-O10, |
4082 |
M*G$'^M*=:-Y5ZT#CV)^!U^:]FG)\=&*3(`PR(`%CRJ?1.@1:<:OV!8>2:5WP |
4083 |
M>W'X[?)K^*F;L3D<:6-CN@CM1S+P.>#U$IQD1?M2L,!NCRC3,)0F::A]"?`, |
4084 |
M"PI!?C!L-!=\:N%4#Z;<B)>O.1N0$K2P$F#'))\<?"QLU[=2XVN,P&$%2A-E |
4085 |
M`&L>/]36:@__$3_QYCS<0NM`TNPAI*F\A;U;HH.M<5!R-,/8-OBRK0/^S\*T |
4086 |
M`N,NMQ:MZ)`=X*#7:L',P,`!2HRG6K22PS<`+1-'S#4]<4K]S<%#6-D/>"<, |
4087 |
M@B4LL,L&TPP$N7O9%[:20TB#61SEG%V.!69TSK,O$/9FVP?Q_2X?>_E/N+!3 |
4088 |
M'8:6D?57&^K181%[IV1H&_SV;BOYLINOYT4P()C1+)69P8X*(;807F[AW8H% |
4089 |
M7PKQ-<PA6`]DQ(,E@-;R+D98N$3$9M*!#3"45C"J,[";`9[?Q-8"A7"+L/!2 |
4090 |
MOGJ@LQDFLS#%$K&[73Y*1(L`LR=\]5P)%:YS4F:\TSYZ"NZVPNUF134EHME# |
4091 |
M#/X$;1MT0Y4#TC8NGA_K<8$=LA:]TCAH(BXH"NIZ.-@&@IB<<0(@"7297`E5 |
4092 |
M(^I2=#4T#</]@"6XIASC.A+6LUYX6G)[POYWZBRY*!/=9#I\&6K.5F&('K[$ |
4093 |
MUZY3,]2P_"A^E1WUBY>YBRKCNT#QY5W!V1[PGR],MUH"OIXNZ/2&^LHND&J3 |
4094 |
M@MVHW*]PT@Y9?:1B:V",*$E@/)&1_(^?C>%$:J32(UI2X+#E%=`X8MGV-022 |
4095 |
MF$E2_.Z(I9`(KIP:NH.J]94CMFS/52*7?Z_Y4Y657U4+AI;3#%8&NZW=T-2" |
4096 |
M0^0"MP&UMS/@E$[<4$V5B.@19GHQ+\(#6\OZ`.=`E[S*@<4`Y&O-UA6D6NP5 |
4097 |
MG\>&U<=5[-KO<45=S9F#4G22:^I(V(.:%1E!(+'8?*)U:RR\A64^A-C8P7AO |
4098 |
MX7K4M'0-3DM@\A\8'^7T$$$B#P85T&OQ"T>%4Z"B::"/4H0*D.6)V`C(83C@ |
4099 |
MRT,):'%V$'+<>8DOY1!2R&NNVM&$\,>.L:H24;M:;Y2`>VF($U,4=VRP5BTU |
4100 |
MJXG_X&KBJ!8]P>H^+B@)+[AJ2"%S0H)IXWEA.]IEYS"*WPI,C^'!$16L3>Z$ |
4101 |
MALPK#@]QR57VDY$Y#`73!017Z3F0XMH"U$-^CJF4H&;V`H*O@LAXP57@X:$R |
4102 |
M&0@O`7.45.(I-Q9S/[B+>)TLO@B>3`J/YS=29V^?*[G""@MTRC#//S]4< |
4103 |
M;4#KT5$"F/>4`+8,U07$T@R,?AKX5!M]V8'BGK-61LJF<<JR$PL@SCH9*0M3 |
4104 |
MB]5'(R,U@06L12,JZV!3B<X#NBKE1)DQ3ESZIQ*,LUI.E#5K0.NCF!-EU`2P |
4105 |
M13$0'T1901O\BG,\,%1&C5,3O)L0KEH02)KO*E(?IS]49DV`6C00T3N2>9." |
4106 |
M#N#:`*ZY1T4Z-AHJ2U<$<=;#<QU)U&'U"G^T^ZW+^Z`F[H((WZ^5E2$N.^MC |
4107 |
MI$PIIZME*.`XJV2D;&D37!^MC)0Q%<@6K4Q7Q?D!WYWU<*P#PI$R>!K`60'' |
4108 |
M.M:SX?21_%@'>J,:H\EW;Q5$APNNLA\-E8WDM"3/&L%5>`&DF:X`]9!>8`KI |
4109 |
M%28WA[@]H&@.\8JST$?*''(2TH@9$,Y2'RES6(/41^PC90XU*(J-FYH*4N,% |
4110 |
M9Z%'ROIQ`H)5`\%9YI$R?7:@/B*/E-W3F,8BF3N(]D5ROKSG>87@*RSQTZ5G |
4111 |
MS3&VYS[[9#H'G)R1[[2NNNNY[+3(YSKA/]0BWPVYZSI6$SHZ-*@Y$NLT&(X. |
4112 |
M<U(JJ6"Q>*]\7VYHNE<;:@TU\]<2,%B@5[,'@JD>LLU9VR6;$>/YG<T=[(E: |
4113 |
M"40:D2>),/G\YTZQ9^P)HR?-^QW4*\W\;2]/,I1>=!Z)Q$,'QEQ2V95QOH`/ |
4114 |
M7_$=5>B686GHZHZY%]W!,FJJR[TXD^PUFCD;BI>VX;Q6OD:3DFL'MWQ-`SM= |
4115 |
M,CF*IGA[U")HMQR/GJ=*Q@X$>A@&G?JJ>Q56S?XT,-,M+S1Z;IJF-D&[9HPX |
4116 |
M,">A).U$HH<V=;C^W(RMRKFD!@ZZ9)F.E<M2H;$;LJORCI5Y403:LD\-#'3. |
4117 |
M2YTH)WGLX"![Y*LX]HDR7GVH]!@D.HEYW#V+U=3!'?-;0^4W3AP,=N?$E_!( |
4118 |
M0V6JNQ/I$^?H)=-)C5=H2H@UQ5^=4V6'RD\,APYVO$<238`?*G?1BTX?+1_J |
4119 |
M=.:PQFU4TFL-+'5*O(DTL!:]3=Z.*3D!_%RYC<XT^NC33)G7I"LMR;H&ACJF |
4120 |
M\88CO?IY[N!+.B?X9'BJP]7N5'JM>G2\5I<?MZ?^6KCJEA0<OE2.C'/D(G?7 |
4121 |
M=*%`?ZE\63]"?73\4F>O1VZ)Q`:..J0818Y?R]TF;*?DHX`]T4N:;A3ZZ-%X |
4122 |
M%_*RQG65TY)-O'1(6!X>:$]UXN!!NJ4RQ7N2`^VD.I+HH4M!K?1&Q9KD;++I |
4123 |
M7=*?AX?**7'BK0ZC6V)4`!\JI]291A\EZKT6FIPM9=K`0I=DJGA/HR5M$Z]; |
4124 |
MFE6^K5,.J"N)/@HTWF<I:D8"%K--Z32A-,H=$.YQ3EA8V*,D[;.Z54BR>F$P |
4125 |
M!YI3&F4T*90R'/`:IP-1):"J(M36?U$3<:JQZDK/RM5R><T:%@DM@RC`<A>S |
4126 |
MA[OO6_]%HNS-@]EFOJ4#EP%KXGX4(`;L-&3IFJ!G"*$A=6=&WNV`U]%$$8Q$ |
4127 |
MH__D#;&[<POP54FEW+^FBNCP?DJ]9+H8Y&WR2I%#K(<I[$S&FOLX8?</8HNX |
4128 |
M01!O#?BM@4]Q5Z5Y9>;=8OOB14,C;:4I972Q\7.5I*KP;YYXD],Z\:J<U/2# |
4129 |
MKD2S\_E?+H\XM7)VC5?XA33S,MR+&=W"#/6EL<C5Y-.9MPH;B9J%$V*[NBVR |
4130 |
MVD`RJY17>T4TW%)?!S)M;FZYE'._5)-BC#=C",FK%:V;Q5#%^BBCW$IL];5` |
4131 |
M"$&+^V)[[(#_I%@V7@I9Z97*'"6K0@]#2WW7<0]N)%TO@8N&7=CZ\N7#@M$H |
4132 |
MN#\'^WT1?<@E7U]4U7?>*F/\4!(*,8U1DF!>'V1@M"?,?QB/^5C#KX,I#4/^ |
4133 |
MAF4;OX*]?P5/G,DG\)`,<"<[YI;NK1?P;S0JDI^S/`@P1LZ<J:W:^%D5[6BW |
4134 |
M5=[9S+V3J@L=2(I&L9YI3`Z*/H[?*I41=E+P.Y8KML4`'!H_U:M!+2T7KUJ7 |
4135 |
M;K$PENJSDJSU%6\-#4OU9PTM"S[>UL[LH,*+L)+,Y:"KO>"^6;K.]?3.Y?-5 |
4136 |
M!FH+DTJ=7>[GZ@[_9M'M+-KDKE625?3:UA;IS8A-"=(MG.7Z&!FZD7N1U)BW |
4137 |
MS=KB!/F1[.7O4-F]\4U5!A2LLZ4"H!9+3ST=-AB-VUXL3T(&88SMK?+8",MD |
4138 |
MJO@OJ['ZG8?H1>LH3\+!TV"\@FOE/EH%>&9ULXYY4@JQ0I`5?*^E2+_4[#K$ |
4139 |
MLX9^V%S`P)`=VM';`!S5!M%>P%Y'-61WWY\H0-W0J#==#L@A6AF(Q:3`0=+2 |
4140 |
M*]66UWR,4?_/XB.:0$?>+Z*9X;>T.Q21=O[;X`8/UZ$N;)L-K_F7]+&8UOBI |
4141 |
M*^^J,+4Q\,^#".EWC\0>$(N$)3A52)KV&#Y<&@60"]1D50I+_PQ`)Y/*0C&8 |
4142 |
M>[!D':B[C4$3O['"FN,9FZ[`W`?S"-:[A7")ER3:SD>P5)65>J-4GE6*LEHC |
4143 |
MMFY;O:3`@R7U@]52![L6I5Q/5NE#P6NM14J&[+R@DVN4Q=Z4GWUQL/<B+]^$ |
4144 |
M>Q^IOYI2@@DB<K>@D>["(,UKP/E&(3#L\-!6?JY&?JVN>W57'564WD\P8[]< |
4145 |
M:0"Z,/58ZA5<<.W6U/)97TA4^"D7+LOZPCIUKJVRMC<FS0ISY_9OT'/;*-Z: |
4146 |
M!3A=,8.5K]'V,F^2FI=Z)E?,S)JV[ECNW2VM(@^2*N6.\O_R@#!4:CGSJ??C |
4147 |
ME6_D1\KP5,,3=8;9@;E3<&Q2J5B_)R!`Y--[:,7/]+!7Z-JNEY9/3VKZ05<C |
4148 |
MEWI#+;%$Q7"C+BMG;;31,\J:K63U*L>!>N5$!T6]>%#7=$%ODQ[#3*+LR^<; |
4149 |
M#4N)E,-A6KS_"-]XXU.2/ZA.YW*'=CM=RVHC'"E4"[%51(8"Y(F__'EQ?D@D |
4150 |
MMO7R;;L%>8HL_$@J;QM^+/+5B9]'I:,ZS;H0$LLS;5QQAQ;,:P?[VF#4+@4( |
4151 |
MCC69!Q#9^](Z"U@M9MQ$B;K.?>V6'Q1+I>[/J=5.ZZ-<X/UGU2AM:S;S3Y_M |
4152 |
MXU#9.G]Q/GK]]A0^O#P_/CGF;D*<P&@<TV:>FE6K+[B1+H`NFOX=<0`P$4>U |
4153 |
M#1YRFV[GQ9S"#6SI3&1^L))ADRR66!J^?OV%+0)88@T:WD\XKVB_]>S\OY>) |
4154 |
M#B/I$?BH+K/-3`EZ)W,=A`ES\^A1:Q\7(^7".:+FV\TG+NFYRIM.MP/ERO!- |
4155 |
M*=AO1;'L-O2)3(')3?M'^8$))>\MWB3RJ@*\$Z%A-`N8]-7.O86/.B7$;84R |
4156 |
MFK#[?K"X5/]B@/P=12X</$[H;<!6:55IZL[?J+A*L<:W,G57[5GJ+4I(/538 |
4157 |
M7E2Q4-/$U)^^^C?JSE)X85!>H[K"0'G\$@J#0QEQ$X-<Z2RJ]K(^_D-5-538 |
4158 |
M+^$Y*$77+*CM_N9@D@EKM%$;8*/J\V_YHFTHEU!B#[1XI=JZK<`@M?%7#9@X |
4159 |
M)DP&`N\2[P'/F+)S>BT^_[`9L6R&,<?FGQN=!V;^K.&T!*%90$-_H_F-9N&% |
4160 |
M1.F%=Q&HCE=+P'1^/AKA:U@=#IWS?P+2\##7L]!+%VI08<2M"1:<>UFB*M4' |
4161 |
MBL?%M^A9G!?<2\WXJ%W%FE&[LC%8X0U/R[Y3GPCUC/P":[+\I,7I34J>@<'" |
4162 |
M=5K,XE4,&L#/NV3#_*H+_/!T>\P/6%>F\AW/OFR5[O,3<.^7X99Q[&MUF5HF |
4163 |
M+D[*+5]Y%![XX<PU?(`M/\?S[+E^I$[D29O+I1>!"9DN_2\1O;O*DU>8W\I; |
4164 |
M;7'"]]D`3\8+@^C&;ARZUO=VWDC-%RR=EW8HQ3Z(QA<L^7K!10$V]U";X[+O |
4165 |
MCSXE(D_W_=C^[$T:NRZ`63;Y+OUG*S-PY/\QMO_;R;T64HU_!77@C!"=VJ]S |
4166 |
M4*6R=]I(73+QAVC6(0=M*M3XQ/_"%PS]@?GC3=#BG?=C$ZAJZI-W2W'SE'4` |
4167 |
MIW`3W\35W.+LU-QK-EEMW"/"%R]UX9]&_B70LO,/-^OXAUNU_,.][V5RK;NR |
4168 |
ME;@L4@)_P!*HW[(@3/?2!;O#/OM$LU6\O7.ZS@CGE55?X@3_A%(64(O*[3SP |
4169 |
MY_#/,`3T;IM%;_%MP`?CVBZ!B_=!9EY['$XY5,/(0.O&VS81>T2;:RN7:^3J |
4170 |
M,0K8ZGI(3HL+'HBL.31$-%-CI-"0_Q.^7\A0JA\)"B-$$0"?_=8/LI:`"2)G |
4171 |
MMI9)A^=;1H\@80U%^M,<Y'`MQ!.ZGGSXO!.)1Y0/`5WEFZX:)V:K7UM51Z2% |
4172 |
MP",*AU5GKK*Q^,'JB/`&Q6J7FGOH;6INU3NIN.G1_#9_O+\C1@@GH1]3X5B; |
4173 |
MYJAQ7H.UEE=!`#<BCRBB*!USE%'\>;5UR`&"(XU'E!$@727$E(03J8;=^Q8? |
4174 |
M!;'"C"8TFM)TG;"#SAK8_Q<$(^/S51A^XI5FZRALZ=V+0BW#(2)\BT/$Z?Y_ |
4175 |
MC"W?1J&7S-?JLJ\`\R5H6F"9!,66K;7IL54A!'C'"O+RM,W6G'W@Z1LS>=./ |
4176 |
M)%[6&D:"ZJ]A->@Y7VV\\OV\^:O4:NGSTQ]JS')^.U[+*GN^_R5':@S8,X8K |
4177 |
M8;&6?/WP^2&FVT_5^11C>;S,TUWRM#+#5-XK;ZT__2(>PS]H^'2]")-"N%<5 |
4178 |
MQ#A!@R<+*W_;2O0;QNI-?<;OCX616(=)48'4,"<$H3?YP37?9]EA.;NGCK.W |
4179 |
M]]"3_`]RKM57]W3:JH3/?/_Q.F3X#N:6,?T/[]8#<QO$V1D\QT*ZYD(GY5A- |
4180 |
MPGDI3)>+"/\L<R:R)?VI\?=(DU4X:?,J2`BWHEOM#"Z"<=]`?R,2R%WNN>%] |
4181 |
M3\.X.IT,Q6/N#1MM/YT%X!39_6`!W]8T`0C1V-U-5/]7_(T\&GL)YC%W:P%^ |
4182 |
MN\`<T?:<9O+3TQC88AE]NK-+^)^2W"4S+TSI+L&P!\$?%:S,*>@+\^JEK5:% |
4183 |
M=/.6-P'/>(5_':N_GYB8SI4[.V]ZLW\N3TL$GSI8Q6G!U8*P_#?FF/@.+^GZ |
4184 |
M\$$<'-M<0"Z3?K?2^K2D6`-`^@_BJCN76>U`O#FO=^4H4*&7;^C##YMSAM=_ |
4185 |
MGO3:,URUXNXUT)8='VV\5V+U>F'6WNS1S(_L7AL'\M9_0Z.6K2`.(CAHU9"I |
4186 |
M^_NJT@Z0ED3>1WY@8N[?'N.$W\XG1KIQ]SB'.3;D^3,6?R<=6+;!M/&U_JZ6 |
4187 |
M9BKO0;+O/X$LYU]65F*:5XQ(WHOS!3^)_<(X=ZH/L`FP=TM3^Q/?W>Q:3FET |
4188 |
MD^T13D]$8O\!4$L#!!0````(`")R9#%F#U]PV`$``'($```3`!4`8G)O=W-E |
4189 |
M<B]B<F]W<V5R+GAM;%54"0`#+X"*05)YR$%5>`0`Z`-D`)54S7*;,!"^^RE4 |
4190 |
MY2I0,SF9`6<FS]&+0%NLL?Y&$@9W_/!=0'9,4Q^BDT#Z?O;;A?I],IJ<(43E |
4191 |
M;$-?RY_T_;#;U:VR4MD^$B4;VFO7"OV17]$=N2\$V]C08TJ^XGP<Q]*X/TIK |
4192 |
M4;K0\ZG57RY7QV3T!C&^+9=?]_L]G^;3KYAIT$]%3G`Q(B8(O!<)3@`>M^D( |
4193 |
M`4H52V?UI43X?SC;YYRS<4R!D/I'49"JJC@9E>PA1?)K?OS^(D6Q$N9@EUR3 |
4194 |
M<[H5H3!@AZ(=4G*6$JFBU^+24'1=S2>/U@E,":S$R+MC<`;0^]H<WCF+)XG? |
4195 |
M&L<S^4I;8LTOCS*'A;3.J$.6J+NCTC*`)<IV>I"`0JZ-$,X0KPD,&DMPG7F\ |
4196 |
M\X._SAI)><KO!+/IF$1W(IT6$>&MFPIEL1TJD8VEI>J\71"4_-8PX0S2P[WB |
4197 |
MA6\#^Q9O+O8Q0$*$=79._Q:XT-J-<,88D#:%`?ZYC\-0926\@.T1K0;)E!$] |
4198 |
M,"U:T*P+SC/1=1`CCB/KG#'"2K;EV:Y5W>&7Q]:M=*-E0JO>,JD"\Y@(<T&A |
4199 |
MK<]X<R`2Y8P()P@D73PT=#-`6[_.PTRXFJ9/'>54GR;Y*?G0;'[O=AXG_C!/ |
4200 |
M]6T4Y]_)?2P/N[]02P,$"@``````&W)D,0````````````````T`%0!C;VUM |
4201 |
M=6YI8V%T;W(O550)``,F@(I!"67-055X!`#H`V0`4$L#!`H``````!MR9#$` |
4202 |
M```````````````4`!4`8V]M;75N:6-A=&]R+V-O;VMI92]55`D``R:`BD$) |
4203 |
M9<U!57@$`.@#9`!02P,$%`````@`&W)D,8[K\<[;`@``_P,``"8`%0!C;VUM |
4204 |
M=6YI8V%T;W(O8V]O:VEE+W1A<VMB87(M8V]O:VEE+F=I9E54"0`#)H"*05)Y |
4205 |
MR$%5>`0`Z`-D`'/W=+.P3!1EX&'XSL`@(BI^_\FKQ\_?7+OSF)V#DX.32]O` |
4206 |
MU"<X2E-'_]RU>Z<NW3IY\>;'SU\3LXJ6;]JS[>!IW\CDLO:I+=.6UO3.;I^Y |
4207 |
MHJBQKVW:XDF+-J065"[:L&?UCL,KM^[?M._$YGW'+]Y\</;JG9,7;YR[>GO% |
4208 |
MNLTW[C^]=O?QU3N/=$RLTLJ:'+T".V:MJ&J?F)A=/&OEUH;>Z0O7[TK++YN^ |
4209 |
M9-V&O<<W[#FZ_^3%(V>OG+ER*Z.JO:Q]LK&5O;M?\/Z3%VX^>*JHIKERRZ[S |
4210 |
M5\XL6SG_U:O;;H[B7JXRWFZR"3$6^=F>O5V%7S\<^_[YXO?/EWY\O?'CZ\V? |
4211 |
MW^[^^O'TS^^//FYR_EY*@3XJX4':H0%:D2%ZL1%&R7&6*?'6F2F.^5D>I07^ |
4212 |
M984!'YXO_?ABY<>7:SZ]VM!<G_#I]>9/K[=\?K.]LS7]R]O=_=WY7]\?FCJQ |
4213 |
M[.O[P]\^GOKV\?3W3V=_?+GZX\NUGT"[OM[Z^>W>SV_W?WU_>.;4[M\_7X;Z |
4214 |
M:\1'FM24A]=61,R>7KMH7NN*)3WK5DWY#732K[?OW[]_]>K5X\>/[]^_OW__ |
4215 |
M_EV[=M77UQ<6%H:%A?G[^]O;VVMI:<G+R_/S\_/Q\3$P,!R_<)-A%%`/*/YD |
4216 |
M861@F,"@`^*`\@0#QQT&1<Z6D$?,'0*F&5,67&X_+V>;<68"H['`I09VR2@3 |
4217 |
MBX:#3-SRB3M*/GYR]9DGS52>4<'X8*+W=`NU$Q'!13XS=34\+1P.:$P\[=HN |
4218 |
M8*I5L(A=4-'IDLC.B0EN?6X-'#MM5#0$%)Q9<DY8%KOP3I-F%#L2H=C$N-B] |
4219 |
MCT]4:LD)%Q9EC\D1CI83#K.*LE4L:&!<>(A-(6?"CL;@UG<.K'H:'AX+'[O/ |
4220 |
MT?2X;S!3^>@'!WXFEIZ&%G;/V:J3_U[I3-KYR$'72\U\Y>?C)R=?6J:8>K#H |
4221 |
M*9^H=4`;2V/NKL.]]P\TLK,P6`,`4$L#!!0````(`!MR9#'(@R<VD@8``,P& |
4222 |
M```E`!4`8V]M;75N:6-A=&]R+V-O;VMI92]S=&%T=7,M8V]O:VEE+F=I9E54 |
4223 |
M"0`#)H"*05)YR$%5>`0`Z`-D`#63>U#35Q;'3QZ\`V)(H+9LED=X:5H>1B,8 |
4224 |
MF8`1A(9LP!!+H$68U-U2BHBA6`T8[&]!,(-`4Q3*`&*P%%)0)Z*+*?((4C!5 |
4225 |
MK)&RF&7`"6A95FF:@H3`;Q.U=^X]<^[GGOL]W_O'C4^(VQ69]1EL@14`/!:/ |
4226 |
MG+9.1#.H46`1=BS)-*]`3FLX7([^B4%Y69:;PZ'ZL4U&G6+,)+^L]*9XBW+$ |
4227 |
MBB9$][,V0T`S&4V*:VK3<[7H<V1Q08]@\;(RD;A,SN=2^0*^Y',^P8V@&M0J |
4228 |
M>S6TG4S+LD$W96CL4-&VTB0E$OVT7EXK-BVH."D9^OE%<8$8J5-H?];G'F9; |
4229 |
MS(OJ7K7)J!5E:Y`J.3U"A'<FX+$63B*5G<A7=#2*"SB69;WH(Z;IN69Q85%6 |
4230 |
M*>9S:4B)2#VF4_5IF=%,W;1!T:6F1="1!J5EPR(^+=..J=E^""?.V[2@;&RP |
4231 |
M&*ROZY!;EG7:>Q9YJXH:2!/EB;43V@PA7=FCSCV!R"IS)65RCE`D.9%!\B2I |
4232 |
M^C3T**;%;%!VJ6COT1KK)*;G*L/\HJA`HIW06\PF=9]:=%@KJ6HD.!/87+ZX |
4233 |
M@&\R:A:?+_)3:)I[.OVT0=:@1'5S:%$1_*,8OL'#!$`1`-H"*!503T`!MK?` |
4234 |
M;BH\\+3RG#\`V#ZO<QX`#MX,^PB'Y5DPN$#1<=@D,%)<7><<"%89(`#FSQII |
4235 |
M(_#[`$-\M?D1(!C(<[9>6@`U`/%-52Y`.H#M@"F-6^4#D6RC2X">P:"K@!99 |
4236 |
M$WR<=PB8YL!J&56WHWU+*)%HM<D0074HF.9M?`8T;\'M.2#:/!1W`;Z4#.^_ |
4237 |
MTE<`W'[=3=IRC$\M('MR;;A_$G/[-A!M7'0!0MUA_I4^T&NA;1"X-I['O)G1 |
4238 |
MA@+7VNH4'CB`&7SC6MT.?4NO[_I:%P8J;0$PTG986X*_V?@S./(#N!.M[\(5 |
4239 |
M\03=4:[8!P[Q5GG!.,?U[J`#VU9#^(D#G8/02P0]^*[B7[FEV8+M3S@XHA#$ |
4240 |
MR8^XXA-3BMWD1S_#RXHIP_M'2!ROMFHJ74(3^<=KGL227/8&2FZ&7THXYW>@ |
4241 |
M(V.4V)983@EHO5!Q>I2%H2<[3E9\]93;L*MPP?+)P]'[+3&E\XWU\D_NM29= |
4242 |
M6B8)Z8'#51XL9U7]#E&\,M"I@-SRX-.AFJ`;SM23.W,'=N8];+(+6;[\?F>` |
4243 |
M5^R>+ZYT[R\GKF#[TA_1XL\)@_(?"8U+8V?.!O4@3ML+'M=PL2-?I_-8`S^< |
4244 |
MNU^WS]&<Z[PS3-5_\\"@$]F..-Z^]"2`(`RJ&9B87%<P\E07NE,XS)[?AAB, |
4245 |
MO`M[OEG+<O+W[&,?JIG[I].[VPCLBFO9P^6AOO7N*$?24_:.@X->V_X;F_GT |
4246 |
MKMVO6WMN7;/WV,:8]CF?+O2A;$X[@^F7XFHQY8[T_/-W[([1!WC'MOQOWA[> |
4247 |
MULVP3@[44+UC-=]_[!US9'_6/C>!_MO&S,+"0G=*0C`&@\4US6!=CFI*,5[I |
4248 |
M+(S=7\*EWYYG57P<:/#(T['<<5Z]*[\4I'XA.)^\+2`HVRV%7Y^16)<$0T"3 |
4249 |
M\D8`UUL=:T]N.>3OQ(*8O02W:`/EPUO#HQ2O6Y')0]+4XKG-'DV8A"FAV6YK |
4250 |
M<,D!0<BPJP"J]:T,==HX*4RVN70+F04L[_>TTI'-_OD^2!7=,C[_=XK0D07M |
4251 |
M]NY!X'_T>L;Q[<-H?$>RX`/?UHOE\U&M%QF&RDY26A5]B)P97#KL%BA]@/?: |
4252 |
M,C[.PD7G8IIB3^XI;<)-'N[$=#H.[&C(E-3^DB60U9W-N"CP.YAWJ231?B\Q |
4253 |
M5%T]`LR784A5ZDM>G$-T(%_OL6\7J[\?=]!1>GCI7Q4/)?C(T?SFP83([):# |
4254 |
ME89G!;GXBW=('I)Q%GFUEE=&B.*L!<DG*-4Y'8\W=KUUW65[S>1-(X81TWW$ |
4255 |
MP+I:%G(MH#YSS\N9+W^,('T_U![2.H-<QWIPI`/^`U]?R;XZ1FN6M$7:2TMD |
4256 |
M7?BI0[[#2T.;TGEAB!N/--XM#+YT(Z*CJ)<V)8A*=CUZ,.>[20'[K/`[$>^H |
4257 |
M))Q^QRO)/>_X[#OD$0I.QHANJ5%,*3_0AM\U4S5AUT7AQ?6?=J5,-'A=#ML_ |
4258 |
MR[TWVWQB;7WV2XK]#?-_?V]SNZ4CI27M^/5J59'Q/TTGDS)?-*UXF5-[O/ZZ |
4259 |
MK9Q##2TT:ADO++^/AVY:-^EVAQ;_<3^(\^^T8G/;[,IT^:G'+V>^"BU9?=9\ |
4260 |
M*GJZ_\:+C;6ED>9'?)-+*KJ^_/0<NF%>N8^B&RXSZU@L[/X_4$L#!`H````` |
4261 |
M`!MR9#'C3>)M*0```"D````=`!4`8V]M;75N:6-A=&]R+V-O;6UU;FEC871O |
4262 |
M<BYC<W-55`D``R:`BD%2><A!57@$`.@#9`!`:6UP;W)T('5R;"@B8VAR;VUE |
4263 |
M.B\O9VQO8F%L+W-K:6XO(BD[#0H-"E!+`P04````"``;<F0Q2C=#KFP!``!= |
4264 |
M`P``&0`5`&-O;6UU;FEC871O<B]C;VYT96YT<RYR9&955`D``R:`BD%2><A! |
4265 |
M57@$`.@#9`"E4UUKPC`4?1?\#W?QN8TZ]F#1^B*#P9XF^!YCM)GYZ))TU?WZ |
4266 |
MI4VK$1QCK!!(FW///>?<=+X\20&?S%BNU0)-TC%:YL/!<#!_6SUG?H$_5[;9 |
4267 |
M+5#A7)EA7-=U6C^FVASP9#:;X?$43Z>)V>T3>U:.G!)E1V@X@/X)#+0P6K(; |
4268 |
M$JF_N!"D9?+E.$!&J!4`,']($GCEU@$1`ES!P!ZYLK!E7!W`5F4I.-O!]NS/ |
4269 |
MN&T`DD&2Y&UM(W_-/H!L=>46J#(JZ]IE#4MFM'8H#RI;L.!@F-65H>P.G`IB |
4270 |
M+:>X"0AP:(&['K'<#@<O:J^-),ZG>B-IQ2PUO&R__R0M[M4K#-%D):%'<F`V |
4271 |
M[^/]U6=$=JE&^74Z?_.>42UEI3@E3AN$KS*B+,+[/<$!%440)[<)=S!.+@58 |
4272 |
M.^*8'RUQ4#.HM3F"5N(,-7<%2/*N37]Y80)ZW]Z$B[FN>?J?"=PZ#M2=MP:Z |
4273 |
MN?XY3VT>P:-??O\-4$L#!`H``````!QR9#$````````````````5`!4`8V]M |
4274 |
M;75N:6-A=&]R+W!R;V9I;&4O550)``,G@(I!"67-055X!`#H`V0`4$L#!!0` |
4275 |
M```(`!MR9#%VLY#-C`,``#L'```@`!4`8V]M;75N:6-A=&]R+W!R;V9I;&4O |
4276 |
M<')O9FEL92YC<W-55`D``R:`BD%2><A!57@$`.@#9`"E5-]OVS80?B_0_^%@ |
4277 |
MOZ1!)-7;@#9V%\1UD2U8XP1)MB(8]D!19YD+Q1-(*K([['_?D9(C>UOV,@.R |
4278 |
M3>J[[WY]=]DQ),<)7%&!4UC,P(L\:57AUU/X9@;*%&A\PI<NJ2+$*#T#F>3" |
4279 |
M*9G0:N70,S)PO'X%Q^&!^S6")./9T@&MP*^5@Y72",(BN";_':4'3_P"88G> |
4280 |
M25$CW#2Y5C(2?%82C4/X!:U39&"23N`H@$?]F]&;&6RI@4ILP9"'AL'/7B(% |
4281 |
M;B36GN/G2*I:*V$D0JO\.CKM:5)XZ$DH]X*Q@M$UGU:18P\)PL/:^WJ:96W; |
4282 |
MIA5]55J+E&R9+6\^9\^IW]'*MR'+0CEO5=YX+*#A(MH#-HYT'\`I"@.C^5WD |
4283 |
MN+P;02BO.X$OE_<_7O]\#U_FM[?SY?T#7%_`?/D`/UTN/YT`<CI,C)O:HN-* |
4284 |
MVVBN0KI8I'"'>.!T15T0KD:I5DJ"%J9L1(E0TA-:HTP9":PJU]PX80K0JE)> |
4285 |
M>.Z!^V<6Z4'#K]E,&:%AP3()"5YU->)S535&2>'9O^30C.<J%W@"%C4*AT7D |
4286 |
MN!)6KN';R0E,3D_?'W)?&N454W_")]14<QA15?_B=*>F:#IXC@DLR-9DXR&% |
4287 |
M&[+=K;0H0@_R[2!%;F!/4&]C->!H\2;&E?#7Z0#\+P]SK2/);5?.6W1HG[@O |
4288 |
MSYDM>$2B`LBZ:;P!^(@&?B`J2L[Q0X[FW/2N4I;Q60]:K&U,53L6S@<93N;< |
4289 |
M<9]0DM98#N#PL#A?OSIG57#&T%A]-&(+JI"E7&K*A<[<HS+]_U0ZQ\,538RH |
4290 |
MT-6"YR9:O2#_1]Q6PGFT6<D!/")R>[*@2TR52\GH;;II=,_9\CZA-BVXF53" |
4291 |
M'QP>U*(H6'E3>,N(/P-H7%L*<^S@C`7HO/)8==AP2IS?:DQ4Q<*=_BT?N2>U |
4292 |
M+JN>:O>K>"TE6E@N4:E6,:@77?YJJ;U2);<3OQ\9&OWV?V.H.K)#S]DQ]._! |
4293 |
M\3C(H!WHZQ-:M_:5'BL6"G7N^]4\>8?5CB*GS;@2AF-A+?F@PS/H_G4FE3*[ |
4294 |
MC?Y^L&+'O()JS<N/Y2ZBL\#4+^YX%\USLCSXB:>:]WR]@=(2KPL8+^)GM@?) |
4295 |
MB9U6+Z*>._VNWNQ%P<0]0=B#0<:-.PRI55^%+3[VR>VKIHMJ$OF&RUT<D\$/ |
4296 |
MTZ1#?;NRL`RX,I'ANP%9H)-6U7&&T5K>61'-DT5V"N.+B[?\Z<!_`5!+`P04 |
4297 |
M````"``;<F0QF6!'.X(```"'````(``5`&-O;6UU;FEC871O<B]P<F]F:6QE |
4298 |
M+VUI9W)A=&4N9VEF550)``,F@(I!4GG(055X!`#H`V0`<_=TL[!,%&`08%CT |
4299 |
MG^$_PX?__\_,_#\S[4P:$!C/-&8``\6?+(P@6@=$@-0R,/MX[&+YU]]B*=T2 |
4300 |
MU)NX?O+!;96!&GU^C:R'+,4.9VU1MY'8P7CN79J/%=?Y5NX7$FRS7Z3OT9AN |
4301 |
MS[Q$8444JX^FRG'=+-E8O0DLRWI.)CHS,5@#`%!+`P04````"``<<F0Q*>V; |
4302 |
M\DH```!,````*@`5`&-O;6UU;FEC871O<B]P<F]F:6QE+W!R;V9I;&5I8V]N |
4303 |
M+6QA<F=E+F=I9E54"0`#)X"*05)YR$%5>`0`Z`-D`'/W=+.P3!1@$&!H8`"! |
4304 |
M____*_YD815A8&30`?%!,@Q,RCW]*]DVW+KE?/&L<GZ:V+<-JH+?`V_N"+FZ |
4305 |
M>%'<Z6VJ:L<_F(HR6`,`4$L#!!0````(`!QR9#$,TS?7K@```.0````G`!4` |
4306 |
M8V]M;75N:6-A=&]R+W!R;V9I;&4O<')O9FEL94UA;F%G97(N8W-S550)``,G |
4307 |
M@(I!4GG(055X!`#H`V0`/8W!JL(P$$7WA?Y#4`1=-%4$%^W&7YFV8Q(ZR91D |
4308 |
M0M3'^_=7G^CNPCV<<PW@,2TPHLJ1]ALKLG1M6TK1GI^."#1'T\[X\)`$8VM` |
4309 |
M<$9<UBD6(VJ7-`=ZZ'NFS:&OJ[K:3@Z(C0LW5C]UI51QD]A.G2_H5^#WGQ$8 |
4310 |
M"!O+.;E@WM@`XVPBYS`U(Q/'3A7K!/O79]$9*YTZ'8^[KV/((AQ2,_#];?`0 |
4311 |
MUVQ#>'NAG]H?4$L#!!0````(`")R9#%5B:-TI0$``%D&```,`!4`8V]N=&5N |
4312 |
M=',N<F1F550)``,O@(I!4GG(055X!`#H`V0`M51-;\(@&#[7Q/]`\&Q1EQUL |
4313 |
M=%Z,R;+-@\MVQXJ52($!;76_?K1B6S/G9C,//0#/Q\O[/G0TV<4,I$1I*O@8 |
4314 |
M]OT>G#RT6Z/%=!;8K]T"P`*XSA=CN#%&!@AE6>9G=[Y0$>H/AT/4&Z#!H*M6 |
4315 |
MZZ[><X-W7:X[L**&&R5B<L*.Q2=E#!<2EH<.D`ZTUL[\E7P`O!2)&<-$\<`1 |
4316 |
M`KVE/%!"F!SJ%4A&@2):)"HD9["4KQ)M%,4,HOQBR(E73E.B0T6EL0WXT;&F |
4317 |
MDM_K4&ZPHEHRO)_C_':/9R$X,1NAQG`N4L+.G+PMGLO&\`+CAR)&)\`P)%H_ |
4318 |
MD;WU.'&OZJZ[@[50X.50/)A11=9B5Z?QHMKS%Z(QCNRA5"2E)/,EC_(V`S!R |
4319 |
MYQ*'6XO0Q:;=_FU0E4M)A8[KV'\=7F"[$B><AM@(54RRB4C$Q-(%P?.N2X_M |
4320 |
M6TJCTOUJ^E*)3).&9+N/I=3-R!O"9-FQ>O[SU??!'A"U1U&\%-?IZ][*Z=". |
4321 |
M(<M![]4/Y][5UD3?S?,&RM6T;R!^S,)%::^)\C$H_Z]<I.BB[#$Z]K.K+U!+ |
4322 |
M`P0*``````!\<Y4Q````````````````!P`5`&=L;V)A;"]55`D``SQYR$$* |
4323 |
M9<U!57@$`.@#9`!02P,$%`````@`\&!Q,1>251HP!@``4Q<```\`%0!G;&]B |
4324 |
M86PO;65N=2YC<W-55`D``U.%FT%2><A!57@$`.@#9`"U6&UOVS80_AS_BEN& |
4325 |
M`4D0R4W:K:V+#@U2;,W6I$62KBN*(:"DL\V%(@62BN,5_>\[DI(M1[(3-ZD` |
4326 |
MQQ9Y+\^]\IC^3@]VX'R,D"II45H#:@AVS`T,N4!@&L&4R;^86K"*-A!.T)J4 |
4327 |
M%0CORT3PU/&_Y2E*@_`7:L.5A+UX#[8<[6:UL[G]`J:JA)Q-02H+)1'/E#@) |
4328 |
M>)UB88%+PI$7@C.9(DRX'7N5E908/E4R5&(9T3*B+NAMZ$0T"(%9&%M;#/K] |
4329 |
MR602Y^H_+@2+E1[U3]Z_[1.U8SA30SMQ!F;<6,V3TF(&I<Q0+\@BE$T",H]) |
4330 |
MV#PX<R*.SC8A88:;7?AX=/[FW8=S^'AP>GIP<OX)WOT&!R>?X,^CD]>[@&0* |
4331 |
MR<7K0J,A'VO'S9VEF,5PAKB@<J@"!%-@RH<\!<'DJ&0CA)&Z0BVY'#E^S4=C |
4332 |
M"AB3&0B><\LL.=^T38@K@UV8WQ$3ETS`H<J\;<?!.?2>YZ7D*;.D/"5<TI)W |
4333 |
M,]P%C0*9P<R).&8Z'</CO5W8>_[\65/PD>26D]S7>(5"%83`)U*'QCJ!'.=< |
4334 |
MJX=^J'2AM'^)X;W28375R)SKD^D\^2AN@;^8>C?`UN&VQQ31G^=SNE4*#H1P |
4335 |
M,DZ#&T_1H+ZB<%1&'5)!^*`KO66V!VX)X`^%\`8I,4GAV'^_DI6JF#)W._#V |
4336 |
M>[W^#KQT#^0HRSBEF+_\MJ<'Q`EG=BK0N+KQ;OC[PULO.*+8>-=0B')7O;$G |
4337 |
M?Y#'F_%*LAQ-P:@:2RVV-I=4U25.<V8LZOZ(X%PB4OS[+N,QYB964DSCZU)0 |
4338 |
M%_".&;C'X^^[/]QB7JTYE6YI%V8;7WH;$:F*6%$@TZXO#.:;/U`)498P:5^0 |
4339 |
MX9XN4=<1$WPD!T#)3Y#<3LZNHPG/['@`3_8Q=TNI$DH/X)A$G>,U\6_T=WH; |
4340 |
M"4LO1UI1"44-`MHD9$!U*6W0[B0(Z@J1<8&)>$[%.:#6)G$&Q*]1@$:4:P-@ |
4341 |
ME$<O>E^]=0G3\*L7`VUC^ZZ<J$K(7BI"X[IN4G*1&9CT%2QWQ=9'+JG/V#3> |
4342 |
M=F[<2)2F-C"`Q\4U&"5X5EL2-FIW[-/V'GT>A^\E$#]?.+WN%TLMO\*7FU:7 |
4343 |
MN/G/'/HR"F=2I;%RZ!LJ-^%*SNGJS?@S'+)2V`9?\'<T04<\@$2);,:R%%#O |
4344 |
M#H!FP9]!J3*@'?TVV,]T&+!$8-:A\N964]?OFDV#FDI0P\6.K&!91GU]`(^J |
4345 |
M:+COGT-$;M"O\G5W$L_,6*B8C2XW+%+XM&^72EL#95^F)EU@Z2R0]_)Z=\<P |
4346 |
M;EAP+ZX,H5!%69A&%XGK+>\GOUT!<LPA9IXS++8)E@M8R;P82U]9CZH2\\%< |
4347 |
MZ$5UOZC[BC&N95`'J^V.W4.&4AMS)V@UH_GEN961)3]6@"-.-#R-!`YO+CDJ |
4348 |
MCRYGF@[DD&C[5:*YSV(SK4+!)75Q'@(QU]:0XU61I<]:$A:JMRV'I2F*&QC] |
4349 |
MVE*03ULJ*D='.BC9>Q)<O!1[PSM>2]T$]ZLZ"U1AH+B)HO[\$G14K,_"6_LL |
4350 |
M\,=E.M8J1SHP1T(E3/3-)9<^@_O'W@5:JTE<R)$[&5<>&TUD*SO;/8!$8S=< |
4351 |
MK@^GL^O=!T<M<`THU&_F45V2X*LRP_'?OT!NZ3KTLZ-(;^E$W4S+%:VMI(O! |
4352 |
MNX'"4`@VK=M4LQ.G8TPOJ4_-42[.;_XTM-."<K,F_=:\\-"\D#7S8BF.S_[G |
4353 |
M??-UCJN&LU+G@]9LAT\6B_?KW:W_;LCN#.AA^L>*/`D7"$6W&&XIG9\^^FFA |
4354 |
ME-=QUD-CO3/$>>UIEG%UA\+S=/="Z"6L5W7=&!ZPXKS$I5E5ZWOXG%[TQ2W) |
4355 |
MO<3L[P;K;F@Z<G>-M'-"#19T[W3_(%K,NOEZ\_A\,A^62,KL&FA5$0;C<"L] |
4356 |
M'VO$UV=CYJ\/`!55HJQ5>9MP?C6`ZG9R"T,M><G5_J:]*P[*F96KCM]N5_@I |
4357 |
MHF'=#1_\^,@_'>:WCUY7:?Y_I&BQ>=]IKD=C@J;T-&H-$U_:%Y".J;WS+A)T |
4358 |
M6?*I&WW*7$+!*;N;N1"[79K@15#L?\TN10O7A6A__;DY:#4H,+7QB`_7&`'( |
4359 |
M,3F3E/EIGETD^87$2:+4)4&Z#'70C:,3AAN33"A!NGU<U')<^?GJ^Q]02P,$ |
4360 |
M"@``````CVAI,0````````````````P`%0!G;&]B86PO;65N=2]55`D``ZX& |
4361 |
MD4$)9<U!57@$`.@#9`!02P,$%`````@`'')D,:=LYC`\````8P```!H`%0!G |
4362 |
M;&]B86PO;65N=2]M96YU+7)A9&EO+F=I9E54"0`#)X"*05)YR$%5>`0`Z`-D |
4363 |
M`'/W=+.P3.1DX&38S,#P__]_!A!Y!L(@"!1_LC`R,#`SZ(`X(#,86`0*3GBN |
4364 |
MYMWQR+=\7MR"VK!,5P9K`%!+`P0*```````<<F0Q9/G1'!D"```9`@``&@`5 |
4365 |
M`&=L;V)A;"]M96YU+VUE;G4M<F%D:6\N<&YG550)``,G@(I!4GG(055X!`#H |
4366 |
M`V0`B5!.1PT*&@H````-24A$4@````T````-"`8```!RZ^1\````!F)+1T0` |
4367 |
M_P#_`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@,$0<S |
4368 |
MTJ@^=@```:9)1$%4>-J=DK^KVF`8A1]_H#'@(JB7PC<D0Q$W04PG(4-!YPZ* |
4369 |
M='(3X?X'=RJ9G3J(_T`&P4UP$21CW26%HB+WJG&T?G%0OBXJ[=)"SWP>SLLY |
4370 |
M;T1*R5VZKF>!]\`3H`%G8`=\EU(>[K[X;T!9"/&AU6I]K-?KEFF:^?U^OYM, |
4371 |
M)K-^OS_3=?V;E'(.P"VI7*U6ORR72W4X'-3Y?%;7ZU5=+A=UEVW;+T#Y?EE6 |
4372 |
M"/&\V6S4=KM5P^%0-1H-5:E45*/14*/1Z`$*(3I`-@:4NMWN9\NR"I[G,1@, |
4373 |
M*!:+6)9%(I'`=5TRF0R%0H$P#'].I],?$>"3YWE?2Z52OMUN8YHFFJ8QG\\) |
4374 |
M@@#?]ZG5:KBN2QB&;[JN/T<!S33-?#P>9[5:D<OE'L#I=.)X/+)<+@%(I5+O |
4375 |
M`"T*G(,@V"6320S#(`B"![!>KTFGTQB&`4`8AF_`.0KLQN/Q#*#9;.)Y'K[O |
4376 |
MLU@LB,5B""%H-IL`]'H][[8;62%$Y][0:#3Z9WN/G6S;?E%_T1\[22D?H!"B |
4377 |
MXSB.*Z5\54HI*>6KXSCN+:%\]T;^Y_=^`8;T(GNU/FAN`````$E%3D2N0F"" |
4378 |
M4$L#!!0````(`!QR9#$F.]]RD0```)H````C`!4`9VQO8F%L+VUE;G4O365N |
4379 |
M=2UA<G)O=RUD:7-A8FQE9"YP;F=55`D``R>`BD%2><A!57@$`.@#9`#K#/!S |
4380 |
MY^62XF)@8.#U]'`)`M(L0,S.P08D]5/?7`!Q2CQ]7=DO<4F(6'+M=)2/!0IQ |
4381 |
M%GA$%C,P<`N!,..ENW5_0!K3'7T=&1@V]G/_260%\C4]71Q#*FXE1VQ(.%C/ |
4382 |
MIG*`16D"Z\P$GAD*RF&Z!A,F3#APHN5,HH.Y``M#8J;`<K$EAV\#-3%XNOJY |
4383 |
MK'-*:`(`4$L#!!0````(`!QR9#%\L"(J/````&,````@`!4`9VQO8F%L+VUE |
4384 |
M;G4O;65N=2UR861I;RUH;W9E<BYG:6955`D``R>`BD%2><A!57@$`.@#9`!S |
4385 |
M]W2SL$SD9.!DV,S`\/__?P80>0;"(`@4?[(P,C`P,^B`."`S&%@$"DYXKF;= |
4386 |
M\<BW?)[<@MJP3%<&:P!02P,$"@``````'')D,:<UYJV%`0``A0$``"``%0!G |
4387 |
M;&]B86PO;65N=2]M96YU+7)A9&EO+6AO=F5R+G!N9U54"0`#)X"*05)YR$%5 |
4388 |
M>`0`Z`-D`(E03D<-"AH*````#4E(1%(````-````#0@&````<NOD?`````9B |
4389 |
M2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0( |
4390 |
M#!$*%BP"E'P```$2241!5'C:G=*_BI-1$`7PWPTI`LDNNR+HEOL'-JRDM=7" |
4391 |
M2K#=+8*UK^`+Y15\@&W2V`D24EC$8K$35S"@Y%@X'WP$L7#@<N$P9^:<F6EZ |
4392 |
MD62"*4XPPA9W6+76OG=YK4>8888=UOB,![C`!!];:Q_Z'69)7B=YG&3L+Y'D |
4393 |
MI@K_D91DGN1ADJ,DKY(LDBSK?[E'G`S+P\^2]1QO\!Y+/,+;)%IK[W"/Z:!, |
4394 |
MK_$5UT7X@1?U9IBC(YX,:DJ;UMH.I_B"I]5EC$.<]>R-!C76XP(^57)'.,6W |
4395 |
MPKO8#FH/EP4L\*Q\/L$O;`I70[D;8H7S3G,2Y>&L.BS*"QS@MK^G&_^(_I[V |
4396 |
M+^(*][W*G:2#_D6T_[F]WZY4C?NM?MH(`````$E%3D2N0F""4$L#!!0````( |
4397 |
M`!QR9#&G;.8P/````&,````C`!4`9VQO8F%L+VUE;G4O;65N=2UR861I;RUD |
4398 |
M:7-A8FQE9"YG:6955`D``R>`BD%2><A!57@$`.@#9`!S]W2SL$SD9.!DV,S` |
4399 |
M\/__?P80>0;"(`@4?[(P,C`P,^B`."`S&%@$"DYXKN;=\<BW?%[<@MJP3%<& |
4400 |
M:P!02P,$"@``````'')D,:6Q,GZ1`0``D0$``",`%0!G;&]B86PO;65N=2]M |
4401 |
M96YU+7)A9&EO+61I<V%B;&5D+G!N9U54"0`#)X"*05)YR$%5>`0`Z`-D`(E0 |
4402 |
M3D<-"AH*````#4E(1%(````-````#0@&````<NOD?`````9B2T=$`/\`_P#_ |
4403 |
MH+VGDP````EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0(#!$'*%C-]YH` |
4404 |
M``$>241!5'C:G9*Q:L)@%(4_?P)J]F`HW"6#3Q!H)TL*'9S=Q`?0I6_@5#([ |
4405 |
M^P8^@>`H&=LGZ.(@UFA6N690_B[YI5U4^LWG<.Z]Y]94%8?O^P'0!D*@`91` |
4406 |
M#GRI:N%TWB]#+")/_7[_M=OM/D91U-KM=OEBL5A.I].E[_L?JOH)0)44=SJ= |
4407 |
M]]5J98NBL&59VO/Y;$^GDW4D23(&8C=9(")OZ_7:;K=;>PT1&0&!`=J#P>#% |
4408 |
M&$,8AEQC.!P^5SO3R[(L/QP.]A:JN@%Z!FA$4=3R/(];-)O-!Z!A@'*_W^?U |
4409 |
M>OVFZ7@\?@.E`?+Y?+[D#B:325;U1B`B(WL'[GJ7GI(D&5\S_.E)52]&$1FE |
4410 |
M:3I3U8V[5IJFLRHA=MK:?W[O!S`I%;AQ5_HH`````$E%3D2N0F""4$L#!!0` |
4411 |
M```(`!QR9#'667E^C````)8````:`!4`9VQO8F%L+VUE;G4O365N=2UA<G)O |
4412 |
M=RYP;F=55`D``R>`BD%2><A!57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M(L |
4413 |
M0,S.P08D]5/?7`!Q2CQ]7=DO<4F(&,K+N!;N`PIQ%GA$%C,P<`N!,..ENW5_ |
4414 |
M0!K3'7T=&1@V]G/_260%\E4]71Q#*FXE)R0D_#C?P#)CP9?Z$L8="LIZN@8' |
4415 |
M.G0.G&C(4^!@8,C8P\HNL"YW/U`#@Z>KG\LZIX0F`%!+`P04````"``<<F0Q |
4416 |
M'>4D^(T```"7````(``5`&=L;V)A;"]M96YU+TUE;G4M87)R;W<M:&]V97(N |
4417 |
M<&YG550)``,G@(I!4GG(055X!`#H`V0`ZPSP<^?EDN)B8&#@]?1P"0+2+$#, |
4418 |
MSL$&)/53WUP`<4H\?5W9+W%)B%AQ<J?*J@"%.`L\(HL9&+B%0)CQTMVZ/R"- |
4419 |
MZ8Z^C@P,&_NY_R2R`OEJGBZ.(16WDG_PL_!X-'"Z*'`;'90P<'1;$Y70(,@Q |
4420 |
M8X(ESPNV)@:&'3'"_P3.,S0"=3!XNOJYK'-*:`(`4$L#!!0````(`!QR9#&/ |
4421 |
M<>84-`$``#D!```I`!4`9VQO8F%L+VUE;G4O;65N=2UR861I;RUD:7-A8FQE |
4422 |
M9"UH;W9E<BYP;F=55`D``R>`BD%2><A!57@$`.@#9`#K#/!SY^62XF)@8.#U |
4423 |
M]'`)`M$@S,$&)(M>/ZD!4FQ)WNXN#/]!<,'>Y9.!(IP%'I'%#`S<PB#,R#!K |
4424 |
MC@10D+W$T]>5_0H'CR"7SBL^WW-`H6.>+HXA%;?F3C+D.A0@X'+_GY<!HRCW |
4425 |
M96XV1?&/3&*/3/=V*$P*XHY6%&-43'[H9G<PH>#!83'C^O3R:QT*FHQ%"LQN |
4426 |
M#KQW&C;/M(V:Y]K$I-'`IM&H;<`\S8%ISIDW$N4:*F]5=55Z?S)Y1O__D>MY |
4427 |
MR>]2S"47H;O7!=4.IE?L6EOM/WW;F@:;'Q=2YRNTS91MT/DQ32_MF@'/X@?9 |
4428 |
M<XUD2C_(A#G?F&1V0)<A7:'T?.WF+:FO_OC[W9:/M;,LU4_B#=FW]$:05'S+ |
4429 |
MW^)J_>R$LNL1]J=_`GW$X.GJY[+.*:$)`%!+`P04````"``<<F0Q.R)*-SP` |
4430 |
M``!F````(P`5`&=L;V)A;"]M96YU+VUE;G4M8VAE8VLM9&ES86)L960N9VEF |
4431 |
M550)``,G@(I!4GG(055X!`#H`V0`<_=TL[!,Y&3@9-C,``)[]^[]3S10_,G" |
4432 |
MR,#`R*`#T@DR@X%%V."$9S;#MT?6C=/G;\],"HU*=G-EL`8`4$L#!!0````( |
4433 |
M`!QR9#&OLCD.G0```*P````C`!4`9VQO8F%L+VUE;G4O;65N=2UC:&5C:RUD |
4434 |
M:7-A8FQE9"YP;F=55`D``R>`BD%2><A!57@$`.@#9`#K#/!SY^62XF)@8.#U |
4435 |
M]'`)`M(\(,S!!B3#2F.>`RFV)&]W%X;_(+A@[_+)0!'.`H_(8@8&;F$09F28 |
4436 |
M-4<"*,A>XNGKRGZ%@T=`T2HS(_\@4,C2T\4QI.)6<DI"P@8@#DA2$-K@(/I> |
4437 |
M+<A6FEOHN:GBU?]`</R(@Y+$50=AW@T=R;^!?/LD$P8&IFM<SE]W+3@$-(3! |
4438 |
MT]7/99U30A,`4$L#!!0````(`!QR9#$[(DHW/````&8````:`!4`9VQO8F%L |
4439 |
M+VUE;G4O;65N=2UC:&5C:RYG:6955`D``R>`BD%2><A!57@$`.@#9`!S]W2S |
4440 |
ML$SD9.!DV,P``GOW[OU/-%#\R<+(P,#(H`/2"3*#@478X(1G-L.W1]:-T^=O |
4441 |
MSTP*C4IV<V6P!@!02P,$%`````@`'')D,8:M]`L=`0``(`$``!H`%0!G;&]B |
4442 |
M86PO;65N=2]M96YU+6-H96-K+G!N9U54"0`#)X"*05)YR$%5>`0`Z`-D`.L, |
4443 |
M\'/GY9+B8F!@X/7T<`D"TCP@S,$&),-*8YX#*;8D;W<7AO\@N&#O\LE`$<X" |
4444 |
MC\AB!@9N81!F9)@U1P(HR%[BZ>O*?H6#1T#!G.^0DBU0:*VGBV-(Q:W>B_9> |
4445 |
MS($"QS^>/[7)_()2JEY"KF[<@6O,$KM+Q#:*;O>>G+W$0]G#3SF3:9;VD_3/ |
4446 |
M3/VI!V4K#(QKGIO7QS5;G_'=LNW`[\Z:ZV$'S]M_T#FY<.Z*/UW5.V8QU(M4 |
4447 |
ME'K:/&0[>^*UH,T"STF)!Z7TC^[7+:@7])A4U6ZNLYK9YK'T[H<]I>V\==U% |
4448 |
M'T+[9Z@<7GI_XX&51^8GRX??%HR.>;SQQV+6V$F?3WCR'SXB[_1-QYA_3O9B |
4449 |
MH,,9/%W]7-8Y)30!`%!+`P04````"``<<F0QNYF-0RT````Q````&@`5`&=L |
4450 |
M;V)A;"]M96YU+VUE;G4M87)R;W<N9VEF550)``,G@(I!4GG(055X!`#H`V0` |
4451 |
M<_=TL[!,9&%@9VA@`('___\K_F1A9&!@9-`!\4$R#$P<+GQBF6]6AV@P6`,` |
4452 |
M4$L#!!0````(`!QR9#&XI.8--@```%T````C`!4`9VQO8F%L+VUE;G4O;65N |
4453 |
M=2UA<G)O=RUD:7-A8FQE9"YG:6955`D``R>`BD%2><A!57@$`.@#9`!S]W2S |
4454 |
ML$QD86!GV,P``@L6+-B[=^]_XH#B3Q9&!@8F!AV03I`9#"Q<!AV22U8(O<Y> |
4455 |
MV\%@#0!02P,$%`````@`'')D,>RBRR0#`0``"`$``"D`%0!G;&]B86PO;65N |
4456 |
M=2]M96YU+6-H96-K+61I<V%B;&5D+6AO=F5R+G!N9U54"0`#)X"*05)YR$%5 |
4457 |
M>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"TCP@S,$&),-*8YX#*;8D;W<7AO\@ |
4458 |
MN&#O\LE`$<X"C\AB!@9N81!F9)@U1P(HR%[BZ>O*?H6#1\!`Y<"^PDU`H:F> |
4459 |
M+HXA%;=Z)Y[F/60@X#(_O-'I$NM6!16SUDJE4P^<'`.8-L@T+6[Q?V3Y-O'> |
4460 |
MN35S'\E9"^E.S?+8DEBX[DO^+"//77J6=V6-;T>=C2I7GWAO:M@566N&)H8# |
4461 |
M86<S#;Q_^15\+^*_FV@@O"!N<OBOCGE-##;/5R8OO?-\8[JE`<<GS?]L75Q? |
4462 |
M_(T=A":)+13IO]%^].B9/-/Z3TQ]/"8!+U,+-8$.9/!T]7-9YY30!`!02P,$ |
4463 |
M%`````@`'')D,3+QS3TT````.0```"``%0!G;&]B86PO;65N=2]M96YU+6-H |
4464 |
M96-K+6AO=F5R+F=I9E54"0`#)X"*05)YR$%5>`0`Z`-D`'/W=+.P3.1DX&1H |
4465 |
M8&#X#P:*/UD8&1@8&708@``DP\`DT-,ON>!T=8-)L%UZ<-CVA4P,U@!02P,$ |
4466 |
M"@``````'')D,77C:_19`0``60$``"``%0!G;&]B86PO;65N=2]M96YU+6-H |
4467 |
M96-K+6AO=F5R+G!N9U54"0`#)X"*05)YR$%5>`0`Z`-D`(E03D<-"AH*```` |
4468 |
M#4E(1%(````,````#`@&````5G5<YP````9B2T=$`/\`_P#_H+VGDP````EP |
4469 |
M2%ES```+$P``"Q,!`)J<&`````=T24U%!]0(#!`?`9FFG9@```#F241!5'C: |
4470 |
MC9&A3D-1$$3/WCSZ!S7(_@`)C@\`C:_I?0D"'`X24(0\A\+>NP1+%0*!02+X |
4471 |
M`2R.Y/4/H'<0M.0%2/M&K9B9G=TQ?6H'8T1/5!@C!3WVY&]4R\G=VU7,&.-F |
4472 |
M"&$6^MC&&$\-\^](:U!/Z@;8%CI;*Z@G=8-Q(K3K[B_``,TU+BK#E!-%Y:JH |
4473 |
M'*:<T(>V)$E%3<J)E!,8@ZKC=@X<+S*WP`'P1N&^N_7GZ'R3+X2N@=:P.V!/ |
4474 |
MZ#7?YN=_!0M<"AT!RQ<__"VN`W=_!Z8QQJ%A^\#TM\`TUUA!3R&$69].O@#! |
4475 |
MHUSV^>ROH0````!)14Y$KD)@@E!+`P04````"``<<F0QU+FJA2T```!=```` |
4476 |
M(``5`&=L;V)A;"]M96YU+VUE;G4M87)R;W<M:&]V97(N9VEF550)``,G@(I! |
4477 |
M4GG(055X!`#H`V0`<_=TL[!,9&%@9]C,``35_TD!BC]9&$&Z=$`$R`P&%BZ# |
4478 |
M!DF5%4*OLW4[&*P!4$L#!`H``````!QR9#$````````````````,`!4`9VQO |
4479 |
M8F%L+W1R964O550)``,H@(I!"67-055X!`#H`V0`4$L#!!0````(`!QR9#$W |
4480 |
M7AR+J0```+4````;`!4`9VQO8F%L+W1R964O='=I<W1Y+6]P96XN<&YG550) |
4481 |
M``,G@(I!4GG(055X!`#H`V0`ZPSP<^?EDN)B8&#@]?1P"0+2W"#,P08D5ZXI |
4482 |
M5P-2;$G>[BX,8/#3>7<]D.(L\(@L!JH2!F%&AEES)(""["6>OJ[L5S@X1<14 |
4483 |
MC+>OJ@`*.7FZ.(94W#I[SI"KP4&`Y>"[W__GW_:X^%A$^"#G=*FTA^*"+TS7 |
4484 |
M!:S^W>?UE&%%B+SB@1O]JP])QGV(F?'PX^>D79)ULWGGFJIP*NP]L1=DNZ>K |
4485 |
MG\LZIX0F`%!+`P04````"``<<F0QP_\"&$<```!*````'``5`&=L;V)A;"]T |
4486 |
M<F5E+V-O;'5M;G!I8VME<BYG:6955`D``R>`BD%2><A!57@$`.@#9`!S]W2S |
4487 |
ML$SD8^!AF,C$P,!@#,3___\'DHH_61@9&)@8=(!L!I`\`Y/TE/Z5V0__!UEL |
4488 |
M]N10O;N"ZWVDS_74D"^6RMNU6!FL`5!+`P04````"``<<F0QONBV#+````"Z |
4489 |
M````&P`5`&=L;V)A;"]T<F5E+W1W:7-T>2UC;'-D+G!N9U54"0`#)X"*05)Y |
4490 |
MR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"TMP@S,$&)%>N*5<#4FQ)WNXN |
4491 |
M#/]!<,'>Y9.!(IP%'I'%0%7"(,S(,&N.!%"0O<33UY7]"@>GB*C:MRDSI@.% |
4492 |
MW#U='$,J;O5.L.1C,.`XS/'_?[%5R4O!\%2>;0Z!;Y-O6VV:E'8E\6'3SH3; |
4493 |
M&B5<GAE6,UE:)G]H4;UZR^]_$X?ZA*H^A:\Z5;D,"M$J8KD/.>*`1C)XNOJY |
4494 |
MK'-*:`(`4$L#!`H``````!QR9#&#L+I`-0,``#4#```8`!4`9VQO8F%L+W1R |
4495 |
M964O<V]R="UA<V,N9VEF550)``,G@(I!4GG(055X!`#H`V0`1TE&.#EA!P`$ |
4496 |
M`.<```````$!`0("`@,#`P0$!`4%!08&!@<'!P@("`D)"0H*"@L+"PP,#`T- |
4497 |
M#0X.#@\/#Q`0$!$1$1(2$A,3$Q04%!45%186%A<7%Q@8&!D9&1H:&AL;&QP< |
4498 |
M'!T='1X>'A\?'R`@("$A(2(B(B,C(R0D)"4E)28F)B<G)R@H*"DI*2HJ*BLK |
4499 |
M*RPL+"TM+2XN+B\O+S`P,#$Q,3(R,C,S,S0T-#4U-38V-C<W-S@X.#DY.3HZ |
4500 |
M.CL[.SP\/#T]/3X^/C\_/T!`0$%!04)"0D-#0T1$1$5%149&1D='1TA(2$E) |
4501 |
M24I*2DM+2TQ,3$U-34Y.3D]/3U!04%%145)24E-34U145%5555965E=75UA8 |
4502 |
M6%E965I:6EM;6UQ<7%U=75Y>7E]?7V!@8&%A86)B8F-C8V1D9&5E969F9F=G |
4503 |
M9VAH:&EI:6IJ:FMK:VQL;&UM;6YN;F]O;W!P<'%Q<7)R<G-S<W1T='5U=79V |
4504 |
M=G=W=WAX>'EY>7IZ>GM[>WQ\?'U]?7Y^?G]_?X"`@(&!@8*"@H.#@X2$A(6% |
4505 |
MA8:&AH>'AXB(B(F)B8J*BHN+BXR,C(V-C8Z.CH^/CY"0D)&1D9*2DI.3DY24 |
4506 |
ME)65E9:6EI>7EYB8F)F9F9J:FIN;FYR<G)V=G9Z>GI^?GZ"@H*&AH:*BHJ.C |
4507 |
MHZ2DI*6EI::FIJ>GIZBHJ*FIJ:JJJJNKJZRLK*VMK:ZNKJ^OK["PL+&QL;*R |
4508 |
MLK.SL[2TM+6UM;:VMK>WM[BXN+FYN;JZNKN[N[R\O+V]O;Z^OK^_O\#`P,'! |
4509 |
MP<+"PL/#P\3$Q,7%Q<;&QL?'Q\C(R,G)R<K*RLO+R\S,S,W-S<[.SL_/S]#0 |
4510 |
MT-'1T=+2TM/3T]34U-75U=;6UM?7U]C8V-G9V=K:VMO;V]S<W-W=W=[>WM_? |
4511 |
MW^#@X.'AX>+BXN/CX^3DY.7EY>;FYN?GY^CHZ.GIZ>KJZNOKZ^SL[.WM[>[N |
4512 |
M[N_O[_#P\/'Q\?+R\O/S\_3T]/7U]?;V]O?W]_CX^/GY^?KZ^OO[^_S\_/W] |
4513 |
M_?[^_O___R'Y!`$*`/\`+``````'``0```@2``$('`C@'\&"_PP*3,@0X;^` |
4514 |
M`#M02P,$%`````@`'')D,>'6']NL````N0```!\`%0!G;&]B86PO=')E92]T |
4515 |
M=VES='DM8VQS9"UH=G(N<&YG550)``,H@(I!4GG(055X!`#H`V0`ZPSP<^?E |
4516 |
MDN)B8&#@]?1P"0+2W"#,P08D5ZXI5P-2;$G>[BX,8/#3>7<]D.(L\(@L!JH2 |
4517 |
M!F%&AEES)(""["6>OJ[L5S@X1<08^+?XK00*N7FZ.(94W.J=8,C'H,##U/C_ |
4518 |
MOR1[;(["*8_^MFD[4F_+R)W(U>3I45+=S'IEVQ*'UN`$N<N_/NW\N:<]WO29 |
4519 |
M]%?N,(M&P3P%!IVV5Q+"-KFQB2`7>+KZN:QS2F@"`%!+`P04````"``<<F0Q |
4520 |
MTP2$DZ````"N````'P`5`&=L;V)A;"]T<F5E+W1W:7-T>2UO<&5N+6AV<BYP |
4521 |
M;F=55`D``RB`BD%2><A!57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M+<(,S! |
4522 |
M!B17KBE7`U)L2=[N+@Q@\--Y=SV0XBSPB"P&JA(&84:&67,D@(+L)9Z^KNQ7 |
4523 |
M.#A%Q/0N)SFG`86L/5T<0RING3UOR,>@P.%\T?]]_7,K2P\%(XL;G">:67XH |
4524 |
M,59TI5JK72C+$#?G6&#SXD'CZM8[JW>;_'WJ*Z;E(O?=GT5P-<A:3U<_EW5. |
4525 |
M"4T`4$L#!`H``````!QR9#%\%T9A,P,``#,#```8`!4`9VQO8F%L+W1R964O |
4526 |
M<V]R="UD<V,N9VEF550)``,H@(I!4GG(055X!`#H`V0`1TE&.#EA!P`$`.<` |
4527 |
M``````$!`0("`@,#`P0$!`4%!08&!@<'!P@("`D)"0H*"@L+"PP,#`T-#0X. |
4528 |
M#@\/#Q`0$!$1$1(2$A,3$Q04%!45%186%A<7%Q@8&!D9&1H:&AL;&QP<'!T= |
4529 |
M'1X>'A\?'R`@("$A(2(B(B,C(R0D)"4E)28F)B<G)R@H*"DI*2HJ*BLK*RPL |
4530 |
M+"TM+2XN+B\O+S`P,#$Q,3(R,C,S,S0T-#4U-38V-C<W-S@X.#DY.3HZ.CL[ |
4531 |
M.SP\/#T]/3X^/C\_/T!`0$%!04)"0D-#0T1$1$5%149&1D='1TA(2$E)24I* |
4532 |
M2DM+2TQ,3$U-34Y.3D]/3U!04%%145)24E-34U145%5555965E=75UA86%E9 |
4533 |
M65I:6EM;6UQ<7%U=75Y>7E]?7V!@8&%A86)B8F-C8V1D9&5E969F9F=G9VAH |
4534 |
M:&EI:6IJ:FMK:VQL;&UM;6YN;F]O;W!P<'%Q<7)R<G-S<W1T='5U=79V=G=W |
4535 |
M=WAX>'EY>7IZ>GM[>WQ\?'U]?7Y^?G]_?X"`@(&!@8*"@H.#@X2$A(6%A8:& |
4536 |
MAH>'AXB(B(F)B8J*BHN+BXR,C(V-C8Z.CH^/CY"0D)&1D9*2DI.3DY24E)65 |
4537 |
ME9:6EI>7EYB8F)F9F9J:FIN;FYR<G)V=G9Z>GI^?GZ"@H*&AH:*BHJ.CHZ2D |
4538 |
MI*6EI::FIJ>GIZBHJ*FIJ:JJJJNKJZRLK*VMK:ZNKJ^OK["PL+&QL;*RLK.S |
4539 |
ML[2TM+6UM;:VMK>WM[BXN+FYN;JZNKN[N[R\O+V]O;Z^OK^_O\#`P,'!P<+" |
4540 |
MPL/#P\3$Q,7%Q<;&QL?'Q\C(R,G)R<K*RLO+R\S,S,W-S<[.SL_/S]#0T-'1 |
4541 |
MT=+2TM/3T]34U-75U=;6UM?7U]C8V-G9V=K:VMO;V]S<W-W=W=[>WM_?W^#@ |
4542 |
MX.'AX>+BXN/CX^3DY.7EY>;FYN?GY^CHZ.GIZ>KJZNOKZ^SL[.WM[>[N[N_O |
4543 |
M[_#P\/'Q\?+R\O/S\_3T]/7U]?;V]O?W]_CX^/GY^?KZ^OO[^_S\_/W]_?[^ |
4544 |
M_O___R'Y!`$*`/\`+``````'``0```@0`/\)!""P(("#!@\B5,@P(``[4$L# |
4545 |
M!!0````(`,->9C'U):^#?@<``(<>```/`!4`9VQO8F%L+W1R964N8W-S550) |
4546 |
M``.N`8U!4GG(055X!`#H`V0`O5E;;]LV%'Y.?@67/<PI+#E.EV%UT*%9@Z+9 |
4547 |
MVK1HTG5%L0=:.I:Y2*1`TK&]HO]]AZ1DW6TY[::'QI3.C>=\YT)V].B0/"*W |
4548 |
M<R"!X!JX5D3,B)XS168L!D(E$+68_@V!)EK@!R#7H%5`4R!O%].8!8;_%0N` |
4549 |
M*R!_@%1,<#+VQV1@:(^R+T?'YV0M%B2A:\*%)@LDWB@Q$F`50*H)XVA'DL:, |
4550 |
M\@#(DNFY59E)\<G'3(:8:HJT%*E37,V,B!(AH9K,M4XGH]%RN?03\0^+8^H+ |
4551 |
M&8VNW[X:(;5AN!$SO30;#)G2DDT7&D*RX"'(BBRTLDR`VZ.<'%W<&!%7-T=D |
4552 |
M2A530_+AZO;EF_>WY,/%NW<7U[<?R9L7Y.+Z(_G]ZOIR2`"W@G)AE4I0Z&-I |
4553 |
MN)G9*80^N0&HJ)P)9X)*(6`S%I"8\FA!(R"1N`?)&8\,OV31'`-&>4ABEC!- |
4554 |
M-3I?-;?@9QLV87Z#3(S3F#P7H=W;:^<<7"?)@K.`:E0>H%U<HW=#&!(),5`% |
4555 |
MH1'QFLI@3AZ/AV3\Y,G/9<%7G&F&<B_A'F*1H@462"T:<P`9SD*K-?VYD*F0 |
4556 |
M=N&3MT*ZMX$$:EP_71?@P[@Y_G1MW4`&SX^M3=[IR<FXH-NFX"*.C8QWSHWO |
4557 |
M0(&\QW!DFWJ."6&#+N1`'4_,*T)^$T!>`@(3%<[MWV<\4^4C<H^1:G1X.'I$ |
4558 |
MGIJ':`GX'@/^=/_GD"`7N='K&)1)&+M_X]`_W[\B8J%CQH%@:!*,E&^)O\EC |
4559 |
M-_",TP142C$)%S(>''4DTQVL$ZHTR%&$`;H#P+"/#-#!9\H7/%[[JT6,R6]= |
4560 |
M,C&/=4GVTVBRR\]H_NC1X4%")4)E0D[2%?DQ79T?'B#)P51(!/2$C/&M$C$+ |
4561 |
MSY'<0SL\]\73(O4"$0NI)@A%%'AY,Z>A6%86=2:+FOW9ID)KD>S/%\.LI[8I |
4562 |
M#>XB*3"+'?W$R7G!(+8[;[R\A94^MQXDAP?V-4U3H-+4T`E6!J6G8K6QI_Q- |
4563 |
M(^?,R36>;J'@@L/YX9=Z_*18JEH0@SF+0PE\,K%"S"L/R6QL\PB>Y!%$*90C |
4564 |
MOI#>FIXP[LW!1&1"3D]3:VV^'ON/(;$V;%$S4)@)`1:)8Z>PW8>76*!$U%O6 |
4565 |
M$`MQL%!=(E^B?;&Q<:?`8"'-3DOR#A#NA5\,LD,$%N;X]R_.+G]]<N8"TO![ |
4566 |
M`''<Q_&&SEJ=TC#$;N%<CX[-_VXUV7![!AM61+9;QC&OV?:];AAKX6C&P&%V |
4567 |
M+U&5:-1#L)%7.,S41V7&&H[LZ(/>SK.%]7-[>,JIN,5Z(Z(#1DV9M4U4:5RZ |
4568 |
M5*%6`X4"3"3;MG?OK:`MC#'ULZRL49#*E:])V&5;*$5*9@"AR9R>F'413R7# |
4569 |
M3K`>6A%O>(_\VP*(+G5&MK<QKX>&)0OU?$+.3JKE*:M6KG79,H\T68)5XY1* |
4570 |
M$=GI+P%LF3T\DC,X^L\;+5:I:Y`%6$[W[HZ5DKB[.6Z<L8VQM3WVXNQND#6F |
4571 |
M';5]`X4JC+<@H>+F0;YZCU,TKK$SY57,=%)/F7G,0WQ&V!WM;!3,I4@`IZ,H |
4572 |
M%E,:C]0=XZ.*S.K*FR[4VH_8S,Q%O2I@A?VX'0C-5B'B1<(;]4[$P_Q'RH([ |
4573 |
MBRO7C)K3`9+-@6)PC"F=(P).R%KP4CA7'L5HHW%X^$"#*U]PI+PK?W@`>@LT |
4574 |
MN?4K\[O_C'=)Y=U#Y[R>O"U0WF%T7TPW.NA!I<'G2/"S"#N<-@>!<9UNT^S+ |
4575 |
M$_AW>#[%(QCEI4(JXD]S%F:P>'JDY0*._K*<':-C$>)\75B2H]8W#PX8B`ES |
4576 |
M3D2<9*]*J)W,S<EW0K&5WT,-PI5OC<96@589&+4315>;*WUSU?T_K[1[GSP> |
4577 |
M6$M=WF_B,78(LK$_RT]?#335G=TB9%R>,^MSK*M+V-II9&\N[)B@W"FW4:L^ |
4578 |
M&3($9-2$6J?/2TE:.F54T+Q7E2@)Z9:QJUSTLZ0E;KUD-,M')>A5X@I%49<Z |
4579 |
MLIUQ!?AVIMO2_2%EMB%["C,AH5/X=I_T;O(.=H.RRO)`GJ5VUQ#<5[#U4T5N |
4580 |
MO=(T!6\R0Z'[2<BD.:X(CO4PS&[CW&>;%YM<-,0%;?MXLCF\YS64"SUHJ=_' |
4581 |
MY!?2+OB365WFJZ='5&'K-HF>!6J?D<@H&!EY'DJISS_?PK@0OHEU8<6Z>MW* |
4582 |
MAJ9Z2#(8N*\>"SICLL."LI@V*_02):[+ZKMPF5&6>G^.Q>S@D+_-3W^E,\[8 |
4583 |
M+,U]DKG8M8;_H-PW<W\['J,75H!G:3L0[KU'9YD7Q"KT4PS6]C'840]$"ME! |
4584 |
M\/^TT6@M;,1.M\/*ZK7'UWC&F]]+I[E6F7M:,"P<]C6;[S1C&_2P<F&/HIO* |
4585 |
ME$?LM'Y0B20+[6V+M:[C1.SG5*KUAJNKSF[IEEWW&5TL7_H85+_KK!;?-B^9 |
4586 |
M6`RN:9(UHEJ6[KJDJ[.7)_?L3F*?P)N2I48S$1O7,`U)2]2SQFQE>1(BC.^$ |
4587 |
MF/([0*5#,OZI^!=?;$_KPORA_:]'BO[,.N=6)8]/JZKZ:RD2HDN!D^HT%'KZ |
4588 |
M:]A<KG7E77X$RA*B?L@J+I6:7\KA/>E[?]MN5^O]2%7#6?D8\!!-YN<>U[;_ |
4589 |
M`E!+`P0*```````<<F0Q````````````````#P`5`&=L;V)A;"]C;VYS;VQE |
4590 |
M+U54"0`#*("*00EES4%5>`0`Z`-D`%!+`P04````"``<<F0QY[@F[RT````P |
4591 |
M````)0`5`&=L;V)A;"]C;VYS;VQE+V-O;G-O;&4M97)R;W(M9&%S:"YG:695 |
4592 |
M5`D``RB`BD%2><A!57@$`.@#9`!S]W2SL$QD9>!D:&!@8%@6""04?[(P,C`P |
4593 |
M,N@`V0P@&08F]I[^E:>YXAD8K`%02P,$%`````@`'')D,;D%K<&6!0``6PX` |
4594 |
M`!H`%0!G;&]B86PO8V]N<V]L92]C;VYS;VQE+F-S<U54"0`#*("*05)YR$%5 |
4595 |
M>`0`Z`-D`*U6;6_;-A#^GE]Q<[XD020E+8:N[E(T=M+4K><4<;JB&/:!ELX6 |
4596 |
M%XI423JV._2_[XZ2%;^EZXH)"!Q1Q^?NGGONR.0(COB!SN55;P#]7O=R,+R$ |
4597 |
M3O^Z^Z[ZL@='\#M:)XUNP^!]'T[CT^2*?I_$)TF_^N>4C-CN-D=(C?:HO0,S |
4598 |
M!I]+!V.I$(1%<-/17YAZ\(8^(`S0NU24".^G(R53Z,L4M<,5?^P*#MBV57]L |
4599 |
M';Z`A9E"(1:@C8>IPQ4G.$^Q]"`U8Z2F*)44.D6829\'ES5*#)]J##/R0FH0 |
4600 |
M9%TNJH@;*Q"><7+ORW:2S&:SN#!?I%(B-G:2$!-)G?70C/V,$\RD\U:.IAXS |
4601 |
MF.H,[1H<1;EJ0.D)#:WS(?2&+1@))]TQHWWLW;ZY_G`+'\]O;LX'MY_@^C6< |
4602 |
M#S[!N][@XAB04B%<G)<6'7%L07*:F,4P1%SUQUAC4X7@2DSEF#A60D^F8H(P |
4603 |
M,?=HM=03L'*24[6$SD#)0GKAB7GW$#_C+'E;*?,U[9-:*.B:+.2V0@ZQF:T9 |
4604 |
M][3TDFPO\!Z5*0FXIGH3A3<TNNB:HIAJF=81=8TMC0TOC`WOC:T^I!8%,SI: |
4605 |
M!,QM9UR;+A4XI`H'W4,X??[\%\;8:1_#N5)P4_%R@P[M/?%;I],E>8<2&GO@ |
4606 |
M#MN\!&\-PALDE7GX-0^_KW2=1$PR?%EO/5>>.*<$R,_B./C>W2RLS!&RN%=U |
4607 |
M1)L+-F2H6@:\?#7X`%>HT5(*ZYW4M-$3UHDBCFS=3=2UK<-C6EURP"!]$A19 |
4608 |
M_!L6M>0&6K^"8RSJI5DNTQQ2X2HUEM;<2Q?J5-><1T:MRS`^N#JB)!&G8D3) |
4609 |
M2^T\BHS1P@;#G3@BN<;0&X?FGTF7\Q`12IE9&`$F?+!P7P>YQJ;1:L%HVTRN |
4610 |
MT;@>U7%H"!XQC2/#MH[>`QAY?=SE#E=AXC&NU!E+NMK.4!GU9H`@_6:HT'-7 |
4611 |
M;E`7"`@A62R52`.WQ<-@HT"I3HS&-B'2U>T6/T^E?6B1C60;9C,34@Y1X%(; |
4612 |
MFV$0-028RE*2<H-6OX.,)5C#A]`T;S6N4;,KM+IWJD/J<G"QZXB"HV1O+SF" |
4613 |
M,WZXIYQ1U'DT'\]^X-D#H'TP]`N%KFK"FK:WXEX,4ROIC.E63J@".C.SN-KS |
4614 |
M?SPAEU=:%.A*KO/4JH/6(V?0'2X*0=UBDPD)Z@Z1AE?"M<=8NIAU'\^GBL[, |
4615 |
MO;VX9B4:F3G\3>&.1'HWL8:*$Z5&&=N&B*"CUQ)5]H*^;RW>XMR_V/L:B&[S |
4616 |
MLR0:K)FY>HF#;US1>N7*6%(`>?;>%&UX4LZ!OLML"QR@%%E&\F_#23D/SE;! |
4617 |
M(DDOJXAAGK?AM`&\S2WBQ3`75),UN)\9[M&D+VC\FPD;A%>B*!)*3NB^X[RP |
4618 |
M'GZB,Y8.&Z']>DQ-/(K.]<BQ8")9T/':IBZG,LB&L)@?0&M)VH&N:F&3KH@/ |
4619 |
MSH#81/Z4DB,RPN_3*HLZ]/T3>CH=7AG3,1(Y^84<*V$G:-?CS(RGNT7SFM+$ |
4620 |
M]<%+CA6#SS?9YAT;,FE74DQS:PHD,4Z4&0F5N#NIDWI;$A*,,N'R>"+'K4.> |
4621 |
M5G0V1W.:FN6ZAX<@9C+S>1N>;9;H^QT&K-JC-E'EM''9T$\MY?CN\XT"_.$7 |
4622 |
M)9ZU:LO6GR'`P.Y8%%(MVG3-T29TYCJVHY&9\B6$%$.S_1'TI=59R]OI$GY; |
4623 |
ME/N=9Q>=R\ZCNELJ90OO>-,FW"ZVW;Z$-;LPIE?6*E8=3?0TK'OJSDA)?1?B |
4624 |
MK8.L%;X99#,=N#D>&PLUS<'/9M3+;^$N3X=)S=)VBSVNCN`ZN63TN-03'H!? |
4625 |
M=P9`MW:^`_^PBX_5_F\[61?3?W?R6[5_Q4G#L3=&C81=I7F?1RE-L,M[NL.Q |
4626 |
MPX(&@M35V-VHU7YG2B-9[S1=_IUL;UMZQ5+0=9PF6M@K=;0<)Z=8D.$_4$L# |
4627 |
M!!0````(`!QR9#%8PI2:-0```#<````F`!4`9VQO8F%L+V-O;G-O;&4O8V]N |
4628 |
M<V]L92UE<G)O<BUC87)E="YG:6955`D``RB`BD%2><A!57@$`.@#9`!S]W2S |
4629 |
ML$QD9^!D:&!D8%@6R,#`H/B3!<AD9-`!LAE`,@Q,?#V)G*M/\X5.,EY0I>O- |
4630 |
MRF`-`%!+`P04````"``<<F0Q@XW-794$``#0"P``&``5`&=L;V)A;"]P<F]G |
4631 |
M<F5S<VUE=&5R+F-S<U54"0`#*("*05-YR$%5>`0`Z`-D`*U6;4_C1A#^SJ\8 |
4632 |
M13H)$+$!]:HCE.IR@4)Z44`$>D55/ZSM2;QEO>ONK@GIJ?^],VN3-P)<J_I+ |
4633 |
M\'KFF9EGGIDEWH5=?N#3V7E_"(-^[VPX.H-/@\O>Y_K+%NS"+VB=-+H#PZL! |
4634 |
M'$0'\3G]'D;[\:#^XX",V.XF1TB-]JB]`S,>L'8ZD0A$5P5?('IAZ\H0\( |
4635 |
M0_0N%27"594HF<)`IJ@=+L7C4+#-MJWF8VOG&&:F@D+,0!L/E<.E(/B88NE! |
4636 |
M:L9(35$J*72*,)4^#R$;E`CN&@R3>"$U"+(N9W7&<RL0GG%R[\M.'$^GTZ@P |
4637 |
M?TFE1&3L)"8FXJ;JD1G[*1>82>>M3"J/&50Z0[L"1UDN&U!Y0D.K.X+^J`6) |
4638 |
M<-+M,=J7_LW%Y>T-?.E>7W>'-W=P^1-TAW?PN3\\W0.D4@@7'TN+CCBV(+E, |
4639 |
MS"(8(2['8ZRQJ5-P):9R3!PKH2>5F"!,S`-:+?4$K)SDU"VA,U"RD%YX8MXM |
4640 |
M\F><)]Z6VGQ)?E(+!3V3A=J6R"$VLQ7COI9>DNTI/J`R)0$W5#]#88^Y,'JF |
4641 |
M*"HMTR:EGK&EL>&%P>'*V/I#:E$PI<DL@#Z/QLWI48=#K;#=VX&#HZ,/C+'1 |
4642 |
M/H*N4G!=$W.-#NT#$=S4TR-]AQX:N^UV.GP$/QN$"R29>?@A#[\?=5-$1#K\ |
4643 |
ML7'M*D^D4P$49[878F^>%I9F@JSN92&1<\&&#-7H@(_/A[=PCAHME;`Z2O,Y |
4644 |
M.F2A*.+(-N-$8]O:V>/3)Q(894"2(I.WP&@HU^`&-1YCT31-<YGFD`I7Z[&T |
4645 |
MYD&ZT*BFZ[PT&F6&!<+M$27).!4)52^U\R@R1@L.AF<Q(<%&T!^'\9]*E_,: |
4646 |
M$4J9:5@")GRP\-`DN4*GT6K&:,^I7.%Q-:N],!*\9.:!#-LZ>@]@%/7ED!M" |
4647 |
MA9W'N%)GK.G:G:$RFLX`00+.4*'GN5RC+A`04K)8*I$&;HO%:J-$J4^,QC8A |
4648 |
MTV5WBW]6TBYF9*W8.;.9"26'+/!)&^MI$#4$F,I2DG2#6+^!C">P.1]"T\;5 |
4649 |
MN$+-IM2:X:FOJ;/AZ:9+"G;CK:UX%T[XX7PGO!X+JL%&*>W)DW_U;`$YP,C/ |
4650 |
M%+IZ"!O6?KT=K((#\500"5%P^5^>4,I'+0IT);>YLFJ[]<(E=(^S0M"PV'A" |
4651 |
M>KI'I.45<^LQDBYBV4>/E:)+,Y#3X6<M__J,0ZZ>?Z6"VA2J37.)PO(UNG!- |
4652 |
MA#VF[X6PM+P[<%@^PG?E(Q\EQE*KZR-GE,R.GW#J+VUORG9JE+&N0S>#13P= |
4653 |
MY2*CV0I&I[2&S63=)VSM-:\+.E-AF[_BF!CO3?%?/!6.UR-NSC,1Z?W$&E)X |
4654 |
M;=Y9-RBD;D]EYO,.'!Q^J%GBLQPY!SI\SV=_K_'_6T'WX4F+!X?G16K,6K^' |
4655 |
MIBP"=FIII+DU!9(X)LHD0L7N7NIX!6SUK9U4;A9-Y+BUPZN$;L[V(^R_@_?[ |
4656 |
M[T(>T9-UF]H,6Z\*(<TK?;]6Y7ZCA&?$+-,8(LTEZ>B?CHI5]:(XH]42%@Y? |
4657 |
MEW2XOZS`)HW7M?=-6M@DO[=%NU%[;[MM$-Z+22Z1?O1]HZ)_`%!+`P04```` |
4658 |
M"``<<F0Q$(9MEAD$``#I"@``$``5`&=L;V)A;"]R861I;RYC<W-55`D``RB` |
4659 |
MBD%3><A!57@$`.@#9`"U5MMNXS80?5Y_Q=1`@22(I7B[!1H'*6HDV&[0K!/$ |
4660 |
MWFZ#H@^4-)984Z1`4K'=(O_>(2G;<FRG6[350Q"1,^?,G+G(\4D'3F!2(*1* |
4661 |
M6I36@)J"+;B!*1<(3".8.OD=4PM6T07""*U)685P7R>"I\[_EJ<H#<+/J`U7 |
4662 |
M$OI1'XZ<;;>YZ1Y?P%+54+(E2&6A)N,UB4/`18J5!2XICK(2G,D48<YMX2D; |
4663 |
ME`@>&PR56$:VC*PK>ILZB)8A,`N%M=4@CN?S>52J/[@0+%(ZCT?WMS%9.X>Q |
4664 |
MFMJY2S#CQFJ>U!8SJ&6&>@N+HFP;4'I,0G<X=A`WXRXDS'!S"I]O)A_N/DW@ |
4665 |
M\_#A83B:/,+=>QB.'N&GF]'U*2"E0KBXJ#0:TE@[;^XRQ2R",>(6Y52%$$R% |
4666 |
M*9_R%`23><URA%P]H99<YLY?\[R@@C&9@>`EM\R2^&8WA:A)V)7YCIRX9`*N |
4667 |
M5.9S^QC$H?>RK"5/F27RE.*2EM3-\!0T"F0&,P?QD>FT@&_ZI]`_/_^N#7PC |
4668 |
MN>6$>XU/*%1%$?A&VL.X:B#GN6'UH5\I72GM7R*X5SJ<IAJ9DSY9;IJ/ZA;\ |
4669 |
MJZ67`8ZNCGU,/?ISOK%[C6`HA,-X"#(^H$']1.5HDKJB@?!%5_K('`_":=SI |
4670 |
MQ"=PZ1[0+.,J2JF<E__\Z0!YP=@N!1HW#CX[)]<OGVX#,I#L)54A\J;_R>/C |
4671 |
M_T&R$DW%:,!J+8ZZ!P9EALN2&8LZSDG\&2*5-'9-C!$WD9)B&2UJ08/M%1FX |
4672 |
MIXD[_.^HPON?E$"/H'NLJI!I-]J-:<\M'1IDU!<KFT0M>DSP7`Z`>M>&FY)I |
4673 |
M:J$!O*T6\*Y:N*.*91F-P0#Z=.;.^ZN[YTXG"NB")2@<H@\A@/0$3JU'<BB) |
4674 |
MTC0K`<0HP3.P%!^)HXE[B^:,+,X:FOXV#:<LV@R^'QN*%\&TS`@2OJ(-0$W. |
4675 |
M'->SUS%R#\U_ZEO"T$AC<[;6\]?F]K)K=8W=W^![V)/OF_CD17Z9LFZ()H5& |
4676 |
MO+YF>C8N6*;F%YTW!-UFIVW'$G&0?G6]RY\6F,X<?]_GF;!TEFM%ZXCJ+!2% |
4677 |
MX2M\35M"Y3[A`X#.N?'X4;/E!!=VCU2AS3PG*3JC;>H6Y*;Y]@>UOQ';3=8/ |
4678 |
ME=ZT1\^JJMTB0<&5>FNKINPO[3[0L7!7+=.$2J'*+[,-_7J8O9F:$`+E4IL! |
4679 |
M?'OVM;N:\\P6Y-LT>X%-A*OFWU^?]QQ%UN[<M8)O0UE?$:7=5G\GS*T[WC$^ |
4680 |
M),U^Z_WB;$?QBD#KZ6X4:01[MZU7\RKH1T#/N(7=\ZTVH%\R$C=]/"C<MWG` |
4681 |
M4LN?\%\,Q7H.#7T`4GMP#E?7K\[A[EDHXFXR_EN0%EJ52%^#7*B$B=C,N(P] |
4682 |
M0-R"B7(^=8O_^5`H7[8C_I?8>D0=XFNM#(KT+U!+`P04````"``<<F0Q&0PW |
4683 |
MEX$"``!'!```&P`5`&=L;V)A;"]C=7-T;VUI>F54;V]L8F%R+F-S<U54"0`# |
4684 |
M*("*05-YR$%5>`0`Z`-D`&U346_3,!!^7G[%J;RT4Y>L0T(LE1"E%5IAZZ:V |
4685 |
M,.W1L2^)F6-'MK.T0_QWSDF9.N"EJ>WOOKO[[KOD%"`"V)8(W&B/VCLP.?A2 |
4686 |
M.LBE0F`6P379#^0>O*$'A!5ZQUF-<-=D2G(*OY8<M4/XCM9)HV$23V`8H(/# |
4687 |
MRV`TA;UIH&)[T,9#0^"7'$2`.XZU!ZFIBJI6DFF.T$I?=@D/)#$\'"A,YAEA |
4688 |
M&:%K.N7$<(0#YJ'TODZ3I&W;N#+/4BD6&ULDJ[OK).HZWIC<MZ$Y(9VW,FL\ |
4689 |
M"FBT0/N*BDH\!E!O3,-@MB&&Y68`&7/2C>%^N;VZ_;:%^]EZ/5MM'^#V,\Q6 |
4690 |
M#_!UN5J,`:D/HL5=;=&1O):"9>@210P;Q%<)<],7X&KD,I<<%--%PPJ$PCRA |
4691 |
MU5(7%&YE4=*DF!:@9"4]\R2[^[?^.'H9[RW%2,T4S(WH^KKI=:%S535:<N8I |
4692 |
M-:>JM"==!8[!HD+F4!###;.\A+>3,4PN+]\?T2ZU]))8%_B$RM24OK//?_)] |
4693 |
M4NP186V<BT/PG;%]T=PB"]IF^R-(\!V!YC3?KE<8SD=P<7Y^\8IFIA2!UKT8 |
4694 |
M:W1HGTC3OK@YV;D;F[%#-TK#%1PG&&;AO_VH#VZ.R7FC#O3%(%PAN8^REMWW |
4695 |
M+]!I$D6MU,*TXTA0\Z:`GQ29&4ORIS"I=^",DH($LHB+!;./FY(1?$JHF@E! |
4696 |
M0TSA7;V;1K^BZ(W49+"&]VH$HIQ*/VLQM)42JQ+3/Y=./F-*EK`%VCZX9@J] |
4697 |
MQ[/,["@VW%2T&MWQ`_2_BF6HTEQ:Y\]X*94@X$ER"E=2]-[K`&&[JZ!.N"&C |
4698 |
M4J:PHKKH-S:8+U>F!6K^A%:B5FR?THO&4,=O4$L#!!0````(`&AZ<#$I>F6R |
4699 |
M?`0``.82```5`!4`9VQO8F%L+V9O<FUA='1I;F<N8W-S550)``/$8)I!4WG( |
4700 |
M055X!`#H`V0`Q5C?;Z,X$'XN?\5<5B=UJX9DNVT?B/9T6E6].^GNY7;W:74/ |
4701 |
M#CC!BL'(F";MJ?_[C6THV-!"HI4.)0*,YV/FFQ\>\VM.,EH6)*9027X^2Y4J |
4702 |
MHL5BO]^'F7ABG)-0R.UB1Q\S4BHJ%UNBZ([2`B]52B4-61F*G#^&AXK/WJ^" |
4703 |
M8'$!+"^I`B(I*>%B$02A&0@`_L4_P%K(A,HYIQL%[1'!A^(`I>`L@:^II/3N |
4704 |
M2TH2L5]U990HX%@9R;:I>DOF=YS`]21';"V4$METL8S(+<O!.R)8HMA-^]>3 |
4705 |
MG_$?A&MQF%NF-"U6/((KG'9MIUE%[)!YL1Z<HUOF+1OS6'`AR\@QO[ZY(W+7 |
4706 |
M\M$5-)1XHB_FU/=_ZNMA<4O-Z?+:\],57Y-XMY6BRA,K$UFL>T:Y8:0W^)4> |
4707 |
MT"?/R#'^,!PW0F9$*99O=32&B"4>J";/C\A>=&GF[?1:LWM,E)4!MCZLL0R? |
4708 |
M/EHO[H;1?"Q-SFBJ3(.R?O+!>H$]`B8J=4KV#F?5:`(/BXWF\$#>CR9P*],U |
4709 |
MU&35,',G*G^,(O@\"&S<7D!)"R*)$A)DQ2G64@Q?C.=2D3PA,FF?FS(+[?UE |
4710 |
M>_E=2$9S]6F6XL63R!7ALW_`J&=M`TBI5AG5"F]HM@K.SLY>1JYL):H9@@'8 |
4711 |
M!RH5B_N@>Y:HM(O9#'0@M3$J97E.9=>6\YOESU"R)_K>,RO4DR^]^R,,7%IE |
4712 |
MW,';UTQTT4?L=*#KL5O7TCK%)AEJYUX.C$TPMXW6M_/$"]#1<.X0V5C6K%OV |
4713 |
M9<OPNB6A?M!@=Y[UB/8L>XWJ3N69:)BLPWC,KEI7BSQDA6P"R#5BV*M+*$B2 |
4714 |
MX')SJ9<>2-@#TW=`-QL:JU([>Y"`N0ZX_\V5$S)\5,\?[AJ3.5@D<$7O+N-. |
4715 |
M.>1D33F<[YE*:W<9BJWDWS2I8IK`7[8[T_XH14;AVQ]&'"`L,\+YW`HZ-@TU |
4716 |
M=%9AO6#6YY8[PUY8<.)STW1VNA'\B66%D%B_E4M'!+G(:3-6AX_C'#P90[\G |
4717 |
MK"1K3I-/,R4KZN>(:8;`/R+X39)'VQ<9.*,N7B:TC"4K%!-85PV^BU;)TH>+ |
4718 |
M4&A#*JX\TSM0$VF\L:UNTQ5WK3P"03OCUD$(4TJ04Y>8#9;*^9XZ?42$[-L> |
4719 |
MLI'D^"J=;SK>^N*Z5#LZV.E=`!--1R#4\SM<:I1,Y,)LROH(&Y(Q_MA!>)GK |
4720 |
MAR++$\S?`2;=W@W[OX\N?7ICHD.0)HYP'96>&UKGF?<:#K0VR007?AP,@A>< |
4721 |
M/7O"+@=+VF&"'E<ZO:XUTH?FRL'#0G$G*DP<^&PR#D\':K>G`+H/P=Y.[V/M |
4722 |
M2APF9JY^=[U1:-]O=S+(;D>)R.Z>XU1B<<']\Y:+->&+<L?R1<Q)6;+XLY4H |
4723 |
MPT/&W[7P>L]L,8::S-%BZNV-K,R[>W.LWB3?+_R>R?`+CJQQ@XJ;_ISPGA>F |
4724 |
M:>ONY&IGV*.)4^0>4P",$69E]+49)?^'TG_45XG3ODN<_(GAY$\:PX$R,51& |
4725 |
M@F5:H/0AIX2**0,Q,8N**:FO+JQZ%5C6R[*_R#X'_P%02P,$%`````@`'')D |
4726 |
M,1(H5,T.`@``FP,``!,`%0!G;&]B86PO97AP86YD97(N8W-S550)``,H@(I! |
4727 |
M4WG(055X!`#H`V0`?5/!CMHP$+WS%5-.L**A=%6IL"?*JBKJ+B"@77%TG$GB |
4728 |
MRK$M>[)`J_Y[QTE:6+7J(9'LO/?FO9G)^*8'-[`O$:0UA(8"V!RH5`%RI1&$ |
4729 |
M1PAU^@TE`5G^@+!""E(XA$V=:B4C_T%)-`'A*_J@K(%),H%!Q/:[+_WA'9QM |
4730 |
M#94X@[$$-8/_%(D*>)+H")1A'Y732AB)<%14-B4[E00.G89-23!6,-KQ*8\2 |
4731 |
M5T`0!"61FXW'Q^,QJ>QWI;5(K"_&J\W#F-&1L+,Y'6/`3`7R*JT),ZA-AOZ% |
4732 |
M%KN\!G`\8:`_WT6)Y:X/J0@JC.!IN?^T_K*'I_EV.U_M#[#^"//5`3XO5_<C |
4733 |
M0(["NGAR'@/WV$>VBDDQ2V"'^*)D;EL+P:%4N9*@A2EJ42`4]AF]4::(?*^* |
4734 |
MD@<F3`9:58H$<?/#WQ&2+G`<\YI)R@@-"YLUV1[;YO"YJFJCI"`N+MF7(>YN |
4735 |
MAB/PJ%$$S*+$H_"RA-O)"";3Z?MKX:51I%CW'I]16\<.FD7Z1\7?"Q29EZJ- |
4736 |
M]87USOKFD,#&^O96>A2Q]>GYLGP\MY;OSDT;8+`8-IY>\VMZP?VOP%SKJ+%M |
4737 |
MV[C%@/Z9Q]&%6O`/T0S=^D$8SMI;WIU>PE,4L<<?:B)>AQ\]`%G[8/T,G%7\ |
4738 |
M&WEXQ;-E^\+07>]GKY<$).*IA2C*F\N(R'(BR_AV!K?N!.^ZY^T;=XJD7U!+ |
4739 |
M`P04````"``2;'$Q)B8/^@H%```'$```$@`5`&=L;V)A;"]T;V]L8F%R+F-S |
4740 |
M<U54"0`#1)F;05-YR$%5>`0`Z`-D`.U7;4\C-Q#^#+]B&M03T&0WH:UT%\3I |
4741 |
M$`A!RP$B7"E"]\&[.TE<O/;*=DC2BO_>L=>;;%[@**K4+UV$HK5GGGE]QMYX |
4742 |
M=Q-VX6:(D"II45H#J@]VR`WTN4!@&L&,DC\PM6`5;2!<H#4I*Q"N1HG@J=,_ |
4743 |
MYRE*@_`;:L.5A$[4@6TGVP@[C9U]F*H1Y&P*4ED8D?#,B$/`28J%!2[)C[P0 |
4744 |
MG,D48<SMT)L,*!'<!0R56$:RC*0+>NL[B)H@,`M#:XMN'(_'XRA7?W(A6*3T |
4745 |
M(+ZX.H])VBGT5-^.78`9-U;S9&0Q@Y',4"]@D9=U`0J/26@<]AS$6:\!"3/< |
4746 |
M-.'V[.;T\LL-W!Y>7Q]>W-S!Y0D<7MS!KV<7QTU`"H5P<5)H-)1C[;2YBQ2S |
4747 |
M"'J("R;[JG3!%)CR/D]!,#D8L0'"0#VBEEP.G+[F@R$5C,D,!,^Y99:2;U9# |
4748 |
MB$+`KLR7I,0E$W"D,A_;YS(Y])[G(\E39LEX2GY)2]G-L`D:!3*#F8/XS'0Z |
4749 |
MA!\[3>A\^/"^#GPFN>6$>XR/*%1!'OA&6F.Q:B"G.;?J73]2NE#:OT1PI72Y |
4750 |
MFFID+O7)=-Y\5+=2OYCZ-,#VT8[WJ;77;G?F<B\9.!3"85R7:;Q&@_J1RA&" |
4751 |
M.B)"^*(KO6UVNFX)X!>%<(K4F&1PZ'\_R6`JHL[=(:EX<S/>A0/W$&642)B. |
4752 |
M4JKYP1N>32`UZ-FI0.-(XW/P^Y?S"KA%M?&IH1+ECKV1U_A7'A_))\ER-`4C |
4753 |
M-HZTV&X\PZH'G.;,6-3Q@-QY0*3ZQZ[C,>(F4E),H\E(T!3PN>FZIPQ!3<*; |
4754 |
M,U:M_$5!M`B^Q8H"F7:S8":^O_E4PZ"81Y0&>%<EI(86]IK5UKV=%GC0",N- |
4755 |
MK^O-5(C?$3FI_YBT^R26<]D:\\P.N]`I)M7*$%WG=&&O[=8VXMUU@%))7$#; |
4756 |
M2%CZ,-"*:-I*E5"Z6RK=<IFIL=M7F@A,L,4$C!(\(WYIQ./>D-4%:@YYT?"_ |
4757 |
M7SD1I*PJ2C.F&W!.R6OA.;/TOJSJB;6D?,ST0^G(DE>+JHFR5N5OTQ787[9Z |
4758 |
M[CQ94*TYO4'5?@K=0Y5[OGO>5M:"91D-W""R$3R=M/H")UUH_U_X_[KP-`WH |
4759 |
M+I!H-:8![N9,TY\[%9/IQ.'2<#I[V&P>1Y$;$>&-6\SAXTQ^;?^L%/-I>9*1 |
4760 |
M9H9I.%O,\E1CVF!!8.YP=09RINE0A++6[6@/\ZJ/ZB6`LLCU7E@*?R;O<K=& |
4761 |
M?)YHWS10=7'5XS^UO]^OD<=/^M+#JLE\9ZV)MF`"K46?O)5@ZYL.+!UI,^OW |
4762 |
M@6:)AXQ6I1VSPJ`N?6E\;7Y33A,]PSRO*#3/P];[MOMS*5CEW];)R<ER65>- |
4763 |
MW1>"7#EHA)U@JBRA3SP%%@@8%G69W6JU5J,ZNRTU%T6IL9Q&]<H_*_9*!S_" |
4764 |
M\Q7MA(J^+OTKV*^MQTM9Z]8'EYNAWW:GHL\<.`@&X!!=R'C5WS^WWQ3L#/J? |
4765 |
M!KOH4^B&<B;.?`N>EJZ]P=67+,Y;O%M>V-*A5CG2E6T@5,)$;!ZXC(.!N,2* |
4766 |
M!KS?V*$11[=)FGAT[:=.0UVQ/G(/9)H-_)=&IE4!?<3,F0J;ZYE_[W3<]\I! |
4767 |
MPW7^`D-KLYY8V/;/<\T]A_'46,2I'54+0%MC3++J4Z0UOQL\;49E2E+!C)EM |
4768 |
M_`#KEIN+PAG7]!VL-*?+^'J%5QX>&ZMC:OU)3V=XMZ1'92"JGR-K+@1KS%39 |
4769 |
MJ9M8&GI_`U!+`P04````"``=<F0Q??6Q**X$``"/"P``$@`5`&=L;V)A;"]P |
4770 |
M;'5G:6YS+F-S<U54"0`#*8"*05-YR$%5>`0`Z`-D`*U5VVX;-Q!]UU<,7`2P |
4771 |
M76EU"0+4<E/4L1U'L"(;DM/`C]SE2&)*D1N2NKGHOW=([DHK67:#H@O8DLB9 |
4772 |
M,V?.7+9Y"J?^@0_7-[T!]'N7UX/1-7SHWUW>QIL:G,(?:*S0J@N?[_O03MK- |
4773 |
M&_KL)*UF/WYIDY&W>Y@B9%HY5,Z"'H.;"@MC(1&80;#S]!MF#IRF"X3/^DE( |
4774 |
MR>!^GDJ105]DJ"R6L3P<18)C;WI47!Z=G,-:SV'&UJ"T@SG9;V/@*L/<@5#$ |
4775 |
M899+P52&L!1NZK$\3(&2P&.!H5/'R)R10[Z.A#=6P)SWFSJ7=YO-Y7*9S"+A |
4776 |
M1)M)DX1H%DF/]-@M?7Y<6&=$.G?(8:XXFATX8EDUT!16P='%"'JC(TB9%;;N |
4777 |
MT;[V'C[=?7F`KQ?#X<7@X1'N/L+%X!%N>X.K.B!E0[BXR@U:DMB`\)DB3V"$ |
4778 |
M6(WGL<8Z4K`Y9F),&DNF)G,V09CH!1HEU`2,F$RI6$QQD&(F'',DOMWR]SBE |
4779 |
M;I4JWY&?4$S"I>8AMXHXI";?,>XIX0397N$"I<X)N)!Z'Z4L5-D:=V;"E'@* |
4780 |
MG#P@W&L3^64&F9<Q70>'YQ%\02ZIJB$_.+X\@?;9V2^-3JO5*:,\<TK@0DH8 |
4781 |
M1D6&:-$L2-DBD4OJZU`\;8[M2=<?`0QUBL;!+1-D#+_2YU#_'OXGS/U6>%Y( |
4782 |
M1V)3$A1F70^A#P^);\D4?5=7&XB<9][00Q7U]\<W@R]P@PH-97!XA*#C&T22 |
4783 |
M3J88(YK6HY,ZG982>)`^=1)9_!L6S>(>6C_">2P:HN549%/(F(UMF!N]$#;4 |
4784 |
MJBBV7Q5%0X:UX2O$<NK>C*64O%#6(>,>+3AH/X(I]6D"O7&8^J6P4[\\F)1Z |
4785 |
M&69?APL#BX+DCII:R;5'>Z[DCHR[K.IA$OQNV032WM;2[P!&45\.>2!4:&>/ |
4786 |
M*Q2G3%UT]U"<AC)`4`]SE.C\..Y)%P0(E`SFDF5!VUE8:L&4B%*=/)JW"4RK |
4787 |
M[@:_SX79CLE>LAMEN0XI!Q98]L8^#9*&`#.1"^K<T*L_($8)MM&#*5JT"G>D |
4788 |
M.42MF)WX<KH>7!UZ-<%ILU9KGL)[_T`NY[1,;)+18GS_7YX:#33AC-Q:HHU3 |
4789 |
M6.A&^<]=MPA`:YQ)/4FB^?_RA$12S=?P%Z&F+/MS8C3IU\BTU*8+#=JNC8\" |
4790 |
M)3^G^V>'#[AR_F),6Z4+,YIGVO&-5*_.:W_7:EPL?B+Z5M"*)7A'Q@TFQ81> |
4791 |
MY]_FUHGQFGR7@KMI%\Y:;^C'C!E*M"%Q3'#O*B=AF<:C`MAK8@/K*BZM#BIX |
4792 |
M2:EAQ1-V8;5J2(+!S?$2(URJ?5X%H-);R*KSC_B.:<9FVH0T2\I.YUWHX*PT |
4793 |
M2CR\8K,7C#9'J79.S[K0CJ<5*ALBU8R]5J^0DY5H76CEJ_#W-GX&$Q>6X"OE |
4794 |
MOPI=MU__>/I*`QRF692[W0KU)J*&9I5^$R&KI>#TVC:(5Z,IXWJYM6C8G&6T |
4795 |
MIKI;VM-7BO\\DT\DC/3B5/+8G,4L(NC/-'?UFN/^"X^R1`:Q*3U13A7"/:80 |
4796 |
MW/DS3F7>!4BH]TL8D4&]C)LSSD/*;S<I)VZ=HU];B9V/Q\&J$+33>E/:<+19 |
4797 |
M]>K=]@J5+S:OWK;C[3]02P,$%`````@`$@UK,?[-D#4'!0```1```!$`%0!G |
4798 |
M;&]B86PO=&%B8F]X+F-S<U54"0`#9`F305-YR$%5>`0`Z`-D`*U76V_;-A1^ |
4799 |
MCG_%F9^2P)+L)BU6&QD:)!B:+DV"V%T7#'N@I&.9BTP*)!W;#?K?=TC)MF39 |
4800 |
ML=-50!")Y+E]_,[%P7$#CF$P0HBD,"B,!CD$,^(:ACQ%8`I!3\)_,3)@)&T@ |
4801 |
MW*#1$<L0[B9ARB,K?\TC%!KA3U2:2P$=OP.']FRSV&D>]6`N)S!F<Q#2P(0. |
4802 |
M+XU8#3B+,#/`!?DQSE+.1(0PY6;D3!9:?'@H=,C0,#K+Z'1&7T.KHG00F(&1 |
4803 |
M,5DW"*;3J3^6WWB:,E^J)+BYNP[HM!7HRZ&9V@!CKHWBX<1@#!,1HZKH(B_+ |
4804 |
M!R@\)J!YWK<JKOI-")GFN@5?KP8?;[\,X.OY_?WYS>`!;G^'\YL'^./JYK(% |
4805 |
M2*&07IQE"C5AK*PTMY%B[$,?L6)R*',7=(81'_((4B:2"4L0$OF$2G"16'G% |
4806 |
MDQ%=&!,QI'S,#3,$OJZ'X!<!VVN^)2$N6`H7,G:Q?<[!H>_Q>")XQ`P9C\@O |
4807 |
M80C=&%N@,$6F,;8J/C,5C>"DTX+.^_>_EA5?"6XXZ;W$)TQE1AXX(FVPN""0 |
4808 |
ME5Q9=:Y?2)5)Y3Y\N),J7XT4,@M].%^1C^XME\_F#@8XO#AR/GEOVNW.ZMQ+ |
4809 |
M!L[3U.JXSV&\1XWJB:ZC".J"$L)=NE2'^JAKEP`^282/2,0D@R/W_X,H3/G$ |
4810 |
MW",Z%30:P3&<V0<,"T,Y\R.Z\K/7/@T@&>B;>8K:)HR+_Z\OUU:I1W?B(*&K |
4811 |
M&=NL]=WIG_*X"#X(-D:=,<K"B4H/FUNRZ1'G8Z8-JB`A=QX1Z=X#RW3TN?:E |
4812 |
M2.?^;))2]CM,NO:Q[NOBU5KR[;>7XM"TBO?\/I\IHE`JHK(72F/DN`MOLAEH |
4813 |
MF?*X1WL>^>%5#GB13*727:*C0KS\2&I2IRK_OK;O_1&+Y;37^%YU*&,"T[)7 |
4814 |
MJ[7GQL$WCU-*S;K@=9:6698A4[9,E13T8.6TBZ(+G;+/:_%LVK-`5'8.@N.U |
4815 |
M:)WFM6`OF7K,8RL6%H'N`=2>LM:SUT!\0#CN=OQ'G?XQA_>0,C+;3RAC<4R% |
4816 |
MF"Z+>.END$6/B9)4?G,%W5SO)55%F=@#]=4!SDR-C%4:0N-Y"^>LRC%35%RM |
4817 |
MTRX]2D1:+-485A!STU9.OLH..;:-M>LDZ$'MQNM@ODB9G\;SUW)US3"+^41; |
4818 |
MYY>`;#^R@G/+F1RW53FH<.<M@6G_3NCOW?^DD:T4!RMIX@AQA6JXLJW<5?%H |
4819 |
MI.08J8XGJ0Q9&NA'+@).DY\.;.6E=I<5[OJ92)I'U/J)<<:;0;X*-$Y0L8=? |
4820 |
M:'*AYLR$R=/\().:VY[:!=>8^!,Z5MMZ[AERSE7SG*M=:%?DOSN6_ZVIDT74 |
4821 |
MT<Z:1DVP^8^MNV5RM\E2@=J2B:<6L%5U/NEM=F2A9R'FN4LH[(9(PQ9NL+XY |
4822 |
MYW)F89Q@/:.$%+B3)^VE938D*/<WG&?#FN6<GR\;SL^L[`ZYTL:CMX7-C=B[ |
4823 |
MKK,`O/#];86\A7&W:$FP5L4*N/,%]Y`H?<'`]G\SHA'=SM[,&!:-:)(I?ET4 |
4824 |
M4C0[,G!-M04T@KD?#0(CFIV9XNF\4,56K=?/E\I3Q<*#Y[4ZV2X5SM)HL5X[ |
4825 |
M7^K<6R>1;=WC]3WM%?6IO0_K=M>F726L4@R7%<Q"08GHX#HM$JN$_B9RU="O |
4826 |
MN5>&<:WZ+0V?YB73&7ZWP?"NS'X!B79-V8YDW0Y7N];>=24S2C-PL?P;U$?B |
4827 |
MM:W:A%PE;(UY:^S-ZP6Y!=#X#U!+`P0*```````=<F0Q```````````````` |
4828 |
M#0`5`&=L;V)A;"]A<G)O=R]55`D``RJ`BD$)9<U!57@$`.@#9`!02P,$%``` |
4829 |
M``@`'7)D,3OH[)(J````+P```!X`%0!G;&]B86PO87)R;W<O87)R;W<M;&9T |
4830 |
M+6AO=BYG:6955`D``RF`BD%3><A!57@$`.@#9`!S]W2SL$QD9F!E:&!D`(+_ |
4831 |
M__\K_F0!,AD9=$!\D`P#$YM/P8(5;*P,U@!02P,$%`````@`'7)D,8\A8O<I |
4832 |
M````+@```!X`%0!G;&]B86PO87)R;W<O87)R;W<M<FET+6AO=BYG:6955`D` |
4833 |
M`RF`BD%3><A!57@$`.@#9`!S]W2SL$QD9F!E:&!D`(+___\K_F0!,AD9=$!\ |
4834 |
MD`P#$ZL+T[3N<`9K`%!+`P04````"``=<F0Q16`+_C0````X````)``5`&=L |
4835 |
M;V)A;"]A<G)O=R]A<G)O=RUR:70M<VAA<G`M96YD+F=I9E54"0`#*8"*05-Y |
4836 |
MR$%5>`0`Z`-D`'/W=+.P3&1GX&1H8&0`@O___RO^9`$R&1ET0'R0#`,3OTO= |
4837 |
M`HE=+WVZVPZ9JZ:L96"P!@!02P,$%`````@`'7)D,;]7;'@I````+@```!D` |
4838 |
M%0!G;&]B86PO87)R;W<O87)R;W<M9&XN9VEF550)``,I@(I!4WG(055X!`#H |
4839 |
M`V0`<_=TL[!,9&5@9FA@9`""____*_YD`3(9&71`?)`,`Q-KBZPX=S2#-0!0 |
4840 |
M2P,$%`````@`'7)D,3VB(L_9````W@```"D`%0!G;&]B86PO87)R;W<O87)R |
4841 |
M;W=S+61R;W!D;W=N+61I<V%B;&5D+G!N9U54"0`#*8"*05-YR$%5>`0`Z`-D |
4842 |
M`.L,\'/GY9+B8F!@X/7T<`D"TGQ`+,3!!B2S8]X;`BFV)&]W%X;_(+A@[_+) |
4843 |
M0!'.`H_(8@8&_@X&!H$YC/HRT^8!!=E+/'U=V:]P\/*SL+RW45P*,L#3Q3&D |
4844 |
MXM;1R=Y<#08\+O%.^8__5K'O_;)CHU)K71`K<V3)J<4O51AOJ`CZIALN<S`^ |
4845 |
MG;C!P?3-Q.GSTONGA+^V#9\]T2V^YNFKY0E=LY@57GZXE^I\G['4>^U#[EV^ |
4846 |
MTGR6$^3G:MSZ4I91:OWFOMV\FLF[N)\\T`;Y@,'3U<]EG5-"$P!02P,$%``` |
4847 |
M``@`'7)D,5XT[M8P````-0```"``%0!G;&]B86PO87)R;W<O87)R;W<M;&9T |
4848 |
M+7-H87)P+F=I9E54"0`#*8"*05-YR$%5>`0`Z`-D`'/W=+.P3&1EX&1H8&0` |
4849 |
M@O___RO^9`$R&1ET0'R0#`,33P\S>^=M[EB3`,,H!@9K`%!+`P04````"``= |
4850 |
M<F0Q\GE>/3`````T````'P`5`&=L;V)A;"]A<G)O=R]A<G)O=RUU<"US:&%R |
4851 |
M<"YG:6955`D``RF`BD%3><A!57@$`.@#9`!S]W2SL$SD9&!E:&!D`(+___\K |
4852 |
M_F0!,AD9=$!\D`P#$W</\_(#77=XYN0?8F*P!@!02P,$%`````@`'7)D,3!_ |
4853 |
MVT0M````+@```!T`%0!G;&]B86PO87)R;W<O87)R;W<M9&XM9&ES+F=I9E54 |
4854 |
M"0`#*8"*05-YR$%5>`0`Z`-D`'/W=+.P3&1E8&9H8&2HKZ____^_XD\61@8& |
4855 |
M1@8=!B``R3`PL;;(BG-',U@#`%!+`P04````"``=<F0QCR%B]RD````N```` |
4856 |
M&@`5`&=L;V)A;"]A<G)O=R]A<G)O=RUR:70N9VEF550)``,I@(I!4WG(055X |
4857 |
M!`#H`V0`<_=TL[!,9&9@96A@9`""____*_YD`3(9&71`?)`,`Q.K"].T[G`& |
4858 |
M:P!02P,$%`````@`'7)D,0B2B%LI````+@```!D`%0!G;&]B86PO87)R;W<O |
4859 |
M87)R;W<M=7`N9VEF550)``,I@(I!4WG(055X!`#H`V0`<_=TL[!,9&5@9FA@ |
4860 |
M9`""____*_YD`3(9&71`?)`,`Q.K3P+[CE@&:P!02P,$%`````@`'7)D,3OH |
4861 |
M[)(J````+P```!H`%0!G;&]B86PO87)R;W<O87)R;W<M;&9T+F=I9E54"0`# |
4862 |
M*8"*05-YR$%5>`0`Z`-D`'/W=+.P3&1F8&5H8&0`@O___RO^9`$R&1ET0'R0 |
4863 |
M#`,3FT_!@A5LK`S6`%!+`P04````"``=<F0QHL'7[RX````O````'@`5`&=L |
4864 |
M;V)A;"]A<G)O=R]A<G)O=RUL9G0M9&ES+F=I9E54"0`#*8"*05-YR$%5>`0` |
4865 |
MZ`-D`'/W=+.P3&1F8&5H8&2HKZ____^_XD\61@8&1@8=!B``R3`PL?D4+%C! |
4866 |
MQLI@#0!02P,$%`````@`'7)D,0`)U<LM````+@```!X`%0!G;&]B86PO87)R |
4867 |
M;W<O87)R;W<M<FET+61I<RYG:6955`D``RF`BD%3><A!57@$`.@#9`!S]W2S |
4868 |
ML$QD9F!E:&!DJ*^O____O^)/%D8&!D8&'08@`,DP,+&Z,$WK#F>P!@!02P,$ |
4869 |
M%`````@`'7)D,0B2B%LI````+@```!T`%0!G;&]B86PO87)R;W<O87)R;W<M |
4870 |
M=7`M:&]V+F=I9E54"0`#*8"*05-YR$%5>`0`Z`-D`'/W=+.P3&1E8&9H8&0` |
4871 |
M@O___RO^9`$R&1ET0'R0#`,3JT\"^XY8!FL`4$L#!!0````(`!UR9#&$@D4. |
4872 |
M*P```#,````?`!4`9VQO8F%L+V%R<F]W+V%R<F]W+61N+7-H87)P+F=I9E54 |
4873 |
M"0`#*8"*05-YR$%5>`0`Z`-D`'/W=+.P3.1D8&5H8&2``,6?+$`F(X,.B`.2 |
4874 |
M86#B:JEOE.SBE<Q)$&.P!@!02P,$%`````@`'7)D,0S8;-FF````J@```!L` |
4875 |
M%0!G;&]B86PO87)R;W<O87)R;W<M9&]W;BYP;F=55`D``RF`BD%3><A!57@$ |
4876 |
M`.@#9`#K#/!SY^62XF)@8.#U]'`)`M*L0,S"P08DW8R_.H`XZ8Z^C@P,UVY< |
4877 |
M\8\P`O(E2UPC2H+STTK*$XM2&1Q3\I-2%3QS$]-3@U(34RH+3Z;:`!79>+HX |
4878 |
MAE3<2DI(2+C!<>3_Q`]9#0Q,26R9"O]X1"NXCRQB8#SRX;]]Q]D)S*(\[!\9 |
4879 |
MF3C43O`<N:I@QL',(L&@6B@QZ\JRXNE`<Q@\7?U<UCDE-`$`4$L#!!0````( |
4880 |
M`!UR9#&'NC]G+0```"X````=`!4`9VQO8F%L+V%R<F]W+V%R<F]W+75P+61I |
4881 |
M<RYG:6955`D``RF`BD%3><A!57@$`.@#9`!S]W2SL$QD96!F:&!DJ*^O____ |
4882 |
MO^)/%D8&!D8&'08@`,DP,+'Z)+#OB&6P!@!02P,$%`````@`'7)D,5U-MI3, |
4883 |
M````U````"``%0!G;&]B86PO87)R;W<O87)R;W=S+61R;W!D;W=N+G!N9U54 |
4884 |
M"0`#*8"*05-YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"TGQ`+,3!!B2S |
4885 |
M8]X;`BFV)&]W%X;_(+A@[_+)0!'.`H_(8@8&;F$09F28-4<"*,A>XNGKRGZ% |
4886 |
M@U=86'2J\?VK0*%$3Q?'D(I;R2D)"1W_O[V][<0FQ"`N+LXLS#RSH=-#^M_D |
4887 |
M-8++.&.-A37-%#_/]"B4VV3!K==[?U]MLLR.@*6KW,2"F-FY)&9Z\,K,L(A; |
4888 |
MOBC;[9GP%V4?PUV*+JQ\9NG\"RM8&!3D5-S79:_C!%K&X.GJY[+.*:$)`%!+ |
4889 |
M`P04````"``=<F0Q!I7`'S`````U````(``5`&=L;V)A;"]A<G)O=R]A<G)O |
4890 |
M=RUR:70M<VAA<G`N9VEF550)``,J@(I!4WG(055X!`#H`V0`<_=TL[!,9&7@ |
4891 |
M9&A@9`""____*_YD`3(9&71`?)`,`Q./BUS"\MO?DH)R5$6X&*P!4$L#!!0` |
4892 |
M```(`!UR9#&_5VQX*0```"X````=`!4`9VQO8F%L+V%R<F]W+V%R<F]W+61N |
4893 |
M+6AO=BYG:6955`D``RJ`BD%3><A!57@$`.@#9`!S]W2SL$QD96!F:&!D`(+_ |
4894 |
M__\K_F0!,AD9=$!\D`P#$VN+K#AW-(,U`%!+`P04````"``=<F0Q.48[+S0` |
4895 |
M```X````)``5`&=L;V)A;"]A<G)O=R]A<G)O=RUL9G0M<VAA<G`M96YD+F=I |
4896 |
M9E54"0`#*H"*05-YR$%5>`0`Z`-D`'/W=+.P3&1GX&1H8&0`@O___RO^9`$R |
4897 |
M&1ET0'R0#`,3OTM=P@KIO0LF"FYJFW=J/0.#-0!02P,$"@``````>YEE,0`` |
4898 |
M``````````````T`%0!G;&]B86PO:6-O;G,O550)``/)%HQ!"F7-055X!`#H |
4899 |
M`V0`4$L#!`H``````"!R9#$````````````````2`!4`9VQO8F%L+VEC;VYS |
4900 |
M+VUE;G4O550)``,K@(I!"67-055X!`#H`V0`4$L#!`H``````!UR9#$&@)M; |
4901 |
M[`$``.P!```:`!4`9VQO8F%L+VEC;VYS+VUE;G4O961I="YP;F=55`D``RJ` |
4902 |
MBD%3><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S |
4903 |
M_V$````&8DM'1`#_`/\`_Z"]IY,```&A241!5'C:C9-!:Q-1%(4_I2!VX2(0 |
4904 |
M!)<ES[T;AU(4NG73_R&X$?27N-)%D50(ZB9(<1-(0DPA$A`*@80I&@UYPTP7 |
4905 |
M9A*HAM?WK@N982:3:"^<Q<"<[Q[.G8&_LP/(%72'#2/.N;6RULIX/)9VNYU` |
4906 |
M=C8"XCA>JTZG(\88J=5JA237,@`6BP6^[Z=4I10`C4:#7J]'$`1,)A-:K5;R |
4907 |
MRD$!4(@FPGP^IUJM<G+RB>/CCYA@CU]?2MQZ]*&88#0:Y0!**7S?1T3P/(_+ |
4908 |
M\P>8SS=X?!A='+X_W<X!XCC.;<Y.J53B,MS#]+=Y]O8G+U[W`>YM90TBDG:0 |
4909 |
M;`;P/(_EMUU^]V[R]-V2E]4^P%W`3Q-8:YG-9KG-(D*Y7.;B]#[+'[=Y\NHK |
4910 |
M1_5![@#7LS&=<PR'PU366@"^GSWD^9L)1_5!]@+YLJVU$D611%$D81A*&(8" |
4911 |
MR,%^.?T2@R"09K.9/+,Q@;4VO4:]>8[6&JTUSKE"N5NK-U=*(2)4*A6TUFFY |
4912 |
MB?&_@-425TW.N?6`;K>+,>:?9H#I=`HP6"UQ_XJ_<Z+=Q/@'6MAFJRXP]C,` |
4913 |
M````245.1*Y"8()02P,$%`````@`'7)D,2<@@-.&`0``G@$``"0`%0!G;&]B |
4914 |
M86PO:6-O;G,O;65N=2]C;V]K:64M<V5S<VEO;BYP;F=55`D``RJ`BD%3><A! |
4915 |
M57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M("(,S!!B3E/_]/!%)L2=[N+@S_ |
4916 |
M07#!WN63@2*<!1Z1Q0P,W,(@S,@P:XX$4)"]Q-/7E?T*,S>;CG5D[O<"H%!/ |
4917 |
MB6M$B7-^;FYJ7@F#;VI>J6YQ9E5JBD)F<GX>ERT<<'%I)&LJ&!D8&"MX)6:7 |
4918 |
M)BFH9V7FYB8FJRL$EZ1FYJ46Z2AP9924%%CIZT,D]')+BS.3,Q)S<O22J[BX |
4919 |
MDHM2$TN`QI9GEF0HE&2D*KA[^@;HP+24EY?KI6?F%NCE%Z6G=QUW![IKLJ>+ |
4920 |
M8TC%K;T3%_(V&`BXRK>*'D@XD"30<\AM3=!9-5.?AB06GF4SA'T]N55;@J=_ |
4921 |
MN??ZKUC="JNR&?</R%Y@8-_`?$U>0^D#QY<#3#D+%TY(8(I*8'UVY8R4@9+G |
4922 |
MNL"B6<L;/OT*^N7H<DTP:Z=#JPO7BI32QYPQ$ZN$?;L?7-WMP_1:Y$15P:>S |
4923 |
M>>\TYMS-$9B]LT:9/^7^=<Z3@BKW'K?I&0"=Q^#IZN>RSBFA"0!02P,$"@`` |
4924 |
M````'7)D,43U+^0*`P``"@,``!D`%0!G;&]B86PO:6-O;G,O;65N=2]D96PN |
4925 |
M<&YG550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
4926 |
M```0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3```"OTE$051XVFV33T]3 |
4927 |
M61R&G]M[[^%2^L<[4*A%P7]L@!#'8&+4H<80-[I0QV22,>XT;MR8S`<88US- |
4928 |
M>KX`&5=*0B8S)!HCH%$GT6`@-+%B*:U4@6E+:6^+W-O;X\96%-[-[R3G]S[) |
4929 |
M>_(>A2T20IC`<<,P_AD<',0P#"S+(I_/,S<WAQ`B"KRW;3O)]Q)"'`<D(._< |
4930 |
MOBD+N3>RN+XB\[DE^>+Y0_GSQ3.R?B^$.%OW*5_,0UZO=^KOL3^1$AX\?,+T |
4931 |
M=)SD8H9@H)D+YX?9O;L=5?7@\7BX?.4WA!`';-M.>@!Z>GJFGD[=)Q+I9O_^ |
4932 |
M7J)#)]C3V<D/IHEHTGD[G\*V'=K:3`)!'W^-_(%MVPL`&D`L%B/4VH'/WTX- |
4933 |
MAQ^/'*._[S"%0I;\V@K9;`[3W(40!L5B@5ALOA%=JQ]&[HYP_>H5O"T=-&FM |
4934 |
MR(!":RC"OJK-QD:)8JG(Q./'/'_QDG*YT@"H]>GW^Z*SLW&65U8)AYMQ-BV* |
4935 |
MQ3P?EDN,C8TR.3E!,IEF82'-NW<ILMFUV\"$4B=U=W?*4"A$1ZB-O5U=&(:& |
4936 |
M4ZVA*INL_I\GE?[`0F()55/0-954^J/R3826%H,;-ZXQ.GJ/Z=?36%8%7==8 |
4937 |
M7'Q/M5I%US4&!OJH5$H4"M:V"+2WM_Y^*OH30T.G<>Q/7+IT#E^+CI0NP\,G |
4938 |
M<5V'@8%^UM?7*)<WR.4*MP`\C4(H"D:SEP,'#Q'I#'-T\"1MH3#AC@B]O?V8 |
4939 |
M9H!@T(=I!E#5ANTK8"M(4STT&8)#![O0A8K?[T-5511%V=;@!D!*R<S,++5: |
4940 |
MC9JLM_9;22FQK`I2[@"H5EV>/?N/\?%_F9F)X;IN8\FRU@'(9)996EK%<9SM |
4941 |
MCU@J55ZETYE?'SV:9%?0C^*ID$BDB<<30(UX/$$FLTHL-D^Y_"GJNFZ*G22$ |
4942 |
M^$4((0$9#`:EKNL[_L*Z/@/G^",\*$@%_@````!)14Y$KD)@@E!+`P0*```` |
4943 |
M```=<F0QJ!`%,0$"```!`@``&@`5`&=L;V)A;"]I8V]N<R]M96YU+W5N9&\N |
4944 |
M<&YG550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
4945 |
M```0"`8````?\_]A````!&=!34$``+&/"_QA!0````9B2T=$`/\`_P#_H+VG |
4946 |
MDP````EP2%ES```+AP``"X<!DT"'4P````=T24U%!](!!PH*$-E:>[4```%^ |
4947 |
M241!5'C:G9-/*,-A',8_/]RL2:*$E#E(8@=7D5PH40X[($JD(:X4*:*4(K:# |
4948 |
M7)2+(BU_DAR$PG"81"GY]_-WV88Q\^]UX6?-V.:IM][W\#SO\WUZOO`[!`$@ |
4949 |
MY"^R_6R>_T"X[@]%T`ZT6BV`<#]>XSH=\70B@"$@W]\(POT@\W!D!,`I3^"R |
4950 |
M;6*7EQCL::P&9H$.;P'IFWS.TZ6)-_>53ZNG^Q8RBB<!.HU=1:WZ%I,B(.[L |
4951 |
M,L(V]2OY"]OF-7(JYSP_)@R0U)'Q8GFL";5UV"<Q0I.#.C&36$T:,`>@'QW0 |
4952 |
M&<L:QI0,I"Q=']:("I\"MP>+7*P.$QVEPC20#6!(28[Y$:*45V[@)K(*@(QZ |
4953 |
MIW)6]UYX=3FX/383EYP.0%)BE,\B2;FE_5C#2SQ#KJLUN+FPO?/LD!6BWS)Y |
4954 |
M%4D/",N@2MAVVP4@%L=K_JRRY/4V`H0FY#&SL`O0O6(^#*K>A8`XV6C^<I8: |
4955 |
M]'ZL3]>)WK:"@'?$&UI@!]CZO"OX`)MXD^)BM.8?`````$E%3D2N0F""4$L# |
4956 |
M!`H``````!UR9#%.0<_PB@(``(H"```B`!4`9VQO8F%L+VEC;VYS+VUE;G4O |
4957 |
M9&5L+61I<V%B;&5D+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<-"AH* |
4958 |
M````#4E(1%(````0````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP`` |
4959 |
M``EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0+`Q4'(]?5[$@```(7241! |
4960 |
M5'C:==--:%1G&(;A*W/F]WPSDTG4.LDX1C%2I0B"4"C%WTHV50S1*''AS\)$ |
4961 |
M4PI*LPG9V*Y<":UN%10$72FM*XN"N'%3NRJM1E`AJ.`BX")15(Z;(XS)]%E_ |
4962 |
M]_/=\+YOY/-T805F\`07,(_?$=(WK_'F$Y!I@;_!.*;QW=I5\DF2#'55?<#7 |
4963 |
MI9)!;,$L^A<6;,:WJYMB-*I5D]-/S6<R'?=G7RO4.IV?GW=D^1>:6)]^4FM5 |
4964 |
M'VWVFD!H]#B.E86<VSB4SWN$[Y<M<1%]C8:S6(>DM2!!OKML>&YN3GV9PR@T |
4965 |
MZWY"3V^/7]%8T>LT^FI5?V"JM6"JN\M59%;6[4N29'A)S5"2)*=ZESJ`J%XW |
4966 |
MC@TAN(O!A0:_8"@4W<17_:O]@'Q?TSAJE8K+V%8.[N!@-O(<6S^;7R;C%8[F |
4967 |
MLO["0+'@)G96R_[$8"YG&B>CR"Q^U"9C<>PW#$>1QQB+(L\PT='A+29R.?_B |
4968 |
M:!1YN8B.(C/X,H[]C!W5JG/87BCX#P/YO,<8*!0\Q(EV!J.EDC,((;B,2@BN |
4969 |
M8$\(+F!_'+N!O=FLYXOH;-8,UL2Q46RJ5!Q#?['H'M:72O[&ECCV`&-M#8I% |
4970 |
MUU`.P27$W=W.8G>Y[!R&4X.1*&IO\`(CQ:*+V-79Z7B+P<;48'<*C[<SZ,<[ |
4971 |
M3.9R_L&F<MEUC(3@%HZD4YE*;^=_LQ^3Z:9-X'T*):U7^"D?`0U2=7=N@B'> |
4972 |
M`````$E%3D2N0F""4$L#!`H``````!UR9#%['19()P(``"<"```>`!4`9VQO |
4973 |
M8F%L+VEC;VYS+VUE;G4O;6%X:6UI>F4N<&YG550)``,J@(I!4WG(055X!`#H |
4974 |
M`V0`B5!.1PT*&@H````-24A$4@````\````0"`8```#)5B4$````!F)+1T0` |
4975 |
M_P#_`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@+#P4+ |
4976 |
M0_-2J0```;1)1$%4>-J=DSW+&D$41L_>6;^;+;*VZ=.);0JM`C;6KJ"-O-@' |
4977 |
MJ_R`U"$V8F45_0-*6JT4`H*@C<5N924K:K%^L)O"N+C1)KDPS'#GGCO//,P` |
4978 |
M!*9I!L`_#PT(KM<KN]V.>VB:AJ9I+]<`Z_6:?#Z/#G`\'MEL-I%BI13]?A_+ |
4979 |
MLE!*1?*>YP'<X,?P?1]-TVBWV]BVC6$8E$HE1`1=UR,*]$>ION]S/I\Y'H^4 |
4980 |
MRV644BBE<%T7PS#0=3U4$<*/]SH<#A2+Q;\%,9O-R&:SB$A8*X\G=SH=3J<3 |
4981 |
M`#\GOWC[\HWZYZ\`>)['<#@,P0@\&`P8C4;AQNE\X7*Y<#Y?PERWVZ77ZSW+ |
4982 |
MMBP+UW41N?7[]#''A_?OF,_G_/@.2BFJU2JU6@W'<9YE-YO-$%XNERP6"_;[ |
4983 |
M/7"#*Y5*Q)^(VR)")I,!()?+10Q+I5(A^-)M$<$P#*;3*9[G(2+$8C'2Z32& |
4984 |
M82`BK]T6$>+Q.,EDDFPVRW@\IM5J,9E,,$V31"*!KNL$01"JT1\EW[N*"(U& |
4985 |
M@W@\3KU>C^2?7ICC.&RWV[#@/A<*!6S;#AO?P=5J=5O_^5[_%;\!<1.72M]X |
4986 |
M/O4`````245.1*Y"8()02P,$"@``````'7)D,3*(M:WP`0``\`$``!D`%0!G |
4987 |
M;&]B86PO:6-O;G,O;65N=2]C=70N<&YG550)``,J@(I!4WG(055X!`#H`V0` |
4988 |
MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!&=!34$``+&/ |
4989 |
M"_QA!0````9B2T=$`(,`I@!_$DH\0@````EP2%ES```+$0``"Q$!?V1?D0`` |
4990 |
M``=T24U%!]("`0@!%2N+IY,```%M241!5'C:I9.]2\-0%,5_$;%+QS;$2@1W |
4991 |
MI_8O4.?246J+B[M0_P01K`A.XB!T4$$704T[*'[A!PBBHDXM5`2?2@AUJC;: |
4992 |
M)2ZI)&EB!=_R'N?<=]Z]Y]TK&;K@/ZO+"\B*:OD%!N%=GJ"DO1,@DNR4@58I |
4993 |
MWP-8WM?O;LX`-*]X6PFAGA!^69B-CS]YL%NKO7%V>O"3A:RHUHMXH%RI`NQT |
4994 |
M$EB:GLD3C41=68BG*J72'D#A5P%#%T5-TPB'PQ26%P&LVZL3S,8GFUM%,NG1 |
4995 |
MHE>@VPL8NI!D1;4NSO<!:'XU&<U,O(JGQSZU?P!OWTA^C20K:A;(R;(<-\W& |
4996 |
M<[W^/AN+]2[=WERVNVCHHJ6:M(VS@&M@Q0Y9`+8=7+9UQ]"%RP,MD8BGIG*3 |
4997 |
M@T`<V+3Q8R#EX-9\2Y`5U3)TH=AG'9`<<2[.T(7D:V)^;CX2-#2!G,.#K*-. |
4998 |
M;\^[.*<'KE\X/#HF/38.P,;Z*B/#0QW'^1N]-*6FJLE#O0````!)14Y$KD)@ |
4999 |
M@E!+`P0*```````=<F0QT"4%VE,"``!3`@``&@`5`&=L;V)A;"]I8V]N<R]M |
5000 |
M96YU+W-A=F4N<&YG550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````- |
5001 |
M24A$4@```!`````0"`8````?\_]A````!&=!34$``+&/"_QA!0````9B2T=$ |
5002 |
M`/\`_P#_H+VGDP````EP2%ES```+$@``"Q(!TMU^_`````=T24U%!](!!14Q |
5003 |
M'28JQ/8```'0241!5'C:G9-/:Q-!&(>?W?PQ2WJ(:>PV)$N+EXCF[+F"T*LB |
5004 |
M.7@5//D1Q&_@30H>O(L'KXH@-12M$(L@+<5@H+7$)"0A2]S5W<UD=CQ$8I(F |
5005 |
M.?B#.0S#\_#C95Z`;4#]YREI@/+\`4<_^LB7.QBQ*'.CC1!=U^G>O`?`C6OK |
5006 |
M1`'JML?>P2%798CJU$&I&5H!&IJN$4NE^7QTS,?R+L!(X`9#`#9OW:50*+`L |
5007 |
M0@A>/W^+$,$_P62JU>I"6"E%+I=##@(&0SE?,-L@#$-\W\?SO+G2I0VDE/3[ |
5008 |
M_:GW8K&X6&":)JE4"@#7=0F"`-,TIP`IY6)!^<L)>3.-#`3^<#BW\EFGMUAP |
5009 |
MTN[SK6GSV_V)/@-*I5"A(AK1%PN44FPD-:R-46W#,+`LBVZWRX?]?9Z\>,/M |
5010 |
MK>MHF<MC9DKG^SY6)@'`G0>/N/_P,9U.AUZOAY7/4V\V^-IT64OJYP6!$,C! |
5011 |
MZ',D$@G65B]2*%S!MFT`XO$XH0C0(SKQB=XZP+.G.U-P-IO%<7X1,RZ,)^\X |
5012 |
M#D1CYVI'@.-/[]^5UC,9SAHM5HT1L'EIA>Q*E%JM1J52H=UNTVK8".&13AJ\ |
5013 |
MVBWCM$['HM+?C3D$:DO6]Q3X/G'?_@/R;=JP6\9@I@````!)14Y$KD)@@E!+ |
5014 |
M`P0*```````=<F0QF9!B9",#```C`P``'@`5`&=L;V)A;"]I8V]N<R]M96YU |
5015 |
M+WIO;VU?9FET+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<-"AH*```` |
5016 |
M#4E(1%(````0````$`@&````'_/_80````9B2T=$````````^4.[?P````EP |
5017 |
M2%ES```+$P``"Q,!`)J<&`````=T24U%!]0("A,G*9RA:!P```*P241!5'C: |
5018 |
ME=)=2%-A',?Q;[K<='-+TK66C#3/9KG5E1)12(%(TD425`1=]*)22=T%!=[T |
5019 |
M=AN!X%UU$P@9O5!H%):QHC0+PYHS[$S=\F6-TIWELW.&3S<&2[SI=_7G@?^' |
5020 |
M/P^_5?P;+U`/U`*5P`P0!/J`7E;(JJSY('!14<JW!0)^3"837J]"-#I)5]?# |
5021 |
MA*:EVH'KP-Q*T$&3*5>>/7M:#@\/RF0R+J>G5:FJ(3DR\D$.#O;)NKK=,B<G |
5022 |
MIWOY8BZP!6AO;3WE]/NK&!^?X.W;=P0"`9X_?TDP&.3SYQ$:&_<1B\4JQL>C |
5023 |
MPT#H+Y`#U"M*>55S\PD6%Q>)Q68H*'!@L>1C-N<AA$XH-$IQ\5J.'CV$U9K? |
5024 |
M!-BS@3J_OPJ/QT,JE<+MWD!+RW$,PV#GSAW4U-203NL((7"YG)26NKU+GPV` |
5025 |
M"=BX:5,YFI;DR)'#6"SY_/@1)YF<QS!T%*6,MK;S)!()['8')27%SG!XS)E] |
5026 |
M0=SE*D&(!7IZGM'=W8,0"QB&CF$81"(JG9U=9#(Z;K>'7[_FTD`Z&WCUY4N8 |
5027 |
M=%H0B8PQ-#3$P,`@NIY&5<<(A48)A[^2F[L:3=,08B$*1+.!OGOW'OP48H%, |
5028 |
M)L/HZ%=NWKS-[]\I>GO[>/'B%;HNL-FL]/</\'UJ]B,065ZD:PT-=1?.G&G! |
5029 |
MX;`A1!I=-S`,';/9C,-1Q-R<QJ7+5WCSNO\6<!&8_ML#@$^J.E$6C\]N\?DJ |
5030 |
MD%)BM5IQ.M=ALZWAFZIR]<HU&O=LI[)P/C`9351J&3I7:N2!@@++4T4I4YN; |
5031 |
M3VI-3<>FMF[='+3;"V\`[2WU/GWV?9?L:*V5+@L/`==*B`.H!AJ`78![Z=U5 |
5032 |
MDL>#CM9:.=5_5Y[;Y].+\GG"_\9MX='Y_3XC^OJ.K/:7S?\W8,W#Y2[D\=[M |
5033 |
M7E'A67__#Z`C)W<ZK%[E`````$E%3D2N0F""4$L#!`H``````!UR9#'GN`@` |
5034 |
M,P(``#,"```;`!4`9VQO8F%L+VEC;VYS+VUE;G4O<&%S=&4N<&YG550)``,J |
5035 |
M@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`````0"`8````? |
5036 |
M\_]A````!&=!34$``+&/"_QA!0````9B2T=$`/\`_P#_H+VGDP````EP2%ES |
5037 |
M```+$0``"Q$!?V1?D0````=T24U%!]("!A,N(@R.3MD```&P241!5'C:E9._ |
5038 |
M2UM1%,<_+SZ1"H]`05Y,4T<A$#+D/ZBF#QTL9HBZ^`8I2.9V,@V(2S%#IFX. |
5039 |
MW200$M`QBT.F0OL$"18*530:'HT$E38O/R2W@WWY45^;^(4SG'OO.7SN]YXK |
5040 |
MX:SO@`MP`T\9H&5`]$8JE1*E4DG$8C'Q]]Z?\QU)@+BY/J/5^(GD&N'%3(3% |
5041 |
MQ05.3\^I61:&<<C*TBNFGC_CU^TE;S<^V'4`R`!-ZY;C+_N\27PD$=\@')X! |
5042 |
MX."@P*2JDLWFB*W-4[VJ/L"7`227"X#7JR]))M\3C[]C?'R,6JV!HCQA;C:$ |
5043 |
M.N&F\N-A`PD0%;/(\><]`%1?D,VM).E<@2&T(@.TVVT`OGZ[`""=*R"$&%@M |
5044 |
M25):[EWP3_M0?<%.GL_G,4T3C\>#IFED,ADLRR(4"A$(!+H>W+].E\"6IFE] |
5045 |
M>30:=3;1;O`_`J_72[E<QC1-=%WO;V!?]_RB`AS]D\#&=B"XUY1OPI$`Z//! |
5046 |
M[_?W>S`Z.C84@9,/,L!=R^H0]*I8+&(8!@"ZKG=>05$4(I%(=Y"VM]:IF"=8 |
5047 |
M]3K->I.=W4_#SH'S;WQ$+/\&B@N^+AG.\3,`````245.1*Y"8()02P,$"@`` |
5048 |
M````'7)D,67W@[M,`@``3`(``!H`%0!G;&]B86PO:6-O;G,O;65N=2]F;VYT |
5049 |
M+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0 |
5050 |
M````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP```@%)1$%4>-J=4TU( |
5051 |
M%&$8?MZ9<=;:S'5L%UW9T%;;9:9BB\`*"DK"*#`+H[QHTBD[UR&"AB*"H%_R |
5052 |
MTB$S^CD6'BH)]A!69$$>:JB,7-M+(#M;Z"KN[OAV&&9U^MF6GN/W/M_S/L_[ |
5053 |
M?A^P"*:APS1T%(-IZ+AYJ0,;U@0!`()3N'AZS\$SEY_RH:-W>/>.R*D_"3EG |
5054 |
M+]Y,X',BY2X<Z]G,#J&NIH+_UMTT=+3OTD!$;@=]_2])46V!*I^W:(Q$,@UF |
5055 |
M=@L,W3O2TMD>XZ8&A2UK_C?;+B??9Q#3@B`B"*:AX_5HLNMQ_,/^^P]':6S< |
5056 |
MI,47K_</\];F!FY>'RK$NG:V#7-S>6BK`Y``X-S5^,"S5^/D$#RR5.CVZ4L* |
5057 |
MPR,)U`8JH*CV#+9M6H7G@[T+$1+)M,-?241]ON7E!8%\WHZ3M^81KJ\^'MMY |
5058 |
MA5L.W."3YY]T`;`=_)B:Q=IH#9>5"8B$_=TC;[_VMAV^->BO7G97$&UCH6`E |
5059 |
MLEGKPKL)$].9+$C``(#;11^,:>C8VZHR$?'V+6$&@)A6RT3$&]?5L6GH"UOX |
5060 |
M%<Y*<SD+`/!M<@H`$&T,```RLSGW&O\7)0NDTC,`@,`*+SRR"%D22Q,01)LR |
5061 |
MF<I@7ZO&C^(?H?B60I0$**I>7$!1=2B52Q!M]*,^5(4'0^^[O>4R(F$_/+)T |
5062 |
MHB3K__K>/P&6WKB%\K483`````!)14Y$KD)@@E!+`P0*```````=<F0Q\+O8 |
5063 |
M)?T"``#]`@``(P`5`&=L;V)A;"]I8V]N<R]M96YU+W!R:6YT7W!R979I97<N |
5064 |
M<&YG550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
5065 |
M```0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3````"7!(67,```L1```+ |
5066 |
M$0%_9%^1````!W1)344'TPD>#@XVO@\3X0```HI)1$%4>-J5D]]+DV$4QS_/ |
5067 |
MNYE.+YJY"%%'5&O3,%JAHTLQ`XO^@")$\=Y;Z2KS.O%";X:ZP(N&E(303:1" |
5068 |
MLT@%'70147C1<HDRW&)[MWSWON_I8D[M!U$'OIRK\SG/<\[WP&$$`?E%0?XQ |
5069 |
M@H!,38U(//Y"7K]^)B,C]Z6M[9(,#P_+'\"WRX7:?EZ?G'Q(5U<G7N]%3-/" |
5070 |
MYSO-K5O76%V-(2*DTVE$A%0J!?"X#'`"N%Q57+UZA?KZ%I:7GZ/K>7*Y/'5U |
5071 |
M)YB?7V)[>YMD,HEA&+C=[I^>[BPEA:[G223>D\OET?62"H4"FJ:AE,+K]0*0 |
5072 |
MR61^`C@`3-,<:FUMQN&P][OK9+,ZFYM;>#PG[0\?/BFGTTDRF<3C\3`V-@;P |
5073 |
MX.@,+D]//V5M[1W9;*GXRY>OC(Y.4%%1HP6#04*A$*%0Z.^;N'FS4ZJK75)= |
5074 |
M[9*.C@X9'!P4I93X?#Z)1J,2C48E'H\+('V]/;=+GS]<X_K\RY>D,VG.GCW' |
5075 |
M[NXN`'-S<XR/C^/W^^GO[R>1^(S/=YZ!@0'Z>GONE+M++!:38K$H(B*&81SD |
5076 |
M8K$HX7!8E%+2WMXND4A$%A<7Y%%D0@!Q[`.&PN$PEF6QL[--)!(A$`BPL;&! |
5077 |
M:9HT-372V-C`[.PLGSY^I+7U`K7NX\26WG``N-'=32&?`Q'\@0![W_>HJCR& |
5078 |
M99K8MDU+2S,U-35\3B38VMJBMM;-S,R3L@^@JK*2Y955EEXMD,WJH,"R+)12 |
5079 |
MV):%9=MHFD;]*0^V;9/-YHX:"4S+Y,R9TS0TW,78,[`1;,M&`:9M81A%*IP. |
5080 |
M'`X'2FEE2Q\"5I;?DDJE<+E<H*!0*)2F*^S?C^+;MPPB@FF:Y/.%WZ_Q?W6] |
5081 |
MZ]J]'VZ*665,J<G>`````$E%3D2N0F""4$L#!`H``````!UR9#&63H:Q[P(` |
5082 |
M`.\"```=`!4`9VQO8F%L+VEC;VYS+VUE;G4O<V%V95]A<RYP;F=55`D``RJ` |
5083 |
MBD%3><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S |
5084 |
M_V$````$9T%-00``L8\+_&$%````!F)+1T0`_P#_`/^@O:>3````"7!(67,` |
5085 |
M``L2```+$@'2W7[\````!W1)344'T@$%%389;@:6*````FQ)1$%4>-J=DT]( |
5086 |
MDW$8QS_O]CIG+BGGYIP*%KDY):*+(3')BQ[[<PN"Z%S08?TY%5&GH.'!#`DC |
5087 |
M@@XV2,R&$%%&=,@E)IHP<?YM.=L,'>]T>_?N?==A,F>C#CWP._S@>3[/YWMX |
5088 |
M`+J`['^^"P*03:;2?/L11WW92UF)2&%IFL9QSVV>/W(PZD_Q9&2%@;?C5-OK |
5089 |
MZ&BQ(0*$-Y)\')^F6=7(QL*0S>:&LUE.>A^3B;E1`J6\,T:!%0(3$ZP,#@'D |
5090 |
M``DY`T##F?,XG<[\9E$4D1?;4`)&KOLV>#HXA=_O9W)=8'YN#@`=?]3L["S! |
5091 |
M8!!1%$D%3[`]4\6EOE4>/ANGN[L;M]N-FI9)9]1=@\)R.!SH]7JVIUK9&B_E |
5092 |
MLF^!@=<S^'P^7"Y7OB^[$[/((!@,`K`<:N?:<)R!X1D\'@^UM;7,S\_GXPF" |
5093 |
M4&Q@M5HQF\V<[K#@.O<``*_72V=G)S:;#8?#@:(HZ'2[>_<`1B<7`'@U&N/J |
5094 |
MC5NT'#U&8U,SZRE87XJA:1KA7YM[C/<`%J-Q[O0/L1X)4UEM)Y*$R-=<I(RJ |
5095 |
M`@*B7O=W`,"1`T;:ZAL!J*BHP&ZW(TD2G\?&Z'GQAK.G6A&J#N?[]^!D6>90 |
5096 |
MS7Y,)A,7;][GRMT>$HD$\7B<^KHZPI%5@I$$UG)=,4!6%-2T#(#1:,1J/HC3 |
5097 |
MV<3F9BZSP6!`4V1T>AV&`F\=0']?+QDYA:9I&`P&;#8;DK1%25DI`*JJ(DD2 |
5098 |
MB"5%VGI`_/)IM-UFL?`]\I.J?0*JJM)@,5%C$@F%0@0"`:+1*&NK&RA*DLKR |
5099 |
M,D;>?T!:6\J#[NV<YS00^L?Y+@'+!?^NWWZK$O?;]ODE`````$E%3D2N0F"" |
5100 |
M4$L#!`H``````!UR9#$74F5>NP$``+L!```B`!4`9VQO8F%L+VEC;VYS+VUE |
5101 |
M;G4O8W5T+61I<V%B;&5D+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<- |
5102 |
M"AH*````#4E(1%(````0````$`@&````'_/_80````9B2T=$`/\`_P#_H+VG |
5103 |
MDP````EP2%ES```+$P``"Q,!`)J<&`````=T24U%!]0+`Q4')J>_&,<```%( |
5104 |
M241!5'C:G=.]3AM!%`7@;S#8BQ<DH"!4011)!T52Y`E20D=!P3.@U/L,J?(4 |
5105 |
M='D'&B1$@Q0I0C1(%!11BL0&BUVS%(QAO!B4<)NK>^;GWG/F#,@S7IV;(&K_ |
5106 |
M@;?*ZK[H#\`F?N`@Q?.,LE)AH:R<IOA46F"CV_4+18KW!XJE!5?88`R?.&;6 |
5107 |
M'#?6;R;2:'#:Z<S8P\IH<\SMN5G?L,W+&JP-;UUU.SZ40X<X0+4X[].?OF/< |
5108 |
M,*Y!:'`==>S,SOAZ7;I<FG?]^Z]]7""D$SS1X!G.RR'X*8D7?1#S.H[Q!6?X |
5109 |
M&,*SS1Z*=[%C$0]OQ>7/^![Q&NOI)=,)EU.LM@+#^M%Y\5F/0G!8U^;0ZP\> |
5110 |
MM4LG*/),EMHVB='[9R.3/=$@;LI;P=LX;AI%Q/.FF:92&Z,WK.WBI''!><1[ |
5111 |
M>#]F_XFJHMW^MR]]!R;M>MS0VD.0`````$E%3D2N0F""4$L#!`H``````!UR |
5112 |
M9#'-P4R&\`,``/`#```;`!4`9VQO8F%L+VEC;VYS+VUE;G4O;VLM,C(N<&YG |
5113 |
M550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!8````6 |
5114 |
M"`8```#$M&P[````!F)+1T0```````#Y0[M_````"7!(67,```L3```+$P$` |
5115 |
MFIP8````!W1)344'U`@*$CDRPT?T&````WU)1$%4>-JUE4UHG$48QW_SOOO5 |
5116 |
M[2;I)FU2$ZUM4U%B41.-%BM%+%4I4BN5@A2TN5A%!1$\]*"-%Q&QZ$7PI`?! |
5117 |
MFV@5\5!K45NHP2PA:;MI0VJS:7:SV=UWO]^/?7=G//1=V(BDB>(#PQQFGA_S |
5118 |
MS/SG_\#_%&(M>S5-DYV=732D0BJ%E!(`!=AFE;I;>Q;X";!]:P'[?3XRF24N |
5119 |
M+KH8)9/I1)I&S:*MO8V/C[],[-R9;J`=J*T)[-1J3"9=QJ;B))>*_/C;.$8B |
5120 |
MSKX]C^!4*P#K@0`@M%4`]P)=@`Z@ZP(=@<^GHR&1=I&@)M%UO7FU`N!6X/W` |
5121 |
M9\``$+J9()"`$#JN8]'NEVSK[208T)<EK@0^<.C%5T]N[.[9X9UX/8"F:Z`D |
5122 |
MA5R*0CK!]MXH/1L[<6QG5>`#SQ\Y^L'(:V_?$]UT&T`$"&B:1C%OD$DGF1X_ |
5123 |
M#\4;##XPA%&R,0K%98!_>KS]!P\?^?#PT3?N%L$(^5P6X"W@)2DEA_8-LY3- |
5124 |
M<\>6+1P[]@K;!N[C_(48MF6N"-[[U#//?3KR^O&MRA^F9E4Y\<GG]$77#79$ |
5125 |
M0H"BX380`B*1,'JH@S^F$TS&9ZA4K#F@!,B_@W?MVKWGJS??_:B[8#60EHU2 |
5126 |
MT+'I=BI"8#J@6OZ35A;D_UQ@;&J6^60&I60",``7D#Y`]-Z[>VAPZ*&S)T9' |
5127 |
M0[,+65RWAE(2@894"B$$JO6/"D&Q9#)S?9[<?)SJPL6\:Y=_!Y*``R@?T.GD |
5128 |
MYKX;?OIDZ,O3$ZA&`Y1<682:0#H692-+8N:23,Y>GD35)X!L$]P4](#P!;_I |
5129 |
M?_3@7=W].Q%HJ&5PL<Q5A!`HNTPU=874E?'44C+Q!7`*N`84@'I3U65D(V;E |
5130 |
MTT/AR(:>2-=F_($@0BF4K".41*`02J$A<:ME2LFKI.)C^>SBC>^!'X#K'M1M |
5131 |
M=3<!K`,>"T<WOW_GX!,/]O3?CVM72$S^2LVL(K2;Q2DE<<P2KE4VJKG4*>!K |
5132 |
MX"J0!JI`HU45"K"!<V9^\9WYB;.C0HB'-_1M)W-M"KMLG`9RS20ODL#/7OD9 |
5133 |
MP&Q=;Y6;]."_5(S4Z%SLS'O!<&38%PQ!F6^!&%!NZM2;3:#HS?5;N9D&A($G |
5134 |
MHWT[8CY_4`$C0#_0YJTU1[#I>JN-)OQQX!+P`M#G52A:[?'?M";A6>5.K]1% |
5135 |
M(-]R%?^IYPFO(P2`FC?4:L!_`3TV>T)`FY.?`````$E%3D2N0F""4$L#!!0` |
5136 |
M```(`!UR9#%6B!P]GP```*T````<`!4`9VQO8F%L+VEC;VYS+VUE;G4O<F5M |
5137 |
M;W9E+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D" |
5138 |
MT@(@S,$&).4__T\$4FQ)WNXN#/]!<,'>Y9.!(DF>+HXA%;>2$R180QB7\?#P |
5139 |
M_#]Y`$3Q](#8U]]9'E?0.^*^I?>Y?FS*"5^.M`0@2$D$$@+BCY)O5+P0NLBV |
5140 |
MI_(CR[DTD-B-';\Y#I\.7W^2CUG<Z/"!5).?/&(,#-PK=5AFOEN?#+2-P=/5 |
5141 |
MSV6=4T(3`%!+`P0*```````=<F0Q.%RIG>H!``#J`0``&@`5`&=L;V)A;"]I |
5142 |
M8V]N<R]M96YU+W=A:70N<&YG550)``,J@(I!4WG(055X!`#H`V0`B5!.1PT* |
5143 |
M&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3 |
5144 |
M```!GTE$051XVJ63SVL341#'/V]W(ZQMU>804#!I+^I&8PH]J5`/*N*I"M46 |
5145 |
M^Q](\=:+=Z^ETOX!_0MR\=](J"#4BX<@A8!BVVW6;-[KOAT/3<*F/RT./!AF |
5146 |
MYCO,F^]\X3]-97Q12N&Z+DJIH2(1P5H[\+,X+UOX^=,[1O/7*4Q6B'ZWT'$; |
5147 |
MT]G'=",2HRG>FZ'Z9.'4::3_?-\7I91D8X`XCM/WSVPR4:_76T`%J-R8O/.H |
5148 |
M//WX^8O%]V_\D3$Y:P<`LMML<+4XA3W01*UOM/8T'6UI_HQY.S>+T?$0QCG2 |
5149 |
MH#P^,4WXXPM*.=A4\!RX?,EA\?4KC([+_\),`(CIA**C'=EM-OK_#BY*<19\ |
5150 |
M(0L.Z9:G-C&RO%J[YH]<.74"YP3P5F^YZ_O;7P'4TL>-N5X\.*_!%J!$9"5- |
5151 |
M[6V`#R]+.\#F\FKM02]_/HU^_B:B7'YM?\>FAXD#:[EU_^%)F"$MB.=YQRXP |
5152 |
M>Z%'ESJLA;4E"J6[C!6*=*,]3"=$1R$F;M/]$U(,9J@^F^\+ZK@:`7*YW"#@ |
5153 |
MNBYIFB(B)$F2!0YP?P&_]KT@M#^M6@````!)14Y$KD)@@E!+`P0*```````= |
5154 |
M<F0QCMZ>A9`"``"0`@``)``5`&=L;V)A;"]I8V]N<R]M96YU+W-E87)C:%]R |
5155 |
M97!L86-E+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E( |
5156 |
M1%(````0````$`@&````'_/_80````1G04U!``"QCPO\804````&8DM'1`#_ |
5157 |
M`/\`_Z"]IY,````)<$A9<P``"Q(```L2`=+=?OP````'=$E-10?2`046!!-A |
5158 |
MY94>```"#4E$051XVHV3OVM3413'/Y0.;F_1A$BHFQ#L5JL(M<3!#$5T"((( |
5159 |
MQ4$746B';EE#0OX!>>X57K:8DL5%2I(EA1:$A#>(1A[IRP]]Z:.TL;SW[G$H |
5160 |
M>20VA1[XPCUP[^=[SSGWPGFD`;F"GG!)B%)JIH(@D':[+;N[NV-(^E*`Z[HS |
5161 |
M5:U6Q?,\,0SCPDWF_B?INHZF:6B:AJ[K`/3[?3*9#)5*A60R";`S$Z#K.I9E |
5162 |
M<7)R@FF:6):%KNLL+R^C:1J.\YM6JW5Y#P`Y/CX6I92,1B-I-!H"R'`X%,=Q |
5163 |
MQ'$<J=5JDTU]>:$$UW7Q/(^CHR/Z_?XY700`W_=965EA^\-M7J\M`'P*`2+" |
5164 |
MYN8F^7R>O;T]]O?W*9?+9+-9`)121"(1_,%#TK<6\*]I9U,EC+6^OAZN<[F< |
5165 |
M#`8#Z7:[`LC9SP<RJCR6]Z_NCO>DYH&M25(BD:#;[8:Y[_O$8C'^FO<Y;5[G |
5166 |
M[<<?&#M-@.?`ERGW?#XO!P<'TNOUI-?KB6W;`LCIMWOR9WM57CR],]G`FU-C |
5167 |
M-`R#5"I%-!HE"()0`+^^K[)5=C'*338V-F:/,0@"L6U;;-N6P\-#Z70Z`LBS |
5168 |
M1S="UT*A(,5B<9P#S,U/443"D2FE`/C\=4`VFV5I:8G%Q45,TYQ\A"H$U.MU |
5169 |
M/,\+84$04"J5&`Z'Q.-Q`$S3I-/I`#0!-6G^[HK?>:PWXX/_`*!I=H2_DL$5 |
5170 |
M`````$E%3D2N0F""4$L#!`H``````!UR9#$+22;Z7`(``%P"```<`!4`9VQO |
5171 |
M8F%L+VEC;VYS+VUE;G4O:6UP;W)T+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D |
5172 |
M`(E03D<-"AH*````#4E(1%(````0````$`@&````'_/_80````9B2T=$`/\` |
5173 |
M_P#_H+VGDP```A%)1$%4>-J-DU](4V$8QG_G[*Q)LM!85-!@],\NO.ZF+O(B |
5174 |
MJ.TF@KPKB7419)*0-T8T""%02O`FBF#I=70UF1`5L4TPPPR<[4_NR)S&.$P] |
5175 |
M[NAV]N=T85MM*NZ%[^K]GO=[WN=['M@N)V#4'2<-EA,PEE()8R[\U0C/3QEC |
5176 |
M8V\:'B(`AK:YQLM7@YC-)LIE`TN3A?!<C)'AM[MA7,!XS8"T$L/K'44RES&9 |
5177 |
M)'2]P"&KE5P^C\5R@'Q>Q^$XR?JJRJV;W14<`!*`M?D$I7*.^'R25&H%4138 |
5178 |
M4#5$4=Q^18!2V:!8*'+EZD5^S$:-Y>6T"QB7`&9F)BD52WSZ.,GT]!1*9H&\ |
5179 |
MGF4KM[Z#OZX7F/T>X>X=CP\0I,HBL9B,VWT;);/`FIK:4S0YD6(ULT;-"I%H |
5180 |
MG%#P&\,O1EA)AVL`R>1O8M%%^GH'ZV<]!"018%%>I/=!#UE-V4'[FJN["O8\ |
5181 |
MZ?^_-02<EP".'CM,9^<-Y.34KK1'O:_1M"RJJO)\:``MN\%CSS.J&B1^+:'K |
5182 |
M.22AE;0B5X&7.]P`1"(_412%2#3.N;:SV&RME2L!X:_;?'N)UG/_'NWM;4Q, |
5183 |
M?"`0"-'5U<69TP[\?G_YW7N?*.SC5`/@47]?J?E@D\EVY#AVNYU0\`M/!P;_ |
5184 |
M_<)^5F]M:2G)LBRHZZMB,/#9T#:W*KWKC82MFM".2Q?R=8D])=!X&77,`/@# |
5185 |
MJ:_H/-,>$KX`````245.1*Y"8()02P,$%`````@`'7)D,??L<<-;`0``70$` |
5186 |
M`!D`%0!G;&]B86PO:6-O;G,O;65N=2]N97<N<&YG550)``,J@(I!4WG(055X |
5187 |
M!`#H`V0`ZPSP<^?EDN)B8&#@]?1P"0+2`B#,P08DY3__3P12+.F.OHX,#!O[ |
5188 |
MN?\DL@+Y;$G>[BX,_T%PP=[EDX$BG`4>D<4,#-Q"(,QXZ6[='Z`@>XFGKRO[ |
5189 |
M)49641VE?(76ZT"A6YXNCB$5M[8&&W*U&`C,8:F.3WXJONXS]_6[QVM:6I7$ |
5190 |
M[!YL$77)Z6/>R',RKM"EJ'"QV78#@3+CS9NEF6J4F1W$"YP53D@<=LKV/6P0 |
5191 |
M$!H:IL+-I7/ZT*)UV4%>@?.>6ZL?$CRP:]V:O8LT+FS3?59YS*)/XW318Z\Y |
5192 |
M+(**GD)'"GN^_VY=][KNE37[L1D+!!B^U/:;^)KG/8DK.CGMP?6_-4^$+":] |
5193 |
M5](X$+LAW?QY_PYIQ^S:5X\N-$Z9]/;,TPCVA>$[]C`K'DE\_E]W8Z:4QE*_ |
5194 |
M]'G+.!GF_:OH[[Y_\U%>IWQL/ZL+S^LZ)J`O&3Q=_5S6.24T`0!02P,$"@`` |
5195 |
M````'7)D,>==W@)H`@``:`(``"8`%0!G;&]B86PO:6-O;G,O;65N=2]P<FEN |
5196 |
M=%]P<F]P97)T:65S+G!N9U54"0`#*H"*05-YR$%5>`0`Z`-D`(E03D<-"AH* |
5197 |
M````#4E(1%(````0````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP`` |
5198 |
M``EP2%ES```+$0``"Q$!?V1?D0````=T24U%!],)'@X3-=AJ+D<```'U241! |
5199 |
M5'C:C9-!:QI1%(6_>6,ANG+,TDVQ6%SH8KIQE4W;]#]82DC^@%!H%_T+Q6HI |
5200 |
MA2S:QN#&[-V:0)G5;"R(RZX$5P[,A-AH9W1N%_%-HVU*#UQX[W'/?><=S@.P |
5201 |
M`5F7AM[;_`=$1#2AILF^[\NM0=M5NVN`;`_8AN=Y&VI3>N'[_H:LT6@$0*O5 |
5202 |
M8F=G!]N^>4TVF]WH2P&/#,,8B`A!$"3DO;T]^OT^E4H%`*440-*CH8!OZR%D |
5203 |
ML]F$W&PV&0Z'**6^-QH-7-?%==T_##2VO"`(`BS+8CJ=_M7Q(`@H%HL)-[7= |
5204 |
MH-^NT>OUR&0RW/@,I5()@*/#@UK[M-/5"FQ@<%O!\?&QOBE!.IWF[*Q+L?B0 |
5205 |
M>KW.T>'!<TT6$1'?]\5Q''$<1P!Q75>B*)(HBB0,0UDL%C*;7<G%Q;FT3SX) |
5206 |
M(*G;-P.4RV4`',>A6JTR'H]9+.:D3)-88I91R(_9%;NY'/E\_K<'EF5MR-6Y |
5207 |
MB,*?B`BK>(7$,8:A&`P&[.[FF$PFFR:>?/F,\_6<=J>;G+U^]9)XM6(5QRBE |
5208 |
M4,KD\9/])(Q)D``*A?OD\R]H=[I8EL6[QEL>%`HLXQ5A&'$O96*:)H:A\#QO |
5209 |
M(P?R\<-[/,\CG4Z#`?/Y?!T._3D-+B\#1(3E<LGU]9SV:2=1:O_CY]U9S_:? |
5210 |
MOOD%':(I3/;YVT<`````245.1*Y"8()02P,$%`````@`'7)D,0]^-MM2`0`` |
5211 |
M50$``!H`%0!G;&]B86PO:6-O;G,O;65N=2]C;W!Y+G!N9U54"0`#*H"*05-Y |
5212 |
MR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"T@(@S,$&).4__T\$4BSICKZ. |
5213 |
M#`P;^[G_)+("^6Q)WNXN#/]!<,'>Y9.!(IP%'I'%#`S<0B#,>.ENW1^@('N) |
5214 |
MIZ\K^R4F1FX-R13;4R`K+GFZ.(94W-HZR;:KQ4&@=7^<^?<DMB:WKH4=:=4M |
5215 |
MG3U?.>(.'-B]A?W"D>`]GM<2)=[.FY\J+R)2\G'5K]5,.QBJA,1M+IGX%IV, |
5216 |
MVCU[SBF&24^R&PS3UMN^J/8_M2GEMEF30H*,^ZQEBCS.M[9]G?V_E*F.5^3X |
5217 |
MQD4:NYZ^;[!MJ!9?,RTU<%JJUR27V.LOSWQ9TSFYT9#-,V[#]YB4M;8[]ELQ |
5218 |
MKO.N8;'F:7ZU:]_&G?^;LHWUUWX[';IAG7;EO,G+-&OO,P>(L(:&RO*]K%>; |
5219 |
M\7RF_[T]"?*/V!]P9?W5?U6WI]\2Z#L&3U<_EW5."4T`4$L#!`H``````!UR |
5220 |
M9#%PU7@)#P,```\#```C`!4`9VQO8F%L+VEC;VYS+VUE;G4O961I=%]B;V]K |
5221 |
M;6%R:RYP;F=55`D``RJ`BD%3><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12 |
5222 |
M````$````!`(!@```!_S_V$````&8DM'1````````/E#NW\````)<$A9<P`` |
5223 |
M"Q(```L2`=+=?OP````'=$E-10?4"P,6(!''@;'T````'71%6'1#;VUM96YT |
5224 |
M`$-R96%T960@=VET:"!4:&4@1TE-4.]D)6X```)S241!5'C:E9-+2%51%(:_ |
5225 |
M\[C7Y[WY2*5($\O>!IE1BCUH0&E6@R@:*`Z##)I$:#6(2,G"05@F!8(3 |
5226 |
M'1HA:0X2H_*9F/E(NL]SSSUGG[,;J+>2R/I@33;[_];:"S;\3E+1SOW-@%RO |
5227 |
M4GQ95P!562.H]OO][8T/7]`W]`$C:A"*A#'-&%*"IBIHJD:Z%J>K[0Z`IJX1 |
5228 |
MM+=V]C(P,DDH'"48CA`,18A$8T2-&.&(09(.@:59"50`[J^"T\7%Q03"!M&8 |
5229 |
MB6W;V$+@.`X`B@*:KN&1<3)2O0"O`58%&M#9T-C"P/`XIAG'LBPLR\)UG94K |
5230 |
M"CD9Z7Q?G'5M(RAKZ^J?_RJX4%E9R?SW&*&(D>@N;#LQGJHJI'A4@HLS^-+2 |
5231 |
MN'NGZ2S@714TUS<T,?%E<3F\4DZB.VS>N(&Q]V\I/U2J=CQK5X%C@*4"IZJJ |
5232 |
MJA@>GR-JQ!!"((3`$0(I94(@[2BZ&V=T?,)=.>I;?AC(1T]>RJF%@")L@67; |
5233 |
M6)9%(!1!NLL"X3A\FQDC.TWCZ9,V/$G)U^RX>0-`!^CI[5$FQT>9GI[&-&-X |
5234 |
MO4D</7Z"I84Y%`5T7:>PH`!'V``CJ^&$("4UE;R\7&H]7]GD.@Q%!,D5!ZFN |
5235 |
MJ<%Q7:8F)WG5/TC=E8LHJGI=NN[/Y>87;KOU^'[3NT^?Y[!3?&3NV,M;WQ;* |
5236 |
MCI1CF'$\NDX@&&;P3?_R+ERWDS^0#81N[\J0W65Y\G!A@3QR\HPLVE=FG3M_ |
5237 |
M271T]=B`3/5G7>4OW+Q<D.8\V..7I3[-!4*^S)S6U<^3F[^]EW786I+NF;^W |
5238 |
M.U.VE&1+X"/_B>K3U=X#?J]5YO=:0/>_A'X`CA$QNKKIL-<`````245.1*Y" |
5239 |
M8()02P,$"@``````(')D,7/K?`7<`@``W`(``!L`%0!G;&]B86PO:6-O;G,O |
5240 |
M;65N=2]T:&5M92YP;F=55`D``RN`BD%3><A!57@$`.@#9`")4$Y'#0H:"@`` |
5241 |
M``U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_`/\`_Z"]IY,````) |
5242 |
M<$A9<P``"Q(```L2`=+=?OP````'=$E-10?4"P,6&"7QJOFZ```":4E$051X |
5243 |
MVGV3RTM4<13'/_?>\<[<QISQ.3I6F&$[B9!`%`U:E+1P$8328Q%$2XF(J(@0 |
5244 |
M@HB""/H3VM;*:&%$CY455!*FHN;D,.HX.@]G[MRYSU\;DXMH9W<XY_LY#_A* |
5245 |
M[!W7@$%?G@1N`(:_2=I%J`"1>P^?;FS84>KJZ@G5UG.@(<R5@>-O@,M`UM^\ |
5246 |
M'4VQEI$'CYZ,#0P,C';U]$LOQG^P]/DE&[K)X)E^4-2.4R?[1O+Y@K.>6?L& |
5247 |
M.'Z]>NO.74,((29G$F)I+2_>S^7%\W>+XM67A'@V/B^NWW\LEM?RXOSP)0OH |
5248 |
M!`CX`89A2B47PC4US,_/D4VG\.8FF<B6"?5?I>?84:*-$;*YG`P<`G[Y`8HD |
5249 |
M201D4%65]&J:>.MA]'P&K3Y(G;Q*:UL'I@6NZVT/E_TW",_#=L"V';I[^Y&$ |
5250 |
MPY'V=BKZ)MTGNFB.QY%ED'RO]V^`9;ODBA:KV2)RH(K42II8M4PFLTHBO8EM |
5251 |
M53"E$!7+V1U@V`Y+Z0*)5`ZEJHI2R2"JRAB&SI^5'$@N6CB"ZWF[`QS'HVS: |
5252 |
MZ(:%[`KRA0+F>IKB9H%RQ4;&I5PQ$>QQ@N-ZZ(9-43=1'`F]6"#Q^R>V)<CK |
5253 |
M!@J"LFECV7MLH`144!2"X3!!56,ZN4!F.44DVD13?2W[M2"ML48"JKHKP/WT |
5254 |
M=BPS/3,;+^LE'-?C=&^G7"SJQ%I"C(Y<%%HH)+3P/A:FONN`M1-@I9*)H50R |
5255 |
MT0=H0#!RMOMV0T,C(2W$XM37#\#$EG`-F`7<G492@6H@`L3:V@Y^O#!T3C3' |
5256 |
M&LO`32"V5=/^^4CZCYT5H!T8WK+P:V!NY]2_IKL1,E5>RU``````245.1*Y" |
5257 |
M8()02P,$"@``````(')D,<U]/GU5`0``50$``!D`%0!G;&]B86PO:6-O;G,O |
5258 |
M;65N=2]A9&0N<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````- |
5259 |
M24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3```!"DE$ |
5260 |
M051XVLV2O4H#012%OPT!BT`$%5($&U.DM<D;K$_@"_@"EKZ"72`OD,9:"[N$ |
5261 |
M3"DB%I)"BP27!-=`9G7-)INLBL&Q\(>=91*(/^"!T\R=^>[,F0MFE0`5<XD% |
5262 |
MI9HM5]5/KU2E>O@),2H]JR#]$>*\A70[<SNE^*%^!9`,3'OO=/KRE8LI6`M0 |
5263 |
M1^*"8/RHD:/HB1MO2#:SQ$9^C=7E#*_JG>U<M]G=V0:PT@"YE2QGEUWC%4>3 |
5264 |
M9YKMGK9VW[_5?^&X<8+T[K1-N?4"`&$8$@7>S`PLP`8:R<)^M<8@C)"NPT%Y |
5265 |
MSW1V"Q`I0'R`XF:SF#<UBUO\GSDP:O#@(UV'P)??`MN)H;'Y*[T!&^5CU^%" |
5266 |
M<@\`````245.1*Y"8()02P,$"@``````(')D,5)PJP9.`P``3@,``!@`%0!G |
5267 |
M;&]B86PO:6-O;G,O;65N=2]O:RYP;F=55`D``RN`BD%3><A!57@$`.@#9`") |
5268 |
M4$Y'#0H:"@````U)2$12````&````!<(!@```!$ACRT````&8DM'1``````` |
5269 |
M`/E#NW\````)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"`H2.#%#593C |
5270 |
M```"VTE$051XVIV52T]3013'?YU>6D!00(DQBB8:-R0LC2OC@\2%;(C&Q(!; |
5271 |
MOX`+'Y^`N-3OP,K'"MT8Q"`08C`^RN,6A-+V-FTI+7W2YYWKPGO)I932,LG) |
5272 |
MG7MFYO^?,V?F?Z"YY@",!JP;<`,.Y1@$1!-9O%J"4D7'&]RF7"H`(/4*3Q_= |
5273 |
M!N@#-*!\+(*58(+-:`HI)1_GELDEPJ2B?D;N#UGSNH"M9B)P5'WWM4)FAVP\ |
5274 |
M8G<)JZ,T""Z!3D`'<`H'%5TBI40X%8J[:7HZW/2>=!U8+!H$!S@+G*@U*1GV |
5275 |
M<6W@*MVG.ILB<`#RPXS7^C\-N`!T::`X!9M>#_&`2CX59^CN+7YYU(8)'("< |
5276 |
M60Q2*%4L7YMUI)IO#>_B3P(;JZS/?V+DX3`Y1P?^@'8`2*D'[HND,`S#\G^U |
5277 |
M.H^'!P%PM7?R:FR,ZW?N,37[G9`6/))@#SRPE<;=XL0P#-Y.JUPYUT6KRXD0 |
5278 |
MXG]RA<"M")+9/.J&1C!>8'E%!9@%*E;NE%K@:C!!JTNA6-8Q#`-=5OBQ%CDT |
5279 |
M6>J2EY7-",7=#,`JD#=)#"L'C@L#-^3LDL9::`?%*2B5*Y0K.KHT]I):R];] |
5280 |
M&K'M;0K:'])17\@\RAQ0`@PK`OGD^1COOJD((9IZVJFM",52"<_\%XK9Y&<@ |
5281 |
M`&2`LOUE=@"9_L%1>B\/-`S>(B`=]2-301:F)D+`,^"WJ4-90+>V6P;ZEB?' |
5282 |
MB6UX&B9(1OSDM_ZR,#4!\`98!Q)`P4JR76-:@5[`;X\DEPB3VXD=`-]-Q=!+ |
5283 |
M133/-,!+8,[<>=1,LJP6KYHDN428A?>OZP7R`I@'0J:"YBS-JKZFAAE:#+BT |
5284 |
M/#GN[V>4]JXSUO@#^^VH6K-MKML'7DLJJDGL8SD@:-YSU32O>>[A6N!'J6@; |
5285 |
M<-%6!F\"YTW!<]I,'%8GZHG=ODA,G_4Z]2J3MB,[M%+5&V\%>LQO'$C;:D3# |
5286 |
MI?"H.2Z@Q4QPN=Z.J]L_4.1@O-1.'#T`````245.1*Y"8()02P,$"@`````` |
5287 |
M(')D,7]T6R&&`0``A@$``",`%0!G;&]B86PO:6-O;G,O;65N=2]U;F1O+61I |
5288 |
M<V%B;&5D+G!N9U54"0`#*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E( |
5289 |
M1%(````0````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES |
5290 |
M```+$P``"Q,!`)J<&`````=T24U%!]0+`Q4')$FQ>>L```$3241!5'C:I9,[ |
5291 |
M:P)!%(4_T@AI;'P1D`V(!IN)+["($%`$'VD6\D`[B;!_(3"Q"L1_D)]@P,XJ |
5292 |
MA86%K:5M()`F8/Z#*7(W;,SNQM73'`;FGGONG#O@#<T>T,!ZFXL';L4G!F_` |
5293 |
M_4Z=$U$N@;`XL)VT@.9_#OJI)*\?*Z:6R1`(54[Y!$)&C!Y0`!X\.Q\?<0,< |
5294 |
M6B9/0'B3^VU>Q-$?$1V/T/$KMKE;9>:5CF[D&0%J<,V["R=%)"%O4JPH%Y%Z |
5295 |
MCK&/2%9$<GX1ZYKB&5`;*=1L)^8Y(T!;ID^4[1(3QZQ%$2G?7;%P1!QH$VT1 |
5296 |
M)6/HB[/MUOG7V?J.,@\\!MW0M#B(.#@0UH!1R##?]9?&@25P*S'^X`N+?U(- |
5297 |
M*#6T"`````!)14Y$KD)@@E!+`P0*```````@<F0QNS\;R!\"```?`@``'P`5 |
5298 |
M`&=L;V)A;"]I8V]N<R]M96YU+VQI9VAT8G5L8BYP;F=55`D``RN`BD%3><A! |
5299 |
M57@$`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````& |
5300 |
M8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q(```L2`=+=?OP````'=$E-10?4 |
5301 |
M"`H4'PS%=18E```!K$E$051XVK63/4@;81S&?W=)FAB;1F)!/<%)BH-912HJ |
5302 |
MB(,?8$$<A=+!S5B$2A=Q<&L7*2UTJ(,@HH1`H2B*4,$O"$4QD@Q91"U8B29I |
5303 |
M*FI,[BYOET;2,P<ZY(%W>O^_AX?_!Y1`;8`/$(;G^_?WGZ0B\/KTK)_JFAH: |
5304 |
MO5X2?]*$0GN<GIPP/CH$T`YLY`&+P6!T>M;?W-/=A:(HJ)K.=49#*G,CRCP\ |
5305 |
M=KF)[&Y?`"MY0#88O&[OZ$229<JM.3Y-O<=FE;'),FZ7D\Z>%P`#A8#1`$W/ |
5306 |
MD<ZH?/S\A:;GK83W]UGZ.H_BL5.O/`6H+:RW&@U^)2YYXK33.S"(GA,$%N:H |
5307 |
MK'!1Z7*0EJ0['3<F&`D&@_R,)3@]3_'[XI+>OGX<#CO9C,K*ZC+`AT+`V$3' |
5308 |
MVE+@557=,R2KC6PV2S0<0E-UPI$($V/#`&^!8[,QWHYRT?^.BD=''!PGL#@; |
5309 |
M&!R:-*LO*G&3W!6ZKHKKV'<1W7B37Z8[LI@8)./QLVX/6VQM;Q)8/6=G+SH" |
5310 |
M_+AW@JO4H=!NXN+L<%E\FWEIFL!,OI9F;[%;>/!1Y>$V2J6_@J2>P55G=Y@` |
5311 |
M````245.1*Y"8()02P,$"@``````(')D,1B`L*88`P``&`,``!P`%0!G;&]B |
5312 |
M86PO:6-O;G,O;65N=2]Z;V]M7S$N<&YG550)``,K@(I!4WG(055X!`#H`V0` |
5313 |
MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0````` |
5314 |
M``#Y0[M_````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@*$R<UB*`T |
5315 |
M4P```J5)1$%4>-J5TEM(DW$8Q_&O;]L\X6SAUAQB;K:#;=I5X(T)14A14!1U |
5316 |
M,82B9D@GZ**+KKKI<!?5TK#;@B"CS*2"B(YVA%#+*&DZMXR*Y6'O]NX]Y+^+ |
5317 |
M-%9XTP\>>/C#_W/Q/$\!?\<'M`#-0`#X"CP!'@+W62`%>?UVX*C7ZUE97Q_" |
5318 |
M9#+A\WE))A-T=_>D9#D3!4X#TPM!VR6I0+2W1\2K5T]%*O59)!(?Q<C(H!@8 |
5319 |
M>":>/[\GUJY=+21)NOWOQT7`"B#:WM[F.'AP'QY/+;.S`E55,0P#7=<!\/N] |
5320 |
M3$Q,+(_'DV^!]_.`!+1XO9Y@)+(;L[F0`P<.,S8VSLA(#(`'#QYS[-@I*BJ6 |
5321 |
MT-JZ@]+2X@A@S0?6A4)!W.YE]/;V8;&8*2PLI*OK(J.C<?K[7V`RF1!"X'0Z |
5322 |
MJ*IR^>:&_0>HJ:WU(,LR.W>&R>5R9+,9.CK.TM`0)!S>@1`_T30=J[4<N[W" |
5323 |
M`3CR@>].IYU,)H,LRZAJ#D7)$(U>8&AH&$7)H>L&AJ'A<E4S-36M`FH^\&AX |
5324 |
M^`.*DF5Z>I)L5F%R\@?9K/RG?@]4(,LRN9R2!)+Y6U@4BXUN"H>W%>NZ@<UF |
5325 |
M8^E2!Z%0`(O%C&%HV&SEU-34,#3TCNYK/7=TW;@$_)P'8JJJE2<2R2:_WX?= |
5326 |
M;D/35-+I-.GT#&:S&9\O0%;1.!<]3^Q3_`W0#\CS`,#@V%C"G4JE5@2#=4B2 |
5327 |
MA-5JI;+2Q>+%%<3'QSEQ_"1;UC02*)NI3R13`=G@RD(7N;6DI.BNU^L>;6O; |
5328 |
M(T<BN[XT--0]L5K+S@#1O2U^[=OK;M&YOUDXB^@!G`LAY<`J8`/0!+CFWIUV |
5329 |
M"S<Z]S>++R^OBD,;_9JMF#[^-ZXB;A[9[->33R^+52'WS'\#I1:<KC)NK6_T |
5330 |
MY9975U[_!545(4%DLZDM`````$E%3D2N0F""4$L#!`H``````"!R9#'P'?2R |
5331 |
MN0$``+D!```D`!4`9VQO8F%L+VEC;VYS+VUE;G4O<&%S=&4M9&ES86)L960N |
5332 |
M<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
5333 |
M```0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3````"7!(67,```L3```+ |
5334 |
M$P$`FIP8````!W1)344'U`L#%0<BH-+<W@```49)1$%4>-J]T;U+6V$4!^`G |
5335 |
MB0E2A0R66-.KT204B78HXM#1P8Q2NCAT,JB%XBS([=*AD_X!KHX."B(N;A5< |
5336 |
M'+IU:[%0[*#@X"Q<E_>6^`$72^E9?KQ?AX?S\G#]P`HN950!\WB#(UR'G$4_ |
5337 |
MMD*SZZ[S*KZE#?)H#@TZ17%TV!F62R6KN"H4?,)*_Q/3>%6MF$+SKB)!\?6D |
5338 |
M373*?3:0KSSU#HU2CP-\:$;V,1/NWZJX'NF@]J)F%YW>H@LLA5P<&G",ER// |
5339 |
M?$'\D*`G"&JMNC6\#?MQ1K8@'HLL=0EJ2)(D^85V1B9W9Y`*8K0183UD.PQP |
5340 |
M'>6PCB%NC%C^'X+WZ3IM\D<P%@23#=M_*RAE",:Q%AY]OC>#^K"%?R8(F0K* |
5341 |
M78+N7ZC?$CROV,/L:-57S#U&D,?WLW,G./SYVP[V\#&7RT68SLB)&P-PT1#8 |
5342 |
M".UM`````$E%3D2N0F""4$L#!`H``````"!R9#&3+119]P$``/<!```:`!4` |
5343 |
M9VQO8F%L+VEC;VYS+VUE;G4O<')E9BYP;F=55`D``RN`BD%3><A!57@$`.@# |
5344 |
M9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_ |
5345 |
M`/\`_Z"]IY,```&L241!5'C:K9%/2--Q&,8_1C0(`Z%IEX:74'9I&\%HARX= |
5346 |
MDH)01K<.'B4HL+QX4`(1A'`'#Q:"!(*R0Q$,/5D7#Y6*-)WMUTJG^`><3CH% |
5347 |
M<QD^77[OD+D61N_Q_7[>YWW>[P/_N:X``JY582(N$ZGTJ/G9&54!(H`2B<2N |
5348 |
MRU0LY?,Y$SE7_I;)9$XLN`S(X_&4H.+!@4%-U@R%0@-N[X0[I187#NVQ4"AH |
5349 |
M;<4Q\([+/`84#`8'*UFN!;2<2AYN;6YH?6WU:.7;EZ/QL5$!\OE\<;_?+U?D |
5350 |
MCW7>W;AN3E)+BVIK:RV)_$ND^\"[VRVW[)P+P)F_#1FL<#@L0+,?/^CA@P[K |
5351 |
M7ZPZW-DWK*235<]07(`:FP,`<M)I/1OH-Y&&2D[4.SBJI)-5=VQ<3T<FU=@< |
5352 |
MT/&8]_-[>M+YR$2\-G@64&QD@ILWKC,Q]9XZ[R7F9J;9^+IDS#90XZUO4/KS |
5353 |
M,L6?OQA^_B+OGO,=0$DGJ]ZAN/I?3NMN>Y=MJ2USZ;%THM&H@!YS\/K-V_E[ |
5354 |
MN[D<.Y\6F!R+X=[YHTR@"-1<#03MM-(_W`=>'4N@Z319_P8S%,P%(:'#UP`` |
5355 |
M``!)14Y$KD)@@E!+`P0*```````@<F0Q..,X0T$"``!!`@``'``5`&=L;V)A |
5356 |
M;"]I8V]N<R]M96YU+V-O;&]R<RYP;F=55`D``RN`BD%3><A!57@$`.@#9`") |
5357 |
M4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_`/\` |
5358 |
M_Z"]IY,````)<$A9<P``"Q(```L2`=+=?OP````'=$E-10?4"`H4)#8_RR"O |
5359 |
M```!SDE$051XVK63RVL3412'OWNI3@A)JO1A3-(FK2LI4FP76D1$P8W2QTJZ |
5360 |
M]F\0=V;AMKAVX3\@7:5=FFXDN%)$-SY2T3Q*.S.T!#)).Y.8'!>3UM!.72C^ |
5361 |
MX'+@W//@GN]<^$^:`7)`LW=R/=\)J5.2"W)_+DP\`:X+I4^H-S_V@9O`^_[@ |
5362 |
M@8`"69F_$6;R,H0BX#9`*\0["*MW9A98Z@_6`07N<N&BGQQ/^]8(07S,OSLF |
5363 |
M'3B!=MOO;)9]Z[F@?P:&#AQ[>Q8PV/H&W8[?V7.A68/-38#\GZ;>G"ZD9&1] |
5364 |
M1#`0F1L76;@FLG!59"HF@``'IQ')31=2DJPG)2$)&7T]*L8=0SB#`)+)3,GU |
5365 |
MA\_D]J.7LKS\1'IH9_HQ-I/?DV&9$-*D*5-&516ZHMF^M<.#E0UBT0AUIX%I |
5366 |
MV0Q^?DMN?64-6/H]1!>4H_QD1X'KNT4I8M$(XV,I8M$(9XT07\YECH@<%L@/ |
5367 |
ME[I@@JHJ,$'O:H9J'N<S5Z@[#2K5+>I.@Y;GTNZT3F!\^O'>SOYPL8NN:+2M |
5368 |
M&=KS^#!O=V8G9S$MFU)U&].RV=NM,6$5CXBH`(R'RY('5H$7BXN/PU\'T[0[ |
5369 |
M+2Y915YM/`]<ZW_^6'^E7^34M\VX[B_U`````$E%3D2N0F""4$L#!`H````` |
5370 |
M`"!R9#%*&WN*0`$``$`!```;`!4`9VQO8F%L+VEC;VYS+VUE;G4O86)O=70N |
5371 |
M<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
5372 |
M```0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3````]4E$051XVMV3O4X" |
5373 |
M012%O]VX,%N8#$%90M2)DO`&EOY4%H;P%"1;Z`/X>@O$QL[6BD!E82!!,I/5 |
5374 |
MO3:K[`:,AI+3W9OSG3NY-P.[K],SM3W<[=7O`3EL5-K;\"$@;\M+`>0WDU\L |
5375 |
M=&VOVH];#SFP?)U?X/L>3\_G+N_);;=^EWOIQRV\8L#1<97IQ,G,7FV<YFQ& |
5376 |
MI(?`BBN]8#IQ&*,Z6B5K\/OBDT@/"0+O9ZO&J'(`P'AL7P"LS4K]Q]$\!4A3 |
5377 |
M<07O>L"WE/+Y2`6M$D2@W0F#/Y=8U&@P6QSL#V@V*]>U,$$RR?Y]OQ.CX@VG |
5378 |
MDT84W.S@7_D"5WY*+%4V<Y$`````245.1*Y"8()02P,$"@``````(')D,4T< |
5379 |
MEZC``0``P`$``!H`%0!G;&]B86PO:6-O;G,O;65N=2]O<&5N+G!N9U54"0`# |
5380 |
M*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0````$`@&```` |
5381 |
M'_/_80````9B2T=$`/\`_P#_H+VGDP```75)1$%4>-K-DTLO`U$8AI].IRJ1 |
5382 |
M2MBPL!"_PP^@78M8D`C"0H2-A$1B;R.Q$8G$Y3>P9(7$)2[1$69H18=H1E6U |
5383 |
M.G/:SEC0<:MBYTN^G).3O,]Y\[WGP'^J(.!\ZN"?Q#$]XH25'4<YV7:6E^=_ |
5384 |
M!?&\KD[F*<GLW!0^GQ?;=O!7^E'"*C/3BZ5T(6#U`R!NJ"PL+"'[;+Q>&2%R |
5385 |
M5`<"F):%WU^!90D:&YMXN$_1U3GH:N4B,E#50,$VT4ZNT/4;),G#8RJ#)$DO |
5386 |
M5CU0L!WRN3PMK<T<'9XYU]?QD`O8W]^BD"^POK;%[NXV1N("2Z3)F@]?_`N1 |
5387 |
MX_#@E('>R17Y_314-4I/3S=&XH)D2O]V<-&(SGTB"8!4/#P]T]C<V*._OP]+ |
5388 |
MI,M&ELV:C(U.`X1<P&7TDI'A(=(9HZ3M]Z7';HO;51=05U]+>T<;\3NUK#A\ |
5389 |
MK#$Q/E.,\BV%R'D,(4QD3PUQ(UI2?*Y=H2B:>_M/S[A<!__/#WP&TINTG]V[ |
5390 |
M18L`````245.1*Y"8()02P,$"@``````(')D,>S*C%,5`P``%0,``!X`%0!G |
5391 |
M;&]B86PO:6-O;G,O;65N=2]Z;V]M7V]U="YP;F=55`D``RN`BD%3><A!57@$ |
5392 |
M`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM' |
5393 |
M1````````/E#NW\````)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"`H3 |
5394 |
M)QC-?V@F```"HDE$051XVI72STL4<1C'\??,KC:ZSFQ":^L:DKJ[NK;6J2@B |
5395 |
MA42DZ%`$=0HJ6G]`T:U#?T!UBV"I0Y<N09#1#XH((BBR0H,HHMBBTF9+*S1W |
5396 |
M=G9V9G:F;X<,MO#BY_3PA>=U^#Q?B7^3!`:!/J`+^`8\!AX"#U@B4M6\#SB9 |
5397 |
M2+1OZ.E)$PP&2283Y/,Z8V,WYTRSE`7.`H6EH'VR+(G1T8R8G!P7<W-?A*Z_ |
5398 |
M$^_?OQ(O7SX5SY[=%_W]O4*6Y;O_+P:`;B`[,I)I&AD9HK6U%=>MX#@.KNMB |
5399 |
M665\WR>9C#,[.QN?GLZ_!M[^!61@,)%H7W?X\$%:6EI0E#I454-1ZJBIJ240 |
5400 |
M".#[@I4KPQPXL)]0J"X#:-7`0#J]CGB\'5F6"85"-#1H:)J*JJJH:@.*L@(A |
5401 |
M?A&--K%F32RY6#8`06!M1T<[EF5Q\>(E<KEWR+*,YWGXOD^EXF+;98X=&T;3 |
5402 |
MPD0BJYIRN0]-U<"/:#22LFV;WMZM;-FR"5F6<5T7S_O30;%HX'DNL5B*A86" |
5403 |
M`SC5P*,W;W*]`P,&FA8B&*Q!DB1\O[)88@E5K<>V;4S3Q+;+>2!?W<'#:]=N |
5404 |
M_'2<,HY3QC`*%`H+&(9!L6A0+)J42D54M8&)B4F^SGQ_`4Q5G_&CX[AA7<]O |
5405 |
M2Z4ZD21!N6Q1*EE8E@5(1"*KL1V/;/8\'S],OP">`.9?`.#5U)3>-C\_WYU. |
5406 |
MIP@$`FA:F.;F&(V-J_BLZYP^=88]VS?3I1H]>GZNR_2XLM2/W%M?K]Q+)-H^ |
5407 |
M#0T=,3.90S/KUZ<>:YIZ#L@.#W:ZWY^/B0M'^T14X28070H)`QN!G<`V(+;X |
5408 |
M'HW4<N/"T3XQ,W%5'-_5Z3;6<8?E)J9PZ\3NSDI^_++8F&XSE@V$:HG&5&[O |
5409 |
MV)RTXZW-UW\#7O44.C:OPX0`````245.1*Y"8()02P,$%`````@`(')D,6G% |
5410 |
MJ3<$`P``"`,``!P`%0!G;&]B86PO:6-O;G,O;65N=2]S8W)I<'0N<&YG550) |
5411 |
M``,K@(I!4WG(055X!`#H`V0`ZPSP<^?EDN)B8&#@]?1P"0+2`B#,P08DY3__ |
5412 |
M3P12;$G>[BX,8/#3>7<]D.(L\(@L9F#@%@9A1H99<R2`@NPEGKZN[)>Y!/F$ |
5413 |
M%#;G3\P&"O64N$:4..?GYJ;FE3#XIN:5ZA9G5J6F*&0FY^=QV<(!%Y=&LJ:" |
5414 |
MD8&!L8)78G9IDH)Z5F9N;F*RND)P26IF7FJ1C@)71DE)@96^/D1"+[>T.#,Y |
5415 |
M(S$G1R^YBHLKN2@UL01H;'EF289"24:J@KNG;X`.3$MY>;E>>F9N@5Y^47IZ |
5416 |
MUW%W!@;&OYXNCB$5M]9.]LV6"I1HG6_]ZL?%I%\3]78)O%ZVUN"%&;?Y6R-5 |
5417 |
M@5_BC^PWS-["<?1*D,8/9JY(CXNMLX,\-N<L\>7:E1&>="DM0<3<4%A(_:)0 |
5418 |
MZI[8+;<,S12[Y2P*=G[?]_SIG-]Q/[HM':PLGEL4%S*V;/YP^_JK#ST7*F.D |
5419 |
M1-4;SO>V*5Z_?H_S]*8/%7=*_/L\[>M=S6:KSO1A>O#Y9X:)%/M4KZ=I"P,6 |
5420 |
MQ.BIN]^MW#9GTK+,KKGO=]_97S[]YLW7>RIF,CMX<3KLOJLV_?1$#Y4.%Z6, |
5421 |
M66U,"][_DVA[W]):6>"Q=Y]SP3.VAP4MQ[L_,[S8U;?N]9NW;P5YV"(C(APN |
5422 |
M;^'\;Q-;9[2GZNCZ,_=V^6J(/#I]33ULTWI&`QYFAM.;.HXF,7@FB![@/</\ |
5423 |
M^GI:6EM;HD;8\PEKSQK=O>?/8+=F[<//58P6@J<T?H0^UV:9\]*N9L(,C]LF |
5424 |
MOI4)LS;MW:^__?7MQ7\-119\/WY*Z<#Q7E^&KJ-*<_W8KSX^^#:P<'?,#>?J |
5425 |
M++8[?5^K&PXF''CY\N6.7@G?2=ZN'(4+#TBL>N7H9;A28>']]_^+N:8'K;PB |
5426 |
M'1HJJLC2M6B!QN,-$X(FG4S9D#L[:JV;C5SYJ7_[DF]_VWGF^6>CN7[>FDO7 |
5427 |
MA*T.5MS5\#?#Y)>&`$=!28F)Z_[[_JNO+KJ9(_>]*C9_94@4H]FYJ),QGYCW |
5428 |
M/JU_+,[]E96QNTEO,BA!>[KZN:QS2F@"`%!+`P0*```````@<F0Q[M=DWP<" |
5429 |
M```'`@``&0`5`&=L;V)A;"]I8V]N<R]M96YU+W5R;"YP;F=55`D``RN`BD%3 |
5430 |
M><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$` |
5431 |
M```&8DM'1`#_`/\`_Z"]IY,```&\241!5'C:C9/-:Q-1%,5_I@5+(02K7507 |
5432 |
M;@HB%A?B8"%=UD7%75!:2I'Z@8OB0MQH_0O$VEV1+E3H*HC@2@4-F.DT2BI4 |
5433 |
M09(L1#,UQ@@I0V,*IL[,NRYD0LR;8"Z<U;OGW',N]\'?2@#2!<[2H40I%0K? |
5434 |
M]\6V;3%-,Q!)=!2HU6JAL"Q+7->59#*I.=G3(D"]7@^UETJER&:S5"H52J42 |
5435 |
MZ72ZR8WPGQ(1#,,@%HOA.%OD\_E_WC4'2JF.0@"%0H%X/-[D]K8V!>3L^P_< |
5436 |
M>_281L-C=[?!PJUKC!P91BG5%-(&^+XOCN/(ZMMU.3U]14K.3WGY;E-N+#Z7 |
5437 |
M$Q.S\O3%*ZE6JV)95K!(M!V("+<7ECB?F*2VTR`:[>'`/L70P2'NW'^(B&@1 |
5438 |
MM0B>YS$P<(CBMRWJOWY3+%<8'-S+C^]>:(3>=@>1G@BOU]_@;+OLC_9C?[8Y |
5439 |
M,W:4W,<\(J()1-H=W+QZ@37S&5^_Y-C9WF1TY#!+#U:8FSG7G8.3QX\Q?VF& |
5440 |
M^;O+%#]MT-?7S_6+4XR/C88ZT`1$A/@I`_.)T6QN)79<8B:3P75=[7#:)Y;+ |
5441 |
M98!<^QW,=?F=`UP.B'\`HN%.%`M:]60`````245.1*Y"8()02P,$"@`````` |
5442 |
M(')D,1]5<(<.`@``#@(``!P`%0!G;&]B86PO:6-O;G,O;65N=2]S96%R8V@N |
5443 |
M<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
5444 |
M```0"`8````?\_]A````!&=!34$``+&/"_QA!0````9B2T=$`/\`_P#_H+VG |
5445 |
MDP````EP2%ES```+$@``"Q(!TMU^_`````=T24U%!](!!18%*U#\',$```&+ |
5446 |
M241!5'C:C9.QBNI`%(;_7&]CXSR+A6]AMV7:V\@6/H2^@^F7*VHCI+:(J(5" |
5447 |
M%(2;6DAA,I%H&+`),_\MEH3-)L(.'&88SO_QGS-G@,_U!H`_B#Y>+!IC&D-K |
5448 |
MS<OEPO5Z74#>7@*R+&N,S6;#/,\YF\UJ3JPO`"BE&NVM5BOL]WM<KU>$80C/ |
5449 |
M\TKMKR:!XS@00D`(`<=QT.OU((1`FMX0!$$EMP:83"8(PQ!!$$`IA3`,,9U. |
5450 |
M,1@,\/'Q%\OE\G43[_<[`?!P./#Y?-(80Z44`?!\/O-VNW&[W19]``#\+@DD |
5451 |
MR,][*26R+$.KU<+C\4!33@U0)(Q&([BN"Y+H=#I8+!88#H?06H,DC#'-)6BM |
5452 |
MF20)HRCB>#PNA\>V[?+L^SX]SZN44`%(*2FE9!S'C..84131]_W*-,[G\PK` |
5453 |
M^@)`DB2-%H_'(_K]VA37YX`D+,O"][MNMPO7=1MKKSB(X[C2Y>)<[*?3"4HI |
5454 |
MV+9=:LM7V.UVR//\I1@`VNTVTC0%@'_?G;S_\#L7\:<0_@=?4%M6IMUIH@`` |
5455 |
M``!)14Y$KD)@@E!+`P0*```````@<F0Q^->NL8@"``"(`@``'0`5`&=L;V)A |
5456 |
M;"]I8V]N<R]M96YU+VYE=U]T86(N<&YG550)``,K@(I!4WG(055X!`#H`V0` |
5457 |
MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_ |
5458 |
M`/^@O:>3````"7!(67,```L2```+$@'2W7[\````!W1)344'TPD(%302PJ1M |
5459 |
MFP```#YT15AT0V]M;65N=`!#<F5A=&5D('=I=&@@5&AE($=)35`*"BAC*2`R |
5460 |
M,#`S($IA:W5B("=J:6UM86,G(%-T96EN97(G,^]8```!RTE$051XVH62O6X3 |
5461 |
M011&SQU/=IW8<0*6<9"P!,XJ2/P8>@J$4O`$Z:#A+:@L-WF*%3Q`'@#10$-H |
5462 |
M0?P4!($(*2)BS!)LG-W->(8",,ZR3KYFFCMGSGPSPC%IMU%KE]=T]^>>`JB5 |
5463 |
MSMB-MQNFT\'^G9%IF]W3F_IC\5IUUBLWE'8+`-;(_D$ZV&G&IWIRJV.F`IQK |
5464 |
MJR^OTYK8P@VMB[=3JY<!/&4^&!,_=FJT6;_J=44Z5H=A>+]<+J\/!H,QX.$# |
5465 |
M1V4VX7P]H=$X1Z5Z$1&,&6Q=L3^V!)?LO'_T[3N0:-_WUUNM%D$03"@8#H>? |
5466 |
M,?MO4*5EO/D5`&VM.UV(=YLV/E@H+FH%H),D(0@"HB@Z`G!I'STR^!-7L];- |
5467 |
M[$5J]=WVTFJO[Q.&(3J_0D&4AT-CXVU,0>&PV/@3\Y4JK>M-#(N(TE,`HG!J |
5468 |
M'JO/DJ:[#(<O44HQ&FD.51TK)40*`*CI!D7<S!+67T'F+O'\140B%QBI&@Y_ |
5469 |
M_(`:Z$V^X#]"P8F:$Z>*X"Q1WY,GSUXY9W\;_ID5#7P]<O0D2!2"`H$[=^_E |
5470 |
MNN892&8%((HBR<R,`=WCOO1)R1J<%,GV-0G(ZF>+_;^CG!+)Z8,<Z#B_`,-A |
5471 |
MM#IX^HW\`````$E%3D2N0F""4$L#!!0````(`"!R9#$A-WD,<0$``'(!```C |
5472 |
M`!4`9VQO8F%L+VEC;VYS+VUE;G4O8V]P>2UD:7-A8FQE9"YP;F=55`D``RN` |
5473 |
MBD%3><A!57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M("(,S!!B3E/_]/!%)L |
5474 |
M2=[N+@S_07#!WN63@2*<!1Z1Q0P,W,(@S,@P:XX$4)"]Q-/7E?T*-[,HNZK= |
5475 |
M-L]:H-!_3Q?'D(I;>R_9>C4'"K0^3$^ZX'1%+Y2+^Z#HC56M2S8+%+(^TIKD |
5476 |
M=D+J34PK]X?E&SR3$Q='='A.]7,4%#SVS$WE"3?+E<Q[S\Z=L4Q_)V/VL<,_ |
5477 |
M)K2`75PMA'=ZA*N^,;NPQ9%VS:MNVL:_@V>$GBTM,2X6$-P>T==1ES;/[0CO |
5478 |
M/>5'`M+URQ@VV>PZQAAU0]_WK::-7.0+%Y?U)^KT<J8E7._>>T^B/:-&^X#- |
5479 |
MN8WMDR-SKEX\6):VSO5(=MH[-Y?B:0G"WO;F9U8E<.NK=J?-M+'*E==.?1P< |
5480 |
M6/!]]?*UX3PODA25Y#9("*:K-E=?^?>\N)?=^MCB32YKDPYHW.@-W)"<\X!W |
5481 |
M'P,7U[<]!?N/=@.#@L'3U<]EG5-"$P!02P,$%`````@`(')D,9!O4V0I`0`` |
5482 |
M1@$``!L`%0!G;&]B86PO:6-O;G,O;65N=2]C;&]S92YP;F=55`D``RN`BD%3 |
5483 |
M><A!57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M("(,S!!B3E/_]/!%)L2=[N |
5484 |
M+@S_07#!WN63@2*<!1Z1Q0P,W,(@S,@P:XX$4)"]Q-/7E?T*,Q>O$GM,AMY? |
5485 |
MH%!/B6M$B7-^;FYJ7@F#;VI>J6YQ9E5JBD)F<GX>ERT<<'%I)&LJ&!D8&"MX |
5486 |
M)6:7)BFH9V7FYB8FJRL$EZ1FYJ46Z2AP9924%%CIZT,D]')+BS.3,Q)S<O22 |
5487 |
MJ[BXDHM2$TN`QI9GEF0HE&2D*KA[^@;HP+24EY?KI6?F%NCE%Z6G=QUW![K+ |
5488 |
MVM/%,:3B5G*"!.N-`_4::EYS.AL<;]S0:)C(<;;BJK'02Z8Y63,U>`UF53RT |
5489 |
M%_OY?\<7`\&75L<N7NF59F!0NL7-/M$R,Q1H#(.GJY_+.J>$)@!02P,$"@`` |
5490 |
M````(')D,7W:.6-T`P``=`,``!L`%0!G;&]B86PO:6-O;G,O;65N=2]G;&]B |
5491 |
M92YP;F=55`D``RN`BD%3><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12```` |
5492 |
M$````!`(!@```!_S_V$````&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q(` |
5493 |
M``L2`=+=?OP````'=$E-10?4"`H4%`E6ZSMA```#`4E$051XVEV32VLD912& |
5494 |
MG^JJOB;='>TD3A)M.K'CF(QQ7`T."")B`BJ(FP$9=VX$000'QJVXU#\@7O`' |
5495 |
MR"#J<D`2T"28X(PF3$R<7+J32<?N='7=OZKZJLJ%/=!Z5N?`>5[>Q?LJ_&\J |
5496 |
MD[7<A:DG9H<*N6K@VIJBIF-+A';OO+/1:>XY0#SXKPT>8S,+H_7IZJ?5J?%7 |
5497 |
M?,<>MTPE)?R04K$8!)Y[MS0Q_9EY>G`+2!XRRL-EX>I+B\6L^OGE9R[5%E]_ |
5498 |
M@_F%RZB:AFYYR"!`/VORT8<?Q,T'K2]<3]STC;8!H/;Y\O1T[8?%I:7:.^^^ |
5499 |
MIU0N3-(3$8;C$R<1E6*>1T;'>7GI-65G=Z]^M+N5B62X#"0JD)Z[\N(GDX^- |
5500 |
MO?K^C9N*'<3T'$&42B,CD%(2AI(@E&2R.1ZOS^765GYZSM0[WP,=-5^J5"_. |
5501 |
M7?KXVO7KHX52A?LM`XE*E(`C`K*:0D9-T3HW.-<-,OD"0B;:[VLK`+>U8JDT |
5502 |
M;9MZM:$GG&S^2;%<)BM"5%4#$F8N3B%\G^'A`I;C<&[8U)Y^5@7E!4B&-,\3 |
5503 |
MA;/6W^G22)D8L%V7KNFB:1KY;)I`1CA^B.UX>'Z(8[O<O=<$&`'R6N"+H&=: |
5504 |
MT?+Z5OK-Q><9*1>Y=_"`^\>M?P'3@%@R/ULC\"4]T^*H<0PD,:!IH7#:F:&R |
5505 |
M$<D@)V6$E"%/5<>)9,C&]CZ;6UULRZ5>G2"(8O:/3C@[:49`&Y"I6`8'PNK^ |
5506 |
M_,?Z<K1^9QO;]1%!R.[N/H:N8UL6AFG0Z1GX4G)XV$BZ>ZLZ\`M@IP`[=,UO |
5507 |
MVCMKP>KJ)G$"G;;.SMX^CFUC6Q:^Y]+1;73#86/E=ACH)QYP"Q!J/Y:-*'`K |
5508 |
MYMEA?6)V/KV^L:V>G+:1OD"X#L(5-!J'\?*/W_KZ7VL=X"O@.\!3!B(]`=S( |
5509 |
M%H;?SHP^F>3'9A[5"B4M#OU8F!W;:OSF1?:Y!+X&O@2.@5@9Z)("%(`KP%O` |
5510 |
M5:#<=W@*W.G;_A4P@>@_91H0R0!%H-(75``!=/N@-]C&?P#?FYUVEU<W0@`` |
5511 |
M``!)14Y$KD)@@E!+`P0*```````@<F0Q1#Y_/AX#```>`P``'0`5`&=L;V)A |
5512 |
M;"]I8V]N<R]M96YU+WIO;VU?:6XN<&YG550)``,K@(I!4WG(055X!`#H`V0` |
5513 |
MB5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0````` |
5514 |
M``#Y0[M_````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@*$R<ADGK@ |
5515 |
M+@```JM)1$%4>-J5TM]+4W$8Q_'W.:W:V7%G6[CM>!1)VZ:K61`D5J20A!1= |
5516 |
M%(%=!17-#)3NNN@/J.XB&`:%X$T09/2#(H((B@K1()`P)N2/-IH5K?TX<SMN |
5517 |
M[MM-P0IO_%P]?.%YP?,\7XE_$P+Z@!Z@'?@&O`%>`2]9(U)-W0]<#@9;=W5T |
5518 |
M1+#9;(1"09+)!./CCWZ:9B$&7`>R:T']LBR)"Q>B8FKJK<ADED0J-2?FYV?$ |
5519 |
M]/2$F)AX(7I[NX4LR\_^;]P`;`=B@X-1W^#@`,W-S8#$R,@M7"X7-ML&RN4* |
5520 |
MH5"`I:6EP.)B\B/PZ2\@`WW!8.N.LV=/T]C8B-VNX/%L(1Z?I5PN8[-M9'55 |
5521 |
MX':[.'7J)*JJ1`&M%C@4B>P@$&A%EF54504VXG`H*(I"79V*W;X9(:KHNH^F |
5522 |
M)B/T9]D`V("MV[:ULKR\S.W;8\3CLS@<"M6J8'1TC'P^3Z%@,CQ\'DUSX?76 |
5523 |
M^^+QS[Y:X(>N>\.E4HGN[OWLW=N)HBB,CHZQ;U\7;K=&-INA4EG!,,)D,ED+ |
5524 |
ML&I'>#TS$\<T<VB:BM_OQ3#\Y/-YW&Z-A@8OAJ%3J50Q39-2J9@$DK7`J_OW |
5525 |
M'_ZRK"*65227RY).IRD43#*97^1R>0J%/$YG'9.34WQ-??\`+-2><<ZR5ER) |
5526 |
M1/)`.-R&)`F*Q64Z.W>C*'965ZO4U_LH615BL1'F/B]^`-X!YE\`8'IA(=&2 |
5527 |
M3J>W1R)A)$E"5>OP^_UX//5\222X>N4:QP]VT>[,=222/]O-"G?7^I$G'`[[ |
5528 |
M\V"P97Y@X)P9C9Y)[=P9?J-ISAM`['Q?V\KW]^/BYE"/T.T\`O2U$!>P!S@" |
5529 |
M'`",/^^Z=Q,/;P[UB-3D/7'Q:-N*1^$IZXUAY_&E8VWEY-L[8D^D);=N0-V$ |
5530 |
M;CAY<K@K5`HT-SSX#6K;`MK,R2%0`````$E%3D2N0F""4$L#!`H``````"!R |
5531 |
M9#$0\7GT(`(``"`"```B`!4`9VQO8F%L+VEC;VYS+VUE;G4O861D7V)O;VMM |
5532 |
M87)K+G!N9U54"0`#*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(` |
5533 |
M```0````$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+ |
5534 |
M$@``"Q(!TMU^_`````=T24U%!],)%A(?(;Z-Q\T````==$58=$-O;6UE;G0` |
5535 |
M0W)E871E9"!W:71H(%1H92!'24U0[V0E;@```81)1$%4>-J-D[&*(D$0AC_' |
5536 |
MYB8T]4Q-?`$Y$)PQ,;OL[@$NN.Q2DWN"37R(!1$,SB=8L$T,!DQ/8^G1,3@< |
5537 |
MA8%%I*<O4$='V]TM*.ANJO[Z_ZIJN-@WP`"F",8!\^ETO_&O5SD4KLXF35,< |
5538 |
MQV']^T?V6'YZ1FN-4HK%8H'O^P#?@2&`PP-[#4:\!B,`DB1!*46CT6`P&`#\ |
5539 |
M.3/),>`-&PZ'!$%`%$4HI1B/QP"%.P;[_?[.`>KU.J52B<WF'[/9+(NW2@C# |
5540 |
M$-=UB>.8)$D`F$ZGU&HU>KT^_7X_BQ4V@&JU>FQ@N<QNMP.@U6H!D*9I+M;* |
5541 |
M8+5:`;#=;A'B6$-*B9028_*MLC(00A#',4*(#*#9;!X[_1Z`Z[K6*4@I`<Y[ |
5542 |
M8)>@M0;(%NGER^?C?;W&]WT\S_N8A/+3,]UNEW:GDZL.X'D>#U=9:TVQ6"2* |
5543 |
MHJQ2I5)AN5SF],_G<]KM-D!!V"9P/:HP##'&W%&W2IA,)AP.APNE4])M\HG1 |
5544 |
MWUNP7]B_[R/_"?`?/,K'="1CES``````245.1*Y"8()02P,$"@``````(')D |
5545 |
M,?J$A58F`@``)@(``!H`%0!G;&]B86PO:6-O;G,O;65N=2]I;F9O+G!N9U54 |
5546 |
M"0`#*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0````$`@& |
5547 |
M````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$@``"Q(!TMU^ |
5548 |
M_`````=T24U%!]0("A0?(AFC&^H```&S241!5'C:M9,]2%M1&(:?&"]4:^M@ |
5549 |
M)S5#B9"ANHB38X<.I>BHB#JI@Z%._@UV$W_64E/;='!0$`=10C9%:1<G$>(B |
5550 |
M<HO!QB7^8Y)YSFP[>>[DWMYOT@\/YX;SO]W[G>P_\A_`!<T`,T(P1,\Y\ |
5551 |
MY9<]9?L!(#0Q$U)>-P7P5'C1I4XZ>\VOGSMLK7X1P##PPP1X[>!&_YOPXG+$ |
5552 |
M>RLJ.4EF2*9R)%)9,C?W5+^L(]#VUIM.J!T/=[DS8-^NP`>H&]O[RL'Q&5>Y |
5553 |
M6Z24?)WJ!Z!W,H24$BDEA?P#T>^?!.`'3BL,@N#@^+P#+*2TI)E@(00E/+2^ |
5554 |
MZU6`H%U!;'%MN_E0O;#`LFP((:RU5BRPNS)W"+14&@2!%]55#O#2])"EH#,X |
5555 |
M[R#32X\8`+,$]#^Z(W/WZ&=7"?8$9I@$1YJFN62[WL"<BP6`(SM!-/[[F-J: |
5556 |
M9XZ:[01V=;G+.$#4U<;9\+IRDKCB/)UE<V'"X;#VKC$C>YZ#Z#>KC78G#KQJ |
5557 |
M\(<_](U0PL-Y*NO*K!7SJ'L1[C/)0=.-_[3R^YZ/RO.Z>BXR-U;;KB_CJ'L1 |
5558 |
MEY6?_)F>''\!=.$Z4R1N6P``````245.1*Y"8()02P,$"@``````(')D,0LN |
5559 |
MB4CU`0``]0$``!H`%0!G;&]B86PO:6-O;G,O;65N=2]E>&5C+G!N9U54"0`# |
5560 |
M*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0````$`@&```` |
5561 |
M'_/_80````9B2T=$`.H`Z`#C!=56VP```:I)1$%4>-K-D[%+(T$4QG_F"J_( |
5562 |
M"D:M5)3S#S`BBJ#-GA"3QDJXNT8.M!`$+11[*Z_50@0-RF$34!("BN0X90M! |
5563 |
M3R*GI6C41&.RT?7<K&YBB&N3B&=64MCX8&#>?/-FYGW?-_#&*"F"9Y_-/YAM |
5564 |
ML+S(&P`U-YJ!S-'A@07(Y/(\UO#:C:JB*!F_WV<`JM,A&O/N:</I$`U`_3$Q |
5565 |
M;@";N4-,6U#=<S."IJF4"=:GQ9N;?Y26?B0>B[*U'60ML)$$RLQ:$/OZ!Y+Y |
5566 |
MXL"O=21)(GV?)1Z+<J?K^6+1C(,L\,?I$`4`29*0Y01;VT&6EY:IJ_^$KJ?( |
5567 |
MX3X@4?`"1;FR#`T/`9"^SQ(*'1,.GQ$^B]+EZJ;"5DYM;37?>[_4F*I@LU6D |
5568 |
MIR:G`+#;&ZFJM&$5K(R.C)!.I3B/QHA$SEGXZ9&!!S,2FX$-G]<C_-W=H;6M |
5569 |
M'7M3"]?*%>N_`^SO[S'K7LQS$#15877%*]QJ&IJ6Y/0D!,"=K@-P$9-)R)?_ |
5570 |
MJ5#@`V#SV]<>`[AU.D1C;'3PR0<N5V>!#RCBQ,AGL<,`(J\YL=A?B#\CNHIW |
5571 |
M&8^=0[@3M3A_V0````!)14Y$KD)@@E!+`P0*```````@<F0Q=IK:*I`!``"0 |
5572 |
M`0``(P`5`&=L;V)A;"]I8V]N<R]M96YU+W)E9&\M9&ES86)L960N<&YG550) |
5573 |
M``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`````0"`8` |
5574 |
M```?\_]A````!F)+1T0`_P#_`/^@O:>3````"7!(67,```L3```+$P$`FIP8 |
5575 |
M````!W1)344'U`L#%0<D2;%YZP```1U)1$%4>-JETLTK1%$8Q_$/(<R,F.XT |
5576 |
M>=UXE[<TAI2PD[)0%NS\!8KMM9&-_\%>L?(7L+1B845)-I2R\!^,S573[=[Q |
5577 |
M]FR>TW/.[_N<\YP?/XN*?T;X7T@%(TF0^A1!$!W^ZGS0WF4>TW%($J"$6PPU |
5578 |
M93VB(1-X^GAUWC-C`^.UGE.*-G.9#MO(%4?M(=\WZQC%*$\E0?)1L;>ES18R |
5579 |
MG2/V$<3$7WDU#CG$9F/.#IJ'%UV@/+[B.B&O)=T@S`8.T32VY+*&>#UM!A6T |
5580 |
M]B\X1;EOPGW5+X3?B2$L#-I%>6#.322NAJ]]9Z8*.J).(8Y^Z\0P6W"5XKA4 |
5581 |
M<5W5>@P;W9."ESOO>,397SR_7!QV$IM!:L2MG,'5VX-G%'X"^`0BQ4S#@6// |
5582 |
MK`````!)14Y$KD)@@E!+`P04````"``@<F0QXIST=$\!``!L`0``(P`5`&=L |
5583 |
M;V)A;"]I8V]N<R]M96YU+V-O;VMI92UA8V-E<'0N<&YG550)``,K@(I!4WG( |
5584 |
M055X!`#H`V0`ZPSP<^?EDN)B8&#@]?1P"0+2`B#,P08DY3__3P12;$G>[BX, |
5585 |
M_T%PP=[EDX$BG`4>D<4,#-S"(,S(,&N.!%"0O<33UY7]"C,7KX+HW.>VYD"A |
5586 |
MGA+7B!+G_-S<U+P2!M_4O%+=XLRJU!2%S.3\/"Y;..#BTDC65#`R,#!6\$K, |
5587 |
M+DU24,_*S,U-3%97""Y)S<Q++=)1X,HH*2FPTM>'2.CEEA9G)F<DYN3H)5=Q |
5588 |
M<247I2:6`(TMSRS)4"C)2%5P]_0-T(%I*2\OUTO/S"W0RR]*3^\Z[@YT5Z*G |
5589 |
MBV-(Q:WD!(F)#EU"9T5Y>'AVG[AZA^]JCM>Z9_^!O'5'LEXD)R2<:-GT=<&L |
5590 |
MVYU78YBO?IC?V*C(\NH-.U!:;(E%I1$S\V%IE>:R":_2.5>\-7#^=)+WI\\* |
5591 |
M\262;HQ^#`Q3MH@(S?#-N@.TC,'3U<]EG5-"$P!02P,$"@``````(')D,>!` |
5592 |
MRF_[`0``^P$``!H`%0!G;&]B86PO:6-O;G,O;65N=2]E>&ET+G!N9U54"0`# |
5593 |
M*X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0````$`@&```` |
5594 |
M'_/_80````9B2T=$`/\`_P#_H+VGDP```;!)1$%4>-JEDT]+&T$8QG^9V<SN |
5595 |
M)AIJQ9YZ"O90$!JP+8I0"2*40D\%S\4/8(_%4_'F)Q"\Y:!(01"Q8J$8C.#- |
5596 |
M2VO$2P]A8Z0UCF83%$N2C8<E-FL,"!EX+^_,\SSSO'^@RQ/JD&\\%&]TNG&< |
5597 |
M'*Y;0FN-UN<4"B?,S'QJ>V<\1#D2B6!9YKU"XF[B>'H2@%JMYO\Q%$((@1`2 |
5598 |
M`&4I3-L,$#1:`MG_A(T/;XC'!ZG7ZVV*EJVP;!6TT%0%J.M3ABYRK+]_32(Q |
5599 |
MS/;V#XK%XG^"J(64`O>\$JS!_K>]8'G#919'GS,Q,<GL[&<<)P^`:9M(*=IK |
5600 |
M\/?T*A!'A1)]RO==J51()I-^07ML(KWV'0N_3[`>11&&I'!6!B`^/L14)DLF |
5601 |
MD^;Z^A_Y_+$/4!*EPD&"D=W#V\1\"SB;_8G6.MAGKX'12O!Q[NVMC=27[UX3 |
5602 |
M[#@YRF47@&JUBNN6`)!AB3*-CH/$5"8+@.=Y7%Y>\>O@@/1.FK75=5XF7Q#K |
5603 |
MCV&VM#&P"X:2ZNFS@6KN\(^WM;7)\M<EEE(KC+U[1>QQ+\I2&(8D)`2K"QO^ |
5604 |
MG'6[3-UN,S?Y.)9KC8--=`````!)14Y$KD)@@E!+`P0*```````@<F0Q_-=E |
5605 |
MA_$!``#Q`0``&@`5`&=L;V)A;"]I8V]N<R]M96YU+W)E9&\N<&YG550)``,K |
5606 |
M@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`````0"`8````? |
5607 |
M\_]A````!&=!34$``+&/"_QA!0````9B2T=$`/\`_P#_H+VGDP````EP2%ES |
5608 |
M```+AP``"X<!DT"'4P````=T24U%!](!!PH**89?\[T```%N241!5'C:I5+! |
5609 |
M2@)1%#WC2(O6VB:#"BJU%@5M`[_`;0M_((AH&85!4,L@"2/,4`@L7(C11J)P |
5610 |
MTZ(@L4!&DS`)*6QJ1G.R:0A\+6J&<<9JK`-O\=Z]Y]YSWSV`,9#O`B88!_E7 |
5611 |
M@7!DZT<E6CB_DI53>KPBZX%5HBW22L&TP^%@(M$06+Z,,E<$6RVA)G(8G>A! |
5612 |
M8&>M20FE)0/P7^33Z.ZRXHZ_!DU3$,0*ZE)%2<J=/6%V:@X`*%I%'@20.#B* |
5613 |
MPCG@!%LK`FB`?RGC[5UHZF*U=<),=^#R/+MD5KU[W&XW1NQCJ+X^()D*@^5O |
5614 |
M6GY0@>&PMY$!`$H]`DDD8[`/#V'W<!ZB)+0DY](L8IM997RU`O3V]>,X%8(H |
5615 |
M"9]=?!DEY@VZ=&3=%AJF.F[OTWCF))E,R<D%AM.1=4X[S>\3;]`E[WI9X\+? |
5616 |
MG1@*1&"SC,O714TN9<A]\1._W&T2?P"96?"0[?@*:<?W:EA4\_J,$#X`;"&7 |
5617 |
M^]>B6'@`````245.1*Y"8()02P,$"@``````(')D,1E6VOK@`0``X`$``!X` |
5618 |
M%0!G;&]B86PO:6-O;G,O;65N=2]D;W=N;&]A9"YP;F=55`D``RN`BD%3><A! |
5619 |
M57@$`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````& |
5620 |
M8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q(```L2`=+=?OP````'=$E-10?4 |
5621 |
M"`H4+#+P?VZ^```!;4E$051XVJU2,4O#0!A]T4(;$(J%#AU2U)04(L28P4W_ |
5622 |
M0%U<,G04='!RD`[Z#]S$Q=&YBX-&A$X%75PD'0P(M;:E)%G$%J21R)U#RT': |
5623 |
M7"8_^);OWGOWOG<G(+YHS$R(`Z8X`CA].D9GV,;0&^%^O\F#\07\;Q</O5O\ |
5624 |
MOB.Q%G@'(0TGOC/)`BG>WH20I%R$V!5.FD<`@,RBB+>OUZD2L'6I`@#$T1*: |
5625 |
M9\_<9"5-TWH;YS+N/F[FK*Z/-O%8>P&`(H!^7`;]5JM5M&MM[*[L1<AK'16? |
5626 |
MUS]S9%Y)JJK2@T:5+E^!;E\85)9E"D!*(NG3D%AGLUEZV*C2V?FT=V8SH$$0 |
5627 |
MH-OM,D7;MF&:)BS+0JE48O/Q>`Q=UQF7";BNBWJ]#D510`C!8#!`&(81FX5" |
5628 |
M`>ET&I5*A7$CSZ@H"LKE,AS'@2B*,`QC8E.8W)//Y^$X3OQ'"H(`A!`&R.5R |
5629 |
M\'T_`O8\CQOB*B<L7NOXK_H#P2*,Y,^*.PT`````245.1*Y"8()02P,$"@`` |
5630 |
M````(')D,</_:YXT`P``-`,``!P`%0!G;&]B86PO:6-O;G,O;65N=2]C86YC |
5631 |
M96PN<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@`` |
5632 |
M`!`````0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3```"Z4E$051XVIV3 |
5633 |
M2VA<=12'O_N_]T[FSIT[&),TL4P@9BITH3$6"U:;IA:2*,$&(JV(6MT(043( |
5634 |
M3A>BB,924G!3$#>*N+3BI@@B@A@#(;$UC:EVQO'11F<RDWDXF?M^N9"1*G:A |
5635 |
MO]4YG//]..?`D?E3NA#BF!!"C^-XF_^J=#H]?VSHMOA0MM\S#&/A9GV:IIT0 |
5636 |
M0N155?U>5=61OPH'!GJN%\^^''_S],/Q\<'>V#",5_X)Z[H^>5=_;_3%"Z?B |
5637 |
M\Y,'8DU5?@$0`.F$BG5E'==V>'$TQW@F\:IA&,]UX&0R>?R.C';AP\>G)&EC |
5638 |
ME>UR!8W(`9`!&D'XV*-]>M:KE`ALB_'A+&W'F_[1BZNI5.IRM\RW'S\Q+5]; |
5639 |
M6V&S;O+I=HOUMC<!E`7`_6-'/GI^)1_+W;W$@%??X61/@KMU]9QIFC^?/S4C |
5640 |
M7;NTQDIUEW=^JG"A9DW$<7P)0.J,F4JE7KI=4Q;>/K0?K[%#"(01A,/[V6LW |
5641 |
M62U>Y\VK)7\KX+X@""YV.+D3^+Z_9`FEN%EKS4[EL@2VA9"@6Y&H;E<XG2]3 |
5642 |
ML,,S81A^<.-QY1L3W_<O;UEN5ZG1''ODR&'<G0J.:2(+&._+L&Z'8Z:D;/B^ |
5643 |
M_]V_&BB*,C>@2*??G9^C\?4R+A)Q%"%+H$IP^)8D%UONK"G)*[[O%_]F((28 |
5644 |
M/[BG>_']N2>5QM)G;#9MGMTH%0I6T/-0;I#(L>@2$D=[='FYZ<XT'&\3R,L` |
5645 |
MDB0MG!P:>/V-$]-*_:O/*9@NBX6*%2220R4W*.6KC>F)?8-$MD67!*.]F:Y/ |
5646 |
MRJW1((K.R0"Y5.*]MYZ:S?R^ND31\CG[0S7X+6!?N]UN>)ZW6A.JN55O33XX |
5647 |
M/$AL6_A!P%K;%S7'.R,#1(KR3*Y5Z:]Y(:]=+5,)I0<<Q[G26<_SO.42RIY? |
5648 |
MFZV#1X>SE'8MOJS;NS7'701`5=61.S/:3E93ZYJFS=SLF0S#6+AW;Y]_3_^M |
5649 |
M<3J=GN?_2);E$2'$%*`#_`%C/4<^P\J]=P````!)14Y$KD)@@E!+`P0*```` |
5650 |
M```@<F0Q1(DJ<ZD#``"I`P``&@`5`&=L;V)A;"]I8V]N<R]M96YU+VAE;'`N |
5651 |
M<&YG550)``,K@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`` |
5652 |
M```0"`8````?\_]A````!&=!34$``+&/"_QA!0````9B2T=$````````^4.[ |
5653 |
M?P````EO1D9S`````0``````$79E:P````EP2%ES```+A@``"X8!00=EMP`` |
5654 |
M``=T24U%!](!"`<G!RH8)Y@```,1241!5'C:59-=:%MU&,9_Y_2D^3I=QVA@ |
5655 |
MJZ4D+=6)3AGMI+4#$538IJ&E-V.MZ*9C%RL,<<R;@1=Z-V^JH$X1<7Y4V9=5 |
5656 |
MBY#1*KC0SJ[0+4M7W9+T-"=IEC1I>GK:9/GP[X4Y4!]X+]Z/Y[EX7AZ`%P$! |
5657 |
M")_7^S)PP>JWEJJJ[V]K:#BP96:C!@$,/M;1]BX@SKS]EE@(WQ+&6E88:QFQ |
5658 |
MK$=%X-=Q\>8;1X7;Y=*V;V\\"0S7>/\)[&Y]Y#0@4A=&1/[VE$@E-*''8R*5 |
5659 |
MT,1*9EEDTTD1_^"T^+YKEP"$TUY_QA*HV]/<%)C7'_R0&OL6AU0A^5N`M*N1 |
5660 |
MJ*YC&'G<JAM)CR%&/V:7708ARL&,Z0,&@:B2KW,<Z^_SXRRNDPR,,3E[B[F% |
5661 |
M%-=NS*(M+='?Y^>YU1A']G>A)!=Y5;;;-I[8U_%G5'_M]IWP[P!?)Y<T$?UJ |
5662 |
M1`1>>%ST]G0+X"+P#.!3%.5Y0%P_=DAD1\X*[>?OQ/&C0Y:1VV1@2&U4,9YZ |
5663 |
MEI6#0Y8OYX"_@'BE4OG#[S_4_L[=+/;#)Y">W(>OS6?=.10`25119`6WMYW@ |
5664 |
MU#1`!M@`*@#A4#@>B2TBG&XV<WE6\VN6@"(#F(:)T^6DN:65WIYNE+HZKW4Q |
5665 |
M-G9%]K:UO]+;TTVU7,7(&VR%#'P3"M^EP>UF9S[%ZVU-5*K52;__0&N[SVO[ |
5666 |
M_+,O!B8F)BY_>N0@#VX&65E),W5C=K;&KRANETO[Y/QY/MR[D_KU'`/[.]G3 |
5667 |
M[*'[W)<1@$ALD?F/WJ-Z+\3Z^"@13T?!66_O5%7UDFF:1=ENMU^]^N-/!'\9 |
5668 |
M9S-RGW)XAD<[NS!R&3:,'&8\0FEA#NE>B&`BRS]ST\YKDY.8IODW\%#)K:[> |
5669 |
M]'B:!@[/)"Z?RA7*@XK-MJ.I!2F7H5!XB&F:)!H\Z'H6@%.A]'5@&3@)G)5J |
5670 |
M_QQVU-MV%TOEX?X^/YU[GZ94+H(D4]PL$5_2&+UX90.8!Z9K;[X#-&X-E`#< |
5671 |
MDB3U`#-`$D@#<>`2T`)X`0T(`R\!2/P?4BVFCEHIEMM`L;8O`"6+\"\ZY6+J |
5672 |
MC)UB#0````!)14Y$KD)@@E!+`P0*```````@<F0QE/&J#'T=``!]'0``'0`5 |
5673 |
M`&=L;V)A;"]I8V]N<R]A;&5R="UE>&-L86TN<&YG550)``,L@(I!4WG(055X |
5674 |
M!`#H`V0`B5!.1PT*&@H````-24A$4@```$````!`"`8```"J:7'>````!'-" |
5675 |
M250("`@(?`ADB`````EP2%ES```+$@``"Q(!TMU^_````"5T15AT4V]F='=A |
5676 |
M<F4`36%C<F]M961I82!&:7)E=V]R:W,@35@@,C`P-(=VK,\````5=$58=$-R |
5677 |
M96%T:6]N(%1I;64`,CDO,2\P-`8><<H``!S-241!5'C:Y9MYE&5%G><_$7&7 |
5678 |
MM[]<*K.R*K,V"HJBJ()J0%`H"Q`'4$$:6YUNW,:AE5;[J,ST')T9=<;N@V.? |
5679 |
M::5=&U2.BMH]-K8@(^JHHX"`0"&R"=2^5V969N7VUKM$Q/P1]V6^+`K%]?0Y |
5680 |
M\\Z)$_=EOG??_7U_W]\:$<):R__/+^\/\2-"7%<$E@,G`:L`"^2!!$B!%C`. |
5681 |
M;`=&K;TY^4,!('X?#!#BNC[@3&"+Z"U=+G+^LJ":R_LC2R2A5]8Y/R_"`&*- |
5682 |
M26(*UJ2RUDJBL;FD.=N:,;'>92;G[@.^#SQJ[<VM?_4`"'&=#[R(?/"Z7%_^ |
5683 |
M,C%4&D[[2Q6QK!]OL`]5S"/#`!4&R,!#^#["6DR2@!!8:]&IQC3;)`<GT*/' |
5684 |
M$-M'I^(CLW,VT;?3BF^V]N;M_^H`$.*Z`/@W84_X+E$T6Z.5_44Q-(CJKR+] |
5685 |
M`!GZR-!'!0%>7Q55+N*5"LB<C_`4Z<0,-DDQ<8J.8W2<8)(TFQ/T;`V]_1#V |
5686 |
MX7UMJ\6/:<7_T]J;?_P'`4`((>PO^8`0UVV0.?4%U9.<G0SW!PPO0P0^,O"1 |
5687 |
M0>#F,$`&`2H(R)^W`17X**604B(`W6B33LZ0-MOH.$$G,29**:N$J;D('278 |
5688 |
M.,:TVYCQ*?P=XT>3T<9/:-9N@*\^`1C[6VCQ.0`((00@.V\SAV4!V_DA(:[+ |
5689 |
M$_HW>,7TC>D2-<#0,@A\R`1?!$(8H`(?&8;XR_H)3UF!UP%!28PQZ#BAO?L( |
5690 |
M::.%B6.6%Q+>L"G!Z(@SED7X>IR>P]_#CD7\=,]2[OQYD0<>#P^D,ZU;:3WS |
5691 |
M*7AP!M"_"1B+`,B$]P#UC2OR:TY:5;KEK,],7))Y:FVM-4)<MT&6@D^J_GA+ |
5692 |
M4BZ&Y//@^Q`&X/N(CN:/9T#H_E:\</.\\%(Z`)+)6>+1273+:=PDB3.!.,9$ |
5693 |
M$:;5Y'5#/^2_7W8_Z\ZK8&8$[!4\^$C!WGU/9?\3>PY?]?7'G]X+Q-FSOF`@ |
5694 |
MC@=``2&0?^*=_3L*.:]Z\L?'AX`V$,';+U45^QE=3591*(,?@.]EV@\@\!&! |
5695 |
MA_`#I*^0?@9$+D`&(2H,*%YR#E)*I)*(S/FE<TWB78><"43Q`@!)1OU6$].L |
5696 |
M8<=W\(F1[_.NZRK(4P5$!F8\YIX0]N$'Y.V7?O[1ZX!F)[R^$!#D";1?^,R5 |
5697 |
MU:N75OV^<BC45U[;^U=`$:ZY6I;J_ZB#N55('[0&G;HYU9"FD"00)Q"UL%&+ |
5698 |
M_[3A*%]]98-;7MZD(A.L$AACW-#&>7UM(!]`(<0F*59K;*JS^QO0%HP%HR'7 |
5699 |
MS_^=/0U]/^@[P#8#&*Y1/LV(2R[E-7L_N/GIM[UX8&668_A"")G)]8(2(0GX |
5700 |
M0/'T)>K#G3^>M=Q_]\J>K7-']-P'4N7E\2KNX:0$D0TI'.968TW,EZ^P7'/% |
5701 |
M>E0NSX'['N"B?YA@9N4EA*>LQ6B#M19K+`BP]0A"#RL$)DDQ28I-4VRBL6G* |
5702 |
M1C7&JWJ?YD\V'6#CN@9B(,9L;V./YM%W:KRK+D:>TXM1#[,R:0R\SPX_\/)U |
5703 |
ME6O^[:V['\R8JX40NMN'G=`$A!`^4`&&QO_ST%/='WKHD&]?_2^G"H(R>'[7 |
5704 |
M\)P)^#XHP>D#,?=_Y#2JP\.0).S_P3VL_7P+-7(&WO!RPJUG(ST/J13"@IFI |
5705 |
MHX_.(I>42<:G,',-1_DD1?17T+4F>N(8-HHP[09G<)`;KZAST:6]R&4*_<@/ |
5706 |
ML?=:Y,M[D"_Z((P]@+GK3L8/Z_9[OKG_)6>O+*W_XTV]R]9_Y/'/9DY2'P^" |
5707 |
ML-9VZ!\"_>_?6GK+]1>4;NA\(&D9XJ;AH;$BU_[T=*[<7.3B=8KSUA7(*</1 |
5708 |
MM,C/#H,_M9\_?\U&?-_'3$^13HSSIEOV<$?U,KQ33\$_]634\D&DYT.]C3E6 |
5709 |
M@[;+>$5?B73/(4R28)6$_BJL&$1KC9F<03^[#SL^#LT&-&=9:8]RX\OV<?7U |
5710 |
M&Q'%%'WGP\ASIA`G_35,@;WC?_'LKO&#&S[ZQ)\<^NH9]W[Q'Z?7?_`[!X]F |
5711 |
MOF$1"-T`%(&!&U]9_=2?GIY[5=QT@B=-0YHH^D[?2.^F#<A<+HN.0&9>-HTQ |
5712 |
MSSZ!9R1F9@H;Q^S:.\669>\A6K4>V;,$5:BX$*D49M\$0DDP!MM.D"N78(UQ |
5713 |
M(Q\N]A-:8PZ,PB-/0]2&=@/:-6C/L5)-<<_[1EG]Q^NQS^Q'C.R`_G?#1"_V |
5714 |
MNW?Q[8?V?6?UR],+18U'-OWYSJNSFB.VUIKC?8`$%.![;;UV=C0AR0#(>8KA |
5715 |
ME7UX\0SZJ9]C<CE$F(-<'A'F$+D\T?;'"&8;I-9@K;/Q;8<:U$_N02'!"K!@ |
5716 |
MM4%8$"OZP8(9G8;>(L936*&PUF*TQAJ[`((QCBE&.V>(`A&"+'"@;5CS7Q2W |
5717 |
M_^))KGI;'CN[$>']`U3?BCC[/*[4Z2OOW+7]J5>^;G#KFU\TL/S6;1.'.OG" |
5718 |
M\SE!SV_J8&XT(6UK!OL4U3X/VYPE;<\!`J,CK$F1RL=*@?`\T"EI6(9Y``RW |
5719 |
M'?2P"(R0CBG68HU!.,8AA("A*@#&&JRQ\\[1V`4&H`VL&'*A]B?;P`@0'H0% |
5720 |
M%WVDYNK;-_"^L4D^^MX]<*P?"M^`95MAU2F<*:=/\48\<>6YY??>NFWB`T`L |
5721 |
MA)@/D=T9GP1DOJT+T53$4%]*(0]I%)%$#5IQC58Z2YPT2>,6<;M&VJZ3-N>P |
5722 |
M)D6G;70:S8^734QSSJ,_PJ0))M7H5*/3%*VU&^GBN4/WSO6\\*EQ4:>G`N=N |
5723 |
MAMZJ"XU;ML#)ZV#MJ;#I+/YV[%R^=G,?-&*HM:#Y#"P]S*JAD5#/:4[=$%Z= |
5724 |
MF;G?'?Z]+@`$("?:J(M.M\B<C[$IPJ2@/`@#K+4(DX`5B(YF`:,3+!:!G&>` |
5725 |
MY\&UC]Y&?Q[^STO?`M8B_1`A)2CIOH]PE2#6F8AUU,?:+`<X#H1J!<[:"(?& |
5726 |
M()>#4]8YOU"?@]3PKITOX8+_?0^K+V]`M`\"`R)`-3PVG53M!PJ9LV]EIO`< |
5727 |
M$U`7_E&A7_1ZD*2.8EJZ4B!-$:E&I-H)?EQZ88W&DCT\EE))4BP*KMOU3<YK |
5728 |
M/,V^GA4\55E)4_H<7G<A];X1D%X&P'RUD24]QHU%`&0@"`G+ET)BW'=0H`+P |
5729 |
M\LR*"O_MH3)?6JL1JV8@F(%<&^J#4(2_?L6*JS[TW8-?`E3'#!8YP3NN6?/9 |
5730 |
M@:%(VE1#%&,`,]2'B!/4^#12ZWFM/^=E+=9F``A!;Z\D"*!0$%RJ=U!L[^39 |
5731 |
M2<-UVU+6#GZ9QZZ_'?P\*+50<QF;:3\#H=9R-4:<-8@Z3.C,G2P128\R$`AN |
5732 |
M/7H:7SKZ)`PV(&Y`:F&J!5&>Y57_?."?,L5'`%XG!?[&FY:^XHP5O-BF"GEL |
5733 |
M%C'7(#UU%5CPCDXCD]2%KFYM=<*@,8NS*^4Q.)BBM:50$-F0O'3=<AY]YRNX |
5734 |
M:V>=][3:8*2K)Y#N?O,,R`!X_!EWPSB!H0%8.N"$[V9$XE+FF<EQOGG:_?S[ |
5735 |
MN=.Y>V^3BY<584T3CDIHM8$\P]5@/1!D`$A`>UGX"S:-%&ZT4N`='$>T8VPA |
5736 |
MA\F'^'N/(*($FPN<P-H@C`%$)O]QY;0?((*`%2L,DY,)Q:)@R8674+G\M>0W |
5737 |
M;N1[-WV1]SRU%$Z+0/A@LW1Z>@[:$53*$'@.A$H9QB8<&`>.N.#5V[O`@D[- |
5738 |
M$"?0FF/?_OW<_;(84_>PLQ*Q)(*#PC$EU:SL#9=G/J#C"+4$O,^_8?ALY:N* |
5739 |
MO^<PHAV[*JVWC'=L%E5O8?.A&[ZS6:1<8,-"-84(0F08(H.0<+"7ZN8S&7G/ |
5740 |
MQRA?<1W-1L+55_Q'7G'O`"P[U5%36Z?!1,.S>V'7?MCV!!R9@)EZ5F,D$,?0 |
5741 |
M;L.^@UGAU1G&%6%I`N5A[MY=XXS-ALW+`H@]:"D8]J"MH)VP82B?`W*?>,WJ |
5742 |
MM1WV>T!P[J!\O[_W,&8N0N4D(I_#Y',$AR>PGL)4BBY^MYL(8Y">6BR[5*[' |
5743 |
M%P2.`7Y`P0\(90L:4SSSX^U<];7M'%Y^(11Z0?I@55:Y&Q#&N8$H=N^?V>6$ |
5744 |
M-QKB-'.(VOF+5"]VC*F&)(8CD\RV-`P`<\`Q`:D'PP*>%.[SP+NW#KUXH.1= |
5745 |
M`+P=2"7@ZZ,SYN@C+1HS`GK*&-]#S=8Q[0A=+6'#P#$C29\KO/(00>BRPB"< |
5746 |
M'S(("?)Y:H]\DW.^,L[AI>=`O@?",LB\LSR=:3#64"HZ*L>IFYMM:$:.`4GB |
5747 |
MM-QJP[9'((H6S&"R!@_N@*,S$)3<0YV</5R/#T,*(@6Q8VRL[>DO.Z7Z*B`' |
5748 |
M>!(('O]%8^0[#=\6UI8Q@<OPY-2LZ]GUE,!89*WY7.$]'Q&&;@2NZ=$9#HB` |
5749 |
MGOY>+ETAG>!A&;RB"W\F\^I)UDN0R@F>Q`M"+QHI-.HPM,REUATS*.>AMP3E |
5750 |
M//MJ$B(02SJQ3;K[#F0@&'C]996+EY;]0I83^!)0;WULQ1U;^@7TE[">0L[4 |
5751 |
MD$IA"CEL&#@PL@[.O/!!@`C#$PB]>,@PY+TKQUS^3I!I7CH?T+'_6$-/%7I[ |
5752 |
MND`X$1`:#AYP.4!B%ASA2#\L*;&Z1[FF6"5[R-ASHP.`A(WGYU=G_\WCW"T2 |
5753 |
MEMGA]7/"^AYJ[!A2NK!D"CE$*T(VVX@PF$=5>%GSTS]^^%D[+.CR!SZ;EQLX |
5754 |
MY`HB$@M*LSB3<ID@JU:Z/L/,#-1J$+7`FL7)T6P$^_;`LA5P<*_S%5$#@NS^ |
5755 |
M.:"6W;8L(<J27,]%JX'5!0_7[0AQW0SDEH'9S=ZR(L0IHA4YCV\!)5&3T_.) |
5756 |
MCHL<PA4L4<S<5,3X%#3:+LXK3Y'D)#^:48RG(5M'%"]:7<4O%-W#Q\9EH.:X |
5757 |
MGG-W;C$PX'S#Z.B"\-8L`&`,'-@-^W8ZX77"JU_D<^?A`5;U*!?AZQG9K'+I |
5758 |
M3J]UA`<8@9E62B<4>H!<8Z9.IEJE>>]^JE7APIVQ$"?(V09D[2JT=F8@)<_L |
5759 |
MM8Q-NK17"L&,A&+)XYJ)4YGK6P]>R$U[<_#$*"OT$5B?>6*19MG;"1C0`6'G |
5760 |
M#N?TYH7OS#I+EHQ[GV@P"6\9/LB=^WMYR3H?$H&M`]6L1]R=Z`\`$_#T6*O= |
5761 |
M>0`/4%N7UH9D/6!N5T3/.=(]1R%$'9OM\G@+E_M'+9.SX/L"JRU26KS08VF_ |
5762 |
M9"[=Z)Q=4``OA.(0!X/SG39T%O*.MX!N!EB@W5H0VMKG,L$:L-H!HB2KBQ&K |
5763 |
MU2@7G1$Z[5N@3SCM=Z<KI[GIX$P<93T!ZP'*H)68F"-JN.I,Q`FF7'"5F]&+ |
5764 |
MGE-K.'(,`M]E@E9+I!+XH:2G(ME8:_.4'`*_!%[.Q6[I90`(]^#"/M<$YEE@ |
5765 |
MH=+C//CXJ'O.>3"ZKS,`EJZE+@[P]R_9R[K!`%L'$8/8D#5JO6RE`&`ML!MF |
5766 |
M6NGA3H]0`FJF)=+&+I=YV<#'9OFU*>6?4_,T(T'@2X)`NCDG"7.*P!=X'GQR |
5767 |
M^!ZJI&#\S!`#L+[+^SMAK^/5XQCBR,7U*'N?I+!FO0MU.G$A4I]@5)?`X$K( |
5768 |
M%?`*EBLOL5`3S@&V,Q]/)N:TLWTJS@3NVU/;WEGLD8"0UNKZF*:XW,.&/EB+ |
5769 |
MF*YA^BK/`2`U@L`7V5J((,@I@E#@^Z[+LZD2<\?P/[/23F8QGBP7[Q(^BJ'5 |
5770 |
M@F:#E>DH9]A]T*X[ZD=M!\3S"6Y2I_GI,2@/09S0GK2(=9GSJP,]`F(!238: |
5771 |
MP.9,``?`@YF'T!Y@CS3%U&R=OI[3%";P4<8@HA@QVT#WEO%FZ@LF8`1!()`B |
5772 |
M,P%/(:5CFLGHO+'<Y,>%6WGSH:NXO[W6U>M2.>H;0U4U>4?O0[Q]Y!`#U3+" |
5773 |
M#Q']2_E%J\#KOKN4_7%OUFKW%D*A/<XG:`-QRSE++.(4@?V>LQ@Q)!W].WXF |
5774 |
ME]$_@L<>;]I]4]&CG0ZQ!Y@#.?58?)23\22MFJ#4:1<=FR59/N`*D^Q5REEJ |
5775 |
MD4!(!P*>0"B)9S7&+GBVJF_XUDG?XNL3J[F_?1('TBHK@QI;BOOYLV5CV*`7 |
5776 |
MX>==*:U3Y-PL&T]>S3,?&."]'_XVG]OM.0DZW1*3A8D."*4^YU.2A#,'<9I> |
5777 |
M#J(NLB(J:]I$P)F99G;#]J/MCI'$N&H!_2\'&G=>Z_-:G0A2+8F;@K#HON./ |
5778 |
M'\,4\Z@L<N0"2QBZY$(*@5!@0D60VJS>L(O"QI\.[N?/Y`'G7(7`"!]K%3(^ |
5779 |
MBDBSEIB0Z)IPBTW%E_*A=Y[+YQYX$(1:'!X['2=KP<M#&K,J7Z<G)[`U$!6@ |
5780 |
M*)UH/@Z@'N,VYV0`W+M[]F<9`/,,2(%#M@=:DRFE#1XZ87[7AM"&>.TP^:=V |
5781 |
M+VBW8&@E?K8Z)K"!P%,2">S:%U$I2Y8.RA,O1@J-P"`R@$QJF=XW!ZGFISL? |
5782 |
M9^==C[#MB`5SZ@*8'198XWH'GJ*G4F4FBKEP>,S%_!K8G$`D`I:O@.E#KM,Q |
5783 |
M8MQRJ0;VP%U/SWR_BP'&RRZB0[Z*1X[&`;YB=@SR`VJ^+Y=[(BM/.V80:(3T |
5784 |
MT,ALHX.!O(>G-7U]'C^XN\[@@,?:50&]O1X]/8OW8D4M3=30U(_%M*<B9@H! |
5785 |
M?_&$8D>M`*(`(G!AKCM'Z``P>`:K^N#5P\_PJ:?6\.;3CB+*$AH@\LI1_Y05 |
5786 |
M\(/#L-YF8@*[X,ZG9M+]4]%S&)``[6^U<H^]H]TXMST:,3<*2\]V*\!"QXLS |
5787 |
M(6NQ%@I^3$(.YM=(+5(*<H'/RF&?`T=2IJ=:!`H"!;Z"0`D"N7"="P5WZI`; |
5788 |
MGE[AEKKQ7(=HODNJ73ATJRI0'H&)1_G"E2E_\T"1"P=&N7"5<"%/*X@%XMQ3 |
5789 |
M0:^#RH,0Z85<X&EX]%#K("XFM#/F6YDQH/6=Z<;'O3(T][>(&I8HEF@_]QP* |
5790 |
MF\YB*A"*F,`S!($@5*`J.?Q`\I+S2O16W1:83@.Y,Q"0J_KL*_J\X6`_-XQO |
5791 |
M!5MRN8+U7;5HZ4I]4[")FTLK^<NM);:N2'E\O,C?77C`V;H"ZL*%O_XK87JG |
5792 |
M*[CJV6Z!73!S+.66!T?_*0,@ZNP?F&<`,+ZCH*+U8U&H2C"Y,V'9^7G:DQZY |
5793 |
MG%[4_)POBX5%Z`0E+"H70!R[CIFON/R2"C?=W2!)M+.>4+*]KGAZ-N#G>_J@ |
5794 |
MN@;\7N?=VVVWVH-P*S\.ZHP)QHWR2;QZ>`\?N^@HCX_%?/#\*<X<DHAB5OWU |
5795 |
M@MA\`;`"#GX1F@8\X;2_&SY[W['ZH9GX[@R2N'M=(,D6"FJ?G"G<]DE3>Z/? |
5796 |
M!\W9B/JX(14E_'06+WC^309&:TR[C?)\I.^Y%19/\1<7E_BO]Y>YZ<G^S"W[ |
5797 |
MV4_ZH):`4=">RK3>,3&SL"UI_EISYD#,YR[9[5K@.8]WGQN!$MC4N0QQSB#P |
5798 |
M<C"[L#O&$17A?FX69F92/OV3J:^Z=_,`F$Z-I#,&U'='M:\=[A,ZF06O!.,/ |
5799 |
M3^,O+7!@N[^@F.=[63!IBFY'Z"1Q*T%*\I$M=>Z\Z@@KRRIKPA2!$M25F_-K |
5800 |
MH?<<Z/DC**QQMFXSZJ.!E#>=F?#0&W?3DW,/L:KC5'6V3GIQ",'E8.O8/3]R |
5801 |
MF#6SK'`</OV38ZW1N=EO9=W"9O?VF0X`<68;,Q^=+MV&AF0*<BL,A^X8I[BI |
5802 |
MESV/=I5PRCZWFENT2F3028I)G>F\="3EL3=MY[.7[&%E17>*4$B%Z^R0!U&" |
5803 |
MM`5>V35-T:RJIGS]]3&?N^K$(57T@7R%#Z7+LGIC#'O/8T[$ADM['SO8X(/? |
5804 |
M&;\QJPAJF?UKCEL3](`RL!18_>D!>>>J">-5-CNB-/=)*J>'I.,MUIZED*%$ |
5805 |
M!EG($5FK3(J%55^YL'8HA,L:F?^?Y+M[*]RU9SE/U/IY<J8W6QCIV+WARI,F |
5806 |
MN'+-;MZX*9F_KTT-*('R/1`2M58@7UR!WO,003_(/';/?=CO'4!(@5#.GUQV |
5807 |
MT^'#WW_VX%N!`\#1C!?S#.ALD)!9QMP'#$/^BF^76A^P=>@]']J'75+FE:$: |
5808 |
M2'I'!,&@AXPD5F<`=`O[*P`X_F\'ZCX':P%;5D3NX>?O)S'&DC;="K,,/,*^ |
5809 |
M'-XY(6K](!1.`K\`7AZ1SF"^\A"D"XKX^WLG[/6W[WFS"X*,`C-`U+U!0G:E |
5810 |
M&DG'#*!U[\TRW`TP_4"V5>:8:^A.SQB2MN7(DPF3QQ)TNE#;'[]$]D)?*RN: |
5811 |
M+2/M1>N,.C;4QNK,'I@EJD48;9'+!.K"$+EF""NJD#;=2*8Q]SP"\8)E/G:X |
5812 |
MR?6WU[\([,_HWP"2;N&/WR0ELT9A%5@&K/X?2^0_;YPT'H`,0(;0^V*8VP9K |
5813 |
M+Y",CANL%92%3]]*G[#D-"L\M<"`+HUVH!;9RI*0`B$E5@B$M:211D>:YE1" |
5814 |
MTC9X.8D7*H+EBMPFA3\2((LE9*&"+%01?@&\`+OW`/:GK7EFS;0-Y]YX^-E= |
5815 |
MDV/O[:)^+0/`_K*-DE[FJC-3""_X6G_\MY5C"Y_Q>Z'G/)B^&Y:>*6CG+=9` |
5816 |
M>Z=@U9DYRH.*-(*X)<CW^?@YV06`R(J:$X32U#(W&E&?3/!S"K^DR(U(<J<K |
5817 |
M_#Z%RBMDSD/E/$2AA"KV('(%[,0T]B?)(G,[^^,':C\_7'L;-'<`8UGXBZRU |
5818 |
M^H5LE?5=?&(`&%D;!F_Z1!"_Q=:Z"IH`PF70V@^Y`<B?`L$`S/X,[+1@Z8:` |
5819 |
MWA6*VKAA[)F8YI1A^1D%\CV*H"CQ0C&/1VLV)6EH&E,)89\D7*K(#4G"Y0JO |
5820 |
MH/"*$E7(`,A[R)R'#!6R4$#4%?9G%J$7V';MUP^G7]HV>DVF^=&,_JT3;9%[ |
5821 |
MOLW2,NME5;*H,+PF\-_QJ3!]M:T]_\[3<!#*FYQ04_>"B:'0*RGT2;Q`,#>N |
5822 |
M:4X9MZ]2@<J[BM;+0[!$$/9(@HHBJ$J\DL0O*;Q2!D!>92!X&0@*)CSDS@#A |
5823 |
M>_,,N_:VP\F7MS7?#W,/`T>`J<SVGW?;[`FWRV=[AG.9/Q@$1E8'X;O^KAQ? |
5824 |
M'A[[Y=MO90!^G\LC3'RB7W0`2,\E6WX!_+(@Z)%NE!T07DDZ`$H2K\.`@H?T |
5825 |
M%>SUL),*+_3Q"B%""*Z][4CRY4?J[X?ZSS+ACV4A+_FE6_Z?!X!.;A`"/9DY |
5826 |
M+`=ORRV#YOV#1W\S;[^PH)JQP'<@>$4<`ZK9*"N\2L:"8@<$#SNGL$<4TGJH |
5827 |
M0.$%'G7I<>DMH_7'CAR['MB9V?QDIOGX>*__@@],=(&0R\QA`!@"=>:[EH@/ |
5828 |
MOW)6AR;YS<XIB"X6R-`!$%3$`@@5A5^1^&5G!D)+[#$/&2F\4*%"!\"CDPFO |
5829 |
M_\;<TQ.-Q@V0',P.7DUU:5[_UB=&NIA0R:+#(+!T)`C_ZL.]Z5F#X_HW`F$> |
5830 |
M`)7Y@A*$O9*P*O&KF>VC$$V%-!(OYZ%R#H!826YZLJEO>"#^&M1N[])Z=[Q_ |
5831 |
M00_V*\\,92!TSA$4,Y-8DC%B_3G%\-W_H9@N+Q_]]8#H.,-Y$(H0E"5^7N+Y |
5832 |
M$HG$RRO\4.'E)5[HX>44]TUK/K0MWKEC<NYC69)S-+/W[D+G!3_,"SHTU76, |
5833 |
MQL^6'"H9$/W9./F<8NXO_UTY7792S0C=>`$^HF,&72`H7^`7'`A^7N'GW!R% |
5834 |
MBGMJV"_L2`\^.=F\&<RSF<:/95JO=[H\O\KF?^-38QD(W291R`JH:@9&#\CE |
5835 |
M$%YV696++B[HPCIM1&Y&HV/[2YUA-PA^7N+U^D1YCY]'V.].R=H/CR3W0OQ] |
5836 |
M,$>R?'XJ2V[F?MT3(K_UL;GCV)#+&%',P*AD250)_!XHG@=L7A::D8O+:8\% |
5837 |
MM25,92<M%L)UE>L"^WBDC!"8KQSQQT$<@G@'1/=#.IO9]5R6SM98:'9%O^X9 |
5838 |
MH=_9N<$NW]!A1`>,?,:.SG4N2ZQ"]UD5NJ7C()>M=2601)"T,DW&F6!1EL&U |
5839 |
M,F$[U^TNP;7]+0\^_@X.3LX#H;KZ7N'"RBC!<?TP.;_38J$2-1V!LCGN`J,# |
5840 |
M2-)I9?\N!/\]')V=]Q&R"Q#ON%EU?6;1SH"%[N<\"-US9X^_M;_CP\[B]W5\ |
5841 |
M_CA`3G2]J!CLFFW7_#L7^/C7_P-T-G<.]]QF/`````!)14Y$KD)@@E!+`P04 |
5842 |
M````"``@<F0Q"!>@CQ4!```W`0``'0`5`&=L;V)A;"]I8V]N<R]P9RUL86YD |
5843 |
M<V-A<&4N9VEF550)``,L@(I!4WG(055X!`#H`V0`<_=TL[!,5&!08#CRG^'_ |
5844 |
M___OW[^_?__^^?/G=^_>O6K5JEFS9G5U=965E:6EI86&AKJZNAH:&BHJ*@H* |
5845 |
M"C(P,!PX<("!%*#XDX61@4&`00?$`=GIP+I%0:4O)7/>,^8U.:^WO6IV>K5; |
5846 |
MZ*26C5_"^DV!;]VWL*:?4,G\86TBQWXCV4O7,)+QF#;C7]FI#S985.H>.I'& |
5847 |
MD/10JJ[5U?F+IT;=::MCB?4/-NWUUF?CXV'598KAYV;6+P_IGS!Q4G#RU&G3 |
5848 |
M9WA,GAV:D=F;'Y;)5&K@H%&AR\C'S[1,9^%*G6Y^WK1R5RX[=GY+EQWVG&PL |
5849 |
M1_S9]C>:<2S57KVVH4"_6I_5QJ[WY/SM-V^=F'G_P4-U109K`%!+`P04```` |
5850 |
M"``@<F0Q[L;/_#D````]````&``5`&=L;V)A;"]I8V]N<R]297-T;W)E+F=I |
5851 |
M9E54"0`#+("*05-YR$%5>`0`Z`-D`'/W=+.P3.1BX&1H8`"!____*_YD861@ |
5852 |
M8&30`?%!,@Q,(CX-G&5=>VYDYNW:KG2D2.IO[M1`!@9K`%!+`P04````"``@ |
5853 |
M<F0Q^V&O=)0```"7````(P`5`&=L;V)A;"]I8V]N<R]P9RUL86YD<V-A<&4M |
5854 |
M<VUA;&PN9VEF550)``,L@(I!4WG(055X!`#H`V0`<_=TL[!,%&`08-C\G^'_ |
5855 |
M___OW[^_?__^^?/G]^S9LWKUZN[N[O+R\O3T=#<W-V5E908&A@,'#C#`@.)/ |
5856 |
M%D8&!AX&'1`'9(8#B\N$DYZK8Q38F8-.W"QJ5-G0<67ENC5/PR0T-)HE_0P/ |
5857 |
MI')V[CN@T+-UTQ,CZS/]A28<`LN4A%,T!/AVWPXIOZ#")S^Y0*:'@<$:`%!+ |
5858 |
M`P04````"``@<F0Q*C,3-!T!```^`0``'``5`&=L;V)A;"]I8V]N<R]P9RUP |
5859 |
M;W)T<F%I="YG:6955`D``RR`BD%3><A!57@$`.@#9`!S]W2SL$Q48%!@./*? |
5860 |
MX?___^_?O[]___[Y\^=W[]Z]:M6J6;-F=75UE965I:6EA8:&NKJZ&AH:*BHJ |
5861 |
M"@H*,C`P'#AP@($4H/B3A9&!08!!!\0!V>G`NEM!I2\E<]Z*'PPYKYFR?R]) |
5862 |
M?2/%?L'F"/=EK6D'#VKL8.D\GFR8<+;!;/YGSC6>C!U'I\[JXI)H_Z"XLK0P |
5863 |
M\.+J]S5!N^Z_TXIZ6W+*/7/7FEGL,F66V37Z+)PZ3/Q\C/HY:F:,/':>C64! |
5864 |
M54&]Y;-FS\FMFCFM1'M!\:+J\MJT@B45X4RV,YKM&/GXF38NU/?AY]UA4LG5 |
5865 |
MS<[?UK-)EY.-Y;0UV[&=$1MTMFQ+.YYHQ]K9/77_]*8+]^T#5C]=/?>%@"*# |
5866 |
M-0!02P,$"@``````(')D,?DX%/3U#@``]0X``!D`%0!G;&]B86PO:6-O;G,O |
5867 |
M475E<W1I;VXN<&YG550)``,L@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````- |
5868 |
M24A$4@```#`````P"`8```!7`OF'````!F)+1T0```````#Y0[M_````"7!( |
5869 |
M67,```L2```+$@'2W7[\````!W1)344'U`@)%0TZ84PVM@``#H))1$%4>-KM |
5870 |
MFFN,7.5YQW_G-K>=G=F=O=K>RZR-L;'#Q?9B"4@-!K5R2)I^H$5\`(34IFJK |
5871 |
MJ@)556DKBE!0^P$)(2JU:JM*Q"E-(4$U$"@A<6HP$(P!&WQ?[WUW9G9W[C-G |
5872 |
MSIES[X<],\R:O1@2^J4YTJOWS,Q[SO[_S_U]WH5?7[^^?JE+^#(/_?DMN[]9 |
5873 |
MT(W=EN/>9KGN9A!P!6$[@A"7)!D$`5&6$001UW407`<<!\MU<3SAC.(YANVZ |
5874 |
MHNMYKT4#2OW[GTX\"ZA?&8%';[O^=\JN\,?ENG&=K"A#B=X^XFU11,\A*@F$ |
5875 |
M`P$D46!3K(V@+.,Y#HY9Q](U7,L"P/,\ZI;-8K4&MHWM.F0U@YQND-?JB()8 |
5876 |
M=CUO"GCME;&YOP.T7XK`X[??=$VZJOU9W>.AKN[>]LYPD,&!+?3$8X1<&Z-< |
5877 |
MQ%0KS?4>(`@"EE9;^0>$S_Z$YWDXGH<LBBO6&)9-L6Z2TPW2%8U%K8[MNF<$ |
5878 |
MA&=?'Y__'F!](0+?V7OMC[1`Y)[AWFZ&>KM)=G<0"D70BSFT?):J85'6ZQ2K |
5879 |
M*K;K`B`*`@(0E"4`@I(_RR*R*"+Y1"**C"*):TJT:IB8CLMXH<)<1:-LF"G/ |
5880 |
MX\DW)]/_MAJ1%02^>\>>;5,&'T?;VV-[-G>SN:L3NZYA5*LLY?,4=`/-LO$\ |
5881 |
M:`O()(9&$,,1V@='B';W$@J%"/1N@7!DA=0%0<"<OD1[M)U$9P>+'[X+0.:# |
5882 |
M=]8D8MH.%=,B4]7X9+%(Q;">/3:S\"B@KTK@NW?LV39I>*>V]G6U[QT>1,1% |
5883 |
M74Q35#5R6AW-LDD,)K$3?21&KF'XAKUT=771U]='*!0B'`XC^J;A^EIIO5;[ |
5884 |
MSO,\]'R6TN0E%DZ^P\+)=U?52-UV>&,B15$W__&=N:6_:/6/)H$_N/6FJ8'N |
5885 |
M1')T6Q)/JU)>6F"B4$5LCQ,9W,KF_5_GEH-WT=W=C2S+&X);"_!&ZQ9.OLOT |
5886 |
MFT<H3XX!X+@NJFEC.`Y'+LXR5ZG==RE?>:&Q7FJ$Q7HH^B>W;AM$J)8HYK*< |
5887 |
M62R1N/GKZ".[^:.__EMNV+N/:#3:!-(Z7-=MWF\$NG5MX[?6-='-@PS\QF_2 |
5888 |
M>=V-J.DYK'(!21!P7(^H(I-1]4BJJKW1,"49(*\9=P\E^Y'5,I5*F0O9$FVW |
5889 |
MW,7.NWZ+@P</?DY2JTDW%`HU(\Z5H#5-6Q7L>N^+;[V6FQ_]>][YR^]`J4!$ |
5890 |
MD6D/*K0'E6$@`10`1`#==O8GDTD\UV6^HC&X?0>1_BT</'@0UW4_-Z[40#@< |
5891 |
M1M=U7G[Y9>Z[[SYV[MS)\/`P@X.##`P,<.NMM[*TM-0$?^7[5M-J8UW/WEO\ |
5892 |
M:";A`2%)B@/-*"$"2+(LM"O+#JA9-N'N7FZ[[;8-7][Z^S///,,CCSS"\>/' |
5893 |
MJ=5JA,-A!@8&2"02Y'(Y[KCC#MY\\\U5!=`PP]5&;&3[9^:E*$B",`#$&M_) |
5894 |
M`)T]O;)1TXCX\7S+[AL)!H,KU+V64X;#85YZZ25>??55#,.@KZ^/W;MWT]_? |
5895 |
M3ZE4XM*E2[2UM9%*I7C\\<<9'1TE'H]?M>,+LH(@BGBN2SRD8#IN%7!7$%C. |
5896 |
MI"X(`J;CXM6UIE0VBB"B*'+TZ%'2Z32R++-OWSZ>>NJIYIKIZ6D>?OAA`%15 |
5897 |
MY<DGG^2QQQXC$HELZ/"!0(#J]#AR*(REU<CK!A[,`945)N1Y8-8-!$%`%*`R |
5898 |
M._4YTUG+=@%T?3FWV+9-9V?GBM^ON>8:1D9&/HO[NDZU6KTJ,P(PR@4<TUR^ |
5899 |
MMQU$$1&P5Q"P;"N7S><0905%%)D?NX!IFALZ;X.8XSALV;(%S_/(9#(KU@N" |
5900 |
M0&=G9Y-`*!2B5"IMZ,RB*.(X#N6+9W#MY0JB5#>I&O9L:^6Z'(5JM?>S915! |
5901 |
M%.F/ALDM+K(T.XWC.!MJ0555'GC@`;J[NQ%%$<,PFNN#P2#CX^-,34WA.`Z2 |
5902 |
M)+%ERQ9JM=J&`4(0!+)G/D)H*?QLU\.PG7)K)I8!3*WV4F;1_1OYVF$Z0@$6 |
5903 |
M:W6,V7$*A5$2B<2ZCE:OU[GYYINYYYY[V+5K%P\^^.!RV`L&<5V7PX</,S:V |
5904 |
MG%5W[MS)[MV[V;1ITPJP:_G6XLEW$&5EV4PMFXIA\D$Z]Q]`:06!%\]/?_+; |
5905 |
M.X8JA;H9"X?"B$(5??(BZ72:CHZ.=1W-\SQLV^;0H4,<.G2HZ7R*HO#<<\\Q |
5906 |
M/CY.L5@D$`@P,C*";=MT=76MFQAE6<9U7;29<?1"?KG$4#5F2[5I8+JE#/(: |
5907 |
M^G$]U_W@[%P*.12F*QQD\OQY4A.7L6W[JIRYU6P416%R<I)CQXYQZM0I`/;N |
5908 |
MW<OHZ"@'#AQ8T[<:]Y(DD3MW&E%6<&T+QW7):P:+FGX.6/+!"X#0-#!9%/]] |
5909 |
M)K.$$HO3TQ;"PT.<&V=Z>OH+9<Y`($`NE^/IIY]F?'P<R[(8'!SDX,&#[-FS |
5910 |
M9]UG&R0$02#]UAO-S5'5M,BH.A=RY>?]$D+T"7SF(4<NS?Z@K-8J.=U""@3I |
5911 |
M;0LS?>HDER]?;M8R5Y,Y'<?A^/'CS,W-D4ZGD22)^^^_G_[^?KJ[N]=]UG5= |
5912 |
M%$6AMI#"S"Y@5$J^^>B,%ZOSAN.F@""@^.8OM&Z-3#SWQR<N7B;4T4E7.(A: |
5913 |
MR-&KYCAUZM2J6E@K+YP^?9I,)@/`Z.@HI5*)_?OWKPN\(1A)DIC^\8O+[W<< |
5914 |
M"KK!3$EEOJ*]Y4L_!`3\2GKEYC0@2<_,9W.82@A%$DF$@YP[^M_HNDXZG;ZJ |
5915 |
MO.`X#K%8#%55$461$R=.-"/21B8H21)&;A$KOXAC+B?6A:K&1*%:GJO4_L<O |
5916 |
M(2(M6A"E5@(7\^6%X?;([8ZB)`?",FV2R$RVP+:M6YFKZB23R55#7BL07=<9 |
5917 |
M'1VE6"R22J6(Q^,<.G2(@8&!=9_S/(^VMC8F?O0]/*..FIFG9EI<S)5Y;S[[ |
5918 |
MEFK:QP'3)V'[LR-=68YLZVR_7%9KOW_3SAV@J<BB0'IVALB.ZPD$`D2CT34W |
5919 |
M,PU)AL-A.CL[V;ES)P<.'&!H:.ASSUU)(AP.8^27*)\^@9I)X9@&E_,5/LKD |
5920 |
MU;/9THO`HM_\T'WP)F!?28")8C6U-1$_:`>"P\EX&T'/92Z79Z"[DXP%0T-# |
5921 |
MJZJ_]0H&@XR,C!`(!.CHZ"`2B1`(!%8EVW#<8##(Y`_^F=I""J-<I*@;I*L: |
5922 |
M1Z<63M4L^R.@!A@^\,9LKM;?<!W+_*N+T[,X\1X\S^/:KC@?_^0UJ&MDL]EU |
5923 |
M\T(D$B$4"G'OO??RT$,/\<033["PL$"U6EW5>451)!`(D'GW*.K\#/52`<MQ |
5924 |
M*6AU3J2R^I)6_P1P&C;O8W3\@;1:2^,?GG]AZ;W77]E5T/3KOC8\@%?7,!T7 |
5925 |
MJYBG%N^FO[\?01!6-8=X/,Z1(T<X?/@PJJI2K]>I5JLDDTDZ.CI6:$R2),+A |
5926 |
M,/7<(O,O/X]1*>/:-GF]SH5LB:-3"R=-USWOUSZ&/ZM`W3<E:]4.T]UWWVW4 |
5927 |
M^Y-_.#$[5YW7+$1984M[A/+<%/7+9QD;&ULS'-JVW2P"`2J5"H[C-"-/Z]I@ |
5928 |
M,(BCUTB__D/JI2*.:5`Q3*:+5=Z>7<RJEGW!;V:Y_FSZ#FSZGSUIK<;2]/2T |
5929 |
M/AQO4^>6LM_8=^,-H)9)A`-<.'L&-Q@F,3#<W+6U;M@=QR&93#(Y.4FA4&!H |
5930 |
M:(A]^_:Q>?-F8K%84UMM;6W(LLS<&_]%]?(YS&H%S_.XL%3B7+9DOI_*'0?F |
5931 |
M?4EK0-G?R*B^/YB`):W7.)TNJ1\/MH=OSY<KR1W;MN+I-?K:0BRF4RQY,HF> |
5932 |
MY6Y<:VBT;1O;MAD='>7..^]D8&"`[=NW,SP\O")<2I)$^MCK5,]^A)9=`&"\ |
5933 |
M4&&B6'5_-I4Y:SCN1:#J`Z[X2:SB?Z?[&G"D#9J_[F1)?2TF"]\2!*%GI+\7 |
5934 |
MUZC3ADMN9H*"%"*>Z"(4"GW.%TS3I%:KL77K5GIZ>II9-AZ/(\LRBY]^B';Z |
5935 |
M?:KI.1S'(5W5F"Q5.#:]L+!0JW\`%'W)%_S[@J^%FN\#ZYM0:ULGV1$]FRF6 |
5936 |
M?S<1C02ZVZ.(CDU<]"C-3)"W!0+M<2*1"+9M8UD6CN.@*`JQ6`Q%41!%D4@D |
5937 |
M0BP6P[(LQK[_3WBI*4K3$SBF05%?COE')S/YRR7U;3_F-TRF!.1;[FN^']AK |
5938 |
M1J%53&FV(Q3X=#97^G9W/!;HCD;`<>B0H'CI'(9AH`8B;-Z\F6`PB"1)"(*` |
5939 |
M+,LHBD(D$D&690JI.69>^%<"CD5Q:AS'J%,Q3"[EROQB/JM]LE0Z#LRVF$L. |
5940 |
MR/J?"[[D37]X5ZN!1D4XUAD.?#I;*'^[.QX+=$5">(Y#>U#!R,Q2OG26;#Z/ |
5941 |
M&8XVDY>B*,OU3:7$W,]>I7CT%43/I3(_@VN9:*;%N:42'V;RVGOSN;>!BS[@ |
5942 |
MDE_W9WUM:"WFTR@CO"]UQ+2G/_'->"CXGX=V;8TF(THSLVB63=UV:._HH'W7 |
5943 |
M'OJ^M@?'LBF=.8F7S6`;=1RCCF,:>*Y+Q3#Y.)/GS&)1>V\^^W/'\S[Q@>=\ |
5944 |
ML'E_U%IBOWT%`>]+G9'MZ4]\*Q94_F7?IJY-NWHZ:`\H*TYB-KJR-9TS"T7> |
5945 |
M3V=39Y9*/W<\[Y(/MD&@X(,N^PG,:`%.JP:D+T-@0=7'9LJUER5!&%E0]1W1 |
5946 |
M@$Q`DM8]>6GT^B]DBYQ,Y>U?S"^=/Y^O_-"#<T#:![[H$RG[D4?W)>\T)-[: |
5947 |
ME?O2IY0M+9G.:Q.QNWO;0G^:[(CNO[ZWDUA0(1I0FD=-EN.0T^H4=9/+A8IU |
5948 |
M(5=*39;4GVJF<\9TW846$VF8B^8/NQ$J6\:OYIBUY5G1W]KUCW1$O]$5#OY> |
5949 |
M+*@,]D1"V_NB88JZ04;5=<VRRSFM/C56J+[6$PGFLIHQVR)=S9^K_MR(-,Y7 |
5950 |
M=DY\A18:)`)`#[#)GR/^^UT?9-&7LM>R*;%\^VY$E_IZTOXJ"`@M)!I$&F0: |
5951 |
MK0^EA4BC%'9;2N)&8>9\4?"_"@*M)!KW<LMGR0<K^<`:C5FOA8#7&E7^3_[5 |
5952 |
MX"J)B%>`\EIFKR4<_O^^_A<R-D70$8]\]0````!)14Y$KD)@@E!+`P0*```` |
5953 |
M``!XF64Q(Z\(9@T)```-"0``'``5`&=L;V)A;"]I8V]N<R]F;VQD97(M:71E |
5954 |
M;2YP;F=55`D``\,6C$%3><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12```` |
5955 |
M(````#`(!@```'"L>&\````&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``D"0` |
5956 |
M`)`D`95K?NX````'=$E-10?4"P8`"R]?Y7[&```(FDE$051XVNV8>W"4U17` |
5957 |
M?_O>[&9W(9O7;I9D"6S(.^"+X$BK@U#$6OMB+!5Q&%!I+2A%K8HR5,IH!1FF |
5958 |
M.E.U6BF.':=V'#KCH]9.6QWE(:A@"0$20EZ;D+#)9A_9Q_?L'_D2-VN@U-DZ |
5959 |
M_:-G9N?>[\[][CGW=^XYY^ZG(TO<7K^UM&Q&P&ZSE@N)N%%G,"FQE!@?&0H= |
5960 |
M"?6TC0(*.11CYD-194/A[)GE.\K+BA>G1^/%L:A.GTJ+.!T.04@FCCD],W=& |
5961 |
M^\^^#JBY,D`WWFE8<-T2A\7P7%-]G7_)-V^FMJ$)@]%(.)9$$@3"`ST\N.E> |
5962 |
MI:?OW&\2R=3/TI'SD:RU;@;V98TM``Y>BB&N^0NO/;-E^R^5$YW]:DMO2#W0 |
5963 |
M/J"^W]JG?G"R5SW9&U)/!H?5_9^UJXMNOB5LSK-M!PR9RI_:M5/M#9Y56TX< |
5964 |
M5D^T?J2^_/*+ZJ60T@.FFJN^OL7M+JS\_HJ5NFA:9B`<)R6#H.A("3)#T00C |
5965 |
ML0066SZK?[QQ6HFW?#U0H[T/L&_=NK4<.O(.0R,=#(;.,+T(UM][.YH1V;_F |
5966 |
M"1?D.=W^^0NO>_O6VVZM#M0TTA6*8[/;L%@L"**$RZK';C(P,!1!$D7T9C/[ |
5967 |
M7GM5?GGWMF>!34`:4`=#;>3;/,03_=K2*HJBH-,9D&4!%1555>CI[F7!_&43 |
5968 |
M[C<ZG,Z9\6BXO#NL$OSX%`Z7"TM*Q&`P`BJ5<\I(I=/DY]N(C8XR%(GCKVXT |
5969 |
M@.X:4.V:`3CL/GKZ#TXH5E0955%0%!E)%B?&/CGZV>0H2"93MH%S@R;G-!<* |
5970 |
M$$\D&(XF,!J-Y%E,")+,:%HD/IHDF189C2<XUMH#,`W(&U](DF)?+@R%=$H8 |
5971 |
MB<;D]PX=-WUG23/37`Y:S_9QIO?<F,)H!!2)VH`?(2TQ$HW1U=T+J,JD,-:! |
5972 |
MHLB3=JZHGQ,8'Y,5:;(!8FKTO-GNBLB28)4D&4D2J2HO1I9$CK1T\/'Q8>*Q |
5973 |
M!+/+/0BR0D=7D(%@CPR<!R964U05618G*1['+DOBQ)@L3S9`KTC"V51L^,-_ |
5974 |
M'GI//G2TA7@B34H0.7VZ@T@X3#P6(Q*-$!J)D)8D.CN[U>&V`V%@/Q"?,$"1 |
5975 |
M2`LI1$E`DD0D24*6)1191E%55$5!AQXEFP`0%Q/1/>=/'KSA0*$O;\$5383. |
5976 |
MASG9U@$&$ZJBD$XF"87C6&T*1][_JRB$@TG@=2`U<0;$-)*4SB(@HVK]BZ5B |
5977 |
M&7@W'0N]<.:#/_[PDX7SG&WM?::AH0@FHQY%D1$$F3?>_+-ROJ-%2'0='@)^ |
5978 |
M"QP#A/&%.CK;.'3XZ)BO5054K<V24ZU=4Z9B'>`![K/8\E>:"V>I>465!4:; |
5979 |
MTZB(:245#<5CW9\FY?B0I"E_`>C-*$Q3I>&+R;>!/TVJ!5K?!EP%K-#RN$O+ |
5980 |
M7/W`40W[82"JD<M=,<IX-@,.P*T9I--\/:PI3N:R&OY?<BG+IJAZR[Y2Y1>X |
5981 |
M#RS[3P[AEQ5U-#'"L\_OP&0RH"@J%JN%$RUM/+W[=U/-OQ%X*Z<&#(;:V+-G |
5982 |
M+T:3@L%@1!!$G`X'J70:B\5,.BW@]U<2"4=9==M//K\/Y,H'#KL/64G1WMI# |
5983 |
M,-B/7J\C%AU%KQ^[-.ET("LJDBBQ](9K^.S8:;6O;_#&G!GPZ:<'D"69O__M |
5984 |
M`$>.?$1HN(.T$">9BGQAKB"('#MZBG5KM[Z9,P/005M;)VO6K"8TW,%(-'C! |
5985 |
MJ9UG@X2'1R8NI3F14Z?;V?_AQ]QUUQVDA?A%YR:3*1YZ8#?`C3DSH*NSBXWW |
5986 |
M;B`^&IH2>Z8$>P?&NV_ES("2T@)N6;&<P:&VB\YK.=[.HP\_/1Z*N8N"LV=Z |
5987 |
M$8041MUT!D.=4\XYT][#B1/M$[O_;Z?AB_V^LA3]OR^&*<?,]BIDT8K>/!]5 |
5988 |
M%K$ZZI&$@0R$.9/L*+!BR7\,870&.N/O400W>N.;I&(^+/9]0&4.Z\<7Q(O1 |
5989 |
M_!?@>FS3M@)FW/Y5@)VB61L`+WI3.[`(D]4UQ?M5&IW-&6WSI2JW:,J;<7G7 |
5990 |
M`A9\#>L!%YZ:>P`+!16K@>E8G/\`OI;EOBKT/`>8\IW<#3A,)I[2C+@$-UB= |
5991 |
MCP#?P^6Y$W!05KL)<%%QY7U``26!>P`'[L"/@'*,U@Z@*,.%JJJJRXL][`)* |
5992 |
MRV:P#:BPY_-.%I$IR!C,%<`-.`MW`0647_X$4,K,YLU`";[&^P$7I;5;@#)\ |
5993 |
MC5N!ZX%G,BAL+BYEE:JJRXM+60482LNX'3"ZQYY-7A]K`7-1"0]ED_%ASCL* |
5994 |
MS*/LLCU``/_\W8`??_,NP$9)8`/@QEN]!9A):<U>X`Z@((/`QLHJ-@+V6=5L |
5995 |
M`ARS:G@`F!:HXQ&@8'8]6X&FR9%DM"P%UE'6]&N@FHHK7P(:\5^]!YB#MW;] |
5996 |
MF/+Z+8`/;\,SP&*@4_O_`+#9Y6(Y8)]=S4^!_%DUW`\X9E?S(#`]4,>C@+O8 |
5997 |
MP]YL`GY,MB%@,=[&'8"'&5>\"%Q-1?.[0!.>QKUCRNN?!!HI;C@-W`U49!!8 |
5998 |
MD+WSJEH>!J9K.R\,U+$-F#N9@$X_%[@+;],!H)*RAFV`EQES7P(6X;MB/W`3 |
5999 |
MI75/C.&O?QM8#1S*))`_1F!\Q]G8BZKJV0Z4E)3Q:C8!"P;3:\!J/`UO`'Z\ |
6000 |
M#8\#U^*=^PEP$YZF4T`UY?-^!7P+<WZ?Y@;7Q!<I(%`SIG0<=U4]/]=V_@N@ |
6001 |
M)%#+=N#R[&QJ``(8+!%@!65-.X%J2NI:@>_B:3P)_`#OW%>`>O(](\!Z8&%F |
6002 |
M%+C=K,S`7%S=P.-`Z9Q&G@0\U8WL!#RE/OXP57ZP`M_`:#T'+*"H[C!P&\4U |
6003 |
M7<!*BFK[@5NP%P>!#<!6P)*1EE6@L,3'*\`\#?-EFK++L]JE%ZHG7F`Q.GT0 |
6004 |
M6,OTV0/`[13..0>LP90WKOPQ#;W^WZ3AB[55%\J*=NUD/P_<"71KN`]JEX@E |
6005 |
M&BU#SC]63SJ48PIF`!&-3+=V?1O2OHSEK"3_"ZPF\T[H9)7W`````$E%3D2N |
6006 |
M0F""4$L#!!0````(`"!R9#$*;24-.P```$,````=`!4`9VQO8F%L+VEC;VYS |
6007 |
M+V-L;W-E+6)U='1O;BYG:6955`D``RR`BD%3><A!57@$`.@#9`!S]W2SL$SD |
6008 |
M8>!FF,@``O_!`,A0_,G"R,#`Q*`#$@7),S")3.E?R=EP=D[#JHNEJX\:^6=6 |
6009 |
MG%XAPF`-`%!+`P04````"`#6CF4QM</[-1D!```?`0``'0`5`&=L;V)A;"]I |
6010 |
M8V]N<R]C;&]S92UB=71T;VXN<&YG550)``.S!(Q!4WG(055X!`#H`V0`ZPSP |
6011 |
M<^?EDN)B8&#@]?1P"0+2(#87!QN0[#4ZOQ=(L25YN[LP@,%/Y]WU0(JSP".R |
6012 |
MF(&!6QB$&1EFS9$`"K*7>/JZLE_A9A4ST[:H:_(%"JWQ='$,J;B5>F&A'U." |
6013 |
MR-&/\AT>"@X%FP/6BFCS)SS0O;'$H$*X>Y+A!,XHTU6S3Z:DITV6SNEQ_/#" |
6014 |
M[FM.^?=W=_Z?^_OMX]+DGL)'V\\9ZO2:Y17,_2F@O.8#%SNC>:1?@4B]W'ME |
6015 |
M1ONLQ#;9>9?F%_^;_RN"K>J(9%;]PN`[2=W;;9YSS17*>K3)8U;:O8?K6/0_ |
6016 |
M]%673/X7<""AP772KA7+JBI^LFFO2&=\_<B+M;?FZG.Y32:J66+'73>`_.GI |
6017 |
MZN>RSBFA"0!02P,$%`````@`(')D,7!Y?WTW````.P```!8`%0!G;&]B86PO |
6018 |
M:6-O;G,O0VQO<V4N9VEF550)``,L@(I!4WG(055X!`#H`V0`<_=TL[!,Y&+@ |
6019 |
M9&A@`('___\K_F1A9&!@9-`!\4$R#$Q"/?V,#=FGIU07S)NU9.F,ZIL&K`S6 |
6020 |
M`%!+`P0*```````B<F0QA5!SSXX&``".!@``%0`5`&=L;V)A;"]I8V]N<R]F |
6021 |
M:6YD+G!N9U54"0`#+X"*05-YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(` |
6022 |
M```P````4`@&````7_;VW0````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+ |
6023 |
M$P``"Q,!`)J<&`````=T24U%!]0+`Q4*-WBA1G@```8;241!5'C:[9I;;!1E |
6024 |
M%,=_<]M2:.U2:&NVA6X;$R(W,=R$`'()^$*,T"*]&.!!0^(#EC=)#2'$&%`) |
6025 |
M4'TV6M(60HR&Q(3$X`,I1F.:J%0D!B%:J%IM"^62TBYS?-B99;N=V9U91::R |
6026 |
M)YV<W9GYSI[S_<\YW_>?*>3$72KFK12/MTJ6A^;7F!^1<S]<]3I.AF[>$J\R |
6027 |
M,'C=MENB.UG[[.M+]/;?XLY(C-.=WQ(;'>'SHZ_Z<KZSNX>?K@XP>UTC%\ZT |
6028 |
M":"D&U!8,(7^P:&,AA5%H3A<9'^=[!C`2,S$T#4*584[-_YB^-9UW\Y?[!E` |
6029 |
MUU1*JN<Q&V]!`!SO.#[N7'U#/1T='2"P9NT:BL.%]B75,0!-58C=,S%-TV_: |
6030 |
M2V=W#[_V#3$II#,R&@/P'(2B*-0WU#M>JZ^O1T3&^:0ZW:QK:C8U*YW=/5SY |
6031 |
M_0:ZIB(R-O5+JN<Q>UTCZ6K",`P,PT#7=71=1],T5%5%4>(QI]H$T%V]$4D, |
6032 |
M]"#=`"OFS@#@Y-F+<02MW^O[^7M^_*(]M5$H3K_9UM:6"%$0XG^6%F'UFM64 |
6033 |
M3`N/"T"<C*FJZM2A$H@G?9Z;?(^NJ<3NF4Y(IIT1$:&AH2$QTR(R[G!+(06@ |
6034 |
M\<`I/CC]'0,WAPD9]\&95!#FV5<.V"F0T9'8/3.K=</)8;LV5%5%TS0,PW"M |
6035 |
M`:7M]><Y]=4EAD=BXYSX\_)Y+IQIPTLGT50EJSJR4TA$:&]KIZ.]`],TZ6CO |
6036 |
M2!R]O;UI:T#Y=%^-L.]CGEM817Z>X=MY@-O#HXS&[F'HFJ\`%`7JZNH0$;;6 |
6037 |
M;4V<3_[LI8B5TX=>EJ*]QU@R*^+;>8!S%Z[Q2\\U5$WG]L!OZ$8HXYC!&T-, |
6038 |
M+7K,D_W^_D%OB&[<<RRK+4066Y%L]T*5B@=G%!Z\:,!48(K;VN0@)G![PN]X |
6039 |
MG6:WP#HF`WG6N;O`'>"6=:23?SK^D>(#H8G.!^9,=#XP;:+S`3W'!W)\(,<' |
6040 |
M<GP@QP=R?&`B\X%50>$#(:`:*$W7VE-[!="7>X3^L$5[P/9W`ET>[FL&SEII |
6041 |
MX4?O5UV,B8OV(\V4S)KD<=R;(K(<^$9$KF;4FG81>`.8[E:XI90O?1=X@LJ5 |
6042 |
M7P(;?':C9J8_V014$JZ\["&(9NLW%+3\VO0Z5",B/98_1<[&(@OV`C.)+'H; |
6043 |
MV$C9G/,^$+"=CU*QY""PT4,0(B(]EI-/H1KOC]%:J";I>X$5;#-0Y89`&16+ |
6044 |
MWP&JB"SL`C9Y1,!VOH+RQ6\!E=;X3$'8"&`YZZ850ODO)B$0=C96-G\/$*5\ |
6045 |
MR2$?"-C.SR#R]/ZXMA#,'(2%P.071&096OZFN`YM$I$*M'PKB/PMUOXM(P(E |
6046 |
M5@U$/2*P,Z7@(T06'4P:_U*&AM`,;!"19:A:"S`?;&V\-S:M\G8Z(3#6>!R! |
6047 |
M*BN-DA%(OL\=B7@-1:T@-A*NO.*M!A(SOCEEYFOM]+%:OR,"`BRW8*^P"C": |
6048 |
M@#^N&SW40AR!.(*5*0BD[4*V\Y;3KK60K@8$6&7-?#2!@'?GX\X\OF!OW'F_ |
6049 |
M".37.'0=):4K%7JI@57,6'HXWDI].6^/GV$U@&P0L/O^%C>=J0N!:MP%GJ%B |
6050 |
MV1&?SL>=J5K[";".JM6=0"WAZ*5,"%AZ@^5<!JW5ID,@V>B:+/F`VW8D'0*2 |
6051 |
MA2X*TON!/*`$N&&]*QC,H`<`([<?#^(+CH<ADN4X70_*3([&NJQ'F?;CQ.30 |
6052 |
M)/[,)?DYJKX0H%@/5#Y(T_W4L(,0&8^1>L3^-%D/6DZWMO8E'+8#V+:ME`\_ |
6053 |
M^B.^4*PO(E)Q/Y3`U,!HK`N%W>.<=UYHC]@I5!TH!,3T7\N!2R$[5=PD)86" |
6054 |
M%\".[643&X%TZ66_+TA^[Q+(%-JQO2R12MNWE=+:VF=U46'#^O"8%`I4%\)L |
6055 |
M<KQHIKQL48V68':AI`5J[&GU_[L7B@8E@$?W_X5R?"#'!RP9&>U$42T^8&;F |
6056 |
M`R%C10#Y@+G5(Q\X$5P^T-+2.VY+O6M7A,-'K@%0L[F8F=$`\H&1T4X4ZCSR |
6057 |
M@1-V"N7XP+\N=JJX24H*!2^`W4WE.3[PT%-H=U-Y(I6:7HO0<K07TR6%`M6% |
6058 |
MDM>!]'S@9#"[4-("E>,#.3[P7\G?!.^S08A"3.D`````245.1*Y"8()02P,$ |
6059 |
M"@``````])R3,?0V$/6O`@``KP(``!X`%0!G;&]B86PO:6-O;G,O4')I;G0M |
6060 |
M<')E=FEE=RYP;F=55`D``TP?QD%3><A!57@$`.@#9`")4$Y'#0H:"@````U) |
6061 |
M2$12````(````!`(!@```'<`?5D````&8DM'1`#_`/\`_Z"]IY,````)<$A9 |
6062 |
M<P``"Q,```L3`0":G!@````'=$E-10?4#!0`)RBP@,//```"/$E$051XVK65 |
6063 |
MO4LC01C&?W,$+/TK+(PGUZB%@<-*\.X/L-#"6O&#;1,(X7JQL;46L9(3/[H@ |
6064 |
M-J+%%;.F#"$)$DS(DG)GY[UJ]C9Q-Y<3[X67W9EY=YYGGGEV!OY$`9`)\BO_ |
6065 |
M*<1:FYI1%$F]7I=JM>I(?'L'\61F$PB"(#7O[NXD#$,Y/3UUDWR?A'@RS\_/ |
6066 |
MY>KJ:HC$ITGEZ70Z%(M%+B\O65E9`?B9'!\,!D,9!`%!$-#O]^GU>G2[79K- |
6067 |
M)@L+"YR<G.!(3$1`1%A<7&1Z>II>[Q7?]\?66VL!B*(($2&*(@`>'Q\1$>;G |
6068 |
MYSDZ.@(0-;(%#`8#K+5HK=G9V8D'CX^/R>?S`#P_/U,H%`!4\CL`K36SL[,` |
6069 |
M&&-02M%NMU%*\?+RPMG9&8U&@ZFI*2XN+MXJX-@GP5U;1+#6(I+N(ZTUV]O; |
6070 |
M:*WC&M_WV=S<9&-C@UPNQ][>'I[G,3,S\]8#(H*(8(S)E-;59($[LO?W]_B^ |
6071 |
MS^[N;ERSO[]/I]-A;FZ.M;4U`')I^ZV42O6!`W8J)<<<N(M2J92ZB(.#`PX/ |
6072 |
M#\G\"ZRU&&.XN;F)046$V]M;K+5CM\"1&=<&\#PO?D]5X/KZ>H@EP.KJ*N5R |
6073 |
MF>7EY=1)J]5J['8WCR/KGDHIC#&("+5:+5N!47`7E4HE4X$D>-;*1VLR%1C7 |
6074 |
MEV;"IZ<GPC!,]4S2N,F^5JN53>!O>SQBPB]+2TN_WG'W:.#'T$'T\/`0'RC) |
6075 |
ME8\2:K5:;&UM:>#S1]Z&Z_]XHZU_!.AO^JP2H2^*28``````245.1*Y"8()0 |
6076 |
M2P,$"@``````(')D,6Q;]G@["0``.PD``!8`%0!G;&]B86PO:6-O;G,O17)R |
6077 |
M;W(N<&YG550)``,L@(I!4WG(055X!`#H`V0`B5!.1PT*&@H````-24A$4@`` |
6078 |
M`#`````P"`8```!7`OF'````!F)+1T0```````#Y0[M_````"7!(67,```L2 |
6079 |
M```+$@'2W7[\````!W1)344'U`@)%0\'"Q(8)0``",A)1$%4>-KMF5ML'%<9 |
6080 |
MQW]G9G?MM=>QDSIM+DVJD,2H20NM@`A:H`\4(=XJ4"5:45JIJJ!%0@@!I>() |
6081 |
MB1<>0$((":A4$`\M$O!0@E!5!*@TO24T-2%)DR9-G,27^+9>[WUWYGP?#WO6 |
6082 |
M/KM>7YN"$!UI-+,SW^S\_^>[G/]W!M[;WMO>V_ZG-[/1!__ZZ+V]$U7[Q'BA |
6083 |
M].E\M;Z[;J7?BJ;4QJ&(B*I6`Y'Y4.SE!'KDK:G9'_S^[.7I_SJ!PU^]_X&W |
6084 |
MY@K?'B]6#ZA(<-.6?G;WI=F1Z6&PMX=4'!'%,?E:Q$0NS^6Y>4:R\TP72A8; |
6085 |
MGTZC/_W)\+FG@.@_2N!OWWCHSN'I^:<NYHI#V_HSW+%G)S?WI8FOCA)-C6/G |
6086 |
MYXB+):1>1411@#`)J6Y,NH=\T,710HW3TSGRE>HI;/S-9RY-/P_(NT[@F4?O |
6087 |
M_]6K$]D'^E.)X#,']K(_I53?'*8^>@FU%E%%!50545#1QK6%\^8]I9KJX96B |
6088 |
MY7B^;*W5IW\[,?<84'S7"#SYR'VO#5^=/73GT!X^=4,?]7^]1GUT!)4&P";X |
6089 |
M!F#_O)6(.'M51429%L/A7(W)NGWY#[/E>X`-Y4>XTLV?/7+_R1.3V=L_=^B# |
6090 |
M'(IFJ1QYCC@WUP#J@>H$OG&O@YT[[T;9%P;,1G;70!C<?;YFG]V()Y8E\.17 |
6091 |
MOGCLQ.3,;?=]_"/LO_@&M5/_0*RVA(D/JADFOC<ZV?E>2QC8G0PH6MG>%Y@[ |
6092 |
MWJ[+8:#\C@G\YFL/_?K8V,QG/W_H-O9=>)WZVZ>1MAA?%;RS][W1R2Y4PXY$ |
6093 |
M0#;67?V!V7$ADN>!^H8)O/C=Q^[ZR]CLCS[V_O>9#\V<IW;VA!>[B\G8DK0N |
6094 |
MKE>U6R:YD\#6T'`ID@-).'/5ZLFU$@C:+PQG2[_<U-5E[DI4J)YZ?6&DVT&) |
6095 |
M#TH\4.L$+^Z9S8'A$]V)Q'6!^0ZP<T,>>.[Q+S]\]&KNP7L.[*'KA6<77]H! |
6096 |
M_&I5QH_UA6=7L4L#>='K@>EQJZ^N98YH\<"Y?/7Q'5L&V'7Y9*.^BRZ`;)RW |
6097 |
M5AGI4&66!2^T>6JI7<K`+<F0?L.]P+9UA="+WWHX<Z5<W_?1&P:HGCG1FGCM |
6098 |
M22M>V5RPTP[)K4OFB27$VP9HLX'=B>#6/L/>=1&8C/B>BIH]4Q<<$#]VEU8< |
6099 |
M::\X33M9Q4X]NPX#E`;VAB9Y<S+X`HVH6G%+-$_&RK5/WS2XA=KPGUK<6HR% |
6100 |
M;-V2,J`**%Z)]&5"`PAMQ-OMU'LVZ$J3JE8(,>Y>PVX3T`<'@>N`T341R$=R |
6101 |
MXRVVA,112^R68Z'[Q[]C:&AHX<5`RW$MUSK=3Z?3O'[7A]%"?K$PJ))6V&S, |
6102 |
M-J!_S02JUO9N+167Z)J>P+!YYTX&!P=7!;I><JE4BBT';V7FE2,MY36%TM\8 |
6103 |
M_=XUAU`<V\2FTLS29%00$41DPT!7NA]F^I9H)Q1Z#1F@RQ.<NB(!$P1!HI!= |
6104 |
M*@U$$9&%%UY++Z@JF&")\+,*"33E"`0>>%V6@,21U@I%D^@@#8`%$M?2"P!B |
6105 |
M;4N%LJ)45:D*D0.?=,!C]XCM3*!6J^=K]:[-8="24"+K#Z&U)G7CM[0(OTB4 |
6106 |
MJA5RHF47/BD/=.S4@S9GZ04"@=C"9*1=_4'K[!KV9LAD,HL=D#$8T]H'-7\O |
6107 |
M!WXY6Q&A,CG=,EO752DJ9$7SS@/=KG\V'HGF'"8+!!)1_<J8#0?WMX5/&,=D |
6108 |
MO_X`Q>NWD=RR=3&4%$0!8Y`HPM;K[EKCGFJC+VZ49,'6ZZA51`6)8B2VE"?& |
6109 |
MF7_S=(NL*"N41<DJ.0>R!Z@Z`NJ%4:L'$C8^,BKA[2)1ZPQ9J1"=/4GIS9/K |
6110 |
MZ[PV(/S$*B51"JK,*E..P"8'/O!"IQE2P8*4.#\Y_?U90CL?V05IT*YKM(.N |
6111 |
M6=JTN#(LK=I).MBU"[J"*I$(4X(=@5,N7#)N3[F$3K@\"%JTT-/#9Z82Z9[3 |
6112 |
M1PM1JUX17_>O3=<LJYVD53NU#U#!Q?];RJ2%K--":5=.DPYXPGG$+)'3_3T] |
6113 |
MOSA3B2E97TVVZ1J_:5D`TBKHM`-X78ZXLRM:H6:5685Q&'&]<<;E0+?S0.@E |
6114 |
M\%("/WSI^,\KZ<RIE_.UY;NG#FUC>[\L;5Y;UJY)Q`HYA;+"<24[!6<<I"XW |
6115 |
MXH$W\L%*+664Z=OTQ'`IBJ?KLAB[;0U(:[SCZ7[MD+2+6G_QO-5N5J$NR@5% |
6116 |
M+L(Y(.<5&/7.`V\]RP!F25/_QE3V_,'K!O9?*E8^L#<5DL2LN^*LMB;D$\^+ |
6117 |
M,&]A#/@[3$S#,4>@YL*H`I3<L>)6+")7B;33LHJ>+E3^O#T9?#(7Z^Y=R8`$ |
6118 |
M9N4.;0-K0DWPLQ:F@!<@>Q%>!:ZZNM\$7O`(5#T""LAR"UOU<S7[QX'`W%VT |
6119 |
MNGU[&)"$:[HF-.?`3P(O0NXL''7:O^96Z(H.?-';RXZ`K$8`H/QV79[M"\P= |
6120 |
M<U9V#0:&;GC':T)6E$E1LM)`>P2R9QLC?\F-=!-XWH52<R\[#\1NEU771H'B |
6121 |
MA4@.]QFSXTHD!S(!03>F,26NL@K="7Q.E`FK3"F<!WT%QD;@)0]\WNUSP+P[ |
6122 |
MSGGA4_/"1]="`*`\$LOS"3@W$LE00?3Z+@Q)T88L7&6MQXHPI\JX**,"8PK' |
6123 |
M8.Z?,#S3`'_%@?4!Y]PQZX@U<Z`%/*#K^4)C@)VWIX('^^#>&T-S8%\B2`YH |
6124 |
MH^]+&PA$B16JJI2L,B_*C"I5A5E!+L#L5;@X#<>!<0>H.;K-BE-P9/(>^*I? |
6125 |
M>;P%+]W(-[($L"UC&-H?FB^EX6#:F.V]JOUI3#HTA+&(K2BU`E1R0F$.ID?A |
6126 |
MA*N6,PY4W0&*O<2M="B;?MQKFP<V_I'//;L)V`K<X%80!MRTW^WN-UU><J,: |
6127 |
M.M!-.5QSP.H.:-']KKIG\,#3::GQG1!H/I_P6K\>-_UWNZ.XZS@M(UYSHEY- |
6128 |
M]R>GBO<!,%JI'[X6!)K_T92WH=N[W-%XQ\#3\L;K<ZVWQY[-BL"O)8%V(L8# |
6129 |
M''9X5^"!Q9^4VN/[7?W0O<[_-FTQ'"P7T_]WV[\!,J_M'4AF^ZX`````245. |
6130 |
M1*Y"8()02P,$"@``````(G)D,?W<7_.1`@``D0(``!D`%0!G;&]B86PO:6-O |
6131 |
M;G,O;F]T9F]U;F0N<&YG550)``,O@(I!4WG(055X!`#H`V0`B5!.1PT*&@H` |
6132 |
M```-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_`/^@O:>3```` |
6133 |
M"7!(67,```L3```+$P$`FIP8````!W1)344'U`@7#RP!_:_,>P```AY)1$%4 |
6134 |
M>-JUDTM(E%$4QW_WSC>/SWEH-5DFX6A.8#.08Z2.93`%F;VPH`=M*I`*(J(V |
6135 |
MK2*L16[:M2A:N@A:]**I""I[09M(DJ(@$&8S&4Z:6>.,,W-:.)^.+:1%';AP |
6136 |
M.??\?^?%A?]@)G`&^`SD@7=`-V#\C;@*>*,5LK5]A5P\N4[6-I0+(,!MP#N? |
6137 |
M>"$PN-3OD4=7NB3S?+MD'J^7U+U6Z3T:$+=+"Q`'G*4B6\G]NL_MW!"_W$EK |
6138 |
M[0B3JI(G[UW4^M.T-+BQ&YK^M]_K93KVZ9^`7<#9WE/M:N>:-*"X=&N2(^?B |
6139 |
MV)00:ZJ@,>CF4R*M/B;24>`!D`301<CYR*IJW=UA0F$*M(.Q\0D`DJDL(H+; |
6140 |
M9>-"=PV+?(8#Z+$JT,`F('3Z0!`'/Z:]A2SA@`.`II4>M%8`U"US<7!+)4`' |
6141 |
MT&@!]BQ>8*H=45]QV(#DV!PQ:`O[B$7*9P>F%8<ZE^"T:P/8:P':8LW+,=7X |
6142 |
MG)6,_BKC^/[5Y`HRQU]?;1(->:TJT("WH<8-DBL)4_0]3'"XYR4W^[_.`2BM |
6143 |
M"-66`00L0.KNLR&^I++(3#*AN3['B=U51(*>&7&^('P8^LFKP7&`D>E4T`7< |
6144 |
M\)C:OF^CGVW1"NHJ753X[)BF02:=9W@LP]!PACLOOG'_]1BC$[D"<`RX9L'# |
6145 |
MP-7B;F6>DP+Z@.ALLR7FL"M/+B\M4J!:P&^]*T@I1=(PU$!V2H;_Z=?]#6F9 |
6146 |
MJ1D]`<9@`````$E%3D2N0F""4$L#!`H``````"!R9#%]$>">E@D``)8)```8 |
6147 |
M`!4`9VQO8F%L+VEC;VYS+U=A<FYI;F<N<&YG550)``,L@(I!4WG(055X!`#H |
6148 |
M`V0`B5!.1PT*&@H````-24A$4@```#`````P"`8```!7`OF'````!F)+1T0` |
6149 |
M``````#Y0[M_````"7!(67,```L2```+$@'2W7[\````!W1)344'U`@)%1`% |
6150 |
M*$9WEP``"2-)1$%4>-KMFGN,5-4=QS_G/N8].S,[N\ONLK"+J\B*0EA!5QY* |
6151 |
M(&K0TI98-*9*^T=M0K`:HU9-:TIBF[8F-B":-K2VQ:8FT%K;6ONB?R@JT:85 |
6152 |
ML(`M;458WKO`,K/SGGMO_]@SR]V[]\[>)3[XHR<YF9TYY]SS_?X>Y_<[O[OP |
6153 |
M__;)-O$A/TLX_JY]MUSZ124$!>@"'@9^Y0!Z!'@)6`-$@`"@RC7B8@&^T4/* |
6154 |
MSGX4>!R(`T%)1'Q2X%4I<>L"^C%@!1"3&OE8M5&3^EL7"-[>UP(I(/1Q:4,! |
6155 |
M9DB[K@M.412_)'X/-$O_T#Y*$K[`+^EMM;;_^"[KOZ_<;;VUN==Z[,XF/R3^ |
6156 |
M"+0"T<F2$),`WPF\#DQUG:`HO+SI%FZZ^5-@Y+'.[2,S>)#CIX;0A,'ZG[S/ |
6157 |
MUE>S]?;X,_!%(`L4`<//<:M^&.`7]#2PY]=KN7+>4JRA/5B#;T#I)$'-(!G3 |
6158 |
M,"S!M;-3),(5WMB;]]JG6P)^1X(W_1`0/L8U8!OP6;<)2WI;^=-S]Z!'FS$' |
6159 |
M7X?",=<'%4H&1P?+9++#7+?N0+T]'P1^+C51FHB(\'%4?@_XBMN$Y7V=_';3 |
6160 |
MYP@D.C$'=D#Q.*A11/Q24,(CII3]%Y@E`/)%@T,G2^3S.1;>ZTEB`%@-[`6& |
6161 |
M@8HD,2D"M2"U&'C5.:CK.LO[NOCED\L(1-.0/XR5.PA"1:07(B(=8)3`,K`R |
6162 |
M[V$-GP>;S5<Y.E@FF\VQ^#Y/$GN!SP"G@3Q0]=*"6L?N-6`'T&`?"(?#W+BH |
6163 |
MFZU/S",8:X'"L1'P@&CH06F\AH?6_X!;O_Q3GGAV.YFA06Y<D!Q=']05(D&% |
6164 |
MJJ4RITOPN[=<';O%Y@^5>F:DUC&=!X%53LFWM[?S_*/3:9D^%TJ#6,/_D:M4 |
6165 |
ME.8E//S$%C8^__;HFK?W9\CDJLSMCA(+CVRG:PI!72&5")..5=GQKJMC]P%_ |
6166 |
M`,[4,R/%@T`G\&TG^*E3I[+EJU.X9.8<K-)IK.Q[YP6CQ4&-LF'+SG$/?/K% |
6167 |
MX^1+)I7J>0S1L$IC7&/5#:W,N23@94H;@(0M4D](H";]!YP3V]O;N66^3M_5 |
6168 |
MLT%H(\YI7QAN!^%])A3+)I7J6"M()W32R1`_?*C;:]D5P/7U<B;%(\]9-V:C |
6169 |
M=!HA!-]9.Q,"2:Q"_^C)<MX80QSI/^))X$!_@7)UO!FW)'5BL3#/WM]6[UAM |
6170 |
M`,)N^9+B<O+<;Y^@:1J)1()OWJT12G9!=1B*`^.W,4ITI#U/.QJB*@%-N$1P |
6171 |
MP924SI)YK5SE;DH]\C2,2BW8+TIC"+A*/YE,,J/%8/6*^:#%L/)'P"RZ@K0L |
6172 |
M[\`9"ZDHBKN)Q2,:R:C&C[Q-Z0%YAP@Y<R7%(?W5SI6A4(C'[THC(M.@>`(J |
6173 |
M0^Y;&`6P3*Z=G1R?:LR*$0HHZ*JWC[2D=!(-$6Z_(>XV/`M8*+6@V[6@.)QW |
6174 |
MG7/EO)D-+)Q_!2@Z5NZ0)P"K?!:L,GU7-HX;NZ8G3BRBHM8A((0@&E)XY//3 |
6175 |
MO*;<+9TY:#^1%)OT%P'M]A7!8)`OK6R#R/01\%;%._&H9L`L<]ORKG%#-RU( |
6176 |
M$@HH$V:-B:A&*!3BCJ6N6E@LG3DBM:``0K$1N6V<XS4TL+RO&\P*%/KK[VX9 |
6177 |
M6/E^^J[NH:/YO#-.;0K0VA@@&9LX\0T&%&)AE7M63O&:<JN#P*@&-)E[C&EK |
6178 |
M5DPC$(Y#:0`L8^+$NS2`53[+?;=?,OK3'<N:,"U\:0`@W:#1VM3@-;Q,^D&P |
6179 |
MAEV5]C0#>,PY>].CUS.E.865/^1Y\HQKE0Q]/1'V?Y"CNSW,O;>U<_GT,+KF |
6180 |
MCX"J"'(%DY!:9N>^<2G&-)EJYVJ7GIH&%CIG!@(!9LUH!+,`E;/^+YY:#/0$ |
6181 |
MSWU]/AL>Z*&[/40XJ#*9%H^HK.A+>@VOD$%-!Q1-:N`:YZRYW2$"NH!JWO_. |
6182 |
M>A(1GX4(-A'3HL0J&<R!U\#(3XI`4!>T-2>\AMLD@0!04*0M=3AGK5K<.!*X |
6183 |
MRJ?]%XMBE['_<)FE=SZ%/O,^;KCC27:\<X)\T<`T_5<3PT$%P[18OZ;9*S+7 |
6184 |
M"*B*5SUF<6\;F,;(">3KVA]`A%M9]XVMO+EG$("=>S-\;?-!#O07&!JN^A>$ |
6185 |
M$&BJH*,EX)6`!FLFI#ASB]'3(&Z`D9M4X<(JG>'-W:?&_/K7?PZ3*YI4C<G5 |
6186 |
M<QOC&K,ZHVY#ETKP]0G\??_)D>CJMY!LEK`*1UETU5CGZYL=IU0Q242U21$H |
6187 |
ME$V*9=?D,"7!JS4"KNVIK2<H#@]BBI#/+2TH'N>91Z]CT9P4`%=?'N,+-[<P |
6188 |
M):43]!D'`,YD*N2*!CMVGW,;/FBO;@MYXWG$+0[,[0[RF^_V@9FG+1WP:<`Z |
6189 |
M92O,\5-G&,H42<8U.IJ"=?,@^Z5G\%R%X8+!MNU'^-8+`V[3=@'K@?>!HZKT |
6190 |
MY@APNW/FR;,&&[8=HJO%(AI2412%4$!!B'I@3%1*)*.*3"$TSS0:P#`L2A63 |
6191 |
MTYDJI\Y6Z#]QCHV_Z.?[+WO&GIV2Q!D@*V1H;@)>`6;7D]"J13$^O3A%3V>, |
6192 |
M::UQ4C$-516C]P`O8J9I4:Y:5*HFQ;(UYMYP>JC(KG]GV'4@R],OG?&CXT>` |
6193 |
MW=*43@IY24@"O<#S0-JOK:[LBS&S(TCOS"B*JJ!K@K9TA$)%$-!&RB=#N2JE |
6194 |
MLL6Q@2RJ`KHF>&U7!D6!S:^<99+M9[*&^@'0#PP*Z=$Q68OI!9X!&KGXV@NR |
6195 |
M3G4,.`P<!\[9@YB0"=)?I$EU7R3`^V4"]S=@$#@E/[-`61WC?><K8'OE@H+, |
6196 |
M/4*?`/!]P(O2-P])T"<E@2&)S1".4F)('JLIZ0LI>0N:#2R0:??TCPAP1DK[ |
6197 |
M7>FD10DR"YR3==+3$GRN5JT3CAQ#E7E&5`*O];C\+2Q)7B8)=LD#0,A</>%3 |
6198 |
MLC+R\0_YN5L6<"M`60+/2_`U`AE9K2[:ZZ7"HS*G22)A&2-BDD!$_A:4\2,@ |
6199 |
MY];2<M66'`KW<(WAZ!4)OBS!%27XO)1T3A(JRCF&[=64ZR;"1D2U`0U)X/:N |
6200 |
M.TAHU'^);=J`5QW@2[+7B-2^5V1W?6LST0N.6L5"L8&K`=5=@/O1@"E!VXG8 |
6201 |
MR=B[85N#6V;I)U<6+H2$S6<4!U$QP7,MVXGGUB?U?Q47\D[620B73Q^IZ[A/ |
6202 |
MRTO*]=K_`!P2,Z9B##/>`````$E%3D2N0F""4$L#!`H``````")R9#&KMS'2 |
6203 |
M9@$``&8!```6`!4`9VQO8F%L+VEC;VYS+V-L;W-E+G!N9U54"0`#+X"*05-Y |
6204 |
MR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````P````$`@&````4*[\L0`` |
6205 |
M``9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,!`)J<&`````=T24U% |
6206 |
M!]0+`Q48!E&+-I$```#S241!5'C:[=8]2D-!%(;A)_Z$"!:F$&QL;=/8V@8L |
6207 |
MK-V`H(VX!S=@H]9F!2FTU3(*5C;:B[@"(8)H;$YQ277UW%Q2W`^&&0;>.8>7 |
6208 |
M81B:-*DTZSC!QM3^+HYJX-/I8H"+6"_C&&,\U<"G)2QB'^\X11\_F."Y1/$L |
6209 |
M7XF$-5Q%T?N8'\)`'7P5$NSA-:`1MK'TAZN8Y5,2MG"-;[S@"^?8+%D\RZ<D |
6210 |
MK.*L`%W&>H*;$D6S?%K"(=YPBUX<=%=H8M9\2L(!A@'UL!!C!X\E&LCR:0EM |
6211 |
M=&(4T\)*F)DE_R\)K3G[";2C8?B<ZK,33^Q'\V&:I_P"/N)P)20;!<L````` |
6212 |
M245.1*Y"8()02P,$"@``````(G)D,4V+B512`@``4@(``!4`%0!G;&]B86PO |
6213 |
M:6-O;G,O=W)A<"YP;F=55`D``R^`BD%3><A!57@$`.@#9`")4$Y'#0H:"@`` |
6214 |
M``U)2$12````$````!`(!@```!_S_V$````$9T%-00``K\@W!8KI````&71% |
6215 |
M6'13;V9T=V%R90!!9&]B92!);6%G95)E861Y<<EE/````>1)1$%4>-IB_/__ |
6216 |
M/P,AP,C(*`54]PR;'$``,8`,@!KR'\9&QD!0#9(#XE8@UD*7!P@@)@(VUP*I |
6217 |
M/T"%C$#Z$Q#[H:L!"""\+@""QT`L!66+@_CH:@`"B+%[_3VP;&F@$@.0C6+X |
6218 |
MZ;VK&53U;1@$1"09?GS[S%`;K8^BIB1`D1$@@!BZEE_[__<OV`HPC0O_@:KY |
6219 |
M]0?"[UIV#<07`0@@EE_?OC/\^`$Q\?=_D#\8&/Z!I/Y!@PY(_P12?Z&VOOS" |
6220 |
MP"#$RL#PZ\MG$%<0((!8_O_^Q?`7*OOC-RC$(`;\!6K\"Z5_`>5__X,:\(V! |
6221 |
M@9<;J.;7;Q"7!2"`6/[]^,GPYP]$\LLOB*8_0,7__D$T@PS\#:5A:GX#7?#O |
6222 |
M.\39``'$\A?H?I@+/@'=^@OD9*AFF"M^([G@S7>@/`O0P)_?P7R``&+Y]^L7 |
6223 |
M/`QX?Z(G!"A&2BWF/-!P@GB!`2"`6/[]_LTP;?IJ,&?BI"4,K*SL#%^_?F2X |
6224 |
M?>LT@X&A"T:Z@:F%`8``8@0G!D9&?B#[`Q#;`_%S(!8#XB-`K(:F_Q::V!^` |
6225 |
M`$).=>5`;`%E^P!Q'I0M`(U0+C1:`"0/$$#(!L@"<2U4,@W$1Y)3AXK#L#I, |
6226 |
M#B"`T-,^%S3-LV+)%W)`O`=$(XL#!!@`AUMG8F+Z&P4`````245.1*Y"8()0 |
6227 |
M2P,$%`````@`(')D,6<0=QAS````>@```"``%0!G;&]B86PO:6-O;G,O=&%B |
6228 |
M<W1R:7`M8F]T=&]M+G!N9U54"0`#+("*05-YR$%5>`0`Z`-D`.L,\'/GY9+B |
6229 |
M8F!@X/7T<`D"THP@S,$$)">4!]\#4BSICKZ.#`S7;ESQCS`"\B5+7"-*@O/3 |
6230 |
M2LH3BU(9'%/RDU(5/',3TU.#4A-3*@M/IMH`%?%XNCB&2%Q.CMB8Q,K`_(7Q |
6231 |
M)]_77=^!X@R>KGXNZYP2F@!02P,$%`````@`(')D,=3=OG8Q````-0```!D` |
6232 |
M%0!G;&]B86PO:6-O;G,O36EN:6UI>F4N9VEF550)``,L@(I!4WG(055X!`#H |
6233 |
M`V0`<_=TL[!,Y&+@9&A@`('___\K_F1A9&!@9-`!\4$R#$P\/?TK3[^=WS`G |
6234 |
M(RB8@<$:`%!+`P0*```````@<F0Q````````````````#0`5`&=L;V)A;"]R |
6235 |
M861I;R]55`D``RR`BD$*9<U!57@$`.@#9`!02P,$%`````@`(')D,;%.^@$J |
6236 |
M````+@```!P`%0!G;&]B86PO<F%D:6\O<F%D:6\M8VAE8VLN9VEF550)``,L |
6237 |
M@(I!4WG(055X!`#H`V0`<_=TL[!,9&%@86A@`('___\K_F1A9&!@9-`!\4$R |
6238 |
M#$RL/`G+IP<R6`,`4$L#!!0````(`"!R9#&H2NR-+0```"X````@`!4`9VQO |
6239 |
M8F%L+W)A9&EO+W)A9&EO+6-H96-K+61I<RYG:6955`D``RR`BD%3><A!57@$ |
6240 |
M`.@#9`!S]W2SL$QD86!A:&!@:&AH^/__O^)/%D8&!D8&'08@`,DP,+'R)"R? |
6241 |
M'LA@#0!02P,$%`````@`[6IQ,>V#94N'!0``4Q@``!4`%0!G;&]B86PO<V-R |
6242 |
M;VQL8F%R<RYC<W-55`D``QZ7FT%3><A!57@$`.@#9`"U5EMOVS84?O>O./!> |
6243 |
MDB*6ZA886A4I&B0;DBTW).FZHM@#+1U;7"A1(ZG8;I?_OD-)L61%MB+;TX,- |
6244 |
M4>?ZG0L_]U4/7L%=B.#+V&!L-,@QF)!K&'.!P!2"3D=_HV_`2/J`<(E&^RQ! |
6245 |
MN$Y'@OM6_YS[&&N$/U!I+F,8.D/8L[+]XDM__P/,90H1FT,L#:0DO'!B+>#, |
6246 |
MQ\0`CRF.*!&<Q3["E)LP<UE8<>!K84..#"-91M()O8VMB8H@,`.A,8GGNM/I |
6247 |
MU(GD=RX$<Z2:N)?7YRY)6X5;.393FV#`M5%\E!H,((T#5$NV*,JJ`*7'8N@? |
6248 |
MW5H39[=]&#'-]0%\.;L[O?I\!U^.;FZ.+N^^PM6O<'3Y%7X_NSPY`*14R"[. |
6249 |
M$H6:,%96F]M,,7#@%G')Y5CF(>@$?3[F/@@63U(V09C(!U0QCR=67_%)2`5C |
6250 |
M<0""1]PP0^#KYRDX1<*VS%>DQ&,FX%@&66X7.3CT'D5IS'UFR+E/<<6&T`WP |
6251 |
M`!0*9!H#:^*"*3^$M\,#&+Y__ZYJ^"SFAI/=$WQ`(1.*(&ND!H]/#60U2Z]9 |
6252 |
MZ,=2)5)E+PY<2Y6?^@J9A7XT+YN/ZI;K)_,,!M@[WL]B&KQY_7I8RJUS<"2$ |
6253 |
MM7&3PWB#&M4#E:-(ZI@&(BNZ5'MZW[-'`+])A%.DQB2'8?;_*2Y<.=2Y^R3E |
6254 |
M]GKN*SBT#VA?22%&3&G'I[(?=GUZ0#IP:^8"M1V:#(,_/Y^7A@=4G0P<*E)D |
6255 |
MY]?)=';R9+E\BEF$.F$TCZD2>_T5<W6/\XAI@\J=4#CWB-0!KNUY=+AV9"SF |
6256 |
MSBP5M`>J!D,3B6=6IV\S@U3+]^[,2MCE08B6:G8\3N\NSA<Y/X'NV:?$IGBW |
6257 |
M'\NS'X3/@"(?L"1!INRBJ:@8Q?S[02@5_T[E9^+#D_2(QP&-G9>'ZX=*1D@! |
6258 |
M3X0<,>$6R],MI+2[,.C,(O'3XLWF#^"G2DOE08!CE@ICCT;D=J(DC>X*#_J> |
6259 |
MQZ555PM.0^Y,^+B_7T;_H?=82?4;94%!'?9I91B:`-'_"WHV_=;\GQ0R>PM< |
6260 |
M1U*13UULIS0:99N'!L38R2JQSKX=E''D$AGPN0D/WB0ST))R*/'-O@R,3`:^ |
6261 |
M%%)IC[:*0CPYM]-Y&[)`3HN34SH1]K2NG"V"FOH)4_=+VOE+774D*<9H,UV! |
6262 |
MX[K7EJ#+:N=Z7F[O"W6/-5\%/0=ZK^S(_3K2;1UM92H5!8AX/`C1QN+!NV26 |
6263 |
M^<ND%@U3>J.6>8GYY8&Q#J8\,&'-/GR$B>*)O1O6&RVDEOMP38A=[5;#?6S< |
6264 |
M'$7/-BR0:C=7AK920&(XM)7)O8'7U.=#"\$2*,.?RZ.G0N1GC\\<>:&]\3WF |
6265 |
M&_Z`97HKQZ5HNJ5^:I^2JM8)W>)R\J(!:5=KF(UFI<I()%)S>T%[%CJ[*FI% |
6266 |
M^B>UI(W0-1EM57'!-::R<M\^*UTA^`-6S]]3-+DWQS[$2(E]V$LF>V]JA6]F |
6267 |
MGN!A?R'8.C*Y6EZ'6NH\(I*W[@9@2LEI_DL&3'X!M&[]CW7GF\9,A8NW"3F( |
6268 |
MRX@7$`?X0H@7@B\-UW:?#7?C>,5X6X@[QYPF6T6<)DL(>QL^M@JKU.'BEY.S |
6269 |
M([B^.;N\6^%@G?H+O7^*,.`,$L6I,2QR:_D=9%SRWX`_P#+5ZTKV_@>ZUTCX |
6270 |
M=D?Y`!Z;\V_D?U"@TH$#%@XZ\\!*3`4E;(JR<I^NX(=;,L2M..)V+'%;GMAZ |
6271 |
M4]5+LY8MUNO1/A_/J&,#>:RW7PN3[,HEG[/)1H<U"MB-7'9(H;N;Y726R[6& |
6272 |
M;[:/2IU\YCW13#X;Z6<3`5VY3%:QT2Y\M.S:31GIQIQT0U;:QDO+@JYDBZO! |
6273 |
M7$'"NE#'79#'3O?'2YED!RZY`S99+T,#HVPM0YVH=:&7NR"8.RG#!DD4?',' |
6274 |
MC#/+X+'W'U!+`P04````"`"C>G`QDF\30]4"``"X!0``$P`5`&=L;V)A;"]G |
6275 |
M<F]U<&)O>"YC<W-55`D``S)AFD%3><A!57@$`.@#9`"M4UUOVC`4?5Y^Q15/ |
6276 |
MM(*DM-JT@BH-@::AM;0"NJZ/3GP)7AT[LIU"-O6_[]JA#=4^I$GS0Z38YYYS |
6277 |
MS_U(CB,XAM4&(=/*H7(6]!K<1EA8"XG`#(*MTF^8.7":'A#FZ&S&2H2;*I4B |
6278 |
M\_&7(D-E$;Z@L4(K&,0#Z'IL9__2.1I!K2LH6`U*.Z@(_"+B&7"78>E`*,JC |
6279 |
M**5@*D/8"K<)DGN6&.[W'#IUC+",T"7]K3W%`1"8@XUSY3!)MMMM7.CO0DH6 |
6280 |
M:Y,G\YO+A-`^8*G7;NL-<F&=$6GED$.E.)I77)3E(8#L,06=\=)3S)8=2)D5 |
6281 |
MM@=WL]6GZ]L5W(T7B_%\=0_7'V$\OX?/L_FT!TA6B!=WI4%+-38^6GBGR&-8 |
6282 |
M(KZ27.LF!5MB)M8B`\E47K$<(=>/:)10N8\W(M]0PYCB($4A''-4?/NKA7AO |
6283 |
MV+?YFH*$8A(FF@=O5TUQZ+\H*B4RYD@\H[R4H^IR[(%!B<PB]Q17S&0;.!OT |
6284 |
M8'!^_OZ0>*:$$\0[Q4>4NJ0,PB#]1O%Y@'QDJQI2GVA3:A-^8KC1IKG-##)? |
6285 |
M^K1NAX_ZUL27=2@#="='(:<^?<Y;W-\$QE)ZCD53Q@5:-(_4CKVI"2U$:+HV |
6286 |
M77LT;&Z3*$J.X<(?R(VNRE3OXHPZ>O'/)P(*@J6K)5J_$,&?+]C7V\L7[M!< |
6287 |
M:D#P3WTH_(K&(?2_G.#H@V(%VI+1RE5&=CM_6)T'K`MF'9HDIW0>$*G)B1]K |
6288 |
MC(6-M9)UO*LDK7JHT="?UD?SZ]5>KGY$;Q*J*2VTH0$9PMMR-XK>$*2]>E?N |
6289 |
MX&2TQZ7:T&`/84"75DO!:>X,XG2Y85QO1X3H4[K]!M8WC(O*OF(M&>>T.@WM |
6290 |
MX-0_/+7IT+CXL?!IK:GU_2WZN1B2K.0>&,7/4)+@->$.&(6B.@@7<"U1:^2$ |
6291 |
M%+WJJ3?DA0]B_=M9R+*QR;('KZ1X/]-2D^%@:TK+I?/&RE/T$U!+`P04```` |
6292 |
M"`!O=F4Q9J]OL@<$``#L"```$``5`&=L;V)A;"]P;W!U<"YC<W-55`D``\+9 |
6293 |
MBT%3><A!57@$`.@#9`"M56UOXS8,_AS_"BZ?VB!VDG;#W;GH<%F+0W-KTZ+) |
6294 |
MK2N&?9!M.M$J2X8D-\F*^^]'R4[B=NVP83.0%\GDPX?D(VK0"Z`'\R5"JJ1% |
6295 |
M:0VH'.R2&\BY0&`:P53)'YA:L(I>($S1FI25"#=5(GCJ_"]YBM(@_(+:<"5A |
6296 |
M%(W@P-EVFS?=PQ/8J`H*M@&I+%1DO`OB$'"=8FF!2^)1E((SF2*LN%WZD`U* |
6297 |
M!/<-ADHL(UM&UB6M<@?1,@1F86EM&0\&J]4J*M2?7`@6*;T83&\N!V3M'&8J |
6298 |
MMRN78,:-U3RI+&90R0SU,RQBV3:@])B$[GCF(":S+B3,<-.'N\G\XOK+'.[& |
6299 |
MM[?CZ?P>KC_!>'H//T^FYWU`2H5P<5UJ-%1C[;RYRQ2S"&:(ST+FJJ9@2DQY |
6300 |
MSE,03"XJMD!8J$?4DLN%\]=\L:2&,9F!X`6WS%+QS5]3B)J$79NOR8E+)N!, |
6301 |
M93ZWJ[HXM"Z*2O*460J>$B]IJ;H9]D&C0&8P<Q!73*=+.![U8?3AP_LV\$1R |
6302 |
MRPGW'!]1J)(8>"&]$G$K(.>YC^JIGRE=*NT7$=PH7>^F&IDK?;+9BX_Z5ON7 |
6303 |
M&U\&.#@[])S"H^%PM+?[NP!C(1S&;5W&6S2H'ZD=35)G="!\TY4^,(>QVP+X |
6304 |
MK!`ND(1)`9?^]Z-L0D6DW$.R&@3!H`>G[H%2E549I=3QTW__!$!>,+,;@<:= |
6305 |
M&%\`5]%?OUS6R$"=*:A1D3?]7Q[/_Z-D!9J2T1FLM#CHOG&6'G!3,&-1#Q;4 |
6306 |
MGP=$ZOK`Z1PC;B(EQ29:5X+.OJ]([!X@NE7-O5Z[<+N]?I/64]!)E"85QW!< |
6307 |
MKL$HP;.3H!-2\+!^$5I5AJD22IN8Y*<1SR]=&V=+EJE5LW-!.\*+XXHB^*\7 |
6308 |
M*%XZ+W#.F7YX!M,LWL)(E+6J^(\@`O.7//YI/H->#X+.'9=D:$`B9@:.J&HE |
6309 |
MRS(:%'T@"=,DD-4:,D5*HOD;!YT.S;'&I^]%51,!8ZL\!Y;0G*'Y*P3D[*$> |
6310 |
M3@U>[>KQ:D>?!BM+9+J9VN3EQI3F&;:@@TZ/FDUT@TX#%3N>E`%MPTN8ME*^ |
6311 |
MHT%)LX!)>T*&!9?ABF=V&</(NR<L?5AH16.OKF#<5.9K2W96*6%Y6W3;G:?7 |
6312 |
M8C<O?3BF:7PYO1%='Q"@S=\IM+9;;VE]/\3";35L)C)7<UQ[\CD-%9>:,33- |
6313 |
MJ?FO\W<>/^UV?2910RD4+$'A6=?,8A@2B7:)ONZ2^\UR*Y#^G':MKK#[N_.C |
6314 |
MFKC[)JD6<'PT^N&=NW'=$('1T7M"[>UP0Y?=L/F$39J^5ZU<I9*X+;6NW*1R |
6315 |
MEY?O&]U,QJB4^]GM[W+74D%WJ=D=>[>"'_>][@?1=CO<"^"I7?-A4^^]#(9O |
6316 |
MR,"W]1-'49?P&U!+`P04````"``@<F0Q57,Z>OP$``#2#P``$@`5`&=L;V)A |
6317 |
M;"]L:7-T8F]X+F-S<U54"0`#+("*05-YR$%5>`0`Z`-D`+57_T_;1A3_G;_B |
6318 |
M+=,DJ(A-Z)#6(*8RH@XV"@CHN@KMA[/]$M\X^ZR[,TE6]7_?>V<[<1*W!=99 |
6319 |
M@G+OWM?/^W8-7VS!"[A-$6*=.\R=!3TÐ+8ZD0A$&P9?0WQ@Z<I@N$"W0V |
6320 |
M%@7"51DI&;/\N8PQMPA_H+%2YS`(!K#-O+WZIK=S"'-=0B;FD&L')3$OC+`& |
6321 |
MG,58.)`Y^9$52HH\1IA*EWJ3M98`/M0Z=.0$\0KB+N@T9A4M1A`.4N>*81A. |
6322 |
MI],@T_](I42@S22\N#H/B9L%;O3833G`1%IG9%0Z3*#,$S0KNLC+-@.%)W+H |
6323 |
M'=^PBK.;'D3"2KL+[\]N3R_?W<+[X^OKXXO;#W#Y!HXO/L#O9Q>C74`*A?3B |
6324 |
MK#!H"6/#TI(CQ22`&\05DV-=N6`+C.58QJ!$/BG%!&&B']#D,I^PO)&3E!(F |
6325 |
M\@24S*03CL"WFR$$=<"<YDL2DKE0<*(3']O;"APZ9UF9RU@X,AZ37[DC=!/< |
6326 |
M!8,*A<6$5;P5)D[AY6`7!J]>_=16?)9+)TGO"!]0Z8(\\(748;$I()9<6O6N |
6327 |
MGVA3:.,/`5QI4U%C@X*AC^;+XJ.\5?+%W,,`VR<[WJ?^_M[>8,GW)0/'2K&. |
6328 |
MZPK&:[1H'B@==5`GU!`^Z=ILVYTADP!^TPBG2(5)!E/_[^N\-A50Y>X05[BU |
6329 |
M%;Z`(_XH+=9%>A;$E/.CYWU;0))PX^8*+?>-A^'/=^>-[CZEQZ-#6<JX@0,O |
6330 |
M\4T^'\SK7&1H"T$-61JUW?M,8]WC/!/6H0DGY,X](I5`R$6/@;2!SM4\F)6* |
6331 |
M!H&'9\A?$T)]8F,-Y2,%06Q]LM`718'"\$182!PR,VQ>.YRYL425'-)M)@P5 |
6332 |
MWA#VBQG\6,R8%&E#O5&1K%;2\WDMU4W?Z:(?:Z6-'5)5&\3132H2/:T/(V'N |
6333 |
M*\*ZH"_"-=%3HBE?G-7YG/_N%H^T<SI[OKS"\;KU+S@>B?A^8C0-BDIF6.EZ |
6334 |
MTR"W0;PE7`^W/JVE3CK,UG+G21];2`\:I,%1CJB,#-6H5U6G<CC6<6GAYX7& |
6335 |
M.TN5'%-%'_6<*;'WUUU<&I9JSAOZ$P*/&N#[-P>C7UX=+)1W*JN$N^,?T?S2 |
6336 |
MDW4`*NH"@4>[_1E+BZ2V["QHW3BG*'BBKR)=$S]"9Q]0SBN&&)5J%<NL+\@0 |
6337 |
M-04M!NK59_;$$PJSJR^6Q;A2JH_JB4?*=O3#5YQ^=DT`%")):"4/8:^:,Y_: |
6338 |
M&;JSM,9$I+"IBV'*.WPH8B<?L%7+C/-:%MH8MEJI=55AU'W'&#QGU*W%_;5L |
6339 |
M/B%Y3YU=:YXL<!Y4$YWP/JCQ#I:`]R4]93VNU0)HX-OO8%4B0M7BI122VN_H |
6340 |
M8<9)RQ>]&/`'G$EZ"QIJ<W[E>CO5#3=E6R]S+AE9/U_V+6_QOLSH)3>D=W". |
6341 |
M&PZM"/K2&36GHYZPU+6,0#U<-G7Z!1VG1F=(*WJB="14:.]E'O)$"%E?G[0$ |
6342 |
M$SGF3?P4XPE^$^O)BO65,<>CJC7D@H;VB"RU>Y#K@GX&RZT_36E`]_T3AF&? |
6343 |
M&E$L8_<6'E,R2U?NZ/\#W-&KH[Z>#[\:,>\>XSZ^.,7X?O7-L]3N+[VRC8G> |
6344 |
MR'UYEK?QV5]]\BP7<<<$RRCFJ4Q<2GPO*SDFI5A/GIJVG)'MQP%!2H]0<M7! |
6345 |
MP=X/_+,&FO?]SO_^_'K\:@TU"(0QA^Y/ZW7<LM:9HGK@;&3JOSA"AI[@QO^! |
6346 |
MPJH+_P)02P,$%`````@`(')D,6ZNWS>``0``5`0``!D`%0!G;&]B86PO9VQO |
6347 |
M8F%L0FEN9&EN9W,N>&UL550)``,L@(I!4WG(055X!`#H`V0`E9+!<H,@$(;O |
6348 |
M>0J&7A-I>G2,F>F;(&Z4R0H.T,;TZ;L:-59-TWH1EOW__18V.385LD]P7EMS |
6349 |
MX/OHE1_3S2;)M,FU*3S3^8$7:#.)[WV(;QACI#+^P,L0ZEB(R^425?9+(\K( |
6350 |
MND(T&=ZSXN8#'V:>X5I)'\")0@8X`]2T#"4XB+2/K,%K1/*I6?;8K"U+\(P- |
6351 |
M^!V]D[FVG</P01/`Y(2O2F<K(*=;AT)90R=!#-V+3AM1Y9>;2]K9)'U>VILF |
6352 |
MA!B7F6V80NE]7W*G2E#G'87WG!%:K`WUI0.=>T!0`?)MET+_7'N9(>0\'3F? |
6353 |
MF;YQ=D)HZ,TFHEZF*UG`BN[O'&("(@:2L=]E9!T690;8PLX+M^3S7E>@-5WT |
6354 |
M@MFI'W2MM*NS4GJN;7>!7O_0G6Y;BJU4"KRG.=PJ9^N[];S)1$Q>/1E&9#EN |
6355 |
MP5K,I*LE0@B@`U0[7TL%CO]C[GJ3;O*6AK^-X:W6<!>WW0[A%":=J5)C[L"( |
6356 |
MYTJGBW*4/KR"<>U32OL&4$L#!!0````(`"!R9#'(UUR[7P```*4````9`!4` |
6357 |
M9VQO8F%L+W!R:6YT4&%G95-E='5P+F-S<U54"0`#+("*05-YR$%5>`0`Z`-D |
6358 |
M`-,KR"\J*4K,+-$M2$Q/5:CF4E#(R2PNT2TNJ<Q)U<W,!0I:*906Y6@H)6<4 |
6359 |
MY>>F6NGKI^?D)R7FZ!=G9^;I!T!UZQ7DI2MI6G/5<G'IY23FI10G)Q:DDF>D |
6360 |
M#TP[PDP`4$L#!`H``````"%R9#$````````````````0`!4`9VQO8F%L+V-H |
6361 |
M96-K8F]X+U54"0`#+8"*00IES4%5>`0`Z`-D`%!+`P04````"``A<F0Q<9>@ |
6362 |
M'CD````\````(@`5`&=L;V)A;"]C:&5C:V)O>"]C8F]X+6-H96-K+61I<RYG |
6363 |
M:6955`D``RV`BD%3><A!57@$`.@#9`!S]W2SL$QD9V!G:/C/<.#`@8:&!L6? |
6364 |
M+(P,0*`#(D`R#DP\+?(KQ6;4*$5SAP0P,%A[&44OUV:P!@!02P,$%`````@` |
6365 |
M(7)D,4\&+MHS````-@```!X`%0!G;&]B86PO8VAE8VMB;W@O8V)O>"UC:&5C |
6366 |
M:RYG:6955`D``RV`BD%3><A!57@$`.@#9`!S]W2SL$QD9V!G:/C/<.#``08& |
6367 |
M!L6?+(Q`BD$'1(!D')AX6N17BLVH48KF#@E@8+"V!@!02P,$%`````@`B!)K |
6368 |
M,?IM%)6=!0``!A$``!<`%0!G;&]B86PO875T;V-O;7!L971E+F-S<U54"0`# |
6369 |
MKQ*305-YR$%5>`0`Z`-D`*U7;7/;-@S^W/P*S%^6Y"(Y27>W5EUZS9+KFJU- |
6370 |
M>TFZ7J^W#Y0$6UPH4B.IV%[7_SZ`DF,Y?HE]FW.)(PH`@0</`+*_OP/[<%,@ |
6371 |
M9$9[U-Z!&8`OI(.!5`C"(K@Z_1,S#][0"X1+]"X3%<*'.E4R8_VW,D/M$'Y' |
6372 |
MZZ31<!0?P2[+]MHWO;T7,#$UE&("VGBH2?A^$[:`XPPK#U*3'V6EI-`9PDCZ |
6373 |
M(FS96HGA<VO#I%Z0K"#IBIX&;*(C",)#X7V5]/NCT2@NS=]2*1$;.^Q??GC; |
6374 |
M)VE6N#8#/^(`<^F\E6GM,8=:YVCG;)&770$*3VCHG5ZSB8OK'J3"27<`GRYN |
6375 |
MWKS_>`.?3J^N3B]O/L/[UW!Z^1E^N[@\/P"D4,@NCBN+CC"VK"TY4LQCN$:< |
6376 |
MVW)@&A=<A9D<R`R4T,-:#!&&Y@ZMEGK(^E8."TJ8T#DH64HO/('O%D.(VX`Y |
6377 |
MS>])26JAX,SD(;9W#3CT7):UEIGPM'E&?FE/Z.9X`!85"H<YFW@G;%;`TZ,# |
6378 |
M.'K^_%G7\(667I+=<[Q#92KR(!!IR8Y3`K'F;-?@^IFQE;'A(88/QC:KF47! |
6379 |
MT*>3&?DH;XU^-0DPP.[97O`I.CX\/)K)K=O@5"FV<=7`>(4.[1VEHPWJC`HB |
6380 |
M)-W87;>7\!+`KP;A#1(Q:<,B?+_2[58Q,7>OD?K9$H'A:J()A9]2R]^O4EX+ |
6381 |
M_[+@2Q+L[^ST]^&$/R!HF\!\]&2(&'*R[6<'2`>N_42AX_H*<#'^7=-44OD0 |
6382 |
M?1R$_Y=/"..5%B6Z2E#-UE;M]E;4WBU.2N$\VOZ0\GF+2"SI<UU@+%ULM)K$ |
6383 |
MXUI1K^@:+'RI%JR.G@:#E._G_3%+L!*CF?!G/N1FB=WT./:I&<-7"C^KK3,V |
6384 |
M@1P'HE;^!2U5(L^ILA(XA.^H-(E]0H<7$041B:I"8;DO)=3"-/*+U%@JM>9Y |
6385 |
M3N?;SD[<=2*:;;WJ5<0-F)H:4>;KLCU+U+6B/A3D!Q)5?N\::PLEASH!JG?" |
6386 |
MM^O;434&9Y3LBO.;R)N*]E3&NH0*V"*>7Q<B-Z.'<J&\-I),C?>FW$A4X6"5 |
6387 |
MS2=SFXM<UBY$$5"E%']LN;V$UXX(3ZT_-_I[&@#B#KE5RXQK_1=KG(LARD<% |
6388 |
M<Z$%/>:<D[FOW?0S8H?TR]_'[;[Q-$M25[6/IBPJA:7>QHQYRH*K\_&MPTZ: |
6389 |
M>]13)D"MQ=,TF?%SGA>M6)1;4]$^MX\2H[''7I121X2(+RB8']<[UGE#Y7:[ |
6390 |
MC$''FS/H+7.E262[\H96%*]N0JMS"G-.>PN>;:B[A'B/.)T2+$-K:*HV>DEC |
6391 |
M[YR&G1F^>$`<?@[)<-R((UG2T$Z:]I45UI1(#6RH3"I4W]U*W1?6FE'S-\IU |
6392 |
M/)0#[F0+/6*1"TG!)X%$9%[>X<&CXE]H(NN3GK<U]OZ8\>B15M`^O*8^O'E7 |
6393 |
M6*.TID<5K9*Q[HW.>!"7M(/\>SIK%D+E2FJBO7*;^P\,5/*CSI=25[?ZS" |
6394 |
M-V@$-%M7IT4W5W,K()X1=KO2V+(:-D!S7G@V!M>P_S4/H/4C;Q&D4HRC`CDX |
6395 |
M@NC9X</L>/)E93<,+Y?VOX7ANV8N_Y=XV`-2V=B)V6S8V+D5)Y"EKJ0FGR1) |
6396 |
M<(0?HPR5"F>#[C`+V4[@60MU"*&0*K>H'[=(/6G7T=D_H[/W'EM=Q*[3*+<V |
6397 |
M?^_P_";PT/0-Q_0`CCY?]\(])Y4VIX%/9][9O1)!XVC9^0`F].L,C%B"QC[? |
6398 |
M'VL2F%Y5#''`-2=H6_-?OHA)OX*.R_#B8=STY":8QR#;!J:N[6V00KH?A@!G |
6399 |
M@%G\JY:6$>B"U,3<WDO:FFR./;0LM9-T?_/&J%382I"&IULMEMT6NO@67DY5 |
6400 |
MID_M2?@E%/-?=(K_9W_^G!6BO)-.IE))/^&C$QW7=(.<0[Z+DN'Y$]*3^R+Z |
6401 |
M@<9`%XTGB\D@"-C8OU!+`P04````"``A<F0Q%5.0?*@``````0``$0`5`&=L |
6402 |
M;V)A;"]C;VYF:6<N8W-S550)``,M@(I!4WG(055X!`#H`V0`C<RQCL,@$(3A |
6403 |
MGJ=`J9("Z$F35R%XSB`O8"UKV4YT[QY;::Z\;C3Z]:E'+G-CT0O3]1(3MP+O |
6404 |
MW$CM&<CU*5=WN=W5HX:"/H>(;YA$YB-;U]66]LI$P38>W82]A"Y@-P;!!,S' |
6405 |
ME`2&S=VV2KO=%CI!I82!F#(-C.J].1AS7B:"R`@VN2X=?%-OI?5/JV)6Y#&) |
6406 |
MU\]&PUW]_D>@%B<,?XPN.\'K+(%R/)$/4$L#!!0````(`"%R9#&LJA/C(P(` |
6407 |
M`(0$```6`!4`9VQO8F%L+W-P:6YB=71T;VYS+F-S<U54"0`#+8"*05-YR$%5 |
6408 |
M>`0`Z`-D`*V2P6[:0!"&[WZ*D4\0!5NYTDL14174!!#0(HYK>VQ/6>]:NVL< |
6409 |
MM^KC]CTZ:TADFO;2]N"#M?]\\_\S$]\$<`.[$B'5RJ%R%G0.KB0+.4D$81!L |
6410 |
MDWS!U('3_(#PI+^2E`+632(I]>6/E**R")_16-(*[J([&'EI>'D)Q^^@TPU4 |
6411 |
MH@.E'30L?NWA"?B<8NV`%-NH:DE"I0@MN;+O>*%$<+@P=.($:P6K:_[+/6(@ |
6412 |
M!.&@=*Z>QG';ME%U-AQI4\1/Z\?8J_VWU;EK?<",K#.4-`XS:%2&Y@K&-H<" |
6413 |
MSB<4A+.M1RRV(23"DKV%_6+WL/JT@_ULLYDM=P=8?8#9\@`?%\O[6T#.PEQ\ |
6414 |
MK@U:GK'QU>2C8A;!%O&J9:[/%FR-*>64@A2J:$2!4.@3&D6J\/6&BI(7)E0& |
6415 |
MDBIRPO'T[=L(T4MBO^<55Y$2$N8ZZ\,-QL/SS*[5"T6.6'R/)Y2Z9FY_'K_! |
6416 |
M//PX\ESV0ACAB]?:G-VD!H6?6](-)?UAS7E[?088S<=]RX$B`IA)"9MSQ@U: |
6417 |
M-">>U8NY.9]KOQ)M1G8\O6*/7LW-&E=JT[/C('BO1(6V%GQ;C9&C\`\W<L2N |
6418 |
M$M:AB0MV?D3DV+%?'T9D(ZUD%STWDF\Z"**FAF\!\/BMFUC729Q0Q7N:GAND |
6419 |
MI=$5<HM"ZD3(V!Y)Q;8FE3@U:>JHH#P<!]][SK3TJYV*U-$)_P$Z8<(`G.E6 |
6420 |
M_34M4[^0_H_)3%V9_`E02P,$%`````@`PYEE,3*W:7[L`@``I0H``!(`%0!G |
6421 |
M;&]B86PO9FEN9$)A<BYC<W-55`D``TT7C$%3><A!57@$`.@#9`"UEDUOHS`0 |
6422 |
MAL_E5WC32UN5D'ZHJHBZVL.JVOOV5O7@P`2L&!O9IDFVRG]??X`A!-HH4I$@ |
6423 |
M8'O>F7D\,/G%<`&RQ`F@2M"+2:Y4&4?1>KV>%OP?H11/N<BB%6P++!6(*,,* |
6424 |
M5@"EOE4Y")@2.>6,;J>;BDXNYT%POB0L#1/*)2PJI3A#'\%9=!4@M.`B!1&C |
6425 |
MFW*#)*<D14I@IIT+8&JN%Y0X30G+8G2G5]SJ\[[^_4&*D@N%W;)01Q;BL@2L |
6426 |
MS1.($>,,_`0I<`:A@(QP%B,!B;J8E9MK=//07O6`#O7L*M)&E$@52K6EX$QC |
6427 |
M!R+)!2]`H\@H7V`:R15A$4DXDY'-+73)34N6F;3/?.RS>;`;HO`3317G=(&% |
6428 |
M&PB-F&=38)$1%@J2Y2HV\?5RKN6;!8=0F@44E@/S)M6AJ.*<OX/P47P*\.YV |
6429 |
M'^/E5[(Q3A1YA^/4[Q];=>.IH_ZLU5\<.JTULO\]'*[60L5+!\/6FZ^1=C9, |
6430 |
M..5"QN@E%P"__^8XY>OZX8]F30WO8>T%UZD6G7+NR[L%WD.WV!$RF457R))C |
6431 |
ML%&H+A.=<\W3CGZ<5*'&OJG,3[E;X.[BWHE=U[NOCG&-UMYLVI#(:THD7E!( |
6432 |
MGR9*5#!Y^U3/JE@]4Q!6;X]^AUHIX)WP2AZ2\S/?3:^-MGXA=OT0CD5HE;S< |
6433 |
MD-()'.W%<K2B`R!S7^)=B.WH=P/TP37O_*[K_EAX5L5GW%<Y`9P5]*H'X#H1 |
6434 |
MND_<->JX2W)(5D=Z:QT]W(^%W],[`HK5LJJ/LWU56U%2855)VW^"X0UN&JKK |
6435 |
M2NX+.JO/&_U@YM8D57EL-\\\YN`ZDWON^;)N&K%91^S.&?OF>3M@;`-]=?=/ |
6436 |
M$\;5DE<LG;R-Q/Y5<38"38%Z;TL"-`U&&TS[Y3_D,]L+VPJ-!;S`R2H39L`U |
6437 |
MAAB=/S\_Z,/HM2/FF/>[W^N28IG[PM)_*3H.M1Q3F#!=&WOC(UZW0"E??P%[ |
6438 |
M+0R%TUD;^V'.;;3#Q)7N'':A,?P/4$L#!`H``````"%R9#$````````````` |
6439 |
M```.`!4`9VQO8F%L+V%L97)T<R]55`D``RV`BD$*9<U!57@$`.@#9`!02P,$ |
6440 |
M%`````@`(7)D,7_0^H=S!```6@H``!<`%0!G;&]B86PO86QE<G1S+V%L97)T |
6441 |
M+F-S<U54"0`#+8"*05-YR$%5>`0`Z`-D`*U535,C-Q"]\RNZO!>@\`P0(,&$ |
6442 |
MU()AB6L=0V$V6U0J!XVF;2MHI%E)@^VD\M_3K1D;FX_=5"IS`4M/K_L]=;?2 |
6443 |
M;=CF#\XOKWH#Z/>ZEX/A)9SWK[L?ZYT-V(9?T7EE30<&-WW82_;2*_J[G^RF |
6444 |
M_?J?/0(Q[FZ"(*T):(('.X(P41Y&2B,(A^"K[`^4`8*E#80!!B]%B7!395I) |
6445 |
MZ"N)QN-*/`X%FXQM-9NMK1.8VPH*,0=C`U0>5X+@3&(90!GFD+8HM1)&(DQ5 |
6446 |
MF,20#4L"]PV'S8)0!@2ARWF=\1(%(C#/)(2RDZ;3Z30I[)]*:Y%8-T[)B;11 |
6447 |
M/;2C,&6!N?+!J:P*F$-E<G1K=)3E*H#D"0.MLR'TABW(A%=^A]D^]^Y^OOYT |
6448 |
M!Y_/;F_/!G?W</T!S@;W\+$WN-@!)"G$B[/2H2>/'2B6B7D"0\35>,PULG4* |
6449 |
MOD2I1N2Q%F9<B3'"V#ZB,\J,P:GQA&Y+F!RT*E00@9SW3_DSS\*WE6N^IG/* |
6450 |
M"`U=FT=M*^:0F_D:N&=44(2]P$?4MB3BQNH7+'QB61A=6Q254;))J6M=:5W\ |
6451 |
MP>1P8UV](1T*MC2;1]*7T?ARNG3#42ML=K=@[_CX!^9X%9_`F=9P6QMSBQ[= |
6452 |
M(QG<Z.E2?<<[M&[3;W5X"8;2A@"_"'GE<$R>_UAX7GEO&B4)%>-/S?DS'<AY |
6453 |
M4D'!YCLQ@==;ANLS0R[QU6JBPP4#F:HI!EZ^&GR"*S3H2,=Z/RV;:9^K19-1 |
6454 |
MKNDIZMW6U@ZO+IQ@EC[5%4&^14:=^8RN7_,Q%[74=*+D!*3P=5&6SCXJ'V^K |
6455 |
MN7J>'$UYQBG"=R1*JF4I,E*OC`\H<F:+!RPW9$95FT!O%&?`5/D)SQ*AM9W& |
6456 |
M26#CAH/')LDU.ZW1<V9[:>6:C^M9[<2^X$FS#&09Z^EW)*.H;X=\)50<?,RK |
6457 |
M3,Z%71]GJIQ:-%)0%>>H,7!S/K,N&A!3<EAJ(:.WQ=-\HT3IGIB-,3'3U>,. |
6458 |
MOU3*/37*,[%+9W,;)<<L<%$;S],@:XA0JE)1Z<9B_1=F+,B6?@A#8]?@FC6O |
6459 |
MI=8T3_U670XN7GNI8#O=V$BWX90_NBUT(9$T)$__R[<!=`Z&8:[1/\W/YNF* |
6460 |
MW#S.A;;C)$+_ER\J>$\3G28;5$YOMN3$V0+I_1EKFPF=^@=E4GH%"69$@;[D |
6461 |
M(HC(-]ZI!YP7@EK)I6.JM@=$FF\I%P8FRB?<%,FLTI$QB;+.[0S^(DF9=71A |
6462 |
M[3@R.[!?SL!;K7)X]_WY\=%Q]^0)DM&HL\77,<&67P=H'+T91LB'L;-40&UI |
6463 |
MM74=:)/"]D5TGP&%,NT)UHD>[I:SDXV_%VIZ!;UV"TF%</3:-*$.&+=<:V0> |
6464 |
M-8LKA`=':X1W*E`Q,]N(IG9[VJ`RJ_-5%,[":LA5^C70;Y(&W@-/O--6<!6V |
6465 |
M?H_'9.4\"RVMHJ?!<4Z-]'=[!X>'%T>\$NA\F\9&\R9VZA;3RN`W@W0F_/YW |
6466 |
MA.1GJ([8T!_L'WPX^NX9`1FXP:!2Y#F-I86<O=W:KL5RO.3#1N,_4$L#!!0` |
6467 |
M```(`"%R9#&9J%,O6@0``.P*```2`!4`9VQO8F%L+V-O;G-O;&4N8W-S550) |
6468 |
M``,M@(I!4WG(055X!`#H`V0`K5;;;N,V$'WW5TR=ER2(I+A!L8V"%+63733M |
6469 |
M;A+$;A=!T0>:&DML*%(@*5]VL?_>(27?UP&ZK8#$$#5SSLR9BY2<=N`41@4" |
6470 |
MU\JA<A;T!%PA+$R$1&`&P=;COY$[<)H>(-RCLYQ5"(_U6`KN_=\+CLHB_('& |
6471 |
M"JV@%_?@V-MVVR?=DRM8Z!I*M@"E'=1DO"+Q"#CG6#D0BN(H*RF8X@@SX8I` |
6472 |
MV:+$\-QBZ+%C9,O(NJ*[B8?8,`3FH'"N2I-D-IO%I?XDI&2Q-GER__@^(6OO |
6473 |
M,-03-_,)9L(Z(\:UPPQJE:'9PJ(H-PTH/::@VQ]ZB+MA%\;,"GL&'^]&OSS\ |
6474 |
M/H*/_:>G_OWH&1[>0?_^&7Z[N[\]`Z14"!?GE4%+&AOO+7RFF,4P1-RBG.@F |
6475 |
M!%LA%Q/!03*5URQ'R/44C1(J]_Y&Y`45C*D,I"B%8X[$M_LIQ&W"OLP/Y"04 |
6476 |
MDW"CLY#;AT8<NB_+6@G.')%SBDLY4C?#,S`HD5G,/,0'9G@!%[TSZ%U>_K@) |
6477 |
M?*>$$X1[BU.4NJ((0B-]A7'90-YSS1I"O]&FTB;<Q/"H37/*#3(O_7BQ;CZJ |
6478 |
M6^-?+8(,<'QS$F**Z-_EVNXU@KZ4'N.ID?$)+9HIE:--ZH8&(A1=FV-[DC:G |
6479 |
M2:>3G,*UO_S$6"TQYE30ZV^X.D!N,'0+B=9/1$C0*_8KF[(A-X(&XJ;AH%%0 |
6480 |
MF9[%P>5_N4(J/RM6HJT8S5IMY''WP,R\X*)DUJ%)<JK#"R)5-_']C+&PL59R |
6481 |
M$<]K23/>Z<2M*-%8S^$SA3MF_"4WFGHRXEIJDT)$T-$[@3*[HN=[AR.<NZO. |
6482 |
MEPYXH5-_+84&HV>V/?+1K[CHO.'2ACJ?J)W390K?5W.@YR+;0P>H6);1%*5P |
6483 |
M7LT]VQ98).AF$S%T6`J]%>"H,(BWPX)14;;@?O!P![.^I0'1N3<(MZ11Q*3( |
6484 |
M50K6,>/@.]H(U/1,N>V85O%(6D21]1T3B9+V04H;D^H@&GL2+/87H#$TQ$&N |
6485 |
MYF!7KLA/=D!<17Y!R9$8X?>BR:(-_>B<KL'`GTQH)B(K/A&Q9"9'LQUGIAUM |
6486 |
MPO4]IREU@:;`1L++7;F]RTZCI$TS\L+H$JD=<ZG'3";V1:BD=5O^1B'3*&.V |
6487 |
MB',QZ9[0LJIH641S>EM5VTSK8&8B<T4*;W9K]>^)`V;+K'34D*^H5_6@(;-^ |
6488 |
M>[]2D3_=HL+K;FO9_2L$&N2>L%+(10JE5CK,*F'#!KBE]<S]>J0><G@(?FEU |
6489 |
MW76F7N+OM^G1X,WMX.W@8"<N>V</[VS7)GQ-[-/^!%MVX2-CXZR1U>K:\'#N |
6490 |
M:%XC*=1+B+<-LNWYS2`!6L&;]>`'YM"J:)4.3+MQ+Y^%KQ%Z1[0Z[8_=X48) |
6491 |
MU`F3:%R33=,>>S*V5/0!XE_G_Y5HSB4K7V?:;JUO96I1-JA6HCNMY9B93=V/ |
6492 |
M_+Z=^,7[=DI?`)ZXI+TA5+.==[KL:%#3YE9?-5W^G>^[+7FQ8B9\O01?H:+E |
6493 |
MTNEAZ0W_`5!+`P0*```````A<F0Q24YFM-,"``#3`@``$P`5`&=L;V)A;"]U |
6494 |
M<FQS:&EN92YP;F=55`D``RV`BD%3><A!57@$`.@#9`")4$Y'#0H:"@````U) |
6495 |
M2$12````8P```!0(!@```)D<@^P````)<$A9<P``$3D``!$Y`1O9DT8````' |
6496 |
M=$E-10?4"0\'&A)6TQNH```"<DE$051XVJ592Y;#,`A#N?^=-8M)W_-X,)+< |
6497 |
M;)HZC3\@A*`@655`_5ZH*KZ?G[%:[M?GU?R&5?74WPN'[\XXC#7=^WV>$G.Z |
6498 |
M8S?KM??/XHAJ7E['U\]UG-N[+'U!?*_#GCKG3W,CV,,^IL[A/(=8^P_HGRK2 |
6499 |
M7(0#<F'.`6,^#O/Q`(R38SJP=/MW`.'>L]D3#(!^*(5L#,;&D-T"//RVA%$G |
6500 |
MU-!$,82!NGDG8U*L4P-S0(Q!.?1U!F"&,077<T!RYZ350`@CDP/"3^""01T3 |
6501 |
M*-5Y3@"D0W5OSF`43MLB-"+BA`P.3BEAG`EI#KC8G,,Y/X+\P@$\,F<D7*\0 |
6502 |
MI&C/3:IU0+:3,TJ@&@;=G40#S7&'AEN:@LFA-^A)%4\G$2<'P%A'"008^0A" |
6503 |
MZ<$`2'MFD.,AX$@R85Q'CROIQT$%)>OBXOFD]AS[<'`4MCJ##(V*0'*Z=$3Q |
6504 |
M#`;M*:%P4XLD2@T'9H%YSE;:=J&;*`0W^:NB[AOCJ'S"(-?`5(05TN:_L5=- |
6505 |
M02F5R7@W2JR^<*:J.6"(!A5=,&HB&I$+40)T=8:L)Z;B!0$%N4D>AG,ABC>W |
6506 |
MODA:&1!5MQH?;?OFC&/>2%HC723!2)X,[]UHX:'RAJ/YPRAP<HC<M]MAY>#E |
6507 |
M,OG2Y?BDT'*J<;?QR%"\)%4WG+/O=8;3GZ$P-BZ0#I/+G::F`Q`&X%!TF%;= |
6508 |
MQ_6?IB^5<"M$,RXMS+XI#)6$=01#HK+<&DFISS%G<,KXE?TYE#H@I2X5*;QT |
6509 |
M+DV9K#JST?J[M$U003/))7F"@<-X\5Y'(8E0H.A5<6B_N#GCBB9@<J(JCASI |
6510 |
MF/2CW&A*WTVCF)7]^UD_ID8UB`SXL`0`````245.1*Y"8()02P,$%`````@` |
6511 |
MA7IP,5L#8D5[!0``E@X``!$`%0!G;&]B86PO9&EA;&]G+F-S<U54"0`#^6": |
6512 |
M05-YR$%5>`0`Z`-D`*U7;5,;-Q#^''[%UOD"#+XK9-)ICDDGQ!"@\9@,)DTS |
6513 |
MG7Z0[]:V:IUTE62,P_2_=U<Z[+.QDS3-S3!PTNK99Y]]T9'NPSX_\/KL_+(' |
6514 |
MW<O.6:]_!J^[5YVW<6<']N$WM$X:G4'O71<.D\/TG'X?)3^FW?C'(1FQW<T8 |
6515 |
M(3?:H_8.S!#\6#H82H4@+(*;#O["W(,WM('00^]R42&\FPZ4S*$K<]0.&_[8 |
6516 |
M%>RR;:O>;.T=P]Q,H11ST,;#U&'#"=[E6'F0FC%R4U9*"ITCS*0?!Y<U2@(? |
6517 |
M:PPS\$)J$&1=S2/CA14(SSAC[ZLL36>S65*:3U(ID1@[2DF)M(ZZ;X9^Q@$6 |
6518 |
MTGDK!U./!4QU@78%CE@V#2@\H:%UTH?+?@L&PDEWP&@?+F\NKM[?P(>3Z^N3 |
6519 |
MWLU'N'H#)[V/\/:R=WH`2*$0+MY5%AUI;$%RF%@DT$=L^F.LH8D47(6Y')+& |
6520 |
M2NC15(P01N86K99Z!%:.QI0MH0M0LI1>>%+>+?DSSH-NC31?T3FIA8*.*4)L |
6521 |
M#7%(S6+%^%)++\GV%&]1F8J`:ZD?H?")16%T3%E.M<QK2AUC*V/#"X/#.V/C |
6522 |
M1FY1L*2#>0!][(V3TZ$,AUAAM[,'AR]>O&",C?8)G"@%UU&8:W1H;TG@.IX% |
6523 |
MY9.I'QN;P:\&X0*IQ@AY''Z_TG4$"17A'A_J4%.$Q!N[Z_:R",4;)\I3'B@F |
6524 |
M<CT_"'0V-Q!7ZP"YX)NU18=+-F2HNC1X^;SW'LY1HR6:J]VU:*TCKAU%LMFZ |
6525 |
MPZB36WL'M/H@"X-TJ<C(XDM8U*9K:-T(QUC47[.QS,>0"Q<KM++F5KJ0NKH. |
6526 |
M>(S4M1I&"B=,5%38N1A0\%([CZ)@M'#`<'<.J(03N!R&@3"3;LR#12AE9F$L |
6527 |
MF+!AX;8FN:*FT6K.:(^57)%QE=5!:!(>.PM'AFT=O0<P\KK=Y09780HRKM0% |
6528 |
M5WD\SE`%]6N`H)(N4*'G3EV3+@@0*%FLE,B#MN5RV!%1RA.CL4U@VCQN\>^I |
6529 |
MM,NN60MVH6QA0LB!!3[4QCH-DH8`<UE)JMQ0JU\AQ@/80@^A:09K7)%F$[6Z |
6530 |
M=^+%==8[W71MP7ZZLY/NPTM^:/`*949)3B/SY;<\.T#GH._G"EWLP5JUW]]W |
6531 |
M:W`@@4J*/@FVW^4),;S2HD17<7ZG5NVVMMQ'$YR7@KK$IB,JI`DBS;&4<XZ) |
6532 |
M=`G7>W(W571_!E4R?AZ(QQ?V52_<TQB&2A0%55T&AT?5W?'./X_/T3CS7`'+ |
6533 |
M\TG<:<<=N">8(4VS#$B8Z3&]E<+2\&Q[4V7PTQ;8,74ZE>HZJWKY?H&2P8_5 |
6534 |
M'3Q?_K"#@;%DE0%Q!F>4+'BQ34*UXPZ[;N=&&>LRNIHLXFE_+`IJY?AR*NPD |
6535 |
M+JP?#'?'VM$+6E/A3OG2Z8$A1<IO/JYPN.[[,[07J6-A?JZ%$?ED9`TU7L3) |
6536 |
M8.&=M]?7;O#.A^PD3?7;7GKJWO4<_$#?('07"QV@..-M)S]A1C>"':%=+,Z0 |
6537 |
MH3-*DBI64Q\,MQ9`4GN/5O=+;>[:QO+$R7C*T+03ZKA);5D00<",!IG&QJ*- |
6538 |
M=-960W$^K/WG'&[(`C=02$7XX^CYMH0$7V\DJJ*1D>7B,B4K<OP"VU(46T]J |
6539 |
M&@+2;T_"Y^$*=+F5%7]H-?)>ZQD":F8_YO0T`#BXH!`=9S#.@S\*-?+S"E^V |
6540 |
M1,X?ZJT_"?&)HF_BMN/)VI8E?9IF8<SE8VM*I#DW4F8@5.HF4J>2/HU<RK,D |
6541 |
M-9/VT5%2Z1$-M">UTC6I,%<6:W6.X^(C\LQXG5S._S.H_T,N(D1V\/7T/D,E |
6542 |
MB3MM3S7`O%8AGVV"?!8AG]+J:V,F%/KDM#FWOV<VR$>="RJ`IZ.RS=\>0TGE |
6543 |
M0_^F#.D.HC#<`?`.$9"Z$<+&(OH74$L#!!0````(`"%R9#%5$+N4%@0``&L+ |
6544 |
M```3`!4`9VQO8F%L+W!R:6YT:6YG+F-S<U54"0`#+8"*05-YR$%5>`0`Z`-D |
6545 |
M`*U675/K1@Q]YU=H\@0,L8%'>J?3$"C-W-S`$&[O\+BV%7O;]:Z[NX[)[?2_ |
6546 |
M5UH[Q/E@VD[CAQ#6TI%T=*1-?`[G_,#M_<-D!M/)^'XVOX?;Z>/X<_OF!,[A |
6547 |
M5[1.>#7YZF<!5=Q0_T]SJZC*?MERLR8KN7`B$UVJ/V#LP"?"$=+*1"$!;! |
6548 |
MU<EOF'KPAEX@?#'?I5("GNI$R12F,D7M<!V+X2@2G++IH'LY./L!5J:&4JQ` |
6549 |
M&P\UV6]BX%N*E0>I*8>R4E+H%*&1OF`LANE0(GCM,$SB!9D+<JA6;<+O5B`\ |
6550 |
M^Q7>5S=QW#1-5+8)1\;F,1$1=T7/S<(W7%\FG;<RJ3UF4.L,[18<9=DW,!16 |
6551 |
MPV`TA\E\`(EPTETPVK?)RR^/7U_@V^CY>31[>87'GV$T>X7/D]G=!2!50[CX |
6552 |
M5EET1+$%R95B%L$<L1^/L1:F3<%5F,H%<:R$SFN1(^1FB59+G8.5>4'-$CH# |
6553 |
M)4OIA2?RW29_QEGSUNOR(_E)+12,319JV^JHE=K3)RXE-O!BC$J$[7M/M/22 |
6554 |
MG.]PB<I4%*GC?A>6'6;H72HJI+.RK+5,NQ3'QE8,"D_&MB>I1<'<)JL`MA^% |
6555 |
MNS2F5H>BX71\!M>7E]=K>>S91S!2"IY;AI[1H5T2TUT=8])Y:*:QI^[LAH\` |
6556 |
MYJ*4%AZP$%H"?')Y^/:3[DJ(2)@_MI:WQ!1,10/A^:1$LV?%AB/EJ5%4,:6T |
6557 |
MN@AI'AXPEG."/!%]\9%SR88,U6F'CQ]F7RE)C9:J/3Q^<,WB4D2G[4:0)GUP |
6558 |
M=D&G:[H89$HJ1/N/6#3'.VC3%HZQ:`";0J8%I,*U$JZL64H76MKI@M=,)^:P |
6559 |
M<KB1HB+EIR*AXJ5V'D7&:,'!\/@FI/$()HNP,1KI"EX\0BG3A+UAP@L+RR[) |
6560 |
M+3:-5BM&VV=RB\;MK"["%/%>>@]DV):&PP0PBOIQR`.APDPQKM09R[YU9ZB, |
6561 |
M!CI`D-0S5.AYE'>H"P2$E"Q62J2!VS(LQ&!*B5*?&(UM0J9]=XM_U-)NIFFG |
6562 |
MV'=F,Q-*#EG@6AN[:1`U!)C*2I)R@U;_!1EKL'<^A*8EK7&+FD.I=;/37FSW |
6563 |
ML[M#UQJ<QR<G\3G<\$/Y\L:JNHWEVXW5O>L,(WZ@XNVIQ5+F80MUIVP2%:;$ |
6564 |
MH;"6VO[G"=`V=7[H_$KA4);D=0.U5:>#M+!D1S=*KDPB5.Q^ESH.7NWG4"W( |
6565 |
MK1"V&J+.HEPNZ-([^8OPZ=\CP%OY`;P2!'C$]/O8&M^.@?V>>P][W9D(:'>& |
6566 |
M51#3<%@L66B][M35$1(@D+W:,M/H(T!G^L/22-L\-GN"ZV0ZK.C^LX*X">+\ |
6567 |
MKTE(ND]<7.4;&%?2\NJ7N`Y$/Q^R<$/]ST@;G-U0FX'D``Y]7=&O)J%,WAO& |
6568 |
MZ,@%;T_!D4O<@/\-4$L#!!0````(`$!R9#'BMDS-#`$``.4#```7`!4`9VQO |
6569 |
M8F%L+W!R:6YT4')E=FEE=RYC<W-55`D``VB`BD%3><A!57@$`.@#9`"]4LUJ |
6570 |
MPS`,O@?R#J*GKN!X/[!#]A)[!3=1'3''-K+;[(>]^[0T7=>1'09A/@@L_/U) |
6571 |
MUANH/@]$8Q&\.9`UF8*?NAM=%F51=:%'99C#`&]E`>`H997RBT-%O0!KV+-; |
6572 |
MKYJ.Y6&MM75A:YQ.3^3U"#M6Y78"ZPQ'A;ZM+.U65P]E\3YJ2&<)":;?)1R* |
6573 |
M_I(Q?O`SV6X1@:\0EP)Z6E8%J3$.05`M-HP]^GRYL'U<PH:PS,5LP^"7H&_] |
6574 |
M'/TY)@0F23;S'W,(;FM8Q<"9C0QK_+U_-D--\$D_,GEA8#P0#E7T=O0"H/KP |
6575 |
M>N10C%8\U,#8Y/5U?(:;^U.1VWDR)U_.^%96%/'?C=W=?G<W.?L`4$L#!!0` |
6576 |
M```(`"%R9#'O-AFB?@$``"L#```3`!4`9VQO8F%L+VQI;FM4<F5E+F-S<U54 |
6577 |
M"0`#+8"*05-YR$%5>`0`Z`-D`+6208O;,!"%[_X5T_30-A![C\5+E^VE]`?L |
6578 |
MK?2@2"^VB*PQHW&\;NE_[W@;0DDH]+*##+9X^M[3C!^S&U!&YT&3I/>;7G5L |
6579 |
MFV:>YWK@'S$E5[-TS1'+X(I"FLXICL!HK]I#4,=2<TY+_3RES8?[JFJV6ZIH |
6580 |
M2Y]3(E/0*&QBC2@4L^W$0C(ED!-0'$86=5E)F=R)8Z#>G6+NUF\O,*\7EJ,R |
6581 |
MPD=GQ&4$\8%4@)J>5EK1):'T@))WF?:@Q"X@F-U*I<!^&F`><]3^3#,+B[!" |
6582 |
M+)%3,HRC%//Q#/[J)*2%D-"MZ?:32?1=(1P.T4>#U09JB*I5'A7#MV):KPB? |
6583 |
M-BH3-M_IX04E/%=$/^TAVCM_[(2G'.BO:DWGLHU`UHQO+BVY_W.&)4#HJEK* |
6584 |
MG'$C]ISX1FOBG8UR]R4BA2<\7WO\JL[7\$BI[?D$N216D^\"/(O3R/D"M"M` |
6585 |
MK%W_'^'MG=7'NUO]).7V0$LCV_0@_PC8.J_QA%?(*?;?7/6'5G];OP%02P,$ |
6586 |
M%`````@`<&)F,<M$@G9E!0``8A0``!$`%0!G;&]B86PO8G5T=&]N+F-S<U54 |
6587 |
M"0`#I`>-05-YR$%5>`0`Z`-D`-58;5/;1A#^'/^*K3]!!DDXM)EBADXH3`HM |
6588 |
M(0R0IIE,/YREM77U2:>Y.V'<C/][]W22+<DO$,.7:L;8NMU[]NW9TXK@=0=> |
6589 |
MPUV,$,K48&HTR"&8F&L8<H'`%(+.!_]@:,!($B!<H=$ARQ"N\X'@H=U_R4-, |
6590 |
M-<*?J#27*?3\'NQ8W6XIZ>X>P53FD+`II-)`3LIS(Q8!'T+,#/"4_$@RP5D: |
6591 |
M(DRXB0N3)8H/7TH,.3",=!EI9W0WM!`U16`&8F.R?A!,)A,_D?]R(9@OU2BX |
6592 |
MNKX,2-MNN)5#,[$!1EP;Q0>YP0CR-$+5P"(OZPH4'DNA>W)K(2YNNS!@FNL] |
6593 |
M^'QQ=_[QTQU\/KFY.;FZ^P(?W\/)U1?XX^+J;`^00B%<?,@4:LJQLKNYC10C |
6594 |
M'VX1&R:'TKF@,PSYD(<@6#K*V0AA).]1I3P=V?V*CV(J&$LC$#SAAAE*OEX. |
6595 |
MP2\#MF7^2)MXR@2<RJB([8-+#MTG29[RD!DR'I)?J:'L1K@'"@4RC9&%^,!4 |
6596 |
M&,-!;P]ZAX<_UX$O4FXXX9[A/0J9D0<%D598K`AD=RZL%JZ?2I5)5=SX<"V5 |
6597 |
M6PT5,IOZP71!/JJ;VY]-BS3`SNENX9-'?PX7>IL,G`AA,6Y<&F]0H[JG<I1! |
6598 |
MG5)#%$67:D?O]NT2P.\2X1R)F&0P+K[?I:4IGYB[2UI!IQ.\AF-[`>TV9"FD |
6599 |
MDA]O<W6`]L&MF0K4MFF*'-BD_O7IL@0'JDY"Q?(+W1>YBAC>I2Q!G3'JPUR) |
6600 |
MG>Z:?AKC-&':H`I&5*,Q(E4^L%Q'GVM?IF+J/^2"^K_(2G]^5=[75JS5<O4; |
6601 |
M!>.1&8]E&3)E3X-JQQ&)""EABEC5AU[V`#_1YXW[/K(HKRKA`2W2QVVA99YZ |
6602 |
M$QZ9N`]O_0-,CCJO2!M@(!5UC%/74O#HJ#+O))Z1F1=*(97N@R%O*"W*]L== |
6603 |
MK!#/SHD_HN"@N[^TOV]C%LE)&ZB@Z@:H,Z;&;F>YL!IF("D3R?-Q!`XW>?-( |
6604 |
M8`,6CD=*TG'C,/JEVGOBC)67B[\69;O#!U,S_^`Q0J82T0%%Y&E(B'/CA6#6 |
6605 |
MZ?BN\E:XB1G>4(:Y/JH5M%<5M!Y<2:",11&=HT[IQY)!!Q6#+%T:&F\MC5XY |
6606 |
MT9Q\;]J$VV_X:RCFPN&Y&'Z@,Y^.->;<L`KM1,R*1O'G%Q114>=K.M^Q+FCT |
6607 |
MRZSZW2_T:<7&L)[&:WBR*'DK8^M9O`9I.RH_#ZS!Y^^+T):VG<-?H,D\E]$Z |
6608 |
MN2+RGDK3-C6':U8RPB'+A=E4R:^ESG'7J!R[?R_XODT-O_,\^M]6<D6<2\EG |
6609 |
MH>'W&-!DD@9AC.%X<TOU8SMI]=VNO:HZ=G=5FOEBB?:<DI4WS^VYQV&>5J3' |
6610 |
M<9Y2GU4HLY7Y;7;:RFRO46GGOMVRS:.^/.*K(W_%4;_O'@3K&IAK-A";B?.U |
6611 |
M4GH2'[[KH=MZ>KS`8+$!<=L98P/D]N-&"[2<+'Y3;.KFBMGZ[*]D1.OA7GO\ |
6612 |
M-RS5>-%FA1M9:?#.`_O'*Q_$[DM#>Z+]:J89'G=KJDUB/'T>JDT3]5$GE2DV |
6613 |
MAH_"5*1D1NIC5'L-0?ES(6Z,*3TW,M?F.Y[0RV??O0B$L9()TJO`2,@!$X$> |
6614 |
M\S1@2LF)^^M%J3_B0SOR$^1\Y.Z5J'8E1EO:<FE&B^N\7BKG(V&L;K[M`_$( |
6615 |
MKPJFE=MEVXWCJIY/2ZW]\O/&A;R@4";L?S+6\<9WXF^U2N^W2%HCQ)*D<:[5 |
6616 |
M1;,6,2G.4$B=JWG.7M+:BI'=\15`<&T\;5]P'Z^-H5,A,!/:,?5"H2,_2T=M |
6617 |
MFJVPO?R>TGHDK<V$>T@5^7B.GUY\KRI?-R5^F4';6K5`I478%&##X@M$:^%J |
6618 |
MT5K;_P%02P,$"@``````(7)D,0````````````````\`%0!G;&]B86PO=&]O |
6619 |
M;&)A<B]55`D``RV`BD$*9<U!57@$`.@#9`!02P,$%`````@`(7)D,4;V--6Q |
6620 |
M````O````!H`%0!G;&]B86PO=&]O;&)A<B],:6=H=&5N+G!N9U54"0`#+8"* |
6621 |
M05-YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"T@(@S,$")+?^,G\%I+1* |
6622 |
M7"-*G(M2$TLR\_,40C)S4QERGRI8*J2D)BL8&1@8*1B:61D96!F;*F@;&!H8 |
6623 |
M[*L(<P7J8B_Q]'5EO\3#R2_*(&XLH@84XBSPB"QF8.`6`F'&2W?K_@`%6=(= |
6624 |
M?1T9&#;V<_])9`7R13U='$,J;B7_N7^@01QH7H^6A"47@[D>XWS3VK.W@0H8 |
6625 |
M/%W]7-8Y)30!`%!+`P04````"``A<F0Q-LL$%8T```"A````&0`5`&=L;V)A |
6626 |
M;"]T;V]L8F%R+T1A<FME;BYP;F=55`D``RV`BD%3><A!57@$`.@#9`#K#/!S |
6627 |
MY^62XF)@8.#U]'`)`M)&0"S"P08DSY_*FP6DV)*\W5T8_H/@@KW+)P-%.`L\ |
6628 |
M(HL9&`0M09A1^N9D-Z`@>XFGKRO[%6YF40VC]95?K@.%]#Q='$,J;KT];RC( |
6629 |
MH,##L)%=\:O^9$;QO4<<_4QU"Z*=7)#!DVJ%B0QN=OT';8$Z&3Q=_5S6.24T |
6630 |
M`0!02P,$%`````@`(7)D,?`_?.DU````.````!H`%0!G;&]B86PO=&]O;&)A |
6631 |
M<B]C:&5V<F]N+F=I9E54"0`#+8"*05-YR$%5>`0`Z`-D`'/W=+.P3.1DX&1H |
6632 |
M8&0`@O___RO^9&'D8F!DT`'Q03(,3/P]B3,;JMXP-6==*B\\<UJ4P1H`4$L# |
6633 |
M!!0````(`"%R9#',*A^-F0,``+@*```6`!4`9VQO8F%L+V-O;&]R<&EC:V5R |
6634 |
M+F-S<U54"0`#+8"*05-YR$%5>`0`Z`-D`-562V\;-Q`^5[]B(%]LP]JUFAYB |
6635 |
M!08JR#!BU)$-RTEJ&#UPN2,M*RY)D%Q+2N'_GB%W';TL-2EZ:"G``#GSS>.; |
6636 |
MQSH];L$QW!<(7"N/RCO08_"%<#`6$H%9!%=E?R+WX#4)$(;H'6<&X;;*I.`! |
6637 |
M?RTX*H?P":T36D$WZ<)AT&TWDO;1.UCH"DJV`*4]5*3\S4FP@'..QH-0%$=I |
6638 |
MI&"*(\R$+Z++QDH"#XT-G7E&NHRT#=W&P<2*(C`/A?>FEZ:SV2PI]1<A)4NT |
6639 |
MG:3#V^N4M`-@I,=^%A+,A?-69)7''"J5HUVS15&N*E!Z3$&[/PHFKD9MR)@3 |
6640 |
M[@0^7]V_O_EX#Y_[=W?]X?T#W%Q"?_@`OUT-+TX`*16RBW-CT1''-J!%R!3S |
6641 |
M!$:(:R['N@[!&>1B+#A(IB85FR!,]!-:)=0DX*V8%%0PIG*0HA2>>2+?;:>0 |
6642 |
M-`F',M\02"@F8:#SF-N'FARZEV6E!&>>G'.*2WEB-\<3L"B1.<R#B0_,\@+> |
6643 |
M=$^@>W;V=M7PE1)>D-T+?$*I#440&^D5CR\-%)!+KS'T@;9&VWA)X%;;^I5; |
6644 |
M9('Z;+%L/JI;C3>+2`,<#HYB3!WZ<[;4V^>@+V6P<5?3>(<.[1.5HTEJ0`,1 |
6645 |
MBZ[MH3OJU:]IJY4>PWDXQ(XD:X)/T2:<BGK^@Z<%!(&17TAT82)B@H&QWS]> |
6646 |
MKQH'XK^D<B01\*^<F,BOBI7H#*-)JZP\;.^8F"DN2N8\VG1"59@B4FW3T,V8 |
6647 |
M")=H)1?)O)(TX9&:7CAKT1.#GH:F%I!?"&JO*(205IX?_<+@>;L6MO^`OUH_ |
6648 |
M=2BL#C,&F0W[H=<@WQ$O,Y'[H@=OWIIYN!88:MJ#GW^I[YFV-!-T-W-P6HH\ |
6649 |
M/$9SM:3CM>E$YZY'W6P1+ZZ#A5'!<CUK7M[3BPROF^#8@!OP"V:G:^CZL@G- |
6650 |
M-&50_C.LQ/&FU[\).F-\.K&:%D2->X%=4@\$N6%Y3KN%>`RT/;=:R4I!.C7; |
6651 |
M-3+3<ZK(DMCN"[%P<!I/A.\N9V^L>>6BB?UEV.+B?U"%?3'O9>61]J8Z;WM; |
6652 |
M8>SX'R;G]1#_P\R\()]W+`\OPG+\MCO6&C+((DEQ^&'ST+2?KFZ#W?*26?I" |
6653 |
M;<N[J\LCIK,I;GI^DX5EP;8,[D?8]4"W$>OCO%JC[P,];U/XZ.C[PNG[NM9X |
6654 |
MM6VH5Z:NO$,/!X/3\*-%_YJ9(OQKLMM&3E'2)^[@,IXF$M.)<7TO]NPT_`+V |
6655 |
M*U!+`P04````"``A<F0Q]SM8?^<#```3"@``$P`5`&=L;V)A;"]C:&5C:V)O |
6656 |
M>"YC<W-55`D``RV`BD%3><A!57@$`.@#9`"M5FU/&T<0_AS_BJFE2H#P79RT |
6657 |
M4C&B*@*E02&`L-,TJOIA;V]\M_7>[FEW#]NM^.^=V3N_0`Q*45<">6=GGGE[ |
6658 |
M9NSTH`<',"D1I#4!3?!@IQ!*Y6&J-()P"+[)_D(9(%AZ0+C"X*6H$6Z:3"O) |
6659 |
M]I=*HO$(OZ'SRAH8)D/88]U^]]+?/X:E;:`22S`V0$/*:R>,@`N)=0!E*(ZJ |
6660 |
MUDH8B3!7H8PN.Y0$OG08-@N"=`5IUW2;,L26(H@`90CU*$WG\WE2V;^5UB*Q |
6661 |
MKDBO;BY3TF:#L9V&.2>8*Q^<RIJ`.30F1_<`BZ+<5J#TA('^Z9@A+L9]R(17 |
6662 |
M_A`^7TS>7W^:P.?3V]O3J\D7N'X'IU=?X,/%U?DA(*5"N+BH'7JJL6-KQ9EB |
6663 |
MGL`8\8'+J6U#\#5*-542M#!%(PJ$PMZA,\H4;.]445+#A,E!JTH%$:CX_NL4 |
6664 |
MDBYA;O,U&2DC-)S9/.;VL2T.W:NJ,4J*0,XEQ64"53?'0W"H47C,&>*C<+*$ |
6665 |
MM\-#&!X=_;0-?&%44(1[CG>H;4T11"+M\+@B$%MNO,;0SZRKK8N7!&ZL:Z72 |
6666 |
MH>#29\L-^:AOK7V]C&6`O;/]&-.`_AUM])YS<*HU8]RV9;Q%C^Z.VM$E=48# |
6667 |
M$9MNW9[?'[72M-=+#^"$#\@2Y2RSBT121T_^^^D!6<$X+#5ZGHB8(%?L]T^7 |
6668 |
M:W"@XE?4BR1J_R\G9O&+$17Z6M"8-4[O]9\8EQDN*^$#NK2@%LP0J;$I4QD3 |
6669 |
MY1-K]#)9-)K&.]9EQ&<3>GME;VO1/Y3&@!P,1%VC<#SF&X,![R"::W3'*S66 |
6670 |
M"JT*0UI4A?:E$HX8-8(W]0)^J!<LJD6>TU2,8$@RE@]7;_>]7K)VH$6&>K`* |
6671 |
MI,49:)R&",9`F74T/2V.MUKE$"A**I0C]P\\O6Z]//*@*(=M\$C.#OWK4+8T |
6672 |
M"1"^HXU`I!?LZ3Y6-.%#^T!&?G@:<>QDVV4=107X&79G^BH]>)19;@,/U*1T |
6673 |
MB.?GPLW&I<CM_+CWBF"W/=/F$YE^QO4?*XV3?G`-]O]\$$7\$)/,A)P5SM)N |
6674 |
MHBYK2W'$_I[3RK!%S/9I1+;OC'YU8CG!1=A1JBWR445GM%UY86XXN"NJ)ZGX |
6675 |
M/`%7I7RS(LF6.K\,@JW;-/VH*W);X!T5?V@8Z?+(]#W)=-QQ[?V2/^\VSZBO |
6676 |
MMGJY/8_"MP=>$;_G*@\ED>IM.SXL*K'E_$JV:7W7]'<*=4Z_`P:.U@E]5?_X |
6677 |
M^GO^XT8";$A=\G?=2,B@[O#%K%HS.1H]1^1.X=MY'`DV:M>G+)VMD!9HH6TF |
6678 |
M=.IGRJ0K\U2N,9)"37E;WC_M^`43]9)(!N2FC69KECBN?P%02P,$%`````@` |
6679 |
MV@N(,>7#(>/U"```\QL``!$`%0!G;&]B86PO9VQO8F%L+F-S<U54"0`#G)^V |
6680 |
M05-YR$%5>`0`Z`-D`+U96W,3.19^MG^%)GD8+FX["</4X!34AH0IJ(7`$F:! |
6681 |
MHGB0NV5;8W6K5Y)CFZG,;]_OJ-47NQWG4EOK!\<MG9N^<U5G\*C+'K%/4\%B |
6682 |
MG3F1.<OTF+FIM&PLE6#<"&;GHS]%[)C3V!#L7#@;\URP#_.1DC'QOY6QR*Q@ |
6683 |
M_Q;&2IVQP_XA>T"T>V%G[^$Q6^DY2_F*9=JQ.8@K)21!+&.1.R8SV)'F2O(L |
6684 |
M%FPAW=2K#%+Z[&N0H4>.@Y:#.L?3F$0T"!EW;.I</AP,%HM%/]4_I%*\K\UD |
6685 |
M</[A[0#4Q'"AQVY!!TRD=4:.YDXD;)XEPJS)@I5-`AR/9VSOY()$O+G88R-N |
6686 |
MI>VQSV\^O7[_QR?V^>3CQY/S3U_9^]_9R?E7]L\WYV<])G`4R!7+W`@+C`UQ |
6687 |
M2SJI2/KL0H@UE6-=F&!S$<NQC)GBV63.)X)-]*4PF<PFQ&_D9`J'\2QA2J;2 |
6688 |
M<0?P;?L(_7!@<O-[,,F,*W:J$W^V=P4X>$[3>29C[J`\AEV9`[J)Z#$CE.!6 |
6689 |
M)"3B'3?QE#TY[+'#9\]^:PI^DTDG(?=,7`JE<UC@`VF+QC*`B+/6ZDT_U2;7 |
6690 |
MQC_TV0=MBM78"$[0CU9U\,%O!7^^\C"P!Z</O4T1OI[5=+L4G"A%,CX6,'X4 |
6691 |
M5IA+N",<ZA0)X9VNS0/[<%BL#KK=P2/VG#YLHO2(JWX,?SZ_SZ?+P,<NW$H) |
6692 |
M"Z00LSS/U8H!0+-:(%S(<?<3W?Z4IG.EF-(Q5_(''R'![0QY9(5SB"G+[-3O |
6693 |
MRTO!2#\Q_0-1"D>PN5$/]N*IT:E`6A5G'WA)8B`SYW%`FG=W,Y"Z`<([Y5YC |
6694 |
MS93Q5-B<(^L]WS79.Q.KE%LGS&""B)@)@3@;.`^5M'V=J55_.5=>(LXZI`_[ |
6695 |
M\O(M&\DL\0<LE@@+PQ.IV5]`.(*&*%`,=YA=_'X91/67J=KW0DC=5;>;BFRN |
6696 |
M4"C8"T8_<YW/\UZW7RY'U>)ME8:*/"B-'WANK]?_BFQLM%(C;FPPH59&592C |
6697 |
M9M]752G(:]N4&K15"!N-DHXBD?K^44.\@#2]Z'5S5*Y>-T%UT),>5G]PD]26 |
6698 |
M(>@%-U3PAZS@.,;6B,>SB=&H9="JM!D6Q&=>"!&T5S^)I:.=,0XSA`^LA=YH |
6699 |
MI)>EM8E`]8U]*8%YA:Y^898W)^=)@=%O^9(='I1?>/(2OBVX!`9S8[7Y[AF* |
6700 |
MWS`;&^RG(NYYYM;108(@&V1,Y<>O$#3]TCQ:1Y1XHO)!&*--^?"?N;!4KORS |
6701 |
MU[J0B9L.V2_>+H9$I?I5/E]MR/8<WGF6"DTD4^SLBG)OZ.!=(:*?9Y,RMFH3 |
6702 |
M[RGS,_>=JRFS/ND]9;XB`4V);;CN+O1?049#;N5-.3:H5(T@#PND::0-.N\0 |
6703 |
M$TXFCFM''1X<K'NJ6DAE%E5$]5)-ER_7M5OT^+E%QC<,J-?(AL&C;J>55A7) |
6704 |
M<;<#EBV)5U'D/!/JN#I,Y'0.0Y`%5BN9H-,;(<[>DGT74U[F:D&JQ-BU:5MD |
6705 |
M)AQN@^XUEA5M-4A'VCF=WD1[4Z5H0GIT%"!=/S"@ZP"Y6P#3P`^5)4(?G61# |
6706 |
MAC$+3>FXN8-".:LW"ND[@=H&P%;TMQ%>`VH+_.L0+0F+XU6%D,K?KP5B&X`] |
6707 |
MWD"FUT5OQARQ9<-IK9S,6SN-G+DA=BBQ*]X($[3\(1HR-KTALF2+*YJK30\W |
6708 |
MQ1UO'/ZXE=5KIG@>7VDPH__5X@5M$/XMD>;Y7@&^=]7>]^T-,-`?-YJ+%>'$ |
6709 |
M92GX\N7+2\5G@JT$G_8PLU'[10F*(IJW<7U(=/:S8R.,X=G$SW%]QM[\C,$N |
6710 |
MQ>V!:%)<*!"6?5\_]JU,!.$*J#"[A*>IX'3JL334]Z=2)56.5+GTM`"H=0AR |
6711 |
MN&^[%$V=.C_7,G-'%?;\W`S.N)F)9A5>LPVV*CX*(0!8`O8AE'Z!;72\9O5, |
6712 |
MI8T%1LE,Z'ES3ND'A=%8QW,XUTQ$8W+"737LH/I/,HVQN-7JN[@F.&K7\53$ |
6713 |
M,YP=OZ@6Y3*>P?MNE0NXW]/L?>]5HV*OF$()'8R*#B'?ZXZ,7D!CKRL2B:M' |
6714 |
MKVXPG98Y94@6;J3;BSE%DWZUS*41WF'-D88HMU"]8)?D^9HX(/B4(%QWGX.# |
6715 |
M,:0;NAN2^V[90Q\B(G)&4F$Q@AF1XJXQ9AI,J7(7B2-B$D2Y`6(K=G$6$$,` |
6716 |
M2&)LG@G'I;)K2!R6+6!7X!,'S9'1(@3[2*N$N.#K?=2D3&F>O.,9YHFB[U[3 |
6717 |
MA7Z7HN!K,3TB%65MH<*7H#K@'#A+Z=(!W:QQ8;YX_?Z/MV=(:'H_4LRK=''J |
6718 |
MT7']%1L+U0[D"$OY+S.D/N922-K'X)[J+"2>PYQ<P'RUL1.&89P@@XL#+M/B |
6719 |
MS^6M68CRVUB)Y?-#JG*=E"_+*>?)4]2>C>R!/#V3XB2F-T!!ZF5#]>,J*%)D |
6720 |
MID0@'"$RV8%W)/ZLB]LFS=\KO4L3:7/%5W7F;"/?U[-3*F3JI8\FZ]\/%-QU |
6721 |
M+#IU-_87=6PVY2AGK@6A8/B6J$E1/V!\K+2=&Q&Z1QD]U*6;*&#D"4BU=]9: |
6722 |
M>W,KH%M-$D<MUE:=+^?<NTS85.0&;@&.510KFY35?6T8;IO=3J]&+;K.$SL! |
6723 |
M+#8C2H9V[?MUPX"[RQ].Z4W=G2\@F_!$T\OF]>:N5GSS'?+OYWNO4=Q"U-S7 |
6724 |
M')U7O9C=`Y`-4_X'^)!!#7S8;H"0EN3G[<IV-#+JU0,$AV]DNR-AO\CXH_OK |
6725 |
M*41'%K?OLG?>H#+VI>;^&HV@H;#2%*:/\`8A#"[HWCYVZA[ZI+P7=$(V[A\< |
6726 |
M'*P-"V6:[H_'H^.RT=UX_;C"+(9GT"6K4/2W7F@I:\=%:^WX(8]>,94-HVGH |
6727 |
M43'#W%;[VDCPF%6/Z!H2W=G4/?N&&TOG=O>R3J/H/0L3V@B^1BV>V>A2BL6M |
6728 |
M-5YU.S0P4';YF0!SHJ)_-5B!(NE?ZF-$H(W<2(QOU2O?,#4`Q;Z?0VGH(O@; |
6729 |
MC-L:)^EZM70BL_Z]NIWG_J4OB7%\M(SP%5'NPY=5WPMN7+\G<!,(UIK1G8.Y |
6730 |
MJ2M$<Z'/LV/HG/A^R^=.%V&VS<BJ*/T?])/Z<.VHK[;DXMYUFSZ6FKMTM57T |
6731 |
M?["M5\G"4VW/_1=02P,$"@``````\%UF,=,NVAU]"0``?0D``!4`%0!G;&]B |
6732 |
M86PO1FEL97!I8VME<BYP;F=55`D``R,`C4%3><A!57@$`.@#9`")4$Y'#0H: |
6733 |
M"@````U)2$12````2````!@(!@```%ECN[`````&8DM'1`#_`/\`_Z"]IY,` |
6734 |
M```)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"P80+Q^4\@R\```)"DE$ |
6735 |
M051XVNV9;6Q3UQF`GW-MQW$,29V0AH1`0L@HL'GEHU`DM%+$JDK35+'NSX8J |
6736 |
ME59JIPE1H;92IY:UZH2F:IW6;LN/:5LG5+'2C4[=1Y%H(56_6)654A"0H!#2 |
6737 |
M0`+YPOEP[,3VO><]^W&O'2>$X+!NZH\=Z<CV\3E'[_N<]^N>"_]OLS;U)9+% |
6738 |
M_+=D,I6HB5O!5P4F@O)78$D%/BH(6O,I)DB`-(8DMEQEP@R3,3&T-8+QWR14 |
6739 |
M\P6`F++?TJ5+"8?#G#ESQGS1D,9\4!0!*0.K`D451=129BVV:E3%O`I"X0`V |
6740 |
M:3V2CG,Q$5.7,D,HQI7&\<\1C``A0`/.S8)Z_]'MG+I\@<<.M0"85:M6$0J% |
6741 |
M4$K1V-A(1T?'G""5EI9^/QZ/OW8]H2-]?.<N\;_USE+'J'*"U%)IW58<575K |
6742 |
M5E-Z1P/^FG(D;OM2/?U4G#^C@^TG5&;H<SU!O%!`:O'M=\ON9W_&$]_=,`$L |
6743 |
M`,8`^V8@G>[MHC0T#X"%"Q>R>/%B2DM+V;AQ(P</'B293-+;VULPI'@\_MHO |
6744 |
M?K5GQO_.M9[G=[_YTYL?QIQO2X@C*D(I#64K?,OOW4S9M]816+]"^2IO,9(0 |
6745 |
MBD_'+/^QY89(B'A+T@P/I:Q"+:?EW7\PD;:)WKL#X"I0"@1NQAU\EL6.-YII |
6746 |
M:&B@NKJ:[=NW4UY>3EU='7OW[F7SYLTL6+"`N<"O*+^%\>08XXDXR;%1$O%1 |
6747 |
MXO$1ZNH6\^@/MJ,U;Y6]0GKU+U7OLP=O/?QV2\V3L<2:+?ANJT8M""E??9BB |
6748 |
M>Y;TCZ^^YV*R:IM4+:RCQ)KG+P1.8B)-\V<7*0L'J5YYIVL%;^\;!"J!^%PM |
6749 |
MZ8=_^XC:VEH:&QNIKZ^GNKJ:JJHJEB]?SL#```<.'&#;MFVTM;71WMY>D"7% |
6750 |
MAD88&8F[0AB#,6#$(#+"O)(@CS_Y$'Z$FOEQUJRO87'C:B+EC5B6+V^78B*W |
6751 |
MWDG;9X?NJ@N'?Z^+_"7^0N"\\VD7?I^%I2R4Y:-J^3I$A+-'7KTI2,N6+2,: |
6752 |
MC?+PPP_3V=G)PH4+J:VM)1J-TMS<#,"N7;OX^../:6IJHK^_OR!(B;%Q-PL8 |
6753 |
M5XSAX3@'7S_L*J,@Z(-HO0_1Z_"%:JA9D@%_R;04(JX6HC3&"OAO!.?=DY=R |
6754 |
M@Y8"R[(0I:CZRAHPPMFC^^<"R=37UW/???>Q?OUZZNOKZ>OK(QJ-,C`P<,WD |
6755 |
M/7OVT-G9R=&C1^GN[KXAI.3XQ!1`?W[],*^^^ELV;%B#:`=MI_"G>YE?W$ZX |
6756 |
MLASD$B(E*!7PUJ71Z38N?WX)%L6&?*G,C&E>`1(?GX2CE"N73%.]LB'*5[_Y |
6757 |
M0*&03%U='?OW[P>@J*B(:#1*1T>'N[?(E,]LV[U[-XL6+6+?OGWT]/1<%]+C |
6758 |
MC^V]9NS`@7W<<<?7Z>N[B(@@=@K+29`D0\0^AZ/3E)1>(1!<`@CV^"D&+K;P |
6759 |
MP?OG^-[=$[TZ):-J)CAGN@:YV#^*4@I'3PK</3C&W]\[CI-)$>_ORIT4P/$W |
6760 |
M7F(62&;9LF6\^.*+1"*16=UDRY8MUXR]_/++='1T</CPX2S0Z7*;DZ<^(A0J |
6761 |
M`6,0-P!A,(S%AYB82&*,('8&Y:3QZQ'"@2O,B]C,NZ640,#"V`G&AH>Y<#[# |
6762 |
M$S]ZC9/;3:7I8WRZ!0G`U^HK<P,?G.[FZNAXGHMJ,$)RJ)_6YC].UV40J,@K |
6763 |
M`7*9Z,*%"]Q___T,#0W=$%)34Q/KUJVCL;&1RLI*8K$834U-TXO-*9""P6)& |
6764 |
M1OLPQJ"U1L0@(ABMT8X#1M#:H$2A=1!M5Y!*#3-R=0PL(9,Q3$Q$N#1HTWW5 |
6765 |
MP"A)$T?\TZPG!)0!\X$@<"9<'.#JJ.O78@0CVH4TV38":0](VDO]OKQ",E\1 |
6766 |
MT]/30R02R;GM%*T]BURQ8@4;-V[,C8^.CA;T:*2U]@")*V\6E#&3P`Q@`F1D |
6767 |
M/DD=1*5L'-$XVB*M(9X9)N6`'4-4#/S33L4!$D#*4Y)DRIX40,P4M_):VJN+ |
6768 |
MQO,J[.M6V6UM;42C40#Z__`2B4N=O'NZE4?^TIR;4UY>/C4[)1(%E0^V8R,B |
6769 |
M+B!Q`>4LRA&,=A#1B*,]@`H1/^*`UH:,-J1M&PRH02Q[!&NZBSF>D@JPLJ?J |
6770 |
M6L]U`3D>G+CGHF:V3)8-R@`^OX^QTY^2FO;$LW;MVBF_P^%P88`RDX!<EQ(D |
6771 |
M"TAKC.VX_SLV(@8C#D8$L1T<;YVV'7Q`L`]?L/U:0$Q7,`O'T8*C71>;EFF, |
6772 |
M!R;;9VN_?N:99W8]_?33N:5&6>P_<0Z`8\>.T=341$M+"P`K5ZXD'H_SP@LO |
6773 |
M`#Q_HQN)3";C9JMLUX*8K-P&L6V,H]%:@_$L26N,8[MP1$/&QB\0:\>JH("' |
6774 |
MU;2M2=NN2:8RSO3X,]<VY!9PP^XO?X!,\7P>6+N"ENX!-FW:Q*9-F]BY<V=N |
6775 |
MP9$C1[*`/I]A/RL;"MP8Y.0L:!*4:T%&#%K$=3$1T(+8@M(.8@MB'+1C,%K0 |
6776 |
MP"M@GH+,#0&]?[J;UJX!4!;#E\\S/C*`,09?('@S@`X!SQT_?MPM[%I/DBJ) |
6777 |
M8.)NC,E6T?GMQ(D3V:^M,^P7`$JNL2#M@?$@N3%)O-_9+*=1N$%;%(BQ$$M( |
6778 |
M6#Z2P%/NWF,W!/33AS;/]7YGMO8)P)4K5_A&>3$C9T]!Y3)"@2(`MF[=>LV" |
6779 |
MLV?/3ED[@P7E`#F.XV8K+WOI?'<30;2;R=QL;'",06/0V=H)E9]=@S`UB\VD |
6780 |
M^'ROKBG)!NT9YB2]0#W;/L\#SV4'=NS8`<#M;[8`+9/!1*E"#F('L`_8`)SU |
6781 |
MK"@'R(A;[TB>Q>0#,\:UL&PYD+,P##[+PDR>=Z`00"D@!HS.,L_QYLDL070] |
6782 |
M<*BVMO9?.W_\"+9M4QP,H<6A=_`*PZ-##`_&&!M.,CHTQLD/6_E)TQZT+5SN |
6783 |
M[Z&KLXNE2QHXW]'.>W_]9Q;.)T"Q5V;PP8?-),<3;JSQ7$S$<ZV<RVG7I<0% |
6784 |
M9,2K[=PK`)12]/4-YNM5\$VB-4LOY#XHFQD?S/L^6Y]M7G[S`V'@YP7N6VC? |
6785 |
MZ]UW_4\N[1^\3I!=!:S+9C8O2[7>*'[-<'@^H"CO4^7U_'FJ@)<7V4(W^V20 |
6786 |
M^3*]U?@BWLZH_W"]F5X+_AL0:7W!.6H_/P````!)14Y$KD)@@E!+`P04```` |
6787 |
M"``A<F0Q+!(-P00!``#4!```$``5`&=L;V)A;"]A<G)O=RYC<W-55`D``RZ` |
6788 |
MBD%3><A!57@$`.@#9`"MD$U/Q"`00._]%:0G/10\=V/B_S`>V&4*I,-'@,I6 |
6789 |
MXW\7NHEV>U3F0"8<WLN\[L5R`]'S"Y`EX$.O4O(C8SEG:MR'1N34!<EF6`V/ |
6790 |
M"0*3/,$,X,N:%`2@.E)G<:77!?O'4]?1Q9//CA"C[9"U2&HD3_YZ*C^H8QIB |
6791 |
M6A$&;;B$\::\J.`,%*E$=^;(XJPMXR&X?'N'Q5.IIPK_(O=39:-R[Q`VY=\% |
6792 |
M0X'\2"KU5>C(SPCBN4]A@?[MOX+"^Q5T5+AL&V<2=G=!Y3<H(^RA3.6V;5,4 |
6793 |
MAS8(4VK<!J>T.Z(*&L0IT$.="FY;ISH.>8*6JG6?H/=]-D.#0(5Z"+21VQ:J |
6794 |
MDKM"WU!+`P04````"``A<F0Q2HR32#4!``"D`@``$0`5`&=L;V)A;"]W:7IA |
6795 |
M<F0N8W-S550)``,N@(I!4WG(055X!`#H`V0`A5'+3L,P$+SG*TQ.(.&$EIY2 |
6796 |
M(7%`?$$E#JB'3;Q-K#A>:^.0M(A_QR%4:IL*#I;V,3L[LWZVT&#KH$#1L;F- |
6797 |
M*^]=EJ9]WR<-';0QD!"7:8W[!EJ/G);@L49T(?05,B:Z3<B:?3)T)KY;1U'2 |
6798 |
MZP.PDA6"0A:?D1`Y<0AE3MY3DXFE&T3)1!\H-A4COKR&]>N`<Z"4MF4F%@\! |
6799 |
M,KYC,'9S*.HPUEDE"S+$F7C35E$_]LX*&QS\.OJZE"(-Y&A^!#7`I;;2X,X' |
6800 |
M.8\3_XZLESWJL@K%G(RZQJ&P+5@[K\G.F5:KD>EDR$&)P?9P`OTU-X/F73B. |
6801 |
M;66+#A@\\2G]\7+CY(UN'+$'ZZ_.AVUR.=MW!?H^95/R%.^TU6T5;^__AMEP |
6802 |
MVW@[MRX7_TF[(!I_\YR(I\O//7X#4$L#!!0````(`"%R9#&MIJ;='`,``+@& |
6803 |
M```3`!4`9VQO8F%L+W-P;&ET=&5R+F-S<U54"0`#+H"*05-YR$%5>`0`Z`-D |
6804 |
M`*U446_3,!!^IK_BU*=V6A,*#T"G252;$(/13>L&3(@'Q[DFQQS;LIVU&>*_ |
6805 |
M<TZS-8B!A(1?HOCNOKOONSNG>P/8@\L201H=4`</9@6A)`\K4@C"(?@Z^X8R |
6806 |
M0#!L0%A@\%)8A/,Z4R1C_"E)U![A(SI/1L,TF<(H^@X[RW!\`(VIH1(-:!.@ |
6807 |
M9N>')!$!-Q)M`-)<1V45"2T1UA3*-F6'DL!UAV&R(-A7L+?EOU6$Z#F""%"& |
6808 |
M8&=INEZOD\K<D5(B,:Y(%^>G*7O'@*59A74DF),/CK(Z8`ZUSM']@L55]AV8 |
6809 |
MGM`PG"\CQ,ER")GPY/?AT\GEV[.K2_@TO[B8+RZOX>P-S!?7\/YD<;P/R%08 |
6810 |
M%S?6H6>-78RFR!3S!):(OZ1<F6T)WJ*D%4E00A>U*!`*<XM.DRYBO*.BY(8) |
6811 |
MG8.BBH((++[_G4+2$8YM/N,@TD+!D<E;;A^VXO!_5=6:I`B<7')=.K"Z.>Z# |
6812 |
M0X7"8QXA/@@G2W@^W8?IJU<O^\`GF@(Q[C'>HC*6*V@'Z9&,]P,4(W=9V]*/ |
6813 |
MC+/&M3\)G!NWO94.190^:W;#QWW;QMNFE0%&1^.VILFSIT^G.[^_)9@K%3$N |
6814 |
MMC)>H$=WR^WH2!WQ0K1--V[DQ[-X!?#.(+Q%'DQ.6+;?U[I+E?#DCMDK'0S2 |
6815 |
M/3B,AQNHV`5=(KGIA_]^!L!1L`R-0A^7IM4@BOKYZO0!'+@_%;<K:;W_RVE9 |
6816 |
MO-:B0F\%;V+MU&CXAXVZP:82GNM("^[2#2+W/HW3C@GYQ&C5))M:\0O0ZC*+ |
6817 |
M9U?ZB,<Y<'?4N+/$Q`_6[\QHPKDFF=E,A*)"SX`GFDT'?0N7>-,WR-IYXV:` |
6818 |
M$UXVNL-XEQG'6S%94Q[*&4SM!KQ1E//H.L3C-TPR>E6D[UU>V$T;Q]B%,[Q3 |
6819 |
M$VE41.U'/-F9^X:M7K)TID)6K%`F$RKU-Z13+YU1*A.LEB-K"?WD-K&Z&([Y |
6820 |
M8>1Z+8_Z`Y4?CTI6&D=W/)R/B_:%K1Q^.+Q7=OBUU?%>%-T3)=(M,8Y_Q_>_ |
6821 |
M\"G_C4\;U_28=!??!T]27L3X^%HE&J[<Z"@YN_P8_`102P,$%`````@`(7)D |
6822 |
M,;-+D`6S!0``<!8``!,`%0!G;&]B86PO;65N=6QI<W0N8W-S550)``,N@(I! |
6823 |
M4WG(055X!`#H`V0`Y5??4]M&$'[&?\76?0$&2P6::3&33`B$A):0#)"FF4X? |
6824 |
MSM):NOITI[D[8;LI_WOW)$N6;&$[)`^=1C,&^VY_?]_NG?S=#NS";8P0*&E1 |
6825 |
M6@-J"#;F!H9<(#"-8++!7QA8L(HV$*[0FH"E".^R@>"!T[_D`4J#\!MJPY6$ |
6826 |
M?6\?MIUL=[;3W3F&J<H@85.0RD)&PI439P$G`:86N*0XDE1P)@.$,;=Q[G)F |
6827 |
MQ8./,QMJ8!G),I).Z=?0F:@)`K,06YOV?7\\'GN)^IL+P3RE(__JW:5/TD[A |
6828 |
M1@WMV"48<F,U'V060\ADB+IABZ*L"U!Z3$+WY,:9N+CIPH`9;O;@P\7MZ[?O |
6829 |
M;^'#R?7UR=7M1WA[#B=7'^'7BZNS/4!*A>SB)-5HJ,;::7.7*88>W"`V7`Y5 |
6830 |
M$8)),>!#'H!@,LI8A!"I.]22R\CI:Q[%!!B3(0B><,LL%=\LI^#-$G8POR4E |
6831 |
M+IF`4Q7FN;TIBD._DR23/&"6G`<4E[14W1#W0*-`9C!T)MXP'<1PN+\'^T=' |
6832 |
M/]<-7TAN.=D]PSL4*J4(<B*U>"P)Y#3G7O/03Y5.E<Y_>/!.Z6(UT,A<Z0?3 |
6833 |
M.?D(MT(_G>9E@.W3G3RF'OTYFLNM<G`BA+-Q793Q&@WJ.X)CEM0I-40.NM+; |
6834 |
M9J?OE@!^40BOD8A)#N/\_W,Y<^41<W=(RN]T_%UXZAY(4&:"R.,%!/K3SW\Z |
6835 |
M0%IP8Z<"C6N:O`:NJ+^_OZR,`^%#WZV72W^5)\_BN60)FI11)V9:;'<?Z*@1 |
6836 |
M3A-F+&H_(I1&B(2][]B.'C>>DF+J33)!$Z!N,+:)6+(Z/LP-.@#]B9-P2JZ8 |
6837 |
M_>J9)UU;<\%6ZY^H"OYN9ZM',?98FB+3;IC,-8\[6Z0`L"1`4%LE:3ME84@M |
6838 |
MUH>#=`(_II-CDDZ8)A8WE@9*4Z,52T8)'AZ75HN=GE5I+U!":=.G%M&(9S<Q |
6839 |
M"]5X]N.,Z5&QL*B8,WI!]36MB9SIQ>]+][U=?:`HD>3Q^@*'B]Y7!#Y@P2C2 |
6840 |
MBJ9.H=,O;)US%'E%EA9O<4(@W'<Z7@E)3[`!"G(_R>&;Q3+I,0J8:DY#C.AU |
6841 |
M7-\A$HWJ&R4\/SAHVDWO51SY@\:3?-JU.L/NG_VA"C(#S^"A:$J8]TN8P1)A |
6842 |
MB,::O+<78$%@MLHE-05O33UW5,LA_WQ'YP.-0"8+%>H#SST0:I62[(A&;+'@ |
6843 |
M^#\W6-O^U-FB5FBA>B5<<IZ\<]D;\]#&E.E/KHJU+OD<+`J/K;WQ`%/.Z-A0 |
6844 |
M4>DP#\NXB=?C"1UY_6),!+%6"=*@B(0:,.&;$9<^TUJ-B[\FSYLH*;U41FYP |
6845 |
MN$"VRII"[Z#,Z;Z]6#5ZT''/!@+#BB*Q.W7[++#\#AM,:=1Z7?/7.FZQ)S<9 |
6846 |
M`/.N:_3D1LV_H6Y+XZ\,NL"Z&I?[M1(_6,Q5]?MB['NEMY($M4B^$HJ-6IS3 |
6847 |
M6;8)=FN56E%;J[5N4!<Z"R@=S,:+^]2;HIHO^4"DJX:A"R761DQ5R-43LSD` |
6848 |
MW-0,*3FR]_WYD[,71T_:)T&C%1;7\A,#8"G2$NT'0UUFWZ?U<ZCR_TJS:758 |
6849 |
ME=<0P)!NVF2S&J(&YM>0>4E*L>H<J0`XG!7_L`2`K+O;SC^[+=I<IIE=.A[J |
6850 |
M1\.\UE))7-BJG+9H556H'4U`Z$O;/*NJS-VK&;7/FL1+J2\]R=??IOY_`W5S |
6851 |
M;M966^Y3)09+/=ID4D[!)BLL&2O1TD50]]1Y:VPO3-#"09Y]OZ!XDZ1-9J[@ |
6852 |
M9>,BU99AXRJWP?3>$+?_#EU6:"Y395&BL5RC6='4+\M!5IZ>L"WX".&54I'` |
6853 |
M%TSON,ZN1FDYDFK57G[)*M"=OT%1%V^5R+OO,V80,,5!5(>^W"PJN+Q_OR*6 |
6854 |
M9Q`WWAY:+[N.VT/W!M)TN^X%YMM[I7,WY^77'HT+A2-V;-7&=0UU-UC6`=9V |
6855 |
MZ_K<=Y1'G3"/>&__)D^:^HWQ^/&W\UXHO8@/B]OXOU!+`P04````"`#)`8@Q |
6856 |
MWQU.)MT%``#^%@``&``5`&=L;V)A;"]T;V]L8F%R8G5T=&]N+F-S<U54"0`# |
6857 |
MJHVV051YR$%5>`0`Z`-D`,58;5/;1A#^;/^*K?,%&"1CPJ3!#)U0F#:TA&3` |
6858 |
M:9K)],-96EM7SG>:TQG;Z?#?NW>2C"1+MD-;JAELZ;2W^]RSKZ:[UX8]&$0( |
6859 |
M@9(&I4E`C<!$/($1%PA,(R33X9\8&#"*7B!<HTD"%B-\F`X%#^S^*QZ@3!!^ |
6860 |
M0YUP):'G]V#'RG:R-YW=$UBH*4S8`J0R,"7AI1&K`><!Q@:X)!R36'`F`X09 |
6861 |
M-Y$SF6GQX7.F0PT-(UE&TC$]C:R*@B`P`Y$Q<;_;G<UF_D1]Y4(P7^EQ]_K# |
6862 |
M59>D[89;-3(S>\"0)T;SX=1@"%,9HB[I(I1%`3H>D]`YN[4J+F\[,&0)3_;A |
6863 |
MT^7@[?N/`_AT=G-S=CWX#.]_@K/KS_#KY?7%/B`=A?3B/-:8$,?:[N;VI!CZ |
6864 |
M<(M8,CE2*80DQH"/>`""R?&4C1'&ZAZUY')L]VL^CLAA3(8@^(0;9HC\9/4( |
6865 |
M?G9@Z^;WM(E+)N!<A>YL[U)RZ'DRF4H>,$/&`\(E#;$;XCYH%,@2#*V*=TP' |
6866 |
M$;SL[4/O^/AU4?&EY(:3W@N\1Z%B0N`"J<9B'D!VYZ-5!_U<Z5AI]^##!Z73 |
6867 |
MU4`CL]0/%X_!1WY+]\<+1P/LG.\Z3!Y]'#_*K3-P)H35<9/2>(,)ZGMR1W:H |
6868 |
M<TH(YW2E=Y+=OET"^$4AO$4*3#(8N>\W,C/E4^3NDE2WW>[NP:F]*&64&#)- |
6869 |
M2@P9#,CSIT^YVD#[X-8L!"8V=QP5EMO?/UY!JAS(21/RF>]D_Y7+'>6-9!-, |
6870 |
M8D;I.-5BI].05G>XF+#$H.Z.R55WB!0`71ORZ//$5U(L_/E44!EPY/3M528G |
6871 |
M6[,FR^M_T8$\,N6Q.$:F;6&H;#W))89J[C'!Q[(/%/<$IO2&SG!7?#%AFN*R |
6872 |
M#P?V8:@T)4T?>O$<$B5X"(9,T;DUR9^T6S$+0\JZ/KR,YTZ>E(VUHE3S`B44 |
6873 |
M[2S)`V2KSOH%Y84:#W!.;Q[:;;^$WN-!=LKN7KN5@O($CDQFJT64/+1?6(-> |
6874 |
M1DF]@A;MST^5*3C(MU=M&L+B;"Y)@.^H&E'"L12^%:AR^5!Q33^RQ6B_O/@E |
6875 |
M_;)O3CM&3['SAS.4$IR3-8@TXL5;2CSADC=]OHU8J&9U#TO))A1]%AA^CU4P |
6876 |
M5(?D1ACUEM9B/,G<M0R+(XH;<A<<IM]+WLMPJ(^PH<`PAU2%6WU?SW"]5`,# |
6877 |
M5>%-E%3"N!KWF=3/FBV6\4P)[=L+@@B#.RI."74BS-96$OI+)O5?N*44Q&D^ |
6878 |
ME#QTF/W9^Y(HH:R(%IQ928U"ZO,)]>1^6AB#2*L)4FD<"S5DHIO<<=G-3MZ] |
6879 |
MLE!1^K$<VQJXY/%'1XEELF3DH;%*4HF?%DIE):WM6R_4*J:TOJ,.;*D5-+MX |
6880 |
MB6T=F^$RK=4L_?1"Z8_Y*$7KJIC;[6D<4^_L`Z.^>$(Y`,'44*<?T>A&U9YF |
6881 |
M$#NXU=:<"KB5R/R':#W2ER->SY^WON-\,8L83SL%R0Q;M<?03(@FB/)(6VE2 |
6882 |
MX92)O$.E$;;4H+2=K_H0T<U7FC-H.JKX?R.D:J+7B-27CT;!A@I2(U\J(MO( |
6883 |
M;RI\V^S9^C3K"V2QWKA`*S3]E:)QL%(FZN,ZNZV.+-\VD*Q$!X$V-+F*XOQ1 |
6884 |
M0518MY7JH/J^OK^W5F)5*HFE8IY6[T(M*:PV5)[LME)_FHAH%?IG-JX<Y8VS |
6885 |
ME?DG76Z8R4IN.D@)./G_"M[&(N"(H28E\T"J4-A+P[0ZW34Q6\/?RTW\E4>8 |
6886 |
M502K-?GI8%:<63=@K,VFY^@5WUQVR_/3#UL1M$W-2F]L>'RC<J*"<+=?1"AB |
6887 |
MK_@K81N*AL0'_>I-.1JDQM(AI3+TU"2$QL#L'-@QZ2C_H*<JHRNXFGX@-%EX |
6888 |
MU'[T>EL3M>'29,"I=0:^/UQG8*3TC.GPV>E]Q&<_JCOSI'/_!.G;D;4)\9.( |
6889 |
M=\:7"+8AII[\]>R[#\=^LY6(*'UV[GN'RP`_?K4%LB=QG!IQ'#0;B367YOE3 |
6890 |
MN_<J/W_O^'`;;%D3VYS13K,[])::GY+5SH@+K%HC?P-02P,$%`````@`(7)D |
6891 |
M,<J@A?-C`@``;08``!$`%0!G;&]B86PO86QT=&%B+GAM;%54"0`#+H"*051Y |
6892 |
MR$%5>`0`Z`-D`+U5P5+;,!"]^RL6'RBA8,%,#VT3APE)#AUHZ(30"\,PLKU) |
6893 |
M!(KDD>0X*?#OW5BF`89,>X#J$DN[VO?V9?W<.EK,),S16*%5'!Y&!^%1.PA: |
6894 |
MFHXD7X+D"<HX%"HKK#."RS,?"`-X7%1`V3B<.I=_9:PLRVBF?PDI>:3-A-WB |
6895 |
M<L:M0\,FW.$M8DZ/;HH&(V$CK>0R6A0R7&':U(C<@5OF&(<\SZ5(N2-:;+%_ |
6896 |
MP^?<A\-V:^NRV^N,.I=!P'9W=Z&3\=QA!F.C9Y`Z(P?%+$$SXLDY2DQ7%78: |
6897 |
M(!0D1I<6371C@>ZQ8%RH*@I<NE?NX!R5:P1WU*D8@]]&E'J"2]C>!K^G]KHZ |
6898 |
M0XACH/-^==8[^W[]\^1ZV!]=#`<-N*ND8@QZ6GUP(-%!*=0BAX3$`(+OG(X^ |
6899 |
M]@>C_G`/K%`I`LD#%\-32+B!PJ(%X:*JB,?,3?7;PS$OI-MI-*N805<8M7I^ |
6900 |
M6/\W;[5J#;:>BM!X`?OVD'/JGR8/%Q#7K:=3;BJ]]^'3EV;-RJ>TX`#N[^O\ |
6901 |
M-GQ^?WIK['8,D^-ZNAQ/NEHY+A1MTJF0V8`(VTBBFKCI_Q%-RXQ&&9ZPLM58 |
6902 |
MX^JX62<I+%\D;:!^635Y]2AW?6\KKF$>)]SO_B!1X3&7%GV7KQ&A#%_K_89V |
6903 |
M\POS+')<)(G$5P)=LI;"/(M8I_,?1N=\PKVU-(.'(%B;R=HJORE!8)4Z],)G |
6904 |
MNHQXEE46<2K($4GDG9#\@Z"L#?<V6->>5]&C,+;_UT5)X.O#6!LX=]RX(@>N |
6905 |
M,K!D/2+5ROY;H8VDI>89$7[>Z9KHU56[Q;Q;KVR=U=^2=O`;4$L#!!0````( |
6906 |
M`',"B#%O:6(`\P,``,$)```2`!4`9VQO8F%L+W1E>'1B;W@N8W-S550)``/I |
6907 |
MCK9!5'G(055X!`#H`V0`K55M;]LV$/Y<_8J;]R4);,EN@6)QD*%&C"[I4B>( |
6908 |
MW77!L`^4=+*X4*1`4K&]M/]]1TIV%+\4:#%^L7F\U^>Y.T4G`9S`+$=(E+0H |
6909 |
MK0&5@<VY@8P+!*813!7_@XD%J^@!88+6)*Q$N*UBP1-G?\T3E`;A#]2&*PF# |
6910 |
M<`!'3K?3O'2.SV"E*BC8"J2R4)'R)HCS@,L$2PM<4AY%*3B3"<*"V]R';+R$ |
6911 |
M<-_X4+%EI,M(NZ1;YERT%(%9R*TMAU&T6"S"0OW+A6"ATO-H<GL=D;8SF*K, |
6912 |
M+ER!*3=6\[BRF$(E4]0O?%&6;04JCTGHC*;.Q=6T`S$SW'3A\]7L\N;3##Z/ |
6913 |
M[NY&D]D]W+R'T>0>?K^:C+N`5`KYQ66IT1#&VEES5RFF(4P17X3,5)V"*3'A |
6914 |
M&4]`,#FOV!QAKAY12R[GSE[S>4Z$,9F"X`6WS!+X9K>$L"G8T7Q#1EPR`1<J |
6915 |
M];5]K,&A>U%4DB?,4O"$\I*6T$VQ"QH%,H.I<_&1Z22'-X,N#$Y/?VD[OI+< |
6916 |
M<O([QD<4JJ0,?"/MB;AN(&?Y'-6G?J%TJ;2_A'"K="U--#('?;QZ;C[BK;8O |
6917 |
M5QX&.+HX]CGU7O?[@V>];P48">%\W-4PWJ%!_4AT-$5=T$!XTI4^,L=#)P+X |
6918 |
MH!`ND1J3`N;^]YUL0H74N<>D%05!=`+G[H#%I8W5,DR(\_/O/@&0$4SM2J!Q |
6919 |
M(^,1<)#^^>EZ[1J(G(*X"KWR_W)\">\D*]"4C,:PTN*H<V"<'G!5,&-11W.B |
6920 |
MZ`&1B(]<JV/(3:BD6(7+2M#XMQWFMA`[7A=OO$.B\#1:.@UGY)`<NK,IM[ZY |
6921 |
M#->2X(E*[U%2/5:6R+1;';5^QE&D9_2:5-HH70O=O6":6G((;\NEN\9*T\0, |
6922 |
MX76Y!*,$]S;>8_W2LZKL)4HH;8;4ZQIQ/,U9JA;-9<ST0RW8-O2MN65Z23+A |
6923 |
M6[:^7[O_^\UC9:TJ?MQ>8+8=_1N)ERQ-:;-X'#PL+'F8:T7KI/8QK'V_WZ"Z |
6924 |
M+9QY>+\ZUH*?B=^8:?@5<B*I&X0&W>H@46]-7/T$3\&K-1_]L^#5)HN^<T5$ |
6925 |
MT]1!X!KBRTG8F/:X+"O;W1&[7UH,#)Y:)/>)U9]HU=(V8=*V^99*XM;3<_1= |
6926 |
MJQTXN*1&Y[:%14N2T?IH"3PJ$+I#"Y4@I]$`0RL;&V&KI?]:*YQWK*ZP\[>O |
6927 |
MYP`=8UJZ:K[-1RUM$=)$H2\9BP5MDD.AUPHO0J_G)\6,5>(`&ONS^4VS59,& |
6928 |
MM,:Y%.[[?7"HP_I][V1_'VL_T`5?=]<.[5\N#:?OEU7*]77)!%I+7W4L3#O] |
6929 |
MG5?J\D:XOFVZ_V4W]YJ1V-/H'H=';GC,!;>K(>0\35'Z3/\#4$L#!!0````( |
6930 |
M`"%R9#$\;$G>/0$``$$#```4`!4`9VQO8F%L+W-C<F]L;&)O>"YC<W-55`D` |
6931 |
M`RZ`BD%4><A!57@$`.@#9`"MDTU.PS`0A?<YQ8@55$HL6#8;D!`GX`*39.I8 |
6932 |
M<>QH/"$MB+LS;4HKJJAL:LF69;UY_IY_G@/VE`:L"4;V]W>MR+`V9IJFHH^? |
6933 |
MSGLL(EO3T:['),3&HE!'-.A46F(J7"IB\+MB._J[AS++S"J#%;R,$EE5*-4H |
6934 |
M$H.NF:S`B]5\'"`#^-(.X%V2/,G.4^YZM`2'MIZYZI9C3TIF?:S0F]2Y8)`Y |
6935 |
M3O.H3H5UFSW!OBI7^-DE9[(NAJ/7'J`$LX)Z%(B;#;B@(9Q@T`-00H#O;`&S |
6936 |
MB5.X%6@3;@9ZR7E&/-A6<9NC=W;V/-C6%/02R[\:O?T.EC4]LG6G^K/F<=C" |
6937 |
MT['K?!97D1OB97&*WC4@C$$?&^L.<\F`3>."72HIES.NV_BAFYR27B'\G\J% |
6938 |
M1`+O+1.]OND?N`YU#/L;?@;\`5!+`P0*```````A<F0Q```````````````` |
6939 |
M$0`5`&=L;V)A;"]S8W)O;&QB87(O550)``,N@(I!"F7-055X!`#H`V0`4$L# |
6940 |
M!!0````(`"%R9#%,J?#>D0```)@````?`!4`9VQO8F%L+W-C<F]L;&)A<B]G |
6941 |
M<FEP<&EE<RUH+G!N9U54"0`#+H"*051YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@ |
6942 |
MX/7T<`D"TL)`S,[!!B1?B9<Y`BG.`H_(8@8&04L09I2^.=D-I*+$T]>5_0HG |
6943 |
M/YN.W/7=:PX"A<P]71Q#*FXE)S0PI+*%.(C-ESRU(3$AX<>A`P<^S'.RZ_(5 |
6944 |
MN:@3<"Y61?K$4^.`NZE3=G',]-][@X6AXXADN$(,>RS0"`9/5S^7=4X)30!0 |
6945 |
M2P,$%`````@`(7)D,?'YWWB+````E````!\`%0!G;&]B86PO<V-R;VQL8F%R |
6946 |
M+V=R:7!P:65S+78N<&YG550)``,N@(I!5'G(055X!`#H`V0`ZPSP<^?EDN)B |
6947 |
M8&#@]?1P"0+2[$`LS,$&)&-$Q>.`%&>!1V0Q`X.@)0@S2M^<[`925>+IZ\I^ |
6948 |
MA9.?34?`@+GQ&%#(V-/%,:3B5G)"`T,J6\B",P>`@"GUA@/K^T4?`TL673@3 |
6949 |
M<*Y:139^@=J#ZY99SQ4V"K?R,^AOEJ@PCTAF!FIG\'3U<UGGE-`$`%!+`P04 |
6950 |
M````"``A<F0Q:1<M0RL````L````&P`5`&=L;V)A;"]S8W)O;&QB87(O<VQI |
6951 |
M9&5R+F=I9E54"0`#+H"*051YR$%5>`0`Z`-D`'/W=+.P3&1B8&)H8&#X____ |
6952 |
M@0,'%'^R,#(P,#+H,``!2(:!B=F%B97!&@!02P,$%`````@`(7)D,<PJ,OJ; |
6953 |
M````H@```!T`%0!G;&]B86PO<V-R;VQL8F%R+V=R:7!P:65S+G!N9U54"0`# |
6954 |
M+H"*051YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"TL(@S,$&)(L"S,X` |
6955 |
M*<X"C\AB!@9!2Q!FE+XYV0THR%[BZ>O*?H63GTU0)CBV-1@HY.CIXAA2<2LY |
6956 |
MH8$AE2W$06R^Y*D-B0D)/PX=./!AGI-=EZ_(19V`<[$JTB>>&@?<39VRBV.F |
6957 |
MO53:XD0SJ31GA3,:CY@9KB<[J7I%.8H"#6/P=/5S6>>4T`0`4$L#!!0````( |
6958 |
M`)<&:S'[2KV<G00``)X+```5`!4`9VQO8F%L+V9I;&5P:6-K97(N8W-S550) |
6959 |
M``,N_I)!5'G(055X!`#H`V0`K5;?4]M&$'Z._XH=\V*()=F&IL$9.J$P3&B! |
6960 |
M,$";83I].$MKZ<KI3G-WBNUV\K]W]R3_(I0D;?4@6Z>][_OVV]VSD[T.[,%= |
6961 |
M@9`:[5%[!V8*OI`.IE(A"(O@ZLD?F'KPAEX@7*%WJ:@0KNN)DBGOOY`I:H?P |
6962 |
M*UHGC89A/(0>QW;;-]W=-[`P-91B`=IXJ"EX1<((.$^Q\B`UZ2@K)85.$6;2 |
6963 |
M%X&R18GAOL4P$R\H5E!T14]3AM@(!.&A\+X:)\EL-HM+\Z=42L3&YLG5]45" |
6964 |
MT;SAUDS]C!/,I/-63FJ/&=0Z0[N%12HW`R@]H:%[?,L0Y[==F`@G71\^G-^] |
6965 |
M>__+'7PXOKDYOKJ[A_=G<'QU#S^?7YWV`2D5PL5Y9=&1QY9W2\X4LQAN$;<H |
6966 |
MIZ:1X"I,Y52FH(3.:Y$CY.8C6BUUSONMS`LJF-`9*%E*+SR9[SY/(6X3YC*_ |
6967 |
MITU2"P4G)@NY73;FT'-9UEJFPA-Y2KJT)W<S[(-%A<)AQA"7PJ8%[`_[,#P\ |
6968 |
M?+T)?*ZEEX1[BA]1F8H4A$9Z@G'90+QSS1JDGQA;&1L>8K@VMEE-+0JV?K)8 |
6969 |
M-Q_5K=E?+8(-T#O9#9JBT6`P7,<]1W"L%&/<-#;>H$/[D<K1)G5"`Q&*;FS/ |
6970 |
M[8YY">`G@_`.J3&)L`B?;W5+%5/G[C91/UIJ8+A9:'*A-['\^7;":^'K,C#I |
6971 |
M=)(]..(KS$$ETP=^2_UQ]*U7!V@/W/J%0L?3%<QB]\]XBJ\#,K6Q4":/0^S_ |
6972 |
M<H4<WE(;4Z6@MJK730MK2J2YRY69")6X!ZD3FGX*TZ)$5PF:ZQ#Y#_/Y@(M2 |
6973 |
M.(\VR:GF#XC420G/#L;2Q4:K13RO54`D\\9\49NJNM1T7&2^<.T:*]OAY)GV |
6974 |
M)`3T.SLGS2%W@3KWQ6KU@@@O34:3AMDIL38OX"\R*F".83@85/,WG4\;I%RQ |
6975 |
M)).63D9C%R`]EIO<WB*FA52913T>1Y1BQ$N1+&F,>X^$P0IG-[`J.F\BQ\5L |
6976 |
MXL?/F"OIX';)U"@:^HA5Q)7.V1^`P!H`(HLYM?P8F*9'N?1A?\3WX:OEG7:\ |
6977 |
M*(6E41W#`/;;=+\M#?;DWV90HJX3C;.E_"?$K+TW:>W`UMSL&^5>N7A'$N$' |
6978 |
M8*76S!Q]C8/JB<D6$S,/"B?&DF-4VFH.SBB94;C0U*"4J0]TVWCCAO2K4"/J |
6979 |
M2$/8.X-P;8NG$\73C\CCAHGK*FI>]3MQ02ZMG\B5B+2T"\3SHA)91C\"9`X9 |
6980 |
M%:I"`B*A9$Z&.2^LWUR?*IR'T&^KR]GZ3&IK\FE39LCWF1:#T<'R-@CMQ;LW |
6981 |
M$OOB_H/7FR`MP&=>/(_Q_6B)P6B[VY4HI4O7%2BXAB^A:$JYMOB0$X#O^-ZT |
6982 |
M14E_/:*9U)F942"+:@[65E.T#1!Y4XWAH&WAMG'HXZ4-VU=M/@HT^TN:$/BX |
6983 |
MTJN16.9Q&H@=O!/I@^,D&@F_92KWBPJ/NB+E_U7=WQGJZ=I_:23-0S0:<0/P |
6984 |
M3"YS4CCU8WC%2:W6PL_P<K%1VL8-1TWVC\6E_"]/_1=Q#4*C#KY>WC-2XK:( |
6985 |
M'N>>=25[CV'WGX)M%JD`7P'-^K=*NXW8L(02_PU02P,$%`````@`(7)D,5#) |
6986 |
M6*YO`0``9`,``!,`%0!G;&]B86PO8V]N=&5N=',N<F1F550)``,N@(I!5'G( |
6987 |
M055X!`#H`V0`I5/1;H(P%'V6K[BKSU!UV8-$\<4L6;*GF?A>L$)G:5E;AN[K |
6988 |
MUT(13%R694V:`#WWG'-/+ZO-N>3P295F4JS1/)JA31($J[?M<VPWV%.AW=,: |
6989 |
M%<94,<9-TT3-8R15CN?+Y1+/%GBQ"-7A&.J+,.0<"CU%`?2K(\@*)4MZPU'* |
6990 |
M+\8Y:8EL->X@4V35`58/80BO3!L@G(,I*.@3$QI2RD0.NJXJSN@!THL]8]H! |
6991 |
M2@IAF+A29WU'/X"DLC9K5"L1>ZW8D<1*2H.2UF&+Y0P4U;)6&;V#SCC1FF78 |
6992 |
M)0.X%<!>87#J0?`BCE*5Q-@LQVZV5&>*5>WGGUR-=8;TAM7%$POB8AR#?2?^ |
6993 |
MO"+9B>14)Y[CUS1&5-=BE%P=_"VA..<R)1SAJ_R05?=ZQV:'&64TY+KOYG*< |
6994 |
M:P2P,\10>^?$0$.AD>H$4O`+-,P44))WJ?J!ACG(8SLB?4->./K']?1-!I.) |
6995 |
M[\8A]L,O].3Z[[JR.PF^`5!+`P04````"`#:<V0QR`53\_0!``!!!```$@`5 |
6996 |
M`&=L;V)A;"]B<F]W<V5R+F-S<U54"0`#;(.*051YR$%5>`0`Z`-D`*U3P8Z; |
6997 |
M,!`]+U_AII=-M(:FK?8`:M5#_Z"]K?9@8&(LC&W9$Y&TRK]W,(8DA]5>>@#9 |
6998 |
MQO/>FWF/[(<1`P0G&F!'KQ\W':(KBV(<QWRP?Y36(K=>%CV<!Q$0?"$%0@_@ |
6999 |
M:(D=>,A5R*W1Y_QTU)MME64YBKKV=@S@>4"O'/N;99<LHV,G#.A`>\8XH7/A |
7000 |
M'`@O3`,E,]9`-=V[K:?E=/W!B;951G*TKF2?W:G*'FK1]-+;HVE+AH1!/7@P |
7001 |
M.'?1=-X.0'U(;6NAB]`K4ZC&FE!,D),J7EM$.^3.R,V6>6I((#^Q^90U!`6> |
7002 |
M?5"#LQZ%P>HJ0L,!2_8UJAB$E\HDK"3MDGTD)IS$D/3:^A9\R?;NQ(+5JF6_ |
7003 |
M.P_P\U<G6CM6RP4^JA:[DGV*,U@!OK-=?%:@E>HMO#3!$&4^I;57LL,X]T3S |
7004 |
M91+*V!WF*F%N(I;R:6BQ,'4:'=C/U>DH@J^0"63_/&\[F+\N>ZT"4BS.&K@: |
7005 |
MA"3CWS/L8/6D42$DLZHE/A&`>Y#*FI(L;/"1M#]%KN5-!]LJQ>^E/H;S*\WS |
7006 |
MOK/W)*4PSIIHV+:NIV@/0FO>"M_G4ATH0K=9N5SI7@)H4@;M?R6>.=?&%HYO |
7007 |
M&_1'V+Q.>2EV1'&@'/$Q>5#3)"EPN^+JW9*FQ7,"N_G?8LK9\YW;-_F;*OX! |
7008 |
M4$L#!`H``````!MR9#$````````````````%`!4`:&5L<"]55`D``R:`BD$* |
7009 |
M9<U!57@$`.@#9`!02P,$%`````@`&W)D,<^C3B%D!@``<PD```H`%0!H96QP |
7010 |
M+VXN<&YG550)``,F@(I!5'G(055X!`#H`V0`[50)4U-7%+Z4*HIKIQ44B\22 |
7011 |
M`"U5)&41B`$%"H\80*"R!`E6EE($-`1I6")C6ZTC`GU!$"A@APY+96N0Q6!` |
7012 |
MJA8>$:@!$A/0M"409`DT&$(""7T9;6?Z&]KOSKWGW&_NF3/W;%<#_7VV&9L9 |
7013 |
M`P"V0;Y>00`88E!]<=-&]%RI!F)4;/R4Y.,%UO7K%K>&A3*;S_F&IP*PY6W] |
7014 |
M-@"EW^U&22,Z1/8V&MG\SH8=^.>%HJ]0RISN'4;W3$E*BDVF`T]:[&EZ;`PF |
7015 |
M/8'^&2;DLUB,#T0.7(C!)0.P20AY'0WY0CP_OMX4FF9NM"A[E'G7--#KS<?W |
7016 |
M7*L'Y\JH19XQCI-_^''/MPCZ%DF7POS'YBP.K;%Q9LF<?OPC_`<DV[>.A>3& |
7017 |
MN9!6K1(Y-@V!-I=SSGU[^P%/^](P)<6^CB$9W27/)C`SF,_=9!7SV4-R;M.0 |
7018 |
MC!$03*U*SYBI[]^IS`I.!<NQ+)95)[BOJ]68AE&KVD\#@T,YX+Y';FUEY/;F |
7019 |
M3`#N_[85<WV._5I#__>E4TYMM,&_),IN%0-\@;$@V'1(-*NI2K<;1/?RJ96` |
7020 |
MB%)5A0&(/KP-8U@73>Y(_#/J2L&9N"'$OD4VUU[F3)NI<YDSS<=94C14B]%I |
7021 |
MLCABW;FE]ZJUM$_>`%$2+Q(7%3S\>1&<6^(L?+8%W%_<X[%Q1K)M_VJGH"[X |
7022 |
M(QV/JNG.FJ\^4<4?$;3Y[-,^26U)G+BV1_OMP70[`![$@SJ&L2#0_-C'E>YN |
7023 |
M1LPIOG-]>WGJA>W4I>/B=+HLJ9N!/V!=60BY,PY/F&2=5C%D`_UC0IU+0H+_ |
7024 |
M;&[>N[HK-<//M4%6Q`Z"I97_T]G6##D%-K0B'Q_BQ\JC`+@\!()6WZD_KSJX |
7025 |
ME^;95T2:FBR@)/O/WAG6N=PR)SB]+5='<9JH!6E&>0.V.XB%FR7:"YR4R)OV |
7026 |
MJ3*L)87VJZSQN.KG,OZ(N/2JN^9HVT"WZ^POUP,D1<7XY!YE)E?`2V=:V@T2 |
7027 |
MG-V2J5+Y!A"]LA7CZ!3)\"[-;-M^=_\/\8CV1=?OO^1VGCZZ'L'[J3?NX4W[ |
7028 |
M%^&TBWS?J%-JWX@\=V)38V3)J5FAK*#,I%H]7=4RD>>=0)1WY.YV<YI(68T0 |
7029 |
MMY_MKRVQ]^EP,P"'<NXU5E]*ZQ]HC]&VABIW[/=$VFXW(;:V)U]V,^=% |
7030 |
M\</"8=:)^,H;#K@J3MQ4:WP%I#%[H?OCYW=?BFS9VBD*_XO)T;F(3J?KY6XM |
7031 |
M"0)&N+/\US5M^<+@-0M7ZP2'"PMIJ4L5>]"@C8$@2H^K\D>UUK.O@._K1#UW |
7032 |
M(HK2$J?B)3T39>F^=EGA)`[K:.GBP<-'R@YVV$#\U"&NZ&Y&6MO%20$6DDP= |
7033 |
M$&4A]W*I]$QQ>\K`PTD>WR$CY`)W\9BF+8DTEKLG,P:`IU3'T8JGPNFD>Z(S |
7034 |
M0L=YIK"+^V2L>_EAFE#ZS1!5=5F9W;-$)L:"Y236^K5*"5@\:39B+.C.T+)V |
7035 |
M`C3.M<S;%S&[ZMV/L%?7CXA5^*\(RG&JI'D[6N7D+X-ZQ!*T[E<YR`=A8*[F |
7036 |
M.=O8!+4!C.'/*R]M`&"W!]H,R\\,O#9L02]W7LO:F=XC2>/-(CG:+X9[/31F |
7037 |
MW&%2%P%I2'&2:!N,\+'B3!8V@-CE&EQ=?CA&8;V7:^Z8^1Z/30B[:U="W"3D |
7038 |
M?(B$DG1T>,RORP$1LAS@QR2:#Y+*&@]7/(*ZPA4U\/@GBJ\AD^(L)KQ02.B4 |
7039 |
M8M5>\$*Q,AQGC?2RQBF*7GBM68J^#Z6%PJNDBI*8!*0<8D8J1-`^&W4]UK:_ |
7040 |
ME7A3^CV;&0=?X6E*H)-%!$O$<O+F"^CD#>5'\-H=Z3"+$*$P@M?JI2IK-<,E |
7041 |
M/0+N]2,>0"9PE:72XLF5]Z$*F]D:K/H39(&DF*4]1B`F11#@I^B$`WS9'*D* |
7042 |
MJ\Y&%OP4=!>5\COL@B^[NMZB6)J/LRB3BN!\2!'IPJ3!W859(7`KSJ)$JH;S |
7043 |
M?=E=T@>LM0;I`_BL#2,(OHZS*(T)1B989]]7_X:ED(@VR/);Y(%L7G%CZ8AH |
7044 |
M]"=[J,CNE&-7R^TS).2,6Z<KA[3OF6CT2;"B;[`QKQR7/STW,[T4KQ]?^D%O |
7045 |
MDNA@MC3_!G@-CUV[/OQ;S_D<3>O?&`UI_D?_L4X_[%XA)+CG'^/::GW:7R&0 |
7046 |
MK,_V*]PJU1?&:P>._SOXW\%_P<'6$7?PI@YCNF5U_8">A;S]O1J/15_Z"U!+ |
7047 |
M`P04````"``;<F0Q*U7KX($'``":$@``%P`5`&AE;'`O:&5L<$9I;&5,87EO |
7048 |
M=70N8W-S550)``,F@(I!5'G(055X!`#H`V0`C5?]<]LV$OW9^BNVRMPT=O7M |
7049 |
MCYZDNTQM)TW=.$[&<L^3Z?1F0!(444,$2T*6%(__][X%28F4Y+;RV":!Q=O% |
7050 |
MV[<+J'M$1_RABW?OKV[H^NKRW<WD'5U<?[K\D,\TCNA_,LV4B4?T\?,U]3O] |
7051 |
M[GO\'W1ZW>O\H=]@J[M(DF]B*V.;D0G)1BJC4&E)(I64S;W?I6_)&DQ(^FB^ |
7052 |
M*JT%?9Y[6OETK7P99[+T!#2XH==LV2SFFH=C6IDYS<2*8F-I#O.-"[GT96)) |
7053 |
MQ0AAEF@E8E_20MD(4(Q2@'3H2P%A/"M@+6"?K/)PUU8D+)9%UB:C;G>Q6'1F |
7054 |
M>;0=DTZ[X*#K]CLQH5WPU@*5V51Y<RL#FL>!3&M8B+!J8.`SIN;YA*XF3?)$ |
7055 |
MIK(6P.ZO[G[Z],L=W9_?WI[?W'VA3S_2^<T7^G!U\[9%$AL!K%PFJ<Q`;DJ* |
7056 |
M-RF##DVDK+H#5&CR`+)$^BH$N5K$T[F82IJ:1YG&*IY2JJ81LB3B@+2:*2LL |
7057 |
M6,\VT0.F9&R=VT]8I&*AZ=($;EME#G^2.J'+R61M>14KJV#X5CY*;1)`%OQN |
7058 |
M0\#^MO-SASY(K66*M\\FS2/Q4RF8+F_E%NXB,O&72)W;";V^/*1!KW=<9'O' |
7059 |
MO$/G6M-MONM;F<GT$>2Y@"\A69<<D[[.#D<8<9^?91C2O="!C.D_OR_<PW<^ |
7060 |
MPOX!='5D,'_C5I]K"TI!'QRM6L[Y_AI@S7F255L5"1;/V!!(18YY]/W-+_1> |
7061 |
MQC+%%O87"`U8!!H4I465H!*;ARV,%A0PQC7$`H._@T*E;8%=YVB`0HDL(N5' |
7062 |
MY(LL%UJ2FD>5N2056>4F4&C.-01.C4B@3U]XV+F*,RM%`#!G;[B^/"BQ0U>A |
7063 |
MJ^B%RB+N"T)KLW!U;=Q$2H]%B#4F3:Q7`-LEL49A/::6DSJWC;4?P[89WAD+ |
7064 |
M/E]VN,>3:V$,J^(`V[3Y<B`%J#F'`.$&4DO+U;9%F]N]"RB5B1:^XW7FNI4S |
7065 |
M19A($<#8Q(5979W*/^8JW93&UD[7K`;&[=<%(0M1;`<!6H#GJT1!L$ZB_X") |
7066 |
M`FO-A8C1/V-9HV5?8*Y>\L/FW<W;?4<-'74;C1_0VM`%:)[JU]_Z46IF$ETX |
7067 |
M0H_I%I75!6D676YVJ04$GG7\+/OV<-QH>"98T5/CH'O4.)B)%*UF1`.Y'#<. |
7068 |
M?*--.B(/;#_@-010.Q0SI5<CRD2<M5$G*BQG,O55CJC7^?Y4SL8,M6PO5&"C |
7069 |
M$?4'/8>'0#<>SI(E]?AG&[EYETIO[D?2TL=)LT7-"V5Q$D@QX^(3-(%G#/._ |
7070 |
M]J0(`&<%MK?B6,TFUCRB86+'KCDU#A(1!)#6R#DM7MJN%X[H!&:;06N2$?V[ |
7071 |
MERPK8YZQULP0>L^9>F!EFAID=T2O0O0]YKY9YSY[4''7\Z>=))XV#U$V"6D9 |
7072 |
M6I8P.G5[-6X\Y_R_H2/.0<Y.FVW6?BI$G@Y=1,^-1M1O18/*"A?OP!%?9.W5 |
7073 |
MF7?FGPWK7/2/'>0V7<^-Z+@5G3#>7Z[N\VIXAWOZCA+\=LJ^?6&6K4:@'K?& |
7074 |
M&+((GCF/9$XV/W-->4HKBS@B%>"D<('L0Z:YW@L^U\#'&C1*=K1G6YAY8Y5% |
7075 |
M%>Z9KZ=P>#(<#$]>S&)<Y+#'NL5O;-IY%EDA)E/6W?5"M90!1KZVT>/D<D3' |
7076 |
MO1YOUN6''_+4\E-9'+W>ORK,<%ULD>.>M604N;0..(9E&T<W)_PESK3:RYE6 |
7077 |
M-2IB-"&7TY%6\<,HXLL./5$A`W3,,6%2_!JE,OS_?YO%]:[YVTB$UEFR9!SZ |
7078 |
M:%_S<=3=2X_!F4!T'"KV@:9O4I'3MHX"6V'(#:'"RXS&'9"^R3N<B)GP=".C |
7079 |
M#:$.56@UQ3(>7=->K6(4^M!UGE/\/<ZG:C+(A?_W,L!/50)E7^MME4S>5LJJ |
7080 |
M"L_XIZJ/D_K&JEW3">.Y@;[,I4Z>27&.Y)7>1_#@105%<Z:JR[P#$Q?U)I.O |
7081 |
M>KUAW8QMBNY1=C:F@ZH=Y?B41YX;?,0$%F@.8%%HU3,ZET?BRI`CK?4#JKVB |
7082 |
MQW$9Y_JK*;EL:GNLM\N=1Y\J;*^/$(UO"^W,KK1LVU4B*Y+:;D?5_?4'6P)H |
7083 |
MEW3Y[L-SCO9=RM<%C`JO"ZR?5R4XJ[G&965?#ZJJ%E=,%-5X3U=_KF-QN;LC |
7084 |
MNW*;Y]-U'</92_M:]_6U),-P7#WX9]2&9KF[X&]OGR2K^EZVLQENACG1,_$@ |
7085 |
MKU%X'QW8[GEV6N9Y)N/Y9X&+VU.]^.ZA"+/8!*=B7.-4]5S.D3@98\+NI<;- |
7086 |
MRYLZ<Y)Q@!N:Q9T\L^1'(J4V5(!O='Q9K+!3GOC](ASK+MQ/>^F2[N/N#W"' |
7087 |
M2XC6*[10YGN:RA7#,H([?G:5\FKH/N7R<L4!>BPNJT*7>4>>\TBB%\(8#GT? |
7088 |
M>2IP<O_BC[EP:+LUR5@/W@M!W:&5R[>32.14[WI;9V&C:"S.*Z74B>/NH(VO |
7089 |
M^.VB+Z4B4/,,Y>!F_M%=L2*>/`=;,6_2OQODCC2J0V64FY%:/%O#>3#KP>>* |
7090 |
M(/*MP:4620:C\LE9!7QC9[/-T5+<CSJQN6.,"[>^M?5.6+DS]$+F;0KN$GPW |
7091 |
M=*=#24QOG<S:/#S_"5!+`P0*```````;<F0QC'[<TFP$``!L!```#@`5`&AE |
7092 |
M;'`O<')E9G,N<&YG550)``,F@(I!5'G(055X!`#H`V0`B5!.1PT*&@H````- |
7093 |
M24A$4@```!@````8"`8```#@=SWX````!&=!34$``+&/"_QA!0````9B2T=$ |
7094 |
M`/\`_P#_H+VGDP````EP2%ES```+$0``"Q$!?V1?D0````=T24U%!]$+"0T* |
7095 |
M%/>#M!4```/I241!5'C:K99M:%ME%,=_2;,VM=.X9A6I->W>J"O8KBU,B)1U |
7096 |
MK4ZESI%A0?2+4]Q`A<D@*V-VBBSJ$-GJRV"Z;G8P!\XU#.Q@76TWE70EC5TH |
7097 |
MA:HML0T+V"9ITJ9+ER;W\8//+;<A??G@@8=[N<^Y__^YY_S/>6X6RYL`/I37 |
7098 |
M62#`_V`Z(!L0G1V7Q1V/2WSJ:!:2)%?NK_2^7B[=4@X/`"6`Z'-UB_[;MT1G |
7099 |
MQV65)&<9$IWT.0T4RX`RLN<`CP#E@+CK_UOTN;I5@C+IDQ%<""'L=OL0<`XH |
7100 |
MU*<YK`%20#,0!R+EY>6LRR_0`M4#61G`%2$$'H\'J]5:!NP#'M(2K`'N#WK= |
7101 |
M%!4]-@=,`V-??M%"(C%'="K$D:9#7<!3@"$M33J`T=%1_'X_-IL-P`HH6J>U |
7102 |
MP+<7V\Z^4EJZ!0#+ALWD&O/H_>W&@M.NAD8`$Q`#%#7Z4"B$V6Q6W9X&HL!D |
7103 |
M.L$SP,FVUM,E)246\O(>)*6DR,\O0%$4QGQ_,G!GD*:C'R$+F``FD\FDSF`P |
7104 |
MK`.VRQ3/`E.29,&R96$;@6]D0=45G/@G(&9C,\+U2Z<XX3BVL-??WZ_>5TD! |
7105 |
M%,HOS$Y7FUY&50!LD@JJDFL[(")381&+S0AW[TT!"*?3J8)7`UME@,;E>D`O |
7106 |
MF?.`AP$SL!XH4B4;#$ZF@PO@1>#1%7IDD2*TW6B0C5<(;-."'WCK=?'RWMTJ |
7107 |
MR=8,\EU5VRO:!TZG$YO-1M/AP^BS]*S-S28V$^63SUI4:?9IW]&M!&X_U4Y% |
7108 |
MV4:"P3#OO5JG[AT`SIP_?XYBBX5$/,K`P`!'FH\#[`$ZI)J6!1?V4^UBT#<A |
7109 |
M+K1WB=9KOXLWCWZMIN-YF7<Q/CXNPN&0</?>U*IKGYJNI6:*<OSL-=[8NX/. |
7110 |
MZS>XY?D#]`92R:3J$P9&@4J+Q8(0@B?*ME&[LY83CF/(.700,.@S@9^Y\BNO |
7111 |
M-5CYX6H7[B$?UIH:AH='F$_,J7X)(`),`!5F\WH4=&PI?1++AE(.'7P;X'/@ |
7112 |
M_?1AI[3]=)O&7=5<^/$Z/G^`9QM>8GAXA,#87UP\V:2.@3AP3W;K!%!A,IF( |
7113 |
M1*)XO5Y&?'Z<3B?`!P8-@=+R?3=[:BNX=+4'GS]`35U].OA^8$9&'P>2D@2@ |
7114 |
M8N.FS=Z>[I^IJJXFE?HOG5H"BDL>)Z4()N[Z,H%_#+AE_J>!>5G0A)9D9UV] |
7115 |
M5P.Y?Q%!5X^+T'0E.Y[;C7=H$?AWP!4)'@7N2W#22-0#*4<&,*7M@UJ@YUU' |
7116 |
M&P#Q>S%:'>^HX%\!(4DPNX3&U0/+*#.3DL0+9@1>2)NB=J!2GL^F#`?-JOX@ |
7117 |
MM(/.*('4<3LOBQJ514UI4K,J^Q?`6ZE+$16H?`````!)14Y$KD)@@E!+`P0* |
7118 |
M```````;<F0Q+.5U5^@!``#H`0``$``5`&AE;'`O5V5B;&EN:RYP;F=55`D` |
7119 |
M`R:`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````#P````P(!@`` |
7120 |
M`+U"Y^0````&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"X@```N(`>6.*4D` |
7121 |
M```'=$E-10?4"183-QLY&^I:```!=4E$051XVH62/4A;<13%?_?%^C%8I;4Z |
7122 |
M.,C#4A%!$'&IA80*ZE1"<6UQ:-<.TJ5T+(B#.(B;X&*QBT.&%H*H5"<WA3C8 |
7123 |
MH(-0OU#HTR::K^8XQ#PT47O@P)][S^5RS_^8).Z#808@RH7.K0-F,K,@_X.D |
7124 |
M,@*Z8O#:VZ_YNA*QS^F%'0&:&POJU_?7BD7"6I]_)4"NZ\Y)PB1A9EK9/"*1 |
7125 |
MRI$7'/Y)<7*6HN%A->_[6_DZ/L"+[F;^I0[(I#.TAY<`0H8PC'QD[3>[Q\D; |
7126 |
M)YVG<P!\&NI@>::/ED8#X/#$H7=X@8JB<.I''&]OJ\R3L_U"[3R1@,;:@J&! |
7127 |
M]-UN%Y%)>L2CDWQ\VTK3XZJROK]Y\<O+&XUG@Q^(1R?Y_*Z-4,\3'M77D,WE |
7128 |
MN,@*[S1PE0%A0J7_^A-@Y,U3NMKKZ&RK(^`8WM\L3KZ2Y\.+`"''3Y%81:Q* |
7129 |
M6@%P7??;Q.PV`:HY/JWDR'O`1BQ9'!PMZ%387F1)6.X-R25MH\.RR!O#OP`` |
7130 |
M``!)14Y$KD)@@E!+`P04````"``;<F0QZJ%\:W`"``#\!@``$``5`&AE;'`O |
7131 |
M<VED96)A<BYC<W-55`D``R:`BD%4><A!57@$`.@#9`"]5$V/TS`4/&]^A6D/ |
7132 |
M0,%)=T$@I5H)(0[<0>*PXN#$K[%5Q[9LITE!^]_Q1]IMMMM5I94X5&V3>?-F |
7133 |
MWAO[BR0M6$UJ0)T1;V;,.5T61=_W>:O^<"%(KDQ3;$NO`%`UQL`'0_J=C |
7134 |
M8"#G-E=2[/*A$[.WJRR;6TZA(@97:D!_,X0J4F\:HSI)<:V$,B7ZQ255_2J[ |
7135 |
MS[(L]S#L8'".5!&.?5]<>02739E$U<RH%KPL!D(7=L-E,3;YFG`V'UHQMY7G |
7136 |
M"!JNBH4G8L`;YDITL]3#:D],M`9BB*RA1$XIX;L_^:[JG%/24RV*[$H3FM1\ |
7137 |
MT`/Z%-BN*F4H>"O7_HE5@E/TDQF`;S\8B=9&@!^"YVE+M`QNC[V6:VZLPS7C |
7138 |
M@GK?>[Q3>@0[3W?'.*4@;V=K(BS,?J-WZ-&\3NOF84C8>B<UPY631Z")F#/\ |
7139 |
MJ=RI^DSM.<./W#&U!1/+3[:?ZK[[Y8BPH!B#X]H["P)J!_1VYDSG5;U__G7J |
7140 |
M=1&H)+7C6PBZ8D0.B[WQKH*S\!WC$O:.T%I)A_LQ1Y42-&2E[HP-/BBL22=& |
7141 |
M_3%[6)`*1$QQ2TS#91G()I]7O-7*."(G=:[GUNT.LHZ+/Z?P"@_`'B,`\Y8T |
7142 |
M\,S).&+,&[X.!^+@%)ODY6-BW3^-Z;E.SWI.'?/_PE\4TE\L_,H`Q;:O;7J/ |
7143 |
MN/4(I/D`PHZH"U0V0E5$))TA?T62B6MA::YE$P^O9[N?#N8A32_N@MG63#M- |
7144 |
M6YT$Y^*N3V\`*PWR80V3X08!Z#],-THX/]TS9^7%XPYMGQCWY'[21,8#<_%] |
7145 |
M.@YPF=+Z<#,OP]U\<OT%.8$]':C#'39"_P%02P,$"@``````&W)D,;'QN+@- |
7146 |
M`@``#0(``!``%0!H96QP+W-I9&5B87(N<&YG550)``,F@(I!5'G(055X!`#H |
7147 |
M`V0`B5!.1PT*&@H````-24A$4@```!@````8"`8```#@=SWX````!F)+1T0` |
7148 |
M_P#_`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`D/%20( |
7149 |
M]=:.L0```9I)1$%4>-KM5<%.PD`0?2U5:(T7#]PY$!,U1/0B)S[!X"^4DYKP |
7150 |
M"9[\``YP4?[''OP"XP43C3?B$I6V,^/!MK2TH:!H8N(DDYUNN_/>F\[N`G_= |
7151 |
MM&"4G\IOA)%($D-$$NZZ;N9\EBNE4*E4``!&/.G!\7F*@F69,$T+EFG"VC!A |
7152 |
MA7'P'+VSS&C-WM9[%.NY(@70-)D6$Q),3H?4DE@U$@JJQCW:MIV)<ST8X/;9 |
7153 |
MQ-5E9Z94#)$Q1!1$!.5R&>]3`4F`MFUC__`H$V#GQL&=_X9FLYDKVG&<=(GB |
7154 |
MLOJ]+OJ][DK:*+.+3L\Z7TI&+"CH6C9`W.+L%P$3$;``S(R"7EBM`A$!\=37 |
7155 |
M#"RG8!X@L20`?.+5_0-B`3,GV$\H_=W2710R#I/[Q/!\@O(-C/WU[RN(,V9F |
7156 |
M^,105(3+&CQ:L$U#]EE`(6MB`1'CA4OP"'!)`@!M/L#3XP-:K9,HGC6?/EE/ |
7157 |
M2,<KE^`2X)'`9>0K,(J;J-4;F:6IU1NXR+U6Y@",1B-4MW<Q'`ZC@RQ^J'F> |
7158 |
MM_#>4$K]WHV&?\NS#SR<.LOL>*I&`````$E%3D2N0F""4$L#!!0````(`!MR |
7159 |
M9#$_1[V)]@```.0!```8`!4`:&5L<"]S:61E8F%R0FEN9&EN9W,N>&UL550) |
7160 |
M``,F@(I!5'G(055X!`#H`V0`=9'=;H,P#(7O>8HHUVO2W:)`I;U)`AZU:I(* |
7161 |
MFP)[^H45JOTU5U;L\]G'=J>Y)W6#@3'%2K^:HS[51>$"QA9CQPK;2C.V$/SP |
7162 |
MMOWI0CU>5D>N]%GD6EH[39/ITP<2>9.&SLZ!_A27\TA/!1=8>L\"@^V\P`7@ |
7163 |
MFD,YPP`&V:1(B\GR?YCA.7,=(EM2:C=U]Q3$!ZU@%HAM=I"Q91A%4LS%*]@U |
7164 |
M*>:<U%LSMU9@[SM0#7GF#7&0"5D6K7*;$F,>%67-`4$CT&K[0T\^`#WT][4> |
7165 |
M!(5`JW>".5_@-^GF:83J2_CBFP:8\Y)VK+/?IG1V,[@><(^Y+CX!4$L#!`H` |
7166 |
M`````!MR9#%`'A:M,@0``#($```1`!4`:&5L<"]Z;V]M7V]U="YP;F=55`D` |
7167 |
M`R:`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````&````!@(!@`` |
7168 |
M`.!W/?@````$9T%-00``L8\+_&$%````!F)+1T0`_P#_`/^@O:>3````"7!( |
7169 |
M67,```L2```+$@'2W7[\````!W1)344'T@$'"P4&J]2X'````Z])1$%4>-JU |
7170 |
MELU+8U<4P'_W1A,TB9.:*(@?"8Z+;ISJX,8GZ(!N@A`9K$MUT5EDTRYFYVJ6 |
7171 |
MLQB8OZ&;H8LP+DHK:%>"W]*.%D$T?DP%OX@(K2'O\[[7C7DX':.EV`L'#N<= |
7172 |
MSN^><SCG/OB?CZCT(9U.9PJ%PIAIFIKC.&U**8`C8.G1HT>Y]?7U'_\38'Q\ |
7173 |
M_.GFYN9;*>7`X.`@3YX\(1Z/X[HNA4*!M;4U9F=G<1QGOKFY^>7JZNIO_QKP |
7174 |
M[-FSS.GIZ7M-TZI&1T=I;&RDNKH:(02NZV+;-H9A<')RPKMW[UA>7G9BL=CH |
7175 |
M_OY^Q6P"965D9.1I/I__Y?GSYU63DY,D$@FBT2CU]?4D$@D:&AJ(Q^-$(A$B |
7176 |
MD0B=G9WHNBXW-C;&6EI:?KZ\O#R]$V!9U@^:IK6_>/&"2"1"+!:CH:&!2"1" |
7177 |
M*!0B$`@0"`0(A4)$HU'"X3"/'S]F=W=7[NWM?6F:YO>W`21`5U=7QG7=@8F) |
7178 |
M"6IK:XG%8B02"8+!((%``"DE4DH?(J4D'`[3WMY.-IO%\[R!^OKZ3$5`H5`8 |
7179 |
MRV0R-#4U$0Z'J:NK0PB!E!(AQ&=R$]K5U44ZG4;7];&*`-,TM;Z^/H+!(-%H |
7180 |
M%"$$GN?A>=XGSF7;3;L0@J&A(912VFV`*@"E5%MK:RNA4,@//CP\[`>X#9#+ |
7181 |
MY7R]HZ,#H.TN`$((JJJJ4$JAE,+S/!]V&T`IA6W;.(Z#;=N?9?M/P-'AX6%[ |
7182 |
M<W,SMFTCA&!Z>MJO=3FXZ[HXCH-2"L,PL&T;R[+8V=E!*754L0>>YRW-S<UA |
7183 |
M&`:696&:)I9E^7I9RC;#,-!UW;?/SL[BNNY218"4,I?+Y<CG\^BZ3JE40M?U |
7184 |
M3\0T34JEDB^F::+K.MO;V\S,S`#D*@Z:95F&$*+[X.`@-3@XB.NZ6);EKP?+ |
7185 |
MLK!MV\^B#"L6B[QZ]8JSL[-Y8.JN2?Y32OG[\?'Q-^?GY[*[N]MO7CFHKNM^ |
7186 |
M>4JE$E=75[QY\X;EY64'^`[(W[DJ7-<-"B'F=W9VQCY\^"!;6UNIJ:GQ@Y?K |
7187 |
M72P6V=K:XO7KUZRLK#A`"?@:N`1^O6]=)X&X$.*ME'*@O[^?WMY>4JD4`/O[ |
7188 |
M^RPN+K*PL``P#[P$W@-?7%_V`O@6^.F^!R<)?`6,`=J-(3H"EJX;>@$<`Z12 |
7189 |
MJ2U`?/SX40(VD+[VN_<D[Y";/A?9;-;NZ>G1@;^NRY9\R*<W"5Q-34TI3=,< |
7190 |
MX`HH/B2DG)61S6;M9#)I/S3@)N044,``D!0/_)=R\\9_`/P-D>0'6&.!XP`` |
7191 |
M````245.1*Y"8()02P,$"@``````&W)D,;NIH:=H!```:`0```\`%0!H96QP |
7192 |
M+W-E87)C:"YP;F=55`D``R:`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U) |
7193 |
M2$12````&````!@(!@```.!W/?@````$9T%-00``L8\+_&$%````!F)+1T0` |
7194 |
M_P#_`/^@O:>3````"7!(67,```N'```+AP&30(=3````!W1)344'T0H2$S@8 |
7195 |
MOX7;&P```^5)1$%4>-J]EE]H7$44QG\S^_\FS>[>3=(V8C%*(8T:;`1CK39I |
7196 |
MFU!+":@U-@J-/BBT;VU]*/BF#Q4I&)^J&!K*"J7^*X@M%"S4)&"W8+5-(`]] |
7197 |
MLR182-.D9N_-WMT[,SYLLDV3[38J>"Z'<^<R?&>^[\R9N?`_VIN`^8?^$1!8 |
7198 |
M;0(S-C9F7-<U#S//\\R-&S=,;V^O`8:`,"#*@2[]:%S7)1:+K6HUF4P&R[(( |
7199 |
MA4(T-S<#Q`!O@5G)Y-)!)7!C3"EJK?$\CT0B04-#`P,#`P#S0'0Y$_E0W18` |
7200 |
MM5;WQ9F9.T2C4>+Q.)V=G?3W]P.XRY/(U0,O=87C.$0B$0#JZNKHZ.@@G4X# |
7201 |
M?`M$RM7$&&.,UMHHI8SO%\R%"Q?,KEWMQK)BQK)B9L^>G>;<N1_-O.N8P<'! |
7202 |
M2KOK0R"THLC&&)3R,0;.GOV>X\>/<?#@V[2V/H7CN%RY<HTS9W[@Z-$/Z.KL |
7203 |
M8GIZ&L?),C$YR:T_;W']^BC.W!0#@Z<!DL#L"HD6)3AY\G,.'.BCJVLG&S:T |
7204 |
MX/N*C1L?H[N[DU.GOF0N.T<@&"`2B=#8V$A+R].TM[_$$X\W+D*M*5L#K35: |
7205 |
M*49&KK!ER[.L7]_,^/AE',<EFW5I:'B$BQ='F)J:0@J!;=LD$PFBT1AU=?5$ |
7206 |
MPN%%J`!`<$4"I5!:`0+'<;EY<YQLUL5QBIY*K4-*R>VIVU0M](%2BGA\#4H5 |
7207 |
MT%K=AQ<LQT#YBFW;VLAD?J.IZ2]<=Q['<4DFZVEL;&+'CA?)Y7)XGD<^[R&E |
7208 |
M1&M-O*8&R[)851]T=^\EG?Z.JU='F9MSB,=K6;OV45I;G^/\^8MHK4O-M]36 |
7209 |
M5%=59N`K'Z45NW>_C.,X#`__Q*5+OP#0UO8\1PX?XM/^SWCEU=?X*GV*K5M? |
7210 |
M`&-8?-3#)%)*8;0F&`BP8_MV-C4UT;NOCWS>0PB)D/=V]OZ^=_CFZ]-LWOP, |
7211 |
M4LHBHV6D9-DB*T4H%"(>KZ&^OI94K8UMV]AVDMI4BO>/'"K)\\:^MQ@:&L;W |
7212 |
M_;*2K93(+Y0FQF)14JD4U=75^'X!@0`!/3U[F<_E.''B"P#>?>\`5W_-$(U$ |
7213 |
M*N^B?#Y?E,@4.UX@B$8CA$+!^T[48#!(S^M[2<3C'/OX$P#N3$]CVS9:FP<G |
7214 |
MR&:S**7`&!!%0"F+*@HA2C$<#I-,)NAHW\:3S9O(Y7+,WKU+555U9083$Q,D |
7215 |
M:BR,,1AS;\5::Z00:&.00A"0DE@T2BIE(P.2F9E9PN$0QNC*##*7?\8*"P2B |
7216 |
M)!,(M-&(TF@QL<#W"Q0*!;R\CQ2"R3\"_'YM](%WR_Y_<>D_R`\#ZY8?UW+A |
7217 |
M!*Q9>!?_X0\E!\P"N;\!WS$PY_(JA=\`````245.1*Y"8()02P,$%`````@` |
7218 |
M&W)D,7R(&V+>````0@$```P`%0!H96QP+V)C9RYP;F=55`D``R:`BD%4><A! |
7219 |
M57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)8F!@5@"R/S`R`\E#&9-F`BFV`)\0 |
7220 |
MU____^_:N^U=4MX7H`AC29!?,(/#LQMI($Z2M[L+0P>KK`>0PUG@$5G,P,`M |
7221 |
M#,*,#+/F2``%V4L\?5W9K[#+")H+/SGY`F2T;(EK1(ES?FYN:EX)@W-1:F)) |
7222 |
M:HI">69)AD)(1JJ"NZ=OP/L4U3R@PAY/%\>0BEMO+Q@*,AAPL!R4GW)TOY:/ |
7223 |
M`U>:_P'1V34KC_7KMQ]NY1;7B]E1\/`031GK_DKU"XDL+`XRL0"ZB\'3U<]E |
7224 |
MG5-"$P!02P,$"@``````&W)D,;2FO&Q+!```2P0``!``%0!H96QP+WIO;VU? |
7225 |
M:6XN<&YG550)``,F@(I!5'G(055X!`#H`V0`B5!.1PT*&@H````-24A$4@`` |
7226 |
M`!@````8"`8```#@=SWX````!&=!34$``+&/"_QA!0````9B2T=$`/\`_P#_ |
7227 |
MH+VGDP````EP2%ES```+$@``"Q(!TMU^_`````=T24U%!](!!PL$)_ZFF0,` |
7228 |
M``/(241!5'C:M9;!2QQG%,!_W[<ZB^ZN;MU5$*,KFD,O6@UZ<(0HZ&4CK@3K |
7229 |
M43W4PUY2,#?_`@]"P/^@/80>EHB45M">A$2CTIJ((+I*4L%(6!%:=6=F9[Z9 |
7230 |
M7MRI;:.68C]X\'CS>+_OO<=[W\#_?,1U'Y+)9"J7RXU8EJ4[CM.@E`(X!%8J |
7231 |
M*RLS&QL;W_\GP.CHZ(.W;]\^DU+V]/7UT=K:2BP6PW5=<KD<Z^OK+"XNXCC. |
7232 |
M<EU=W=.UM;5?_C6@M[<W=7Q\_$+7]9+AX6%J:FHH+2U%"('KNMBVC6F:?/CP |
7233 |
M@>?/G[.ZNNI$H]'A@X.#:[,)%)6AH:$'V6SVI\>/'Y>,CX\3C\>)1")45541 |
7234 |
MC\>IKJXF%HL1#H<)A\.TM+1@&(9\\^;-R+U[]WX\/3T]OA%0*!2^TW6]:6)B |
7235 |
M@G`X3#0:I;JZFG`X3#`8)!`($`@$"`:#1"(10J$0S<W-[.WMR?W]_<\MR_KF |
7236 |
M4P`)T-;6EG)=MV=L;(SR\G*BT2CQ>!Q-TP@$`CQZ](B!@0$?(J4D%`K1U-1$ |
7237 |
M.IW&\[R>JJJJU+6`7"XWDDJEJ*VM)10*45%1@1`"*25"_-DF(01""!\BI:2M |
7238 |
MK8UD,HEA&"/7`BS+TKN[N]$TC4@D@A`"S_/P/.\OSD7;5;L0@O[^?I12^J<` |
7239 |
M)0!*J8;Z^GJ"P:`??&!@P`]P939\0":3\?7[]^\#--P$0`A!24D)2BF44GB> |
7240 |
MY\,^E8%2"MNV<1P'V[;_D>W?`8?OWKUKJJNKP[9MA!#,S<WYM1X<'`1@?GX> |
7241 |
MQW%02F&:)K9M4R@4V-W=12EU>&T//,];65I:PC1-"H4"EF51*!1\W75=7-?U |
7242 |
M;:9I8A@&EF5A61:+BXNXKKMR+4!*F<ED,F2S60S#()_/8QB&+T5`/I_WQ;(L |
7243 |
M#,-@9V>'A84%@,Q-JR*A:=JWG9V=/;.SLVB:AI023=/\/@@A_/X45\;%Q063 |
7244 |
MDY-L;6TM`[TW3?)O4LJMHZ.CKSY^_"C;V]O]YA7+91B&7YY\/L_9V1DS,S.L |
7245 |
MKJXZP-=`]L95X;JN)H18WMW='=G<W)3U]?64E97YP8OU/C\_9WM[F^GI:5Z_ |
7246 |
M?NT`>>!+X!3X^;9UG0!B0HAG4LJ>AP\?TM7516-C(P`'!P>\>O6*ER]?`BP# |
7247 |
M3X$7P&>7EST!G@`_W/;@)(`O@!%`OS)$A\#*94-/@".`QL;&;4"\?_]>`C:0 |
7248 |
MO/2[]21ND*L^)^ETVN[HZ#"`WR_+EKC+IS<!G$U-32E=UQW@##B_2T@Q*S.= |
7249 |
M3MN)1,*^:\!5R#&@@!X@(>[X+^7JC7\%^`/8R_#4CH!>-P````!)14Y$KD)@ |
7250 |
M@E!+`P04````"``;<F0QVZR:)_0```!?`@``$0`5`&AE;'`O8V]N=&5N=',N |
7251 |
M<F1F550)``,F@(I!5'G(055X!`#H`V0`G9#!3L0@%$7W_0K"K%NF-2Y*VJXF |
7252 |
M?H`F[A%Q2H9"AT?3T:\7"G9J,L8HR4L@N?>>=VD>#P_4#[H,2D.XM;AW;J2$ |
7253 |
MS/-<S'>%L4=2UG5-]A6IJMR^ON7PKAV[Y!IV.$-?)P;PWII!?,L8S(=4BBU! |
7254 |
MWDVB9(>[S)N;P'\29\1>S.1:/%E-DX'"26IJC7%>&@B+5DED!9C)<G%#S14# |
7255 |
MD)R4Q1XC$FP-280K[B"`6SDZ:?2/V&U0HL>]Z<CXB1T%=*GZKPTV4:L9=^O' |
7256 |
M_:T5[84:,5GAUW;Q>6/)J-F4_O=/1/A"2IR@>!86?$"+R^)^V2P"_739)U!+ |
7257 |
M`P04````"``;<F0QLGX3R?0&``#F&@``#0`5`&AE;'`O:&5L<"YC<W-55`D` |
7258 |
M`R:`BD%4><A!57@$`.@#9`#=6%UOVS84?6Y^Q9W[L"2([20KNM9#AR9IUF9- |
7259 |
MDR))5Q3%,%`2;7.E2)6DXKC%_OL.*?E#BI+*'M"'%4426Y?GGGMX/TCUMS<> |
7260 |
MTK;_1X?'+T_.Z/3DZ/CL\I@.3\^/7A=/8/$'-U9H-:`W;T]IK[?7?XG?^[W= |
7261 |
M_FGQQ][&0UA=C3G%6CFNG"4])#<6EH9"<F*&D\VCOWGLR&D\X/1&?Q%2,GJ; |
7262 |
M1U+$="IBKBR?>0(:W-"FM^R4SSI;O]!4YY2R*2GM*(?YP@6_B7GF2"A02#,I |
7263 |
MF(HY380;`\JCE"`]^E!"Z,@Q6#/89]."[MR*F,.RL7/9H-^?3":]M&#;TV;4 |
7264 |
MAP;]$.^E'KJ)#RT1UAD1Y8XGE*N$FPH6&"X;:/A4U#FXI)/+#D7,"KL#L/<G |
7265 |
M5Z_.WUW1^X.+BX.SJP]T_AL=G'V@UR=G+W:((Q#`\IO,<`MQ#0D?)$]Z=,GY |
7266 |
MLCM`#75!P&8\%D.(*YD:Y6S$::2ON5%"C<B(T1B[Q%1"4J3",0?5[8(]8&:* |
7267 |
MS??V'(N$8I*.=!+"FNWA*RXS.KJ\G%N>*.$$#%_P:RYU!LA2WSH$["]ZO_?H |
7268 |
M-9>2&WQZJTW!)#:<>;FB:5AX&]$+?X2M"Y'0YM$6[>_N_E3N]BWS'AU(21=% |
7269 |
MU!?<<G,-\0+A(Z1LV!QM-NW6`-_@_X%T4`JJ8/UT)V`VI[9/I8C[9%S>>RQ. |
7270 |
MO2&0RJWSW[X\>T<ON>(&S)KSGO;]WDI$;LKD1X%UMG;P;1F9QSA%#L#@6U`H |
7271 |
MH!K8:8$&*&3^9"SB,<7,%OF3&7TM;-"^W"Q?VV4JA3KWBK,,:1>S")$+91UG |
7272 |
M"<""O?9E$R'!>G0R#(4Z$7;LRYU)J2>A7'5X8.BZI%A14BLY!=AM$2L25CGM |
7273 |
MA`SVW6#N1WM;B\\>"S[O=MC@*70F#RM4@C!=L1Q("4HI("`?$RZY\T54DRU$ |
7274 |
M'P@9GDD6!UW3T(2"*6ABBP#F30+-Y=6&?\Z%661\+=*YJHD.\082O$R*.@G( |
7275 |
M`KQ89`()&U*TA1(EUEP+IM`6%:_(TD0L%%$Q0X[/7C1.D.W^QG,T+-0VY49N |
7276 |
M=N*QT2E';QU)'3'9MY^$ZJ._;SQ7+.4V\]H%PSM:\"<^31FRS_1'V*-/G*/" |
7277 |
M^UY0WA.VYQ.I=Y-+#[C1<UK+B!G4M].JNT=?-QYT@=6-]$U7&R_0P(N"K6'R |
7278 |
MEXT'J5#=B4C<>$"[V0V^D.C=7>NFDG=%BB8ZJ(4P1O,K`K@J//4R-?*N_X'S |
7279 |
MR.@)2O4P.(=KHGM\$]6=$WW+>^G@+@*5X`?(F\V/F$6^?)-G'6=RWOES:S#V |
7280 |
M4V%G(^4J;V78'G3`8M]!6V.7]GZ/8BVU&5"AW!6_<?1#D4%,N1!:?QNCSX4T |
7281 |
MA&PBS5.R(N$@1D%"LL5!P^_/HG>CAZD?'=G/.>=?4&Q.C[A/G!Y2]*$W+3'\ |
7282 |
M%M%7*C<#DP7;0?!:&'4C%G_J1HM=77^;*F&5Z1$@NH:/PID+A>PVX9_V'\U^ |
7283 |
MX--638];O#X6O[RL,Y47"=C@88'^Z$E;%_5MO-=!@`T.?MZ_SP&.+SA5)=]= |
7284 |
MW@4__Z.^,F-)@I[?#<<-9(0OSV;&:PD?G,\9M!&F6?S[U0\_@OIW>QE#TN^N |
7285 |
M_=[^/,&?/F[!;"V-"R=!@[N=9$8H]_U+>^_Q+/Z]I_MMN!4-LT5%!^00=$OD |
7286 |
M=:HZ.`F)=8^3>6LMQ:46ZBZF:[EZ,=S*HL!);5U$SDP\K@-^T3KM2F9&?$U8 |
7287 |
M#_"74(VX-L4A];_@ZMS5@<MQW(USZW0JOH2KW*K@N%<.[=+!H;_=-.E6&$]^ |
7288 |
M6K:;2:M,I&;4VPF[RA`*<[UY]*PR+Q;46HR#E8;!G<BKQEUK_\N!5ZKHWD[] |
7289 |
M='_>J1X_J;);@,RZT^I0WTCJE9KH@EHCW#=)-C?0)9:56;G2@%M06\)H1Z@^ |
7290 |
MQI;X5(?7NF(UC9GU-6KJI^NTD5LX+:G=ZA_W]..UROT64#MB#45^UYR\C]:\ |
7291 |
MG`/6$JW_BH(+$:;`-I5'&CJJ5*)U^7"(VWU_=AO\F.J$/^L(W+0L.M&O5+DE |
7292 |
MXG/M(NX-=VJ+':YY;=9ZNQUJY_FCFV9XZB^@I13!9FTV[?#\6G^+18?.))L. |
7293 |
MYM?^Y5MYC7A3D,V4&LA7G"FM^/R.[!.3@H_P`L^_.[)YY@]G_NVQO_:&W"TL |
7294 |
MOE(5A`*(SX)7%^>'A\<7_H5.?]94<8R(HG`(?8#S0GE&9%F&<Y5__3XC4C[( |
7295 |
M<4K&!$,+'I`8*6W"HQ05+9"*N[73<J1-PDT!T7P5"^](:H^67Z`$%)P21D;G |
7296 |
M&$SE"P4':C;SKP%<F_<KBQ/2+-K9(>D!=/A?AER]T-2B7@SH\@&.-W9:N2FL |
7297 |
MAS\2PV7\6?=",@KGBAPK])G=P/>@A-52)`0,SE]<CEFB)]4W>$^*6_J_4$L# |
7298 |
M!`H``````!QR9#&Q4DP_10(``$4"```(`!4`:6-O;BYP;F=55`D``R>`BD%4 |
7299 |
M><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````(````"`(`@```/P8[:,` |
7300 |
M```&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q,```L3`0":G!@````'=$E- |
7301 |
M10?4"!</%RB#K[LO```!TDE$051XVF/\__\_`RT!$P.-`<TM8$'C_SQYDDU? |
7302 |
MGY&#@W@C?AX]^O_[=PB;55.365H:1?H_*O@\<^8S4]._KU__)QH\45)ZP,`` |
7303 |
M09]GSD23Q1)$OTZ??F%K^^?Q8QK&P>\;-UY:6_^^?IV&D?SG\>,7=G8_3YVB |
7304 |
M82KZ]^;-2V?G'WOVT#"9_O_RY:6/S[?5JVF9#W[^?!49^7GF3!IF-,:_?]]E |
7305 |
M9'QL::%M3OY06_NNH(#AWS^J6<`D*,C(PX,L\GGBQ#?Q\?]__Z::!5+GS[,H |
7306 |
M*B(+?EVRY'5@X/]OWZ@31"PJ*A)'C[+JZB(+?M^Z]86;V[_W[ZD3!\R2DA(' |
7307 |
M#[)96Z,4)T>/OK"W__O\.74BF4E04&+7+DYO;Y3BY/+E%];6?^[<H4XJ8N3B |
7308 |
M$EV_GCLF!J4XN7__F:$A_K`B(9DRLK**+%S(FY^/EM6I9@$#`P,#$Y/0A`D" |
7309 |
MS<VTK3+Y:VJ$9LSXS\Q,PSJ9-SU=;/ER!G9V&E;Z7*&AXENVH&5U*K<J.%Q< |
7310 |
MQ/?N91(1H6&SA=W,3.+0(19961JVBU@U-<6/'F75T""J7<1F9B;8T0%-^`(" |
7311 |
MQ+:N9&4E#A]^Z>6%K5*D'OCW_?N/$R?0!!E'&[^$``"Q(D<0Q>'5J@````!) |
7312 |
M14Y$KD)@@E!+`P04````"`".<Y4QB#@P_5L"``#2!```"P`5`&EN<W1A;&PN |
7313 |
M<F1F550)``-;><A!_F3-055X!`#H`V0`C5113]LP$'XN$O_!*R^;-"=I$UI2 |
7314 |
ME:!)K(P->`"&]GI)+JU%;$>V0\NF_?<Y3E-2Q"3ZDNKN^\[??7?V_&S#2_*$ |
7315 |
M2C,I3H<C+QB>)8<'AP?SV_,%L3FA3X<K8ZJ9[Z_7:V\=>E(M_5$<QWXP]L=C |
7316 |
MJO*"ZF=A8$.%/AH>'@P<:X9\C\CE;U:6X-CC((A\Y`WU:.A.&\S/46>*5<;* |
7317 |
M()#*VIP.:R5F6]J,"6V@+"D'P0K4IJ$-!G/D,Y8G?XIQ&J?%**33^.281G$X |
7318 |
MH6D\36D>87P,^02B?/)W[K?HCKAM.K$]>Z.1RW8A)VDP_T`IN0>U1$.^5%7) |
7319 |
M,G#RS(II@AN#H@&3#`39RK-?(S^3AKQF9D4X$XS7G(#("8>-^Z_KJI+*8-ZY |
7320 |
MKCU":4(Z6<8=V#O/"=XSJ(WLNL?L)`B#8DJS<0`TFD0%C=,`Z2B$$&*,I^%) |
7321 |
MM-=]2[7B'K;]6@,"!^C%>D#8/+QXU>)>0JTZ_[4\!WNKEYVS"R6%(5^M-==H |
7322 |
MX!P,-#YT-@C@F%R*O-9&,2A)(159,(6%W+C2+M^!\][AOQAG=B)6SZ.1%<FQ |
7323 |
M@+HT=FC(T56Y;E=JKUK^6KV-90K!2)7<R"<L2P?K0CN([4"QM&YB%Z`4&D.N |
7324 |
M\`Z6V,)[Z;<H][7DH,F/6FJ[URC>1?H.CW5*[@PR@>I=#,_SF@6T#A!EK\Y_ |
7325 |
M.2O)L;+:?]Y>)=N;*USO7B:Y[VA]2#/*-X9Y*0PN57M3ODGYJ,G'6MMM3Y_) |
7326 |
MO9O!-0A;07WJ#=M>&U0"RIMFJ&PW]'9G^[GFI=A;->)^[L'R[8ME`?\`4$L# |
7327 |
M!`H``````$%R9#$````````````````(`!4`;6]Z87!P<R]55`D``VF`BD$+ |
7328 |
M9<U!57@$`.@#9`!02P,$"@``````@P5K,0````````````````T`%0!M;WIA |
7329 |
M<'!S+W!R968O550)``,F_))!"F7-055X!`#H`V0`4$L#!!0````(`"%R9#%Y |
7330 |
MQ*QS70```&`````4`!4`;6]Z87!P<R]P<F5F+V1O="YG:6955`D``RZ`BD%4 |
7331 |
M><A!57@$`.@#9`!S]W2SL$SD9>!E.,3*L&K5JN/'CS]X\.#ITZ??OW__#P.* |
7332 |
M/UD8&1C8&708@`"DEH%956+#G07*IS2O*5@\3]KZ_,#3W+L=C8LZ9Z6OW/7X |
7333 |
M5)-3XOT?C]\X,C%8`P!02P,$%`````@`(7)D,7E;@.)3!@``G`\``!8`%0!M |
7334 |
M;WIA<'!S+W!R968O<')E9BYC<W-^550)``,N@(I!5'G(055X!`#H`V0`K5?; |
7335 |
M4ALY$'W&5?Q#+WE8H)@QL,ENRFREUAA"O'&``I)4'C4SLJU$EF8EC2])Y=_W |
7336 |
M2!I?(0F575[P:+I/=Y^^J*>YWWA"R7Y";W3!6_0W&[,3<BQ+)J)PPQ8]/2&A |
7337 |
M"JY<@D.;C(*4$O*$\B1C5N2)[O<M=Y#T,`![QXT56K7HS76/CM*CY@7^'Z>' |
7338 |
MS5[\<=1X`JF[(:=<*P=D2[I/;B@L]87DQ`PG6V4?>>[(:;S@\.VSD)+1=95) |
7339 |
MD5-/Y%Q9/K<$-)BA72^Y4[_;V3NAF:YHQ&:DM*,*XDL3?)KSTB$PN#`JI6`J |
7340 |
MYS01;@@HCU*#I/2AAM"98Y!FD"]GT=V%%#$'M:%S9:O9G$PFZ2AZFVHS:(*# |
7341 |
M9HCW5O?=Q(=6".N,R"K'"ZK`K%G#@H>K`AHV%>VT;ZE[NT.>;WL`L/?=NU=7 |
7342 |
M;^_H??OFIGUY]X&N7E+[\@.][EZ>'1!'((#ET])P"W(-"1\D+U*ZY7S5'*#Z |
7343 |
M.CI@2YZ+/LB53`TJ-N`TT&-NE%`#,F(P1):8*DB*D7#,@76[]!XP<\86N;V" |
7344 |
MDE!,4@<5X\-ZLV0EG"U%NTHX`<DS/N92E\"L"=[$@/R9-N#D1ENN,FX&`*%K |
7345 |
M;:(_N>',DY;-@O9]6$]_!PD,\=!N9X^.#P^/ZIS?$T^I+27=Q-AON.5F#`J# |
7346 |
MUQT4;DB1-KMVKX43HE.NZ$+K8@!#?V9<_:6XLSDK>8H:>T&[BV#:E1MJLQ>` |
7347 |
MVM*!8_`)F[.#X,?#3>&+,..^C%>K!LHC+PBD.NG^].+R+5UPQ0V,/=PQ=.RK |
7348 |
M0H(M4[<-6G-G[P"G-1L>HX?J@<"/H-!Z&V"]B`8H],QD*/(AY<S&RBN-'@L; |
7349 |
M\E5GV4^%N@C#A/!98B4*-F<9(A?*.LX*@`5Y[1LN0VFFU.V'%I\(._2#@DFI |
7350 |
M)Z'1=7AA:%R[N,:D5G(&L/LDKE&X[M-!J'T_1Q9VM)>U>/98L/EM@P]8"C/- |
7351 |
MPV*T(DP7U8%4H`D#`FJXX)([WWX;M(7H@T.&EY+E@==1&%]!%&XB10#S(L'- |
7352 |
M56W#_ZF$67;)1J0+5@L=X@U.\+HH-IT`+<#+12E0L*%$'\%$C;7@@BD,5,77 |
7353 |
M:'G(L=`O^_Z/SB_/J-?MG%_>GM-I[ZKS.IXW]IN-1BHQ/D_UE+XTB'!=?4Y0 |
7354 |
M2YP9/^);Y%]F>GJ"=R-FT(\M.BZG]+0,1YDV<#`>62U%<3+'B&\2I\LDUU(; |
7355 |
MV\+D,IR?W0Y9@6J(#V?,?(H'FXIAXFRHOL*9#),H/O?\[X?5,^V<'OV\ON3] |
7356 |
M3>O?<3QC^:>!T<A6U&E%K)>"2S#R%1S'C2!0'&D,%D#<;^4*MS'J^:G7LR,T |
7357 |
M3_(M[:-GD*,@6"GQWN\?IQ4"5U$4<O5.\IR/`EX3M7!MQ)CELV:[&/L4%W3- |
7358 |
M%)>6SJ<E"XV'6N`6!=*$>>Y\0]EY><Q+X%GTNF1%@=?U,_"?^*H]GV(<AUKV |
7359 |
M*K4'S^`!W1=)2UD!T?909FOBZ5+!S4K>Q9`_H$;*YXJ=H9"%X:K5"E0[)"41 |
7360 |
M(]S"NVOXF*FUB3N@V,=JK05[B.)&@.'_X3PQCP*-0N?*C^4B@C;WJ;'U360* |
7361 |
M_998-Y,U1HLJ(W?SH=$CCFT)!M"=MFD_"=7$MM)O%MJE`]'']@9@Y&SK/H+" |
7362 |
MM#AI;-WK[7S(\T]H[L3?H-C6D/M?L/A@.V#*S17\>X:N@;NXQC"$3I;^+R;! |
7363 |
MUJ(2_OAY@K"'+9G::NY_+P4_052(]K]2]3\2E(D!-I_NMP;#\WEKA_H/HR1( |
7364 |
M]9&K9,+CH,@T!DR4*GB?5=*UR_*2C?A]P-_+->>]$FIQ.[3C*S2^Q/WCN["S |
7365 |
MJ(4OV_.9Z"]=[[MG>.=ABC$)E=2LL,M?Z70DG\R?DK'@$WQC_.".">]P)YJD |
7366 |
MK_/*^H08C$`PMKU-^_0^+CKQ(EY.7;]D8.(/ZRL15RHNX5'8":U0\;XG7W8D |
7367 |
M.1MCN#$Z3C!C/:3_="C]9X.`=-QSK2C\U5N"!N>_`6`U9^I71Q\K3*EPO.F` |
7368 |
M9#/_`1'V(8^:\9Q5=L4P%D(+P][(BEI80;#O.6P&.K-Y9>;K2[S`(F[Z0)H. |
7369 |
MZ#N9>T'IG/=WH+VK<'@4\KER4ZUTS>-S>GJ1EFH0\[B"Q9QC^=`SWL+B,N7% |
7370 |
MQGOL7?C2\-FL?VZ\+[45+GP"UW&'1*!/MQ\HE]"CV\OE(_;L5[_,_`M02P,$ |
7371 |
M%`````@`@P5K,4B`FM%8!@``A@\``!4`%0!M;WIA<'!S+W!R968O<')E9BYC |
7372 |
M<W-55`D``R;\DD%4><A!57@$`.@#9`"E5]M2&SD0?<95_$,O/"Q0S!C89#=E |
7373 |
MME)K+B'>.(0"$BJ/FAG95I"E64GC2U+Y]SV2QOB"2;(;7O!HND]WG[ZHI[G7 |
7374 |
MV*9D+Z&WNN`M^IN-V#$YEB5C4;A!BYX=DU`%5R[!H4V&04H)>4QYDC$K\D3W |
7375 |
M>I8[2'H8@'W@Q@JM6O3VJDN'Z6'S`O^/TH-F-_XX;&Q#ZG;`*=?*`=F2[I$; |
7376 |
M"$L](3DQP\E6V2>>.W(:+SA\^RRD9'1595+DU!4Y5Y;/+`$-9FC'2V[5[[9V |
7377 |
MCVFJ*QJR*2GMJ(+XW`2?Y+QT"`PN#$LIF,HYC84;`,JCU"`I?:PA=.88I!GD |
7378 |
MRVET]T&*F(/:P+FRU6R.Q^-T&+U-M>DWP4$SQ'NC>V[L0RN$=49DE>,%56#6 |
7379 |
M+&'!PT4!#9N*MMHWU+G9(L^WW0?87>?V];OWMW37OKYN7]Y^I'>OJ'WYD=YT |
7380 |
M+L_VB2,0P/)):;@%N8:$#Y(7*=UPOF@.4#T=';`EST4/Y$JF^A7K<^KK$3=* |
7381 |
MJ#X9T1\@2TP5),50..;`NIU[#Y@98P^Y?0<EH9BD4U2,#^OMG)5P-A?M*.$$ |
7382 |
M),_XB$M=`K,F>!4#\F?:@)-K;;G*N.D#A*ZTB?[DAC-/6C8-VH]A/?VG2&"( |
7383 |
MAW9.=^GHX."PSODC\93:4M)UC/V:6VY&H#!X?8K"#2G29L?NMG!"=,(576A= |
7384 |
M]&'HSXRKOQ1W-F<E3U%C+VGG(9AVY0;:[`:@MG3@&'S"YG0_^+&^*7P19MR7 |
7385 |
M\6+50'GH!8%4)]V?7ER^IPNNN(&Q]1U#1[XJ)-@R==N@-;=V]W%:L^$QNJ@> |
7386 |
M"'P/"JVW`M:-:(!"SXP'(A]0SFRLO-+HD;`A7W66_52HBS!,")\E5J)@<Y8A |
7387 |
M<J&LXZP`6)#7ON$RE&9*G5YH\;&P`S\HF)1Z'!I=AQ>&1K6+2TQJ):<`>TSB |
7388 |
M$H7+/NV'VO=SY,&.]K(6SQX+-I\VN,92F&D>%J,58;JH#J0"31@04,,%E]SY |
7389 |
M]ENA+40?'#*\E"P/O`[#^`JB<!,I`I@7"6XN:AO^3R7,O$M6(GU@M=`AWN`$ |
7390 |
MKXMBU0G0`KQ<E`(%&TKT!YBHL1ZX8`H#5?$E6M8Y%OIES__1^>49=3NGYY<W |
7391 |
MYW32?7?Z)IXW]IJ-1BHQ/D_TA+XTB'!=?4Y02YP9/^);Y%]F>G*,=T-FT(\M |
7392 |
M.BHG]*P,1YDV<#`>62U%<3S#B&\2I\LDUU(;V\+D,IR?W0Q8@6J(#V?,W,># |
7393 |
M5<4P<5947^-,ADD4G[O^]WKU3#NGA_]?7_+>JO5O.)ZQ_+YO-+(5=5H1ZY7@ |
7394 |
M$HQ\!<=Q(P@41QJ#!1#W6[G`;8QZ=NKU[!#-DSRE??@<<A0$*R7N_/YQ4B%P |
7395 |
M%44A5^\D+_@PX#51"U=&C%@^;;:+D4]Q05=,<6GI?%*RT'BH!6Y1($V8Y\XW |
7396 |
ME)V5QZP$GD>O2U84>%T_`W_;5^WY!.,XU+)7J3UX#@_HL4A:R@J(MHLR6Q)/ |
7397 |
MYPIN6O(.AOP^-5(^4SP="%D8KEJM0+5#4A(QQ"V\LX2/F5J;N`6*_5&MI6#_ |
7398 |
MF"7CAX"BT+GRH[B(0,T]:FS,T`[0*J`K_#^(-/H>2ZR;RAJC1961._G`Z"'' |
7399 |
MA@0#Z$C;M/="-;&A])J%=FE?]+"Q`1AYVGB,H#`ACAL;C_HY'_#\'@V=^%L3 |
7400 |
M&QKR_0N6'6P$3+F9@G_/T"EP%U<7!L_QW/_`QL9#YG^"'.Q=<Y8VFGO?X&A- |
7401 |
M@-^A*,3YLR3]1VJ.GJ`F$WWL.)VG1L"+61.'2@]#(TCUD*%DS.-(R#1&290J |
7402 |
M>(]5TK7+\I(-^6/`W\LEQ[T2*G`S--YKM+C$3>/[[?2A`KYLSJ:?OUZ][Y[= |
7403 |
MK?7T8N8IJ5EAY[_2R5!NSYZ2D>!C?$U\YS8)[W#[F:2G\\KZ9!@,.S"VN4E[ |
7404 |
M=!=7FGCESN>K7R<PVP?UY8?+$]?M,&Q_5JAXLY,O.)*<C3#&&!TEF*8>TG\D |
7405 |
ME/X#04`Z;K16%/Z2+4&#\]L^K.9,_>KH4X5Y%(Y7'9!LZC\5PN;C43.>L\HN |
7406 |
M&,;J9V'8&UE0"\L&-CN''4!G-J_,;%&)5U7$3=>D:9^^D;F7E,YX_P#:.PJ' |
7407 |
MAR&?"W?20L?\>$Y/+M)2]6,>%["8<RP?>,9;6%$FO%AYCPT+WQ0^F_7/E?>E |
7408 |
MML*%C]TZ[I`(].CFFG()_;DY7S-BOW[U:\N_4$L#!!0````(`"%R9#$)0OW0 |
7409 |
MN````,P````6`!4`;6]Z87!P<R]P<F5F+V-H96-K+F=I9E54"0`#+H"*051Y |
7410 |
MR$%5>`0`Z`-D`'/W=+.P3.1EX&5H$6<``B$A(3DY.2<G)Q<7E_3T])R<G.+B |
7411 |
MXMK:VJ:FIN[N[HD3)\Z;-V_ITJ6;-V_>OW__H4.'3IX\>?OV[3MW[MR[=^_A |
7412 |
MPX=?OW[]CQLH_F1A9&"09]`!V02RDX'5\\'AGI23':&KUEV*B"S@\9^N??QD |
7413 |
M@/'[6IX)L?IE#!8Z3MV)B9T,?`:*3`P9/"S]*]8*+!!*\O1:O)KA=D)WXY$S |
7414 |
M$V+N??AQTJ6^A8'!&@!02P,$"@``````?7.5,0```````````````!(`%0!M |
7415 |
M;WIA<'!S+V1O=VYL;V%D<R]55`D``SYYR$$*9<U!57@$`.@#9`!02P,$"@`` |
7416 |
M````(7)D,?C6!\S2"0``T@D``"D`%0!M;WIA<'!S+V1O=VYL;V%D<R]B86-K |
7417 |
M9W)O=6YD+6=R861I96YT+G!N9U54"0`#+H"*051YR$%5>`0`Z`-D`(E03D<- |
7418 |
M"AH*````#4E(1%(````@````>`@"````',5G.0````EP2%ES```+$P``"Q,! |
7419 |
M`)J<&`````=T24U%!]0($A8=''S=S]T```EQ241!5'C:O5I;<APY#"-4??\3 |
7420 |
MQX/]X`N4U)/\>%W)V/-2JR40!$&!I/WFS[)?_M$+</MM1INW1WV,MWA^+5ZD |
7421 |
M&;DH[]'?`/-;D#=H9NBQF'\#1AII\''\/V@&(VSYU7(@_[090)^^__:/QU4( |
7422 |
MOQ#Z)D&`),U(&`TQ*1B6T9`7-[D1F!$^-LT`Y,+0'V/X^`W28(`![#4!C8\/ |
7423 |
M"%\`D#0`_EI>%3DB\TGO#T@#XFV2_8$8!!]^[`!JCCWO[/P4>'F_OP2#X?/Y |
7424 |
M_#Y,>2*5%_C6DQMVWUY8`EW2X`,4!F,SR`2J&0,_,@<RKEMX+3#;4Y\)/,., |
7425 |
M@6U42$'&A+\OV^U_.4[H&^.CF!&+'G!`PH;FL0!>%R_>]T>_$%@P9OW+L,// |
7426 |
MSV=')1#+H4"5:P"WG1+DZ4OX^?P8QQ@#_R?VKJA$QM4%190=V1?C"U0F]?%" |
7427 |
MC-S9E,?7>>)2)P'C-Z0Z(:VZ5$&MP9GW3!B#:K$CTW>4.H(/'H2X&/Q$9R+4 |
7428 |
M<IK!6=3Q2HS@0#QUY!>Y9Q20>;G5O&&..I(%14=O7!<F<9$IPA$%1)RB&0\Q |
7429 |
MY)^?/XK%6!4@:%Z#QH=C/;,[Q)#IP,P,3R-SY#9J5$$0@SL>QC/-+>L5A`T@ |
7430 |
MOB=I>_]BQD%#D910SP<J,"7/4Q/P&7S]^HK[]ATRD/Z822[9:US"P5`17%F= |
7431 |
MN?=$I<"%F%!N`^)6$."O:1(-%V9XU$;E?CGP.@JY+(G4)'L+`X#TVZ@=-B#( |
7432 |
MDX54F77($YJG_R>F'4O"FA%SU5@J:L.8<S6/Y)=+[J,^USS(S.@Q0]X(D!MA |
7433 |
M\T*#")@*(G@`\JZ.^0;N+8,O8^E`9GS+'?$:2+'EE)M@1LP6B8^S0GXCY53& |
7434 |
M.Y%2+7)C*,?`"Y*`DFA@-4I\+G)R8<LQHL3MFC`S"H&4@4%:R&P3_!A7`P@C |
7435 |
M[7%"<X6:"G#L>^A@OY6\W81>1$->Q6>8VP\SLZ>8+%<>N27!I*FP.5¤ |
7436 |
M[%P@)@U8!TBH*99_1Q$&99=2BG7@NB-%]=ZH:!2[G%*!F]!KZ8AYS0%^7S#) |
7437 |
M78EGX1>..BAVFX':10X%V-5`[A13*M8D(VJBE/'/1HD%27+^V2<R>/(CHJ)) |
7438 |
M?0B&]LUJ@,G5E>D*XJ@ZKMF5#XJ50_V*^"R:0U=PLB!=V07OA!929HN<;,6+ |
7439 |
M0J?L+U-W::^`>*D<$)4F(V5>RXQ=2/*UHN:=\=C2\1OI7N4JOZO6H\+!$`\L |
7440 |
M]3[$I((#/!1L<]>XYR>5J$O'J%\@";3+6W]:.QITB2;/).(D'?@%LIP!X:FS |
7441 |
MIY^08]3.H2TA8*_<[=RNZTJ&+D)2*TM-@W$UY'(D%;<5D?'J%7Z^@,@DJ:*? |
7442 |
M6)]"F__-(U]5U<>M$E*56???6_><1?&MFL#E+;XHS0U%G$MI(D,JCOD-D+QH |
7443 |
M#;T`,OL4A(J+52#>BS`:$WN]V2TA+&#J%`<?GG-Q`Q=,$>"82#U0VU>N3E?Q |
7444 |
M09M/&S4LGPDYCV;MXLUD\;*N:AVUC"DNPQ(*#^D`00Z%GVD2JRP-"T>UB&#F |
7445 |
M'0/@2FD]>68P&W$A)VCM0$@YVL1!<I`=O['E+@UX%-,;$379"4"T(-W4*F:D |
7446 |
M8"O_V$9>3K^M!);0/"N\Y#`)C"R8J4R+1%=6Y3F9QWTB%H.F\D*HN9I3ZE74 |
7447 |
M%H.=B0G#D&WQF\NZ?F;7E-0ZSZOZY"BQ5H8`:0LKBQMGTP2W$C&'J\@R00,Z |
7448 |
M;+J?\:."(+1)2T=J/:>$KC'`"Y!&3K"C)%]'!/RE9CFRNBJR\W.?I2"K= |
7449 |
M$,HQYZ[3TZ+A?E\T"^\:L7D>U>YS=]7#'CO+@+2?7:!"LQR&N4];E1&1-KEE |
7450 |
M+L\LSLG67GU*46S3CZI-!P`^9-4-:$>*96ZK7XBR.U'^O]DN*S$\T2=NF6*F |
7451 |
M#0H@=FI"J?1,+Q!H(X5V7.*Q%[;CFYLY,'`HLXW4@NSX+\;/OSE&ARQ8-+1K |
7452 |
MPE-]BE41/`$[\"H121D'1J[AF&'O381G5.QBNZ:#N#Q)!&BL`JOJCI"BP^/O |
7453 |
MYDMGU:2BLF=8EKK(Y4"2WT%H!Z)(!Z,UE?_!_FS6?#"-F9;D]:DE\H<;R4FE |
7454 |
M+V;2;BZ'-\+!HEVE/O=">]?(+SXY=][C)$R&K<D;_/A>28VUXVY]3B=HQ>+& |
7455 |
M2LKG=&%K_]/A([.IDH\:\,X:+O-6;VX.%UF,L-9KX:F$=@@:I<QD>!Q9H!+& |
7456 |
M)VJAJB4JQP^CD.6EE*MM8+0!,S+"K6^6E#V@M0W(T>&J:J-=3:O,+.@F2!6R |
7457 |
M.<R2588V>;3G*3T*L5]$,J+56+%$Q._:L^#7JOK5/K\`F%*`V-\]]:/M]V91 |
7458 |
M[7;GJN3+,HN'K<E9I%$LFRUV/#N#PI/A>-46AL&HC2`H^Z4[F<UQ*7M(T5&! |
7459 |
M9*/!'JNV=RLTL;NR45GJMIS"JD%0D5`=[Y3#-'N@&%737@S'JJC8;F*;E*QT |
7460 |
M@&;B<L>7!*^JXN`%+;@EST"")1M/N;@\4N;AU7Q>`<KAL6[,-GOWW#KB+=>K |
7461 |
MM+S)W$TUJ$7&*3$CL+E8^DTD7OK1U$*\C&21COD5#N"AFR%X4&<7=,VI11A- |
7462 |
MC;MNYU3[!QC'(L91C:<!/7RB:-ND^PC=#Q2AI8AT'`'6W]@;=>0D*SV&T7/2 |
7463 |
MU1Y)F3SH-_I*ZTHX/,]MS(Y=E^;@+<FV%%KO:I!O3>X!L<^W]@Z]AR/R6,L; |
7464 |
MZ`F*D$0\+$X,VWW<GM%@2SP0H^A^9([*"B@1!E.FXFAD9_].TNZJQ)=1'YG3 |
7465 |
M<L;!I^B$7FZ[F)UYI@-=F_N45D*`G$8-+4FM#(;A8$,.^50?DX+V&''I::?J |
7466 |
M0\T^AVS'T/*!>ZGBIK*$$?9LA#:@IC":-1G5C#]:>D*^V6J\U?"\A<:76N9$ |
7467 |
M.2,G#P>!TY'!F/*PVK96^F8LY*(NZ"D<<7]9F\\P+]-&0QV)(U,7HJR8:EM' |
7468 |
MNE[L`SU=0J'/=M3)'J=,B'RJ*C^_$GE@'"A;90B,$WMRAD*/,J&E'@J3#&L] |
7469 |
MW/MJ&CGT5@.[PM78B78S(?5X!:C3J/.%L-%@>NZNX5!/H\^^5U(S56RG-JCB |
7470 |
M=PN#%WEXPIF'TSAJGC4]0LE>>U'4Q[^8=D^%?#J&:">GSA>IVP`YRU/?GFZ: |
7471 |
MGX&H6@*FAF_-CGE.(A-.G`4I/PE54DE_@R4YJD6DYYOB1`BRI^GHY"/>:Y1% |
7472 |
MU9=J4C7K&%+7W?28I6U-18^99T!##P_M'=JVG>3$:QU)Q9;G"KW/[*J\L!@O |
7473 |
M-'C5E[ON^Y\/%?_*SW^W6N]>&W%D;0````!)14Y$KD)@@E!+`P0*```````A |
7474 |
M<F0Q:Q'+SSX"```^`@``)0`5`&UO>F%P<',O9&]W;FQO861S+V1O=VYL;V%D |
7475 |
M0VQE86YU<"YP;F=55`D``RZ`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U) |
7476 |
M2$12````$````!`(!@```!_S_V$````&8DM'1`#_`/\`_Z"]IY,````)<$A9 |
7477 |
M<P``"Q,```L3`0":G!@````'=$E-10?4"`T4#1[3[R\'```!RTE$051XVK62 |
7478 |
M3TB3<1C'/YMMNL<DT3;?U(SH:"D(X5M$?Z@9L2*,-C,1O$C4)5^Q(#O4I8@. |
7479 |
M19TZ1A2Q!;9+T:7_R+N"$BHB1,70J+1)1CY,#YN7O=740R/ZGGZ'+Y_?Y_<\ |
7480 |
M/_C'N`!4%1&)`I=5-9$/P`T@(M$;%[HC[?MWVB)BY@-8YAR\OF+:FO>PW%]M |
7481 |
M.V9_;:"J+3?[[E/H$U*3HY2(A/,V>&*_.E]34=9K-FQ@.ET4R\<"5455`:RC |
7482 |
M![9F>MJ"&:`1,%UNOKN]#`.FTW.ZJOI["TX"97+N6+BI]_G[S]1M;J2JQL#C |
7483 |
M]7#J^)D[JAIQANQLR[W09F)*3T][#`X=#A$,;2=@^'EK)^AH;0I+=C:JFA`1 |
7484 |
M:TF`B)@4>ZFJ70_`LWL/.'ED'Z'@1@XV[XUE.Q9@BXBY"%!0Q-4=N[?P;3)) |
7485 |
MW_5;7#G;07+J!S,N`R-0"&`#XSEK_#/I.<I'!C_^NOG3ER1UM6OI[W_,R@H_ |
7486 |
MN[8U`%A`=\Y7SGD"Q![&+ZY>MV85`Q_&>#?TE=(5/N+Q1[P>>/E49_@Y.X<" |
7487 |
MEQ8!'$AI"=>ZNCKK*ZLKL5^\(7K[[D@Z0T$JQ0G`5M7Q)0T6@"Q@4[83X7]D |
7488 |
M'IG^KG#V-9(O`````$E%3D2N0F""4$L#!!0````(`':893'A'`_U_@```+$! |
7489 |
M```H`!4`;6]Z87!P<R]D;W=N;&]A9',O=6YK;F]W;D-O;G1E;G14>7!E+F-S |
7490 |
M<U54"0`#X!2,051YR$%5>`0`Z`-D`'51.T[$,!"MR2E&HH'"R8(@A7."+9&X |
7491 |
MP"2>.-8Z'LMV1`!Q=YS$K+:A<#-OWF^L#%K6\%W=>53*."WAZ=FO7?535;7: |
7492 |
M03&P2^22Z'G=%GL<+CKPXI2$%-!%CR'#L`3[,$R!9Y)-HRWW:)MX,:XQ62`V |
7493 |
M;PO%9-C5WNE'2.S!TIC`L0CD"5-WC2`V0,+K2\FA*`[!^(V\^8\YCHCFBR18 |
7494 |
M#)I"5V8?9/24B3U;M1/OQYPF4P#FO&B<R*ZY7Y:%';8\8%$%^$>BE'__]'2> |
7495 |
M4=.-G(237Z'-[W2\XVIQ1FN%<6H[RHWYT:K=W:_#</BUA1PI'Q,3ASI-9F\[ |
7496 |
ME41_O_(+4$L#!`H``````"%R9#'N*WO$.C```#HP```A`!4`;6]Z87!P<R]D |
7497 |
M;W=N;&]A9',O9&]W;FQO861S0D<N<&YG550)``,N@(I!5'G(055X!`#H`V0` |
7498 |
MB5!.1PT*&@H````-24A$4@```,@```#("`0````'4685````!W1)344'U`04 |
7499 |
M`PLMR^VI=@````EP2%ES```G$```)Q`!E&E1&0````1G04U!``"QCPO\804` |
7500 |
M`"_)241!5'C:[7T)C"7'==BK[O['W#NS-R\M*9$4)5&6J-LB)2-&8D<)C#@V |
7501 |
M$AB.(N>08QA!"$<6(@<&8BBTJ5@R8E)42)J!<]EQD$2Y(".($2?18=*"1%(4 |
7502 |
M18J2>$F[RR67._?\LX_*J[NJ[_[_S\[NTF_PY_?OH[KZO7YGO7I%8%_@[Q,Z |
7503 |
MY\U#EP00>!2`4)H0`$H2B$@,$>`W4#^F<1#?G>Q/'RY/(/O1Z"]VR"I9`)_P |
7504 |
MYO,_%$B"I,$/C;U1,AH/[XD/&AF7`LR<(!\A"_-PDG@V\HF^579;?9!`$1G` |
7505 |
MF`SC<!C>2P\:,0<%,R?(+W;I"=*VT5[GH[J!WPF$9$P'9._NZ*"1<Q`P<X+\ |
7506 |
MPC5DWJ#:AX"C6[WP"=_*)XA%%/:A,((=.@Q'O_6:XI89$^3G`^]Z(`*E+3@& |
7507 |
M\T@0SQ)3%&+\"U&CQXCO(1(H31RP?^/I9`@#?_N3KQG%/VN"K)#CHM$YN!X6 |
7508 |
M^+M/.$E(:EN0*80^$J:'I!G!&&+((0K[$9,]V!F//OT:($LPV^8HE184=)`D |
7509 |
M:;!5.@./G\7VQDB.$1)G&S9`&%M4ML//]V$%%MK#7UV_:W30"-MOF#&'?'2! |
7510 |
M7"V:[<"UL);B#R_S#7S;/H/"+IS'SPZ2**-K*`S(!AW>=05SBC_;YMY*O4-$ |
7511 |
M2!G80TT1(&$$XHE%A+08LPGF(<\<0>VSA@)O`+:A181B6H#.':,O7[$DF;F5 |
7512 |
M]7>/HE-H-3Z/TF85_\])$G@%W)+>YW&1M0,OPB:2UK7$T-_?AJV[PH-&WG[` |
7513 |
MC#D$X.TQ8M\WNB)"=&XB_@9XJ[D<KC"B"W((-`<GX"ARF>`5+;H(G2/=#]`O |
7514 |
MC0\:?;.'?0B=_.VV=Q(ZKD\N/DMP%8JCCM8=AAO`^<YR$(47X"RL2S6O>66; |
7515 |
M;O[Z%4:4F7,(P./Q;0.NU4F:)&/DE5U@A$EK$$A]>QD>.HR\,H=7AS9).C#_ |
7516 |
MP?&7KBB/?E^"BPQ^+@@689&TH)7URY?1`CN.^IG]<CG$Y9JL7@GA:?@!FL=6 |
7517 |
M>PG9ZF_\UA6CY/>!0P1\(WEL>$LOZ*/X3Y`LQ";)&+V-$?))*\,A+M=X*2XA |
7518 |
M:+4=1PML#UU)4.T1Z+:"]X^^<H609-\XQ(:/>LS8(EUT\*QWNPVW<#X!AT/2 |
7519 |
M^L3V4<0^#TWJ[\,W;:(`C.BY*T.;[!N'V/`8?6S\]AX9HO6E>85YYQLH@HYD |
7520 |
M.`1*N8;]]U&C'$'!M0O:$`Z\SNWC+U\!VN2B<(B!G^\B)KN>-5IR%-Z$.J49 |
7521 |
MARB?_FOP+(2@VXKAW%W]@T;HM'!1.,3`H]&M?3^D<QRW'`;HHQR30?JZ'*(( |
7522 |
M=`(6X;0.[>..+OKPESF77&2",&7_Z.BV/;QO6W'G$/V+%>TT0@KY"NP]ZHP` |
7523 |
MV>TJO%I;7;ZW>$?_RY?U4/!%)PB#QY(W]-%S[!`BQ,T(N>2$97,1BQ3YW&'V |
7524 |
M+"%_G<$6)$D\TOG`\$N7,4D.A"``3]%'^[>-T/:2HFL(%V"-!^SMD792(+2T |
7525 |
M*N=_"W"==#@YM&#^CM[E&WP\(((P>"Q\1PQ=?*>!H98-4UU;R@V0(HD(J8C! |
7526 |
ML*-H"&OU[I/@@\,O7:8D.4""H(H?O6U(YD4?*&J""'6"7\@7V6_S:QY%WBMH |
7527 |
M($CH0.O=>X\<Y*--#`=*$(#'H[='QF'<1<2N`J2XPA5@`(8[/.OX`E[YO!FC |
7528 |
M;_GA5R[+T<4#)@@*KO$[QW118#K!MYPE1C!(.XOI?9`AVC)JH7,@W75"NN\? |
7529 |
M?^4R'#$Y<(*@X`K?@1Z$\.`IBIUCJ1@7I'ZYB1``ADN645:]J.TMK_/NG<M/ |
7530 |
M;%T"!`%XT]#W25=L][!+QYTWGV00GTX;4N"A#NKQ41-^+/"#]PT>OLRRNKSI |
7531 |
MFY@>_ET"ZY3+&HI_S\*>\;[Y'IK:=K_=O[?!87/&4K!XT,_6%"X)#F'AQ]O& |
7532 |
M=)[PUR-&K^0$[UB^<L_G#I!DZZ#(>TZF$N%)W??L/')9\<@EP2$,Z`#V%.9> |
7533 |
MQC^Y5_,'U1_%'4D.?[!]:_!F0ZZ@M7+03]8,+A$.00,8;AUZR\#CP#'LP`TZ |
7534 |
MSIOE"%>U`]@LP,ARF"=62&B_?_@GEU'`\9+A$(!_$]/-A`KT;J,!#!9WN'SB |
7535 |
M<H3:E^A?;7@KZ`3O``X=]),U@4N&0QC\4.AU$)L<AG!2CKIG#5Z39.J"$6M= |
7536 |
M".&\/)=T?GCX\&7CD5Q2!/D&?1N0)17;.L('K@2XZ,]Z)/99@C/FT$D<J7/] |
7537 |
M]_8O%]4^XV1K`_=X+9_ZQ(M]+Z">Q$9,0HCB^,Y"F?ZO=O_6&G()L$2(I^$J |
7538 |
MF;^HQ(_B#"6D//U;!5-`'U^!6^'+JMDY,F_"P9<VS)P@][5(BW1HF[007S[U |
7539 |
M/!\TLO"3T,B+/SM,]NX<%#2P38\2PE!\`7&X+*\3UR=&,^C?#'3K#L=<AT39 |
7540 |
M%B3SO)7+A2!3CZG?YWL>"="#Z"0MZ'(R.$BSOYVM,=U*=G\I,Y3TX:!UD@V, |
7541 |
ML(Z]&=T\S_)&/.N3'W1T'^@Y^%.TV.0DT].?+GH%+BF8F"`/M*!%D0"TA7K( |
7542 |
M)S[5+163(;6'TAYLW9E)2_BY-7)$(/$HW`'S>@0='*)D0_!9K;('7X0-M6^[ |
7543 |
M<_ZNRT"/-!)9#P80D#9TDSG!"0H!M`3YN=RA+EV$A=^^0'=</DEV_,."O!MH |
7544 |
M*9VR#%Y^%"]3079JZ1`SW=KT:AYN1!Z1L##LPE0\\H^]`+6AUTH\-J:6)!!Y |
7545 |
MT3B\>\9$KLDAGR7=I60>3=+`)F$5+W00XXN(E@7^*X0M_-N&V#F;)K`7OO)Q |
7546 |
MY[$^<@V9%^A]`[P7W+DE[E@BZ#WJ8=P'&L/_D+86$FW],^N3H.C7?-HA;?P$ |
7547 |
M-@,T;XA!#3$=D\Y/#BTJ0!SP?\4J7%"&*.8#9T!U$?P=5\2'TEE<D(5P8 |
7548 |
MP6GX#KQLO:R4*?(+-I=\9!F.BP2(-OP43Q$"1VRE1PT!\LU@!D_!$VI_>/K% |
7549 |
M_UCC?;Z;C%`$QX$?4.85==2(IM5?:XM2,J2O[H[NF1&G5(BL^SO>8>A2?5;^ |
7550 |
M7=N(_".<#(P@7>7;Y4('W_K7P4OP,*R;AUHF";QJSDE&)"2\$98%?!24*+)% |
7551 |
ME1MB(%"$CR/8GZ$0:JWK2H76KY`YM`ZA,VX1Y`0/+<2\5M.$P1=GCIY<VC*Q |
7552 |
MFNF@A$,>:'EKL$2\[+M!\"$9XA>1"$>0&)/$N$?P)#P*)ATW6:>;'Y.)"3]# |
7553 |
M6B?(DNC<F^#MTM)*CR"Z<:XB#@GA$3BKCFSWSC]HX?AN?^S3@/@>)P1ND3R4 |
7554 |
ME^I!LV<CV/BU&216%'+([RS!*IJQJ2X0),`1.(GDJ.*$*N@@HBE\7<XBQ#?X |
7555 |
M$(E1Q7#X`_HWA[`DE/4&$JWC7*G&TI5*KWK`$YP@'+J=@"6G_)-VP$11FSNM |
7556 |
M3"M8P9@\Y)L]/O+K89ZNM`[G'':CA\*$FW130NX3W>>W408IGU?`$A+B)IFM |
7557 |
M/BN(4<)_659WX#<[]TM[8O-G6_[U*GGA=D1"4>:)>8AL1%CU/43%'HEC=&'0 |
7558 |
M]4%;B'4X8(X;)?-P#`EQ'(6R>8,CKI^>M\ZF+_W&WCX0Y/-D_1@35:93RRCW |
7559 |
MF=\[^SA+!%^!;X'B=#J&5_ZA?.T^?(II$8;X]Z/.*4H!RA(E#[Z$;[,X/B=3 |
7560 |
M*/*1;^]9Y7.VUO#9&4&ZN4$_-H7[_R)1M#TR(.?NFC+4G\'Q[P;KQ\BBZ=XB |
7561 |
MW(#"9;]"7@'\,'X>4W=KTY.?.?/+7+&0`9.(;.]Y?!D$RFV$&?_#'+.%C,W? |
7562 |
M5Z-5)[9'FB!I(K216`OX.2P)X8K)?&"9+G\19<<755MSR2&X,"U&4A`=%M:J |
7563 |
MZ.@)>!=V<#]#PFUX)[Z_Y]0C!G#\,^=_F;D.0[HBD+JA74,[]9IFB.)RB$V< |
7564 |
M)42O<!98I17?.;J`S\?$T2$IFIJ^>FWDX.?@C+G5E`1QN/RS7GO5.ZP>QX-; |
7565 |
MX:U3*>ZZL`7_VRA>H!%])>H_V?5.DD!T\:>MD9&\L?7\Y"#9&C#C^4_YZ`@[ |
7566 |
MLL)+$LRA2%KCA)A%%L0+\)]U[#(Y\ZFIYJ@X+T1[GAQ2#Q'`6^"']B\Z#_9; |
7567 |
MNH**^[_!2.U%PZC5NWKO7"QNSR3U:JWVB/-M[A&@:'E%6E(G4<@LHD[HSO!) |
7568 |
M3N*?(@B9AUD1Y'=\<HSQL^".=\(;IQ95]9W7X_#CJ'HWE;/EP_*1Y9Y^R&T] |
7569 |
M"DNM@(E]']MD==TYL;VF]T5(W+P(0AZP6D5[*.Q8B<@Y[$/16'`';H3OJA]3 |
7570 |
MBA1-D+L(764B0G@;-\+-$Y!CFNC!M?"C\`7+LO>L^^_)7E6UG_8D3+^608VJ |
7571 |
M[&)K503IH2)X!777!4F0&`DRC^1X-]S"\9V]@R$5)7=Z]TSA(&J"'&-%2>2M |
7572 |
M3B%_Y`NK_8M?>W`5ZHJOPO?T/;IZR&D'$>))[J#ZVWR@DF#SJ(5$5&`;-=;Q |
7573 |
MU-$A1WP?2?`JZIH+]F12_6&$?`D]CY_,%79+>HN0SE1C3!KO9`5\*E'S5NNF |
7574 |
M%W,(80U^!-^*;TD^:<O[L_'U2#ND*MQOZPD[\`[.>3;*1&&.OA5TVD("G,// |
7575 |
M)N[MX<>:0&JU;3X)?`>^`>_)$9JSFSLK"?(@B^CR+0]N0]OCH$9RYM`O>2>Z |
7576 |
M6J<122K.1?$-'O)Y(V;T7!'%F+YF'$1=!<[V&K[Y@K^>1-1?P+?]56X*EV5# |
7577 |
MIHG*X`FX"=M*PT#?:5K,<8)\GFP>4F+O$`JL@P7FF;P%6/CT:8F4$(DS;YV1 |
7578 |
MY8GRJ!8[;T&?]2T4/.6>O0`BR=]!)"4PD+_[)0%CT9]P*IIP@FQV$OV\-UO) |
7579 |
M-P<%+,0QAZ;DJK2[1OQ=I@X_I'.SRK4(13+[J)QISEMO7\6.MO`OP/.[V(<. |
7580 |
M%]YLDH32;3'$F;;-AWTETQ,D8:%G_K,#-QP,#7)A3<I[5IN\'.%%]I4!%M2- |
7581 |
MG+,54#E6/X?^R1SWU=F?\N>9Y`C1YE+W7\*_['V&,Q/R0H>LJ)&`&VK%</8+ |
7582 |
MT@^U*)$EBL7GJ=KL2'I1RRQ298^U>GPP,."\N(2?KL[VLO^+%-6S:)NI_MT( |
7583 |
M*ZF6&236[^E(@P1YR*<=T50+3<^#)8$+IJYIE`H<-GUH)K)NX@5K6-'&)?PL |
7584 |
MX!9+$6AI].L@ND4.]KTNAVD8N9?@79#OZ:AOFDQ7)AT)$L^S+`IAB1R=,<*G |
7585 |
M,YL70.F&D>-_N.W;>8UE_5B%#Z;'PT&\VS9)TAQR`0UCQ9U+\!,IIU*U-]:_ |
7586 |
MIC6`D2!D3C6\,H,(SRP-YCD=5@\MQ+MA][IW3)O!^9\T.09(CD@+R`_`ZPON |
7587 |
M-I[9DP?W^]`QXP;5LQ/VTT-)T*C<08]X"\7$:52D9[0J#2V_P_W4?2?=\8]J |
7588 |
MDK#O/KP(*FT^0(?P/77P,N6X>D!\$S0Z5GZK?8,1.FFGX65TUG8Y07;Y4RE$ |
7589 |
M4^G0E4.57K$)8J?>&3*X<Q>!*_.!-K3?`+>7X,52ZE.B*R`!]<5-F1UR<3ST |
7590 |
M$2*=(?X"$N)%'LBS"6`;L6K+S_3,\$?6PBKVU\UW6I&[`HN9NF>14U5$ZR3\ |
7591 |
M5<1/,78&F;M-"LKD!H#]GXRWB1+Y#(\>[:$AV=,^KPD:&I398QOMPF!.'E^0 |
7592 |
M7#+8V\7$,)]UGC<FSEB%'\^I9)\/4W,(<PE%&_LQ\XNUS"J)?AN>@`U9)3'[ |
7593 |
M-M/4M[B2<,.4^<JO0Y0D.1%>-Y.WS#W,<H<A15IL,0&T!3_05ET7_@HJ\Z(6 |
7594 |
MU:^9Z1"C068QAI9%QCI\`?X$2>&&.4AFVX@?C^<#+\K,KPZTI-><-GB;>2-Y |
7595 |
M*;#ICT)L3YH3['<`[T?]D?]L!F:7WANHH#NMR93-D+`%GT9U+;:+2,)\9L$+ |
7596 |
MC`A+O'R_6U8CR41X\RVLJK[E*_:TX!K#<XA@I3UN1V.W/'V.06R.3BVR?/50 |
7597 |
M^6./D[R%YO<?(>N[^L!`E^<[+>)]!4%\,*%UMQ43>*_J3[X)7,8=Z=\AOD!# |
7598 |
M?>P4DJ-5&P?\O%F(+-80*X)8?>-FY#D+C^JK"(^BMG@4=8%'D.PRR;8`RJ;W |
7599 |
MF.@5I!2_:V&517N+O^U/@B_0!=WF*?CI`KF1OL\,'4.E0X*",?1I.&17IREX |
7600 |
M<"W,<TX(+"(H89'GCE9IB/H^NMVS*G_]`OXE4IEWX$.\;DH=+(0S<Q@"\-1; |
7601 |
M5JTDF]_47+$DZX[:^PA0ZRP5)K$%5+JU/`U"<M%=WJ-\7^0"\D<LVUN$G^09 |
7602 |
MDV4V6]X1.F4!SISY4'5N7.>AV4,MH0/((('OPS6%26GV;-JRUR(OFN4>K^Y3 |
7603 |
M'D'$_R%JC['NP^UP2VT\T$Q[DX.37-)<!)3#"7@S3[)DB-J%9Y`D1WBR@N(% |
7604 |
M-45-/0[)Z`U[FH`;Z<WSU,NCO?96ECP#:5L)??I.^'.%[67WAHUTR">\)&A[ |
7605 |
MT(H]-@I%(QKVPWNU*1!0J@S*>K&@)N##C\'#2`HEAL[@]NLLXT%]EREC(\!< |
7606 |
M[K#)6`>R8LTU=W_`%U82K5T//]KXR=597J&5]8_\5B=IDPYED^5\\#TQ5Y%Z |
7607 |
MT<+P5[;NEF$+-G[?2`8WZ1RK[/[WX/?AG'Z7MZ#/%S$2U;"2##+S%+QM8;D^ |
7608 |
M>E%R=77?W/\)"JMUW=XQ^!E9L*#\V0PDUM[8(L@G_);/8R%\AA:31FJJD=42 |
7609 |
MH6R"^=(G-F#S4S$76:9;TQ,@"V^!C\)#/+M=('/,ZU"?Y%Z/RQGV/$*`,KYQ |
7610 |
MA96]O[J'>2'&"WS,7)![&?ZRD^91A]!1*O'A5UND[76IG,/O^6YJ!<UI%^_- |
7611 |
MTI?1XO8_M*)RS%]7&EZL;\ⅅ0&[T.Z_T"F&+#'[L$XF:NR';?;SHY: |
7612 |
M`-CBEA;^9<\S9V_#]_3+V(*_CJ]04RP,X6D4>(2O_-N=^Y$CWAI9IO/0(2WB |
7613 |
MY\_6RA*%31Z]/?K*R/]+2Z0E#IURPHN3$B`/VCRY[`P/+HJWF)4HB]$&2[MZ |
7614 |
MZ5\NJ8KOVER/J.T>O,!5,FLA0-OJ]@;AF`A?K!?AN_`DGUS8$KZ<G]>9-#E\ |
7615 |
M%(S7PPWX?RCC8+Q/_AW]0(5?$IZU-!G"JZ_Q\4'?!K\'C^MLP0A>QK?J*GP) |
7616 |
M7,_<*/`\7R2M0VP/)I\X-/>70DP$S^H8-"`G_UBIV<U&+MF@08\GH6Y84XF$ |
7617 |
M=BB+!W1XG&X.CO,5'=9T:NP(O@K_2W%HE\ZC4E>7A3,E0186X<-HV_\!/I!2 |
7618 |
MR'OX=EZ%*MZHNNQHN6ONUHGPTA)N<E$5HS+?`T7":^`O%"9!#5#I;_!QG!Y/ |
7619 |
MS4YJ/S6K2W\2B;#&"9*=H=6!]R*//2<?#PE"J7HSX\*;3!,^L6$>/@!O@/\. |
7620 |
M7]<YA"$ZC)L\K.)9+9B9Z"Y)\K,5;?.YJ`\T=^LT+R0H[G`-_*SEN++4T2%/ |
7621 |
MP&:IV*_*ERA/]F=->!8P74!]?!BN1C)43S5JPWM0\$GL=P)C7(69FTQ+@+QS |
7622 |
M3\+?P'?F_^"C*N3NP//<%';/M.N7T-01!?F!F#K]9+\V9#XB`Q]^`OL@!@R8 |
7623 |
M.-KB\T)ZJ%V*")$&5DGG*)]+M<"'$>8;)`2QJ+><3]T*B`[A1P4WG+7_O@@_ |
7624 |
M!>^"?\O?"H'4`8JN743(?*HU>_*S4L1V)"MM!A2A(/M&,\2_*$?R61[ON[`/ |
7625 |
M7T1";#L^=[EEY,N!M!4D0H=/&O?18)YD`I659P)!DBAA80VRS)@$V7.O18?Q |
7626 |
MC^&/P(P#7L#W\;K<1&\W]$Z=_<WO+;:8-^2A02%JR[21%"\77I,F!*L-P:9. |
7627 |
M'Y($:7'3>=00&S:,]?Q*&@>>'I4?YS:X7^0Y#'\-;H8OH+A2FH!EF!]&)=]. |
7628 |
MM9D>2W?OE\Y=+^N9RM5-\%E/.>2-4V>ZWZ*:PP*?M7L27QJ_\`Z3Y2V>-T-B |
7629 |
M44`3U6"UG)R&`'GGOA7?L_\$W]0JGI4$&N,C+UGGI'-(\I*%JB#A?RIM5/@! |
7630 |
M::3G]7:)<P(K-#7/9^X6S;I4N/-*1BS+2/6LZ<-(!Q>!Y\_.&N7E0-`J_P5X |
7631 |
M##Z/`DMU>AN5_-6(A#:D3=XB'P3T=]KQ4\7(W=X5>0MF2L(A3H@C*9U6]N0F |
7632 |
M0SC_7H8H6<)LPG=4'Q/:LX*+3:/YLPE%!O!N1,`?PK>L=L^BBK^.)SOD"]%B |
7633 |
MY>T&5_)ZF4<.'XW3XWSUT'E.D$GR;YC;,$:QYM:)R-X[V_=O&.T=>F-+AXP* |
7634 |
M.S\K*&KO#7`G_$_X?[I@)5.2SR"*CFHAD!UG3_L@YAQ(_<][8P-$>H<7U&"> |
7635 |
M\Z3%0Q3I^W`.S=8$6URMG%^3?IW6X4G3L]YOABBR$JJFZUPL`N3M__-(EM]' |
7636 |
MWE"(9JF<(Q0<[1R.H))0[H3H-#GR[MM&$BSQNB9=),6)J0@12T'%G,B^UD_5 |
7637 |
MV'"?YHPLB<Z/[[`!*N!5BX%.E.PU"]]>0``WPL?1%/YC[3)2[J!="\MR%5QP |
7638 |
M:OC:CU?L+Q!>1&.!!S!6^`0=!6N-,C5%:XFTTN*"XW5Q8_/Y(R9!HO>9,<,# |
7639 |
M9XSIG;]9<-<"?`@1]X=R=$+`#I]REB5$]LXN=QSB%:\.<2]X@8?R^E81DH7: |
7640 |
MF<R*!,)(*']VKX'E)^`"SUL3%U&>HH.>NA)5H]+&9C^:F`<$3>%KX3\@&1:X |
7641 |
M[1_DCI#DQ9)\60=R!8EP+*?86L\B1Q?YH]RK5PMAQ+6>.]&D:I;>&B-_J(FH |
7642 |
M=!CR#J(.45H]R7W0::%>.PG:5:SHQ0ZB;037\&[6&Y%I\8JHA_CLKWGDIB#W |
7643 |
MKB-K=CE!SFGEML6NBE(F[.R?UKP*&[)`((?^O9PV`;-ZQ5LX:;+79*9RA$;B |
7644 |
M`!&U@W\;2(X8\BVC+%>T."<L\,I7*_B7SE7)BI90+S/&DJ>/:4M(*&>E&:;+ |
7645 |
M`15F1;6G;I_Q71FP85-%0UD`E`47Y;/6S_":QEMAR-G@TW6&_"^!/,LH>P>F |
7646 |
MGI>YF3K'"=*Q'$9W>"K=$ALR-C;0JIX`K4H`3$((]QZ*F'4(8L-CYM[]>R7Z |
7647 |
M@X1ZNOE0LO+LW<,8!1*KIF-6=2Z+I*I`Q#ROIN"C4E_4<=2.#&'89+#1D$9O |
7648 |
M@N2(N5IF?\SM"Z%.G<I)I`4I"9V`?"9SQO-\7@!_.6*RK?8&OC7G)ZI50:ZY |
7649 |
M1;:)-V=+!R>9(WG<X?%AG:-(@D6N%R)MJ3-@E8'F91I1MD?9\",3B>R:$,DQ |
7650 |
MAYY'T=I'T^C,NH:03;`8/70-X[%>MS>(]/(W=!\"\!21^3ROIU@\RD9E1GP7 |
7651 |
ME>TJKY3MOA8=N)KSEWF4'<XG7L$=1=V',?X->14L!2UT/>>F0GS1LQL;J[Z5 |
7652 |
M]9*.8&$[._=JIF56EC8MZZCU)@\4PHMXVR$4D:/+.6$5>:%;6!N709LOZ[UC |
7653 |
M\=.(O^\NX2+<.^9'(BG50\NV\M&<KCM/L"D.;(*476'[*<^K,MZHT'VK_'(@ |
7654 |
M0I5JT']VW$%14#TN;VK+T!5$RS+^9X2H7Q&497<MHAMEXFT1:B,VR2?A*X,R |
7655 |
M?DAKCPBUAXD(7U<PZ;OI<Y5=14M;L/DG@H=E?_&J[4];]E1@7U[-(?6[>A:> |
7656 |
ME@I<73,/K^<EBN<F?%/;B-)M7@8FYN(HXLJY:,@TT8D)K`='\=HZ>8W-@5J? |
7657 |
MHK84?QAX7I:)QR,Q[=GG!N.DJ]N8%8>,X5EXQCK'0^WP)B3'-)6&Q+V6D1#? |
7658 |
MM_0)@0$?ALV&'_N6+768%RN?'.U5R1-1CDA*@RW.AG+='T[(0>($$9WY(54< |
7659 |
M4N^1*#RE(S3"77H[W#SQ+'@52U(C?LMP/3RG5;70)TE*Q5/<%VH$M%%<-5M" |
7660 |
MH%Z,(&\[Z^';<2ZU_0J?I"%_[;DU3(-/T-].U(7UT[^*.SF";\,+UN]KX%T\ |
7661 |
MP:89,I+"6)*')+D5SJ&5$NGSQ[C=M9`^TBD'A"\@TRV\3]-^%>W+\Z;2_3;[ |
7662 |
MGT#=*L^-=E/+^05F4!2@^?JDV??AVQ9W$'PW[ZBMNL5P:W$LR>SQT1#NX%MF |
7663 |
M;"BF,1A11)*J/=1VK3-"/\D+5QU:C_7S%D4<;/X-D2":=#L/I9IG(DLGD^8% |
7664 |
M3YI$?UFFK.$.'VZKJ!UOQY+B1OQ)N)7V`JI&XSN-<;O-M8I!`YNS-0N]2$O/ |
7665 |
M-STGA?QAX!MRFA^>&<:9]488A^@E",NR>^L\U$LZ>LF">+?"VTH\?Q',$!IB |
7666 |
M,@A0FZP@48SRCE,^S^%,R>3FSU5WZ*DL(N=9O#.4V0/\US`:I=MA!<RT#HFG |
7667 |
MBGAN(.V5;1W`^^"6@ORE1+INTX)8@&@)3LN<E30ZEI!@?NJ*JA:;[5='E:8K |
7668 |
M6D3,3GSX/O[IT?CMSV4N".S[3;/&]1!]<D4.#XE11(YQ8<IJ/4A?VT6T=WG= |
7669 |
M-W%4<?L<FKI^P37%K=4_:A]3+Y>7>X:;K?4T'Z+F,*8Y)8"9R-(O:YT`?%$G |
7670 |
MG]69Y&P-VW?GD(/R.&MSSJ@B7X"*>XUG!RL'C>7KOI[7-&W2SJ0<5&9A"2_, |
7671 |
MP!X\JLZD="MO[4.'0_+"TE6=C'G88@`OZK-7X1TYJISQ1C,.;,)'\VC<GM?K |
7672 |
MW'AHA2W6;F<:,JAMFK-/`'&<Q2?-0H$AS2V1G1)9]3O'""'6UF![7]:#KFQ5 |
7673 |
MM;G,50EWWR9'2O7Y'6[@GD6!P&RKHS,64^77J&</<GC2MS3+#CQN6NO?,\IK |
7674 |
MBRMU$X=),D'MO*Z(8I6A1O%8SO%F<&..&YA'CEDX9NDSV+CZ")]@(3=N55<C |
7675 |
MU+^GP5NQ<+1%]UF]UA9;@CF_36[VJF82N?IX60=86&+=6J&3P;8NM<V6BTS7 |
7676 |
M1XQRLX:KT3O)\8XS7MZ\]6G$&X6LT')G@'Y58X(.[BE(@^-*W<SGJU*#+*B^ |
7677 |
MEU'^V_K,&S,!Q*1@FL,DCSP]PF;=JCMLD0TMVG;>#L]RES]WBEID(HNJ1J+2 |
7678 |
M05S&&YLY^8UF`8<EN#ESS6"?D#@-(F=C[)IMY:FG%ZKUK0A6`H^8%5%&2>'" |
7679 |
M8:S4N)Y#512I%#!$!RS*.:;'Y]&^2A>JGV02T/1C,LWO67X&G;`56W]8_`$P |
7680 |
MN+?0X)0<(B`N<=I8&EN>G32RYGG?F#)WQRE=TQP5]<Z8ENC3\JB)9=GFK^<0 |
7681 |
MY'MRI48FCJ*MXA:1(,.DNHQ=3R]IEX:A%F*!7"+57%_N=TS'"9.((UKKO.;] |
7682 |
M4CK5+^`/MO>;UHJY]Y4@!@FRH%WUJ(!#=BQRI(]OZ[?B]2D+I]E\D]D*HHOI |
7683 |
MHZ>/*_ZP1T#.\74.^>^$EO`')\ARLI7;L-HS1'(4.76Q'C=G_.'&=^*"%NLC |
7684 |
MHLE;/(G>F-Y'M_>X9B]Q2B$\;K;'M'3>!U[U=ZBXB.J`N/TWY&4ABSJ\K;MQ |
7685 |
M)!7JCF1;Z2NR57KR]F<+JID9M&HT,>_<XNO+[E[4A^*][A61W.]9^^Q!XY?A |
7686 |
M&=/>[KVEB9,BZR0AGKI!FNZ;)8F7"></<=[Q5,`DRK243U*H<6Q_M$W9T<E: |
7687 |
M-&:O.Y?E![P\FK@TWH52D-G[RL&)4R39*IT0/["\C#<Z09>DD(QU%.M^FL73 |
7688 |
M&@-%^]SPHKU`:PP/Z\$!NO.YBL1BQ2&^N,`53B.=QI\/)M5FS5H^F$'6W*UZ |
7689 |
MW_='WN_'L?3>;/*4Y[R<9^7`!#N5[D$%6/-;U!P)T_AF::86M18QO05<E*>M |
7690 |
MM:8J]V"\^_JOBFN^J%_*[#4$89AX1.M9.JR>R*D)0D$EWRBHNGHD_0P*BZDT |
7691 |
MS:B$D/M%ALD#ALVNS#<5W&-VM?A7Y6($''J?K1P#%`2)TQZG4MAEG5W7QT_J |
7692 |
MDMP"HDH!-3VRZB-L]NWE<[^RP0(GPON4'O&'>&<;*B%52-F09%RQ>F5HJ?OK |
7693 |
MG"`!K1'?G;W:GK6E5?\>QM\26+!1FL`3YL?NOZX1]A9*/395Y10,*R9>]C3! |
7694 |
M6)J!W=UQ+ELW1],DUT[>XF3Z0_TVT=[`"9D\C2)+;D>TPN`5D*K];@9Q>Q4/ |
7695 |
MIXY3SA_VN:'57GV$3'-T&L).RQ_V$2:R["';4);-8$!&HQ'4`,TA9JB%P;BB |
7696 |
M(%>DL^_:<D$@!6%./&QR)%XL_IB&+&XF@JW03UO3GNG6@[42;@+W-@J95?RQ |
7697 |
MIZ]:395Y3+N63=%V.?%'6KE[J>&'[YHIKM%>X9"4"]+*4DT*(D90?G7,^4,I |
7698 |
M=#?A9EB+/RY]_5%?#YJB4,0Q;H;P-7/.UN_6%`ER!I4RU(1"KLJ@&EFA]1N< |
7699 |
MCD93\L?LS=QR9%;MJ^8K:@51W2&I9\QK'=*:_"$)0IPB9D)@E3WHGH[-7)VJ |
7700 |
MJ5.//Z;1'Y.[?_5:;#+R(7[%DD,"/AZDCO?AZ^:<OE]+H3,0!-%W$8L`]RO> |
7701 |
M4Y4R0>"4<\1>)6#VXQ/[RQ]5K=/*:WW'`SDG<[!X!&3WOKKOH&Q#I\HQ'=++ |
7702 |
MF>!O0U]/6SB$'&)#F$D0NI3XHXH`M,;1O/LH,\8=?O@Z%UB<=T;WU198DB") |
7703 |
M+C<^=F:OYC^6\6^.I%;:&%G;DR#M8H1)JM_TO//+>"R17OJ<M;_/)[T*448+ |
7704 |
M<[#R0(HL2@D1X<5Q14AQ;`FTFQR7,#X0_I@F>EO67KDNM-L0$7*6,ZFCNFA? |
7705 |
M:;-GE/2@`0@KBZII5&P.4GE`<JC'.KIP,G5D4L1-@MBFPHM.=+R8#.G]75"K |
7706 |
ML#.CY[NFO<&Y1DG_DB#*[(UXEE49<DR6R4V.$HMKF+S3B:U9DJ`,M57;Z>M# |
7707 |
M'J]H:5X!>$%.C&#O.6S]U]H*G8$16?SGJ"*U+=)+N7<LA4X!9%V%R0@QV1A) |
7708 |
M^9VJ'+MZA*A#(K8UQ_UT90P]9?RXT7WU<@4U<(+$<KE/6C%DZV:9N',PAC7X |
7709 |
MH^K8=$JZF`3U=$43C>+N#7@Q6U7&;`.^+8_A>[X)#8$3Q.=U%YG/62[N$FW* |
7710 |
M`5SEY+E3/7I8'Y5UCN6?06L=+4;B-+95]K6+^&1LXSA\T[@-8]*X]JXT>STI |
7711 |
M=@:E)P\T'_APLS,N-J@4$=7[B\^H1X#RZR;GA"I]0V%>DH#]W^`Y6!+V[FL\ |
7712 |
MCU;K$/8M'+Z\18$%&`OL&"Q8QY,:J_-,(XZ:>='Y*"SO5Q,W,?VK*[%".$'. |
7713 |
MR.6_N<!JY($(X`0)(:"$3SPS=1>SW:.ZY)9GS0,1P<AQP35E,)F+UD1=3Z*X |
7714 |
MZWOI*J#8ED%$D4_Y-9.#M?>Y">:9<X*TN`EM(S4/(88_EE"EVV>$%5>6/6X] |
7715 |
M4[F^BS?INUY7DZ3/:W']H<Y\5<\BI`E4YF#E@=`AW&03!!D5S*%*K.IP)YT8 |
7716 |
M;U*J>>I+_/3^^KYRO>NK[UZ/!^UM@@:O*CU(\,7\NEDT9E@_Y&Z#$%FT3>.* |
7717 |
MXJF1Q4&GG,R\LBS%>F@J.UY7,4]J_J:/DYIW%.?..?RQJ6?*(_3NGVBI>VWV |
7718 |
MCJ5H*)JKWM?9),MPK;4_R12YK(.&II;19,*FF7M(,_^KVNRB_C`KI++25*^J |
7719 |
MHW$R@4)GH$(G5"T75_06F0C9*:=B;I@AX;0ABTG(E8?4XBOKATC*V@QX833S |
7720 |
MM&,K!ROI/3`1?TB"M.E`I\CE&P:A)@@KZN(J].+1DZ9BI!F*ZPNNYJYC5>LL |
7721 |
MOUV4)U!S:F)XS$II(#5R%/-!B"P8T/).FC&00ZDLDW[-=[WX<<O04L_=K&<& |
7722 |
MU-4E=?K<XBMYVI.<UJU:872P57O(-@V<(!^G'Z.JL;Q9ABH+A1UYO5/!<`A) |
7723 |
MK7>Q&AUUD5I\=A/^JB<4BZZ<X\4$A608R4&])_0RW#1)UO_]Q.7`5%Z67CPO |
7724 |
M3_2-]%@@08'E'LF_<WU?N;FRKB99DTA4G3O;S^#Q193,4K`]7H;G&?W*LA'" |
7725 |
M!QI&>&V0!/'T.CMYE0_-<M6GG)#)2`]*-9/=]9!G[Y_,YZYC8-1W.06ZYM4J |
7726 |
M41Q"],XB>$J/?^`KVTLV8`K07J"Z1=8;H=KE]!S^$&4GJQZAJ?_=5`"67]/$ |
7727 |
M)ZDB.O,ZVLYDYX3/P'S!E`1@\:OU!^JLAE$(DB!$8S:[_%M/$VD53CC'>KFH |
7728 |
MF-QVF<PIG-0GJ6NL4YZ1R.IG>^#R%5L;Z$FYU!_?$]/S]T^RV)T%J=S>;.EB |
7729 |
M:GD@QYP:O&/KW.((5AUY/IDI,*F=UJ1]5BS00YO*SRPBPY[_)70%+7)`LC&: |
7730 |
M*'YE@R2(GRC.2"OIL;8>`&YV)L/OE10EJ_\6S\)%J[JRVB9SXU,>3PKUK;D> |
7731 |
MV2)^??@>/&HEG=.$;MW?>'PP"ZGY(5D=,M2NXI(S<<V.;37UOR<+A#21^I/I |
7732 |
M&$:`EB2(7?LJ>_T(OJHKT,MS-I+2DAEU07%(K&LY@5LRVY0&>*.32CS(C7K5 |
7733 |
M(\UDME5=/LA>3PK;)'R"C>`&+W->?G0K1!?P"7O!5*`QW9@%=S#0?HC:$3MU |
7734 |
M%R/M@<Q9I3.8J.KGH&<:3[D.LINH;(%N@]CT<<4-OE5U09V3E+1_!O7&]TTI |
7735 |
M,N#"ZOSTNL/T2W1=5[=FV1,F>&B*]QV#(U9'QSGK@C93NW7$2#,?H8HKA2@* |
7736 |
M^">]P#U-_7;;&/)E6P=(C+/6S!CYW8<+TUI6-B@=HOM@6Q*QE8UXM;.D7F_J |
7737 |
M-WIR\[6I?T*XE21$4GK)E2)"B&U6[O,5OLY;CP\_)*F[HES9BR\\.$U!\`QH |
7738 |
M*\MTRMQVJ`46JQ1M]H=.ELFT*%9H:^(9E!\AFAN$6+*/)9DK[5[$:#>QQ;BW |
7739 |
MX&7\F%K9V7LB.49PX5\TRMNM`QD.L:LY&+1?+<NIB-_CPC&0+)JJ;"-[[[1> |
7740 |
M-I4^0R#M)'O<)H]G+0\">6$=+B`G[/*2.N43,ECB%-V$G?NGB%D5@8IE)>KV |
7741 |
MAAR)#KK[<(,3X]HM]$"JU'7Z]_3<)7C!<(-[7;YH8A!S3A@@'ZS#J_A$4>Z] |
7742 |
MLMQ!$Q@GO6C[H:D"),4@"1([2EW`4'=G&5:MCBH/)$L$4C@BW5P<51$"I+$: |
7743 |
M2(*X/%9,"+84*Q-'6TB./5VO)1]2Q(U12/63833^E_M$#`:2("$UG5=,K->! |
7744 |
M@:O0*32/UBLT"ZN1/IW_[6DR&-W@OD3Y]QQ(;F"$V(0QY+WYV3Y@JVS`?$SC |
7745 |
M)*3#O?[O%<>'9D^0?Q;?:;K!.S:VUMNYSGJ`I"*MNNCAH-9Y15<*7@C`+7U4 |
7746 |
MY0D-I#C:X2090QGQ;4@2&D*/CN+$B\+PH>G7GFD`)G0B<TC5*CM#/7:X"H<= |
7747 |
MRVM<0)!)?9+\ZXQN"'A]'8/*8C*PE(L^]I`5M3W/C55('<^[AC\ZI1%$-*1Q |
7748 |
M/*3]R1)X9@.:($1.$5$=-9Z&J<;+]@PSAF,]]Z^^L!+<X%L1I2)"F!9BM)`V |
7749 |
M80-[W4->&-6^&Z5,''E]%$MQ%!XD(138'*(?CFI/G*T'<I4C'(9`:XD;6ON( |
7750 |
MX896:FIQE@BVT]KGV?B,#.O.S/HR_<"<.9J0D$8)VB9Q;Y+LV_T%PR$)]<UC |
7751 |
MJ]`,A4-:H0O]$D&YU&]FOC+E',@`GZVDLW=0^UA9CPOXV>;AC%%FR?$B+P<) |
7752 |
M$=,A]&F$!!F?CO_+15'1S2&3R"N6LS-C(*?P%&/#)+FJ-/WPQ8@1IK&O35;W |
7753 |
MSMDV!7D&_*^'"IJ9JW'F7OE:(A%)4^,D3L90N%['I08&)](3$3$<96$%>M"V |
7754 |
M:G'J,C*PO<3B!G?=LFR[ZGL/!=(Z_M_%%V20,X>QB!Q)3,=(OS%Z5]%Z>'', |
7755 |
MU5F!HT.$61OST+IXBM?QV:5V1*>EM4NU)B%RY,WH!@IY0LF0G&5(LO46MKBY |
7756 |
M.@*7T$5^#LN%8K-.DPAU0W]G4+?RSJ4(M@Z16XFV4GPXGD'AG(QZECERAAL\ |
7757 |
MO4IR%J4V9X1(@&WN/?=XZEFQIVU?S5PWRN;Q]1.:1/VP7HFP2QLR5I8=,CD$ |
7758 |
M:QDCMPV+J%+3@6@AA@PW.&]O"HWB?\1'&5B`>QOMI&%EX$._+I1GIL5QE(RB |
7759 |
MO7NO`!*X8`BBBY@-=9FA93[_.HT<EDHZT.*$N6XM'5$20?0\+"7Z-L)*$F'N |
7760 |
M<:$`RYBOS'7KDT$<TR09__-+P&/8']`$24;B\3T+14=3Z%);;3DOP@0RC+A+ |
7761 |
MGTMYYNN("R-&B-T4SQ5_,T-5>,_)B/8_<\EY#/L#AB`AY<$3.V+;A2+;BO*, |
7762 |
M)65[Y8>\V0#P-MI)/5Y2=I@S-)0%WAKE<=4>*NAX%-WS&B&$`DV0UC@,:5LA |
7763 |
M18FC(O6=%4I"6XRY7F!6T@8*I?1RX$7<D+#2'B&/)(5);VO\4#G5KFC0!(E" |
7764 |
M,F`$L37`=JJ`7Y[9*K:&2(`=),.0BZ>R==G=UC@O#,@(]4+4"C_Y&B:$`LM# |
7765 |
M^WA[>!TK>K*F$T9/Z&6&LZ,>+-K%0MKK7#"-2RTC>T^2$'3;T'4+D^&9BS3& |
7766 |
M<#F!4[;ASJ/Q(2!+>HZ4#S?Q$@&NQR#TPBXG2)BVA7)^B2TVQD#1R6"\0,-/ |
7767 |
M77'FZJS`"2>U-B"(EW9A27H2$3R-Z#^!9G#"*VFM(QEZ.6H^GSN8H4H0^7&< |
7768 |
M#*/^;UZQANIL(578Y,X6O2KI+%FZ0]A3L=8M9<-#XK\88_#[Z+O%)/SU/R-$ |
7769 |
M(\A4FOE8$!Z!Y4-\4F/9J+.])V'4"I,HB<@X[/W&:\Q0G2WDK-;]#WRR2E=6 |
7770 |
M?;O*IONMMA,YQA!'-/'&3UZR8PR7$Q0LG_ZQ(#J\T)UO^X2D+*PDAICP,89X |
7771 |
M\$\ODS&&RPD*U[/_-'DIF.]VYF">!(PJ-$$5C;Y>%"=(D#_S&/8+_C^^X^-Q |
7772 |
M+Q!Z;`````!)14Y$KD)@@E!+`P0*```````A<F0Q%'=GH$X"``!.`@``+0`5 |
7773 |
M`&UO>F%P<',O9&]W;FQO861S+V1O=VYL;V%D0VQE86YU<$1I<V%B;&5D+G!N |
7774 |
M9U54"0`#+H"*051YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````0```` |
7775 |
M$`@&````'_/_80````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,! |
7776 |
M`)J<&`````=T24U%!]0(#102,UMJ?>P```';241!5'C:M9)/2--Q&,8_O_U+ |
7777 |
MV]#^[`>Q11'4P=$PAFW.:A)TJ"#*`@4)I!A2V=O%BY!T"JIC?"&Z!%%T<!06 |
7778 |
M%C,B,!(C9U'T9YNU40C+6&41.5SNMR[;(5O0HI[+>WH^+\_SOO`/=0K0JS69 |
7779 |
MRN9S9TXDVO?LC%8+*0.&:VH72T?;+M4=/ABM!F`NS;>YW.S<YI:@Q!X^4/%D |
7780 |
M2B]"NAH`F4QFDZE8&/4U>J7&41=/3+YZ^C=%=G;MV]%U>'_;1*D+KV:BTV35 |
7781 |
M;E3HQ@.@+234+C(?.="^^]O$R[3XF@/*O=(E5IM%]?4>;P#Z`"\P#61_BE#6 |
7782 |
M?*$8V["Q^4(H%%!-0;]HFJ;&1NY)X_IUMYZ]F-2!5,GL`;+F"C&\_I;`5%/0 |
7783 |
M+X`:NC8H/>$.M6QIO9BM]G@\D?P*.$O+BZ:%;HO-M&KKMI!\R'Y4`Y>NR,G^ |
7784 |
MHVIFYHL8UB7*N=PA@`]PE6*L^`50F#>ZTZ_?J+O18>D)=ZAW[[/B:5BK1N^/ |
7785 |
MB%-WJM8M`0%L0"\PK56(H`,7KT?.1]:L=LOS1%HE4U-27V=70S?OR*/'X_US |
7786 |
M.6-[_KLQ"'S2?G-.W6&WG#TFAVZ[W"X9CSU1D8&K>XTBE_-YXS,P!LS^T5\` |
7787 |
MK<!I_I=^`,)_H;>BZ:-R`````$E%3D2N0F""4$L#!`H``````"%R9#'.\8E= |
7788 |
MQ`0``,0$```B`!4`;6]Z87!P<R]D;W=N;&]A9',O9&]W;FQO861)8V]N+G!N |
7789 |
M9U54"0`#+H"*051YR$%5>`0`Z`-D`(E03D<-"AH*````#4E(1%(````@```` |
7790 |
M(`@&````<WIZ]`````9B2T=$`/\`_P#_H+VGDP````EP2%ES```+$P``"Q,! |
7791 |
M`)J<&`````=T24U%!]0($1(B.`V\!@(```11241!5'C:Q9=/:!Q5',<_;V9V |
7792 |
MW&3_V#1)8U+:@Q`*`7M2R,V+>&AZ\2AZU8L@"+EY%KP)'O4HXD6TT!JIIH+8 |
7793 |
M@`H)3;I-2HPU04TA)FEV^W:[SLZ\GX>\V<[NSFXVIN*#8?Z\]WN_[_N^[^_W |
7794 |
M?@/':QE`^K@R_4[H'<.Y`IX"N/[;-78J]WD4UOAI?8&:K@**1M#@\[>N8\>% |
7795 |
M%LP3!>`!A%&`XV;(.GET0U,]T`#4'M23\ZHG#2`&@:-<0FD0283C.5W']=,< |
7796 |
M_D7SG$/<(L))FW,28Z74B0%X?=*N+-@F8!'I!2`Y5GIIP>L#8".MPV!P<;O9 |
7797 |
M[::$;WA<L<1A=PJX_^XW;_/<^1=P<0FC!H$)4$KQ]<H5'OY9:1K%D5#[:Y<? |
7798 |
M/[X',`X<`'^G,=%+`P)$EH$+[[W\(=_=F^-16,-1+J[*I(IP<"B;='[!VD?= |
7799 |
MMN$H$8:`!AX`4Q]=^HQO?[E&/7I$0QKIW*__$3N?LG:Z&_W]`!`@`"IV7Z<^ |
7800 |
M>>4*\QM?$9H&&97IY7S7V@6]1-A/&':`^/+-.59^_QD=ZA,Y/TJ$!3M)U_;J |
7801 |
MIY<P$6S]<#=VWJL5@8?]YH<"(+N[NQ)%D81A*&$82A`$HK66[>UM65Y>%D"F |
7802 |
MWWA6`%E:6I*MK2W9W]\7K;54JU716DNE4I&YN;DX%Q3Z8:``5'9V=A@9&4%$ |
7803 |
MFFJ/GX,@H%PNL[>WQ\6+%[EUZQ9#0T,4BT4RF4PS08D(QAA$A)LW;S(S,]/! |
7804 |
MA$ISOKV]S?CX>--A$@"`,88@"-!:H[5F8&"`7"Z'[_LD,V4\-@:QL+#`Y<N7 |
7805 |
M6T"TI[)WYN?G7YJ8F,#W_1;G[6>`Z[KXOL_@X""Y7(YL-HOG>;BNB^NZ>)Z' |
7806 |
MYWED,AE\W\?W?28G)\EFL]RX<>,\\$5:*GY_>GJ:>KU.N5Q&S"&%1N)5&$QD |
7807 |
MB$20R'Z/(HREVA@Y'&-,8N6'-L881L^<(9_/`[P&O'YD&%KB$?MDQ'X3`65U |
7808 |
MU7(@R6%?\A2R-J)4*J,]`:RL+),O%%A97J%8+%*Z?9M30T.42B5.GQZF5+K# |
7809 |
MR.@HI3LEQL;&6%U=Y9GQ<=96USA[]BQWU]8X=^Y<`MLQ`$AS_;0)ZS$C$B^Q |
7810 |
MPT:ZS]<#@-/!OW12VG*ZJY:]:MXE91-3&%!)ITY[*2V2LH[VB$B^MSS'*U:) |
7811 |
MO@X&'!(*\FP.V-=:4Z_7$2-$)K*JEE:UBR`MZD^HWK1%B;478Q@>'N;JU:O, |
7812 |
MSLX"Y(&:ERBW\S&T@X.#?@I"'*5PG$X9I>4.QW$H%`K)OD$@\"PW#N`#WU>K |
7813 |
MU1<W-S<[%)O,BLD^UW6;[X[C=/0W&HWF\\;&!HN+BP"_VBUWXD045SYS8V-C |
7814 |
M.>!Y_KNV#GP05TFQ!ER[!</`T_8]LI5,7.$*8!)QH!+WEC^GQ+<H,8]*5%DU |
7815 |
MH`S4DFG,!;+V4G9@U.7$;`]$U5;"/RZ>#^=(]HF=.P`B=421(EW^\=I7G]8G |
7816 |
M_?X?_J_M'Y%DOQH><[:"`````$E%3D2N0F""4$L#!!0````(`%)SE3'1^KS\ |
7817 |
M`00``)83```?`!4`;6]Z87!P<R]D;W=N;&]A9',O9&]W;FQO861S+F-S<U54 |
7818 |
M"0`#['C(051YR$%5>`0`Z`-D`.U76V_;-A1^EG_%F8T"21;YDL49IJ`O258L |
7819 |
M#\4>FFT/01]HZ5@B0I$"2<5.@OWW'5*2+<E.T%VZKFN!.);(<_L^G@L]2M1* |
7820 |
M"L62MTRR%#4\#8*")0F7:;A0UJH\@N^+]?G@]\%@<@17M33\RG$%1Y/!J-'W |
7821 |
M"T\#@#!7C^&"2V<B@E*+@V&<:95C-)G0%BL*,S%W7$X:3;-]&J]SL;$8WI/) |
7822 |
MX>$YV<R93KF,8'92K*M_9_7#>>.Q-*C#I8I+$X%4.F?B?!`LE$Y0DQY)&R5X |
7823 |
M`C>91KQZES'R0@)5L%XJU"SA3ON[&NZX#>U:2M0G'F!-3P13)Q@L6'R7:E7* |
7824 |
M)(R54.3-&WW#421D!V"?I1E9ZC':',"ERG,F$[A@VA,<5^_NU7G?=?<;<>W` |
7825 |
M="/KTT3>1K%`)G\I+DHZ5^FM-<1.GV&2I\0ENBW!C0V-?1`8\IP"_9-'>^E< |
7826 |
ME\6XD*D[4A>-*BQ7TGR*:'ZN7+>CZ7(S7OCOD,=*'D,OU/9F)V[*')C3QWV[ |
7827 |
M(_B&YX72EDF[Q\=MP@U;"$Q>#ZTN<?C>F_IG:+ZJ37<`;O+H'19,,ZMT*_A0 |
7828 |
MX-)&+E_VE_JUQ=RX?&P\=4O!ZP49\C0C*Z=]\,'D:!#DY*61..M+M!.[74$? |
7829 |
M!K]5%,9J7F`%'#06R"Q,879*_I9\C522`:'85T>=LMWB_!9:D`D(M1!NP/U) |
7830 |
MB)E!6"'H4H(J+:@E:+4RL.(V`YLAX#T7<"?*)$4XX#*F)TQ@@4*M#AV;.[UV |
7831 |
M7O64JB-95;1[UP@1_>DT`=T:RRR^'DZ'[X^AOQC.]JV>NL4=`_-]HF<^)?^V |
7832 |
MNWT3I6I)F^4*9[76SY39R4=+E=1U?)2VJ1*7&!VX*#"VG0)M=_NZ/J62V$WV |
7833 |
MW=3ZB;`(AZ<KV-^]P75/HDZ$%\U0R(56J49C<K35"&\Z4E//SQ3T,9`=@3F1 |
7834 |
MP%R'<RFY&5:72EK:N%#K[5Q7!8NY?:`6_:H[([?"MTP2,[;7U[K:LVE?_^:A |
7835 |
MP.MN/PUUG0'39B`++N^\@"6BP@1CI7W8U"0ET43;?CC4;"U$6;V6VKCW0G&* |
7836 |
M4?L$VKD76,VDH;:(-:/>5Y2I>Q)CL>7WZ!W7IC4F+2D_G:KAW+*;4*Z[6A>4 |
7837 |
M#5Y8,*K[2#!J\''&A6\G2Z(M-/R1\NB'^:OF0K+A:5[1U``/7L(=M&!WD^CY |
7838 |
M^U'+O3N2KMKN8`BV%XR=4'?TJ85R)E0*'K>+O@YP-)U.NYY>#,-MTNBGW&@F |
7839 |
MTX^MIAJ&A`:DS2I.#U22'((I"Z?O.O1;]3AYLUS#`]KQ>+Q[8Z4J*`1E:[3D |
7840 |
MNCF8XP^0:8^%[>-?U_QW['U*+_\]WY]+1)]WG/_'Z+\<3%\ZTJ_XO[+R,1X' |
7841 |
M3_M^)S2_\/X`4$L#!!0````(`$%R9#$=?;A%\0```.D!```?`!4`;6]Z87!P |
7842 |
M<R]D;W=N;&]A9',O9&]W;FQO861S+GAM;%54"0`#:8"*051YR$%5>`0`Z`-D |
7843 |
M`'6004_$(!"%[_T5!,^">VUH-_'FV63OM(PM*1T:P);UUSN:%MWH<IK)\+YY |
7844 |
M;]0YSXZM$*+UV/"3>.+GMJI49]%8'"*SIN'&;^B\-J^3Q>=]P"M6'B$P-GQ, |
7845 |
M::FEW+9-S/[#.J>%#X/,G?OSN<[O[JY@@NNL8X(@!YU@`EBH3",$$#8*C^XJ |
7846 |
M2/X/L[O/_#)!N1@[DMT$>UPM;)Q!3H"&DO1C\#,0AA!Z6:+L/=(HR4,02R5H |
7847 |
M]\,MI_UVIG9-N_M4Y+E>.Y_9FX-,I^:L=SK&'Q<7$K\@0N!MR:;ZT3H3`&7A |
7848 |
MR`.T[Y&_%BFYQZ.F*DVDY)]02P,$%`````@`(7)D,5NGG`E^````AP```"<` |
7849 |
M%0!M;WIA<'!S+V1O=VYL;V%D<R]B86-K9W)O=6YD+7-T<FEP92YP;F=55`D` |
7850 |
M`RZ`BD%4><A!57@$`.@#9`#K#/!SY^62XF)@8.#U]'`)`M(*0%S!R`PD5V8F |
7851 |
MZ0(IM@"?$-=W[][]__]?X_*J64`1S@*/R&(&!FYA$&9DF#5'`BC(7N+IZ\I^ |
7852 |
MA4-(C$N6+[+Z+E!(Q-/%,:3B5O(/?A:>Q2R!1S04I!@80D7>"R;V;P>9S.#I |
7853 |
MZN>RSBFA"0!02P,$"@``````(7)D,?ONZ14?`@``'P(``"4`%0!M;WIA<'!S |
7854 |
M+V1O=VYL;V%D<R]D;W=N;&]A9$]P=&EO;G,N<&YG550)``,N@(I!5'G(055X |
7855 |
M!`#H`V0`B5!.1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+ |
7856 |
M1T0`_P#_`/^@O:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@- |
7857 |
M%`L3^P3T/````:Q)1$%4>-JMD4](TW$8QC]&-`@#H6F7AI=0=FD;P6B'+AV2 |
7858 |
M@E!&MPX>)2BPO'A0`A&$<`</%H($@K)#$0P]61</E8HTG>W72J?X!YQ..@5S |
7859 |
M&3Y=?N^0N19&[_']?M[G?=[O`_^YK@`"KE5A(BX3J?2H^=D950$B@!*)Q*[+ |
7860 |
M5"SE\SD3.5?^ELED3BRX#,CC\92@XL&!04W6#(5"`V[OA#NE%A<.[;%0*&AM |
7861 |
MQ3'PCLL\!A0,!@<K6:X%M)Q*'FYM;FA];?5HY=N7H_&Q40'R^7QQO]\O5^2/ |
7862 |
M==[=N&Y.4DN+:FMK+8G\2Z3[P+O;+;?LG`O`F;\-&:QP."Q`LQ\_Z.&##NM? |
7863 |
MK#K<V3>LI)-5SU!<@!J;`P!RTFD]&^@WD89*3M0[.*JDDU5W;%Q/1R;5V!S0 |
7864 |
M\9CW\WMZTOG(1+PV>!90;&2"FS>N,S'UGCKO)>9FIMGXNF3,-E#CK6]0^O,R |
7865 |
MQ9^_&'[^(N^>\QU`22>KWJ&X^E].ZVY[EVVI+7/IL72BT:B`'G/P^LW;^7N[ |
7866 |
MN1P[GQ:8'(OAWOFC3*`(U%P-!.VTTC_<!UX=2Z#I-%G_!C,4S`4AH</7```` |
7867 |
M`$E%3D2N0F""4$L#!!0````(`"%R9#'U@(5/5P,``$(*```C`!4`;6]Z87!P |
7868 |
M<R]D;W=N;&]A9',O9&]W;FQO861S+F-S<RYO;&155`D``RZ`BD%4><A!57@$ |
7869 |
M`.@#9`#%5DUOTS`8/J>_PG1"@FEIT[$.2+7+-B%V0!P87*8=G/A=:LVQ+=O9 |
7870 |
M.A#_G==.TB9I-X$8XM`V\?OUO%^/N\?4O12*LD]4T@(,^3&*-&6,RR+.E'.J |
7871 |
M3,E;O5J,?HY&TWURWFB3;QSNR?YTM-?:AX,?(T+B4GV/,RZ]BY141KP:YTNC |
7872 |
M2DBG4Q11K>W4WG(Y;2WMYFFR*L7:8WR'+L>O%^BSI*;@,B6S0[VJOXZ;AT4; |
7873 |
ML;)@XAN55S8E4IF2BL4HRI1A8-`.M:T2G)'+I0$X_[*D&`45:K!!*S:4<6_] |
7874 |
MIO:*V68TORV,JB1+ZR`?.`CV>SEM;&/K#-<PT;(8OR8&-%"W\+7#DDZZY;N0 |
7875 |
M$LQA*&+3@I0D'DS4<98KH4P7#K:&D%V>9NAIT+6VR6>J+*EDY)2:T,2\?O>O |
7876 |
MP^C#<J/'O5P`E5_U:87S(8-%VZ#DD8[P`GL"7B2X=5B1!P$Q+Q','X[(F0]= |
7877 |
MZ;J8-1JE'5?2_@\TG^O0733]VDRR\!OS7,D#,H#:%?9PXP22.7[\KV_!"UYJ |
7878 |
M91R5;D>,*\8MS02PD[$S%8RO@ZOG*?-YX[J7X'I6OH"FACIE.N!C`3<N]?.R |
7879 |
MFS(N')36SUP;J3]PP2Y:`B^6Z.5HF'Q48H16>KPEG>ZCKZ=WI:&$-;=Y9F#4 |
7880 |
M+F&+&A`C^8<,0!(R.\+@-WP%+-2JM;RRCCHX&2?CZP,R/(QGNTZ/_.&6@_DN |
7881 |
MU>,P('\=;M<],7L7NM<>.Z779]V^S0Z'C7NV.A>>PT&ZSKQNL(.`W/76I,NK |
7882 |
MS99():$_5-OS]!'S$#X7E`Z/+F%5+ZDVJC!@;0FNOE7;Y6Y7XY'=."`87$") |
7883 |
M65!/%GY7UMQ^IJ1#P:E:;:Y:I6G.W0.RW219].Z4C?85E9B?&W!$WWPV-+]\ |
7884 |
MT'#1IZ;8-"U,FB0F@LO;H.`P\9A!KDR`C7PC<<]0''BV*5,FJOJU,M:_:\41 |
7885 |
MH@D3L'55.T.E18:!AO9"K'2I[E"-YH[?00C<N#;-%M5:@>B#N.N7X:#BHF<" |
7886 |
M6QJ4!<U`I((B5^9++CP913=8M=CR[S@,[^<OV_\(G2K/O6F;>/14WE$G[?Y0 |
7887 |
M/?Z7I1-^EB0O!_2WQ;'1YJ[>@HH='5P=C%.A"A+2]N`;?'M)TM=\&H47XB6* |
7888 |
MH^%]_@)02P,$%`````@`(7)D,8.\)]NG````40,``!\`%0!M;WIA<'!S+V1O |
7889 |
M=VYL;V%D<R]V:65W1F%D97(N<&YG550)``,N@(I!5'G(055X!`#H`V0`ZPSP |
7890 |
M<^?EDN)B8&#@]?1P"0+2*2#,P08D"QY-#0%2+.F.OHX,#.M/F+-VO03R)4M< |
7891 |
M(TJ"\]-*RA.+4AD<4_*34A4\<Q/34X-2$U,J"T^FVC`P,#WV='$,J;B5E)*0 |
7892 |
M\"!5@K69C8%%X'*&`(\>@X##8D&C$PP.#+UN)Q28&1A-I!2;>1A8+F2T\!B- |
7893 |
M2HY*#A5)-H8C]QFN^G;?7PG,$PR>KGXNZYP2F@!02P,$%`````@`(7)D,;F. |
7894 |
M"S]J`0``-08``"8`%0!M;WIA<'!S+V1O=VYL;V%D<R]D;W=N;&]A9%-E;&5C |
7895 |
M=&5D+G!N9U54"0`#+H"*051YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D" |
7896 |
MTBE`?(*##4C*V;@<!%(LZ8Z^C@P,ZT^8LW:]!/(E2UPC2H+STTK*$XM2&1Q3 |
7897 |
M\I-2%3QS$]-3@U(34RH+3Z;:,#"P'O=T<0RIN)6T9O[NR]V)(CQ2#`(..@YG |
7898 |
M3*1XFMD96`0TG"3<FQ,_,#0P2/5.<&1C8,HP<6*39.!8<)%#,H5!H<%-.64" |
7899 |
M(U`R-Y77"*AS\43#$PP.#+W/(&JW\*$HPFY"=&0S#P/+A8P4'K`)EA"U:YVQ |
7900 |
M60,U84N0/%BT^(0",P.CB90BQ(06B`F"1F`WN&&5_`MU@Q'$>!F(VFLDF(!= |
7901 |
MTK\6XL`>B/'M/%B"`\W2;UB]N-8>(NJ%S\!MF_"$#O88PB[9[H?B)#1/R4)$ |
7902 |
M_0)0(A<ML%RO@?7,(B/")IJB!$\[2@J`:3TAA4<KU,%1*;S(<2,62;(+20FT |
7903 |
M4<E1R<$E:<`P<RW+TH;SB_X!RWT&3U<_EW5."4T`4$L#!`H``````"%R9#$` |
7904 |
M```````````````2`!4`;6]Z87!P<R]X<&EN<W1A;&PO550)``,N@(I!"F7- |
7905 |
M055X!`#H`V0`4$L#!`H``````"%R9#&INLD:1`<``$0'```J`!4`;6]Z87!P |
7906 |
M<R]X<&EN<W1A;&PO>'!I;G-T86QL271E;4=E;F5R:6,N<&YG550)``,N@(I! |
7907 |
M5'G(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```"`````@"`8```!S>GKT |
7908 |
M````!&=!34$``-;8U$]8,@```!ET15AT4V]F='=A<F4`061O8F4@26UA9V52 |
7909 |
M96%D>7')93P```;6241!5'C:8OS__S_#0`*``&)B&&``$$`#[@"``&(AI,![ |
7910 |
MLX/SF[\?YS[Z]$SVW_]_C%]_?F/\^NL;Q/6,3`S\G+S__C/\9Q#F%'@OSBZ8 |
7911 |
M=#3HPB92'``00(R$TH#P?*%_1K(&C#9RE@PL3"P,HEQB#`*<_`Q___YE^/[G |
7912 |
M!\.--S<8?OS]SG#AQ26&LP_/__^:]IVD4`4((((A\.O/+T8K>4L&51$5AEN? |
7913 |
M;C)<^W*9X?>GGPQ__OQA^/7O%P,',Q>#AI`&P]>_7QE.W3_#2&H4``000=>J |
7914 |
M<LE.FW%TUK_&W:T,ZGR:#%PL7'`Y'E9>!BT!;8999^8QK#J[]K\4J^`L4AT` |
7915 |
M$$",Q&9#_16J:[\P_`YJ=F]@./+B`,.?OW\83$0L&28=G\3P^=.'6P_C7ZJ3 |
7916 |
MDP@!`HCH^.)AX[X#2GR,_QD90&[^!R28&1D97G]YQ\#'SG.`W%P`$$`H(<`X |
7917 |
MA1%G<$CPBS$TN-<PO/K^@N')Y\<,OX'Q+\0N`L83#DUA>/WI+8:>_SG_":8) |
7918 |
M@`#"2(0[DC<S@+P(S')@7_[[_Y?A+Y#]X\]WAMM?;C$\__84F.G^@<6>?WO& |
7919 |
M\.OO#X9*QU(&-D96AK___C+\`6*0GM*M-42%`$``83C@S]_?#*?>G@`[X.__ |
7920 |
M/V!#0?@WD/T'Z.N_?_\Q_`&R(?)_&9X!'?'H\T-PCO@-3!<@_2[2'D1'`4`` |
7921 |
M8:2!W_]^,XAP"#-H"^@RZ`H8,`BR"8$M__L/A"&60GP)#"&HXT#B__^!^/_` |
7922 |
MXB`'(@/M90H-[#-8_W//XOBKOD1*&UD.((`P0N#GOY\,)Q^<9=AR=0<#.PL[ |
7923 |
M0YY=%H,`NP##RZ\OP"D?Y$"017]`#@):]!\4$@Q_P-$%BAH0_@-4`P-:RZ4X |
7924 |
M[W]^4V>O;LUP__5]IG=?WFX!"BO"Y`$""",$UEW?P'#X]J'ORJRB29),O!W] |
7925 |
M!R8Q</[C9F!C8H=;_OO_;[#E$(?\A=/@T``ZZ-N?KPR\G-P,VLOENK[]_7.< |
7926 |
MEYN'45%`GD%16('AZ^]?,LCV`0002B[@F\O[CXV)Y;\JIZ3$\8AKKT%BZLMD |
7927 |
MK_'P"&EZZW@PW/MX!VSY/W!B^P,.D;]`1_WZ!XFB/U`LR"[((,$ER;#Z_&8& |
7928 |
M#G9V!A]--X8K;R\R*/-J,*P%5A6_,__"<P=``*%$P:?DSQ@APLG,W'_[];U9 |
7929 |
MW,S<X!"`)4R8Y;___X7F%(@X*`V\^O82F#M^,409!X.CYL*;LPQ??GUAX&#A |
7930 |
M`#H>-:<#!!#!NN#O_Y_KOO[X-@N4-4&Y`!'<O\'!_1<IZ,$0FFU?`AWQ_,LS |
7931 |
M8/J`)%!0XF5E9@8["!D`!!!!!W"R<7`Q`DN\GZ`L",OGP&`&^1QB.3#8_T/2 |
7932 |
M`=PA0/Y_B',8_D/+%$@.^X-A/D``$73`SS]_?#G9.8!!^!F<U^$)#^H`B.5_ |
7933 |
MX67#/V@T\+,),,CR*@`+M7\,U]]=`U;=WQB^_?X*;$.@%HX``83B`)$%`G^` |
7934 |
M>9I13TA9\V#`^5L@L1___V9*"8@SO/GQ"MP&@%L.BO/_D+S_!YHCP.4"4(Z7 |
7935 |
ME8]!$%B6;+ZX`Y@(V1BLE<T8'GRZS_`9F`Z8F%`=`!!`*`YX^^4CLZN./<.E |
7936 |
M1Y<O.VPV2@8%XY./[W4"#"T97@#+`58F-F`A)0"D61G8@=D2%,1??WUE^/[W |
7937 |
M&\/K;Z\8/O[]"':(.+<4PZXK^QGXF9DZ?_WZ[7[T[BD#D"->?GP-U,N,$@\` |
7938 |
M`801!>HBJL`B]3?;R7OG%@,CDL%-VX[ARY^/P'*`#5@3,C$<NGV<X>.WSPR? |
7939 |
MOW\%J^?FX`3F>2X&'6E-!D8V1F!(O68`UI<,WW[^9/B:\[]"82%7X_-OW[Z^ |
7940 |
M^/2<\=F'-\`&#-,39/L``@@CV_WZ^Y.!EXN#(<S$CR'"-(#A%^,/<,K]_OL7 |
7941 |
MPX[+^_[___7]C"@C6Q.HI@-A$4:6!L:?/T\=NG'B_Q]@6N,'E@'()>&#^&_? |
7942 |
MA9G9&L_?O\'PYM.[?YS_&'V0[0,(((SJ.,XJC.'.1U#T`XM6<'/S/X,BGS+# |
7943 |
M^O/;&.1XN!-O1KU;@"VQ*B_ACW_R]=L"%RUK<,K??ND04=4Q0`!AUH;`E`ZJ |
7944 |
MT1@@3@`;]@.8@D&U(#L;VQ-<!K&SL3SY]QFD]@<#"S,+T;4A0`!AUH9`RV'% |
7945 |
MZE]HJG[^]3F#N8H!P]WW'W89;U`HQFBNK9,M>O#ARVY]!35@@^45`RF]+8`` |
7946 |
MPA("?QCD@/D7Y'MP*/R'AP6#CHPJX[D'UWN``KW(>JZ]>-:K(:?((,(M3'*3 |
7947 |
M#""`,!RP_NQ.O!K86)@QO`?,V_^O/+C+>(7A+LD.``@@QH'NG`($T(#W#0$" |
7948 |
M:,`=`!!@`'?6R;L0-T)=`````$E%3D2N0F""4$L#!!0````(`"%R9#%\=5G8 |
7949 |
M;@$``$X#```F`!4`;6]Z87!P<R]X<&EN<W1A;&PO>'!I;G-T86QL0V]N9FER |
7950 |
M;2YC<W-55`D``RZ`BD%4><A!57@$`.@#9`"-4LM.PS`0O.<K3'N!0YH^+XFX |
7951 |
M4!"J5'$H0AP0!S=V':OV;N2X2@#Q[SA/4@JHBJS8F=F9<79'2F9VBP7Y\`CQ |
7952 |
M-;[[-$TY-11B'I(&C+Q/SQM*R_7:?:BHFAHA(223<5J0N5OMIN8R216*)8+E |
7953 |
M8&\:^90R)D&$9-'0)&26*E4*GQ!(J;>H5^2P+1K&C;]%:U$[7X<PM^>,#)?C |
7954 |
M\HFZ5!VI]1GEU(`3KDQV+I2?<RD2&SI5Q6I*D39I5B[-*D:HR+ED-@G);%J' |
7955 |
M2)JR]JQIX?<HY$+J%(VE8%NT7W$"5V%-3>BR'@5YH)J?G?I1"G#_HZ-G]DVY |
7956 |
M)DJ'R_A/_DM6O:YW5&7\M:J.4:$)R?#N=K*<SJ,?>H!&4Q6=&:J\P0;S?G^[ |
7957 |
M_LQ^O?/39OW[-`("_QZ%WIG&>V'P`,QODC]+8)C_U]ARLNL+^5)3X=0/1ET. |
7958 |
MXL2@YF$0.&]GG0797D+0201'8O<<N)'Q*`4QN*K,O@!02P,$"@``````07)D |
7959 |
M,0````````````````\`%0!M;WIA<'!S+W-H87)E9"]55`D``VF`BD$*9<U! |
7960 |
M57@$`.@#9`!02P,$%`````@`(7)D,;F."S]J`0``-08``!\`%0!M;WIA<'!S |
7961 |
M+W-H87)E9"]I=&5M4V5L96-T960N<&YG550)``,N@(I!5'G(055X!`#H`V0` |
7962 |
MZPSP<^?EDN)B8&#@]?1P"0+2*4!\@H,-2,K9N!P$4BSICKZ.#`SK3YBS=KT$ |
7963 |
M\B5+7"-*@O/32LH3BU(9'%/RDU(5/',3TU.#4A-3*@M/IMHP,+`>]W1Q#*FX |
7964 |
ME;1F_N[+W8DB/%(,`@XZ#F=,I'B:V1E8!#2<)-R;$S\P-#!(]4YP9&-@RC!Q |
7965 |
M8I-DX%APD4,RA4&AP4TY90(C4#(WE=<(J'/Q1,,3#`X,O<\@:K?PH2C";D)T |
7966 |
M9#,/`\N%C!0>L`F6$+5KG;%9`S5A2Y`\6+3XA`(S`Z.)E"+$A!:("8)&8#>X |
7967 |
M897\"W6#$<1X&8C::R28@%W2OQ;BP!Z(\>T\6((#S=)O6+VXUAXBZH7/P&V; |
7968 |
M\(0.]AC"+MGNA^(D-$_)0D3]`E`B%RVP7*^!]<PB(\(FFJ($3SM*"H!I/2&% |
7969 |
M1RO4P5$IO,AQ(Q9)L@M)";11R5')P25IP#!S+<O2AO.+_@'+?09/5S^7=4X) |
7970 |
M30!02P,$%`````@`07)D,:.:/Y2Z````_P```!L`%0!M;WIA<'!S+W-H87)E |
7971 |
M9"]R:6-H=FEE=RYC<W-55`D``VF`BD%4><A!57@$`.@#9`!-CK%.0S$,1?=\ |
7972 |
MA=4)*KT&!I9T![$RP.PF)L_JBQTY/(I`_7>2@@2+=:5[Y7/\%AY(R#C"$\?Y |
7973 |
MF>D$6^_<^PA?#J"@998`MS?UX^?<_89];Z>BGQ/62F@HD0(LW-X.^M>MC6QZ |
7974 |
MU;BV`*)6<!G5`>,QFZZ2IJB+6H`7EJ2GO3L[M^LR\^`_2A>[2/S;<\'<.:LM |
7975 |
M5YLXFQ8*WG=2EVB^'5E\F]$H^?'A'A/9KDK>7`]LQ918<H"+_1G`?0-02P,$ |
7976 |
M%`````@`07)D,9<4-<@,`0``/0(``!L`%0!M;WIA<'!S+W-H87)E9"]R:6-H |
7977 |
M=FEE=RYX;6Q55`D``VF`BD%4><A!57@$`.@#9`!UD4UNQ"`,A?<Y!:)[:+<1 |
7978 |
MR4C==3TG(,0=4`A$F$E(3U^W2M*?F6&%9=[G]XPZE=&S&1*Z&!K^(I[YJ:TJ |
7979 |
MU;G0NW!!YOJ&)V?L[&`Y#RZ\;@U>L>,0(F##;<Y3+>6R+&*,'\Y[+6*ZR-+Y |
7980 |
MF\=UN?J'@@'646.&)"\ZPP`PT35;2"`<BAC\*DA^A]D]9GZ9H%R,[<G^!.,, |
7981 |
M2H;04PAC4QR!"*36TX32Q$"M+-'J!+W<)8)F/AWZ]MN,2H#QF@Q@NYE3F%</ |
7982 |
M:`$RPV3NX)%V>L,VB%QN3/D/JC9#QPC:13UWL;!W#X6^D#/C->)/NK<0(/'V |
7983 |
MV)<RUOD^09`'0^Z0?>BO(4IN*Z.B.@IR4WT"4$L#!!0````(`"%R9#$>!=<K |
7984 |
MIP```%$#```<`!4`;6]Z87!P<R]S:&%R960O:71E;49A9&5R+G!N9U54"0`# |
7985 |
M+H"*051YR$%5>`0`Z`-D`.L,\'/GY9+B8F!@X/7T<`D"TBD@S,$&)`L>30T! |
7986 |
M4BSICKZ.#`SK3YBS=KT$\B5+7"-*@O/32LH3BU(9'%/RDU(5/',3TU.#4A-3 |
7987 |
M*@M/IMHP,#`]]G1Q#*FXE?3G____:6V!!AD,#@R&O6P''S`Q,)I(*3;S,+!< |
7988 |
MR&CA,6(0<%@L:'0"*-OK=D*!>51R5'*(2"8PM,FS5#RY:1H*S!,,GJY^+NN< |
7989 |
M$IH`4$L#!!0````(`"%R9#&#O"?;IP```%$#```<`!4`;6]Z87!P<R]S:&%R |
7990 |
M960O=FEE=T9A9&5R+G!N9U54"0`#+H"*051YR$%5>`0`Z`-D`.L,\'/GY9+B |
7991 |
M8F!@X/7T<`D"TBD@S,$&)`L>30T!4BSICKZ.#`SK3YBS=KT$\B5+7"-*@O/3 |
7992 |
M2LH3BU(9'%/RDU(5/',3TU.#4A-3*@M/IMHP,#`]]G1Q#*FXE922D/`@58*U |
7993 |
MF8V!1>!RA@"/'H.`PV)!HQ,,#@R];B<4F!D83:04FWD86"YDM/`8C4J.2@X5 |
7994 |
M23:&(_<9KOIVWU\)S!,,GJY^+NN<$IH`4$L#!`H``````"%R9#$````````` |
7995 |
M```````/`!4`;6]Z87!P<R]U<&1A=&4O550)``,N@(I!"F7-055X!`#H`V0` |
7996 |
M4$L#!!0````(`"%R9#&@6O)6;````'<````:`!4`;6]Z87!P<R]U<&1A=&4O |
7997 |
M=V%R;FEN9RYG:6955`D``RZ`BD%4><A!57@$`.@#9`!S]W2SL$P49!!@6,3" |
7998 |
MT``"#$#P_S\0_6>``<6?+(P,#"P,.B`.2"T#LXW'KCO[%.W$VT0G7YU]=1OS |
7999 |
MM%PF\XE.DO/"L\SB5ZTSD.`HY&VS?OO50?!A,B,'@ZU@88++NRD'5GQ06QTF |
8000 |
MRLE@#0!02P,$%`````@`(7)D,99T'I5E#0``D0T``!D`%0!M;WIA<'!S+W5P |
8001 |
M9&%T92]I8V]N,S(N<&YG550)``,N@(I!5'G(055X!`#H`V0`%9=I6%-7M\=/ |
8002 |
M!@[381YRCB#!@H@5R'25P2&)"E9+!2>$BA*0P5H54+2*2'*(!)0@J*A!T,37 |
8003 |
M*K90P:E:11*,(&`D>''`JR6$&0420"2!).?F_;#W>O:7]=]KK__S>]8^%;UQ |
8004 |
MG9W-/!L``.S6_[!VLSEZ_W=9@>;]4';V5W,@IK%_8@-`;4NPQ>D1\QG)"H_- |
8005 |
MVI*>FO5;XL$4@)V<GI3BO7Y_8EK*YI3$Y&.9K2DKS,E\UJ]E;SWZ?TG),ILN |
8006 |
M&(:OP[#H$0R;3*@5C9X!W%EP'2BQMJ44./LX%"BX?G[N-[E8+N.$<<(P=$G\ |
8007 |
M$'NJSQ&@:BP43!U,@")9#),G\2"%WD,`<,_S=NJ8SM,)E\LK%@K8[)"RN/6K |
8008 |
M2^(BRB[LC*E$?XH7H>7GKZ@U0[40UF#D<++UJ/KC6)K4E'#\2+FZ?2X%DF*! |
8009 |
MN,<F-P(.<&0I6CQC_$`!%T-XODLZ]JX$(Y9==(U`ON5CAV^LALL6_@[GZ\N1 |
8010 |
M#UUP;#@1"=F6@H00CR&BV%@X-]?0+&OZ)FY<6U(1IZK<UL;6-"Q?-!>EVDZ! |
8011 |
M&S"]<=:9(%=BCSS-&I%4D.SAHUS!;?@#[PFMAJ#+><(5\;9(?UPJ=JGW/*9\ |
8012 |
MKM!J^J($JEHF(P,S-LFTG^?+,95T`>YYVS.9;BI8KE0RX?$5NN:,S\U,092T |
8013 |
MFZ9H8?Z9>:SOQ3]%1:[!PT69'KT'`1;0N$:VI=BGOO5"U=BW':9TTM5?AZC: |
8014 |
M>R?IU+MX/G&XF8DA_W,#0>;E="%"D1?#4__],]DM;SOA%0S"<K%$W=3L2GGM |
8015 |
M0S&\JAYK]/ZJ1OC])4JH79@.OUG;0!O6%U7G5Q?EG\B='>AN(C%O&\-M;7E` |
8016 |
M7B@OL$E8_6;#U9W;T8H/ZI;EJY;^LG@7F!8(@HM-7.C()!..N3'!^.'$(V5I |
8017 |
M@Y$LWTYP`=U7!0F842JZ(7?NK%I9$`5Q$1.-NL&&83!.%*$#+Q>!&S?M`L-_ |
8018 |
ML0>](D!PXR&7C>LVL6N9Z;NX[[</NJ\Z@7W9+R(`^$*G41L_\(/=M;PGAT.1 |
8019 |
MMXB)RJ!6#],S6EOH5M:'Z#F8H1@=>[T3'"Q)A\^-5],4P>UI/1<OI7)FIR^I |
8020 |
ML0HE!(W*LA2M;5K2GI:$93&"A)($.G5T1:-,V[N0_YURB\!TD@29V`D(?-03 |
8021 |
M]@I\/#T1VOG@B?IPR0FO!M.T9W(P"T#7\/+/LI\5\1=LF<287@>"4L%V33H, |
8022 |
M>^U,TV7/N,NE53.PB6MHT0Z\W2$(5?X.CWL\81A2^\!F>^K>1[&(Z1XA,"TQ |
8023 |
M53>E(<O%8B;:@)NGMQ0=9G)3==JHPL2WF4'@+\U14,3>(407[A;ZO`GQI>S$ |
8024 |
M,H9Z_]6DL8X0B(Y=.%D9Y?*?KR[>]F]LF1C"*)S+1CNH36/N*'Y"I8(P&&,8 |
8025 |
MB+,B??]^`2:4PJMH='J.?K)83;%TD*NDK"+4W31G<=]5Y,4:R4<++$5_ZF'8 |
8026 |
M-1DQV?Y(&_U']JKGY=%B=OPX0F!8!LL[YYBK#C"G$QDM>WD`?KFW*B;$)U;< |
8027 |
M.47JT$D_54(*<0/^I:=W,G@S@V.OPS04@O^$8=9POG%,;B'@:0K@7&G]RXRX |
8028 |
M+E@4@5JTF\4-):AZVI+3(<TO(^\;95D:"04"6<EVJ%[30`^YM8)PVIC*R5&V |
8029 |
MKCJNJ7[`VB;&X0O#PRMWABG/+1%/3-@V2_,,D$(6D@8,[B]%A1+728S<$2>$ |
8030 |
M]GT:A0Z&54+.J7]#JOM9B,G3XC3AGI<<TT!0%#K1;A>P%+WV+&,$)/!+@8Z9 |
8031 |
M20B2$5NU8P[\1LP66K"YEK?!_`2HO?.<TG\A118T^;6SMLH,'<\;KY#!=FUH |
8032 |
M+XGJ1,,%)A%[,5E("AC*LQ[&^TE"2,$$A@.%7UCO*E^<ZR.0!$J1,X88'+B4 |
8033 |
MZ=M22W"9YE>9=3[)M/.')1396LLWA$A'"%)VTS/P+__S6$*!(@VR:+5!*3.4 |
8034 |
M3I-]7#JEYTNDE00K[YOW@KD9W3DO\8H83]9[$P=8US@C9KU$FYA4WU@TL]7/ |
8035 |
M6R9;X-TB:U(V9F@&W01S6(K9KNC`6TIT/=!W9?ZM&?DZCBO`QSPZ<&+4_IAE |
8036 |
M/[]W[`M%H&&*X%PK@ET_(4GB$U)>_N'I*[T\SL2PP1&]K\5O!DZB\.5WLSM< |
8037 |
MMV95]1Q;(27YKV1M<@K?L;?N8URDP'?J3?:1VU=_+#S?E7J]*?RV"W6S&];; |
8038 |
MUWIM^-DKKT*X+A*7K92%496+5AYB1A<^>W<3.22@\3Z6SMD^_FO8HN24\.*^ |
8039 |
M+<6ENTN:I7=FB8Y%:$N4VR[)+%.%ZB\77$!'Y"0!IA!"S`9CZJ/,L>".W63> |
8040 |
M)EE;]+2R4NWRD,@/"*[K<@/\@D")K0B^UH38ABQ!3]CC)6OUSO!"AW&:J-J0 |
8041 |
MVK%EMDGV[1*R>=1@D43C_&PTS9D9BI7_UT+"`0^5]`D3-A724!M?,"+Z$P&A |
8042 |
M=!MV'\40D8Z76F1%QQ?%QPE("I`%?7\9S;06^M65L`XD&FQI<-E>Z0F+1?%U |
8043 |
M/J)0V'4A1BT3-21R#%9?'Q.CQTC>%PE^Q;NEJPQ)NIGYWCQ10^[L#/;Q!5?V |
8044 |
MN<)IJPAOZ^XNX'H;L7*8J"M''EETP6N/F1@!91^5DE;\U[?I&R4+62I@R:)I |
8045 |
MU6\P/I1"$]UAXG]N!AME=_EJ$O4W`S'L)%^,_E1:Q-Z$;*725J^&7`^?%D)# |
8046 |
M03E/P/N#@2S@S@I=>P8F#Q[$5K.&[@'W>ICV$HW)E-S32PPK/%N.GIH?VT;# |
8047 |
MTJB#QU[4G=J-R!7!S9#2-,$(T3)3M"Y<N;=]EB\_;YE\M.`@%%<EIAGT=G=Q |
8048 |
M91@7=?D#<"FEV$,/5$+'=3\`UT]/D.4CM@FLZ<9U/"#IF'9.TU0BC3,9#,UM |
8049 |
M;<^(62L7W=J7FMHS-.L0=*"\2\0[Y2CJ],)V.[K,MG4$'2?ZV]]W'7ZDDHK@ |
8050 |
M[G]G&S/Z1X\+CF,I/+V7OXGD&L@B']+2,W"OJ$[9#D%?$%_>#9\ET?%@[+FK |
8051 |
MNBGL^5_**M8?%MZ\V%P:O;[!H%>MR5_'W=:U#2VVX\08'!1\R2,2Q\(ODA.3 |
8052 |
M;/G.@=QM3.QJT'CP*_T9?*!.H<8)OE6+A1!C5R&]YJB50H"A[':H3.?0AM1# |
8053 |
MNSYCL.[#.#VD&EA2(Y7IMG<2P)"Z8]_.H.JN;Q2*5Z[^L'4_8*X7Y]==5<`U |
8054 |
M?!S2Z@ILBB`2'^BXII`%S)#]&\$LF@O#/Y/.V//K07H.Z!Y6$819WO2)$51A |
8055 |
MC^#;=ZNI*XQ67__E2BCL\$FIJF=97H/-\C5/![8(-*S;_B2JS>^!/,$&7""3 |
8056 |
MJ$!&H7M'ZKLM[AN<_&\#>*NR8)-4]^*K,F^$*P&^<"\FL!+J"!_+`FJ$I=E` |
8057 |
M6:<)/1_&S_/UD*_;N$H07K(-;J]_S]$9$JSA&MF&(>8MW"RN<NG^`8P:8#VK |
8058 |
MD"R:K&"?<1AV6HD#(TXD@()#,D?+=[<L9[ASFY\.;))S!=A#U@+SX-+3-CR# |
8059 |
M8>1<8]JFOW<;KAO=8E$#(/"KE7%!]XT_=*<0E[F@\V3C5&=,[GC3=)9]%2/] |
8060 |
M?ILSF.S8DYS8X30GCTXUGKHFGW;@^U+[<_FGCS`X%:_?754SZQ:_.*KUE=<Z |
8061 |
M**#74^.4',/$G/,>@<'!D=5Q[B1ZY>S9UL?%Q8DW[)3,LV16U*DV*EU;"/21 |
8062 |
MNZP&@+"33B*8O>"958V&/4*(W8/?P59`*A/N(T$8`.742+)'*/+WM;(]YX'4 |
8063 |
MA'76H/O.;1PK7-'H%1(")Y@XMSY.#J9.C1^GL>98$PY!$68<(*_M,<P$^O3] |
8064 |
M5IT`M5>*S>AO"I:7.&"\\'&R0*K""#L4,CH>=I9*C9:72%S>`-%_+<S%4G33 |
8065 |
M@Q[RBH($N`'GXET-4@DP?@E#TL>VF"?_\`**+)$R:E9B`S^JFPLN8"9L)?Z^ |
8066 |
M9GG->M"1)6SYZZ`D<W/S/N&%!YBIZA#!11TER77?Q7EK']`H0A=?1;KBYVSW |
8067 |
M)A*^@.Z<QB9\C5;4A=&HA+=:_SMYM`+?)80*ZO)HX15TP(U$>/FKO>#$>REF |
8068 |
M'Y=3.VA\2#Z$?N,YOTP0W0!P)S]1`))6B9FDF?GYY>O%Y8VQ<-<1G77`FUS< |
8069 |
MCCU2WDCOER?<'D>=24^6/RSA(KG`!/<F5_:_9\ZB;EVSR:#[SY&RNWU8,*?] |
8070 |
M'SMAPWL%5%V;@UVNFV1//4EGDA@\Q@(YN3^&Q@)HUY=VLL^I=AF-7'V(3Z?' |
8071 |
MKF41=N&<['X@;$R5</*["'_P0DU/5@OT?3ZZW@T.C$POAT/$]X`O"R,$?V\1 |
8072 |
MI[L=X+[6C<UHMK%2TEDC\Y\FF(TG#)FUE4V*<%O#/#SNT@5S-$;VL$%/^<ZJ |
8073 |
M)CG6Q(JW/NC@3ZJ[R[==R>&?ST?+2XK5!.KAJX9677;W4_(.2OTL;G(Z94\= |
8074 |
MUISJ9+Z?\W#P073O<<GV!TTBT9BP2W0X/Y>V9\E=DTMILDFI4#QO^>K0]4OV |
8075 |
MA%BM-&(!&N9=1CQ3/Z*\L9V92_C14_`KRS#/]3\MF6?LS2/G690*A)YTZ84C |
8076 |
M.%>37"T%2\FV/BYUCY,2YUYH9]ZKS+!\`!/J:%IRLGK'K1NJUWT>'H"5=Y(G |
8077 |
MK^8B\MG;O3]WX9L"+N)X9TH<NP:'AP#R0\D65F%$G/E/!:P/W[CV]FI.WO\# |
8078 |
M4$L#!!0````(`"%R9#$LT`EO/0(``/8%```9`!4`;6]Z87!P<R]U<&1A=&4O |
8079 |
M=7!D871E+F-S<U54"0`#+H"*051YR$%5>`0`Z`-D`)U436_;,`P]U[]"2RYM |
8080 |
M`<7Y:(;!P4X!.@0(>BA0[%#LH%B,(T26#%E9G`;[[Z-DRW&:;4@'P]8'J<=' |
8081 |
MZM'Q/7G4.\7)2\&9A9+<QU'47[NMI2@M.4:$T%R_4584P`Q3*21$HF6EJQG: |
8082 |
M<F8RH1(R&A85><`W3&;1KRC:>5!A(?=`!>-<J"PA4_1Q?M/Z=4`K;3@8NM+6 |
8083 |
MZASQT,)Q#ISTYT/WG**U3M,FS&#/C$)@'V2ME:5[$-G&)H@J>>U24UD@E46J |
8084 |
ME??<"VXW"9F,:P:;YDQ8YZRB'1?R2>2%-I8I&ZS=$Q=FS]34#BW1$XLGEL-U |
8085 |
M?)WGL]YW*]A68'()_/*\_/.M*:W@5.G.FJ7;S+@;IZF6&BW?A>)Z_Q[XT>A\ |
8086 |
MR58@SYA8721D?$FCK;(3"RWM00(5.<N0R,[(VUZZ03A(XAAI(LLR+K="Q54A |
8087 |
M5&F9E*>9`_L&"HQ(!X7*>G?O(\TWD&Y1)\>.',?#1F&3>IQUU3>\9!LP!JF; |
8088 |
MH+:I=)EBG2N/RT592'8(1</#\7W3,EBM-V:X:YP^DV#LQ[.N>31#DR1I@BR4 |
8089 |
M%`I"K"=MQ5JDS`JM?*_VL49VMV*&[IH&/D8W.2HO:'/<2*1V+#N>K_4XQYNW |
8090 |
M7WO#W@]W]"S1,TUW"O9?5]LD"94%52)]7ZLVV4:O'H8:R-`A(092>^MN<?0Y |
8091 |
M?'!U-SOUKM\[[[R0^(7IIMNRSNJW:KUXF;@<.RF^EO`356</H3@?X_@WK-$5 |
8092 |
M6/Z'T@+^`VQ\!=C#EP#F8#W8;U!+`P0*```````A<F0QHU<`Z-T!``#=`0`` |
8093 |
M&0`5`&UO>F%P<',O=7!D871E+W5P9&%T92YP;F=55`D``RZ`BD%4><A!57@$ |
8094 |
M`.@#9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````$9T%- |
8095 |
M00``UMC43U@R````&71%6'13;V9T=V%R90!!9&]B92!);6%G95)E861Y<<EE |
8096 |
M/````6])1$%4>-IB_/__/P,E`""`6+`)JO6(3+Q]^ZT>LMC_F?\=L:D%"""L |
8097 |
M!H`T[VM?Y@#C.U5&'<#E`H```AO`F,ZX'T."B9UA\^/9#+ZRJ0SH:I!=`Q!` |
8098 |
M<!<<Z][H@&X(.PL7T"`6N-R3_]<9PLHJ4%P#$$!P`YB9V!AV/5N&:@`S-\/> |
8099 |
M%VO@?&XA#@PO``00"\+)K`Q>,O%@-K(F9,#!RHDA!A!`<`.,"UT.F.IH,81Z |
8100 |
MVSEPL/!@-P#H)5AX`-5>.I5[-1\@@!B1TP%(8E)U"4X#>(6YX>S(O-(#H,`$ |
8101 |
M""`63%MX@)@;JP&_/T)H/A&$!0`!A,4`;@9<+N`3XL40`P@@C'0`TBPF)(FA |
8102 |
M\..G3PP<##P,#ND!*-$($$!P%SR>>0\<UU__?60HF%=Z8,?)/2@&[.A;ZP`R |
8103 |
M`#TA`000(ATPL#+<_'D%HABH&5D1R(6@1,7.@!DV``$$-T`J7?8`OESGF.>) |
8104 |
M51X@@!@IS<X``08`P4AE,T#S7:L`````245.1*Y"8()02P,$"@``````(7)D |
8105 |
M,<V3)QW0!0``T`4``"$`%0!M;WIA<'!S+W5P9&%T92]E>'1E;G-I;VYA;&5R |
8106 |
M="YP;F=55`D``RZ`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12```` |
8107 |
M,````!`(!@```%"N_+$````&8DM'1`#_`/\`_Z"]IY,````)<$A9<P``"Q,` |
8108 |
M``L3`0":G!@````'=$E-10?4"!<2&A5ZE[E0```%74E$051XVMV6?4Q5=1C' |
8109 |
M/^?<>[DO<`&YQ*LL%2%-S*!$\26F,450Q&;DG)DNW332HG^<VM:T?\H_,J=; |
8110 |
M:[I:<Y8Q,=TLC5E#\`5%)PH.,Y:FT17DPN7R<M_..;_^X(!(]ZI_MK[;L_/; |
8111 |
M[_R>9\_[\\!_#VN!DT`G(/3O2?W^J?`*L$EG'DF;]']/@A78`K0"*G`=6`<8 |
8112 |
MG\#W(G!QU^0QHK4D4_Q5FBG:ECTG[BU-%Y?GC!7KDR(%<%%_-PPIA/)G#ARL |
8113 |
M)"DYF:RI4W'U>&ELO(JSK8T/*]8#Y`.U891(!D[($CF%<]*9FY/$T>IF&EIZ |
8114 |
M`(X#;P*]890_?67A>$>"R4#0%P3`[PTB!-ABS&BJH*6CC^+&3A=0`#0"&$8) |
8115 |
MJCAPL')FT:)"4E)2""HJ`WX%R1J#L,8198^A^<HY#W`JA!)QP*])\5'3JCXK |
8116 |
M8LL*!WD9?LKF.8BS&[EPPS,IJ(AI0)4>F9$XWK0D/2,QTDR_:P"A"31%Z-Z5 |
8117 |
M"'@5`CZ%N`@C"V+-ML,=`SG``0!YE*#W\N<7(,DRD4:-?;MW83+*F&29&+N- |
8118 |
M@J*E`,O#>/^KZ$ASUK'="\C/=.$3T52W)&(T&BE?ELS656G($HN`[:-S_J., |
8119 |
MV-QXBXG>]EYD61HF29:0)'224!1!>E0$;R=8<X=J8K0!**J&UQ]D[Q?[R9TU |
8120 |
MEZ9KU_CQA^](B3,S,24>(#6$\LN`)3O*\\@>VP7([*GJ8,F[5>PZ]"<FH\P[ |
8121 |
MRY)9.L<AZ?7QT@C>LK79R7B<O?A4C:Z@@EM1Z0XJ=`7487('5)!`"6J4QID! |
8122 |
MR@A56'^[^HBVF2E>O@I5$QPY?`A'K!V'W8)7DD)YW@#LS'X^55ZWT`J:!PPV |
8123 |
MW)[!5'>Z`@@AB+08^'C=L]1>ZXEP>90=P&*=?WJ4U8@/B>Z`PLLU?X2M\K9U |
8124 |
M)?3_WDR$3P.8'BH"F^OKZ[G;[L+YP$VWIX_BDM>P6,P$_$%.59\$V#.*YU5@ |
8125 |
MR@<K,X@8JD\M0-:X"`!R,J.0Y4'#)Z18>*LP`6#AB&[B4/TJ0@A4;?#"9K.% |
8126 |
M),%@/S0,5JXCE`'7MF]<0<TOIVF]?8<VYWW.GZU%4:#JZ#&V56P$.#J*Y_5G |
8127 |
MQEBE)7G1>K<%A,*";".SLJ*9EQWS,%2RQ)I%B9A-LG$H!0"7IFH((1#B\7U6 |
8128 |
MZ/+[?2J`*U0*U0+Y>W>\?^9$Y:?$*G=`<6&(FL2JBIVAVB[`K'FY:5@ES[#^ |
8129 |
M`-T#-LI73$/1^AYY/#'52MX4.S6-/0N!;4##@VY?H<5D(%;1N+^Q5'>$!$*@ |
8130 |
M:0*!0&C@O76#@8$@KD%+&P@S7&H!"@H*,,6\0$YG+7=_._DXQ]@G/QL)0GED |
8131 |
MO!P\=9?/OVUBZ\H4MJT>]_"/+#%EO(V:QIZAR\KO6[L+-TQ+Q.]3\-YJ'I8A |
8132 |
MQ$/EAR+D]2O4!32`RE!S8`A=G9T=B^(XR]ES=1RI?L#EJS<W`Y="O%WMZ?,E |
8133 |
M+9X92Z35P%"=]_</D.(P,6.RG8PT&P"J)FBY,\"^HT[N=P7O`?N`QCJWOZ@L |
8134 |
MP9)J,\JH00TA!A4&AL^:!EUN+TU>A4\ZO)>`\G`I`2#ZW;<Q6^QT.1NH/W.8 |
8135 |
MDC7?A'M?"E1&6673&_/C*<Z+94*"A=AH$U:K$;]7I=WMYW:[G^-U7?Q4[Z:[ |
8136 |
M3]&`#<#^D9/X_.Q41VJ,A>Z._H?*(T`(^KP*5]Q>*IS>1R9Q.&R:/7-JJ%TH |
8137 |
M'+*`+P%GB!UJ)+F`@T!>N%UH:YI=7,A-%C?ST\3UW"3Q\SB[V)=H%45VTU/M |
8138 |
M0O_:B_3SX_:?8428I"A%%3.$1JJ`^"'Y$K@D":?1*#4&@J+]*;;1,KW/.W2C |
8139 |
M&_2<_YK_&_X!'7A!0=WWXDD`````245.1*Y"8()02P,$"@``````?7.5,0`` |
8140 |
M`````````````!,`%0!M;WIA<'!S+V5X=&5N<VEO;G,O550)``,^><A!"F7- |
8141 |
M055X!`#H`V0`4$L#!`H``````"%R9#'>BV,$S@$``,X!```P`!4`;6]Z87!P |
8142 |
M<R]E>'1E;G-I;VYS+V5X=&5N<VEO;D]P=&EO;G,M9&ES86)L960N<&YG550) |
8143 |
M``,N@(I!5'G(055X!`#H`V0`B5!.1PT*&@H````-24A$4@```!`````0"`8` |
8144 |
M```?\_]A````!'-"250("`@(?`ADB````85)1$%4>)R=DKU+0F$4QA\:"J*6 |
8145 |
M/ERZX)+]`PW1V!H$01!82Q^V!!'.1@=<@LJA#[TUY&"E@]JB($*3FSCX)P0N |
8146 |
M\H(XN04]+>\QN^(->I<#[SG/<W_W?0Y$!`#PW^J]7`1`$5GV$:V*"&T=:K+5 |
8147 |
M:M&:K(X2QV(Q8TV&"`"`O5Y/3<8]?;JN2R^!`X#Q>+P_]%8LZM"2BEW7O;"F |
8148 |
M/V)[V&ZW/[59*!38Z7248-V:1@$PE4I=#Q&+R)2:I--/[':[7X\/J:]FLTD` |
8149 |
M3"02.<=Q:$U&IC!IO_BA)+>W-\QFLWV3D:GXY-P!\)[)9/1WI@&,_;4'.LQ0 |
8150 |
M*$01X=75)4NEDM[/^A%P<^>(QAB&(U&*"`,+08@(D\DD:[6:F@0&2?KB\/XQ |
8151 |
MC3'</CAEO5YG8"%(.^2("%]?GEFI5-1D;I"`A\=1&F.XM7?"1J/!E;4-S?L7 |
8152 |
MX?W]'<OELIK,]/=`L3WB*<^#36@ZN5R.`,Z4(!^.1%FM5@?%\S[I*,&Y$NR* |
8153 |
M2!X_:[KD(QZJWP+19)N.D^$V`````$E%3D2N0F""4$L#!`H``````"%R9#'$ |
8154 |
M`F6T50@``%4(```C`!4`;6]Z87!P<R]E>'1E;G-I;VYS+W1H96UE1V5N97)I |
8155 |
M8RYP;F=55`D``RZ`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12```` |
8156 |
M(````"`(!@```'-Z>O0````$9T%-00``UMC43U@R````&71%6'13;V9T=V%R |
8157 |
M90!!9&]B92!);6%G95)E861Y<<EE/```!^=)1$%4>-IB_/__/\-``H``8F(8 |
8158 |
M8``00`/N`(``&G`'``00U1SP>'F&[<,-W3_:C?A.DZ(/(("HXH!$.TD]+@GY |
8159 |
M`Y<VSF1__?ZS%"EZ`0*(8@>8*S"QI41X'&1Z<H9IZ^:[#*Q:ZJ?7K5P<O6KI |
8160 |
M`G9B]`,$$".YV7#+NN4F'S^\K_IX?9=;JK\Y]^;.6H9MEYD8=+*J&-C9N1E> |
8161 |
MOWK)P,#$])>/7^BQD)A4;UQ<W!1LY@`$$,D.6+]R4?[S9T]+?OW\(</'Q<80 |
8162 |
M9LS%\'I'/\/$.4\8S#/2&"+K9\#5?OG^@^'&C1L,1P\?9/CW]^\Y87$9[[BH |
8163 |
ML!?(Y@$$$-$.6+-\7NW3QX\+!00$!2WMG!@4E=483L_-8]#A?L=P8,U:A@WG |
8164 |
M6!D^.JQDB(HR97!R@"0#-F8&!J`;&7[^86#8N>\@P\53AU]*RBIII\9'O869 |
8165 |
M"Q!`+(0LWK!J<?2SIX]Z^/D%)4*C$AFD9.3`XIMGUC)X&JHQ/%A:S;#WY'^& |
8166 |
M1V+.#/>N,C$PK7G`8&LGQ?!K^VJ&#\NG,K`IJ3.(U?<Q>#K;,_QA8!6_?N'X |
8167 |
M0:!V'9CY``&$,Q%N7KM,>-'LR7M>O7R^V-TG6"(Z*8OA_H//#"Z.E0RN=BD, |
8168 |
M-LJ\#*_WS&6X>O<WPU=V#H8'3&%@??^``?KG'P/#;Z#E#&<.,OQ:-8OA65DZ |
8169 |
M6,[9SHKAU^\_VI-F+PF%V0,00%A#8/.Z98YW;]W8J&]LSFOOX@%,2\Q@\?K: |
8170 |
M)0R'#UYF6%C!P<#QX0[#VZ=W&?:=_L>@$!+/8/A3%6QY4*`"P^^_#`R@F&6$ |
8171 |
MFO?SV1.&)Y\8&&3Y&1A4=<T8[EV_4`847@V2`P@@%BQ!'O?P_MU944F9[&+B |
8172 |
MDAB.TY%[P1`:DL[P?%DEP]5[_QA8A'@9HJH:&-($Q2$^!UK^&TC_"\UF8/H/ |
8173 |
M"9&O0=D,7S\S,$CR`!V@JL9PX<1^-9AY``'$@N[SA_?OS4G.*F+EX>7#L#PA |
8174 |
MP99!Z=,KAA\7=S'\^OJ-8??IOPPV-84,/&B6@^A?3J$,O^U#$6+`A/CI)P.# |
8175 |
MB+`PPX\?/[AA9@($$#P-;-^TFN?>G5OKPV(2P99OWK25P=W5!XS7K=W``,XK |
8176 |
M;P\R6-C;,'PXMXOAR,4_#(*JD@RFX7F8ED/I?>]6,Y3><V"HO._`</CC:H;O |
8177 |
M0$>P`M/+WS]_F&'V`@00/`0^O'LW0UE%@U]2&I+*ITR>SG#XT%&X[ZTL31DT |
8178 |
M.3\R?#^YF>'-^]\,1V_^8PA</(.!DU<(J^4@O.GM5(8K7P^"]?\%^B#Z7RC# |
8179 |
MWU\_&!B96/["S`4(('@(O'WSVD5;WPAKC@`EJ(WS>QD,K:T8/E\YS+#FX"\& |
8180 |
MW8A`!AUK3YR6@\20BQ@0FP68*E^]?<_`S,[Q#28.$$#P$/CZ];.PA*0T7$-Z |
8181 |
M1@I<8TQL!(/XDRT,?ZY_`Z;ZSPS_),08;/*Z@;YBQFDYB';ESP;['&2&AT`! |
8182 |
MN%"Z?O,&,-0$;\+L`0@@N`.8F9C__O[]FX43R@\,#F#P#PP`&[!D5C>#BYL[ |
8183 |
MPXU9K0PG'OQG<)\]BT%07`&OY2#:F"N409<]!&@&(X,T+P/#]]]`!UP\Q2`D |
8184 |
M(MT%LQ<@@.!1P,/']^S)H_L07X,*E'^0>`,E,#L'=X9/"MX,LW>\9M#-*� |
8185 |
MLO1D^/CY$\-3H/I7KYZC6"[P?S6#+I,]@\Y_.P;^WTL9?OWYR\#,^)]!"IBI |
8186 |
M]A\[P\#$P'B[+C=F-<Q>@`""AP`P^!L.[]\]GY.+FTE!20V<?[\#,^^KTQ,8 |
8187 |
MF#Z>8>B8]9%!-R&+P2`TG6'-W!Z&SY\^_&9EY_H"3-&LBCIF/,JFG@P?/GQB |
8188 |
M$/[=S_"/]3@##[`RE@6:_OA'.(.*$`/#DU<?&$[L6?=31EG''SE]`0002F6T |
8189 |
M#EC3/7W\J/+/WS_B:AHZ#.+?3S+\^GF#X>^+70P;YOQA,(S/9WC,)/Q#7%H^ |
8190 |
M+BD>XHN-&S?*7KAV<QL+EY".I(X]@P%'+(,D]TD&+F!<?F9Q9GC%N9OASY_? |
8191 |
M#"L63/O#RR]4TI@?-Q'9`0`!A%(0!86#)2=N6+O"?-FLKN4-Q1&*%X]M9N`" |
8192 |
M!N_S]_\9]+D$&-@8.&_\_?5]WX(%"YS9V=E!6/C/KS_\?YA^,@`#F^$E2RJ# |
8193 |
M"#"U_>049OC-T<SP]?U'AG7+Y_[A$Q#%L!P$``((9W4,;.F<7+ILCMG6954, |
8194 |
M'Y^]97APGI$A<OE9AJ,'=__]^/K%"SY>_G>___[E_O#AG82,FCZ7IGTDPW\6 |
8195 |
M#G"Z$>1@8)`")KK39\XR'-^S]J>$O$9^0U[<3&SV``00SNHX,\Q=[]RE<PS7 |
8196 |
M[[YEN'OV+X.2GB;#RZ>/&81E-)F_?OLI_8N!09I?3(I!TS&,04!*`YQ8^8'Q |
8197 |
M+@HL9$&)>>F:[0S?OGV^*ZVDXUN;'74=EST``80U!!84>Y[^Q\YM<NO296`E |
8198 |
M\N/_%R;6>_]ES87US>T%S!V\&9AYQ1E^_F>!%#9`S,$*M!SH:V`V8CAV8`?# |
8199 |
MN]?/WPJ)RTYL+$AJ)M3>``@@%BQ![\?,ROZ?F87M"0LK^RM@H;'J[=/;4U,2 |
8200 |
MFTP?WKN]^_6+I\SBP,PK+2$-SJI/@98^>/*8X?JE,PR?@8U$00G9:9/;ZVN( |
8201 |
M;>(!!!!);<(I<Y=XO'[U8L+W+Y\DOWS]P@?2RL'-_YZ=D^<)EX#HK+I<[`U/ |
8202 |
M?``@@!@'NG,*$$`#WC4#"*`!=P!`@`$`=.!->:C)AY``````245.1*Y"8()0 |
8203 |
M2P,$%`````@`(7)D,<\7*\+`W```D=T``"H`%0!M;WIA<'!S+V5X=&5N<VEO |
8204 |
M;G,O=FEE=U=A=&5R;6%R:U1H96UE<RYP;F=55`D``RZ`BD%4><A!57@$`.@# |
8205 |
M9`"T_%.0)DW;-0R?;=L^>]JV;7/:MNUI3-NV;=NV;4[;MON[[N?=__?^B*K* |
8206 |
MK(B*C*HC5QYKK8S*#%>4ET"`Q84%```(4I*BRO^58_^=>]"0_UVC/]X-_BO` |
8207 |
MS87DA`"`VC$.B(BS_^YQ7,0T7'[;F[FX&SJ9`H1,[(U,@5*VAN:FRJ:&)G\< |
8208 |
MQTUY`8!M$BE1(16/#://GQ^!04ILB$(`#P`:6#(/_%^5`P"=-P_/#"L.0@A` |
8209 |
M%BS$,4&/`N4%`/W$6<;^>]0#(`B(-HM38H2]!?@!<*>!A0;HNR``$-8,(?%^ |
8210 |
MRCXP`*@%:V!4@)(?%`!\S@(2Y[\&D?[_VJ"?+<V&)3YD@''MHN!&""8(!7$V |
8211 |
MN,`?WP'S6QG>?!Y=%-M%5%34S?;MZ-\J9UDV(U)N;I?;/LU>?]]=GX5B=A&9 |
8212 |
MF,5%A9J%_LW&G."V'QE^XWG<LYWUUF.FG(S@?I7H$"H]K@E#VR@IN:CR#-=- |
8213 |
MU8\$C#&OYAA%Q)K'O/@S488,H1'=84UF!9)(>R<^BNNMQO(RA9NKQ'+A4)FG |
8214 |
M<,4EMLME3$6#=#L5G,/::Y4Z)[%*_2']2'FBT9H.-)'?=]&-;;%5(D#D)(SQ |
8215 |
M^'?EL/L64U]CS9K+YLWPM+O659<.=K^5GZ5?L5V#::>KM^"J.7>E=3Q\:=9, |
8216 |
M.?GFK9HRF?LFYGAS/UR8_[E#XG4:V&Z-^U-8GGGDV,E!],%7,0TY>O6AV&WK |
8217 |
MEJO:7%UYWFR_(9`_&HES.S'I0QSZCW7RNZ/`H]`HYO(<=KU!M$5KD"X%R'Z( |
8218 |
M!7UYNMC348NH+P?WSS6+0F`%W/B+C"*!I#H<@[64-WY%Z].OO'$D2T*LO/5Q |
8219 |
M*LG9$N*N-+SRLYP.RE+T-/E=F.&*1BC+R+LR.]87U*+I_U?O`WC,FP(8X47F |
8220 |
M,TNLL2"(1DJ^?P2XU>34&2">\-#!./Y0%1^>9:6._,#V%&IY%;,T/0+`QOE1 |
8221 |
MUE@"S.8MII;0'J7;>FZWVJ]Z+INGES<OC_[>VP;;/V8.:'902/J\BOZ@W7]% |
8222 |
MN]>`OY.T;Y%:P4JQFK#S"$[G'83%,9,B(GL.;8H(Q(+_/>0I+P5<IDW"@C+! |
8223 |
MBRVRFTKSL`!?UUY_?DI/H>469EP5/R&'!<<*YI;Y(IU__+S[^^3&[1ND:YD' |
8224 |
M.S2=D5?#6K>@#9]Y?X<E1@[V&Z/LL`"Y?I67VG5PE/-4<U,-:0)_7-OCMFI) |
8225 |
M8_'<B/],N"SCZ,=&ZUS[)R+A^T0(QH;_MM*!#8:7G`B#4X2L&^_"0/K2O7U\ |
8226 |
MIG+Y"TA0!;A-600+88<4R!E/!\%$`#=_?/>Q"S.EW(W%;I'P:1WT0?WY'P\% |
8227 |
MO_VRRL+.EVN/VY((4,5F74))RS#$]6'CP9A12^-QVW];F0.<P(!H):%&&YOW |
8228 |
M*)/MFM-[?_@`(2>:=`G_0#`-?PN&VL=J(E(-4]:)44`(8NN#A&D/$;>[5(K] |
8229 |
M`G#QKK38I!;HU]8"+K-X$`<9H4.(^Z6HMXAE%LE>!/12R^(/-M#QD%05XJ23 |
8230 |
MIZP-]U=#L3^QQC2'[O;V:&H;4RX"ET1X0K$"QO(&IT"_JA[;0#`\92LW""PU |
8231 |
MZ@8KJ:UFSG;1W=2E\I<X6^2N#.N79@F,H)$/9#Y@CYV<R%#Q)<[2DO%397,2 |
8232 |
M'WIJ-%C9/#E)H%D#TC*B@9@@?[].9EH!EZD\B'Y`9`AU?DB!^OF1#Z)Y4:6X |
8233 |
M)[JA@0&P-`T'4.SC::0Q"M"BSV'96,3X3F<`S+,B6(>QR@BF,S;/(`!-]9*S |
8234 |
MF/#9X6[-Y1%@I'N_SH*=IL4H><M<&X`=-/O9@8$&R,?U:PM1W60RP[`&(1T$ |
8235 |
M<5[K%`"/:85\ZQ&B!UEC,28(,@2&'&<=BZJ2+H'T__@:8\P_;PRF#DQ$(0>& |
8236 |
MPN/\6T_Y#RY(8$179+AO3!'-V)""GN=147"=`V.1OL5V8T<S'-M@)(6JZQR_ |
8237 |
MM5,;^*E3N+GZX_[`"I9IP4"S:3<<$W:*3>_]HW,=%EN>SPV*E[YGS(N\[@_( |
8238 |
M4?U-6M<ZR91"$*B#EZ[O]`/!O_`;X%8-A/)'#@-A@2=O@&*P4_OZ>=$Q@4&= |
8239 |
M-C+L?@4SYF5USD23T^;V#?!>5E#]ZN-);7+"1E)6C>2%KT-[EK\$X>2.1W%& |
8240 |
MK:>H]S8KB23F,^KW<XBYU65-$C[!=H45*GZK2$&VSK#GIM,\4E%I5X<`L:1[ |
8241 |
M-2;S#+"H#`EFYC$71&3WLA]'6L!]*"$$UUZN`?7DB:9="I\[,:MG_PP)Z`(W |
8242 |
MN-F*1PXQ!%*3:"?P\(/M?7.`V^"'D!H=Y.^#PXO<<6/1/W9M3/@*]5`*\4/\ |
8243 |
MB<4BM*9ED420$I(--%NDX_1S9L=I*.E7YI4Z-#;9<+XE($\]/EN'>RUDPY4I |
8244 |
M=J-18=C5*D_I%$$D(H9Z;U>P?@LEF>FJNL"0A8\+FA=9$%<E#@$!X1S884$( |
8245 |
M+M;WT?O['.F7"KC,D$(<!,*+,:T9CBF6*V]<>_Y<L%E)%H"_$Z>65=!W20SD |
8246 |
MFA>^((UAQ1=R2XR>N:N>G);U*((*T;+L.-/XW*Z!:PD@ZK8A9/L^5W>ZY_\! |
8247 |
M'RUL=6DFU\>NEL^3V%"+4D0Y6*HZ/D-PFK+BIE&H):M5*FXS>N)4V9C\EZ@4 |
8248 |
MK\$@/24>3;K-:&G8W[,G29H$JNM&ZL8PU7>&C)`="9=\VG1Q.GI]3`+H-&L, |
8249 |
M$(0'VRO:-OLH#-@7^O>#L[V=8N>R(?:\KXN,!.:OYS2FGF#X[><]6/\>=V<# |
8250 |
MTH4Y5MG17[_>]N6[DK/8-!()3W%SE&745HP8TDL4H//;(94SXX#3P44\NYC] |
8251 |
M&N)W[-DL0H+L9))E2(F$/[4_WO!BQ'+%"H5ALU4KU*S--*@D;%.!&?0'.MPU |
8252 |
M(1($:TZ[OFA1F6MKL;O7.\($0]\]JI\NRY@0-GC!J5^Q)0ZL;KO#_,<_A0IA |
8253 |
MF0LH5O)NOW!'IH_>/^D"B2]0AW`.^+D=S1WJ(D^V.%@L7/.3])C1R@G.U<Q; |
8254 |
MV5=]BQ;3IOB/A[(W578$8,C5SS7)G,3,-C(`DI<.(;LV-F_!ZHC#6IHW+I04 |
8255 |
M::V47W"CNLJ`(!2H7JQS5F/"AG@:X#@(.O,+]#CTF-%F0X(._\R1HR!1X3/T |
8256 |
M)`/R/?I_KZ@AA`T98-&2ME)TU1^8]_,3'U[CZ"/S'VG10D\3MY/'C4Z1-H+= |
8257 |
M>XGR6ZY3K]]HM:IWI/J"VX^B"89@(P$6<IVDS6E73`D?7,VR[^-&C45%20UK |
8258 |
MPV:M%G*,SL^5!@L](=M#M=`A'(\L\E4:.PYC1EPI<L`DL*2AL$UB\?PH'?)T |
8259 |
M]E]ZS$E@>D_\9(\;CK^C82I4H^H:>YJJ;R=3&[_//&#Z>MJK&.%!E5Q8<6S) |
8260 |
MCN?E\OV_?Z"DFSC#VQ=H0;_\A,LOA+;P:\Q#WL#N,0@$IA%F$O["\TXH%;KF |
8261 |
M=R08R5UL#V\!AGQ..__@?CKC=OZYW`:;[__>:#!N4(-IK0N0:]#Z7=0%+AT6 |
8262 |
M@?Z++O]O+7."<2$9)BB+JJ.:40)D7!\+:A>)E;5>-!OHSYPDR@B+#A7E]GGW |
8263 |
M+X,0?WI08;;''8*(6XJW^)KKT74(@W_P:MB0_L".3C..YN1CY;'_4AXQ:20Y |
8264 |
M@?'F(QQL,*P>+]5K&H[C?VCDB^/`Y]<KSX%@]L2:T`O^%1(!5(>O5Z>$NE2- |
8265 |
M@#X^0<&TQF>L3?604>6F#2.F":UF-#U9]OD1WE]<`I1C5IK%<2UVH6OA]U`? |
8266 |
MV+$0&RQ2@UCE9:Q7`>+D9"'Z*-VWP\64MW$%H7E(BRTN.NOWD4$JC#1Z19ZZ |
8267 |
MJ`UH^@AJG7KY"4'K[,5XH`,4T2459<6N\K7>?OZ9EY2CG?HYU[<07E"UL&`; |
8268 |
M#X9Z<;[T/2G$W9S\YG\>W/D7O[&:)1!CR+H[5/Z!I@0M__4A/+0O>BDOEL-> |
8269 |
MO,'AFJY_(:V+F,RM+N:IDAYW2RCJ!$><!J-MII]_(2TQ\BP?TD+ALQG_41T: |
8270 |
M$*6('#=4K(7F1(W5B3*,N8:EX_`^6&0"@$+%'$UQNJX(0CL=#C)@:%JAXF_M |
8271 |
MXP03\JSK1S&>,SN+8D=Z+;%\DJ=I@1+Y2*?:["(6JA<$H/7U5'](><'V]2Q? |
8272 |
M`^$'^@+JPF71C(T>O_3G8VW[S@DR(QGR>DF)=:%I)T^+N_]^@MQO2ZH^B<E> |
8273 |
MH6%^6R.IKN_^)3A1I@=ERWY:`B$C!%KBIP!0:5H0JCN'D&N8KF=TL10^?'B% |
8274 |
M"0WD&+-L8!`3AS#)KQ*F:I8)4@*OEQMG]OI-=BD/XHZ##,J#8TO8A0/3K:^H |
8275 |
MS&`7O.[DX*AT?@^V2E-64*66IR;AS14:1,!P>HV^_$OJ2[M'`)S56P(91Y)6 |
8276 |
MV2T@"<@S,).;ESV)G^L,Q#5]RU<&Q!9QQWXS4MH`:XDY)B*]!29#/\?_&P<S |
8277 |
M[8=`:#!#CY`4Y7XK69>3+X:P?$K;45^M?027HP!6LJ`D9J*'8Z0Q]3Z+"&,D |
8278 |
MKX@6V<9G6\$U0`B:$9(_]D869-]>?P@$?O?%'0B1CCD..5HDD8\OPN@=XB\# |
8279 |
MK6!MZ+THXRQR!:BM?L=?<`*:[-#&TUYELTR_L\RUCI,+S"93FT%`.ZF7;8"\ |
8280 |
MEQOOT^)1]7[]\:YZC'$@^-E/P7+42\DJI(.9ZN)ZFJ]#NIZ[Z_1QK]#Q>L!/ |
8281 |
MZQFJ_0ASZK=B4XI-B<@F?B=+A+.G7E",\&Y,0K@Y4--H&8M3CT%^$'#_E@*$ |
8282 |
MA[!N34>[?FXF)W"%M]6;![K_">!!(+2($C@F1&/WI>%_V6D2DGN[7:R!82T' |
8283 |
MTA\7+:XL57NCQ-?/>UQZF8Y;`J$!TI'FJB9=-GY=!8.4R!<2B"PAV!EA6(`F |
8284 |
M6."^F#5UXUBHZRR?*BL$!GO`VO$[*.;QIIH.7`\&E1I>&7'1SCRFF#:%LU^X |
8285 |
MY)TY682D##*;#3VKK1^_#F9Z-'4ML-H;C].M#_7RVF&`_["_('0[O1G+'TQ0 |
8286 |
MQ4\I`UR!;@&;^C1&WJO@3<:-H5O9!%96D1FGUTDW_?/,LBY4I3W4FRX*).QZ |
8287 |
M9Z=43EF`2O"O^@YHG3,=#_2`8)W,&4E*R>N/0#D*F[)%MB5?F@=;CJP%);YD |
8288 |
M'D^VS]0]U%CJ^L&![*IT68<J"(EA.5@4L/_REYK/2'=8-FNTEI=YU#^J&\J= |
8289 |
M)(24RN'0P$A+6`GPX]]9`_B[]G]BD?MQ7\VT"T$O[^2B)P-V?0R7O956X0YB |
8290 |
MH@`^JK&0<0L;K-AOT%Y952Z2W#(^RWETDE,&1EFI\]=6V#(8TU9`8F6+&>5[ |
8291 |
M6)(12AHJ"(,Q=,[]L>[02N;-Y<6EBI_HH^0@2H_1C:1>$W1+*AM>YS%P7'I` |
8292 |
MB.<@P!K:O_\-9I>KUT>O0].E]YYAT50!9*V]``/2$-O"VGB#.N#RIU<Y!-AX |
8293 |
M37\V^-?`"U<Y0DRTSCTUDNF_CJ1)O.@:35`/*#2R[!^(^#,\LV;AR40(CA#5 |
8294 |
M%U*M!20ZLJ,^<!CW*68MEO1;,J5_4(Y<J8+82ZT@C>-O6[ND6<,]W[5U>QW& |
8295 |
M-UQ^N'5LTBN7$7=WC/0X4`N-S(S5##!!D&()J.`EIT-8<"FVM%(")U;LHA-M |
8296 |
MRAJ8XPLX@Q&<!VI%0YD$LCCWK]!,_*2^&T0CEV/W2RM[?I#D_%:5#Y%OLR@M |
8297 |
M=1S&?JXA9'XM[.G@$D``\O],A79!&)QL.&&#^P.!>7E+)U\W97?+:1;F?B2L |
8298 |
M7Q4PX0%"42S7ES47N4!]Q+T2K;O0B=*A'K`T"RYQOT8H*_*\*C&\N7^&W@,: |
8299 |
M^NA6K.)>R'V!!,=F&*]@5;ABX::A+?6Z#LP>VJ_*D\I@)PF:PS(+-VTQ+-P' |
8300 |
MFPV1KCO[+VH7`<9]EYQ"J)P$HMCP`09.6>D2>UE&K@9/L!7PT6ZUMVL;<-JK |
8301 |
MBII`*!E+DM+]SAPQQ:R@>+W]QW!<JN211<HC<$3VY`%GX<,?`S)E43A0(:PO |
8302 |
M9-0BQ?L1G][\!WE:<_%_L/HVPV\LN%+"7%KSJD(L;T:8E?/I@A\,.6<2`+<: |
8303 |
MW5`A[#`N_UO8.>G/'_V%!<2@C;U3/Q77L[4]<&5(11?YF9GA_WHUU6)V3^%@ |
8304 |
MU*N^4D5[G-2H*,.:]"U$FEK"CQ,,&CR."HRL&!Z9?%1T8SX\T?D'6C*?NB[9 |
8305 |
M]DC$!K3&)[2^<IX#8@-HU"/L;ANO,(E%<DQ;;09RX)]^^,E>V\82+"DD^-W# |
8306 |
M@2:]DBREO=PW>CI!7]`=54,(R0<1@P\.[<T?J@0WE7'S9E>9+#\N^UU%1R[A |
8307 |
MF7CGDUR7CB*(B,9I7^(H(1.1WGW7^CF@4-_CK*0C&Q#LIC-=*DM5-ZEM&I(C |
8308 |
M_^B_,:+ZET]`LN],7?E6YK]OMF@U1(;,`0M*H#T;^?$]3&E:6'(M,A?IX'\R |
8309 |
MG(U&OPLP@O%^%IKY"W+XMMBL<K.)3:C<*['-NJK7/7#E6D3R)V2CYX-N?'F@ |
8310 |
M9"K,BU1S/(N%!3G1:&^,;ZH`?9++#$6J/W0I_)F"%KI)UL\@*@8@E39"2!+[ |
8311 |
M-JZ[=U8GK&7J>G0"\>]BX-*QPDH7U$27GC.^*L[V#$FH4'W?NE22"(PT^O8A |
8312 |
MZ)6=Y"AJD-7XU8/#090N8D%9:[DM[4!?+E&Y*;"(*BK2-44EV*L]T#AUU&)E |
8313 |
M[=ONH2X2ZR5C,$4U@XCF8!'PBS*HFHN_OUZLYD*P!Q.Z?;#$]<44S\)\]T1] |
8314 |
MXVO_O3KK0;,1&NG1[</4H%VRV$!@`7[K[%J`8)<<P*.>\)]M`+O*8[65!/_Q |
8315 |
M-9,)5A%:P`DM3M7SK`D*CHM""KH;TOX&O,D3-7/QF.4EX91I;((F/*_GNO2# |
8316 |
MOA,@Q]%@M;?MY\?Z:G1?K``48/S:0%*8IV+"O-'Z0;?!N^%O'Q7!X[@]E=1( |
8317 |
M23D)62I0NT'1Y94?44&2^I2BWU$AR%0P(4XZIY.<N>/@!T*&VEW/<9VQ.=/: |
8318 |
MC7@88X7$#/X]@3@E,I+"`&`&?&T:(?^#+RD**TY'3[:*$5"CB#:SBB)PS6=2 |
8319 |
M1?/?&F(<"7,MQ3`AR_EP`4[F.9UM6P1[OW*^5OH./7.('9(6]@7ZWX,)NHN@ |
8320 |
M568WUT00F2.0/P,+A%N+^71684NS105\W\IKOG!],^N7C-"@0MB*BO/D/C^E |
8321 |
M-EJ+%6*G4_3L?$]SSDC?HFA,_;'KNN+_"4(ZJ?&9R3'(MU:ME&Q2?GKE&H1@ |
8322 |
M`JCF,>:!Y)P2!+4:-\'])?(=K@VVMGMH/\%9!.@!&(FA)VA.STW.6"1L+@DX |
8323 |
M1DZ6:PLF$/P\5#YT'IK\Y%:8?(P]#3D]+%T_?UCFV8RD?QQ,)/195+5H`9H! |
8324 |
M`@!4K<5=8A"K0X5Y^!,4`UDS4"`8(#_@43')KSHX`!^C-"M'&7Q,ZH1MPK"L |
8325 |
MBLBSAO[P0`=D_J?\LCX,[!]7)2R.YH6FX0%1;"=G*D?D)AUS9HQZ,RKY6^\V |
8326 |
M&M<XWX:Q_'W?;WM.9G4<S2-A%BQ6]VI&!T42VB/;C&]%Y(_`A/_L[@F\&V[( |
8327 |
M?T+9+OY`677X\,<7.1RV#!?4#7^G*M]!>%^>5-^ION#2PVRE\P,I[A_1C`,: |
8328 |
M"S2Z)@[%BH_".K=&PC]+0%2)]&K+.6C<J199_Q`O1T^<IM#@MJ>`V!`I15^^ |
8329 |
MR5(,$1%8@'[J&A5"BL.NETF<8(.$R65+Y+8=7)4R(V=9^,OZAO>=5N7;T;A> |
8330 |
M[BQ[>96H;L`)A[?$8%HAAT%L0:#657T'4`$%)AD`QGR.>(P-,LRT:3C5-<DX |
8331 |
M?@K`090`)'1%M<E45!@B$HX1+FTW^B(%V.E/ZTVZ9HR[PD]2<((S,\5QX_-0 |
8332 |
M<I,L@\*E&'DG)&NQ@_/(=L%GX(*L@?I%-:]`!U(>I*J/E]:E[X;#J?W$R\G; |
8333 |
M/`F>Y@XE=D>,E@#%8?C)QE=RDX?W;C"2B?Z?3`@4=,A'JE]Z_\DM+R\7A)NQ |
8334 |
ML925[?)(*3K+IZ`<O)RZ_D\EO,RK1ZZHK[15X)$)&_KTG[$Q70YT)!*D"1:V |
8335 |
M.%2(02-G<+FPIY/2FJ!>VANS?@[D*NN".5!N^EG*;K('LVD@XOWA?(&-RY_> |
8336 |
MOXS8Q6\*FC9#P^"P%^L*Y#.#>4!X-U[9&E6^J,K)EP1XB=KF0\C3@7,(DS\G |
8337 |
MN"/F8[B,_,$?%DGS"M(X$(5,?Y3SXP0M$B@_4JT([A+0QMA7MI?\-VM<33PN |
8338 |
MD=;<[;50S`P%P3<-WO)3T@9&=D:@DV!$PJ1A&Z)4,X*^VN7*?M%!Y96Z_7JK |
8339 |
M03,5L>YV+#<%I@]%KA?+/2L2J)*9AKBJS&_SHC\B`WBN,8`2PHZXLMU%)J7' |
8340 |
M??KYF<,.#/`W_X`\'XXT1S*!$A8VT-5?M?L`.\3C5$'KH?6)[$Y@4U&P0'K% |
8341 |
MD\@/N4U@O.4PA&7]G`)/4JJ@&NT7(10[X8Z>=["GK],'E4I0D*D+SP9]P5:N |
8342 |
M,BIG`RQ4%;)6`ORBZ!M"\_[]<:$,0_0#&_CT=/LZ`GWF#.3CAG[D63-V(:BX |
8343 |
MNV9GFK@.H1)\!\4FY(0BD3RL"<-+4J0L[L-^<C-7!\,LWSQD!T""-!S70X*' |
8344 |
MS0*(`QU&T5(DN"E<L:!4!.")LEW'M.UI33%RB#S!(++_@D40A`L>4VXK.O7_ |
8345 |
M\O1!`7H)*V;NWJNP*!$)+S1D^1T.D9AW0^YM8-S!U,Z;I;BA7'$&YJN+*ZLT |
8346 |
MV-__0OB2"N2%V+T^]\0&-S2``$^GSR";_/[QU6'NA>X$$WLY?I#%+60JV&_N |
8347 |
M;NGK!2OJ:!/0GU4T&J7E()&3/18B/*W#FA'@^D<'4M!LAMG%5J6PH%H9>"U% |
8348 |
M2OP^5R>`\U18..&)Z57\Z]LPP1F?M0Z?</=V%Y[0O0&($G&1(HH)B!GP/[PX |
8349 |
MZ49QUD):T?;W$C0G=^(W?;$J45:%M.7R=+$`H(^Y%600ZI@@@Y7[(%UN%;L1 |
8350 |
M"#JB6?,-D?DE4:HIHB9T8B`*JI#%:+.Z;.E6HA$S`/H_JB)!&&4;Q"=U*%:I |
8351 |
M:]>%C2-7\H#HN1QR6JU]?M.F.]4^TVD(F?`3T8+QDY>PC!-!WDFR7Z51$-Z, |
8352 |
MX<"')MX[W@[!%L;;XBL:@+MY'1XQ/-@\<D)?"W5%B_+/#XVZ%F61O4VCK4+W |
8353 |
M#;$P-"*IV3X.CWP.`?`+)2&:=[@VKMKLC6G_HLEX"!K7RA)6E#6IXB7X`F.Q |
8354 |
MZP"]Z?<>5.(WA9I6VC<66H3Q0*`+>(?%;W#6AW\5-K%Y:;=1D*E]XI!15<MM |
8355 |
MG<TIL:P@$>D,V3(2[A;5R7\YY0JLS^.>OOY&:B&QAIWSJ9"5>8?V$5_5<W=O |
8356 |
MH',FHPO?)WTF/-^GQ$BG_B>05VATJ>$*`5Y36%[VNU][4YE0<A-ZGC.Q'XE: |
8357 |
MV$YU&9?.$5!VL]L8R7=A@U95.J*[8WYX#DUFA$5VB7_B!GS2O=$N/7-!+C)@ |
8358 |
ML^=`>!&*:CTR)KZD'C[G\&U;/;LRKGC]V],5KK\B1\GX=_?95YPPM`<"7OTS |
8359 |
MSKAYF1]B'GR[)EH!A]G6B`&,R$'Y$&+1N&@WOO+!MHX]VZA$ZK<2:"2B59?& |
8360 |
M9NX:/Z!&[1DIK/A9PO%0@7H<WC0>^E!'3M+-G`@8Y)K3GBG_^OA./?0?OW7C |
8361 |
MSE-^]PSP>,1!PU>I^,:)1`5`,>.O(,NUH,_;5_Z@R64G@3+)JNE@XO@J00K% |
8362 |
M"A_,[LB\Q*EYWY-OHTZ&7V_E3>RCK)F)'7`6S4;-JS2K*NIJ[4<,*=FHAI37 |
8363 |
M6IXMI;=@7I15RF:KBCF;PA#*<Z#WWS/VLN^!WU7-\M1CPVY5E!:H];2Z2S"R |
8364 |
MP7RPU^=S+>".,KM-GGT.IBB;"C"ZDB4-2E[0]*Y_KYO&E\I"+GZ/?`T>L:`S |
8365 |
MV`2:DQEH.^[KDW=S6_9"4YS`,I5J(,MZK]YO+!V04@;PV7?RK)D'6U_Y5FK_ |
8366 |
M(WQ`]>NJW(Y&!@_H*]A*M_KW0_=Q@LLGR,VR^[2@7A8^/T0DO;6>_47Z#>;P |
8367 |
M>HWNA>S8&L[/IAG*4Z@`@+*8YU+7V0N;:2"L^\5(+E-MN'<ZXXE;-?%H.<TN |
8368 |
M^0@)H!2%F\B:VA\2LEH(>5UW<4@/OVX'OZ`/-5.IUX/=^#%HOFIEWH5?%??W |
8369 |
M[P,4EW5&("4?&\TGA1Z:FWVTB?6OS=CXD:#A'V%AU[;;7E7[8"EKUC\&%)NW |
8370 |
M22FT!OCZ*6<3T2</#U,$.2*A6@QV:G2CWE:?#-G.9VPP2UYAIUR)R$(*V@`. |
8371 |
M73.TT)8%!9B/KNY_4R;C0DG!FGZ!E6>DY:4;\*'^G?1V9GIQG1Z=7Y60"?CX |
8372 |
MNHM#2L19F6FG@>8/C01)CI>VMC;UT5!M]39ZU5U::\6QUR\>"OA@KG51A"DR |
8373 |
MPN+Q)D*Z#0W4'8T%;.EJHP8"D0^*H;M_5`G0@\@[3UTV\):(^/$)P!OP",/W |
8374 |
M9OL-S<HRM>`G(1.7R_YXQ*63*N11:LSM)AB6K9\NV8R]\Z2:ZD./XAR0'_"A |
8375 |
M[$*W\?K7`Y"9R/:N+U+F;Y;PQ>I/DLJX78Z.U[#\P.[0DXH#E)^<)O+@VVX8 |
8376 |
M5^NF:/-(P*$5%O30A4&`CR=*#EE&C+IX.2<P.S*CFC^WUU]9NO&S2./`/-;7 |
8377 |
M3V[44W7VT619D&E'*#9EM=,DHBDKA">AHI$Y+<'R+(O4#!/4!7*K0PPT.ZUT |
8378 |
M67N]2LB5%6O+G(_SS4W[]Z/'T<"4!VJ%;I\X^``+(^]%8,.(R$2+V%"PD=J4 |
8379 |
M''0,VI7XA"H<Q&,*KL$*G$?+%H^A/K,E9!/41YS/Q('1'GE&7G`G7@&38RS& |
8380 |
M)':O%XD^Y1\XP1V<*VIH,*&FI86`U_W,GY]8T.[DYYQU5#G9:ZRM(2B8D#D3 |
8381 |
M<_.23NV?P*&,GA9+U5&/K%6.S9*KS>;(YF(.95K-LHTF?;(4*-6)4:MD9Y=J |
8382 |
MH@)_XT,6<0+G-67IP:ZXY-)UN=7A81R^Z#W5)ZW!H`3)B0`O6+O?MR@N05TT |
8383 |
MKHWD=KI0IO9R$NA=TM>CT5V'#).+RZJNL0BY(&//^_?F-5OO57HGXS=739`A |
8384 |
M*.GZI%.&1ZDTE_Y"4!\7_4Z^?>_\[5:=TV`VHF'AZ6ZDTL?M)J]A\+"$N_=V |
8385 |
MH!%02[#GA#\[&D+`%D1)P$(2/&GZ4(81MO_HRX><X-R-;+(NO($TOI#_W_*1 |
8386 |
MEF,*TOR8A<@$QA+YK%DJ4%@-CFC(M"C'2<V&:5Y4`)=R,T@=IL=(](W[VN%X |
8387 |
MQ*&0V3^QI!T+TW(<Y]Z<*\H;@037FB]+L;__T2B\.EZ((=!&L_RBV(9Q[:/W |
8388 |
M\&]5N+;7"Y7=^C/T!PHTV9SRAXM[0M6GM1^E8%#J'-U"1!/=>EDLB6KF3K-B |
8389 |
M[3VR?5U@U[#8S[L5S@W3C(2`;E2X&^P?'5#()B$EAESI\1-EV@BOYAA7GWIJ |
8390 |
MS'+6S^4*24IK9A`C4,E-7A,5<F5[,93?<#N8,YGD.P%HRC0:I,,UY@4#V7OV |
8391 |
MG8?88"5<X*Y'@*2^YB<*P6<89'SAW#WFM2"Y,S+7VG"T!H[$(5PL$*7=N*[[ |
8392 |
M[I#C/CUW'Z(K&CYDB97RR26X)GJ&.`A$D.%ARC'Z#M=1,.`AE]$!@R.$8("8 |
8393 |
M-ZCI#H_3PRT>?(P"4^1UG/F88NNG#F,B!6Q>$EGS(FKRAGAD(^'Z*;0@XOWK |
8394 |
MUP@31B(#U?L3_3'EX901?/QZLK'>`32._GM5N$)9F\RJ>/3A`X?EYVZ\P)]I |
8395 |
M>Y`RGL!M2$-@V,8($*ADQZ?R]H-D$X$<#/XRG28>[WE>#S4)(ZU8='EY&;5Z |
8396 |
M+`!"^CW?@\&XA$\9_V56V3+D#JJO=I7<IQJX2]8*?8NN`/Z#D\]_[9K\Z3'@ |
8397 |
MNMT;=['.0]@=T'LS`)#IPP<Q8'PQY`5!K'D".TIV^W"MMK9+U?CTFK8C2K4P |
8398 |
MN_V*DK0%&9=_ME7QHG@JL]&21K2,=HN^OEX1:Y7-=:LZSGS^0VN8T<(X'<LH |
8399 |
M)/B`A0)XB'NMYG_Z1/[C2!9K$<Z"[['7K-4?IWL8UL;R;QSK0E$HN$<C<UF" |
8400 |
MUH[NTM1/\:+ULT26G4,1@)C.+Z6#!U0UQ@82,@"DDHFIO?!78ZN[XAM^`Z1G |
8401 |
M9U4!FJ5O/HP7&T4^<<QS;@0O&P9(R5JDI+.1\G?/YPGE5*,CUF%VN[03V'K? |
8402 |
ME(X<8A$AU5NI]P>26"QCHS)*JHCF>UCQWG""VS@U[/"#@IPIC694-NCL:Q\" |
8403 |
MARUQK#/7/)4T%WB7$HQ)Y*QE%&=%C9__?DD>JA)-M#X):<HL?&Q(>P4Z7YI2 |
8404 |
M6`$QW@2UZ+VZ)L.P^"0!5`Q*H\YXX\;9PJY)8NU@HH9?08YQ?IS<<U>8_Y`% |
8405 |
MS:H3VT8_:4ER#L\<MHK)VJ<+Q]Q"%/LYW-A++WB6W'.]H:/Q<WGWCSL>5/A* |
8406 |
MK`P:+PR,%Q]>[U\)6^;H<WU:,,!V[1(2[/TM49C9E9DM_C,%I[%\<,`.\"21 |
8407 |
M_OK7,2$(*;%X"W.Q>*IA')KP""=T\O%@MF,3AN&CNF-I[5/=-9(R(C-QQTRX |
8408 |
M/YPZZ]E(B#Z.7V17+QA^-I!(7PB`!9!$04,Q1!&EO.?&0QYU'&=P6>?9L>!# |
8409 |
MR?>^#U/]H>TOC6GG$-5</"3Z2GT7)#Z4]>\\B0"]R#==_*.>)'J2`GPGC+7N |
8410 |
MDKD[A=A#"<!Y#5V[$#8D[B1S]@)[HNRUKW1&OU1<)TWZ<2'%*=8LL8@!6741 |
8411 |
MQ@\D4*4H&H;XTC)<G!%B'1;W0W/@`P>+V+Z=*P3SSGN(Y5^Y21;HWXA#N |
8412 |
M5[&UD079GW(M_D_C9/S$$"AJ:N+S^-4H:@='CR!0!1"_J4:PHVC"XHJ;W\=W |
8413 |
M-)%Z5.CY8?E$3=_L'3I"/0AZ`X)M4BOI2^5M.<H[@KKM#3"6@PAL+[\:.+!% |
8414 |
MLSJKSV`,MKBR@XR]1FY;79L??2Y@9DBWH9&1/R"1G@R4$-36L1?5`2)8'K'# |
8415 |
M(`UHP#PM]T'[@"(*P%`7>S;)S3A_N3``BFIT>U?`U[-Z!"ZCD'T@:LM%E`2Q |
8416 |
MH*SM)^+G70GE:)+W$J<[-%"([S)C0N.%0<5P?(!TA:4ZDAF=QB[/H*W@RM0O |
8417 |
M9'-&WZ&+B#=2D):NP61!;ZK@YB9LH*?CBC%,%DKY)H?2-(FP@OU<00U@-"BV |
8418 |
M!C/5C^R;%"$`JNC.WHD0*(@,B:=8J>;Z[X?,*\H8[]0;S!7))X"0MNK0@&8] |
8419 |
M-]W43>IGB.NZ8FEKD5)M$1+-BAK3?E&*<O(7?I&2Y6_@OR2QQ^U[(:0V)G$- |
8420 |
MCO[*%[+A58AY`Z,TZ"(>..DQ"]/;R^N:/Z(LD&W%KO5"D^EQ@:\Y.;>TYM3O |
8421 |
MC2OE.,2/>JFGK?#'G)DO&/1P#S&.,2&[45!&\Y&5YJ^?`@H*Z"-81O3)3RI` |
8422 |
M\:56I.\[[S;C6X^P+!KGRS+7EW0^$Z1.HW^-S`+H(JG.8>Z/19=Q>M<RY=)U |
8423 |
ME9PE2WJ/?YE',F[NS0+]+IPG.HZ&J"@AJ#)ACE4F>@0Q&_;Q&:0][9S;4K,+ |
8424 |
M$;\95^IS"39)Q5:6/YU0:A>%N$=B$REIX%I#9NKM!,SQCUW4)Z*&*)7B>]]/ |
8425 |
M11P*,=E:V$N\6NOO6#`&XWR^R+O?PKB[3\WQ$SPX1)DI`RC&FGNVKJT-C:N( |
8426 |
MAP1$AGLA\JXWG)!###6(M,^X7_>^5P^51K1L2D7VH;UET8#4R%($/':OC:@R |
8427 |
M:=,YXB!Y<[0>;*`[ZZMYF<\!AQJ.NB[?>*:8>$'5P0$9?^/-)SX"UGA)I)@7 |
8428 |
M?QW]+NK.-,EDC]1A!LWE67V40\Q1E".-J`B\FAE5-@Q(!C';W%FRJ&PV"H7* |
8429 |
MKV%7"MHVAIR+:FYS.P[GZ_H)VLWV<UT43R54+.)_6GR:"=D%@W;Z':YZDX*/ |
8430 |
MM'7#D8->=!(!L]\OD(8_WYV$O\NJT3@-`1(:P52]_XO/B`$&_30!-]"N56:' |
8431 |
M5'2G1MD:35BR^Y><%>_7<-I)WKRA/E*)63T1*F2YFXC/`FV^>ZK1+M+7F\\G |
8432 |
MAC;^O9;*VPGBGU084%$[N#DZ!FET?46C?:Y+T9`@UD1&*;/$:"ZZ*$QTK3^/ |
8433 |
M&:^3I(>P3DB7Y-0<%?8$\!6U9@OJFPGZEL3(5D45#S:$I7T*UX/LQZE?21I$ |
8434 |
M_S%;YU:((3;DYK0]'#QEW4>NDT8F63W;WR8.F\Y^PH!?2'1S(ZAB\<JCOB," |
8435 |
M?[EM]#L@OFK^'31#36Q7:X>U7Z\#06OG2+*LS=P&=P2B;"OGC(5'TX;H4ERC |
8436 |
M+ZZ.8Y:2VR_;\\$U";^%_&XG0,SC8!#W=L=\=O*S"`TB$NU4M5_>/+R**-)] |
8437 |
MK7U\Q&6Q3,?\!OTXH2.G?`4=D[>5ND(?]@<US@U1ZON$6N@(M%$"DA[O>*,) |
8438 |
M-:2QPPJ:-G2U$'XU739F$``189/5+0^5Z^`K48(@G1'R`W82)U^_2D.7K;XO |
8439 |
M!WMI/JZYY2=ZQJ?`NDNTY<H$.452K_>?7.CXF:AINIZZ;[+B7UQS8QDL!7Z4 |
8440 |
MMPF`'0&"R!$+1BT2QQ9&Q4I`-C[>8TQ2<=2)T!XR+V8G4@5V<0E$;1U)<;6- |
8441 |
MM[]5)9'!=&AD.C@;4KKC@GNQC=.R0B,UM>ZK(+[(A[\!YS,.'/]%=D"N@[W( |
8442 |
M;R3N.?#%=ZA>22OCDI]'\@`E!/U(7ZP_YNKA[5X?/\C;3^5\[9AQIGK=G3AB |
8443 |
M;%>@65XZ?$::\5]F'4ZB^?JA.0EL`/FOM0<E[F#C(:8KX1FNDJP+0ER/&4-N |
8444 |
M683Z`)A-;?2].3`=XM9`E;51BM?Y",M%!0\-D8MO'UL.+I^SHE`.5_<=%(B( |
8445 |
MK-A)6\'&/'UX/LKHYQDNQ:SC8<GP:_R+R]OKJC!'X_XE,0]/]CO+6CY`F+\S |
8446 |
MSI%:45G@3'B17P9_4Q.2!!>"/YJ&>Y+0.&.S7Z<TC)T)^AF;)C'OY)QX]^RO |
8447 |
M03VI&F3'V$RLTR40`):"?`$"GRNE=KIST.9YHE9$WDJ>/YO4P]W=QCAK(,5V |
8448 |
M0J`*]QFWY$23.W/ZW]$ZVFN-SNF@H\"LH1MC7Y:*B.U8R4.+SN)*#8$"Y"4% |
8449 |
M]JIB8\&?3MC(+KM,O2YY:(M3/(*(8*)C!^Z'OWS[U!1O\XVH9ZOZ@Q\8?ATL |
8450 |
M:[;(8?ZG]$%%H671J,T_/X%\3W.H'3;'T0BJ_/E0I$7`I#[NQAR<S5!?/UP- |
8451 |
MX1E#Z,O:<NLN<UW(D?Y,O:U0P@U3](333SFO3VLM:7FV:5?2S467J6%?9C&9 |
8452 |
M![;\T')MQ)E\FU*5T48QN0SU@]P*,I:C":ZX+)T#>;TZC;$/)<&I&9P>NFO# |
8453 |
M]+[Y"')4@YJ/FL@K,A3R:3U:-=Q?.))#)I3BI>MVAE>%KXQ.4_Z$2]Y3="UJ |
8454 |
MT5W&<\+*S'K0R%%AHY-VDI<'Z[D2B`&4'-R"D-K"E&X!3`NM\]W7PBD0$1A% |
8455 |
M9RJCI2M*H=WC;JP@J,*LBL*SH%:JO;T)Z#`P%3*XS7,GK.%?-;X/BQQB!.AW |
8456 |
M:N?#_BT?9BU_0IM'GC+?K]V9N)E>YD9,<#N_#)D$=\)V4N;<,LI#`[V`QJL< |
8457 |
M3YVPTE3;&((-C3J3ZOW<_R;-ZW3H+;P6)`E!&=TA.Q$&&>&;L]!%G#7!;#Y^ |
8458 |
M["^+US>X#PHOFS>Q:/WB9%"`=A92Z&0_4'Y1(:EO2,$\)4'0;["Y!72/YF/F |
8459 |
M"V!`AZ%,S!,PA8)AKUSHYH*%UKN*;0.?J)^IB=KU,I%2JUB9/_DQ0D=X#GVR |
8460 |
MKHJ"U8-FZ5PE&B?E+#YC?0HREI.B<2M*D9"U,VCL.'(RZ`]V_*NT(O`F*.-2 |
8461 |
M_W21LS!N?K-FI?V$*ZL3@FW&)^>ML0G.$3$I<'`<SGX^*U=[35L<1P[RD>?` |
8462 |
M+C9:F"<[%Q\[:B2'&E"L"FV8%-1<L)X@QIU[AJ/IK'4*@A8Z7.6X'8R5=Y?( |
8463 |
MDIXC-Q?KI;,!B^8_]OA`%?QMCA/J]6TV&?S:0GM<OY8-M`'0#,*<+1*K4TV? |
8464 |
MX&VK]!#U.J6O_/(LS5P45`1`,A!E0H#2#M8'<"/`).<'];R&2<<XD<.PZJR" |
8465 |
M*'=<];<M2B2;E\)J*Z`KV]IJD!$YB$2SQ#8OOZC]APRN&D_;Z20S.>L9](N8 |
8466 |
M41Z8=VGQS%;I"S&6BQ=&V$K+I?)H`$Y)KY6,<EI8C>S%ND6MW-(4F'=8N/F< |
8467 |
MH3,K"2KIN=CYPIN\6G[*E9@/F^WO*BV/=#P#;%SO;XXZ*=-77`/#/^V'L^D/ |
8468 |
ML2-&7[#?0"@W5NR_XX_RM;<N.VH*PV#7O+G7=+U_^+J\G-;)^#JF^,IG..4[ |
8469 |
MG)P%%-&SQ^GZK?<*R,M5_J6BU`]P52,GV]DT%'&[6>6TB,5$2YC(NC?IML0H |
8470 |
MG&_3:;8##4W)V23-:X-TX@<(6[E;<(=1>H]NGH'$@<2<A\0X(GF>^ZAX#1%< |
8471 |
MAFX3^XM>"DG3*36C>\%#PAAZQ\IP'XCN)OP2ZPR&,Y,Y:>R`L)Y+'"%N<B5W |
8472 |
M=.1]LMN_=3=$&S(P7<,(C4M$0+G1[`U`6C;*O2:4E+TJ.EK9$(/3_1A>/&_D |
8473 |
M34KCZ`.&/=AG?J'XM;),*&&'^)^RPVB!HEY^S;83S97`_#5N#893'*>&)M5" |
8474 |
M&7WVX*7[YQ(#5O'E$/>J85S.9D&L0SI'QQ$@>\(7%IQOFEG&\1TWR13:ENX\ |
8475 |
M!]-K,@3--51%M_^J*"(Y3V*J5$H5-1L'"[&8`[ZZ<#*&JO:L!;K`>DL>KP>' |
8476 |
M+G3\)]F[%+L8E\26OY8.^L4R\JA<P)LVCUL3PE'\/F6`OSFWL7AKV0HII``V |
8477 |
MS^;AE[I+`A3B_<W$)2\&]=(\1TI-&:E]R_PZB/':US(CN7`:B>P;^<69G=G) |
8478 |
MF94;C'<AOD\$H>84NQ#K&C3Y/_0!\3)@5.QH>7M@'"95`.TUM&BDI5[,;<@# |
8479 |
MK1#;CF;R17[.'`G;Q@?V'=[^NCO#HWA?=Q>MHUHH_PX8ME_('9],-,:R-L8C |
8480 |
M[R!`+_]08T@\A&?SJ0CSA;M+_=CZVOU1I=!6$0Q\(S85,*1[91?(B"PC?)JG |
8481 |
M6JGF]9.ZU?04F##UK`NTK_LN5U$"(CNG-OH<_HR5:<T6$0"7M5T:V.15>.15 |
8482 |
M"Z2_A@QJT^)6&U+2LT7:LCVB6+,<;>G#<`'BW"#(1*&6$U'(2Z*.U4()5.90 |
8483 |
MD.T($PMWU<ST-"K@T\@<<(&B3J1OGWLO`R:]G==G=]Z=D@X@DBL(E#H<BM." |
8484 |
M;#;D)#,I?))$QR@G<8[T;4RC=P3'^4%O@BV\$?!%O5T&RE35GMZ:X&]O(QU' |
8485 |
MZOS0XDCB,)BA*PC(-:U6B,.G-?VB,*-2?M`PZ24%(W+`\C-:=<,XQC]K(+]6 |
8486 |
M]9LJS*S<ENQ.?'JSOJL+EP$%Z)5@$J;<1Y&%KU;<WB(NQD>#&^5<'OB(C.\_ |
8487 |
M49C_2*`7.:\'95J5H6XY0,9('\GC1%D-27`P<#QHM4=OO\.81P-M=2C#=&1! |
8488 |
MT:9`%6Z0K,.Q5X)H@X,:.?;SL"Q^/F'Z-I>O*>$'Z\R,Z2X186#"7WS%2>T" |
8489 |
M:*:'Y5N2L3A)27>A]&TSANJ[?>GK.X#KHC3>250#YC!BI\_GE,D[Z)=3)5@: |
8490 |
MO6LAI&GV/F,VR0.\YR`SI^O29<)VMN,!/?NLM7SB4ZQ&T&&R`4X7@@$ZG#\H |
8491 |
M):ZCB%D;LQ`@\_A4#;L>R&K#II,5?*-/7__!45`O>8"`T14D]AA%LZ#8'CL` |
8492 |
MWW:/5OO09E2Y?A4;N!Q0N*'<@R,;D#YN71_]E+CAI'!3.LO[-[^H<?:.63H+ |
8493 |
M+Y\'I_[%C=1&8:P)>8*L.`CAC0OW@>'#2Z&H:U&$1]*_@)[&Z4H<CL!D2WUZ |
8494 |
M-./,5)_S3"-/.TZ%@MMS),P&!4?$D[#G+W,N_EY8$K2%&C<9[3MS.'!&*'\6 |
8495 |
MJ(<8-"J5DJ436!`X*P8)C[_\#VX=H2-AO&=6Y7(W`-H&W]TNZP>2_6Y<UR)F |
8496 |
M7!=//3#FZID"8'_24`A$%IW_.\<7@(R&U7C[TZN((T88[6JO6JG/"&=D8`B: |
8497 |
M7S[:7?JNCR69+2V%WXBJJS)0KIFUGGW?5/`SP1!"HJ,AR>5K%)1?TM_$XL6( |
8498 |
M0PRJ%J$L8L#C!QQN%7"Q/0OEG]/<;,Z0/JHZ]VB2CWKZX9)W7AD_.17ME^;? |
8499 |
MP:0/P0-O'SVN>8GV>H]&/B/WR,.T0V89Y%9.2K<XA//FO:RY2<H1X4,CL:$$ |
8500 |
MR=;E^*2M06@DY4HL4L-[0RP[O"`ZCYFG>Z%Q#S'ZNEM"X"AWSXN.#&O9!#\Q |
8501 |
M<`BDFD2I"A4=C].&#:1'8"4O4'1'X;S*>Z0B&-:#X"<,KE8L-HOD=@W<@H)< |
8502 |
M%%I':FNI%*A@5F*#8'9$GN^K7?')8.N^;Q;4ZG7J1^I_J@?K^2DL"YW4-NQ9 |
8503 |
MKE%7CD`YB:XG+5>ZI2;#P',>=&,B%U]`B?*Z@_6.=P2H0'`>$L_J%FA-)$;> |
8504 |
M;Y%T&D8I:.BU<)Z^\X_C^<<^/'[-](#O7FDUX`<9IL$$@7;.V%W[#EB*"(`D |
8505 |
MU)N(I,--_;I)OK8H--=.N+K^Z=L+0*3'&"3K#3$]K""^G@PEB>M8%@`K$>9[ |
8506 |
MTOXYLKZ(X*R!#.\5M);$8IACEEQF=UB(69R+@H7EM`%!]+ZV1'!TH];P['^3 |
8507 |
MISF/2FZ1YS6'@,8N2]I).%;]6T>OV>\HDSF%J[I@`TC/7>>@Q!'L<$LD).L+ |
8508 |
M\1G7VI5GG\#Q"T(08^&C[\!Y4G;30:[$ZLGK_>S?,/;9(J-1%+PP>S84@1]R |
8509 |
MK!ZDNY)Y>J1.2P6J`'*\[%GM\::](([P0??H486QXB/=H[&L=0=T_NU"V!J/ |
8510 |
M2/../GM3]PO'@9,DN4ET4-SE\-N"PR0_#/^NX0M(NK=TI"UUGKKA@UN);'YQ |
8511 |
MRHYY^D?TT"P((0*>;2`QC^5[H.O%<'K0KPP)Y3!9IF>*TR".'+TV*%/P74-J |
8512 |
M4;":R2Z'%T(OVV-R_*NI8.[M"PK8"SKG)M8),\C(>+919'KY!W7CQY?(N)B. |
8513 |
MCG0K.WKIR@<)!1A$O;%VTC@K_Q%;Q'N]W*JREF(5B%KUDOE7$8$^EQ4>>WS< |
8514 |
M]$Q?99M9!$+/<8`$%,<^EE>TX95);^L2/A,R#WRP#&R+%6'?0:4>2:]S]*3J |
8515 |
M37F\^3=\=1$/&6SMY4@CC#\2KX93)`W\KOG6P)M7L./ND]%)>.ZV8(WLGE'K |
8516 |
M3-MZYHA#S89#N=<8TG;]`6R:!^T4E"ON2%R1@[UP;#+=*UN/4Z[C-M52,+03 |
8517 |
MS":G=$Z!=/L`#]XV"VA["5E(.%LL:G*T82Q^:5&O_W\<F02L.C?$'H2J00(? |
8518 |
MUQ!,#+M9HU?X$RX:HM2+Z=0431S\6K^#%10*#5;?4`MN?>U2$_-4^E/!V+DC |
8519 |
M+7GWZYQ!N>=/1'5'0GN(KINA.>O\!7&39WXH"7J^GV[RLKG-TWC8.SQI4:OF |
8520 |
M76ZK2<!_I"C3090!LEMNJ):,ADQZP'5D",.GF/X19)BJ@DK`BX5$5'W$QWZ' |
8521 |
MJ2G3Z-_?VIO=J@"BT9GP']ZQT]C/G,X(OG]$)I13UCQ&I+3":235%/>"C"[K |
8522 |
M1P\>?:/N&L$H(5.K<^%-A&;="J*Z%4_<ZO^]10F1?\R,\Q<RXA7`JHA-S6.Y |
8523 |
M],*'2832^.3G>FVP+@KM0O\U$@<;L";%#/#/['J(AA.\4<S5&U-._MK9V@PE |
8524 |
M)UJHR!2+>7HW7&JKXJIRKW\)$6#7S^[BJ[<7@9X)?"_*?B;ZQFDA"W)#@?)B |
8525 |
M=_D+D][0M/4K\6Y#1(>D\*4>HMK4Z!)IBSDTG]#DK./U,;"MM9%R@0>K\^'> |
8526 |
M,2K-)S=05OX1C65*6Q)7BLO?`%^VR24[G`>V%[-<4JK0:BDMK]]T9F8Q"G&A |
8527 |
M((SG-\3K#N4R020Z[T(5[P6NOHP;#W=8B.Y[G6IKEV)>_;.T(O/?.Q7HDWJK |
8528 |
MUV?5*ZT@TH%Z$)QQY!*-'<:&EV3I1VQ+RFX*6JGA4X11.KI&04=HH?>2O#$B |
8529 |
M/7T0B\X`_.#_A5>NLQJ<XO4'#<MV.=@N`WQV"%/3\1C9D;(`^GR-Y5DV1(%1 |
8530 |
MY5WK\45($[S[!89^6T(ZSRXUZ;[\-@H>)JZF;^HM("\NK&<!?>K%'&29A<P; |
8531 |
ML,9-CO">LG'3$NJ?!PUFGBW^U&J:[N<T4$63<+W+*6LF``Y/9'-M2UE.:OQ9 |
8532 |
MU6D2?=I#YKQ%RFEG?8S88U?1'I?-.Q$X\1,<JF(BK4Q!9#G?V"?#\=_1QM!/ |
8533 |
M!+BB;(\;M=;5*97E$H4RR"5APUZ**!,9_RX[[+OI=L[4&>#\T+U^$W3(8Q!Z |
8534 |
MJRC-&0C5G*`QB=.<6Z,%86X'SXOP%TMLJWB0-*W4,U&QUP3OT0XT@6.T(?Y/ |
8535 |
M'J-WL?8T0.\<5$]9I=48:9):J_-IUYT&V<\@4#+<3-)OG&`K,F$BX%`MC2"= |
8536 |
M5-:Q"GY#P&A6]IC24Q\7[!0I?SW9+&A9B;@\0>WJ)RA(<(Q?&?2!J%+U,(JJ |
8537 |
MUOL4Y/Z75<BXH/_+*C*;27+0WS^3OXCC$O?KLUDQ=+A4VHG139GUS++VD/)5 |
8538 |
MH=#5:2!8+FOQ+_19YK,I]5\[,1S?A!2:C2:X^AS-.,<B2O;R.J@X[NFHDBDU |
8539 |
M$\>$EK93BZ2+33?S?@V<3AO\'CH_;_S'+$IZ%)?'PKD#;2Y*_'%\&TXZJM$' |
8540 |
MG,*%<T*,^4_9M<8IY8`GQK!/WW[<2I%"CAA27Z=%\)#!9ZXPFA(FB36UHE9_ |
8541 |
M*WR@<)-M:A#X>)&@C4Y[A^XU>'?WJ>F9DHT)S1760>)4-?F_`(T8^G!OE0UV |
8542 |
MECBE!S(*I8P'4C!J7=.:M'F>%4/2HIB0C:;1QK723?"=)L6Z_N6ZKR*-6(=N |
8543 |
MHD-!^CV_/R"B"[`LU4P4`^\09$TW&;PQT%WQ47/,_9B!00R+Y;5R^Y15\S.P |
8544 |
M:29T7+?;@>X2'FB#\UU`2DR^#]]G%+\6FDU;[!##ANY?%&Y&?=\_2(L8/*B3 |
8545 |
M.%1<_A\@-`9-"G0)(=Q4YWL"$VW-O!KKK26PS"PHJP7V@!&HA*W4KB-W#U02 |
8546 |
M?/&:;DE'@W9,I'_0!ZL/+(I$53H\\H0BB&A^>^@H)[]!>,>ADC_G56LG''KR |
8547 |
M.;<W2%^:L[(UQ48Z0>$%QAAZ4*2WXZ)\]50Q"3UB((A7G#:/WB'@Y+FY$#%$ |
8548 |
M9=MU"LC^F3R]6X&V\6+?4>CL7>@<XL"\&^=.H[H[LJWB)*D@?,?WMMR*4U^\ |
8549 |
M`";T@@^7N(_Z^X2"1>'JRQIEN,.K0XSB^P=#PBX4QGB,!"(&(N<L3H-)*EJZ |
8550 |
M$(#]+V3WL<SN0NWG^:]NIC-I^@FAO\&ANH<!@@K;Y,ZM$TOV;373_L)Q30`N |
8551 |
M,HF+&&N8%Y^$M2YK6_`<.->,+[#2OROS^#9>]!_U`MK717@RA?/#YRD=6'=H |
8552 |
M"K.&YW>N9D.XX5/JMKO3F0.P@QD\[%ALV%1M:]N&/X&]7;B+K7^^8`0WF\F( |
8553 |
MH8<8W0V1[^Z.HG9^HJ)NKC.*(`X!W(V%N0$A);89WS12LTQWJ]:6Q7&:Z[.< |
8554 |
M)!$ZT/"*597LM/55,@=L1VHNPK.Z&N=->0H>@G87\B'0DD,O4'.V,W^1Y$LI |
8555 |
MI13T>DP")>5XQ*/KSET:*1^4YL[)I!9HQ)!3E&X`X],G-.*B,?$WLF-$0O;" |
8556 |
MZ)Q[,DT:C<2"K#)M?``F9%+.MHE%O\CM#-Q`7<_('1@@ZS.-BYEO!/G851;J |
8557 |
M&ZH7^U0D).I`@G(Y$\X&S<B`&HVE#VMR!A,O*^JU4"><U?*N!(7@[39\TA@` |
8558 |
M%'2H#[.JPQ#3U5CV`099#$&,VUDZ>!8,4"#BL`LM^'N=8V+0N2M-*'X0B>9M |
8559 |
M>ER@M$1,33E5X%O+/S4%=7TKMRK257&F$K%'(C&,D":.-?.7DN6!<C[5HOSB |
8560 |
MG+9H+&"\\N"VW%)U9U2Z=5X>=;NXL.7RNZL'M,Z-O!,&3`@Y>QH;.U`4D4MT |
8561 |
MXL?7P`CEP'2AUDL\YB9>$)K8L4YW4<95]8=",(`-62.U.;^Y%&2V#3I^7Y<0 |
8562 |
MO$,%6]!7K><`C&:VC]1NCFQ/[PDESL?'WG;3^^Z4A7F;*OR7.6;7F(A0J70H |
8563 |
MW.]E\KXFIVV]R&I",S`T0<=&ILH=S"+,$9$U#'D$4.*P&KRS"M'(F_GSZ%HE |
8564 |
M9=H>`;EJ#@:W_L2-'0WY&9`D!M`8_*V#E"T2KQ<W?;(`#_=4"^&*Y5"BU#E= |
8565 |
M!R)BR-52N%JE<"&MCF-G4Y'H%"T,"/`^QNH_2BPAQ>*Q]#FLU=RZ1WEM"/1F |
8566 |
MY32U@0#22F<82"CTN\@EW5?+:L,&I6=NFW8PDY6.P#$0P3!\@`FGS.-IZ?OX |
8567 |
MC5^915.X8R5]X7&/&?S?Q7UQ%DR[FP5))'?62ZM#@[<#P@7/,:;+>9*V+]_, |
8568 |
M'?7&TNH51_R`);M$F%[L^ZB2P=7[LE<23F6PD*+\IBC'EJPT:D6U\H>'A7P0 |
8569 |
M2NM^W<35?,@W#+]&FC559,@`02'!.Q/9SQ]?;P:FN97L=-UX+(6;N32/7REG |
8570 |
M4S/RJ]_ZR:^.GI)A`G40I,L:JLXZ&N[H+H.3@_U"'RN$GW;@_F/OT[!W\7>Q |
8571 |
MOS5:*<3GEU>1L8\?BH(+MF"=]+P(4!6<":_^'CE?F&ROB&?HCYP>NQ=G%S@Z |
8572 |
ML8BHK@&3CI&V_\V5+YB+!63ZT-CJY(L$$^\#QDW81O]<9T),U;OH3-K\DZON |
8573 |
M]A"#'Q!NN'^WV?EKJ^_+ZIW1/T+!HFX-,-E>[(AJJ"5DR2^F,8=TMF%RMFX! |
8574 |
M,V[+&!+&6A#\W3&_1M(NH3:$#X#^&\X`P'DO2X;5!',Z!_US1,L,@F_X0,XT |
8575 |
MUEEDXT.H5IHVJNX'[BS*6=\BT7K.$%B4'9]T@.A'6FK[#^R?>OWHR0#&SJ4R |
8576 |
MW16SP+Y8/^'SCLH@6$D1$+'W**K77804`BE&392=7>!12`_4P8V.!W%`D!8F |
8577 |
MKB%)V%VU?./G9^)>TLV&(EA$P2LL*`Y9N0_^X,YCXX=L[_QWOG[V"T$Z]:/- |
8578 |
M(:M?/JAV,K-HB%W#0>DV?J]J+^8H884]JP!DR`UY4$^A15VR6T1U[?DJ0,25 |
8579 |
M8-2]'^F$00E>]5!D<S+DQLF-:@J9[%0J/G"WS`Z/%6]N88A$5J%A6L@)?C-+ |
8580 |
M5?\6"^37'Y@9V\ZIS.YN1JJQ*9P>4)]_V)RX'-/9G?\2,ND"HE*G\CD8\V.* |
8581 |
MG-SY!35>2,'"`JU2=0,JTFHCQ5F)-FK!@+22YIJ7BA*0$:BL[+_.391,"'6] |
8582 |
M\"Y3*QD@'?/'E.>.'Q.B".@43+*D58)?,"E/Q:6XQ#N6ASXKZ]3!"O1%[UA8 |
8583 |
M6JVM5?G4SYH+H,X1<99MER@5^QJM=71B:7O^"E>Z\/DPVG$''A+(=?F!E(3# |
8584 |
M'<@.0L71ED(P5-<\5JGT5O>-4-?EK#_3@Z!K-\D4@I"^^VQ^@OZV":?GB@0_ |
8585 |
M=Q09>_KL^8'I6\>X8H0.%+3.;)OJ,/GYR?6::X[BL:CFMPM?+Y0*!G5W*!*( |
8586 |
M<&!28J/O"BN!'BGS#ZL_@],7+&\"^E:B#`A5N095QH&Q=QQS0;KM@&H:]*(# |
8587 |
M.<=<41MT=8S,\YWS)%M=J)GVE1$;WV'4)3@C!OV^^KK22!B5Y-740G@]!;$9 |
8588 |
M%/FM0.LNA[FMGE+V>+C<J/>Y-1MWQ*6R.>4K2S2MU4;'&+D/KSQ%C('GG&M' |
8589 |
M-#PKQ9;7+;YC.3*+:V1X#-D>;C/5/UCJ,O#\M.#-&-#2M!HUA?./Z4]9['1K |
8590 |
M6(L`<ICJ&04HH25@O@"WI*EW>)3?C*O?CP/GRSRTL`\REU&HNRGN704]U<8B |
8591 |
M#8L1;@-N4SA]4OZP:$T,<>MG(<9%CI74)H30R4.9"5%.@6M+^_D49!K*DCT% |
8592 |
MIOW'>C303:+_=P+&U<K>-N1^P");`JPX?>@_!<!,#7!4"!N2?#=(.EAL4^_Y |
8593 |
M1^$ROR(EKF;TH"CLX'D)32PI_.K.@_;'L`+QF6?<C"N_L)7=YXN^>(O55J/5 |
8594 |
MME,DN-)W!@DRJTE1ZZDDA0G!>>:LH`][VN/JG*1&RYLDH"@\FL`O0*[7)%X$ |
8595 |
M''_!KK1!506_\G*)*%7N6]D),6XW?[W,@J^>@C]V(>SK="6QASVJY0N9@1EW |
8596 |
M3\O>#_4/)RDIV"_"7UFGW0J&WQ.&FL9I6`'&G@(8^)[G`?(A\'J+%??>BEH% |
8597 |
M_^8?ZK:/%2%(/)6*#<]44ILY:#L1I5%U56]Y`3$73O/_EE6L(;9I5J0@_0Q! |
8598 |
M6U=3R31Y\4<".PH7HC::U$U*%?W,2YT:X[8++`,#!T^NC3<Y3MDD,Z&C/,+W |
8599 |
MK,,*JA3KULK7!16,5A]?Z-W#*.JX=CVUDG'X=AV,=%UT\$*\XJ1B;:,W_AHU |
8600 |
M(RZ]*0H$.EU;0S*JY$?@V>2RQJ7!^5XFL:(38H!]A,[F`K)T)Q$#&>&M5W]1 |
8601 |
M<S+9_ORDX]4VK$G!ZKBGS=&'17=$'PR-^Y([P\1(9A-%0UN$(YQNIH'[,X", |
8602 |
M-]E=:+L9`<!=5176O&!+(GAUSDR'D3"Y_?U8@FERE_;0E<Q=/J$])=I;#-.I |
8603 |
M$5W]J3;S9PYRJ)<CMK8QG\RN/9LU[S[@PE.8[BI4Z0'JD>G53,4X?YM8%S4S |
8604 |
M!.A<$'`Y)%_G7\*]PYOU4:V20>Z^\.]AX>9K0YQM<K\LPM@J@V-I7F?XD'=T |
8605 |
M_?>ZV#4>=(39`)?!<S+*W"`E,19X4.TQ]P4?HARQN$B9?`VWO7O'<V9NX%>G |
8606 |
M)(+R&`1GMUF//%,5:(G(R?FJ!].IELWSX=QOH3;D;@'XD,@I[3S`#`/4Z^!( |
8607 |
MNF+G'%S;`,49<PN('K^/@2:0TJ2'^%!K^@]=HKL[^_P=49&<7Q;M\C7AO%JJ |
8608 |
MK5[@>)TO(,6MRG'_%U*[04;XRLL2RT9$#:3![Q\:[;QZML2";/#.JQ1MOZ$F |
8609 |
M/?2WW%_=>'.23-D3Q!I.GGX.&MN]FS*$=.X_5-9O"SN<30PG6?G)C&RT4W_> |
8610 |
M_!0'C%YFO8J43J^,A6G'9Y8PQ.(2M.PW:[;V*R.01S)$9LH;`'"1>V5XWQGL |
8611 |
M5A,5F5PM''R(,M3Y>@-AUS:A:G.2J$$[:M-(W"`H8IY@PZZ_NH_<!IU1SB[7 |
8612 |
M$2/"O5O3=Y*P.M05V*!@"R4N,=<-;PJOP<M@8N#ZXO$X9\!'D_-L=C5*4G:$ |
8613 |
M1FE4U+<&3%/@35DIB@3WC>)?H/\D+",P!/\5TO`.Y!>5C2`L.>5>$8*.P>X; |
8614 |
MSN?/I<3ZE5#0ZPZHE\/UW!1KO4HG.>1=8.T-TDN9!4$4CR44`J11$77J]L@T |
8615 |
M/P/W?&N-_7!,8Q"B&_.Z2X4<6-M#\IAD:U^<P,=J`4FZ0O\+I_.61[!U)W:= |
8616 |
MX7\V9(18)',-C8IK,88'N_NI`+J`-.'=/F!N6/&;M?$D;UC>EX7\NI1T%`JX |
8617 |
MK+@(KKBB3R9YXZ>F\^Z?H'>OK*5YS0G4G+1X&3$%(LJ*;_RNH8`WZ@N@>]<@ |
8618 |
M2#*;R\7+GW72")AJ;RUDS)K<&2?.N)WP$"OY45_.[0JJB.,^\+]Z_7O%:](X |
8619 |
M2E$M5/^O[#Y?#48+HID/KJJC.O]PR!*37.`Q94/5N)^T9.0SDF*1,NC][YJB |
8620 |
M09QV,]\OK``\BRM%.JT`OVH9!)X25S%4X?=H;;%__A&9&$;CUG3U#:(;51:Y |
8621 |
M_;#<`1#_GK2=/[D_GS?/"E0H]VW4!_\9<\:,,$T)<'3)<DO];`<HZ,&ZG%_> |
8622 |
MWT7&;UGQTD&YK\)4)@C3R`M<QH-&\ZRIRR1$]M/BO7%[$"!VYU2NE(9F3\Q7 |
8623 |
M^-E;B.8"2QB[95/??HMB7#;4G-"%$H%0=J80@/MCM]%`1U:2DG[_F'L"1*X> |
8624 |
M08+3L)'X'(S`SI[96&Q_D"-G:J0@'-GY!R4U)$7.PH]2TESC,`\L#N2]`085 |
8625 |
MXOQS0X:%!%6VD1DBEW9J0G;G$/*_&NBCW:.[1Q0#8K>B$K0L1Z6A1!OI8HH8 |
8626 |
M#CXY&WD1;&1OIX^\=X&Z;6TIA+5`$/S]$8D-I75#PN#L@BJCYE(7L*2OB!:[ |
8627 |
ME`(U'.>8U@S5J/X@;/29G@U&9&0W:<7Q/W2:4`GVFPCD6:&D'=H(O7D.V;_7 |
8628 |
MN`S`JK0F-PN@\8N85"68J6D+3LGB`!RDDEO9DA2(:$=SP0B#?4E(V^M?@\T2 |
8629 |
MHPX/VT"=R\E1L8U@=,MP[;]_.:'_AO"$%?[A4:A?D*^)<)5LLND"W(>5QVH? |
8630 |
M0K=`<!4;^5EZW(;'`ES^RYD#C/`R!F"04:,@,.$_/Z*(O"VH/.-J,((9GB79 |
8631 |
MC9SUB\=(S*R%'MACEHMW,"0D\-<2GIQ%&EIDZN[?R9D^.8R2>T;0P6NW-DHV |
8632 |
M_W!9A$UAR]$+]&,9)'H;*=N0ZEPN;06%F6QK5(K)Y.Z?R#7IJRC?`IL*3AE3 |
8633 |
MQ5GM]9:I`_[^IIQ>6M6[3/8',Y^SG:OZ_6=?^$3X)]L1XNCO`3Y(V%_MPR:" |
8634 |
M(T"<8*#I/,HJJW/8R=+>$SEF4%BD!M.$>1\@1((5].R!TLF72Y+2\L];4@+Q |
8635 |
MHPBLD=W'\A.F"N*S`8(?X[+PNM=V0F"1<GIIULX-];LOU_LQGIBN!S;`\2+D |
8636 |
MFQ50,0:?87K^+[,"CM`'_CYX!.9C(Y3[]3;$$95%>@VS"Z7-I>$?MV":$0CC |
8637 |
M+C!3(U/RS.A8;KQ,@=A"C3G;_8Y`*-DV89.'H3S2M&/NO*/M\X>>H@"C\-T' |
8638 |
M/.]"RPT[R%`##GV.\.>G%J\XDL"\.-%M5R7?\G?#4O@5K:^#A\CJP(OQ'%+R |
8639 |
M"(T+N4G"DD2U`RZ7$!%(+JRL3@UN76J.&M\UI-F+:8[ZQOF6&SET0G^->LV_ |
8640 |
M/%(W9P:=[S+J:9`^+1>C'>5L@J:>J40&IW`/"ZMYL7CKC!*W]E/.S:E[I8AS |
8641 |
MI8@RDDI#_VV#M\B+:4O'\*/$W;>^*_`MFLC5QZ&JP01C"NT7AS>;Y)9WAQI5 |
8642 |
MV`F9A4LR+H&RB?0@J8#S?LMVBJG(>ZUUFWU8@S3CYHMA3*0FNBR4\"RJ40DH |
8643 |
MU-2P;Z.EG7P\ZG-!$)215Z?9A[7X[JS0;OG?27>^./W3C0L"TA?KE,-TNI(0 |
8644 |
M#VVT*_:TW^CNHV@5L@TDNBI,TC<6TP6]"LH%\AFGI=Y*5#G=5TA)&&YRYB[D |
8645 |
MOAG@O?I-7.4/-K9M3M[_!7)"#0_2:%?O;AGS/4[XYP</C+AY57O:`HDL#LH8 |
8646 |
M>H1!4Y-D6C)QQZBR@AT\(G&`+F>W1T>3#)@W]+7SXLWG!-GT#B%"KW@N`7M1 |
8647 |
MF[1O+FV9G?+&/)N8*IPU!PORZRD4?#3TW<+&M5X8*8:YCFPS,%0:UF%TBP@1 |
8648 |
MN-D2O#..COB^]N/P%Z0[&$YO>0?2NBGF+P&>@5_=<5I_`)8JD0ER_/S7.!:= |
8649 |
ML8^I/*W!*IR+6LR^J$DL1$+TO8-A:BJO<+)A('Q7)65\9$5L/\G21C((:'4J |
8650 |
MKY.QWYAJJH+(C#P/LP:531D?::#D<Q^!HK662LLT?=15WV.@/;WS*10_=<C\ |
8651 |
M,\/)(,^D!R\;![QO43^6523ON=U6CM`ON6V^/%3FD9HB><X,_!YLL&-&Z($T |
8652 |
M3W:E'^C)&6N:%0Y79E6$#:D+_C`?)Z7J4C9.*TA+7?GOO\_FF2=>F2X$U$<G |
8653 |
M_B6^(*<=J/^;+V\QXP#ZO_X(@-C:IOTNO>",\Q!*&9&R*?WHI&]UWCDWDEE: |
8654 |
MF+\4<%Q:2/&_L-5<]9*%07B#;'VW9C"*.=-&[D0[K&7!'8\D@Z`>M8`R<S(2 |
8655 |
MO"5M:F<0;6H`:+FU*1]O)9E"1N1JN>W*(O/HR_HE\[XJAP.;&D+ID&E&22A@ |
8656 |
MNI)`)7/8)W09>4)]%,ZO4*],EIX1S/R-`D((7=PLK`&#M#!*7!7@_D?D3'6- |
8657 |
M2+=]Z204T;R$M5.MG@-F$LR\*(5))L+[T)RN.54!\`]]5C*7^!F!P0IJQQ"P |
8658 |
MJT^CZG]ED6L[KNNU/>.XE?@)MYQ04M"H660M!E",WDRH%\8VGB[J5TI9D!'+ |
8659 |
MM1>6AU,#KI\F1.[9?/Z5J+!6419"T@N;AAZ=%UZEJ0/.2RD=8K23?YM_?:\R |
8660 |
MC#Y[P?6M-E\R0@_6M70]&X@L-GW]^"XT128"RMGE]B<@XD?<LCI^G!?S"6!< |
8661 |
MZ[PJ["21Z!R.4/E8CK#<$S@P`J(^C#1N=Z5O0NN)VD5<MICV>?7/&[9(U`Q! |
8662 |
M*B$S4]S9RZ0V;\-HX;IJJH,%[<1F[=P+6I1JF`@HUT/U4K.E_JAAX.90>:UJ |
8663 |
MX:_M3E$0A.PUUL*W0AL>Z>!KN($:YB1X5EV?#"%'PH7P;`A6K(3A<3AP["&" |
8664 |
MBOR**.IKMGX`+.^[((>!SN_710O]=<=0WCRC9M(!5S\@A'MH.:+&!]\R3D!T |
8665 |
M@L81*RC8[D4ZJ=L];4$8VOW]NH\5M$`1<M/Z5SC21T!W/R]1RAZ9BILG&T)Z |
8666 |
M'<DJJQ#S]\SS)S(%J&CK:P^4'_<K=D"B/=),H7GA#,/CN=I"Y&N>#H8SLJ2_ |
8667 |
M27H\!DT"W5I9R(8'E:^8[/]ERA3L(*$\T6B69L+_O/[T#&=UO-D?RO0-$7D] |
8668 |
M?#!0N$X=+DE[;M7N2V1S'!+-)D8)I1D%,NZ]L+6!P:#"5*M7UJ,LJT-)MF9I |
8669 |
MRJ&;9LK<:)88<H-SJ,ST^4J`#X:X9"?/<,57X%5U%(\]P-&@#"58<5U3G4^2 |
8670 |
M7[-)\M*7QTH1;_2+;=H(IWJL\)=@'7T5D_'IZ3UPXJ),:!>X!F"+A:T!!@B^ |
8671 |
M)IMX=ZL<Z`=;]_CJL:55-2Q4V9SS#@1"E7:=Z@DIG;NPPLU"RF$)D8VLE,/+ |
8672 |
M?SE5QOBS1#;*-B):O6M!<N?)2FAISW.\RS4Q&$^X*G]#M<,87TRY"/>-\]O9 |
8673 |
M*^>Y,4#Q<<AG>0`=BD?*>I>52#&"5[FG4^DDT,SLS#,TJ\2XP8[0BR7Y2R.E |
8674 |
M)>N%^1:*-.2B%\3C:@%-_]%W`".R322T$'4`E-SGC\!CT$)'8V?Q\-@\&/&> |
8675 |
MY(;/U.74=P=0HVVCK*S[]Z%5@%M@#I0'(IMJ6^?$-C"^.,/#:M,X.N%\R7W+ |
8676 |
M_K4?S_<:X14QJJJ0&.H-B^T^N)4;[5R4G`>-'C1\X%V`].MN(FZ$K7W<0U"\ |
8677 |
MO$U\>4QM(W,?*-:(($K5..D"IF&,TUQ6?C;"#N-5Y$X@:GPM"+_0'Q0<RQ,F |
8678 |
M4J"[%I?O7Q/`G),I%AK@0^A/'^;#1X42P!;ZYK(A66FJZGG<U`/83C8%#Y6A |
8679 |
M23,'>R^9FH]]O*D)O"OD^!K.K+%FBV3=:FUGA>QAL2'X.2K(0B_4URSN,LX7 |
8680 |
MG"V(AL#%1+7,;J=.C/QABZA.I5*'C_(#B59>=."'$M+!-+53)?E5*U8F^M5N |
8681 |
MN2.2,[ZYRL;LJOSW`[IOM?T*^+]53]H6MR%,\T,_/]+&@<,SE_1`(4)X7E#' |
8682 |
MSM2<&9L4C2E\"(0_9];3;M4TAX5ZN4!GN*(_I%O6?UQDEMKA3]B+1>VC?V/I |
8683 |
MN(TJ/<U,T9/@<BQ5$6$XDV."7/ZR9H1G8S108C_$"H10,R4[X;J/OG,?'&WK |
8684 |
M@RXH;S6N.-`0&B174^\\'6ZDO8691PN+&+`6H1.5AJP)&Y=U1G1('/`@A$_) |
8685 |
M8YHESK\,>&5]YM'QV(N>NC-RB`H$#6><]<]2=,ORR9_B&I?XPX=@A$5!ZO]@ |
8686 |
M7%L(.5'?^D],C(HW<(B](B%T[-@N>8S[]]B,OO#W(\U'!IBAZY.<)H%'3,I6 |
8687 |
M4CH))`ELQ^T.KQ3LWD"\1@_')/,X^%DWQPOK=3[RJ\5.,`*<^OLDU'8X,IZB |
8688 |
M13B&:\99H1[#),>.,S_[[,GKFX;^?]Q1@/$?=ZS59%J$`M_W?WX*=K>V<)U7 |
8689 |
M7=S0<)A%__-SSPDZUUJ]UIC8)3P6]P1<'#DIF<(0\#S;#S`)NZ..5QT.\UZU |
8690 |
M[4,H,*W'>(>JV4^!OTF5MV]%_2'.2Y69%^#-`7Q]%L&Y(XR,DB.K?<!TRJTH |
8691 |
MS?#P2'CEO/)+W.`1FQX"VS'>:AL[,.8,'+N!K_+FQ.)R_1KS]#7M0AAGDK1' |
8692 |
M,"9'-4Z.WVG<IBD4YGO]/@$,A@88%P"L#5-%2K8.0+A<60J)H"#9'WZ+#A@K |
8693 |
MF&^D6<`7K?()A2;QLD:`,9/RK_P<"FTL5>HQ#&)@`:3X[%\E$ZAN=/8&89/& |
8694 |
M""[?^D(;M[=W^/A>8F5SBEZ'J:NP-FW60_4TE2:O8L=E=Z:K7=Y2E@O044:L |
8695 |
M:WM6@^RWV%.Q0D*IY1B&%"=HN-2Z4CBC+:9?7+.&K))&37]4)'P9ENGA%%M8 |
8696 |
M/DNB)OU8/$ZLN98S?.HC<V,!0?]O5D-;9EU0-M%M_>>'3#$O.[NHB[Q))%AP |
8697 |
M'U3N=VD,P4RN?*4@%U!0BSK.(*#''ZU,_:E_T\;)4XE\^&/.B!G4:2FG4AO* |
8698 |
MX.V2U@M:[(OX+_X,XVA)L>B>^;-D%'5C.,!0\?$19+01Q!^U6-THX<*F(4\; |
8699 |
M\JZD\4*U>\AF?DR83""B?Z\*.16SV(>HC/RB(M-DMD/20?%"&B^M299H*3L9 |
8700 |
M9"Q\/4ZI*J-CV82NS)FA1OJ23^H!6#0D6J,:E8`C@8I*98K[L'&AE,25JMO< |
8701 |
MR`D2M.&ASOMCL(B][6R[A8>QB5BPI+0NM'HE6#LN@.P\"7^MSSR.Y3%T5'FZ |
8702 |
MYJ9]5/05-WY/[V5A((M-TE*&LFKQHO%M,K7"DRN-LT*[TR:$>:E`](<8N^Q8 |
8703 |
M-3K7<Y952"Z@E9HKM;^UWSGW2VO/K45;BT]N9CB$[Y@J:!@-\@U6<*WY$@@] |
8704 |
MU$<'@K(4B17]\Q,NFB(QESYSKRC"BXRD![UN67IE0_&3SM[(M._E4`J'..6* |
8705 |
M/8K'`OWM`<!V%^W$_6PM`+;RHD-88.AF*$;E\@5F?7E662%B9M.G'4S&-(PF |
8706 |
MW$`PAVKC"0PV6@K;&%N<'DK;]V("S\:VG^#_4H@(\W+ADZUJTIL,^E.#A$4( |
8707 |
M\W_FE(53/Q3+)/!<*<LPP&W^]<&%E4LH0LISXVM,W41)<V^R=!MG)[GQ:V2G |
8708 |
MA.:7I_E\ITJN9/[E',X7>5^VG-\U(Z/HKJ/`;062-<6NKL7&L;Z5E=!'PQ*. |
8709 |
M<I$DI-S=WQ[O!G\!*YAC>F'FK5W8:SO;=A7TI6NR=B)XA\2F[4ZW-JHQ#^?L |
8710 |
M1;?@>62NCX?BN62%XF<AI$!":1-9.HBV_@%F>X7_JQR"9_H>.1&,AQ*]WU'R |
8711 |
M?(VDW_]240Y","!/<K=.J#]/J@Z9M#P?B&N+U]>5<F/NI71PP=(%87`9X887 |
8712 |
MY(\MT3@7PR>[^?U#H6Y1J,R\Z7ZFLB0O(@Q-*`A*WW*3X.S9-Z9WB-U98_\Z |
8713 |
M=[,FX`>T@7E/KOK9TE107XM"@*>^&;EK!F6+6HHPRC)2QG#B9F53JM$LB>PZ |
8714 |
MI8<&_059OHPCQ$2$0LKY5^'$+L2);]^>NSY=VQ!+)&]LOP7,VJ2VC,\IS6)! |
8715 |
MWD](F9$UMJI-;1;[B>D@Z72AL?7W83?=ZUVTD>,VU*IBG!Z=:'SD"!W6RS*+ |
8716 |
MP?W=<X!9`B/MW^FMW08X`:%<>]6ESV@^PW7B>IW*E>9(/3KRFUYKDTU:Y>\4 |
8717 |
M/LX0$>5F[W]S@65,AWC-RHYUR5.M3[TAQ,]1"NL";"-$8T:Q`28/G^<1PKI: |
8718 |
M8?C+\Z#VQ3R&#NF>^"BT:#,X^"P!8$%:7H7:E5^_PGB/3$D-K?*XQ_S1.NK( |
8719 |
MMS_R7(4,[T5D.G&=E4[=%^)(81-6EN5T3W9*C]>?20#FJPV;0'AP6QM291X^ |
8720 |
M5=6''P%LI;#-)`DS,[D%T0CJ)P--!P`,[TZJ>TAEA4^8T+U1`ACX"$_5*-0Q |
8721 |
M6(YK7^;.;NX'9@_"5EF<T\E+[?I)4M+,=KE5CLJ-0=\Z:SVUU;2T5T+3VX?* |
8722 |
ME-,C6!]3Q_=:IR'E-;1?U-'HTYK3<`&B7Y0)D>$_<)[/E*LP:'X5",F!@5^2 |
8723 |
MS&X[`00Y*R$-(#UJ*\9U*W/(J9[<;>WD<!PE(LVGS'!BNH*`(1HPU$J+R$8- |
8724 |
M\T3%/"0>6]G@A#?F%%3_01VQ<QCEJN!2%W^,\CE<D0BLT6L5`FVR_%TU"+\] |
8725 |
MTW_E*_&<+L=6%!=",@5J`#_1FF4KD.N2I:;OC3?[W5L%)XUOWRU6A0:3%\RB |
8726 |
M$B<81,UH*;C72BVH5VAL\]6#\Z`W-.=YGT]KWQ$^4).4YG1K)*1UJR%ENWW( |
8727 |
M!OQLZF640M<__MJ]MW*5!/>LB#B1BJ2LN->N%BL3?:_8)I]WFO2@<6YN/-`# |
8728 |
MC.AFS*CP6!;>/Z&DC.!OC2=-\(S]<-&677M6ZZLU/+H7KM?_0.(RK?`GC<TE |
8729 |
MIVX:N"*3&!J9/3G+]A7'J<`C\H]AF]61.[.2JPLGH<F9#1\LF>DS)0LDXLI0 |
8730 |
MSN-45"6M``MCOU"1[VC!3:1Q701X08+B"U.'405?7T\K4,"U1*P*T`AQ4>)D |
8731 |
M8\EWM,`)3/.Y<&/E=8P(P,^R<WS490Y>,O=G+9L"HV4'LP;D$QV3$I#C8'11 |
8732 |
M"7A(G^$V0NFK5H8AVX`+`^5)"7&I[RO>W<T%`3V5ZL::+:X,)N+LOL9]7TBC |
8733 |
M;WPK>R\H(K1OXG9,S,Q-X(4DZ,D&*+\HP4`LI_6\!..\2/&`:;.9D[[T>GG( |
8734 |
M@CF@8V&&I<^7":GW+E;8Q^GU8@FMPA-E\[2]$/.M@"C=*^E!0>0M&7J4*#KJ |
8735 |
ML)N?H.:1$?;];!:>S*9@6(2M6'!08G?G#\=.EO8^:1U^OR>/6ESHB<E,)FO3 |
8736 |
MY-VU%F+^08*K?LL_A&!`:HHSS19YI5=\;J>_Y[7!0V*'_:^DK5;@G/POB5?\ |
8737 |
M@`0F`*@@IZ!9.V4H`-K=!$24;%(>4LYO:CT&,#8.4]:H(?WWO"(KB<='8E/B |
8738 |
MRC=3#;2G>/(W@NW^'!T<'<46V+F'2PU%FP5L"0T_^</?)!84?#0DW@YB06QG |
8739 |
M3AH2.!1#/@J-;)*=TM-CAFF^1ILI+2:?R+6K,]<+8X_UM=NHGW8<E<IC6X#& |
8740 |
M+UT]3>$NI3KVUI/W`-%[=IAI`7Z5YD[UV,$"=IDTPMDA_!L<F@X5J5ULM"Y0 |
8741 |
MC3!=EO6>?OQ2^X^!K[0:$*<R"I`@/,MD6(S`!WC!QV`0KNU*=,"9]Y3)\0LK |
8742 |
M4S-4XB4\1B#<EB&Y)N\.Y5X*M?D??OOVGW<TOP;GL_\MOF$,D=N@#%69^/F) |
8743 |
M_R/M3UK3VZ]-J(S(5Q7'Z:"1QI93/^JA08"E';*9_UO_Z;M?AWMGDI"XO?)= |
8744 |
M6!Q9+F`[Q@>?FGB<&?6NLOC+NJ@^:R>BANFQ.XT:?\'^1<(YVC6F\'D``TX1 |
8745 |
MOBB<$Q_I>+-HJCJQ9WF2?K-)5(<PSC3QY5CH%9K/<T+DY/!K=/:WX*(1Y |
8746 |
M4])PLJ0@;44I-C)7LB6L\HL/`SYDJ`-*-=>./'<+!2*.%:Y.Q8+-EC9;ZM#V |
8747 |
M"9STKG/8(SCDS[$FB(P\B+;8DAB5P-`^K`$H-MX1@?&FXZJIN7JQ;C/2%3Q$ |
8748 |
MCV*.;8VPK\V5)D;R)Q0PQW8RFJZ<II&I961PC,<JQA&!$8!>,`;3)_K8-L2? |
8749 |
M4/;OEV7OZ+[>#8N?X*95>I\0ZC>&X)\VTT,/<BR4NMOJK<?>`^3-MM<ZE4V? |
8750 |
MBM>7YLERWT/&%>T7&H"N>N<`$![,UI5[:V3GAXL#96.9WMW2^@OU7@19['9J |
8751 |
M]6A!:=L!S6B<ZY2$J8<)TC"=*)W]A:",?D#7%SOV*ED;HGJMIM3M=WXU1;O, |
8752 |
M;:71/5"/%@P<ALO-%ECU+BCJ^0P^%)4\$;>+XL?I&21X-GLI)*SG!U:75I>" |
8753 |
M5QBB!EVL>`UA;IG$6T+4E.$"=WA>RJB;Z.-3VK)F)*+9NBD.`45UB3A=2H3V |
8754 |
M.#*-'Z"LT("*6DG-+M,1O!#SE>(4C:70XF<?'$+RE[;08P_+[TZ6G7U0A,,8 |
8755 |
M!(@-PKAB%Y*R\@?S-_<2U(T!HDTX-3HW05SY];**WAXN,)BTHW#J-TF63TS? |
8756 |
M%MC;,+@?XQ!J)&P<0X7F/9,"U1\)5VNXN#&$OCK@L="B?P6K)2L!&-,T\R'% |
8757 |
M&J<:UET7#QBK+7\&&@@'&D/%NMDJ>'5,+\`FV]8^0!`YJ!T78^/QZ+?`X\]/ |
8758 |
MKY41,HUGMCGF31^R,2LY*NC4]LSU)2+QRNPBXB_FOS\CZU*S2,]E7AG"8]!_ |
8759 |
MP@;HR6,<$N\`)N`"T_(@,>/T---FY5KJ;*(HMP7(,DR2OC6=(_6A[M"D2)$L |
8760 |
M8"11+%>?X)QVR8%Q6;=5%8Y6?&D(9!YSO[%@G_Q<OY8%SUP$K>`_9Y>?C1`( |
8761 |
M#@S<N%_XJ"SEB70%O,5R\20[QSCD.+<HFPS/G!86_\%!B+BP8;8W=?)O:7]S |
8762 |
MC$LQ^K`)`I"4%MPRIF(*<'Y]/\UWH6K=?7MC_7B@27(S</_'%M+=*X]/"1EF |
8763 |
MS=W$U45_*@4=VH6/$W[TJ__0:HC7\$BV6<XP@SGBAVKD3+!A,L_,.,YAO"XS |
8764 |
MA'HCSN1?4!Z;.<!S`9RFA2[M7RAA[76`\'ZW!-,;*S'-&GDQ\]=YZIE:($6N |
8765 |
M[VTL+D[S^\'#.ZS;_&R1X'+)U/2IP8])>Z]8?O76ZX;((894<S`Q/)<_ODY& |
8766 |
M-+$-:U*5\HR6ZD'<X-9H/.'1T/><$LCM%SZ4T/+O\9!%OU16PL2(>=2>4%3& |
8767 |
MB=L5DKOG/HW)U/T9Y)=LYP("`A-R""V)9=AZMYNIDL?BPSE6NK&W7I/4;7?9 |
8768 |
M'#I$#/INSKRUHK;:2^42:[C.-_(B1]'/7#ILP#3IF;7U:/)&5$\F_@U&YX-9 |
8769 |
MJ@ZYBI+^AS1P[V>,V<2BP!'5C'2K],7J=$/AR(@.E77\?$4F!MCP)8?3JU;0 |
8770 |
M3^H^6:9NY<MC%)/#8^QUJP6O6E44]#AO[Y?8INX3W_P0.-J%K!0!;]V9MQ%B |
8771 |
MA&=HVQ\OB+,U8!]:%-#H;#%1Z4".'8[U9E*(JT`2-&7NI<OS<0V)!MV_[(+K |
8772 |
M+]"&PI_X9(0>O3)U*"\TPPZASE##_([:QZV#YY51M8P?GXZ`+M5F9=GK%;IO |
8773 |
MHYF6&'JP#W2#N1`12H+A^P=IWQC9XL(N`[0`RYQWTB-N:)H\\W+$RU?S"];< |
8774 |
M^PB&R8GR5#XV0O,0;R:DH\54]\($*\N8!MI(53J!]_`P(VQ<(F3QG0HE*"09 |
8775 |
M+*#Z(BFPKDL861]EBO3D98K#>\GR@5OJ^+M79Y#%4N+?X>P@+\#!*$\SG2!N |
8776 |
MG+NK*&9,?8)5)Z6*6BSK5_J=QDZ[4Y,DF$.L2X78E4Q##&I%D;?H5G]"5=&I |
8777 |
M/Y"7N"(D<S`.GN-/4/Z)7]QX/)KHU:*R>1MJ(%Y!Z,&]AHC13MI7O12X[HFD |
8778 |
M?&K!1+C[4*MMCB;U=^3`+1'UL)@R7;8#!2`<=4MX8;T;E'H+74AK%Y)'@PXY |
8779 |
M"$885&!?DWCC5<0S1`^-5+;AUQUO@43W;*I^(/(+L5H`VJ6R)NFXR&23'F(- |
8780 |
M)%H$PW9+%?L<9W@'&JK`LQD_RB$9P%8];I`1>K"D05H5*=%M[2>7B]N"FR=$ |
8781 |
MN)+`<]W?NOB7;)8!19%&[6*Q?Y:)U_ME"^.4'AU$;\%/.L'R!>[+ITBV9`BR |
8782 |
M5N)>M36*I56-`:%0'8H&?C&^P'AA6,HOZ,0[]A\EP'BPGN9;>O[!X7)F;:Z= |
8783 |
MZ>Z[KG@9%:1B1^>F52ELG!+9[R?LN"G\5RQ!CT7G)EP:[<,.KL[BE0\YIA?` |
8784 |
M<,&Q5;$9/"\UZ%I-JW3&D1*(L'0=TK^BO[`?Z!H-V<5KILKTO5`K(FXFW'2C |
8785 |
M"VLVJ4TO,3V]DBZU/=C/1PM7T%M.:Y\(0\6DZT+WS]08A:,%K<BB*,H5PV=) |
8786 |
M7)2H`%2ZY,\#*,$J7)CE-GLZ*4YY(*7JO9%?$8UG5E/@0W$CV%9&U;8\>?GO |
8787 |
MWT.#]+X0P"M9M__M\E]!VP0!,U3\'Z4GV5FA\;8<E$$3DR+R.52*ZG6;\(J# |
8788 |
MG_W#%_"<O9C5P>NR!R73`)=(HFO83]_4!$>!$:5LEDA_;P#MQL7!!EY46*84 |
8789 |
M"9(@-A!:K.VE_='"],JB(Y-IG'`A[.J&19=L=;M!SX.%WA5,LH*.>-AUP:/C |
8790 |
M-G#Y[!PC=^#-.R6YR#,@B7"URE&N%[S97L!"AERB4+NBMR&8T*K\HTBP/N3. |
8791 |
MC88+?R#/IE(B2?D!3J'K.4BSR$@8-6]D4>'0Z_B;Z^-K0MDMI7'1O@?]T+9K |
8792 |
M08EEM@0,^!8+]A><UA?+>+G]R?A#`J/A*&<Y/=%(;7WO6)2?&0R1>BY7'LYE |
8793 |
MX$@(!=RO"A;L6QO0D/0^>,Q\2`F2D&:U<OT62!+,"6BG!%K0P`';<6]\0$G+ |
8794 |
M7Y+Y>P'WJ/]E04TC9$A_$1ON@Q]?ZTSY9<44LE@K)#Z'V_W^>&0#HE.A'N_\ |
8795 |
M1%)LO!J--&VG-<.6L.0XE]CC+=OD3&V+5<P,V@#3!85HAU\RI@:5/1(V3`-7 |
8796 |
MCA:K$\4OA9W"M<4/BB%_TQ'Y1P=C\3N |
8797 |
M>A354<G,=3]!#B58M![/)H#^KM6I!^/ZU"2(@P9IVU>OQ&(T#AX'29PU-_Q] |
8798 |
MG58Y<3BG>!/(:Z%7+2TT`J5!(_D&K-.(%ADE)DN7[Y+YB&(V"`N4J?D9%#$C |
8799 |
MWRN&U37+%=`KI.#G2?=$P-D\ZY8>8NO[Y6648/.WP=Z_V1--.>!<*1WX5^0V |
8800 |
M!T%J(-J#!/C^U!X2MA]$G=*S2['F:/-O$]$7E[U,5HH9OY:>M+SQ\/-,_!W% |
8801 |
MK\9:TQ`9,B"$4O@_L.5"5,:EV9JY/=2="\T%1F08HKD3DN!7*S",3,*A=WSF |
8802 |
MQQD=-#-Q<D&N3!TAJ9W8GF],\G#)2$(ET$N5DU.O]PG8".!B9T@W:OL6J7R- |
8803 |
M<*[2[51*^12IB*EGV3_RDL%#CF!761NIA;F3!?(<L4$E!3E#S@R)X^="+5:1 |
8804 |
MJ`\9$XW$O8!1A^7@]>^(M;RU,&\B_SG[)V>\6??W'>AMKIY+HX(4LE.(N[LA |
8805 |
M`SFR24FV9@`JX5N9'H^HX=Y7;?*X`RD1*5L3$J90O=OI3^>N*I+1OW.U>X-T |
8806 |
M)+QG9._ODT9/6"T9(689;O+;'R#M!R[?C$XZC^M5KQK9W\-'`P-&DU2ZLJWV |
8807 |
M[;<GBU8LOCWN-_](KJP:4D--OUFE6,'[4B'F.S1ZB_9?M"8-L8,,B^=L7P0N |
8808 |
MBEP3_?8X]U3?E1S]J!E&W>HHL]HT>&AX:^*];@*N^`@C]`@^XU=(.(Y2-05& |
8809 |
MW-3EBQMJ]'Y-R\"<7O8W/8&F(+HR<CZ!"B\]H$;/R'?_)3WT7*C#L3O&O@N@ |
8810 |
MR`<_M'QO)MQ2\)/6#;&UJ12Q1!*4AQ<P8GEL598>5[_!^UN@$O>2?BY&?5]] |
8811 |
M"EL?"4UMHP`>YEUL/Q)I=5]`Q0&TY"(QES^8P#EG\45K/U)M:,5Y,S)>)%.H |
8812 |
M/K>;RO@-/&K/U@8/\_AED!AS'J\R`E1>I4SZ=9DPU"H+>8P*[:6,^TN)6B0_ |
8813 |
M0=.G`I%4/^K2[C7%3O:U$2UV$FY88V=D(IY6$5->\'?D$Y9?E?6F$')(?B%\ |
8814 |
M`)/XSP\+&S*J__B9K2D_ZX>?TD;S24+_EX4T,]*N5.OQNA:-6$I,!JEW/@@& |
8815 |
MS5=9!#F1]E%\IT.JQ4!"I1T4>1[--HRF>-F;KE@4NTC2^9H63E!:DZ8B`S-3 |
8816 |
MF]^5-U5M95G.XR4GFT-`GW0["66PX+")@8CLI8!X7W'_&^7D&P4%^1G@SCIL |
8817 |
MFP$,]:5IBJ=3J=MPVXU_04"1$F0'=M^^#Q"]'YFJ1);SNZ.WY+$O7!J4:UY; |
8818 |
M#IF%D&QQ@,Z?YPJO9FZDXZ_,J]\!#H6>'AOB29AVYY[@X'TN4+U\89_D>:@Z |
8819 |
M]EI(.$`2`D6;"^V5)KM].T5<N`SE'[1MDEP,E:C.^Q,N#IKD3C!R+X74(+GZ |
8820 |
M\+YD1E0^7KUE2H_(0K*]FU1<+L!$]PHVD!'^,I0;>_#%=YX)9:6J7>>]F4@, |
8821 |
MI2I/S\O2&:M88Q,UT_8VDB5FN>+!X[,^/H8TU9M=ROCTFN0`?O_@+SKHKP72 |
8822 |
MC8J%&(0=)0UZUHKDL^=4XOFHZ:ZBIP,?NJ_+N*T%R+*Z!)7NFXE_=:O?#,DM |
8823 |
M=AWA%E[83)I6$3OF214][SQ,KL,I57`)=/9A;8J;MR1EV=\K;CR<K,^2)7(& |
8824 |
M6XY=,;>\-(SRQ>J0B%-`).[5"T`_>BJG15UQ.:6$2.`M46@5J^<G"`604U"Z |
8825 |
ME]Z0._69SU13[;H$LD0O&R0`U4/>PP)W)_O>5C#H-AQ,OR`5XSEV"U?%[*DP |
8826 |
MD`0).$]B]H<TM8Z8:5Z605$U30%ZX8_,WG?X_!]KQ"1$5(ZSF-^XIPJ`CAI3 |
8827 |
M*"%LZ!850B61@I^?5`O%P*7L==TX2,3,OO[`H/SM*]ZYHE:(S-:2ZU]GEB[& |
8828 |
M^>QZ<V(T"F-""5CI13Q`>C4^R`0+&HF"IT2GXKX1"-6OK6S9F_CQQOMZ>H49 |
8829 |
M!`U3P8K`2G^^4BI874Z(/[1EY`OLXY.E;C\N!/U;NG\_4SXXBIJ:FSRVAZ!$ |
8830 |
M/</!4K1#VQI`X@SI\UZC-+CT&IRZBDK'#3W`S7`0%[($2K%'VHUR@,(FU%V? |
8831 |
MCTNVXTM7-T!2/1'?SC%J4$NG4B5GPAO%8=M<@VZ=[Y_%XNAY$$&G>+$<]8:- |
8832 |
M_RKY6[JC+5X`F$[`_'=@A3,RN)0Z4M9(?WZ#4/!01NJV*&-&3$!1D1@9&LWR |
8833 |
MN5>G'\3E3@P:;=0?:[U6)7[1.]&$7P?G3J8S-)XYD`:R^J[+JQD:^JV@#>:F |
8834 |
M/`ERXGL*@(49@]#_W$"^X'P'X?-/+[<<:,05LG3SHEJX=K-(92EIY14@;G0[ |
8835 |
MD9XJL%FC,*#MSZA65=;6^UF_1+X.Y$/Z+R:0<`Y!]HGE^I`JE:O#N1YX*=D1 |
8836 |
M&5SGL;H%L]7@<5]$0>0:P.XIT;^/F\&!#DUM\^E&]',E_;[V/$+AP0%DF([5 |
8837 |
MKE5%B"#WGH7#92BYOP^O=4X.<@^;3M6G'Q9!2('M[///L,%[>,`NQ(DUQ[C: |
8838 |
M29OM4O9'9GX7?V.Y/8L7(9IA`1"<S)*_4$7+=2.''A#E.U2T#H\4G:5_`^2[ |
8839 |
MH6$RRTL6L.Q3G$I-E,8@89:ZO7H_+`(&06"P!"F3%&2.KX.*.$D?*:O]6#^' |
8840 |
M,YL8MFM_`U9J3/^W/Y=6@-F$<<;/S[SL`C?GSC+)<9(,$CP\E+P>Z>2'8*3K |
8841 |
M1I%Y4B!%T,SXUM<$'"08+OL+JG`2<1^I+FJL#?T\+`C^OQKPK=3T_9)-K0=9 |
8842 |
M,-^%CUI_4>FIBDBQ"()`FH)659`8#"X"=/DGMQ`4B`G%`BI9O$JMD'?#1*Q# |
8843 |
M#<9)4)U*1%`?M07II.5!JJNY:1*3Q-W7"UL,]J-DVFWPT4%.=:2I$W/G(C`Y |
8844 |
MDY!ZUA(51KTV.U[X+5_V#'=CIV!+8!E/(ESMPEFU6)!_J<6P%Q4%_W*O2AP) |
8845 |
M0C-DZ_`S#G#0C`,3CHZOFUD6C#&EQT"=R7]1EWXIK`G^L/S,HF"X1#$A671@ |
8846 |
M-WQ"<&$G\TP8$[KD?7'G??E&^^>:&C(I4AW9E+RT@<[^"`&1QZB,L-:<-9]# |
8847 |
M$#=V3726;D4&T%(##!7"#BD/MF7\_EFU+9O&W?0/\!1TJ!#\)9<U\NR-=<'' |
8848 |
M'"8K,1>>7OH;X<[AY*QMRHV,D(`L5?"76U#6X<QAIX_8\>N`M$$*A0%96T-C |
8849 |
MIZITB&.)5\:0=L)H_\:73FRZA;5_0WO[<4:^%_Q^56LB&IN[S[M[`&X^L?,K |
8850 |
MS)\`-#H&VNO"RP_Z2M83CZ00'AWO?&&_O0>>(R^W/["8/ER,\>:Z]J&UAU.T |
8851 |
M3J>Z.X<I`JHYD'\;&266S`Q8'>.C^[M5.=+B<<NCU"X0GSL`Y86HUOA`%%ZW |
8852 |
M078U$N""8;-9=AF=NV>**ER)K2;BGF#M]D'5)FM&PF^D2K!`QMI#14;'!96/ |
8853 |
M,_T9:O1"!Q:D&*@<''SZR2)4F;)AX<Z2R5]#0/R(JH0DV&<<2):%Y(AGK/\4 |
8854 |
M@HPP<HA_4Q@&QK6O<BCW7(9<"Q+^DW8EJ!1[[+9.CZL?[ML_]335/,RN@['W |
8855 |
M'AHIAW:'=4D6-Q)NA:'&VW9+9HU@Q#]=%,&O=SXJL6S,O_X<(LZ<Y99W]2[! |
8856 |
M%QT2^=?!HH`W;:JB[IY$03.?D^O(D=1=X#>\=NZ=T'`"J2&!=;"WT@5A_PYV |
8857 |
M@<(('"%WSP@$#V-*J'B#OK;M[*#-.&..J(G73#'MJ?]8_4]`;&FP(0^]VJ!, |
8858 |
MK]O?EYJ"4017QE#XDZ'0N7Z'Y\BI/84J;A*];?^6JI394)BNW\*;TR0LI2.5 |
8859 |
M/AD;BL#RMEKXN'K;:0D%(Q08&P;`>X:%CL[M_XJ]G6%*THJ;)&<L3:BJJB)< |
8860 |
M6BB82,8=*0H!(7POFS>.=T[%#V'[%Z(ZHZL3=P-C%29DF++2W+2;IXW3B&/T |
8861 |
M+X]\:$*C52U)A?(4*%1:I="R*O%_C&"('6*[/6)@\?-3:3R7PEG+CQT*&RX2 |
8862 |
MK+(P5'XU]=907M,21US&I8VC?=3/A%EM[_9L=Z_5VG0;E,$'T0__65IR?OR& |
8863 |
M[(\RA:.<)"&<R4[M)5'<)@'B9'DKCQT6M@:5#N:'+T@$5T,^5^X,"7./MQ^D |
8864 |
M6>OBW,\M`(L0N=[!*8LF*@3N>O[X"WN=@'GRD]3OCIO;GN9(N]OV4Q@#_V&: |
8865 |
M?)[^6_BO.UC(,@[T5LS4AM.0(4:O`PSR).&(00^RX-<R-'OU8HL*]0.S)_R" |
8866 |
M:Y>3KE9S=N/$87L#?@.67>?5F8WX.&';F;N:C2A#?0)'#EMBVSM#9XN)DF+O |
8867 |
M0HP&'B8$3*H:.I#')W+65J/]$%01"B]`AG84V,"!IG]Q:?AZ`%6$E(NL!7^/ |
8868 |
MX5?'8O7?0/5W6.0B9[[]^5$:KF>[II=:G0Y`V@\$4N\T6-/KVU5\J<@7\X<1 |
8869 |
MN"MC!W)J?J;1A"5X=&MEFV%X<XYCJPUK-.]0@_RI>[U/R!I^<U!N_:F38$3' |
8870 |
MDG3R-\FX1X8<[H<:"MBLEG7B+Z`<LXI/$T)LF0M3>*75DS(R4L3J+/"OG'2U |
8871 |
M9(A3QWPA\((0RC5&F4E/+,V\1`Z=@W_-'D]30X8Z(XT-2]A*U\WDE1X@^%,? |
8872 |
M8]A(GO$JOOE>2GNT`+W\0UDIWW)[TO:L)20_VI<]L>A5#?--,*U7G>,/*B5. |
8873 |
MZ"\@>.3!XE$0%2S:/%$>'N"@6S%=*+'H'/721[?TS;OH%86^V5A.V`A7]`14 |
8874 |
M+DZIX%P)Z.=YU7Y'TE428K=+&G#/#\?LRQ+EOU)XP_"KK[RP188T`OE5KU0D |
8875 |
M^_'3FX#D>@5L;;Q9@.B0]MJ%R9>&.,F*O/(JT5"UKK^SE)!E?JRD,[N>L"`) |
8876 |
MM5EV!O4Z"\.)3;*!U4*?/UUOY]V]8(1F<<+X^[$A:>T9^^@/_PU`GJ,1`YB! |
8877 |
M(TJ;+Y#QERWGX;F`!O54CP'/$2@NWO%`B0MZP*/D+ICBT+8QI3?VWMHR,]#[ |
8878 |
M72=Q:Q915RP1'KSA%D%7"X.&$10Y`$.=_5FN8;%$!#1%"47$46<#<EP4EM&! |
8879 |
M-*YR]LM\B(U=C6K*/QD//'&>EG_I#%,%YAS+@'LJ0H?-@'N!EX':HM*Y)R?T |
8880 |
M]06<'<>;_N5-GE@>%@D;!4.,_`=$%5(/Z8IQO2T_(XPB=[^N1+5T+#Y_O;/$ |
8881 |
M7-AH)#)UJ3TF=FE3/-TP9-9KC*$^0Z.QCQZF(]1V\^5D#%H<%1IS^>VW%7MK |
8882 |
MN^+L"]\'"<#$C-U_PBUDH!(/$?K]N]8RJ`RD/\>-QE=\$`)FO$WKV7&EFF\; |
8883 |
MI$'>)]<K(A++YMI"U&7,6@IC2'N!(/NQ!O_6$-591B^ML=\?W$\%7E+U_="* |
8884 |
MN1I`%>!I#`))*96H0C)`N'3A$[$E*Q,'%5L4A_N/!GAJ@PQ"JP)>W`P]55R2 |
8885 |
M]>/(V&0LF.-7Y-,64V[1N=,L26.(\0>1M'G>7KD2;=;J>-@E@[C-8A/4TGNQ |
8886 |
MB&2;NP9]*.$$,Q1;Z_'6&'14Y+U^?-61!N(-"<0'Z9/CC.`CG\LNC#[M!TX\ |
8887 |
MU+));@_'%1]2,CY+P=.9==PO"`)H"AG4V]M!R13=WW_#1B.5'O`H>#YO?0ZR |
8888 |
M#`#NNW$)\#%0JZ%BHNSL*JP)M&'5+G:^N&C+'TD`1OY?+FLV360?^ODAA[[[ |
8889 |
M&[PF+\%QU6<X:@G=W)"X)M_JLJ1!HU))`RM#TEMS,"\9,3L9+#X9ENRA[YQ( |
8890 |
M*B5HKM6[A29?]B",9N`'-D<%>W1S6TJ"%3D>P5Y>*U-3F<&2^@]HHI49@+%< |
8891 |
M6-XJ&J5J.<6I/(?7E/`5B@"A(&VL'JV4ISEK$G>0J\`"SD5H'_,+*0*5@9AB |
8892 |
MCUXHA($3UBB>_)?Z^DPT%$NLKDNM`Q>CQ+FOD:@RC=/A[+MF:[--\(^%FEZA |
8893 |
M5B-<PSV"M8+/HKR=JO?S[_$-E83903_T?VKD`V2R*&0W.)<MAGL]Q6BW4K5C |
8894 |
M=/O^256O,1OBT`N9$5_$,'R"]4L[PV2.03/"L4QS8/0B[S[2Z4%116H,9+H# |
8895 |
MH>CAV6^(X'>9QL]WY\SZ7UE97S8$745KK;Y[ZH">&ENX_P!6/X[X^5/KB7S4 |
8896 |
ML,%J.@8@XNPJF"MN);T*W_/]*`VU]O<[SETX"A$4C=QW[#Z#%=#(6ZB4!SL2 |
8897 |
MX<KZ>S^`C8]"4]*6@CSYO5RRW?&.[,1FT@</5CHRE4-S-65D_;P@Y4RLX[EK |
8898 |
M+93Z%!`LQ#X#]4I4)M*`DO^X+$3QRL9^`.@9'9K614M"KDG4:`0%ZU^!#(". |
8899 |
MVT$IXA1VW?*4[WFR.:<:)O3+5=@Q1?L[$>6@)U"+%60'6D*9(9F-.4[U[C8; |
8900 |
MH\C4.#A<59Q@DU0X/+`B"30RU[\+HP?BZKPO(]$`PWX-;D*KAC_JI&?3=VZB |
8901 |
MY:G"KP#/D8"HW!J8E(0&DN5^^-F0(<T>QLS2+)3P1M`,II)C0$U*VC;&[8(B |
8902 |
M.M9RDX4\["<L!$_?<Q)"Y:K:__M_:(`1WGJ4$)3^\\?\5XB?'5U]8DP,IJ.0 |
8903 |
M<-@H:_!:M/$+0FSD!(/E8/UR%\M5H((3#U4V)_=OC83)M$YV;B3)QX(4=JB@ |
8904 |
M@:A(])"^"N.;G.,X:%"%;5E$W;L_)%J_`]2N.PIU(:V*#>2AVMF<0PX_]L/( |
8905 |
M2(LDS_(>P-?AO9MY,>TP<ZKA=X&@!\CM@&^4ZT:O:3_U6P2U,+;?&X12<X%' |
8906 |
MYXX41,,@A1Q%@KJT"+"S>^61Z1(I\Q^Q+6,^7Y8<5V;*QN[E"X(_@J9G"J(S |
8907 |
MF!*M#*BKE`E-[6E)&%I=:@:"N2JTDJW2/!N##L\&ZCD\`^D$QOOAF"V([:J2 |
8908 |
M#LFZGT^)9XW6%)HBRCO,N/;IDA-'._OU>"\LR+5@PE^J2D<OE6XH1\1J0)!/ |
8909 |
MDE];%\1UY^3V71.VU=QCVH"!&C<(0V"(KCW>[]NO?RHN:&J9C_R>QONQQ-!X |
8910 |
ME)/-<HLN/9P1I,R$6DU"U<[<EYJGNV577T(<*ME],E;D5#9%TZ;6E@9CIW9V |
8911 |
MS>`2]DR"3XZX].5%AK9PV;A7AW^T+6WCCTV1MM.LKW?(CE+*TE=*KU&R8.*6 |
8912 |
MK8)YTEC3!@@`H0M>X;VQ,0\\RQVJ[LV&E+"Z+JRP\Q^*K00%")24VBY3\>)\ |
8913 |
M`22_V!=V>#V!U5,82\0_M7AIHO20+\I6Z)Z%1`ID?M]W,U_)3LW%B@L<=D]^ |
8914 |
M:`6#;WF++DY"J7=_@BTKPY=)?0AY6[&FEUL!@]5IJHWWBD2>%3=I)8Q*DL:Y |
8915 |
MX1/;8MT]@N!:9=U:5XN+U)*R%1FM$A*E\YF(E7Y##']+H0`)IBP&O%>8D820 |
8916 |
MJ)W[/R__20_K]?_&IJ$<+'[<ZT\NN*,1Z'SUD&N#751H6V-_BOK5&L\;.I#E |
8917 |
MI]RK8SB]/@:NMJU/(57/N2"S8@!P]I:(#@<N5GQ4[\,@BH&[H.DFRD6@6YH5 |
8918 |
MVRBX[8GP<M\DZR=61AQ[Y6<'7MT=DRWL5RCLCK?`ATX4^_Q+.V26\H[LR$EA |
8919 |
MO0(])<^ANO0"LM$)GI0,,;:D0YCX?*D+?%Y+Z)7.;=*X]C,(%I0!"5P:_NAZ |
8920 |
MD-+?;K*)JS@A-["EJ'EV%Q?BK=*<C-B?Y$NK(0NOAU:MZCCQ?<6H>K/%#D/W |
8921 |
M9)Y5E9_&5DC(#;U/9$T';1T1X=\X!#KY=\KZ:4BZ2'9VIBX$'!$"XUP`R84_ |
8922 |
MYI^9?F6%/IWJJZ4$YE;58.;F0V.A]J6,=Y?&$T,A8G4O!88*3[WO8`80;)Y$ |
8923 |
M`DA#[+`1*2[@TO=/ZD(#9<VH&V:!VGY?,)SPP%"X^0ZO^!\&S;$F/)DJQB@9 |
8924 |
M4Y$4C8'="\FD#.QVARQZ&AC=`;6)[D,PT:\#DP<[<ZRSHZW/06E9^)D&V&K! |
8925 |
MENBD0>DZQPGKZ\[27O%%6U/!&E0/W3S^F09UC4/[GZ6P$QCORFR7?R`V9$,) |
8926 |
MF]J>1NC@E`^5]9VL(7LFF6F5F\Q_\$%AP5O6-375)B<=\AW@SL>7E]KIC:M* |
8927 |
MF`D+ACFW_)ANY[:W<+%"<A8<T>P6U&F0\)Y_5$8@8ZR#E;>HQRE(QQ-=F=G> |
8928 |
M)*!U8MO>5N&GM>FH4=UL<R\'T@13')X>AZ@576Z@8!$15=4O"4.;=T\T7PCB |
8929 |
MV,<IBLKKB:@&5`F#544V:.@29"*?,/P:G#4-D</R+490XIF78;]^D)+HFP*& |
8930 |
M,9O_G`U51`:LMZ%`GCBRC+=3X1O'31]BDWV5'_7#B/W"[$9QMH2QTZL.B<DW |
8931 |
MCP]N"5/332YI_L^&"!VDLV)>3GO7"[5,'0K#.8?0>,]\73+,Z,T+*HIC48P< |
8932 |
M06KV45['89%%G/;A!IV%Z4R%C)8I#&3[S]KYU9SE]UML$G*'6,*5![DA4AN7 |
8933 |
M9I.0^3@N9Q?"PNM2,DY0AY5"G:%>T]W13J&9GY$B>UW+1>_O!*[T4T%=7WY] |
8934 |
MA@J5.O5GV;9J?[1SD/O?<=I*W?-D5R@&1YM[T7*3\C1!L)_\'4IEV1A/EY?T |
8935 |
M^J+\255O2@*,2SQ;O!BYB6H2M>B@_=;(_T3C,Y_SB,R?IYZA\";7,=*-M6:1 |
8936 |
M0\Q`1_J4CN;Y:QMZ3@/07DT8!$*+^H>L#9589NS\Q$336S0O_'D00L8BK5FB |
8937 |
M)(FZ616K6W8)F%:+KPX^HFM?NI\^-\@H0+LUMV]IR?K_>ON'^,K:IH$7WK%M |
8938 |
M[]BV;=NV.G;2L:V.;7;,CLV.;=M..OO<SWG/])M^:[0F5PUJ7:NJ_K_27)D& |
8939 |
M+2G2Z?IL!HJ5[3(.].=G</:>,B18$A6C<Q(E6R=K4"9N(Y3O@L7/.6]5]@"O |
8940 |
M>ZZ+@/G0;S%^P6X)*/#\90YF`XI;VGE6_^ZPJJDT]%IPU>R'8`]B[?+Z1*[* |
8941 |
M5Y%![!Q6$_LR&Q_G;M^FV"YZ*\1.T)C[2H?V%=3MMJ[T@C[GF=-;6R2/A%6. |
8942 |
MRA3!XT?[:3)!>SUM;AV8-<6.KL?>;,IPB$-1,URF1KE^RX&I],*EES]DSM28 |
8943 |
M-H(H`H6;U+'D(%\//'[3FG#P6Y<K*X,#:_@TSLK/VN(,[43.B3>XN$`*_*W0 |
8944 |
MN>>@8`Z><>/_T-+Q?S'K"H(H(BXS"!0;0R7WIZ%KL?Z2Y:U!Q%O'I,A^]26W |
8945 |
M.9^\>EJ#R0JW1%&HG(IS]A1^U5<>`0^]^7.0GRZ@^\A?AYMWGY84#.38XM8& |
8946 |
MKXP-ZV$#A:K-D1#DS_/$WW\(#\MHAT&]<8.R1+@OVG6FR@4WC.55",9`P+EM |
8947 |
M;N,9P)+GQ-SUHMSU%`I>#,W2+(_18),9*M]N=\EC+7[]D[Z?.FZ[OH@I0LNP |
8948 |
M6_4^IVMRV94>6N\EGGK'+/D>U0UHOPK6$E(W%#?UQ)<S[+'>;<DV)RR6<W,_ |
8949 |
M$^JLM:FFVJ\*YB3?(_?$".1AQZQCVN-5]FZ:?OP-63.[ISL2"'CR5"$$'L%1 |
8950 |
M�]FWR`+<V>>V*>ZIV?@BET33;]-)"@)44+&N<5KRQ+&\%X);'@+A+&$UNO |
8951 |
MB4#Q'=N'+AZ=S_A]CQ541[\NB@I=K)X$.5PY#P+)X+"4S_'Y(=R+R/&`IY[G |
8952 |
M]![?_0ZV+@!?HRAT3RJ5+1FQ*F;,##4ZVOC%\C8S1B];LDZECXS9CGG)2,^I |
8953 |
MZ>Y[RLORG#H:[4`BEYU.K),)01_R-4=^@VO:L5/89P+#NULD'M=/'>-N]SV` |
8954 |
ML_IG/W:S&8Y_'(%_'`,,9![S9[89MLBLY%D)7I0MARI\3W9+5LI`>IA4F@&^ |
8955 |
M"YIK)15"M)Q/AT+7DN!"J+<[V&3G_02ZXDIS6-6<(XSMV'5>E<BCJ?$*#DN$ |
8956 |
MN=$Q-\OTX]7$=;'4B#_VB]O1/=SFQ%J/HU#/#:/1=JPA9.^S%8/=S,`M24;@ |
8957 |
MI#,9)0B)NE;G3\81B'H&FW95QRJ\<]L^INC&?7B"ZIQ+KFML<(U<#O5*B==F |
8958 |
M>EOD%Z?(%ST3YH;?7P_&+TC@I9XG1I2I22X6/6FPS2=H=TT<*OQFJ'[L/FDN |
8959 |
MOZD=BV!T=BWK7CAE5M@CR'R/A%'1472MABN#GW2P8`,UI(2D44>S(0_:?*6& |
8960 |
MA9=[-DV[ZEHREZ'J)H=C.>;+YLR"@$JT%2GHW_E5\C%/.UVG$C7U@C/3%\W8 |
8961 |
M5-DT,GHF==BC0';PHM?2@=-FD;^@G<N&JA!84@V?2#;[9TJ%Y),-`!F7&>B7 |
8962 |
MNROH]N?](NL0$H$D"!+=")>EU(B*C(>1J8Q@/SG063P=O'3_3999-Z3LH?QW |
8963 |
M7%8I@1XN`HZNCO_/Q<;]U['XE#%3M%_67KMLN#\`N-^'ERF7&_GT`TT4*B^] |
8964 |
MRAM-,(CO`/A:K5/(R-^HM5)S_&'#7%0H!WD3ZCFB7D01#G8DKFFKV8"SJ"%2 |
8965 |
MS5JT-)=7'$]E51$Q-]PM<T-R-Y,5RG+8O2Q(0\WNR.SQD^#EJK(O'FG_-]_7 |
8966 |
M51[=]IRL/X`C;4!]O224*2XT%[V'DL8=2%A=DEO7W&C5`P.>#3>TT=YWPK`8 |
8967 |
M\$ZDEYA0&1!4VAXGTG&;5JDNX,RC9?*)B.TD$B2>L$]KPS37]=?BZ@A52,FQ |
8968 |
M[L:+>,YW]/+DP2RFIBXL*8,A-[3>]4\6.@ZO4KSV/GRB>]>6.K$3GV)%7J,U |
8969 |
MV(HT69Y4XJK8.:V[8F5D--JN75AU+YJ>1F+<\M)H:=ZV>KT_>6USF8?/.C75 |
8970 |
M7G2]J;ID`7-0B980?`$&V\%*HJ=S,AA,@6BY1V'O7OOV6$]$6#>?AO%B8=<, |
8971 |
M.&"U,(H0G[,IY-`^%I&PV9@<)A9)H*15$CSU81DX5X/2*(L^D!43/;-<#\AA |
8972 |
M8E70(:3:^$/OH,9!).'FLANX_K))2)Y/6ZH$G33.9&?,B`E^FIG@8']/4[S+ |
8973 |
MLI5E"IG+.5(#K?7N!(!C"EG^&0C6T;6R\U^H(H,^^;$6^0T2[JS7EY>'R[^] |
8974 |
M0L,II8$-&R:?A?KTCW#]=,0HW;B$>(JE[NP;-\[J3T_9/X13P^J!R:0<[OD; |
8975 |
M?EZ>HZ8-JD8?L#<GHQ9-C0IPG$0GK6/7^64)DG6\4D5DNG/$M>$PK#%<X=3B |
8976 |
MO6CGFQ=IPA\OI%'SA-FYG/:KJ@U\?%0IQ2W[7-$>*$_TR)-[Y2_YDS'Q9HY. |
8977 |
M\1?^3_5C=#%"@?4P?_\29SV6S75YQ!D=?BRM0,S0/X'NM@;((=@Z:$@?#.FI |
8978 |
M>-`HPXBDP<#(DYU\X\=M&=RKPU88NK_$>SQ?4[[LMWB^H0U$5/#*):2>U$O* |
8979 |
MM`[DF"UPIP+_S7`B0]T&(CYLU=3?AMGC%B\JWPMN*9'IS]+9)&U7N5O[0EI* |
8980 |
M]ZW;&K6O>WFI[7$;-=E80$O*@==P"[%R@B%#MQ:DJOF9?._9LW%4[N6PY_QK |
8981 |
M`)0JFC^#OE7K]?\R7C;M_QL4`EWNN?@!$IZ8DB-E^?4TZZF6J4$AL4PF0<Z/ |
8982 |
M,_9"1'ADL",/.7",@!(G$M_A:&BP6(XI,C06,\`&LP^PP-&AH+.!\K^FFDX? |
8983 |
MVC@(H^HXD,*T.PS\24FVRQOE27<B)Y*!PB\R\L$:I\SS=-1_+1F-,6E2QN#` |
8984 |
M3+5-"]$ZG0EU.>^HYX[P^ETXN(R\1&,*G4)1."_W?OI=#;UHB);)7G'O^`"Y |
8985 |
MM?+OCR[9W8(%//2VJBF3I.1/GD^?Q]6=)\5<7A8"UG`7-IZ0-&Y8-00!@M9D |
8986 |
M;V.%1L]#,U#GV<-+(":>/=<EED"!78T>]N"8F[9%%,?/`0=29U3=I^K=JM#2 |
8987 |
M$V`C[SAI5M4!==ZD-;MPT6,7D\+W%NI!9WG-K]^5N+9>/X7O+0L(S;8\8ZAS |
8988 |
MRSRRFNQ"GC4IQ*FK1A5ZC\)C)JI*GW*P))W5N3X"@5*9)H_D!V=H!=)QU(22 |
8989 |
M/YV5W@*0ZYOU$BL`!H93_QO[G>:`Y^HB=PX*-)(G33.)JK+45_.R:FVZ%)=A |
8990 |
M2A!=L-EE%\4&^30";8+'6&1U5@.2XF&)PAD%)`W/SBRP?I"XMF*N/1<:OO4V |
8991 |
MPN0DXO&(Z8L0YBU;+DO*PTRL=YZ8IFO<,DF`W;@C$`,'`ETD<(87#\@LUB5H |
8992 |
M$!\,&QO^622&_E+NMWW.WGYB[XS>B(K-H10Q/GK9]&OD:%>E7!-+,1&`I?GQ |
8993 |
MXZNC6[5V;/,SCZX%`&N1C41($$0-AF##>:[$\QSKT;((*!ZIT=`5=45800E* |
8994 |
M4U_$<C,QU%QSI-,QLCQ2.*9?ZOSL3;EK!6M7ST"QA_#E/5X1.M)?*-4QV'>^ |
8995 |
M@\)\<W>#DH6*&JYO@26&[T_^BRD/E1,+]0K_S)Q?1R^R$&A2BA^(J=C>[MXW |
8996 |
M,Z'Q4]7ICWW/Q5\5%=BQ!G61]%(<Q)Y<QXH3Q-JQV/`=8_]/W';"5\?C6@TF |
8997 |
MW`_3L7J#\H*'3WG``R/`9QQ?B!6![%:__OQ-&.RLJ^M_!@07%A%.<Q,$BMX6 |
8998 |
MIS\3I\;<WWDGGRA_)F7&LD/=6Q/ZG'T"?@J3KL2AV@^<D".RP!B;9]\'2?$S |
8999 |
M1GR9&KB-E"Y'XOYK:>/`G9?#[!9R/*9"KC2-<TO934\D<%^738#NZ9NTR><[ |
9000 |
M<2P]2!=0M)>E!Q%>?J7"*W&L=74=A(I[[(F^;`I>;XKKR^K0,ONK3F6S/=1$ |
9001 |
M1V$Q!/[+73BV%U7[R<I(KS4E>&N2;J!??7Z2W.`L`3YU+4>*7K4T>T!F6:;] |
9002 |
M>#E?(UQINNLGB<+6V9\?LZ':7*/CQ4*&=QV%=..II.CI\703%K0KB6'C-`![ |
9003 |
M2XJ]D8V.)'Q4`N&Z41R#&R]]_@M1[7GCP#G+/?(7D0;Z02>;!A;6(TLS%AQ> |
9004 |
MQ/U/Z%>>[4T2,E.4TGJJLQF6D!F](I=&_+RV%!L8'FIH0M@ZAWUNT8>?>T(% |
9005 |
MQ&*.:X<1V[_?2IQ\4?$1%Q'9X)"6/QR!S&#C7<7;8::X.LQI/Z+^@;B5_'`) |
9006 |
M<B`YW$[X-Q5-4+"8)8NI,CZNIO`(CQ[!@,S8_5"TP1I"\PRJ673=-5YL^V:1 |
9007 |
M66'3(`3-+LF3.2*D8+"D.V?)T%RDWBZ&T`]:FO1(=OA_E.AU86G*[4GT1UD0 |
9008 |
M26\70YSG&B&W1MY%V'UZ0@;Q<<:7J5!3Q1:TRR.9;^^'`@$%O1V+)L58%K3' |
9009 |
M[_T@Q.(+2]M%>K`FZY$+&Z<4<KZSR*R]_A\1D&4K;<^1@%\*>0;9C_**.I/N |
9010 |
M3[,TNC<<G3YAFJU#5H\@<!;$!H[J-6Z^I6[==NZ3$UKIQ7`S18KJ*U7#A0YN |
9011 |
M7F.F6VR,_HX])Y=X0&,[?%`P7BIA]OGK`CDP^KMRY/1O?1X,&`WE@KTD5(W* |
9012 |
MA[C87PZ'=C!%/O+7!Z>4>R1@3SM5Z&=)!-Z07-WRA9NU62VT4'R+OLRS%=I[ |
9013 |
MH^*W!B(A=)B7?H43.@`-`+DE[FURL?OS'_5_@/4KAP45XE4T1"6M[>*?TRHS |
9014 |
MV3,$%J9,5#OQ7R&`2U!8>L@UGM\*1-3S)P-4XV))2"F6A:'8;^OSNCP2\YD= |
9015 |
M*F[9]5M]E"X(Z08/+CQ2[&;IG*!R+2YV+Y$:'6+/JEZ,R3+$R1R8PF;KTC5@ |
9016 |
MZ!_[=Y2V01@2=RM4.Y&M`?HT_]VYK.R>`S67C&:=)(/O'S?5RQ"OLZ)WZ&Q/ |
9017 |
M+!NSO3W?>"@PMT+"Q01C>9\?.]VB^RLLGE25$FK]O$!K7:T-S2%?W\[VUE^( |
9018 |
M477OJFFCPU.*,QK4HHXG:7;=JVAZIGX6[7BU8GLO>7.*VID><*>=04QA,"XV |
9019 |
M1WDFDW/KBO(^[^'>*5:A\OB00HT?;"Q65'B=*4Z%=C+(B!0S<QM#RD4_EFF6 |
9020 |
MUHTVVX^O+YI%&]9T@S(YO=<N-/)U^>WK%.3$PKE=J*C/=C(<HRFS1-)BL)DB |
9021 |
M@ZTN8=S6?%A#=2`GX,N*'^`#EF4[!TL3E5D_2@:K"_:&5(UYSYD+V'B-=Z+D |
9022 |
MMOH`88;S_QEQQ+2\>"KB3Y`30^@-J3W)PO!.'D7-C]<&L2+42M(VAG/WA?E0 |
9023 |
M_S[G.N4.0^P#<>\::@="I%*:`>>-Z<'4*C9+%(@/#;$N%?Q@:(-606U=RP=( |
9024 |
MUK&C$M!'#8FBLY1[#?*+%+>[VP/%1*22HHH=(E-OGL8;/5+QQ-^8O4<M2\,< |
9025 |
M1:EA)XER.7E@6MV^N>C!/R[YK-0TRB'[O<]@@2.WE+)^=RN"F#KI2Y:M/+D_ |
9026 |
MJ_4LK=?);AK6HE,\8;Y[K6.,O'O-I%<+Q':Z2QP^N]1$I=)_BX;E\AH\;4)F |
9027 |
M3P^:O*I[SA[CC%OCR060$,O86Q6[*0<9.#%1JI:<"1<4I?M_YP&21ZNMKJP" |
9028 |
MJ&*>Q8W0'%'%9LWG&Y$EGS!/8QCA#[8+M92;G1GX<(F8;H]AZ@*V_`K>ZW/I |
9029 |
M$U**^=A>S(>,M]8NP1;_4#P3O\=Y>8SZ&NN<A#QG93:;'WQ'[H3^_?V?ES1T |
9030 |
M&F1!E5\9@!#_`@F/EPN*4DKEV'5.]R9R0%2AHVB*.M8KF17\0SY[_SEOZE(+ |
9031 |
MAHJ?XS'S!G&)A@GO)NXOZ$@F@`Q^[;A''Q]&AN?8VLHZ9#O5Y6PKYW@#D==] |
9032 |
M;O:F'_M%K4S>P!XVU,K_P_+SQFHXS%V<F0D8?[P\6H45^@RS6,4_7US^3G4. |
9033 |
M]I1Y6AK,9SF$6:68SV0YHR'M2O2TRD>R,`9WYB(:7,BB9"W5SIEK_B>XHSRR |
9034 |
MLK&09:WFVV`M0?[%DSD)*"0]]I04?6:E<*.*!!VQ(#M,J,=]HV>;E`@-;LD) |
9035 |
MY.D*$:E0I)C>$.K?V,-S=?ZE)3"J0)+,PXP1P</`@0T3,P!O3I2@>&MM-[3] |
9036 |
M]^7/KM'G83'),,*$SI$=H(@:*SZ[L#7.:DJY"2:U>L/'M3W@5'4P,\E?FFO% |
9037 |
MH';BS]1:9T#W@NUN8AFF9+):[:G_9QV]D06*P7-$GP+<)\[-.Y;,9[3N(M8A |
9038 |
M#E2JU5='"G_U7[NV.'SA0/`&#\O_[7R93EG%$@>!F$.)#",QY<WBE]`LMHGC |
9039 |
MA#AMB.2+&6+,BIQ]H^B^)*U_7R)27/:SY\9=C?PT5')1O.;35NOJ'M7M.=KN |
9040 |
M#I8P+&2Z71*;UE&?SAZUH'SO\*&\I@$'Q2[JT-UN_B!D](UG!"+V&%F_K79$ |
9041 |
M7/FCE3:0+]6S(U\AZ3QUM;T[.K;3DXUWFV"<)Q?D/#<G"J!V\KB354PMKZTS |
9042 |
M^>U3(Z_+]UL)0B&1GQ@@DO\)#F4[80[2]1S+[I-UPR5'I/AJO<)<I[!(VBED |
9043 |
MP]2/N79C7,-_QT*=JCA>$`GI@."V$^<'FL==J5_^N5%9)[Q\[B7&AQHQ54A^ |
9044 |
M&56OQ(C8ZSWAN=:8U=[$\)C:(B,\,YT_+[5/2</ZYR04+3")CF6K63U9E7_I |
9045 |
MS?&P/KON*H@.7;X42B"3N-P4//MR(REK&+*P8NB/Z\#4[==C;OK4D/0\`(?W |
9046 |
M$@UZ"[[M/2"=YJ220F7"G1@^(DS\-]DIB/?XW58`@NU?:7WA@AWJA\2UV0:! |
9047 |
MDE/+>R#+DE9O9B.J-X4D9-*#Z(8;_W8VP_@WK!IC<603P)TVD=\FVPLT`VRF |
9048 |
M,VBRA;^%ODAK\2Y[GWS^)M-JR`MG!^/F+#\3E\)S[()J7IG<5]'L/]4ER7TS |
9049 |
MB[@8KH%9[BNZ,L2E--":$90LD8&M<?*&XHK<YY/L[UI3Q"]."B<X/7"#=7^5 |
9050 |
M-I*7\H,Q&C^8F4WQZQH`Y_?*L.9KS!;])J0\C94E[21M-]I8^24.6278>PF( |
9051 |
MA)F2!4R*==NL\F4\CRC=?/:,RQ#K@V+CH"I`K#/`BI`CS7FI,BYAKVY!`47? |
9052 |
MM/&=53IO,B$S*)J/98O+]'6,$PD*NS3C(+I[L-%(DFYT0$(JOE"GF@_ET*"T |
9053 |
MM%;]M,=P#3`F.`&WI@QAFRCW'"AAY#43':DXB#/;G+K%M\X=Z4-ONOAYWJV4 |
9054 |
M676)2QEDAN*##<+6(B(<G'I<9B\]@'O_]=+`8)\93'KJXSCUK.6TJ85^0#=I |
9055 |
MXR,7G-$GC0^^V'&**A(X=$OR:[F+GO$@2\$_[C$0TN3RRA,CPI0F;K%`<V,' |
9056 |
MQ+M*(-76MN[E`--EAX-5*8.ZP//B,MLX<F+(["*,X80;HNC?EGGYO4&F0]IL |
9057 |
M`<E>8V96V"Q9OYR;(G:%LZT[-EXJD5/-HST^4VKQ_`==(OB)A9I/PGJ;2'76 |
9058 |
MU4D0MZ%V',=H&,PYUE!),1(A")VBWZS#'&@<%WZ9X\=Y<7G@X/-WH?++CLA( |
9059 |
M@1*K56@'-U2"VYL<9T]!UP:XH4J?MC"DZEV4!Y[8B'$HMV#`'8@+(ZI?\Z4Y |
9060 |
MCVUWOZS)Q3*8F/7(S25<NH^0B>*39&@4)I\^W(W3^6S$>]U)G'-$$4OQ]"<$ |
9061 |
M;"!\1:AA,1SI(<^%07R=`2Z9V/BYI>G5+S<7-9^P(O\B7?4/?EV;@S.FJ'8; |
9062 |
M\]GYK@#CK5Q8<UJI(6+)/RRZ?)$O[*QI<M'.+Y-3C>N!JJ[.5]3\O)Z.".ZP |
9063 |
M9S)BM#R!S_+;2'59/MPQ&A9TN$WBT9Y1B.11<1?3$=@+'D1Z<Q#A6%,([XHH |
9064 |
MYV_`X?2SX.,ZR&ZYWG;'&&SM_^`?EQI-;UFP!03":;>UDT:EZ+]Q$+=M1X&] |
9065 |
M9R1S^>IXY!5>\-OV$S"%@"H""(1_)/UIEOKU'%:6:U&+.$"&;CB/[\YEVJEH |
9066 |
M9PT1H'-,-JG8:)MZV=@^J=&I\6TT\1#,JT5K-%2>4^T`37VERR%U(;)\$0LT |
9067 |
MRH>S"@?S4UGBT6.T`I;B*FBX&J>92-+]F5[)GF`:;4%-O]$0#=W0G:^211!K |
9068 |
MX*,4I$[O;USLP<IP8K^!69-Q%'1%@[Y<4KMPL<>(9[15A')Y;)$;/=!9'L=" |
9069 |
M]BK%S22(BM!3;87:DFG1YMSXRN[YAXZCJ?.W`SW_OF07M?C/`?;/L60?VTF( |
9070 |
MA3EJ4Z0%O4%V^4C.1+[6R;!G!Z/1`QO9%D*R;==H`L'OM=-#RB30Q_ZMRY:Y |
9071 |
MTZ)Q.`&<*7U-E#)R<[FZ])@MK,+.Z:P`K-FZ1"]A:VY:N25BS)DY"RPTVZW* |
9072 |
M$&Z$<P_F42`\XJ`(S?XB5>X,&.@1QL<Y4?"]OTO(%&C\]BVUXW+\'07&?TT# |
9073 |
MX\7=>3\0^@4OLMK*10T+(2HC<Z\/`A4X\-M`)1]U=6<$J3^+2UD[0_LXW+2V |
9074 |
M2SON7`H'Q3%4RF2QAZ'QVPXS>;BZ$'OBHU&4%EEH;<&0\;/1Q,1GZ9ZO8P%; |
9075 |
M*(2>:6\>!320RN>:U;+B$;^2E)GK3&NP2WT3\[]2(WG?3NH'L=R>LW))R/.. |
9076 |
MJ#Q2_IBZ/+F_[!<9*E)Y\]@\-,+48>UUF.ZK(7BRSJORZ0YA971!D:!:M(+T |
9077 |
M)Q1R!1:[NS+P4(Y""KX0&PON?@6.X/XM4S[=0HH-Y]`O`,2!F<@BG$ZA`7_( |
9078 |
MPJ)"XW_\8+(B@L3\)_^J8%J$('IONXYF'(.P?M#KWU]Q>*^>#/8WN.<+5L&Q |
9079 |
M=L6\Q`HG*.EL!WH3H6L21M/T-L^Y(]:6\-X8),5R([M^WCAP:0DJ)IK>_Y5' |
9080 |
M5E6[]%1G4$MQ6<3AC#BF4S6:-9?&0DTVJW!H5`-%>FNGBY2#94B/Y5JI$G+F |
9081 |
MP(:PRT,9S&KZCX]6]=N<BU]AGU3YRU?FH@#@\%]@%,J".`Q)HV9<_@\DW('3 |
9082 |
MHF5NFP-Y.ZND,J57)?9']&Z$Y#17%O*;4!!6:.M,(M[5,6OOM9I10QPV$3=2 |
9083 |
M3SP\*]6"ZJ,BCWVC*\.WSP<U!_*8G=5`8F:DPM$?;!FNKOJ1PJQ!<*:T$J:Q |
9084 |
MI:VRP[HHJ5[;L/8CY"XF#S*JC`%&%B!;'H?B5:`VH.HV-#`],""*AQ]C[/H- |
9085 |
MV1.]=H5*=0#[*E_I5\4#=T:!]BI*;M!0<TCNCC/:TC`&M;^.,WWO=ZD\[CD: |
9086 |
M=2D7A$JXH9RL10N=Y+LS"Q#[F6@BJA4BHR5&/CE=-NT=C.(`64"Y3;9SF9\Z |
9087 |
MH"DWRQ[$YT19D*J</B=-(Z=V+V2EA>Z1'Q)7E+E`\:-QULZ3]P`MHD[1VPZI |
9088 |
MK$DY/L7WKLH>JRKTN"_715BN;*)O,SN,?VP^NOE`YN[J=ALW%6PXY;%G5^Z2 |
9089 |
MI9QN+GG;;UC&I-^O]JHB=ML.J_9)Q,9CJ*MV3;M^"!6[/PFK6@J:"3`&Y?D6 |
9090 |
M2^\34SRK<[EY[A&Y6_`?`A@J_X<`M==6?B)?H+XH2'0!`*-CAK,U__E_KQ(7 |
9091 |
MI7;Z&T;_`J01FA3ZV/7S6P<S]*28%#X?>.G=.^CRZEFF6B]C&SZ,/@T&\U#E |
9092 |
M$#G08".UBW0S#U70_EG,*A-*BJ-*I_8$4$@>7='BF\!]4XR2Q#/'99]/T,88 |
9093 |
M$D;`_V18`%V!)66;L9(7+*E1'SFCXT.LT704>Y=468-1:.BMYP]VA:X2AQ0C |
9094 |
M>Z'=-_U86S`#ORPJC0X^5O'CHE=6K/^]W'#T`!;4O]Q5R[@BQB?+5_<#E@CW |
9095 |
M6\L#1YX18,;U6K\,.=YHROS$]'O-(UC_'79/:._[Y_X@.9DE`I5Y(%O-SMKR |
9096 |
MG+>AO&EY(1\-'>.S/YVSSG6`28\EM;T&XRI'00&E'0/;T^>W[FM*S$]"++=V |
9097 |
M=(%?L.,]FANB;(F[]CW+I;'P4GO)&"%^Y1[<[4#(R29HRL6V:_K9+PMF+&+J |
9098 |
M8?P_))-2PS@P,9,$W[/=/'[%\IH[>I^B:O=C`J#_M?3/__CO#Z`@M=30:P>! |
9099 |
M>F75J34KT5O<BP:ZNR%MVC,$=60T0EKBW3QG[\-WCWL(@NOLV%\"OG\Q8>@O |
9100 |
M3+)>@0L0W,$8H-D1`2AQ_MRS_#U'(FG3Q5P27-EI-A@<"^HG]_7"2(&4IAB0 |
9101 |
M.Z4Q#9J;0C,\HR`CQBE2XB39-+-LK%@:$E?[`3<DI7:#%,W;"60;L&6`=84( |
9102 |
MV:(%4LJ/G%3!WF&7ZW:7M4TA-U7N5PUX*B'K1N%BO,-TI%3E'89I>@_[W]QC |
9103 |
MS>+N5MT_SX??'8M]JKYGS*XZPHP!0EK<40L5,8*!K_%(1LCCZWJ=],ED)&F% |
9104 |
M]9S2SJAA6G<]<WO6@=*5;WJ288Z8%BPOYFT3'059/<;V@8K)"U78:A41L8E5 |
9105 |
MIH,"IRH9]$\W55ME/&%5Q3)(+#9\>H4NOQR-M&7$#$EFA_XU=AT5E*EH(B]H |
9106 |
M;9@':1[DO/(QJ]U[@W.?LBV7<[^WR+ZSAB6H(Y=%7-JP%,%,N_*7V\C,PH1] |
9107 |
M$$&[2XTK=8';["=D.EE,"]\/8XS.?`H2;W8+K![2E;XDKBP(@[-X.G8CA:HP |
9108 |
MP)RIV7Z""FK+;:K9+&G#UH5$V&U1XL,V2IEIQYWK/3].UU>F:YL3L0FZ`<HI |
9109 |
M1.80(ES@4,P=X)@D:],WD%%G3N%(?=6_B92KP_)XS!3)':3BN47^L59$85`: |
9110 |
MG%ID4(W3.EE?&(J[T!!515^.FZD(-.7H!E-'7AMQA\G670C.BHMK=(4%"'RE |
9111 |
M'E]1'I>S/"E$/'N#]B#-6<FN?FJ58/ZM'B@PX0#6-D8PBP16D0:8<?_1S74" |
9112 |
MC+.5^<`)L!(2IL>+J\L'Y8$MC,BV1D<)(XCT\*P;0L@(ZH5!]NW3(Y(_&BF5 |
9113 |
M);&L`Z+!OULU]27GW_T$,RO(0\(4LB2+?)WX'#304=J2\$&`83Z1KLE4G_:B |
9114 |
M)WX-QQNA>"3B1VHGM[E`@2QUA0+64J$>>P7H(,BM&B^8O:#=L;`Z/30*D*&! |
9115 |
M0)1&J0\&^417F\WRJW)PGTL_*3._K(<;Z2/']%:72?:P7(BV2ETZVXF4,^X7 |
9116 |
MZEND0\E(EVVS]MOC\Z4V8+3>L^)_F2:E5:M/L#\@@A]B0!.1Q0C(W74D8/!P |
9117 |
MJ1W),H?MPXCUIT-BH']^X'DYLY'102$CMJD=_WSL6_..@I8^&L7`TM>]6(,E |
9118 |
M(%^25B>+<TT,W22%H9GOU]"?!(S^>U5U&5QOX(NT>;:1,RTW_4N:Y)5C/SV$ |
9119 |
M"P#R7'?82$<IQIVL9.WEN.J5C@VR?60%G0W$7-:Y-$S_PO]\YO'%5,V1LN+] |
9120 |
M<`9'_)LQ3EES-!(;Y951":=GEI&8>;**)#*SG@/Y=*44R^SKHP*FD7=K,'[3 |
9121 |
MW")F$=Z2D6]$#%L>S!^>E>K?-V(I[0%94LA<C+DN*RGJ5T8-KOBJPT+F/@Y" |
9122 |
M)4XU:*5=K:\=&940&9&!/R)6TPI&LH4VA!L'^:8.MS42+@_Y%=ND$9.WC!1C |
9123 |
M`"VBQ"^>O_M(:W>W,IQ&Y\FH<))[@_3D<76E2<TX_7&SX<C2^Z>/)`LQQTWE |
9124 |
MA6*:HR,>.GIKN!<\$E0VW8N[B!`X[P0>8)Y$.R9<EO*"5T]'P9G+80`A%!3@ |
9125 |
M#]^_]G\L1R'0DOX#!-+V%#/7<)#_TQT+]R1>IEEM$TM'.9JPVVL-GM+#X?98 |
9126 |
M4BY\?C1#((]]C8[9'Z^=9`/..O$%`55BGBP`">C;-^H(&J*"1X=U,:W4^6%J |
9127 |
M=BNQFR%`ER*^/WZX5ZG1,I'ZM8P>L%-3<(5%-+X,W@+V*2I&(_U'2(B+FTN4 |
9128 |
MMG5<&37EXPJY@^B8`&N$;!T,2.$N_4N4G?P]'FI[X,Z8%:F`!<TJ5!T9+*O. |
9129 |
M+^L^(#E@QJ3@KWTU)9`Q2?&F"M``[AP_S;N?_3$9-:&V51(,K1=28N8_]HSO |
9130 |
M\S7)5:1GIQ);Y]'^C&*U@'61H/M8[XUCSIN^6`#][[VD+,M6T2\.?$U#O::= |
9131 |
M@J4-.#,`4<//,2XD;\I=4RI(@VM`-3LI44=Z#584Y>1M?!\I*X9+<_OP>>&V |
9132 |
M+(%^S,LS%C-?Q5F+>.HZ>9PG&97#VO:=@Y57--33?_S1GW\6MMM/S_'[A]!; |
9133 |
M?&</5+=AHW\'[(LY,L:CTS1RX#\XD?76Z_^T/Y<4)D^]QF<+`H4N:T2+Z>OU |
9134 |
M\X\I=0DHZE'2#9=Q#J\.CR4$YFZJ[8C^+/F"<*5XO&#UKB^A["]L\X[&C(.` |
9135 |
M[@0K8B73&\:!I.3H^`$()O'V_I@?,C=L!%TY0BM42Q/9XZ;W\V#YMOCRNS.% |
9136 |
M-ILI(C15LQP9E1A06&)3;S-X5$5]8^389Q03.^>_;S0'1<&-N<F7L:ZO"CCF |
9137 |
M0.^+LC+:4DZAGTKP7]PDLY/D@L'M)W@?0CL*:S?VF"1)PXYV?%K]%])U[=5I |
9138 |
M#>'0OL^"_Y#&NK;%PA?PS"%\6D&5@J__+0$_G`E+#NO\B__@#@?YIUD?3K6% |
9139 |
MV&N:SH>)9J_F9!>.&B911C6LG/%QV,_P(;/$60-ZJJ!R/0BABMF*8CBA&^C/ |
9140 |
MYZK`?S7WHA>(Q;]"6:6=?HE#IUS%/;VV/%_8#1`I1D<QF?)Q&4+FUFN'3RL] |
9141 |
M2J[REY^?W#!\M0FLSYH'IV>-A^[]9G^[#B,I'7E#GB^(0H8TG582UF^5T!W& |
9142 |
M_+@8OGY0WM\[E09,_G]I15((/<WJ_\!M5+"PSC"8JIM_TY+9;TU<(KD:4\[A |
9143 |
MYJKYL2+8>S;/)6^&>YV4Y?B=4;?-<"<1*S+OINDIBP<,Q^ARLQ^%Y5=P_5&, |
9144 |
M\!X""US;P+C\$Z.>M$"7RRY=EI@U\Z9/ML)8FKG7]@%C`.N_GQSN"5;HPTH] |
9145 |
M:Z/T]_V8VZO@`<2?BQU[5!%PZ;'[QEQ!*K[6++__VF!$:``6_'0T!1`Q!7H< |
9146 |
M@OCIZY&.*LQHPCYM*`ZRV`:C`#U+DY`;SH1P*K+T=U=,+VD$\13*;Z0I=VBS |
9147 |
MXK&&G<CL27)F2A4AO#LN/T<Z3`Y23XYS(@$T)(X]/0F#88WS#?5O;6A]"2]6 |
9148 |
M[CZ=VH"F!;U143`;^)%0&(P8*,6X0`GR/[\2,)T\9#@1M.ZY@I%938`=1TO. |
9149 |
M#@+X+6RAM;^)_TQ^.]7P)6_)3MZVM^S-B$*0@IQG1;_OXG^S$_2:.`9@TB^C |
9150 |
MOH['&1RWR.`M?%*7-`O"J5VK?N;X@=J#OV!%UM*OJ1"'^WM21*)4WD$H1]$P |
9151 |
MV1&_3IP%V1$T/\%3PB'5ZF=JK^\UC:9IJYM-?5(D%F/:FG\%SWL*<$'HGS.5 |
9152 |
MTR>T.;I"N+=`V8&=K$X4"7>Q.#<R-&_?&GMV![0AY[9Q'`>MZ:]ZE.U>)ZD/ |
9153 |
M,TYQ1KT'JB+3Y[9I$(158<T;T-+99+8LW^Q%)XKB#V@@]*[]MI5DG1%#9X&$ |
9154 |
MCSTX(HTFZTJWS!,U?/O"QCF<(*Q&.R<?04%P9C>"+^8<4M0J$M#^"1L7!B,Q |
9155 |
MF"BS"X=N(?-"T.J\U<T)Z?M'_86XFHF[II/:Q_#T'U\@B8$^L6$LL@D\$0.$ |
9156 |
M>M#>6)E>R.NXZ11\3-`5(#7<A&%L4Y-.$(?3?TYDI?9-O$4XKT.CZ]$&MVZG |
9157 |
MG:95L;*;-+AAB788.]^PKA:#Y^O7>1S_+Z@X;C#SY]OEP%U?L#!%8G0<R'`' |
9158 |
M&0X)1E[<&I=LFM77:$"P+139N/'U/#-!?P=FMOHYPS7:K`,1_E"X@V:4]NZB |
9159 |
MD+]XMEGE=*P@/841RM#[ZSM:4'/-I2)N1+!BMJBTY@L(1*8L8U[,8-S-WTV_ |
9160 |
M,<2!!`=6IU$TJCWV\I[[$TSZWZ7D'S`:VB<3,W0C2%PT$5AX'9W&WFILN5F, |
9161 |
M?$R8CODRX((2[;U!SBD,?3&5@PEK%*+F@.GVRT-;P2]$U5ETT[T0UB#E6?:# |
9162 |
MKFA\HS@PO3;=$Z&FSLZ(6CCB."[82,BIIV(AM]YWO[O)?V>I/>3YPLI/6Y6N |
9163 |
M\)=BCCP<>M*2#*.(LJBTT-"[?]]*69EY[JA^ZHOD0@>]O<INYS`J"+:1WZ%V |
9164 |
ME]_\(D8$]@?DV_W\LP*>M.0_^([WFO+Z)%,>N@"L/S?7W0(ZZY!ZIE&@48/' |
9165 |
MMNZ9F!9T]Z-[D78YB7::DNCC<`=Y$X5REHQ;1`DH$+UX,N<(X':!2>27Y&V; |
9166 |
M,X!+_:6NRHG26G#<XEIGNYK0Y33;7)(Y8FUSO]F&'+Z]/$6R5UI.IE^6H>D` |
9167 |
M$FWC,O&,4M'\:*XWW*S^#NY[OF%]^&C>NB]8S0#4&D[];TTQ9&H04=4_4.`T |
9168 |
MJ9PF%OQ+-7LS`3HE+_;$`0"FG_AE?WV]?>//;=K0[7K,*AJPBG0<*Y4%E9'] |
9169 |
M%9U\.T?6/:SS2P3H*0;@&H*'!;*D(WU7@`$GP,0V1HB``?@OOC!^)IX;)P+] |
9170 |
M]>$,=JX?PUV\D3&:@82<=J2>U$\K6@E_?>Y>G!RBW"ST0UV>)L<+,RA46V=J |
9171 |
M_#IMXE,>G*.SL6:%KI:I#5(5TWYL*_S=QK47`"NE1P'0\M'?RK*99?O^E>EH |
9172 |
M^P4P`\CDU=:K&V:$**>;RL+OL!]N5")F#G?PW1.E_U._'0WM'_A.P+M-H]8B |
9173 |
M0^97^6-:C2#VU.U^Q=C]*R2!W<8I"LQ/;6]V9HE1"LG*L[WF]R<(",.CA(P* |
9174 |
M7C)`[E!F3_\JD%C]I*&89&#QXBFJTJL!Q^@/8H`VP0TR>WRPUT&1._W1:M@8 |
9175 |
MP:1&)OL/ZM'+LUT.P/OZ@[>7C*4`"CV1__OX#2.HJ<;>\;^KK2KD@-XF>`4" |
9176 |
M]7O\OOXUW'B\+:MT-H5+G_E+#*Z45]XZ3^EH,1!\F'_KPA)GPQ#Z]>^HY4[! |
9177 |
M=POFI:@FQ#L\.HQ$7%.IX/:JA]_`C,YB,BSJR9/E)FQ2<3DB:R>4=S_N](G4 |
9178 |
MH\UUKZ$;&L,IRUMNG6J,F?]CUD6/D8+S6G_.4*(G@6$GP)4W@@5IGVE*E"?W |
9179 |
MG/7SH!694Q5FEU:+NQ?96<K`1_5ZMQKYUL0B7._G.=@OL"!G/RPJ:^^@2WK/ |
9180 |
MUQ$U!M8D7.`&V-@5,>\H=?&=F]-(*!5Z!5][C!UR5$K1$2,VC!S`9%S[+@>^ |
9181 |
M7-H`D:$$EMA?E(X2S9;6D)BW:LIZ(A%;]F1",F[`U[@Z>#B=>8'!;U:=!IZ[ |
9182 |
M`AJYC?UV#07Y=Z3-CX,QJOOTQ0GA-Q^(US@^/SY)PE,HD.&5:S8J(ZI?2O9" |
9183 |
M\"$53\50>J?T:P>[W=7#OU9MB82PVU0TUU8FIA?7AM[[=7W#DD]4Z@/NV_M" |
9184 |
M]FX7Y/QJ-:=64('MU_<'6E"3_?]J($-:BBB3)4`@DG@<#*R/_JQU+1YO%0Q* |
9185 |
M7X!:ULVTT+G+!QSPF%X$^;!CZ6BZHVXG(-+,Q,69&2`Q,`+)*&;\$O*7LHXV |
9186 |
M;9($7JO4[D)9F?W\5)7QLXC*YZQ>4?[Z!LL!'7YG4DE]XZ5#NIEXLZBF[WB* |
9187 |
M=^86580C@,[N3#&W^/(CE,FD0&,!3$X3HAX/S/0LTK^>T.8LI_?9!YJ[:R\_ |
9188 |
M=J(YWGQ-64Y[#*U=D-UP&&F!)`;AOLK.$O))1E$!IME.24_?,#$-`3,!J%NT |
9189 |
MZMHO=^\7M`R_YU5RQG`*`498J)F@%8(=ZD(YFT`MDO8XJO16O=P(-Z"0252' |
9190 |
M)0<AL_T)@B>+_X^B8A(YVG_?]K1L5=!&>E!',^:S934K*?%S)>>T=%HB"UG: |
9191 |
MEUJO!(K/%"$ZJ]#?P>JB[@W:I@X/!<=K=&KJ3,",\"AYCS2/;"#KH?^:V,D> |
9192 |
MZ:C)N"G?>_E(9'A[?L8.:G73=<2%+K9A0,.+7/@&D?SZ(8?M$ETK?9N5O/4# |
9193 |
M`0DW!(<+]J]XR>>;.E35E%.4\U<R-I&=]TV5D/SK>2P8V85*Q-_I!CC4P@DY |
9194 |
M=(.NW[GC_OK+0T\]?_S?OOLQ52-^?Z3YXQ7[4VD94"$237'N8NH$V53EK]-/ |
9195 |
MU`(=@VCBD0F)1**/-^40FBC5K<:$KKLZ<]%:1!_?9Z7PY\?TL0BOM3;NK228 |
9196 |
M0JQHF>WNC=+[7HD?D$%#FQ2>,!FE3_D.F#?D+OU3ML[.P#NJNLM,DV=(">F_ |
9197 |
M*+GOMEC>QL[WIE"R%<*B;]BGDN`EH1;:]T@NRUJ&C)IKF)@U4*,>\Z`I),_2 |
9198 |
M`>]B^A)(91/U3SR^6U<[M>=%J_[1S5$$7</YE$G5GK"(QS7OW/Y(/&#]E/V# |
9199 |
M$&H1ZF\FC6\;O7V\:]96M4^(.5/.$C()K%[$^!JDC_QX]01Z-][)YI>7PCPU |
9200 |
M\.[+'-]5>U*^@,*0RE(`P=VB=">/.*__\#\^O\^_%P.W^O_KH(?[+YA$UW/& |
9201 |
M_`?J6S(G"E^ZHH):BH6QY$/D1F'PN?[QLUZT*^_?MV]KON\_(Y_/MKD@/K^I |
9202 |
MC71<P-@LRI'SKV5FR`AUH#VNQ`VWUK)AZ4(;C%E14B9FN)"!*':],2KXT?W6 |
9203 |
M12)T`C9`T/<I;2,A.031V:J=G5!*[='*0KDYA8=&::/E=[L>T;+AE9.X4#H2 |
9204 |
M,+5'T-I/]D;3533&4E5B_4!^A_Z&%]9"7N"]<&Y">>D?!B$\#%X0<W!;O<OO |
9205 |
M)'"]I29F+J6;8D6J:#NE-!);H`@;@+2BI$P+.B%:Z1$,]6ZSR:LNQ<$-26KN |
9206 |
MYVDY<Q<R2D"Y:@!5\?X'<?<4MZ9=)9C]8[L<<MQZG@8+JWH3-MTB'8,YI0@` |
9207 |
M$0)2K[VT#B<0&BXYS*.,IQ<VNA"5UT-[B9"LEA>`^*:W74GYZ@%%Z9G+3&*O |
9208 |
M]?WB!]>_T7K)`@O!Z@K'6/T&4KY:\30%P,G\?8'"Y7>/$F&`I1P3=,1YP?AY |
9209 |
M!U0,+'(1LG59VH=MC*K:*7:CUS`YJ$4]9V>!00?:]($#90C3[LK&UOM,G-7J |
9210 |
M<$)A?\_;W$AZ_'Z5_\O4P:\R^3SND;4O2882#=ECKT-$4<.=JO`81%B:X<!> |
9211 |
MEN-W0"S(<L8FLQ^S\:["DG`[(+(44'-YYA16D"T;B*R2AFC16BH&]7.Y!3N^ |
9212 |
M?)W6$^%-Q(.Y,2,/NLF4I`DD^DBL?28#_,MB.L,FWZ7;S$^)@U(Q'5&$BSB@ |
9213 |
MC3\@<OOZ`WB.!ATR-QE2Q$+TI?Y<:B57L15FTE'QH!&:Q8UO)$N8.=GLQWOF |
9214 |
M;0'<D&U+5[6$+(EBIMA'.&HN0D>L7HWNA!Y;WN?,GLZ+U.>AP/@@^&XDV2W@ |
9215 |
MSI3N]SW[FZ]:Y>M27PV^)QT%/9IG-4!20F(`<B(W!I/AS\B+,L6-22EEV`,) |
9216 |
MI^I.@\^QV`X*KBI5F$&@IY-YK$JZ'4I?'2*=W1I#-7U]AZ\8(%:.C!U3MWBV |
9217 |
MP^WJ/^'$F:P_A=#`!_8@=DXO5DF%R$=FK>?K8Q"G;FT0E_DXDT,X!6:KQ?!L |
9218 |
M(6]*/_DS$#R*`W62`P0$('9AW9COIM]L&<>O[!UU5:=XNY2-M49_/4'O&F14 |
9219 |
ME#2I9+#F&X70#KRI9#*ZHT2(6'%*N;I6J59]ZN#U29,JQ!,3\$9T;]'"2=3, |
9220 |
M[/@X<90H](K+RE%:JABLE+.$SE_!#]8<Q&E1P#*>I(8!C2C1&6#!@^="TJ=) |
9221 |
M3<8LMME[[K<@7?+S7(9Q$3;3]H38ZW);Y70\HD6Y9-<:IB[YJ_T:GSNV*P6) |
9222 |
MF[#_V;B[-B_Z/=0(T<I06/:)XW1>J'3*_<,ARL(9PL)GH'^LW=DRKQ<Q^$1- |
9223 |
M]K=HN["?W8TP!MV^8P<U-?]G<:."[^I78Q=1/[Z=UE+4@>%4GBWZ`2D&!A@T |
9224 |
MO%<#0N$F\5K"[.Q&OXU!,#(;,#(@0Z94F_?@S#N!7(UK/X&>--22@*W])QI" |
9225 |
M)G4B_+ST0PT\J(S&%=>Y#,RL%5]$12-PU!YR[!.3E&L4/HU=[L8$&7TNM;(# |
9226 |
M_>Z]#T6GBF%AC[;2/0ETPI.IFTBD#0%HLOK2O"N%+U(^5\S'DF^!45CY"'JF |
9227 |
MV0%V"X_UZ-%9A#2]B"@+]!Y:2PF9B*)P7?G=ZB-W[8=R?<VF@6@:JR"2D'(( |
9228 |
MGN+52H6\9'O$3X<V5DWN:]Z5IQ]40L3`BO9Q8.0=W0"#S24)E:GPG"?FP/?J |
9229 |
MAL\E<^>#I._1>YO=LH!9/WZP.3=TQ,^3D62#[RBFY3A-;LFWK6=8Z>8((L;) |
9230 |
M$6XWRY7:"8/#XL!/R>`3!_U.\6\-%9Y+[OL!-S(WW,]TRW5/&.Y%C-"9KR.? |
9231 |
M99*I\^>L\41`6MZ,:R@+8M@85PM%`*CBJBC2`OTG0^=&.N+1@JT2XI"S^&B* |
9232 |
M5Q_1C]?/OF_@)Q<]?*G<7[_%0H`5/%(/ORK7]!W1(JU-3^3V(AQ??!FILU4K |
9233 |
MI7-+0)>C[>CE4U:=#$_T@-T,6(W<QG"15:$.`Q$J=)/D\`<X:MLZE?0*8"IV |
9234 |
ML1&*?BV$]_,>1M4K*!E00'XV^KC.3HY)J+`*=2O=ZY>AE::"?8AER>%Q2(!+ |
9235 |
MQU,E%#^#)(4U1LG4HFTW`V<KTZE_Z<>F`1#?UK!)7*=RGJRN#_.\LMD?#$WF |
9236 |
M6)K-["CB4:$P]I14-2@?^,LO]`494-A()8-G/?G?=\#N(4=5WJ_RB[)#:>4] |
9237 |
MEE"#3B5_'#Y/::J8A/\'FL(O':JC=Q6$OK[?6A`0%U6];ON`U<X.."(\%$N/ |
9238 |
MO5.P[\?(<?[\]3-"K=?1-`@/R3N?P'RA5GABPT2PGJ(IJ7O%2+UU81<J99<A |
9239 |
MR1A,I[N+&,H4*%-4%G$'`AWV$&;SE\R]^/(WZX=QD_BSL$JAB[[89^;=3[D& |
9240 |
MU(0L&7J]8%&,Z!3C?K"@EO-D?^AJQ!+HUXS0U2ADY[1,6_ZZ_5+$Z;24D^%- |
9241 |
M_(GHDEW!,F5=2;'C=N&E$@^)'FX/&W$*,2N:E%GJ9WMRV8FM!>_]<\FLF_C- |
9242 |
M<&Y3\:(MPFZ0:;F-@,A%%2Z!!?4R+,VV49@`&_JJ<YM^GLZ_+K1GF#F%6MG% |
9243 |
MN1KJX,7>7$YGC\L5*D*<*S]5!:;&U@2O7E5_M8S"*(^9S\Q#T/%HOERM%T:& |
9244 |
MX&DTJJ/*%&6#KD6EDAA'(\Y&>39T@^(IE+]S(;^R_?F,<#,H*93>A<BS)F;T |
9245 |
MQ8%U!=VBV-IR60MG`CTBJ^TYP^MP6C$E<S)$J`&_&WW0,/4&)9C=(S()_/S, |
9246 |
M\)7R]C?Z5CO/AV1*?V+NIQ<L\3<16Z97G\IQT'D\84[ZYR*)YT3BB6@!4E(@ |
9247 |
MF`V_&V68*6X452\X^Q>(>P%LHA\1=4J&GA8:GZYZB6*<[\]G&M/C@YO+73DR |
9248 |
MY9B07<G5B]Y[IM@\ZK(C.$]LT$EB76$;"::B'$:!G9I>*U]T/=EO#?GISBOD |
9249 |
MSV%J,BHVUC,KY0E@HF8/B;Z)#C18K;=F%VFYYNN/.#NK%-=7X')O'=R8\(]E |
9250 |
MQ!IT3-N+@>2RV\J81_=`&18O\R8&LD"1.?B:R:-DQ=%]QWT;YP8V#:!."N=' |
9251 |
MK3)6>@(C7"9,K)3U<`.##:(X=,J[1)8"71,]-E!R?QT?,ULP1E6AZ;QN<)5K |
9252 |
M#P6_@]O,?(T)IMVZ@.0)47RE3GN$!0Q;L0<E35R.Z8M"7@`0MY)NK8R[<:0O |
9253 |
MZ)+E%\F3?ADL1\;S!QR>#(QU&&,5MZG@:_SV>?KY:+#/AXEVIZ,VCS>5@1!X |
9254 |
M`QY&IMV2NS3=)M32!S,N#UBH-X3Y3Y/'JG)H!Z"^Y'"FJ(4%KMP`KU(6(`4T |
9255 |
M-*H9;&8NAG"V_"X($O56Z76QU*?JV\T$0/DK]LN\05`)&\T6'P^_:DX,(YA( |
9256 |
MHD01DA2WPG+I(BR,Q+7[4B\+3VF,:<*:@LAT[IU%RJ[J1!0VWQ<B0A7CB<6( |
9257 |
MU`]K3X2'4XJV"ZH"'I7Y`FZ$(`>1<(_04WWT%YT,J392P>S<X&GX*V\O_^A, |
9258 |
MCZS\IUW]/&B^3K/UHQ^'67+Q20TG2)6N&D70D6%D#^?HQY'Q)*>!LB39SEV^ |
9259 |
M%%C(ZS5L6`^1XN'\6GTP&G>%XO6CW?[\=RP-24"XY^H3=-IJ%!:7"TDP[=>< |
9260 |
MPM^&`2:47\O>*7R]*%0$.\OLL^"*8)*F_\3K[C#<XQX(;2,#I)(XP+>RW2/& |
9261 |
M4?W%C2"`]4WV6Q9$5`#RHM_DPT4BEVH*#C9CRY;/%E^<_FY_OZ=$\__?M<*P |
9262 |
MX*Q)X9('H,!28@%O-563O/-I=#)65F(96!QB^?9K=[Y_V:6WW4M04/7QTERH |
9263 |
M0LY')\T1'`OR#6PO9LH<7IL,3P4<I,/_Q/%])?3@[+?4HDQL/HFU$U@2()1* |
9264 |
MX//6;@?TH-4$<2<-F?!C4=U.C39:RT6:LI^CG*OQHX+[6K46:?ZB.ORZ%NT" |
9265 |
M,LBA=D43J3;4$_QF$%S*)NTO:'/8T!W":JDFI<APO/(0RR7=4)&U+LHXDPBN |
9266 |
M-U^V4\(0=V;[?.1-+96?Y`:_HH'-0A^BP9-!UOE(:H9BF:ZYX&=W4Y3F[BZJ |
9267 |
M9:GK7.,_3WY*CG2P([2LP6=RX:5;4\A=XI1=OKM?LF$?;"E!^)EH!TRN_)N? |
9268 |
MP#!!G$ONI//C"F',L1X6C-G;E2XAEP'*M_P,?.<XP4GP8$HQ>)$A'/WPK]F( |
9269 |
M+BBLR@$2-?`5.&-,?,0(L-1N"04B0JQ;3$N8?X%N%V$.4\-@H)K6NUL)_IQ_ |
9270 |
M0D*X][2U=__TCQ=FY#C$0D`]Y"(M>T0%9F4SBECY%`U?!J<^TS"_Q&"XHN-D |
9271 |
MX'X\H@_),KFE%9O?B4.Z`Y:`2GIG2G0H_*0J<^P%F9(LP8QRV%5*$_*KI37@ |
9272 |
M2)JX#<U5/]$D14:=@623/4=6+0(BM[`4,;HA_R!(N>`$4%RB7[+N\=^<1<MH |
9273 |
M4FUT24I;DCS`X,EBZ?#J$5&7R<GWPT;"=2M]--U?/8JO[<`2$`?TS,_R1*LK |
9274 |
MZS;P@460M($5M0:!=]4""QI]AG81XDAF[WG:1<W3*8C$'40,]B^[T=B3RX52 |
9275 |
MW'1S"[N3_8QRY)L`7;@^#_:)TF`+=/B",O9C8K6@W>-.<*UMKMJM:$ZIV:61 |
9276 |
MJ5@^'K6'QOR0E<`L[IR70-3+W?\-ZVG_OX[Y%C\X.)Y^4.`>Y&FCAZ%8;MB" |
9277 |
MRP$DNIB,@0E[5>K:CWFZ?\\#Z>Z:8*[.@69W]U3A%+L\%4NPSPGZQ$=AX0$0 |
9278 |
MB'_.&"*C<K9PM6E+<.PVU:4WDQM*J;4%3$;^--*8T$`-."X'T978"6B:<I58 |
9279 |
M,^WI9,S,X+"D<;A9>4F=HF-_M"7=;R%ZW*OKCS'9;-3]D5XA>P("8#G(]H"* |
9280 |
M7,3HQ99,=*+2RW!7\PY4!R&SW1A!%(Z.^"*UQ:ZR,PV4Z]YK8!3^8*5>08BC |
9281 |
ME-`P<DA)Q(#S+YICP+Q/LEMEGF-0HIXP=M_R;L6I1%/W8<Y^HTLL^D3$9;=+ |
9282 |
M-.`OEH@6I^-B!)SRXZ"L8@F&/"6ISP6]GH;:]G[MF!6U*=_/=\X;5<6%$L*R |
9283 |
M01M@-/F6='$U^#LI27Y4Q_2J.U[Z>,#*BUY_(/@1)<!RM6F1!1&2B%JR9UX> |
9284 |
M1>8+]#NX&KR=1O$BTV=M5(;0IFR'3O+<[L_.V+3"9B`G<80PX&`&>61"O)C# |
9285 |
MA8@@,#[+G9<\,8P<>!>G?HO5.HYPX"Z5I+1E3U;O_5QDG_XAB@BKYK60Q$*; |
9286 |
MC@'DMDA\;I-I-,3OOM"*K_\96%D$T<W=1>D\M%(K<7\#S@[HU<TZI"V-\I7= |
9287 |
MBPJ/R,EICTPC&UMSR"O#(A`@9"?IQ:S.B2R[.>JH:?=2K]%I<7:7)!"$19KI |
9288 |
M7,'X<<]!!7$T!Q9F2`]6`GYJ8H*L&<'&A1)^\W1[EMH)A\\%BL\&BK7G-6@W |
9289 |
M%_3`:F-:&\6*4M`/[!I*WUU88#U[](NV.ET2/;>W2%;6J:7_QF'.#JMK>+?Q |
9290 |
MYUGL@+[]!Q?41VIO=)]_.QZ!`SB"Z'L7J[6>_W%OH%?1^%:`<VM=EA8(5KR` |
9291 |
MZEL3)PUX.#O5___\#_1*598*&@/B%VB7-0A5A2X[Z&\B5S\`'0(=0IS`W_.K |
9292 |
MZY#95KHN60U)N^?",<(PJ?6@8;HY#>)\F)]A!)>/M:,U;)FH_4^ZL`>YL#$: |
9293 |
M3PLQ4J2=1H*F7N-/;R9*1`R5,QA7:)Y:TLOYT+^3';4IOSYC,4HHMYU63K"R |
9294 |
M$HI92R1DM4N@-6R)"),#XXS<589HV)W2*)<FR*.07O&>YZ[.;U*K-2`#,29+ |
9295 |
M96G&P`@YMVECDCS_X_@:B:R=#[+)KEB?_>BLO!3V'C"*`'A4U<=L:0U$;`W; |
9296 |
M90C<CQM2CFH&9MU'?FMYU@=G$'+B#S+.<5:IR1.TABLJ.,[2],U>9]$)SZ37 |
9297 |
M/^E?29?HOC@SZX]Q)4=*?IU&)"UI4XPOD[\/-*`Y?%U2![/,HM`.:2KD?YL, |
9298 |
M/"Z34SPAAY*0R3S"B/R_[H;^/\AW[I9ES,?TS_WO5JK3Z,@':++[+&%!SHOK |
9299 |
MGI4U;$Y0I#H,OD=64J8-&51F'^N2ME.BB#2BKEHPYK11E*?7TI/M3'3'$SY@ |
9300 |
M(Y+!A.M&Y7Y%QC'\X_0WDND"1[9,>"R$QQ-K*U6/DLU17%VW,Q^@('^8)XSN |
9301 |
MO2JI5A2>%$'##>LGK$7"CQ.D<SSH5_]!#7C(_!!</V9VLI'>O\UYYEQ?#)T? |
9302 |
MFY*`$5%3R*N+@6O!T$EI`D^E!&M]RC=O945O98/!VHM*<'S_1PMQ2TBG96I4 |
9303 |
M820L9.OM?C+D?]],'Z+UL*^U^3HH7V&>EKM]I)%E^,?D^#Z6Q1S%!]M#K;*I |
9304 |
M9[X'H]^CA`M;HB<-^L0/3&:5@_.!<,R'W=Z:4U;%"*DID!M7W!]E.GCA]66M |
9305 |
M0MQO(9L1\+(]4BT$OO^_)C2`#WS_^G(K$'&HOTU<XLXR!O@-VJ6FOT%H*S-: |
9306 |
M8-!/[GECN1H2V7+EE'7SDG9/$@^ZJD#_@D>-'NG'**<VP&&XNT7[,3YPZQVD |
9307 |
M["^$BLN\I7$HN0);2!_R%@>HP::\CG5\2&-LO1)3Y2&?,4.`L$*)D>-_+*ED |
9308 |
MVTUF8#O53N8^5TB&90DK)89`-U"KO`PB6B7VGZ.@P_S%1041Z6'O=8#FLR5> |
9309 |
M52V4%=E-.]=MD5>2<GR-2*COV#0/44J<O$'&#_V[4%6KG`U1G#8B9Q+#23-B |
9310 |
M%E"\36JZ41"=9$;9_`Z):$<-/.0OT<MLM`PKU[389M@>;G&4CTW@43$+44O< |
9311 |
MO1OH783%6HD\&UI0*<3>Q8`"9OUE+;XY:X!#E*GCJX41B/1)9\P>X;1S9;S( |
9312 |
M74NX(5HO[\:9ZRC`+U5!\H@D_@DE\TV^\Q/*Y!I>#34BN%!V4QP%2X#F`W0: |
9313 |
M72DIX9#=T=PLZY848L+TC!J;%K<YH63U#8[Z/7`N0O:#&<$^2;(Q%<\ORR_% |
9314 |
M%L8'6KIS0*M78/Q4J'1I8M$%HQ/!0^"V4)$Z4SD4$QS84<S/#R.GG])%H`H] |
9315 |
M;U'!%`L=0936A4*V"0./ZC.F%B\-X65SA\871<UI#Y0Q@TK(Q=#YX\]X"(G0 |
9316 |
MWHKA8VBOQ5-+3NE2":MA4)?KAB!=+VAO"(7I>Y]=&LZOON/RR27-FX&SIA$- |
9317 |
M^WCWS*2)5-HQOL[^J@(AZ-FO61TJ-!H;HQ<%YZ8<6L%IK94$CI[1C--8`UE_ |
9318 |
M+[$4!#W/(@;Q4<5NL!R@@/,.9_YP+^525"Z@2-!5@\`][^PI.(16HLEV2%0) |
9319 |
M+`%``#IW2/3V>U<1VN%CL.C^+?YO]C_6$0?B<'^M(9.S6'$(!"@0/T.MD,-N |
9320 |
M4:)[*JY'*2=&'JU'(IV.4_>ZUMK,[X^:(C>@-!],C1E@UDE5)#\F^`R%_8*6 |
9321 |
M\R->Y3,D,E!0\1VO8C(U[:8(OE5ZH='BV(+B\,\+/EHA#V]=T^J?7WE$AGYS |
9322 |
M2AR16+V\![E3;=N2A=%B8/9FBRE66O/8*_"+*T%0#"'->*5&17%8$KN^&I+; |
9323 |
M+FT?0=@.,6DE?8(VZK%DA'H7ZPYY>,JK<E?_A/S_B.G)A+1D9MQO?@6=P160 |
9324 |
M*RQB[6MUC.NFU0BB9_WHS'S"+F:QT71Y'8^:^[5'H%?%^SMR0-]XT\M(T5K! |
9325 |
M)_]6R+Q.Z_)=*]LS]LFKMK>U%\F+;7C@(6+7Z=Z8H/80&>VH.5[LD\T+;J54 |
9326 |
M5]JCVB%@_P#I4.-S**GWTWS[.A$0L5CSFAC0#B4"NR.\M[<K)`R.ZB5)#SLD |
9327 |
M4KN]%4$V>0<2GH,A"3M?._&E\G(\7:(VQH0.B5+)>7$]2IE!V9UP4QOI\FN# |
9328 |
M8O'D07]9%"!Q%B.*M+43[5(RF:2NE8J-7ZF<KYU#U9L@30T."\S=(<1L?\8# |
9329 |
MLNG94M)5H;#J2U6H(<2JN`.]M;SG!5%NMS,1UR>J=1_!",NCH=@FNZKL6?;A |
9330 |
M1YS+D(TH`\(YXL&ILY2>@C%]T8>2N*2?&CG98Q357C84VKTZH0R&T58\9")` |
9331 |
M/]U]7K/P@$[CN@NL&;^N[<>HPD:&1O4C8F)->2;LZ<94[.'LOTB[2J<,G>*2 |
9332 |
MZ_3D1"';8?1;P8-4V(\YTDY8%UVE%PT:L<5S][H;2P=CP(%E<DNT#$?3T$+" |
9333 |
MYB@&5E`R,H#SL\@I`M<8,O7)<([F8$?F+^S@(F7KGSJK]7\3PX1)R7OS_],? |
9334 |
MYPQ2B`CF?,@$Z1`(%-[38BNK3D'S(HB-3M6>?Q#'[BOFY7/U>O.?_^ZFZ&93 |
9335 |
MD9^"15U1+^A'A"'C01T(]X8`PL)?+_S*D]V435PNT_=L'$;.WJ=&/]):KH:= |
9336 |
M*Q5L3(H0Z\!$0&:D_\6-"17QK-'?2=(_"!C=XV6N93$'&ELYTW"QX5+;1\&; |
9337 |
MGPPY(*J87:/M90[8Q))DZN+7E-(.-6@*ZE-,E&X,K^_OU$G:=<NKF?Q>5LB+ |
9338 |
ME/7(Z8[&W,;+[,GK%/81\87XG+!?HY(_LL*XTI])]HUC'_?8@M`L[8'^',ZC |
9339 |
ME_*F4W6V6OW%)5_(3M3*<#;MOEK?P$QVULO$LRYFL-J/#.X=J=<FPN8?^MSW |
9340 |
M]DHR=VLW.B'.9.S\X;P%"`V^?6MC[[\/]A!<>7:LY>1&GJ6TW*4(B-@I@DYB |
9341 |
M7Z8-U"Q((C3.!YIN%KRY.M]]8`1U_E^J#A,Q:AP46-&H8@1EW=:=YOU8'LV* |
9342 |
M*CCGT?W[?/HWLIEYI)QH_?#.BB2?\;:T*=.Z'\.7F]XO&,]X;'XG!'X.POK. |
9343 |
MM-AHTI(+0_E>^A$?N0JUF49>W(2CZ:TN6-)2[PVMAT4X%P*RB$.)X9*SPJ^0 |
9344 |
M1#_"NV<1_`0U;SN:7SX\^8<V%P3;Q3^Z_5;[>9WGAW1E2^>P9,?*Z;"<:<0G |
9345 |
M!4]\A^'OFNF/'WS\Z/EJTZT[,[:Y>7Q\T.;>9LL2Y3,F"(=@_]1ZU-KUK;,F |
9346 |
M/*[=_Q3E'O^7N>,R]1=(Q)VN;.01?U^A7*?7),[3/EC(;DK<D#%W8G(-<<63 |
9347 |
M>"@`A>N6W8Y6_S#HAH',UL\*3A8E_70G<5!MQQ#S<!B_B]Y(T'333<:TUK;2 |
9348 |
MYEGF[Q5'PS"J#EEDSI"BY4(&0OF=")@VG/\QR(*H<-A2I@\E]@ER(L0O0X5G |
9349 |
M]$HPA';R(U"6@97`^+QZ8_+\,'?57-<1!?2':-!R-"Z,+LO\'B1&:(98<SC6 |
9350 |
M"UA@#;IB!$;G!23M+<4,5D>;C="F=6LHR6&);CY=3A>EV"$_YJ_QX$M%LS"N |
9351 |
MB03?(W"[#)_",!PFCT/C"K@20DS_2SG))#!2AD,BHO"L:]F6;C[__!$+7"`/ |
9352 |
M\5=]$5L:?H\\LNI9:_#DIJE9P<VQ3SAH\N1<J&[I\`R_VECE%B(:_8OZP&5Y |
9353 |
M4O:CE\U+>:QA/WL`JT7IBA&;Z$1,P4[6@!>>FA=AO^KRW'_T`S3UZ8>&?/'( |
9354 |
M*(GG-F1UHE*!\=-OFC;`F*+)</&O1U>BR`-8U$^A>!\1O7*W$5J*,/4C"=&B |
9355 |
MRI]V*K)=;?\0WYA:M64">LAL+!\M2MYT5K`O58:L<6>Y8,)677VHBI&^0L\& |
9356 |
M5L4!)_46[:*X\-EE<!21+R!08SPZ/24D<Q:>,$:V_@]),4(6]*9=-J?;70T2 |
9357 |
M=^())B\E4UB/*Y,^V:MG-!AGR"(4MQ+>R.$G).E$3\'*!GW/[(%V+K-Q>PLC |
9358 |
M.$>LE<RC*7!M)ERWZ3^FFKO.RFN.?T-AZ]^A8?DA!O-,KHP!D$S>,!WAK8;R |
9359 |
MUH*.D-A6UY&&PL01B;^'.D"0H39TB#GD_4]X0RF1.NB:##`3)EJ^;!-ZHGC/ |
9360 |
MZF1[$N.44NL<$4KEO`_R=9+7W$_6XH]NV2DKI?%:+E8&_/(?]/C:B!@Q^KD_ |
9361 |
MUM&Y8V(LET0*K**938>`RP%Y*WC/]4^Q\:A`+P'9J[ZJ6P%8D(0VXR_0WI4` |
9362 |
MQQC>M$MXV.NWK[FC5/\'_]Q`<54O8Y\3;X^MFFHJ_;N&9N$1'6QVMHN#CT7= |
9363 |
M,\]0GX+;!.*OU*`-<HE7X_I(P/#_59ZT-*:B5F6\@`(;Y-*AVP6&\;?P?E]3 |
9364 |
M=3XOR<CT!P.L[F^N6!Y/,:>PSQ%FR60A*#8)]LR,98S'QHE8DQ*,;HBAHHTM |
9365 |
M!_0+=#I]&;@G@N+N*YO#JW()CN\H/-HKW#^CK!VD.%E/]UC<:5LQ7G:=O2"^ |
9366 |
M#T-$OR2JOX('7:.:FJ)R$_S:4<UO9;MWN!-&SO<JHPZ-/U,#Q9$5TGTM/'\Y |
9367 |
M3_(ZME4<LM.RI>?G\;\?M!1:P.@B5TO9:'*Q>WYP%M.S,"+9;96C<F#]SD&S |
9368 |
M5$?Q8?H3"$$J'Z(M[FWD<\]$NEJCXIUM(Z7Y*PU\L9[,4I!+C;0]/+[OHTG6 |
9369 |
M*WZZB27O86>&YN]:*BY:#<1L;`3[+24/$\\*$OLXIS^S\2I+!*E"KFB4A&5` |
9370 |
M,),]^+&'6+MJWZ:)<Z9@EG2JPJ*&YI6A\7@+L0Q#_)1FBU83",9`\.LGI,G- |
9371 |
MAB=J6!%N0]']``@DS4D'AF:!L9F/%.74VVD!1PJ)7G@YV]H'85''STI%.X,\ |
9372 |
M@%`EBZT6;<D\*_-7$HCEA4V9K.R>`6^L*6^1,%5-@SWC<\*6H4:'ZH:*6G]% |
9373 |
M?R&*F?:F*7X`XRP9M/6.-D%\B/G7NQ&IS?IK7/#,U'D'QF<\1._\:L)Y&D>N |
9374 |
M4^S9X=JK$LQ304S$(=67IN:,L)8(BK%G\6<>?"\#[$*U].?$!EC9AS`$'(Y@ |
9375 |
M(F7H=2T413`%U*U9_9_L/@#;[P-*[*3YGHH6I(6_Z&PY=7HDK#HBZ3>Z\B"6 |
9376 |
MACO"8#9:A(&%V="TGZ?QT\W$@DL['@!IE(9V@7*D8'LGDV+Z$Q__<`RM1WJ' |
9377 |
M$(0V09-$:PB"(L8VV7OPJ93G9R-K>%C_UH-U:/EV\AHS2ZF)$3L0BQ#XG2<C |
9378 |
M/_(@BW,JJAS]-0AT\%+T2QKN2),O%=+WO*KZ)2C$%8P")>'Z_BV5PTEI?%Q1 |
9379 |
MUBI/ME'EBJYA]>W4M&$Y?8--O(5V/FN1(8Z!/B.G"PY?$Q>/3)EI_+$7%G64 |
9380 |
MD!QQKE0>/M>+7&`2/"B*@'AM/]'G@:EM932VN3'V9KZYD80+&N5`'(E\OAG' |
9381 |
MRK/;U_,SXDI:,UEHQ#0(/(*FSLT/-ZMIECOM>4#U,F-7\ZEA06^IQ<=`(@A/ |
9382 |
MLFQ2X*UN?`S<;-Q!_U]U2`U9*35W2I$_0I(F$15V4!@W0/?\=/H\'`OHIA1^ |
9383 |
M*$?_@OWRD]TR?Z&%:5',*+4RI6$CK!W7?N9&T!$YTFKM_"*A,,L(8L?LH]OC |
9384 |
ML/-ZS'PSA_[/:!F10N+G@,)*H`G3P137Y^^U_X!O,_WH?XEQ]$*LNB40*"5/ |
9385 |
M9&5#5D1&4.-X#@)^"JK4A6J(QY-R^*\QP<//HBMTDO6#H\_DW')"12$WZXWC |
9386 |
M&=^!6-Y.;JFRQC0+E*`.FJ6DB6"#>?Y1,[I)A""(K)(6.;F$$3*+IYR2P9$@ |
9387 |
MO-_-&R^9]U*.7V$;/T?U:2?=9.--1AW@@\*LYNUUG7IKEV?F=#%$BA^QP"M$ |
9388 |
M57J2[&Y@2ZDOL2[B],ZK%#6SKLK&N032.][;4_K*:RJ?:)"A)BPT+M`MCR0( |
9389 |
MDKN717S,]K%'QKYC>[1D/IF;2M5^\<1,E<I\KOFQ7RVNK0G+8;H!!G02.JP% |
9390 |
MV*(/`\+E<$Z)^U\IM@]44RY+&`$7W$&AD;ZUOI`Z'=,7=[5$U,LOAPLE)[A) |
9391 |
MG,Z=,S2S&1[L)P<&=$PM/4,X_>&!8*>,`'OM[@,@(J3B4N76I_"):*/=S*HO |
9392 |
M>PY-F8K</B0H.FJ6XN;FRL%Z1OLHJ:ONH8]]7U(:Z%M!]SH^4RN[L"#6<,#M |
9393 |
M.M*>[^QZA%_7=RZ\B1>/]%<-+!XQ04^F35*I-&$2.SC4F>X-V>;``;4PEKM. |
9394 |
MI:_9;1#UQ@O'ZK>97G$&(SC]5:L:D:GZ*>H/S!\^?*%<8)F[J?>'%R2+/`#4 |
9395 |
M:P5KCV$B88Y0<^FT9;[8,*:IH&7,4K35"(X]6J)U@#\>94BK=GHW9GCUC^J+ |
9396 |
M:J;UJ#K:_1=:&>'CTXSO$BI:I=M&`[ZWHRKJ`\26,KIH-R6YE,(1`<&FV<P! |
9397 |
M4?U5D4U_DJS\>(-GW<G^6?3E?4ZKKE`&X,B!09]RR>9'KQ]0IL_<)<?E']+` |
9398 |
MVY>?/M<5<;X;F.U?=?^D/K+1V*`K\B3AX&]O\10<DA(0Y60!H.5_N[:!J!*Q |
9399 |
MQ>>@0!MU1F8/_F:3RZI1<=DX&`SS)+"(O+P>R*1LC-IO7XY:.[F>=/1H)DU; |
9400 |
MF;G,0FX`+H;(@3/2F3Y?UNLS0\N_<A$VFOIE-/B7)?\$-CI?6@ZZLE&C?(\) |
9401 |
M#!@FD:$WJ3E""&?T+TX4CG)*)_O]PS*6%.1N2#)\G6#XS$XH#%':`.Q#@ZW1 |
9402 |
M^;*=C:"L_*9HZ1K;O>LY#\3'Q2FD7(MT?NHM!75&05_[\<:XLF7-&62!$^_; |
9403 |
MWN'P'(TB<W,A2N@C'1G_C*V8I=#:WU6;U)XNP.-P<0=.8K74+(YRT2$E1\17 |
9404 |
M2O__N$&@[`3P%H=%`TY#K#_-T;?$+/"95."]NJ4KOV_BON9_H#3!5W;*WM]? |
9405 |
MLAVE:9'GC^J,5IOM'LT^-;'''W(`SW-TM,X,&.\+:FQO_U^])W(("VJI&,+H |
9406 |
M&ZC/MKBPK.Q28<JNVIGE'L`(@R[6M2UM[<GWZ.>=WO3*XK2$@@4#CQKO:K8D |
9407 |
M][>4'^:P@9B\("<%EX1N.O_$02JZ.H:?@BFCNU,"5\5"\A=,&*RSV;P3M\,3 |
9408 |
MN_F]-R1R49)OF%HXA]BD8X4#,[3I^`%4_N'>Z!RR]BZZ5$('/_*:H-_J=L1. |
9409 |
MUTZ;JT4[5B.:^M').>%:4:&N$L59W1W&ZLP\-MERUQX!EA<;%D"U!N^W*N^5 |
9410 |
M<3]#55"[KU4AY5U+TY=1E-[R'N-P'4/X="#P2,/$X('R2LA[[-7(.P$,ALUL |
9411 |
M0#A)7\'[KGWB$>@T>,)BJ@[+DA;$2Z_&OL_G#]..=PLK@.K6\O,Z?YVSK/,, |
9412 |
MAJK\A/(Z[J%Q;R8"[,HGMF6?ME3*0DLALP^[/Q]\SE.2'W90)"X<">P?:)<# |
9413 |
M3<7=P=H/`4*,Y6,/XE;DQZ5'=UM?RA/#B@&29&F#LBL20PA-1+4F0D>;"%KL |
9414 |
MQG)MDQGO&X<5?^@?UV.%%@I>TC-@(;0[.VH0]B$5+\5T9)'[XPMZ*J6`701A |
9415 |
M\.QBFI>,BKB)0UD+TH,WWE*P&W/$;*:;NG0+=F]=S5A9W6>Y)Q^.`K(&[[$$ |
9416 |
M!E@<CNU:]'R`PMYZ-H=>.NTN<+UW0HZFA]PM-OV4H7@RHEVWI;$2\T$9;?TD |
9417 |
M;*+7BHQ?MUC2XL#^7H'6",JIOI%%3/J65D"[15\0M1#";FN",L*4T&EHK8C1 |
9418 |
M4NYJ_);A?+.,I?[4-HS"W8R5YOUUX(!7=IH4N(CCOX>![M\L<E0X=RPS]:H, |
9419 |
MZ8,@LHEU#80=$N%34!@&@>2,*9+PPF:-G+IDK>)0A*[@I,!;MKOL;Y'[HJ16 |
9420 |
M\V`'%_V^'D;.2U%MT\/.A+B0[X`.>KGFQE/9G']*S5"2N`^+0L2T8S)?2.C0 |
9421 |
M4"/.*/.27'$RN\1RL>%Y:K!_&L)1NR4-M.F>[N,&;62G;O$?.,NCWDF+EXNV |
9422 |
M1MI0:P-P5?\:H0;3*"F[7L=M=6PXI!RPG&L6JT&<'&/!7Y_V9DW^CM`>TG3= |
9423 |
M6%`8$;G#`QL\IA")8-F,-Z%ZZD4<@=OI,F2\@'CNG7;!<QQIL/CD2@1\E.,R |
9424 |
MMF8Z;.+.OY^^'SU^)9U94<T]-4`<JWWB_IH)MLR_%Q'&=3<TSL4?K3<F+.6L |
9425 |
M6"9?Y\Q/_3ZG00&SZ>["CA#%74,$@8R)S/^%>)1W9G:HI+6B!,"J/1?!5EBC |
9426 |
MNYW+S:78&1:3E*V04^)D!=M$/?O7S@@(;$BS2N]LX%?,\GAT_#@[O+MIW&%Y |
9427 |
M%G8^Q>1#+L)&LB:W2]S"8V)6M%A5B+,PUJ#@;-0.SPU2T`Q4I5=^M"8"&E@X |
9428 |
MJS9NZ\'$V7.H0XW?YQ'@C=5&.!`^^/;FM*[3L]&)P$X.T>%#)&=!,3EG0:Q^ |
9429 |
MQ+40%,E$^0I+=SK$]@Q3O4OM/A!KVWS7267PU.K"VX_'<_YK/VP/FKLD80(< |
9430 |
M^0V&^^=<>N$$M;%OB.*&%=%`!-R!0!H<#"$F?E.%-,-O>RF4FV)2.CQXBLSM |
9431 |
M%8+_(&463WH@'O8TW,W2<PP>E29H1I%'_'T1`Z_+\W^@?6GN8R!;2SD1V$M] |
9432 |
MDO]+GD=F\Z4AE4?'8*LJP:4L\9,R1())'-.(;7+6_2US>'*0A,.5._N!`BZB |
9433 |
M\E4.,3C52_;(%[ND=5VZ$8&DW`8!#EMK'[$Z00Q_THLH?I(-9DJS9C#3%9\. |
9434 |
M'>P+QU%+7Y<LT`_;76&RJ?[E4O%)`'5Q5Y$2YQ5+C4RJ.S^U!T?HB89Q!O>M |
9435 |
MX6@5=`0%]+GO76[&<P@$.Z;\SV^W#`,1!Z&W08'7)^MUJW)!O+D]OH]?`..+ |
9436 |
M,CC4;#\AL"0;BW^(H;O(<4T?D8/B!Z!57D;89RX`JE->2/=R%[8(II,D@[TL |
9437 |
MF!YL,_-`"(L4N)E&UYD>S>.AU7Y)P\-E#OK#?BVI_R203F;</#!.%!%H,0^] |
9438 |
MX='$D&T._=X4]<%KJ$>J!,:LS^X("%E/1=6)`$W81U]=.RV1*LO0N!>7\_:5 |
9439 |
MLC###F/.K+%P()[^^@E(X<M`1++"\P#Z=$`D;;Q77&ZL@@'L>#KX3)*F\"S1 |
9440 |
M@EK_MWHQ+'B`)P$$:A9"L!1OP,._/GL:AF).HD1)W=8'W(NHZ3*%"\&$C6IZ |
9441 |
M\@JB.Y[A'UHWZXD\61V?A(2NWQKN[6>5ZKIL#OT128N01?_4WG)S;J6AKL7O |
9442 |
M?L+9/XX@WJ'Y("9!(2,BA$=GRC_D'R[&",(UB\0W4\WR&^#I`5!DH<HCX*8P |
9443 |
M_'Z7!X@30`]E<_>+*]#<SN*A8?S$#6F&+].+>DQ3G1[(!>.UQL=GGDZX]P'* |
9444 |
M)!2-4<7%4O-*?>U3\E$'%L5.+N_2Z3J!Z71O8,&:XGKF#?:`NHG)'LVY\CRZ |
9445 |
M>5!0GDY%AM?G&.(=A8>?<'B,-%]HJN7.,SA_<[B^9W/#0_5Q`-!I[GSJ*CA_ |
9446 |
MD(_G/#\3SF"+*I/)[;'W(S(<MM!TQA0RIP3J@\V`,[Y?#4"!?NFC*IZ[!E$0 |
9447 |
MQ*6*>CS=MF9=1-HKSP+N0ZKT'>%UI@D,/,)WA8.P[`P%(=G#[*4H<J!(W\4L |
9448 |
M1%19[$;G7L\Q@9D6S_4OMK:03I<"JTTQ6T7\YV*^Z02O+/V#B;6DRE-=_H[_ |
9449 |
M\S+T@!"6!KQ_H%-HW;I912(NI!#?2UF5L1E'KU<XT5HBT^2@&3<O`T$P&)R" |
9450 |
MW-![8(`G,C-/,#JT_9-:\_`)-'/^0;Z.`2MM\M\J:N",?-R\"*:C'C4VA!)& |
9451 |
MFET(N3]P^0<\'F><GE5E,>'7WM[%SR:\`_,ZJV,@+99%M:9`YUZ8'%F<7]`/ |
9452 |
MM6_HC>#8QAJX(VR4+I(;D<21J_7UHW_D\Z*^MB>M>`!^D$#FU$7=3)X5^3^. |
9453 |
MP^.?&8!IPREX`"GLT@6HSXOTS%0NC;+5;P/8A6GH.J@Z=C><2(W5N#+R)3$& |
9454 |
MK*N\182XAY&:Q$L@K]X=R]9_J4EOURX]E1*!H[V-)L;37)T8BFWB=HAK''-\ |
9455 |
M0+TEN,5UST9]('5!P3'%7Z9&:E8*RE/Q1-Y@TU(51%ILC8?^'2O]4K4%%1.Z |
9456 |
M#QJ0C#M4_%ZZE4838>BK;.<.3Q8!MR93R4&5.RJMWQVH`)&TT$+RCD#/JUH$ |
9457 |
M*47L3QH,3^.SL^P)%0?KE>T$@COX/P6"P_TCR9\6@P4-%7V3P%DEA=@B`\"C |
9458 |
MHDTQXT)4@S``D',VT'A0)0`4`&SA/"(;O!08,0!5)`X$`I$@A:NRP#L#@@#X |
9459 |
M=:)2`S3]$`!P&X[0_QV#^?]QK`3/`C,.7```#))B'Z?!A?(&B`#BK9+^$W/W |
9460 |
M/S$SP!(3S#TP`!A']O]?!;(`PG2Q_]R?Q)`"_GMD)94DZL5,0OX?4$L#!!0` |
9461 |
M```(`"%R9#'>OQ1E.````$`````B`!4`;6]Z87!P<R]E>'1E;G-I;VYS+W!L |
9462 |
M86-E:&]L9&5R+F=I9E54"0`#+H"*051YR$%5>`0`Z`-D`'/W=+.P3!1A$&&8 |
9463 |
MR``"_\$`R%#\R<+(P,#$H`,2!<DS,`FV]*\\_99_\9PMM[HWW]OS>[TH@S4` |
9464 |
M4$L#!`H``````"%R9#&CC=CT4`(``%`"```D`!4`;6]Z87!P<R]E>'1E;G-I |
9465 |
M;VYS+V5X=&5N<VEO;DAO;64N<&YG550)``,N@(I!5'G(055X!`#H`V0`B5!. |
9466 |
M1PT*&@H````-24A$4@```!`````0"`8````?\_]A````!F)+1T0`_P#_`/^@ |
9467 |
MO:>3````"7!(67,```L3```+$P$`FIP8````!W1)344'U`@7$`(8A;F)V@`` |
9468 |
M`=U)1$%4>-JMDT^+4E$8QG]7T\(;@8->NDX3%XPV[N[N2L$PH.`M)"0L$$0$ |
9469 |
M%_D]A%9^`/T$.="N9C$0+5H:+8*@?UR+<0SG@IJH<],\;53&/TB+>>$LSL/[ |
9470 |
M/KS/\YP#EUP_``'\FMW%[/QWB1=/$_,A42@41":3V4IR915X?WH*0"Z70]=U |
9471 |
M4JD4LBQ3J50$(*WVNU:!ZL>?&(9!)!)!UW4`LMDLU6J539NL$1B&03Z?)YO- |
9472 |
M,AZ/`?!X/"2324JETAK)10G"-$V*Q2+!8'`Q>+$2B02*HE`H%!9RYIJ$JJJT |
9473 |
M6BW:[3:-1@--TV@VFZBJ2CP>Q^_W,Q@,J-?K!`(!;-MFR9-:K08@+,L2C\(A |
9474 |
M\>3NGKB_&Q"=3D<8AB&$$$+7=0&(6>^R!^ET&@!)DG"[))+A$(KO*M/IE,%@ |
9475 |
M0#0:93*9+/5NC%&(9:-'HQ'E<AE-T[`LBU@LMCT%M]N]1N`X#L/A<)'*5@+' |
9476 |
M<;CA]?#RVPG=\S_T>CV\7B^2)&U\B7/4/##W7P$HH2!NEXNS3IMNMT//_LW) |
9477 |
M]Q8/'B?H]_O89S;3OU.4FPI'A\>2&^#`W/_RYO7;Y];7QKN]\.Z]T?D(%RY\ |
9478 |
MUV3\.SM\^O#YV>T[MQX"^&0?\G69H\-CZ5*^[S]?H;?7T7LQ-@````!)14Y$ |
9479 |
MKD)@@E!+`P04````"``A<F0Q=TYP^E@!```7`P``'``5`&UO>F%P<',O97AT |
9480 |
M96YS:6]N<R]A8F]U="YC<W-55`D``RZ`BD%4><A!57@$`.@#9`!U4L%.A#`0 |
9481 |
MO?,58[@NAMTU)L))UQ@/QJ/W4D:VL73(4-R-QG^WI2#=S4I#*--Y\]Z\:2JU |
9482 |
M0F,?Z`C?"4`EY$?#-)@ZDZ2)"TB?QJ=TAW,D'Y\R^4F2%(\63:_(O(H6QQ+O |
9483 |
M9&S6JR\L0`MNL)QC!U3-WA90D:[/P&_(_K/@3W,7ZKO<KS/T,[78B2;0QR*# |
9484 |
M;.L2LQHEL;`NNP#7';)6!N%*M1VQ%<:.)`/W'MN1,A8YL#1HD)6\KVBP(T$G |
9485 |
MZEJ9IH"\.X[O>MKX$JTRV7[2OLFGX$'5=E_`-L=VJLE$GT%NZRQR&$M=$6KX |
9486 |
M\].9_!&N0P+$O3]B+UEU=G9O;O\F]^O,J"AY!4MXYQQG50V6N'=QR2C<UM'[ |
9487 |
MG^AL%C1IUOCNNKR=12_E`GX%UQ$X`LZ-P@70BZA0_Z<MW%!B-[U@V,89WY-6 |
9488 |
M-:2[W*\RMFLSS6<;C2=R>QM"EZ_F+U!+`P04````"`#ZF64Q\$;M104$``#7 |
9489 |
M#P``(0`5`&UO>F%P<',O97AT96YS:6]N<R]E>'1E;G-I;VYS+F-S<U54"0`# |
9490 |
MN!>,051YR$%5>`0`Z`-D`,U76V_4.!1^GOD5IGUINV32"[!2*I"`W0(2"*16 |
9491 |
M\%#QX"2GB=7$CFRGI:SX[WM\R<69=.BR%>I(<XOM[WSG?KP-WS1PQ03_0#DM |
9492 |
M0))_EH3$>R2EV64A1<OS*!.5D`DY*R7`7R<T@V.R%R\7ZSNB6GR/3AA4^?'R |
9493 |
MQW*YW6.KSPRN+;+=0IL&J*0\@X1HW'3ACFQ$)(]8W0BI*=<6/-Z;XI\K334\ |
9494 |
MWQJ>;GVU,D>PK$8=$]+*:F<K*Z6H(8ECE(&,5*PN&8^'T_$5@GY!2%E3>?EW |
9495 |
M_WS5\&)K=T[#CH$NH89[E7YF$0?):'^T`.E)D<Y[KT5=4YZ35U0:)VUG[K_Y |
9496 |
M:\@T-,\9+Q*RWWPC!X?X\<S_</JTG'%4HJI>M5HC;.^R5H&,+D36JH2P@@L) |
9497 |
MQ[A4,:4CI6\J^&^ZT4SC=VIE]%IY218HDE#@CH1(R/0.DGU,#@^&3WRP.PV( |
9498 |
M*??SG"F:5I"C/V0+WAN_B?&8[)/#VRDW.7KXX=G:41Z4V,S\`5C:$1YHSQ!6 |
9499 |
M8).H-_9BR(7CAV/Y9T=AX/Q,D0=@>T=Y\,`Z9=$86#6*\U\EV/_\Z"#'M3B0 |
9500 |
M<K]VF8J-.O2Q_&GM7#D[1BP3_#$)<WVZ%@;G9#4TWWC1*H7]H6#<E713T??] |
9501 |
M>^*%U=`*3J'!]JN%')V/*KC0B6D'3IL"]`>,?[O#-^/M?7R=G)B(,%T[RB$3 |
9502 |
M"&/C`=L;R(IQ",3BT58J<[81C&,OZ\_2"O,+PX@5I9Y-/TR^FE8!E\0N#752 |
9503 |
MM-I(3`B&(<F%UI`3QJ]`:O*(3*>%4:]TAE1DYQV:D&7$QSN>)4"SDO3>)DQ# |
9504 |
MO6OZZ*I_%J5#%%^S7)<HWAJ-D!*,-L/_SC$'WJ9K(.>4(P$,4>]A__A_#@X; |
9505 |
M<N1V!C1%:]ZS_)<&\T[22T1L3'FY7P)O<=](?A`$[[$4D'?H7V7\.[@\F)+L |
9506 |
MA'30STIN3C+C\7)18\IT#C]\:IXO[C(4#X+^(&.A73>*4HQC4:-H&S6+5$A, |
9507 |
MK$B+QH<Y526&N9O%3TN:BVNK6X]UKJ#"VAP4OL6Z)='P8:K.,'^+VE5&PW#C |
9508 |
M=/4,90],-Y[=3'1BD1!0XWU!8=F"-9S92N]/O9'TQO&;"R=CA.XR<3O>'2VZ |
9509 |
M(395B;SSV%234X\5CO(;E!DE35_Q14,SIF^PY*^.IIEEA$2<UJYR7PBNHVL? |
9510 |
MIJGP%[,Y3-\%I"]A)M*)W=M(,%<18\4!4K'OJ'*%9UQ-GY'3^R",U;#^9^"Z |
9511 |
MPM0'1HNSFZ:[2WFG]GGY)V8"YIS][CK6IL,_5_C(H1AGK.RI3T[MEQ+H_,75 |
9512 |
MS!*I"`O]?E<NGKJW:U_!'6QABD?.S/SD!BE=^=)A)2!B-%X%;&?*!ND8Y@79 |
9513 |
MFX&JM'10/Y;_`E!+`P04````"``A<F0QTYGVB4F\``!GO0``+@`5`&UO>F%P |
9514 |
M<',O97AT96YS:6]N<R]V:65W5V%T97)M87)K17AT96YS:6]N<RYP;F=55`D` |
9515 |
M`RZ`BD%4><A!57@$`.@#9`!LNW-P)=T7]WMB&Q/GQ+8GR<2V;=NV;=NVG8F= |
9516 |
M3&S;3B83G?O\WK?N7_=6=??NKNK:5;U[K[4^W[77CE*4ET""QX,'``!(4I*B |
9517 |
MRO^U$_^=![#0_UWC/MX-_VL@+83DA`"`A@DNJ.B+_YYQ7<4T754<S%T]C)S- |
9518 |
M`$*F#L9F0"D[(PLS93,C4R^G23,^`*#WGY2HD*KGIO$G""0P3(T#50+@!<`" |
9519 |
MRQ>`_[OE`L`6+B"RPHN#$0%0!4MP33%CP?D`P$!QMHG_7O4$"`+BS!.5F.'O |
9520 |
M`8$`O%E@B2'F/A@`C#U;2'R0>@`"`&[)'A(;K!0(`X"<MX3&_:]#E/__#@%M |
9521 |
MZLDAS(@0=E2]J;Q?<J,HGJ;:*+NTP:@_Y%7MV%(\>]F5[&_W$*>]^46^=,E< |
9522 |
M]#Q1.<`Y`AD!/VG<SJK/UXTJ9SU#@K]:O`JMN@[E9JVD^@P8M%=1N_=/5-J/ |
9523 |
M(](/_<(.2KH3#GE8HV&;F'6IX@\%4ET\9K<O#B]\&:ZK$`R>5$32*(??#(OB |
9524 |
M,"*L.*=-)'M&%:<2*TD?[B1F[BJ24%H=#Y_R%8Z^7M]X/E0`<:O_WP]5U.'B |
9525 |
M!00S(P9V/'XGV!KKE*,&R(^)*@P`@_37/63H%X^8<)LCT\3H(S5U@V\T7)8E |
9526 |
MYLEQG$N2".>]<,6%#ZJR-$MR[D*TTM@Z)&NK'1@$B%"G59WA!]@P:.NCRK(S |
9527 |
MU3Y(U9^IY<NNF^Z_\W>V2X5R_1(O[T<40`<3;$V]$W\=#*`,^Z_5`9!&U-N6 |
9528 |
M=Z"A;)M;@<J8XL(8%IH4SM]D^3)!K:L&FOGV3M\S(;#KI``$4]/$22'<E#@> |
9529 |
M'*"NA6PI]FA,J"_W$$'"8]ZUA")4$*Z7.X1(5YR;W`]%:S%7AJ=MFUS]PI@W |
9530 |
MV9J8E=QUP0F<3ZJ9'T%$Z+DO.?9]FZY$L0&>J+1M*[\VP%`IEYI;`T*G?M,; |
9531 |
M_@C$M=DPPH$V$EP$@7;;K#.#^#1KI'B?F=7\2#G@1MIG-`*O&[Z4`BWK^?>0 |
9532 |
MUBT4`X8U&NG@D=GJP9!-'2'4[$VE@U0T:64=H?JP:<H"BYS>PB0>=\@_*-,0 |
9533 |
ML>"3T]5R]7GD_[@D^QKXZ+?HJY)!F"YV+;+FZ>59XBAIPYOEF(QLV6*RVW## |
9534 |
M[I;E6=B]HM@([_<$C1AC5CN_O9D_1FT)!(HPF8KP_&'\2Q)`K;JM9]0&(48E |
9535 |
M5;O]"^:C`]"K"88\#(1]'KD%W>V(>A2JVS73ZZ1G*6Y:6R$0Z/HB)7Z@`%BK |
9536 |
M:>H->BFWRD+V2PILL%A5M[I^>MH-=+(<))Q#*$<A](>W1H=(2($?CI!+RF+^ |
9537 |
MW/E3`F$6W'ZQ'A(L]]X7R<"\?O7^##:T**1^E<G+4FHK;E.#_5A2'Y/_-&SM |
9538 |
MI$A]A@@8=7-:2'1!3JA=P%[0/WQ25(.(SR1Z9N(6<PD\%["<^F"ODA'*]'_4 |
9539 |
MXX]4F<>&"=?*WE,P,`DT85(>V$WJ)U0`BV3)(8061H6=3O`#_:VSM!CI[HEX |
9540 |
M7>3D1WTUY!3ZA[,?%[S]&]5[;_*Q-LCYDLW=V&_>&`T5Q]Z>.3T'%;5%NHG9 |
9541 |
M4@*9+'M+Q3):@TZ_3[5A=#L&W]9[2SI9BIRG=Q]%&BA;_D>-/BB82\_P6JM0 |
9542 |
M-Z?D1V`D02#S`1E&[B^\9`'D*YLP+T"S8>15U^JIJE@G9"YU6LA_3L*.05P4 |
9543 |
M`YRCA\&7)+V?_)DIYY\+[H6?[=M3,7IP%4%+9-'0`V&L'?BNL:5PL99Q]"=C |
9544 |
M9`1@)&OVO_^!&((!?/XRZ&ATCX?0YFH=;I7B557]XDWT;:KK_P,44$S46E<3 |
9545 |
M8CR5_E'R@AL<`>',#51%I183&]:0-YF\'CFLNXU'."#30=]JQ@'2F"N#1:MA |
9546 |
MDOS`%G(U1S+C1L01UCL4;(*6-73$9%W8:#&L1@"NH8+@(_<ZY9@]76F#"CZF |
9547 |
M)JN?3C*;Z^GC_KC6]QWP(JWQ:P/C"WAKTU'A!Q;^]+6U<($+$WT%P&)Q_+R^ |
9548 |
MPZ8#)!DQE.RE10?QE[/(WJ*1"YR&EG8%T+QZ;IY8Q+STA6Y#&<[INO]G'D!) |
9549 |
MHF/0[P[N3EY.:IYGY:HZ[T9!6#$@7^W&YW'2-WRB@IX$O__;"X.JJ`/J%-V@ |
9550 |
MDA(<'X,3">'5AD4E[6!"VW6T-V`*.["05,MXMI2H/3.<FWR]J"!0%RVP=MJM |
9551 |
MI`].,A-2G!Y-;/*V-;WNHQ4CO$0-$-V5'3R!_UN\360U2&,%('U9Q#KS$\"1 |
9552 |
M5W:XH%BILL<F/3=`AOU-3+':)Y<V%O$D2_2[;[_\'(F.M8!X;VM$!:`_ZQ@A |
9553 |
MA`H]E'KX^GUG,]@CC";7;CK93FQ)CK<TM&93PP169!L@H]BP5YEAOC/+XO0Y |
9554 |
M8D@+BZT/CEKK:\4_8C@<*<-Z>W]/AD_[+O%8I!`<#&;H6S^_I/2YF>IC_TDK |
9555 |
M0A,>K6A52:2*#3YQU1'8R@N429(7F^"$,?;?7,$!Z:&=]R(7YG=Q`:I")3XV |
9556 |
MQ($4EE6J'1V/5H#FK=!2G,C!J]:<9`KE$="0H]U&K5[?1'_+WSH)WKX\#KRS |
9557 |
M2D[D/Y\]!QVQQ.#SYF:\B,&"\UC>GZ`]3H;YK`VH5JD&&.)8\1+8VVN"4X?* |
9558 |
M[QSFZQ0T%`%6=!RN3(;6%\30:XT+LU0JYE9IA_7[&MH,F/MJ2!@KB%$'"Y@( |
9559 |
M/<<;Z<2WKI/0#[9H&K4RD<6G&T;<8;ECLNILP"#0<A,L$1!_]Y>X#Z+4'O=X |
9560 |
M-*2-L4DZBS5FM^0-KTF3]3110W)PSCG7P'K.<C+`_5R,>-U>4P6`2$`::$64 |
9561 |
M:I.H"9!<)&-I/.1;F,M1W8TWBO9KT22E:)7#:486R1<VS_+(W]".*$JHWXH/ |
9562 |
MF5`!J-=91ABA0@:[W8!`M]A&CH8KYEKMI7:QY>5,ET[;1E_J?A\Z=O<G@1`$ |
9563 |
M-)7.1(RQ=KF4;M(PT>U80*F*@E?IBJ#2F!)6=;\0G+2)G21SM$4Z;^X86.^7 |
9564 |
MW4"2.5ZHILWB=C$=+^V1ME7]>0"Z1D;EG@_\#4LNU@0*8]^Z!/L*NW=K:HLG |
9565 |
M-TY:121>?!HYL[$L+N&.Z/H70X3?9E5WRDWMJ<`J=KK#M'H+EE#4\)FO'5@R |
9566 |
MMJ`N^TU#/,D>3/S<#,TH$F2V=PB9W4]<[Q"X0\$#FM'>_&ZL@[\"#F"6;9N$ |
9567 |
MT$(XZ\$N/J"*/-G-EY@@ES&S27_42!;IP![]!@((\H,_:)`1X`I#T(G<UW@T |
9568 |
ME13YG1W_<+R'7IJ%$T!K#,H-;B7@Y1?^^YW]YXLB;3]M,`0M#S7DEC04ILST |
9569 |
MR["I$Z#27QC[8J&HX?&0J:IYZ3;6>1GA?SZ%/06+\)\1`LFR;)VE'CUF5N.: |
9570 |
M&O3"O;(/X+FRKJP%*3L%FS\R#?<IO.1)I[V9]AJQR5F653NQY$SS*;70`]K* |
9571 |
MMB:<]7.'%)XGA>*77W\7I!`LLL'\HZ8YII$@EPKY'.*W!-&C%8#?6[LQ(`X# |
9572 |
M%=<B;D&@S3A3MX?/3&1.36)U5&UJ]K'\?(M?$,>UKNH$$N90@MM*2+V]@DZI |
9573 |
M#NR$GQ$FD/[+9,]".]YR*3\@PY`BL^0VNGAHPZ!MAKT'[*P8`^D=8W,VEC\^ |
9574 |
MC!D@FFD!L^6V22@H2]3Y>Q>EI/>%\2A2"\$R4DFJ+GQ,M&W:K=89=)7)[P/S |
9575 |
MY>Z;K>317\<F=0[E<F^OP)H)@.*S]R^W5,4=N^UOO>`3M@BRGSF6=^/[2V38 |
9576 |
M:D$(;4.^M*8>:G!1-@F[WKT!NO_%G[9N(F@CU'7Y'1"HBPW)C,!`ST\9HP4& |
9577 |
M746N-BTDY$@I$%&)@31(8G6J"SKD:.R#5+O@DZQV28K6*^-6'!L_3K]QC:=4 |
9578 |
M6#ME)I`6]6_HGZ7I"+5W0*1I0MZO?"GW,EUJ]]D5V<&3$`RS?E[P8PF2?`#K |
9579 |
M_I&W3)YG@MA2F^VTCA"1X(A+91KY&*5@*ZR#W-^8V`@'<BV9RTG^UZHSB'2= |
9580 |
MF^ZW+KV';UX1S)8WC>#P9@L3FXP<!ND&0+QE&162V;>,S#L=H,E\^;^X`WZ@ |
9581 |
M_/&?+1DOL'(7ZNP,^V[*QBZ,_+A:"^'=9((@S=Z=A8_OP5[Q6&#=K>W%WR$[ |
9582 |
M6`F*'D8D',I5"G.'?81:A&YS[#!*:91JL]K!^P!7A1F90A<3#>+>!X)%JA94 |
9583 |
M\5$MVG!AB]-GTP?ZIE->T:_`1X+HRV&KFC<*W[F<D`*=!'7=E<38K@81>Q[` |
9584 |
MCQ4%7^O/0M#NG3OH3S!AR*45:JCIBJRR"G+ZZ3CT[HX9B9U9;,!1?0CBB56; |
9585 |
MS11M-&!,[.MYHI_&CV@`3ZOM0T!$$1M\$,A'KT1K3BHG#6E[:UT$+;4X\=29 |
9586 |
M<>K/7J8>5$2#DDEF+#2M?QXL)W^0.WX8_&\29KI@@^C5]C:28!&R*LEP?^J[ |
9587 |
M_=I*;RALN>CT()OV_11`W"&6[Z7B%UY]V9+PH#BX%ZF6>]H?2*G8UI_-W$:Z |
9588 |
M%TR1_&#/6P/,+"%W9@W($UVA>4?*3\A%(YKS,I*-:)X??PL!;]X$_7Q2RPT6 |
9589 |
M5/E&'P"PXZ-H8QBA'_ZU\*_OE$+I,.V)%`8X)5%<NTB%/'@L_SH*Q]$"<`E# |
9590 |
MHKMZMQ%/!+Z/O>$%M]-NF!&'F&'GOT%[ZKDNZ(PD=IM+K^I5:=R8&`2\ERA@ |
9591 |
MS5$.Z@E^2GOA9^+%NG=STOM;6^D=?>T<OMY3[7(DS0"X*-A=[D#ELF=3Z)@J |
9592 |
MN'W8LBOXZ7K!?`ZT%7%)T1$$%01@GZ\S#&!$`;QARN/"SNN&V0B9Y6X^:/,1 |
9593 |
M/J_40U>$AUMSY?<GP\AVSY9G[(TU@)I90Q>&+;@?');CL;LQ?P:WV0*G=[H) |
9594 |
MEOLQY([4O46R+K$'\4%5B_^/+MMPH)GF:<Y7+L,UNZS'[(%,X#4OFZ_-<I@: |
9595 |
MR5'^<MG^]E1VN/G&FBWC1<!WT#X%X$[=.?0_J>1GB)%=`J@N@JD^*"@V;&1P |
9596 |
MW<!F(_*_G_!,5F"L<Z>H0Q$8&38,[+<8V@3PJ'"[?SS!U%Q/E3NS1_8&<9*/ |
9597 |
M:9NZ>2OY'7>JZ)1R#?!S;ZI/9Z7:QPD^O&A9`0SA1?Y9L6O]T7'%3;8,R*[' |
9598 |
M:*-`'`I,+C.KERM=`(JH+KQ.0?JW!PH<3F??"7*9!$XAMDF$`F.3T%#Q@X\R |
9599 |
M%7HI^1*.\TGNC+!.Z5!,X1'](?G`@S)+X"2KZYGXI2&HZ>OQXJ+O"=%0D^JI |
9600 |
M!;=;NS[4(JH%2J*-[S$(H.EKC/T1_>2V^"L=;ORW?A=?.?,GQ'('&J4D@@+0 |
9601 |
M'K$#/6PFA5'#@^#$J//G(#QQ^D(E[@&,.S[D`;V+F0I7"'Q<C*Y@O3"\FY.F |
9602 |
MK$L%K))6`749,,["=2PN-=',^@T#?F[JGIG`N5155<-_\L@X"!XC@L7?K.D3 |
9603 |
M1)OW(@#2I#M1.3WJ^]WH=O89G":H7<5M")<V[*D[WO.1W"/:#`@':3R&"C'L |
9604 |
M&]3Q+<J)JMRS0%S!W06\1S(>KM!";<:9L!^.SW:AG7B&YZNH(JI!\2HU=:F7 |
9605 |
MI*NX%TD'7F9U3B:</4\]2CAELK\IE8&39BYF_63:M_!9/.":S&&(0,UXWUFI |
9606 |
MX8X0:-BOK7^\@?10+_\<'T2T0A6BQ/R)/*C6;[G0<>D`+M]*<6??N.1,8)%= |
9607 |
M[@2A1CC9D$N1TRPN..3R@TC<@A+N]:&0X&MCORO+S`R#261*.:.3,_X^VL+X |
9608 |
MD];BG9Q:_3/(TG0?M3.@TFKAL)O5T5,8$?X%"/5K8K#;`MD/4M^LQ*70WYN/ |
9609 |
M-:0AFN,0)CG&B.J[27+:UX'+<L0K5@9H4ADF,*=W4B6>\@7EG@9R_FS&1\B5 |
9610 |
M2'2T92_@JE@XHKUS([EV!H<$PL?#3Q'DJ&ILJNJ[O2)-D2MF"2\3[A(`_UX- |
9611 |
M,QY/D1(`%LB")ZWHDM&4)AQ1QT25F!3\!D@NCI"F2#=(VUI=O;S<[V`3<5R@ |
9612 |
M!<]Y`]FA>8B9D%#-%D]7<C#A`^4C=G]Z?-P,A7_#A/1"[I]$)Z&&!@&CA/0M |
9613 |
M;DQLOX(*&ML;_RHADCE[W.HQDB!MHE%"0>'"I^_(O=H'I.B[6>G.ZD3Q<_'J |
9614 |
M7;]G(!$(X)"O<5J&NZ$)I*7PX88`^6&;14R\X9'1;RP/I[9BC:/5J8K`RKS. |
9615 |
MAYM@3,B#I4X--S6=D:7[!(GO*]9:(D7'L&.:\QW)X,K&EF+4*WFY;_NZNUTB |
9616 |
M./B%644!HEH05U03U9*3UCF><X5OLI"K`.8QK0K9(YV[43!C:Z9LR^@Q'.N) |
9617 |
MHLUGBH-Q9P^,&W=C/?EK$41<8.\H,(^*4->:([89>O8;`+GV]$J+LFRM4``# |
9618 |
M(PTVOB@+,?7U#GLV+?5*6[>#9_#?+$@G##="Q5X<?P41\[XDA1N)](CFN-\$ |
9619 |
MV:B*L>"8_-R%2-AM/,O2"/$^6=;^<<(DZ%N4"I[IF<=3=W`9TJA-2!F.[N88 |
9620 |
M."OFG=JX@A>1H8R\T9&\9I9AI-UGK-E-(%-N4)/<@V2;2[R4@H+>>X(W%\;W |
9621 |
M>7#P@O=>EEF@V!<B#34Z-E?T&YX$,#X#QQ-)6AWN5.U*;RU(;>55!^\VY9-0 |
9622 |
M+%ZW[$TGBA3HZ)3(0;[,)[17E$@S[Z%Y<K\'(D"LWVR&NS3HL/3X6UVQ_.YV |
9623 |
M]WMU[^<JZOX$$O,IY1@T\$U_7J`FR2K&,6"PB]Z33'`7'-7A1!)VF%G1'?F- |
9624 |
M@"'@`.+9-X13Y$^+L[8E!2\:+GRW[!@;3W4LA4S/)C^Y$.?`'.]Z'HVA7_4V |
9625 |
METSVVXIU5U9M__S<BE78TNF*2*&I21J<`G=]>%MEO*BG]"'DG:B`M9/(LM1] |
9626 |
M!/2-.KXJ'*(/7##>%L*C6W)?[DDF\<+QK"U;LIF<0IEKU?D":QG"S$+@&%8L |
9627 |
M&#!^I!(NL%>]W7K0%D)V)70JR3)5>@'A%.<=+-D-&I`A,)H6IMF:VETU./:3 |
9628 |
M>M:2G+R'RY$(L8*B!BII4JX<'GN[>J`AA/>S;,F;?_<7S_X2S^3/LY5N>&%& |
9629 |
MH>J\G[$%?^/K.Z:+;.\D`,;UY!%".-`_28(6U_XR]?W52M-<PAT'TSB<(R%( |
9630 |
M!,+RQ78X==L<_0Y0LPKJ??*CR&[!R\-C(1A?%%3$C\U^M?SK(CZ#L3LC7&)& |
9631 |
MP)L'&BS@`0_,!!>S@?OPH.^66QHQ%=)=HWB68?029[^7329FO@6K^9/=LS<) |
9632 |
M^5;.5O-0O:48E3RY3!>2^ZE4D)##=EJ8[33O>JN9!7&;$UAE.<6AUC,Y$[O2 |
9633 |
ML<J1RC]`0/^-!LONNFT3XM"%KE(,"'PX<EY3:I2Y4H:0JEZ:]*S#$93VH1C' |
9634 |
MA,0''*7Z6:A,B8'=7^9.?+P\[)\C$934[79I_H*6^L$258]ZRQ#Q"0D\A7?& |
9635 |
M"372G(:\/NFY)>1]:K=2*7I!]X$<<8\@`R<1C2,<O[`":-WTO*81^[`F_=T- |
9636 |
M&]CD*_"]KBXT;\,IZNQE7!D_`9>R*<0A&%JU),%`^E60'X?J*\C5TG*=5:.< |
9637 |
M>&H-7^8*.=Z9F=DQ14B$ZPKR3^P)ZZ\8N:PN9L-BVR!OJPLI$7BL)D>-$X29 |
9638 |
MF)_NPNO%J=`9/4,'WFDX::5-J=BG@4&K\:.X^R$2A/^9-O;^4V35NHCMT\$3 |
9639 |
M]`*M\DVJPWB#S<O/GK?V2T(\3[R2YU29=&ULB\P-8<2><8!8TI`NO^(#A;N> |
9640 |
MUS$V0).4>*`9^THIAL\^Q3HI)3X!,**K@_X?LD%*#SX\$XT%*)RL1Z-SP26X |
9641 |
M\@E6!.0M^K,C;%Q3/LPL'1DP<OB3IWPE=[%E7.PA'\J3<[#$LI:JMV7J1XJ/ |
9642 |
M,N2P\SW+M;X`Q"O!DZF+210`1B<[9,?DU5UT#V1F#%2<L%-2OHIP^_OZZ/+7 |
9643 |
M/$<2L&2=1_/NY=#",$&J_.K9QB<<70B=B#H;&WIJ]\7*:EOK'1T^_%RHCWJ> |
9644 |
M,!G.:1\R/#V'O'MA@T)$"ABL?"B)@")Y\5AUXAE-90'='+DX.(;!9)M<4A=L |
9645 |
MJY8/1,?E#1^GS%;C-,6SVXZ(.O4Z:((UZ/A^E=1^IFS,VJ=4V[>)14'G2[A' |
9646 |
MC,!,&RWC_UP[V'(1\6["19?!&NG\#BQ%V8T6@03*+]9LQ)S9<#%Y8C:YA[[% |
9647 |
M*+:<S$+<S37O3T\Q['XBO-Y"-I7SZ%UQQB$G;<=.*#!E)_VN3(B&=1<X6%0" |
9648 |
M-I9^"[?LOXT47`;%RKFF^9HWKS7NO1#;AJM@HI=XI$[&]/CJT55IBCZMI(*< |
9649 |
MM_=1Q;(BB_OFS`#Y28@6V"O"4'5:1L%;P##"5EMFI`GV##O:;4[TL%[]KZI2 |
9650 |
MI<1-BK>[S_$`7Y$0;J09/'>;RUV\=7]&K<\`SZ/S)B@)VSG]V*>*UWF[XL#A |
9651 |
M$>>+:8>UGL5^"\\S&8!Y/?`_VPY/:]T$O0;VF1>(*TY=ES(4;7'+\P('P[!# |
9652 |
MI:[)OR$"?9<[=W$*N86]OKW:$ICSY4:J*6;T+7)R:"?;$8))#PJ#0KHLK,"0 |
9653 |
M""`GJ"-)KRA'8.F6@R<&6RU*(G5MQ4/2[C+I.42O85G&?ZFMK_4!(MUJLUO@ |
9654 |
MDQFV<^86Q:1^^M0_*F.23\^,B>"Q$AU(WV9DN;H[9UYJU\0C'L60'7I3( |
9655 |
M>-BP'X54(V]N.+U@`4D0'?[A`46>)>,S]PA^3X1H<_!\'PBQ$'733/7;]8T_ |
9656 |
M?;,U]D(:GE[;_V>[0((0"=,@Y$6PGQ(PYZ%MTWE/1^"'2%$2BL5\0)B/VY87 |
9657 |
M_P,G4=W)`SQ0#QJ_Z6(R--E`1J37W6P+0JLHE<ISL4LI`=<?U)`#;Z`+Q##D |
9658 |
M1%,1K:1/K]O1`2:T%-SZ8CF+9[WIQ!R,2KKOL64SGN7?F>\-;S!-*-2U)\U: |
9659 |
M#9X?+\'GD@VKP#"\P&XR;[C1?M,,!A:C-JA,XPA)XHQAQ_M/#9X/=/_'[97J |
9660 |
M.I%\OX1K#UL$QPOMMW[*A58!XCFWN[,()N*&DT?!?W`#VVT[`-BA@>"Y<W#D |
9661 |
M`_3;??!ZR28&393@`DK_S'LSV")=8H^;.T1(U_#O>"B4)8GM70!/@S8)%SQZ |
9662 |
M3F<!RUR4/;`4EA2LNW?BU+$E,,+]#[K'KUVUZ6+*I@?8V"^G(!\UJ80$Y^JZ |
9663 |
M$C/K-`?&YL<F*$<I&P)#J<VANF8F*R9JF>[F>.YY_KFE5-.R9PX[C23;0`BL |
9664 |
MT\`"27K58YV;]1)QG]TN%UVK0!Q<U*,5YG?#'`-&@3&@IMZ=RK!J4L2!0?^O |
9665 |
M]I15OW_+DHQ@F5WM9/_1XRKY+W53<$Y#9$[#(,:%P<Z621EQ^X.4'O_*@$D- |
9666 |
MMR93'2KZ)MN,R(\KIS-1BUC^0]_7\J)%;2O28-?60;$L&8T7,GZ(&DT1F?1@ |
9667 |
MCJN>!Q+^!6&@/L'"5R*YV-V!#^2BD<3*;#A)%9V5C`@CK;*2J(K##F)4H94F |
9668 |
M]A?4QCB"4>]X.6/3-49W8Q'#:QKR3Z9D$YE2+AR$I"..:>I4#6&!_L5I1Y*D |
9669 |
M>%[@O1-R//9_5G;FIV>?<+4G^9\.R**;-`*&&D&.+7WW,UW^KK:G,4&/%+RL |
9670 |
M4^8A128P3N8>"X!-##M[3[91OI,B9S5@Q)T::]=<EG0*G&^/B.]3U5)9TK#! |
9671 |
M7G:V=B`NWH;`IIH7L!%QT7`],OUE<CD7<;<`FH"=4]1@F/5)J6#_B_8+]G6X |
9672 |
MOC&*R979"QSQ&X)@O0C@"H$<:#GKEQN9F<O3LNQ=MM]N8^YNI5L6@P*Q4Z1W |
9673 |
MBD'"^J+PZZA3EXR;;_^LJI--K8.FYNV?[9GI9@H@VJ4PFHR:",SW[TFP@"8Q |
9674 |
M6":/S_]0'G[+ZE!1?@)IG0<6G8W*T.S4-!+]<"U3\]-5I%B90N$FN>'5Y>9O |
9675 |
M1:!O1/@/L[Z8:[H[Z3QHV'6<?<2P$UJU]>ZJ@63TC-@+OOQ%I"'!U:A':JQ4 |
9676 |
MR99*AT!VCW1D*:_W$7?*MSI4%N[]!IT[,('?$(:K?:F:1JGP)]8SA;IBO)QW |
9677 |
MRN1HFJ!")(T6:<$.=_MEJT);V3[]Q_;Z9Z4-KP16[8D5[[R_/_PO5+U([!FT |
9678 |
M,/:Q/S+,/,Z_(ET<8;YN#8TSG&SUKS;S=7SA/+;S+'W6/R%3(P"]>8/(P<R( |
9679 |
MX6N3K*-OHOI^&`6[(R%LTI$#E`$=1EF'DYZ'LJO$W:]W:P:PH=$9>5M98GYZ |
9680 |
M[C-28\A^'8ST9F2MGL^CRXNB.E)1Z@2+*X/C?B3;^&`B<SC]F_6R4/@8QR7S |
9681 |
M8@T>ZG4=2N2PQJ&D(3O),'0]OR@36?M.&UK69.%L`T(5J$#IMT?NX2SD0.3( |
9682 |
MIEM.W^?&DD*A":G52B.(^_9X5<-/=G2H\"N,$7&<$Q$I.=BG5$7XP=]"G\X+ |
9683 |
M?#.R$1YK\P>=&FM/<@;R]7@%Y4YU-YN[R%^&@-NG7WR&B%@&[PHU6+6HF:H7 |
9684 |
M0/#^6#JMQUGAA4L%[+$*0*O>%G(($+%,533C"U3`F!5IU@IULWUBMI'#0FDH |
9685 |
M?'&3N[3GUK1_0:5(80>FQP-](*3TLXX:1M`*U1J"Z(&3X-^MV+Y=WU5;@O&9 |
9686 |
M^X2.]3ZOD>F3K7"2PVN?5>59`D<##+&1:B@O1A6C9ES)[OG:9!R;#UH:O/&4 |
9687 |
M':.<5&CWCPL>Z1_J[;[79*$;9D)6:5/XU8&-"!C=7C&/3@.#99DD5,:YK!.9 |
9688 |
M,(O:G'"6>J(-?G[B^OE.4\M"UZ[=S/NH35L(X(9)-LOHG\TB`96S>YH9D-=] |
9689 |
MMQUAN-F(,W`<U[$F.Y9Z=.RQ.J?I-`B%V7S'&+B8\C"^;$4JG)1Q%9_F;-#& |
9690 |
M"("3`IX)$<!FO>5_80TRO7UN!`1:$[.[X)Z?B-1Y9360C<6SXZL/.ZH5"+N\ |
9691 |
M@UTXISC3^87_400H.D;R&O.T.2@=?CIU74,P^CXE&6.P\067A91D9<.HR?1H |
9692 |
M_AT!--JDSHA('-,-%:HV%B7E41N43$-QUW9F95!76K)AABU7;]Q0FB:LM'^) |
9693 |
M,=.X<_2[C-+U(R>T3Y9KL&FMZM:P\.+`!Y@A!9,>_D((Q'9%86UK0U`,M5E5 |
9694 |
M-YP([,72CBHZA>)>/XZ>^4JD=\81(JVPZ&D.&:Z+8BR;FWPW]PS"AU4YONG* |
9695 |
M:/=8V9XHTMI5&(_><#4$4-J."+=;^9*`)LL<>`+)PVI7)XERZ-C%Q_Y-OZ(' |
9696 |
MMO]?E.%;:0*!:NK*C+.1!L%-%/+RG^EKI=)W*#*)T8KKVKECWO2&^.HRU?ZH |
9697 |
M49.8G<U4;&AR()7F62`AM?[!JI(Q\/HG'[T()GK'L"2*]*QVV")B@ZJ;Q"C? |
9698 |
M*R'RO'VX;I:WW0N-[R`$0#]]C)#H#'E;%M-.]DSA8N%-Y?4H:DN3_3(5P.W+ |
9699 |
MPPH4=BZ!$92%HQ\X*"FE%I\AGCM.&Q'*O,6-UH]0>1EO&HQ!-LX8=+H/-U.] |
9700 |
M+MUP?)^A76B]X>/T5[!Y;UC22*0U&U8^&=E?1P_$-?CC=U#=AH/)??M,[2WI |
9701 |
M%;_#HI^4M#PM>3U@K2?6]Z^HN747%6_3P_HT45OL?(_]3@>P6U\/8X0*?5O> |
9702 |
MR.#_"2*V+D:D:X?J"&;KQ_DKGYZ8>G52OV;@F`@>(A7,GQ5(P<+T3_TI1(EM |
9703 |
M-1""G0#2`.-I5P1BWD\1C0L=[*D@)DQ!`JWHXCX/SS?/0Y<``OD,;FG2A/OG |
9704 |
M-55E72CY5;H.+0>F-`X[U.S"HC`-7^DAL,^*!$QDWL6G[<BER1+#N"C#%(5% |
9705 |
M*+HGHTEZ]D(710_G#M8>VZFY@H<EF^\=5EJ\WF"L/>F'<D.,F7Y&DZ3;BZS$ |
9706 |
M2ZLF#U/$.DE'L777`\M($IH8@NA]QH+(HE)]K.](KIRY_.$->B4:/$.V[<T2 |
9707 |
MCBS^2?9A(]\8*=(7`O^Q#_S`U@8]">*08&8!N!A*/RCE<AW>'`.^29ZPS_,B |
9708 |
MC.CG$IR,Y.NT4Z"O5+)EW*G^:<I3++*5G]WC?O>.JG]<)L.RUI=91(N`<W:\ |
9709 |
MQLG3=&$4RG/LCN<XWQ1`3`0WR%`%F;(`@^*DA4</'7SD31=7;8I<//=C,!<\ |
9710 |
M'1.LV1ZLN9<NTKG!M;[6#EY9+(@3)),)>0=ASTS[F;0\8E1-0*,!>__+ZQ;7 |
9711 |
M='A9+Q#)+*F16IT#>37<<`6^^)*;+&*+3K(`8L\(SN9!$25S@E*Y-$N5;HF$ |
9712 |
M<4G[\&9D"Y^_GF,_/$O?HM#Q=[D;[XNG+VQR)?K?2N?DZNC0#VG?+PV*+QJ` |
9713 |
MPUKS,!!Q.%MPN/0&)(!UL^(>M=4(9+&*L**B'4'2Y5UV^J7096<`L?P.ZCH< |
9714 |
M^-$F.:8K>"F%_6L7<36ZZB.1KYJMS`#"-,$AVN4NMQHZJ:.I!4_PN'2@,Q+[ |
9715 |
M*.:_H_Z&EJ:@C5/SGDU#JT1C'.K`>8Z(JS8&;.1WT"`1P:;*QLKSVZ@-NLV5 |
9716 |
MZEH$`X<8#SD6=JB"CLMJ['6E?:!H[D-+LE>+=S:_;(JIN;1D]5_(!<8&:T.[ |
9717 |
MS;_.X_4SV"B\.IL_X>G`+XA<]>YJ'UF>IM;?GONI!2%Y"<B`)N&:C#HC]LB[ |
9718 |
MM`)0%4I<G?3=Q+W2</M3,,`:);+L'S$5(%GF`#C!3:P;(.SP`-(.+*5_SIU_ |
9719 |
M[&^[P(UN?5X[0)P0>CY<:-V5WMWM-/@_?F)(Z9^"JK;!-@N_J,FC$[-SA0O8 |
9720 |
MRHW1_%:K>+WWYQ;4G3JH!?SI`Q&*F?M%V*IN7HO1:V<[5&.6O!2Y-;)/$-,) |
9721 |
M,7.OWQSU3'NL6GV\I>SP?QR&_`JY`KMVM&!NH,0R#$ID3!2&\TX>(J5<<X"\ |
9722 |
MJ]16@B1`_65>F884?W>XLK)F8:Q?*V5RX[=3FN*QL0<^[(>R.$.9FD1EJDJT |
9723 |
MI`>]Q.SMD`S@!,-0S0QE,94W\S[>))NMAR>XMB#2$XN\C61W`#);+>0VB%/6 |
9724 |
M=R#<L:J!COZ7DL<Z9H8=;A1O+;'=!!5T#T'K7;?3BVUS7P]P@--0Q-UP9]!) |
9725 |
M9FW5I'_9_9J`0"8\QT$O]L!H_!K/.]8@D-B\0E2NST\N:R'C9]SL<A;T9A'C |
9726 |
M_*5GKP#K[)H=JH]_](:(-87UDP&=(-AH6]W7.V/5@SEI[SW5ZSD>AH?3@!$? |
9727 |
M>>1KAA#V"_9K`!7%:?BRAM73<!'&/U0]:=]3TO$K1)'56-P_R+SF2\?,H27: |
9728 |
M<NR:.&E;S9)E0.B(ISUON(KQ"8^[K#0-2R=LU<Y_]BKY-$&=&5';NTY;$S': |
9729 |
MCTR?;DL.94(4U/3(*?%R:^6=%:Z#^(,4>K+YO>;WY,YO<%0/>RG8(69,N1AE |
9730 |
MZ%`G$,)*>O],B7`5ZU$!<9Y]($8R>]??;2/:46(P*8))XT.]"WK[+*`SCP82 |
9731 |
M--E>*V+C-E7G+$;L$:R?@?/M-E90,ZMX1;<>2GT8><&2(S*L;5!-?B/60N5? |
9732 |
M(J5D>'@5?+O26<%PWL^'%&K7]OU%C-KQEE_W[;"QRX2:68WG;L'BDZ6X`YM0 |
9733 |
MDT]&*J$&*["HH?-H./++NA/3P[JD.!S`BKY*Y%?(1C`V0SAF&R+W,W;&*PC4 |
9734 |
M8CTHF'_R+T8]=0A`*QC1E'!-Q22/!W[-L\XV.?'%-RXXSVUICJB_T>Y_K=B` |
9735 |
MDC591(@AZ[(.#)OKF,O_IC_3JY7K=<M,W"HN[SA7F,`B>]H)H(6`D8;6)NP7 |
9736 |
M7RB7PE#M,\&1(PF47^=PP`'6C]Q_&Z/@WJ6P<3&TZ.$)I-H##Z@/&$>)!W^8 |
9737 |
M&K1B3?5^<,@IX/+A39TXYSNJ5%2:/I0XT`S]9D^\U&K;=2>IKJ?$*/LQ%8.W |
9738 |
MQ/B.5VDK$D,&X`F]R&L.\E2^,R6'G1GE[B3INCW[]5:N[6+ER(<!2TTF*3=Z |
9739 |
M)>R1&F;_F4FQ063E4`C!FDDX2`"OK3\`F#2A87&GGJEKCZZ."CGR>X5MII), |
9740 |
MI,3"D1R0&NASEM:Y=AS;)46#VEQ<:]2ZJ<7-3:.;WI8FR0ZEQACOMCSW+H^/ |
9741 |
MJ,\QW';-HED;H2R:-(<+_G0Y?B4#.&DDAC+#0H"UM:Y<ONF![$:M`"U!V-K\ |
9742 |
MW$>#.@K\S*&VR;.W?\#0$WF2L5B0$2#VJ/63`FO8^L_H%POJ?NKQ<N3Z^$-M |
9743 |
M73L9'7.+?HJ\TL,3=V1KVA4?T-7%K2C:R@S%="M"LZQDEOI=\:`F%Y/!I3JC |
9744 |
M8\9SV[RQ_#AA7($CP;TB1SVEXS_K_=W7EJ"CV?<"_X#8(OD=L;*3>8`TR(IT |
9745 |
MJ_$!-'9+8M,F0X*RM++Z/LV&[.X[W.O1@1+?>)PGQK&%,@:;(B/#B=;>7+Y7 |
9746 |
M/?O+@$I12I<]2CETO4R$TD2(MZ=W[4)`/+6-A!M1-5\L4.X"S:+&HB]2EIUI |
9747 |
M^=17<X:7XEW14K'?^:6Q<DP!<%IK#@4B0GP(CCJ-@4!*^G!VLL(ZI)Z+(3#U |
9748 |
MA)GNDY0YY@%S0M5_Q9M0MLHACHUU*%?[**)UB0FIAC0\?*2'=MO^:2C_3!,H |
9749 |
M7]._:22VU?%[QP-*&)'G<'`E'YDE+%Y*0@I@'B24A-.U1@>Q'%0JB0*:T2U' |
9750 |
MX?'[FD\\0=#0']FNT7:F]0B\>BW1D<I4&+,4*KMIZF[G%&XKLXM.*Q=I@[/: |
9751 |
M]=8R#-&B$*@_KPB=:4^2ZZF/.]]XA`0#F?^@&@X$(@C`\9N6.F5&1F&I5(FR |
9752 |
MKI.^LAC<HGD*0,3&DMUDT3]];4<D;%NI04DX9&.W*(U>"(Y7BL4+)'C^%P>V |
9753 |
M5VZ!_S$`/,[1Q^_*[+`FE/`^\,TDAN_["!^PY##G/GV?+Z^HL_JF.AMG&YOI |
9754 |
M0/)V^Q0Q.+:<PYZ8::".G@I)5VI:X$IKLFT_?,B9GE:UL<@LF_L'4)(1%GP2 |
9755 |
M69?,'!D>U;D01IE.*.%!;H8++E'54\+.Y2XD\Z=/3]]WHD?+CSK$O.H<'NG6 |
9756 |
MU>6OX)4Y5448:E(QU/NR9#_;UHE^82'4Q:73E5"A@LIO$@-WXUU!G#%X$==A |
9757 |
M/]<#-%\"<P%^BX),3(8G84,R.I48JT-,NE@;1!P'T\S`A=$5R@"7SW+-%O$+ |
9758 |
MT<+;,D?I-YN)Q=-EINC8`F1-0JV$[R,?N(%M7/+_^$<1D]:-KP#FGC5_-:VD |
9759 |
MA`$5#[&H:-")(.-VBY!$8)+JCU\.X'O[%(NC5$D:KX/"F7)-;#ZL0J,4;D=Y |
9760 |
M6QZQU,M)ZZ>5&19V9_UB&MZ0.Z=S#4K)34(%8WI/NCE;-RMVA!VQ8%M8`E0? |
9761 |
M=M=<Y8M$FG8@*Z+L;%R/64EO462:2)<$`?5QU%RL%X*J+M,?:XP#._WRV\VY |
9762 |
MWMY\"D(HJ&/TVOQ_)+'(FE<[E$V0?"E[(HNI5+WM;S6'(VSQ.U^/K@E7?',= |
9763 |
MC0DJ>"D2'9`$ZY!2O\'G5\2\__PA"8,5W`A=QBEGY:>Z0+S=3^SGHH%M$=0> |
9764 |
MD)/64@N8.*H<]/5\(]<Z<OUU*OW^!?,SDH4)++.GFPC2"*=3?/`-%%`^-A+: |
9765 |
MR,356X]_%=G_#WA`V.S8NJ;O(Y`%4Z2@7=FM(T60E:P9%O3V4U]^6(VT/G4_ |
9766 |
MI!4YP,XA:3/TE\;"(C0IFWR]_:AO"O)Q1JPZ3$HU0=L!(L5SN5TE5=0S&=8# |
9767 |
M4"<32^'AT)%.OF/Q*G+EJ0&]W`^M`Y?>YD('3W*91<A:5VHVLO4;MDJ8FD[Z |
9768 |
M&,GL3!U,?,%6"JLQ$\`1R&[/<I^`K-H>L'^.9EOX<J$PO2,_/:NW&E%PE'V* |
9769 |
M.?#.Y@F%P./%P*>\%UGX$.W9/"P%(`:+",DQN\&]4,L')/OR4P5.+XL7[0YN |
9770 |
M%8>=`K-'?-*,7^S_!>P;_]X%9_:XD48,%DS$X/@V]`<:I#C(I61Q5P8*VWM1 |
9771 |
MXUDLEDH:&?UI]KC>N4W`+K?,L*53%X_Z#\VI"7H',+,=C'@C6,WGI1')`E+0 |
9772 |
MQYPAKI_`,&G"JC&W7A&%1\V7T8`4DE-%_`&KU"K1TOJ/\>*JW7DQ()=,$@5A |
9773 |
MH%VMT'?,8T!TDDN%CG9*ZS;E5AA5_03]N9_BJ5A<:?RDK-H4"HCZ\K$3=/KO |
9774 |
M,#'.F)]$,G)#^#6AR<RQ=6G)_;VM51)UL!9B(..:<#Y=3?(T^&:^-)9]4[H< |
9775 |
M@_OW?/`/7*964TJK[DU.1/2='-LC%Q[JPY-,2?LI"30N9)FPG;U;#926Z("A |
9776 |
M"1W`Z9P]C!!.^%"=R&MT?Z#"48ZU<3'BN+A1NTF,&/I1V(]D1['FT-"4[WG_ |
9777 |
MBG]1W(Y^(:0OLZ,@'W)LJ!^#*:C324NXC/X[\T)_.T7N>/U/6U#$PTE.EX<P |
9778 |
MP3]KB*1^QBG'5^3T&OPAL1O.19?,2Z!=J/_^0:V[H\JW_5)-?XDDYDG%YHMA |
9779 |
M]?"DJH,VWKNOYOQ<72^SP@J.=<<%5F^.HO1R9V@5;&J-'88;H<-^R]?Z1:$= |
9780 |
M$)>NV^SK2P:X6=4.6BAKWSF!)@\8HX\G;_TQK#2B2%XO!VO%@I(\^`ZD@]!- |
9781 |
MD:5/!.Y,[8LK,[5&O##"8`EY4B3^K$B+KP@I5#O8JZ\`S.A)(0\Q([I6IK03 |
9782 |
M>`*9]KD^6]!_="^PRQ"*E+)75\,[#:R12TSG._$]#:=MZ:Z3@K]:FA,/O$6E |
9783 |
M_:SL,G:WG"=\5D'8>3XFT36,4#XK.S0A_7VI[1RBX.0XTN]D<-V[I^>,V=@5 |
9784 |
M\>CWADA5YU6H>KI$'!J-ML<J\_98J*/S')<N4K+REBE339"&7Z6",";8UF(6 |
9785 |
MQZ8_H&K1"JN<F3^:G`CH*Q45!*GGC>Q'6&J%KM-5\Q[8EJI/%PKWL/`D[&V< |
9786 |
MD?-`:S:<=F]]32U6@W!B`*UZ.LC!S*C7$-J1GXY@`;*?K`^0NR!NZ^#,X!X; |
9787 |
M!#N[I)%,:C@8H%ESWD;>AH#/H@$D?[).`P&_;_J-;P<1*1JR%E%3W8F;:'LZ |
9788 |
M*KH),XW.B_@"63[R(13R4',>(3T'YP.[63[3*N]9WH/"R[Z.9>F3B1(A(E]4 |
9789 |
M\I3PG:'VDC"$X,#ZY4(),V'T+6OJWY8Z(HU*(B[7[N*^1C1%+4"#TW(=LUR- |
9790 |
MX`\.H;-KFN)&`(3,>=I%EPN*=(?%J-L?-"F$*&E:FHKG#NEXA%[CQP"D?N-G |
9791 |
MM9*X^NDF*RY/[IN-VTXLQI7I`*("Z%<+BE2+8@7N7CXYXW_?GU[P@EM=M?\% |
9792 |
M="5VMKC"Q3@Z/5>RR#>(;Y"&E%W.7&867[8J*F19#KW,=-C,T:X)B"Y>F%P6 |
9793 |
MP:O*,("JLN2-!!U/,P7&;M_B_-6A5@+HHU%R;6Q7^`+^I\E>$Y"#:S[\N;I0 |
9794 |
M5<Q=E"D,@:G7:GO-;#-.YLN3<8`R+,O(K9TU"S-YKL2G6Q!71>:S"EYDN()E |
9795 |
MP"O[%5OO,;N<TE!=15*!@04L;;3>9+9[Y79`<;?VT"G'S@/!K!K\.?^'8SDO |
9796 |
M>+-`GC2!G`XZ;CZPH>A6<XZ?/3R1=(E3#;&<BOHQ3GUX;B_1O?NGO"<W,/=P |
9797 |
M5+&NAYR0G00#(]3#8D)/<,2TG^H4U@XIG<B*3C)_(Q96[2@S`)#D#S>PV78- |
9798 |
MA(489"P\'ZQA60BA^H0`@0J8A:1D;N88RV3X,L^#(!D)8)?\9N<^^YUM3(<G |
9799 |
M^%2T"JSN5#YA3*V1_\EQ-MJVVY<'#XMB-.<>%K#H0(3\0B'$1Z<S:\,7-"), |
9800 |
MK4=[TX?Q:CQLB2;;R%`N$2R#G$1,5&-O`C2WR679+&047#RQ")LCK6H.+PFC |
9801 |
M@G%+2ZDT"PQXX]!LI11+S<#'R&%X?056";),HTMU:909YM=KLCEZ-OX^X)'H |
9802 |
MB:%IR?YDDQTVR0W_/@GO=R>;M#8/QK(<'\%\2T6@,YQ.K_-`J%F[0ZE3@.H3 |
9803 |
MV(M7\?@])N/AS%Q<#GL)5]/22,2JHC%OC@R(\[V5EF.>?Z2\R-[_.M[9/IZ# |
9804 |
ML4PR^B09^@UE>*/KC!H:Q+R-K(BZWLE".1*'L.,#8LM"-0ENG5N71RB['$*5 |
9805 |
MX@:4+<T]?8#23[\8R&'Q,7JGT&$B5F%S2[7&V.J.U3*""9K94$_WA1/A\Q$A |
9806 |
M^WK,A\ZK91:Z,9O#(^87O^WJO:_$\'\R6JK2N$&>8O8[_$9MRF/21:TZUCG4 |
9807 |
MGTR+F%H;R%L4AI_$;49]4=C%+!RAZJ3J:L94N(2MO'9GI$AO<WNQ8>7F)M8` |
9808 |
MK\$BE<03^[6KB-3GA5PGOD2*A6]UA!8VV[[XBM51$]S[A[531GX-_8FZJG&\ |
9809 |
MEZS6M/97\IQ=IEABO%G)O>?%O>-NS&WK$<4KQ;&D9T=!!HS(I!X=OU*HZTR8 |
9810 |
M_B"U`X8DHXHWQA'U-B*8#/F/M5],8-P]V?\#@FYD3O+D2K@H[S40:*FWTBAX |
9811 |
MN#UDPRP91Y+;Z>"JS>;O^VYS]>3O8LK"9C,8<JT3_"/A9?.8>.:(.@9P4T-. |
9812 |
MAG])3^0"/$Q&KXW'>6A@RN*!H6#%`%1L.0`D=`$RG0#I(\\<9Q]39A+=Z$[O |
9813 |
M.GGN*&GK>>^DQ*K`]WMK942O8<3+]$(K%71P&._IJ+=R2Z7LB64_-(:9I`9. |
9814 |
M]%^<%$+4FUI@C`+>5("`U5>9U5U)J7!_S\NW46[WECT]<OKNAV&-<RT^KVW[ |
9815 |
MJ9F-KARNL[K15Y`BE>=H+`L)-QF/VH.[^[AX'B-#;@,#_EF0<8/DC`U?V!2# |
9816 |
MT2=R.%^X9I`!FZ$Q-!JA<K";`(^:A#=DW/H`?5'+_+RFBR^DX<VEV__F#8,8 |
9817 |
MN2UC-\\;H!^DDL5M"+3[\W&K78DV#$2EQ!;NW/5[_MA`":F%^JR7W<]"5D)0 |
9818 |
M"NZ!+5!ZM$L3.8Y$@(3O"2Q=P[8B&-(-:[1D1)4.%-!V$OWCGIWZ:7_FAZF_ |
9819 |
MW:PO,DUV3A2R8&]4_3CJ\-GU[F:2`<YBX)),<Z-IF7.=Z&FW+^$7B#'H2?A? |
9820 |
M)&1GYUZLY%-5\6+V-&"U7G&*ML<3YN4;N]Q`#`4NU`N0*L]!&!!XGQ$VF*]J |
9821 |
M.93=E)N)JSNS'8452TZM:NK=_?#ISV/.+N(&=@;_P_%`M!8-LY8;_C-76`$= |
9822 |
M,!:F/:S>TJH_VWD23"R'+6]3C!K$,+G$F>S[PVPX>>5[_`$[L)-M0@@'LI@: |
9823 |
ML9/5Z<!KVQ/@031>QI^D<2^>34W#,`<*;.U>PO$)>U6!-M_]X-=Z8.!N`Z:S |
9824 |
MHH!S[24BG<GV00P1Q#?5*E$9>-B*0%(`CV7,?"R,'GZ&,Z;IEV^Z,Q)(-_,0 |
9825 |
M8;49;\V,I58__@[T_9YG4.O0,>Q5L!<+BX;1._:!E,BX*,,^L`'EAL&]5=]W |
9826 |
M[1:ML3*&#T;8.#`Z+RUJ@`9JDD0EN(-QV8?Z'U@5,9_:R8]216>X>6,YS3W6 |
9827 |
M2Y<>;%]W.`<C@KTQ]'ZS6.69E&!`0NYX33:+_"$E..RS/^PU'_[AQJ7DR11? |
9828 |
M%I:'VQH)/DW%$5K?UI[6+/9!2X$"IMF3CA5J!)RPC]O7N*""]4_@$M!"A<_A |
9829 |
M8,N)6-X7DD;)U[8=-B7.RMO@"K8-H+(^Q<N1UX4":A>W#)PE(/\H].&R1U\T |
9830 |
M)?%2H),)BI=DL!/ATXLE:VH]T34.SVF+;;]4X4DDQ]Z]2EK2(-U/M":NFBG7 |
9831 |
MSPX:"B"Q*LB_\W#CB:-ODX%2Q/FIQL@0C(HCX;T-CE,?Q32#HW?8!$4':-!? |
9832 |
M5+T^R;S3A]K['7)LQ91?4*H2?(TJO\PCMOXR66G[9QPG)H`0].@MP%L=LW5T |
9833 |
M:#?#@[.;"K?6;&U61K`)%?7%I.8Z9&CI&KBM?E;EU3CJ$O]ATVM(A<1+.K;M |
9834 |
M:"EU!M-@RNF/1-]TC$*W^%OH$3NP@^U<"#6\B)D.0I;O#02J&(NSR_.[$0=Z |
9835 |
M,B]XWAL;LY+OE)3<^0@`QOM`LZ_?A2;?56>6BB;&N,Q("9*.XRS"UH9D86X8 |
9836 |
M32F*6)UX&\OFENK*:P33ZV@LN(B+)`R/60?0J<K9B$=5HYI6W(J.K8+2$@IW |
9837 |
MJ[UDH\0XRA963B#%1!3P/&\GQUI&?J^9("2#T+<1.J?9YBTF=1SNKN#DRND+ |
9838 |
M4C'GDF(HLA\8"W&&L=\DH!5I2;PB@F:4PC91I<2-$F[EW@:.L$,9\Q>(*SV2 |
9839 |
MB)(55O1R1<^<BF`351%7*QDPCNRF6ER(P6;%]4&^H(WSMC/4(+2+S%[?D@F4 |
9840 |
MGL3J9\F7<2`;E$ALYH5-$B9#FR:>MXUT!27NQS"XNT'[Y7\ZBS>#(E0()YHS |
9841 |
M<;5['@22(ZR!0&?FXJN]LM=UW9"'Z>03=D8A7AWOUSRG*NWI^7=+6D14;G<& |
9842 |
M'2DR(+6(#%^=HF&?SBF88R3N$I<AE+:R*2U5DU`W9>,F7A#&?ZZ+RDE))MS4 |
9843 |
MM=;>Z'C[L6`%H/D`[E6<!$`UZPB=HW1H+H\4^<B\F89%O#EBQ'L,YH4]T9GY |
9844 |
MO[MVG[MPF'1DR]OPI7IK'ZT(HQYJ-_?&.PXYILGA<\Z#JT;3AK$8A2'51'@V |
9845 |
M;@YC\U_.UV7U]I>?H0V(NND\,[91^\&.1$_6UI<A[H'W!/P@]S9[VZDDA_>( |
9846 |
M$/]*UYGSOM0]BSH(NM9C@`(@\P:WII7CN!J>"Y1!SB<:A23"#T_X3MX33@WW |
9847 |
MJ\3J2ZGP;%(0_V=,[<OA1D#J$HU"@3Z=A'F$D\(@'/`F,YNRF5I3*O(P;+R0 |
9848 |
M?D3HK<T=+2OVH]W@VG"!^G][&-'PR)4^7+M9X)!>U>9]T5(XR=7J&%I;BOS5 |
9849 |
MB[J_Y0H^=0Q'4%`T3]%<*@GFJMZAB[;Z&?NU&F^R:E,",N7<I+Z2#CYX^4]N |
9850 |
M&B\KSGZ)U#YZ)^RAP(W.G5V?J<0_4?<O0DR@H`MT]:ZU\Y)RS1M;H!K.62D8 |
9851 |
M9__AC8%Y#RGSMB$O/L-9Z#1`Q/];V/JWS5.IJ^AZL;6246-RZ%UV-QUX4^$( |
9852 |
M2R/ZO+QJO?K]RW]%[D,&]XH\B).GN*B2E+Q0"26QNE$Z]W(5S#(L!)^Z9P2C |
9853 |
M$AN4#"J'@BY\:[W&`Y<C+#@\LOZ1`)Q,ZT_F:_10<&47N>3E!W7:@\^[4_#` |
9854 |
M#C,SRRUATI*0?X,H\@>B4!R%&.1S]YNVX,'080+)J(Y97V(S'N[>@;.V5._/ |
9855 |
M(>E0M"=)NL]$!9S_[L^H+`PSJ\U1NN$%ZXOY*0_&DG>SHG>OEIZK$41.A<$# |
9856 |
MZCJQ'$OG8JV<=$HX$N@TD;+$XCHF->`T,W-DK[8PI\0US'>N)1\-+3=[P;YA |
9857 |
M`C_YG=[6%G^>IXW`F)!/`'=NDGW@H*9*H$JN4$]?#5N1)^CL5+I/KA9;L?1F |
9858 |
M?KFK<@V>K/^$I]S%R)!,]:.\7<P,#BQQ;#;#BG+")A7U([9:MUMLQ/<,<'QQ |
9859 |
MY=-8YS7*'M1Q7+-H*$LW'DXHQE/L@P>J8/$F.VJB>R/V08#`WY(/MMO!3=%% |
9860 |
MXV:O.X>TN_]VRQF?)1WW!/IKAB>%[B0UK.X\4-.?G^$C.?\([+39D,.!#GX] |
9861 |
MY"9G!T+N#<85G(,"I-4&7D+R-B!)1NJJO1LAMR-9/^YO9R#_PH#=H[TIXLUQ |
9862 |
ME(J!'\3$[[T4T0%9A9+Z'6GEARUJ-6VTJ;AG*AJ2TWN>=0'"*T/_!KF?Q*V/ |
9863 |
M>M,28#1RYI>P+EV:*`=R2MIPD=T'X?'?B"/Z,?:VGMIO!<"/ZPX7IOUN21&D |
9864 |
M>ZQE<]NZ5C'8UR&GXSE%=<@5SPYL@]S:6@P7?4M-4&@69@`B!='!Y%8?]PP; |
9865 |
M>I67B\6_TU>NH1D<U\RT5J0NC3OCCA+;(V@"KCGM`G*W_SV9?OG,YA-\V"(; |
9866 |
M@(];E7I-+'%6X@J5M[N_HX"GMU-H;ZPY!..7GX_=X/6A#+I=A7V2D+5;61X- |
9867 |
M\=GB>[4@_.JCYN:+](!/G'H^<>(9]Y)[^#T#]`#S[$G_SW$!.0?F-ZN\[T$! |
9868 |
M*G8(9G+@+V[WQ4=%'>J\DD"MC.,*WHF6F`*.#('V;HU``&K+(JN-!!.`%8,\ |
9869 |
M@S[DU%7/:M56$PLIM68BU8O#QV5Y@Y;$5='IYUEC+=&?;A[3.NRMO^+,8-GR |
9870 |
M+O?\51EO4(+!,>S<7'F,EID.0SOZ>-A<K>L5R(9_09>,'@!4#`3^4$]7"E?9 |
9871 |
M?K4!B(M*A3/TN[L;HG)?IX2/]Y^IX%*U6A>Y94TQ;[EZ4]<UK/+W67@P,2MX |
9872 |
M13"9-']:1:])[,'RLKN+"L:.$I$KF@!`W_PDT:)XL<3$<CTT_9A2V*4LM1IE |
9873 |
MMC[5O3,%8V=O>`9N26@O`$W?I"6GIO8*;040Z(-E0/ZME_;%'K,O9=B.\W!O |
9874 |
M<AI`]5-,G%UEW!<A,0=0JS>-',*,6,)4/0AV`Q)P621J;8W)NR:1ZXDE]#Z$ |
9875 |
M'(W*:YT+8)]82GR_$:Y-.X=-5(9#91+F4R5TDPW,;8($_BA3*U1]C$6<0?K9 |
9876 |
MZ!RI/OXXEUT.H;\=5C@<7_3'%(,B"#.AA0\_H@OH<I!+:UMHA%QG;CM!#8"+ |
9877 |
M$\@1YT8F<9BU3/^H50&I-JYKG7XIKQC_&0Y%A_3@>\O/T)RN2O/&>E?F4)[V |
9878 |
M@`5/7HL"^[`S"LU4?)ZS]L%,F6)Z#X\V)@I[&*&P]<?7T"BQJ;&\7/31JCH# |
9879 |
M$P]"9)0.T\EWGGV*1%#18YUG)J:R4>/?;/"^1![,C7.*#1Q!#XK\YQ1K3E]] |
9880 |
M#@X`H)O&IY)^)4^R1R^:O^"R$[?89ZR[OH8,YT\'C/5)_%'<LD41;W10N05O |
9881 |
M='?GA1UBQDF+8QCS//L0J!RHY+<3JH@B64"PIY#_\-B\_9B6?]^U32DB$X6N |
9882 |
MB,+&F?#C_`>HW9P(Q8/6>&>CD'Z0D!:+QQ\#^ZF['_0>8;_JD&87DF,+QSPA |
9883 |
MS?GL-^&[6ZKOP&'WA'WMVP87/F*;<=JAGBJ\-X[Z88O.:AECP$CWB^$=5VBW |
9884 |
M,M>WA_WPW(A(4SBI'\URS_]VJZ[,FJ^_&J7;BMZ.<EQ<)]B[GBVYS[XI26#N |
9885 |
M<)G]7?,=XI]+G&YE-XX=_1GYC*$1$%'2YC2Y%5ES10CBD.I%T:7N2)G)DI(4 |
9886 |
M14@EUTHW!E$^R`C2N/H>EJ)2(*7X#M\%.^)^8`+=N/J$IM;ZF>4W-:!";I/1 |
9887 |
M_-*4;O'H8>]G;C&-WK_BLAI5Y-_Z:N^H@6TV&T(XX48,&P"2;Y"*4<*OR#SS |
9888 |
M2]040>,?[OOL'%4IZP_W/WQ7>&G:,$SRJIL':[S0&:V&J9X`63A`^);.-CZ- |
9889 |
MUT4Z%631N4P,2OD67?0#X)P\FYR/)QS$%64G2U@E+LPTUP3W:!V$R(QCS+5M |
9890 |
MDB#YF++AX-IQ#6Z\;6FYJVZ'?&"S3B[&D=,:(Q'4:$9U?;?#2?,\\FE>O$<R |
9891 |
MPA[KDF>&\\K/;OOYU>\21[<1UURA(1]"2@'TGS^,-*4B0D^7M,G_U$P47]BH |
9892 |
ME[IU&^:+%I.>\'KOYR>P_%DJ?O'0>K&AQ(EZ#"P8;?\(@4X0#JOJ^0D5IJS/ |
9893 |
M0M@@CM$.%>RCW4F&FF@]+R@6A)QIACHUF5&&!"5SM-1&:&KO?SEX\#N>0)HJ |
9894 |
M`KG@FM7?1Q_<T=V-`7&(>=[?UIUY'03*2YEM:]>[7=3RPRW>3R$-;N_23>X1 |
9895 |
MF(T>)^JEC=<LBW0=S6Z;2,'ESQVHI&:Z\^R32$R/\!4L@9`%_]P4NY5J3D1? |
9896 |
M1X?[$:KC<Y:[>@Y]UP!5'9\J0`%GN="MAV``8>0-F1X7]^(0?15/=-G/(50\ |
9897 |
MR-+Q+]GH_-O.IRE"+VQG&<(MT878W(Y0*[4L>61KC&88?V1UFYC6"^8-6K6V |
9898 |
MYEB;@B_7FL9.7+U0>0@[V4-)0FX,YT:N,,2A4"-8ZL_Y++W`'9W/C&"8#0/) |
9899 |
MMG-G0LQ`5:@EFWS_3(-,TBRBRL"$;F$T2J=,@H1_PJ(K79H(%0F*IIB<(">) |
9900 |
M-DH/[TL``:)KCI.Q[IHRBA8'..I*4Q=Z_EEK]'-3N_('J5*F&B>]%1U,9D&_ |
9901 |
M^\T1'U5"`Z#U/[<5+(AHJI4H\1^Z&UCY%C;2NY4S1.K'P<B3\RWES;7G_<L+ |
9902 |
MN3X3G!+F9$(D6UPV6JSK1O-P]I(C;)#=)X1%!P,)QB.<2\(B"QF*JHL/'0NQ |
9903 |
M'F'8M''VMKFHRFE<"9]*%=5+J]X`G4,W)/&23(KCM!`P?0X_)_*OL/IE7O;V |
9904 |
M%4Z+Q]+3C%6Z'H7*&E8?%080`V@P&;5[8'6_1+H9G'J/)Y2T(&'5/?G,FL%) |
9905 |
MU%9Q,9L8,JK+Q+$:"\$CN+-OP^AT,./)MQ_CV*36-G:E__*C3_A&J,9\!0)? |
9906 |
MN)$?*Q-9P#3?P9.499;:%@NR90<[3_69AMU21T`<IE=^$%40!H9)#8_NG^<J |
9907 |
M^G3J.46-]F>D@Z-D,;2[0;EKB*A/`;6\NC(<!W+@G&8RV*K3`ROT5OJB_!QP |
9908 |
M'P]0#C+&T6DW@NEV&UD^NI_10"8PR9[BG7`C5$N"+:WL&Q#(V:^RM1QW?_#` |
9909 |
MO.:U4<KO7J5,U!KR-+#'YQU:*H1$IN25[WKL%KCC$(,/H^.(\F8.MNAE8J"G |
9910 |
M"!%H+,;(GG*CT=,_F6?V"RZ".WCXAM/$;FC)0+R$+;6PT2^D"`U0;<&*!?&> |
9911 |
MV+7!DD7E@Y(-^$:C;`#`$_;H+5C1B+P+(#5!^I7>?E^N?_&S?S;`71ZHS"G] |
9912 |
MAZWC8E.O<R?6%KSXQNTSC!K,_QX+KS]4=5$);$[_N1TZ3QFW);5SB7Y\R\62 |
9913 |
M!YA#PM$_0O)267.I>`6)XEY$+!_OT*Y*(75V:"_05,G<3E==]*I;,9+T+/?K |
9914 |
MT9<TO/ZY5LJ`'AN0CS+!D2-9Q"\OV9FN0K0G`(OWE+\\SS@6QQS>33;GW;5S |
9915 |
M+2&]Y:K4':)=.3'<J8TD$S3^V7`P(8T"YCQ.(@E\#Q&04S"O^]]@IN]`&P$U |
9916 |
MCV#D@I=!H!&B381H2=N&G2P]JLJX;)G03D=!6!R?\?P\+ZT8-YAD]!9[7C81 |
9917 |
MQ+I!IE',$JCS@NMQ\D5\[@A#=R$YF4[VN'N\GP&YVG8I(<QKLK861QHZHGNX |
9918 |
M+>C]UDVYF*XMYXW(!N%SB5OSMY0.;[15-385,G)PESEL@996?+AU*?;Z/>+@ |
9919 |
MQ%WM'RD=#WNW'3[OK,3_X!RDSI)ZVQO]5AR_:Y]>]1;=TL@SB&I'2-&(4G"H |
9920 |
M"0F1ORZM>:2R!(3CIU67#L/J6G#@F[U`JBZ)T%0DDMEF.#\W\,)!C-5<Y'\' |
9921 |
MSHF[Z-^1M9-U1VM5CQ:F>T?$JQ2DFUQPO[T':GW'?/I<D07SI3129QXVSC/< |
9922 |
M7.R:VS#KGP\!Y.#537"^HQ@X<!E@\8455:2.>CS6V"Z)O3T'Q]7QW/1M[H'; |
9923 |
MO\9VB_F\U\=WUXG,OJQ5)A+^(Y0;^6%F1-U?V#@IK]]WD:@!.'H9I1L[&R7& |
9924 |
M`ZW$?()J57$W+2[]'SW!?)M?^-M/>HPEZ/X[8=R,IEA*CW^AI)+-N?&$"N_; |
9925 |
M0\"$N&34$/=<EOJO.Z5UMJQ?K#$H;\#EJ'NNN7DD9A8N?SG#TFSDLDW11$D' |
9926 |
MGSLMDCN8\2=Z/M($21\R9=7B@6U)8^TMARS59N1`$/8S17YUXG?5`<FV"[;> |
9927 |
M$_K14:Z:*B[Z3H]L_-Y]:TH3,`LD)PL<6Y0?[ML`DN8$C^B/K!+ZZ.6L5.PN |
9928 |
M1[%`*[."3B3FK2W9N`KY';R_"12O&`])SAF)3I2B=#GM.V':R$W\Q*S_=#$C |
9929 |
M\`'ZD="?.,^L;EP`':=$-/)SDB,O<$@^M>A%DK5)U>4L(B%CB.)*4E%4OTJ< |
9930 |
M+4-?NM+2'\MV4.%:"JBGT8-ZLP+])-3DT;NQ;@O=-0KA3=Y"WZP_<!D][@W0 |
9931 |
MD7_\-UN#M\.-<,RGX_0P\9FO00;;1AT_VT^2E)/+!]IE4+JPP?"TRZF3&E*> |
9932 |
M&?Y^T@SYR@0P`SSNNOY6]>\9?7E.H^-2PB0+\PJ^Q=XLX*+<A?T[_EOD8]66 |
9933 |
M1-O$?$8^MH[3)QCHZ##X9=PW.R.0J"KBA#!G&M-#7&0%N6W/;C>]"O?Y]P6- |
9934 |
MZ^<PC3#/-U)B``SN4<-:-00M^;$Z/R"QH7_?.NV*:\#)P['1+B)%O80X=H$V |
9935 |
MR(I(R#$YIC[D4Q0:Z\5HAU?^.3XVX=/3R+[J4)'%9\&<06M.NVFT5#G4V.3/ |
9936 |
MW>*41'7'GS+LQ.]'RA+=I9D,OK(*9J%5'J+EZ/"/Q:#&:"Z=%#5KP]FHE^VQ |
9937 |
M_G4;5ZU80!<`B`F&F^S=QT`2XM/H#3GWLJBLM@.>_H^N;J7QT%I,:`.CY9X% |
9938 |
M,2&<V^=70;#&:^?#\%_?/4BOE=V_$H#%>LLV(QSHS:8\]Y*R5I0/D`)!6>MJ |
9939 |
M+O=*W@EG*@OTK`FL5&*2J4Q%S]\.S;P\([GQ11%KCO0!Z\CM=O74X5#*LF_^ |
9940 |
M7)'G_,!J63GXQ^DR-1U$FY[B.\W:06,\);ZY^;=?YQ<A$R*.IH7,'(WO]0[" |
9941 |
MY%-<GBF,I$:4BK[V2**V--3#!'CT9J^<O5'LOU8B1*,">`(^J=P_.4I^Z[=0 |
9942 |
M7B$64C*KJ:3>6=&?>4&<"5HPV0O.<#INA8QE\^-S9(\7;YB5MS0JCR**++R7 |
9943 |
MDM");A`=8LHW->J8;M!RX5.J3]L*JOP.LGUHX0___(=ERH=,<4,(Z[_,F-;9 |
9944 |
M`5ES$%B<PSI+ZB\;-M7C"!/W;FCDFHJ798.23+`(G_EFJ8ANB@)S]K;.$:0: |
9945 |
M2#W(15_HGC;7[N7$8Y`7V4C*L0[,;6CZ2X*$>TO4EVP@U\?W[\]>U_](F[$. |
9946 |
M;9@9-?Z:^P+"V_+'.PAT(/SCL;U&09NK)W21Z!75.5:$=)HLSIP(;-%&4;78 |
9947 |
M5JTE\M7&`=F_*X88';OAWJ5UJM&:SR>RB_1L;]P=Y:HG>1%S).)0L\R)!B,N |
9948 |
M9.69U=%&#]B*54&A:-EQE+K%BF,AH^M,O<],T;-MP:G?OGUQ<@M&"MKBQOO7 |
9949 |
M\N./!+1&K0C<M.$L/T92N['H="5=ST\!WJ/ZH6;3?NI(`0<:?SLQ%NG@$#%Q |
9950 |
MDDIJ\]!67$,%)HH0J2&:)*FQ]YDH,&$D^G6NG11S^%F\/\1.OE_+9[TVCKT7 |
9951 |
M[JM7.1WP]._*F6U&;(.6J=5VT>):HB3ZEN!_5%C_ZDV]OZCE_4+O_>/DH]<D |
9952 |
M,>+3[V)5+DM7:.C"Q3Y\K=P*";LQ+,HG;,%/;^/T7KBJD$A@^_MO%8)7J/9J |
9953 |
MQ_]4G?U_/C/F:#RZD__E`03JF&X$$RD9<1>CG5Y$$D&Y(B%.'(@5BRK--\JT |
9954 |
MIMS6]%A\F9[?<N`>+G;1!@.?HD$V8MLG8-[V2!@\V$XHA+3@%S@BQ?R3LSU8 |
9955 |
MKO:5@5$GJ`MO4KY&;&,Z@2LC,(._,#C$CFM]XY]2JG_9W%7EIV/?_B`8L!#] |
9956 |
MD?,")K@.WR'T2[+3&:(/5W*"!A5Q<L455N67!*Z\]!",'P7_Y5H'SXCNU-G5 |
9957 |
MB/["&W),H/HC?9=U*LK:ITS5/@G+1W:JK<\)SAN-H3OX#;8]B7C<*?>9"M[? |
9958 |
M#.[;>/W!(HJ:X))WW.#V,7+_Z*#9UUCY2/S$G:WNO!%Y<BLI=C0"[E8A^E^I |
9959 |
M2T+4KB\Z+JM"_4:47*EJ:42=0V:5G3P`Y)$%Y]F\7R6P"MC&A-0B+T%.K;\! |
9960 |
MS4UD.VF:5_UC(+!C2H"-1FLP$!62EU^N+/@<%,`:N7C[NIGU(B\261B9#PZQ |
9961 |
M9>7^.I8GX-FD&[7%QLLP#2ZGUB?NCIP79KS<G9OX/9I.78':)69FYW+K,M:E |
9962 |
M`V=F$=AR@FV<4B]J]*=<S#+,_&&6C>YKO%E$&HYR0.G3%!5?/3FT$P</@=1Q |
9963 |
MAL*^S>$8`=HI9_4)P^/>-9=?GIT1"@%`C<[Z7<1/B^T=8"_L4QA%\&=0=(^: |
9964 |
M0[U<_0%<<HC:%!T;I!;DC(FU37.MYOHAA$"\2P<ER7N^9BFCD5+D2\`(+]CG |
9965 |
M[U%MO'.E9]7J9&T:_^25_9&5Q5ATG!0(YNB_8%6#*<*E8\!'N/Z6Y07:;[)& |
9966 |
MHC9$"9=R28T)BBMSE3.,>QC[:])])VXJ>&F1J9W$ELSD,_MHGAO&O_W1'Z/\ |
9967 |
MJXJ/]J5&_7]5NVW70%1P%ICT_4D02-&DN!-X@PB1;2G[VFG1/C]7PH^(^FG] |
9968 |
M'<RN<)6?+_G(*;Q0*QR&;M_T.(6'*3#M_IBT==%S`QV_+ZAD0+[P:JVB'.$) |
9969 |
MEWF_T)208TZP5QC9ZJKYI,%2X>J)-L`<;#/8CT=OTFV&=O%(-?I>+QIN]0K` |
9970 |
MQYL.[.1M8/R23(>RZD?%B<+N<B%ZQO<AU#=?P\?,AF13`LAT!?N[G;_0D;D- |
9971 |
M$BZ-S?FLX7L*@0-6P92?*&X*C76PYVG`0YEHUL"725^#@OZHM!Z*D4:)1Q!. |
9972 |
M&M69FZ<=L[E*YAT73&J2;]6BD\)&TD$KS&H'F2WE$<T6JG&!EP((U""BAR)O |
9973 |
MTKV^2\Y.?Q[_.+$<W^KXCPYY<PA#_PL13%ODE`_??Z:^16PKU.B"N!V/9'EY |
9974 |
MY%/^@%#HG"^K`DU;*;3>-5^\8[WZ%DM-^J=>W)V\HKP?F#ZC.%<'DEV53=N- |
9975 |
M_77-\FV:,"JF![MR'8^>5D8?_A51TD^4T*[FD7M5P0FA<[Z.>'>4C[3\B7@4 |
9976 |
M49W255L;9:7;K:WX69U`;/8#Q_.`0?_^AU%LP=BQ82!.;#X="H!8HW(N*GCE |
9977 |
M+BG!+.)/8<OPS/@=1`\:"K4"]6*7,QS*#D7!&8TJ[?5?UH<#+-KA.GX91VCA |
9978 |
M^#D[(!Q"2&R(<F-D((#&+.L-%.CO?&,]Z8V1[YJSV:$*5,&>;J/S\/=0^@9C |
9979 |
M-?C/].AXM3S$S6(RE3.A:4A?=+VAK!IL$:Z^UDI_0P%O-M5Q0HTL5=QL&T&@ |
9980 |
MQ4%3FYR77'(UHY"@X#?2M\7ETC/W_-I."CSB:),K5F.GBWK!Y.GLY/C]!.(6 |
9981 |
M4+[7+^\_MMVN3*@%Z*:-6P`]#C!-RHT_(Y[*A?XI;-C(>L_@8_3!V4X=:;T4 |
9982 |
M'&7D,#4+D9.?&1-686"JF0S+U)B7PU02SV<S;[;G?.\M4/?18M_>K6'1@SY5 |
9983 |
M&70@`J@8+#3+<S@;(>?4_LNI5]O5X,I@3C1JLYY3"5*L9O6/5>=IP<)DO]\= |
9984 |
M+&R\BG3QF,VKCO60$*X<YNX!=0EBCOE'4=@D3N?<([`1`UWT@Z2IH:OR?;B/ |
9985 |
MFS/8V,B9N;SYV&X1A]1T3T9O?P'?13YGJ0<19OAJMHFD$B``_Q]ID+L?I.&- |
9986 |
MMOM_([,^I3X(`ITCZU!I;MFVI=RC6O8X"DK".I'*Y8Z\XH;26,A.'QR.:HOY |
9987 |
ME>MJVKP1X[/J<I9GQNRWY=$S0A=)Z=GNL!D21I016%-"QK*P\(C5%_"$=#Y3 |
9988 |
M.\%PM398$[-9)-IG"/D'/X=8>'(D9/+)_/4_7R1Q%.2=7-#'6IL:14E(9Y12 |
9989 |
MK(L-IN45Q9F2.?1L\".HW@Z73L;@5<$FY^]5>3"@F%QJ.<T-_15"WQ7J&2X3 |
9990 |
MGU^FJXD\"W^6;BA^C`E%RKD+CQ81'PY^TR3#Z^(,<9.DH;`A$&CAC)*X$;@A |
9991 |
M/8\$GWRR7-@6YO`!'2S"JZ82]"6F?/?/EBA1W3W*R87Z!;.].GKW[=S=GQU! |
9992 |
MT<`F(I>%_A-^8!/K&(@XW-AN`W,X!"*.:H58A+;#.RQ%118Y;)1:*;4:]Y([ |
9993 |
M6O\E[3P]ON]&#"02$"@/Q_!!._.7_5HZ)9L>$%$J^VFI9FQ,_PLY$2=WW+]H |
9994 |
M]S<\*N$`FP^I#EGY*8-R=#[$&XJ@-]L9VOG8FL[LE?`^D^IV9`)!/=F9C;K& |
9995 |
M(VD9BF>,71'E78<$&<63X[Y\UJFO-:3@J-'/.MDNW^NN\_CY:;/+QQ]4CL!) |
9996 |
MZT+4`':X92HZ;L',C9ZX3S=H<KJD[-R=;%LF#C`<#LQM%20V9_03K_C3`EMQ |
9997 |
MK55:I2JWQL@K/"A(^AH=:EK!IE]W>(,5_YXRURFFZUJ[+?'*XZY'7/!R51_= |
9998 |
M&G7M_GK_W\(9Q&'F37[(']\@_"X@B9SP3C8ZKY7&?G#@,+M5A;7>)??C=8&* |
9999 |
M_>\:2B</`:MXTF/TS^\;5.99.<^0^.P/NVF7A`].5`F?DRV3VA!U9M<>1[>' |
10000 |
M_-]6$X8$Y.]$R]@V?Z_;=CTD$M^,@AKKT/"E2O')R;VT&:]RTV<\ZHG?PA_J |
10001 |
MZLW"3N'LYA[XK`>/L7K!3/&3H"+Q`KU?_9%$\7/6M%1X<XOI"`D3>I:P)='" |
10002 |
MJ;69@XD+!<^;;/&FW*R&^LRKV&LXIDE(R%/H$>0&)<20=]NXR\',#]CZ4H+( |
10003 |
MZ1.-@]L/H0GO&Z7A'6!%S(QL_<U$T%HUTU(M-O!L(B/JN=\K8VE57V$48!^S |
10004 |
MT1\KEA,C`+W_MT(N-J791>@0I'`\4C2_/$C$:Q6]C('N!Z;<='UA&T"<N&DW |
10005 |
M.*)FWD9[<0S?.YDL:0W(TGOLO8<YO:'.]S^>TN_5;+?W61LFPROGAK;Z"0E: |
10006 |
M:KA*,3$HO?[7U]3S=+@6):;#PE^T@08^1SX(<T1VU[IQ<>/OM(,N&9^XY]8_ |
10007 |
M+9Y(PJ./86`_S)Z0.Q!V#CT%!$LQ3(*@H2K*)X?V+-#MJAG\X>1M'8^%8K@T |
10008 |
M._3S3F%J:-I<B2:J/(M[];R/KXP^LP@)-D*=14B?3`AUVJQQ4PJ&?*JK=`NB |
10009 |
MG.UI-7-J"6:DA\9%/SN6!=,2U1\L9D!&?WA43URX:(S9C9CU,FIW9TL4_Z1) |
10010 |
MP(*FON!_(IH%_;_QB$EQ'`!X?(+2F%\8*<;2CTJ1F`?GVU14-9I)_:`DOR`$ |
10011 |
MJ6>B./35M+B`N`"21_AI2PQ(*G92:?96Q<C=8MV0#_7/@==SNH$0)()8F!\6 |
10012 |
MGMQ$7,T,=]8"/M\.9US]]+;6NJ5_X5A-1&[(.F'TUS'+%W,[A^Q6O./U(E"M |
10013 |
M9*2"63O(Z2#VGQBFLXSK;&2[<S#TA;*U@QTO8.A/WN/)<\D0$I00X!'&HZ;] |
10014 |
M^*DE50>5%;)EX\X>DJ<NLM4!Y"HNY^O/KCR$@[`K75HYE'HSC:8R6[_M!<BZ |
10015 |
MN@I7.GYYXE-B\`J*"Y2A.[3"=$AX$$CNHKCAH%P\C1[KW<C"P"@<1ME4NGCB |
10016 |
M?'V>O:`'MM--_"]%S0'+/A@%`J&3L`>MSG-'I3-W#I;N5-\TMDD1C'_7>'+T |
10017 |
MM^8H`2]G4L6$:PY?J8-I04S(<`.0,82BV"5=;+:*8.*'4]X_8:D(A4C#2CV# |
10018 |
MN9@*BUD^!T]X[&(#V^K@+&TD"&O:@LLE95,L'9TRAFO%DF91KW3.K&SCG0ZG |
10019 |
M+XKGD`GB#X>)N=3*%:]:T+3JQT04*Z@9+O\9N+LUFMV%S&KE8>"^S+J0'CC^ |
10020 |
M)OC3(Z^1(/B8G4K#![>S14$JI3,82Z&Y?+^$*V<:US:JM;ZF2>[!V>$JT3@$ |
10021 |
M5IN#D*G@=$KI>$%HMVB#V:_P;;Y%BR-0$VT`/N_.P8\X!%PVSI,ZFOP"@3J' |
10022 |
MD?U;5X2+1A-N6K,\695,!#WOB7Q=49E/J9"5NZ$7]Y,^FQ&SIH?O%RJ=AY$C |
10023 |
M@_5#/V`$RW4>J_VJ79NE433GWB6Z5.,=JH!K85I[O]WW2>Q84!++A1:=R8I= |
10024 |
MR`%YB*M_'32_(!EPWV6K,O+T]7F^Q.DWY[+V\]W3<DGZ)!*X0Q<9P6_!_FDS |
10025 |
M%%ZGQV"N(XYD$[)F]8"E8T:9<VV>L"BF1K'K9A^;VO;"9%G7HI&?P@;C@#=P |
10026 |
MZ"9M8HHOL".#O?9Z1M.%YB(^521\TD_*/M-V=9_(*WG/?2^<PSHS\;RM-2$( |
10027 |
M;K?]K\)RL%2\#KYX'P0J7V;7\J!JD"M"O3=DXL?4ALUB[\D:9Q0<:?Y>ZU>W |
10028 |
M*#;![XJ=OU&L7Z11@7%-.+0GH6I14>;0R/8U[\F1JX_-/_2AP(MCGQX;XW=W |
10029 |
M0-Q@%%IO[:TN2:/+UVO6D\[7-?YC,OS)Y_F;FR^$;SDBY6U[C$LV(P>"@L>E |
10030 |
M_ZG@F+/N1Z-;?&KKV2<-@.S$?)_9L4G%CLB)(JX[9)!%8/OL'9PWXPIS8?(8 |
10031 |
MKMO<$+-.'@SV!4`CYHYXH]]A(DG/6?U4!NXO:>6^C'.!"D[:$U5=OI#VRK2F |
10032 |
M`=BMMPPS0H6NUJ(R0PEI!H'&!W%TZISR62[A_?!]SDUH6LNE;ITSAJDSY7]7 |
10033 |
M];?Z$VN06+HL-D/`/40$`M&)J;32YB<'H=LNZ3Q$2OBN13+NH"HQ;&('3!Q_ |
10034 |
M@N<MW\N_$F>+@VV"L<^#$8?%1$]N=XY&&M6/055YJU-S]9=0W/U'7#A7@&AV |
10035 |
M/=G<'QW.A022.=-^U3$)I-[!Z'<S*_M:R.3XI@25[Z?X3K=A6;UQ#3T;@`]L |
10036 |
MFX5U%&Q6R.4P'F[A?H>\'_#?E^#Y6L<0:F2*YO/L%=;051I,#=Z!F,@0NN)L |
10037 |
MXI6,I"POLD".'&M7V;LG]Q+.;B#'RT7H,T=O^U'_S6#!U9_!1[3`-INU_^`Z |
10038 |
MB)+[5B1M$00:9-S9+$I341E@I4RO9LPBH*#[P3W@\1N,M8)PX&!N%:I9BGO9 |
10039 |
MG7;5PC*927KNPUD;"ALWA@W?`@]PB$F8UEMS;$;R!'2E?L@MUEAH98`C/)Q1 |
10040 |
M4S]S&$U3%^N6'3CV]-YU\=UV3IZ6%\YF@;+:.O4U8QS8!E<#8TGU1*8C$AJ# |
10041 |
M?_]S"A3-FDC*-/)7;2^O;DW-"A61?$5+%1E!5P#;6ZSSCIHLV\U4!8.9(_V, |
10042 |
M&^QD9F;4G6)HI-3BXSO?R<'KL$&X-`1:0?:9)^X^MGG('0X6'-?U69'Y\'A3 |
10043 |
MMJ\DRJ=7V+/!&#H=M""]E8GB7'^>!ZAOX/,:@&GVN%-`&^%@8Q3J9NA_@`K6 |
10044 |
MD1$9/&CDHFUA(G2)$3#H8LADVLL:H!;_[C`RI(\Z'NO19H9ZV><]:LR4J\V= |
10045 |
M+%%2.&4S5%JYFI=HS;<@#9)Y+;`$SH,'V22:)2MB*>J\=,VM=&2_2L.SBMVD |
10046 |
MK530/M1UY(QU@7GSU1?]WC._#\-.AXZDA$VA.M9V14AN/'B6F1/7$I$L;G3J |
10047 |
M"<5I+9-\?-::2];ATN5SB1S.$O9YEO,H!FAX(.,KWSDCPGP!($FV2R2`/QR. |
10048 |
MFI7[/T^7/"4H+QA_2,[I)]B',-+1UFI'5TI0&D]$6W\"^U)1DJ14P]AUS-/+ |
10049 |
MC:E:GR]*G\GFF+ZJ(K^FCAG^I]F'@;`0.LNV,9/?(`&NE"K@D?2@_/C2*Q2Z |
10050 |
MK%5#WU4;Q/$:(CJ2Y?RMQ.DR]R#73J'^.2PZ).RI;#,&S9T0N!2RWV/E3KRD |
10051 |
MA8\YJ0S/_!]I9JB9"1SI[9FY-E.1'%EMU!/`TQ5OK6DSQ7A2!,=`*T^J[/3Q |
10052 |
MSN?SSN<]!+0?-PNWTE7-\"%L_W9>H+UK`2JWT7_JU<5M$8,)L?*@XU?/;92] |
10053 |
MP(Z00D<H12+).XM9$1J[5X>T2&'O-.!,PRE-N@H!G&HG+_"H`5OS;C,7O%+& |
10054 |
MBKQ:H1V']%9O]!+OQM6O)%NC!7U'FT*]3Y^3-[CJNV/1OASGHC/T2^3LCP$Y |
10055 |
M:H3M$-7A6T!UT_^20$+(H4!$T<21JV]0FL_F/KB>N:)V[$8*S!_QI44KWIG/ |
10056 |
M($T45523THFZ%Z�&:69PVPHP%PI%I@O`^:(L;]FZR66`3.H=G7DVU3_RD7 |
10057 |
M7+!@.+>$X4M@87@%?+^L@([/&YPP]U&X3_7[2C6GH<^/7'`&PJ".CO)<8X2H |
10058 |
M(/XA9J[SL#Z)\'O\XPCEAX<;C=SG?RK:Z"MO<JT\X5P0B.?29_)!]?()]Q/Z |
10059 |
MY&MS<)8\+7T_81`:K7;V>==_'QZK&RF,K\'(^_GT3=LK2JH^"X\?&U,%ATM1 |
10060 |
M+>7+AVSZX+8,F5F/M=$T&%/2K`B:*,V:\WR2F9$^Z*68='5-,GGC7A9;VGOY |
10061 |
M*'#^%0"SY.T@@A;"@0_1;;X&@9;-4HK<<YWIT%/X;7%.=HY;4X<\OC5*59B, |
10062 |
M;<Y^IFC'/:ZV``Y$0W$W0J&4T?[VY,-_I8L<#W)L+"^M[!$8?@835YLLV.GE |
10063 |
MK/6.LO7!&3)M]W\N"W?UG<-'E.ABKC)_:.T"0VPE1$(>P49ZQ/W09JO3W\@S |
10064 |
M1$V%HY]1)3TM([2#;"(R@Q`$_VJ.AXKV-P5#'[;3(E"MOTFS,0VQ!D;NC"4S |
10065 |
M\NWYRX(>U*M$OQ":3#MT<,VJ8%Q)4.'8<3QR3T-IO49#$N#E>NZ:4;8:^2#X |
10066 |
M@LY;5R0O;8?\H,85]W*%/]4NJ8_(_M^-@OB;\6\@T(7<O+I*BU55%C@5"G(* |
10067 |
M&56SZ=-F;C$@_I--$''O!B!TMK)64]&(4WQ*ZGA(>]7LIWJ;IV=L'?"BM->% |
10068 |
MF)KA_I+0OWB`R+V)`X6GKK:;7!WOZ).ZZ;J$3S$?.+3+?>+SD(`?0;]\F8?3 |
10069 |
MP:!HA.XR`?;XF5I+577)=Z)&"N9--,^EN362.F5TR<,>#TY)'37QP10GBB"? |
10070 |
M_$#!H%WV2'M^:JV:*7P@E>P;\"+;Y+T"'2E_M0$P@H0EA`B-IY9QZK&GWAA$ |
10071 |
M3M%)?)&6J>)D1@P#(S1RBFM_=7_XV]M%]G.K\Q^"X"_P1G<H'L0AYEJ]-3MA |
10072 |
MWGL0EWV$E&1C&N>P%"P4B3P!*E6EJM(A=[P+<\E]*-8GZZ[M2T>'I./"B%[% |
10073 |
MVL^D_!^K?P4I:+UK:Z6,G4;OG9361$C&$-WA`DEOR5-7:KPG<U5,M66`_G"- |
10074 |
MB`S\DQ03S1(O%L$/K\RDX&]P\O_NJ"*^U8Q!<QTTP?>[11V'N\'\A[S'$E/( |
10075 |
M:5U[?,VSR`\$Q/G4R!'H.,PC%I()G(C4IV`_#O)L?<;#A,I5T-2$+\^SLR\N |
10076 |
M:4BF1L01C1'CE]L6IXY-SGCWJ/%Z^27\\WC_5%0SEN(M%!/T7??`\FZ<CWLM |
10077 |
M=3)$N"3E:;92OG1.E0Y=Y8UX(S35WA[285#_+`]0X*8.^#]%ON%"P',Z&IIG |
10078 |
MY7>0@"8X3QM[I8Z%VXKA!0T,W+&IX;@>5PO;+7'5O6BX<8E2S2IGG?.K6:]R |
10079 |
M_Q1UUJ/+5"IOD#I#RTCQ&\,%#^L'IX[\L5=B)!0'AIRT[\@5FTLH\PS$23\D |
10080 |
M=`1VY2P`3`)VX`&*@/EL8\F[;K=O#3+>(E-`1Q0@HH]P5,,KBLK(=432[.BG |
10081 |
M*2P1/[*7\R5A*6Z889WTQXNW:K]0+&V@:9M!57."(5"U<IQV64YS:O?R\L8D |
10082 |
M.B$W?T2Y!P'\J2:K9+R[]P]UQ%%B?)B\P:&*Q!4F<GJ['3O@CE92%NF2&J3` |
10083 |
MS#Z*NV41_V-/+-BR&NDZYHC(<@*?O56&US`O4ZC_/^3EY(4%9T&U-XI;^!L@ |
10084 |
MVQ?%,EC&FG=+_#"%A3YDU&.W-,=U9O?D+J1TM3SWT+H,VNCX1RW*;C7MRNB' |
10085 |
ME/`\^??5,H@0EIA46`]9@<G-NM0S#<PX#OCPU^Q"6F?V2JL4>I((>Z!D3@<P |
10086 |
MTP^V';_O::''#/`UUN,W$$C@Y\8F\DQ5R\!7C?DT[X88"-_+E@&=Q'$Y%3%* |
10087 |
MY)7=AW:X=Y0<@S,N!WF@(_=)M;^<(*+NM"S#:QL7EZ2"!3.'6<X@9]@&>#_? |
10088 |
MN=C%">?-;@2E&>T@BI1J*'N/H>KK4V>D8#P.HR@/\[5!2P)UV9I02J><!ULS |
10089 |
MG5;[%VU3$W.0,=[!U!8Y."C/S!,+_I/#_Z?*RV9:/>ZF%002BS>!/3=Q2^XW |
10090 |
M'+>BLL>J-J5PLCL3`$3!5/F,(WMM8F1:C=+'8IQ!::!K0Z&+BM3#3_")A3VN |
10091 |
MODQLU56^DK5"8X7BMVI"H,JJO+KD0`6BL@R00`$FVJ^KK+G[YN`(,(H%\_0H |
10092 |
M'?92?M^T-!M1/#M[!IO!`(G`K:9UP">YSP\%>.3D\GU0K?-.'7<,!O])"'*0 |
10093 |
MN,,W[(MNE3^U\Y;M@`,3JVV/7!R9U?5JHT;T1X<#_3[]C5JNR&PX),/B8:-G |
10094 |
M99-2M&1-X/<;':3'-$C=,JR9NO4I\&VG>L^,"M;J"6*NP$RB%+')0N$*"+T? |
10095 |
M3/[>*;4E_3ICE"@(<Q40G)#X/[@LA`-=KT0/NP4"';Z2FG`OM%]X2]6LW!@Q |
10096 |
MK^><F_3I+EWI?<,D9@L90Z4VCT:W"HQ.Q!1)E;;JMYY*0VB9"`D)AT^OB,LJ |
10097 |
MI]V#2^YM'F9^JK7A8)&GA0F#PQ"X0`&GKV>#\X\N9M@[S7O?[7N]>)$&&1,L |
10098 |
MO8(N4.5_8;0VI\BL$!?%P;*@[S'EWT#!F_7H_))-$-N,)#B;8Q8>M>]W>3\P |
10099 |
MJQR%VQ<L]@:/L/F8\#=&;&0Q]A9.<*&\]7Y;3>/OAYIX^'H8PU,+RT+.\0Y# |
10100 |
MMX.B8_L)+08W':':R_Q7#/TQ9\D<1"?,@ATQTB18VRU%UM6$"U05)FI>Z6A, |
10101 |
MVP@QM7OF\4<LGV.KVX7:)\8]I@#8K#6'`!$A.^H4,5#^(R8\)KRX]0C>'AWP |
10102 |
M=`2X1$I=[OMU#0_W4]B!%6SEL1?H#NV<)X.:;9=?$%6"2DW=I7H?IT7LSJHG |
10103 |
M'#64]1!)A,I)?#,2L'][JG&R=O-N+*L0\<UQFCU_BK;>I<+-]JXQ(/6._>67 |
10104 |
M^$XR>1?D'ESP1-M>PFPPPNMZ%4017E]+>3<6!1_8')6T_!>]$?,+]NF42NCD |
10105 |
MUS20>-7FD;BX1K>5BC,<?6Z(LU;G!XY[-)[1@.6B-_$'[X3;.+__@@T\I9(% |
10106 |
M]-#)CV<U@C?OI.^A+JV'3X4559LK+!^USNKNK!\3FCA]J[BC!*NYBV[.A\M& |
10107 |
MK3U4++WS2F-!1U0`&XN6$"`JA)$V)$H_*.12#*,L+<LN0V\D)(I<E\0H8+U] |
10108 |
MR>'["&71-6YM:WB0Y!C)F&0YT'L>7/\FB!+[H3W]8+'FB^TH[;='`PE7C@B; |
10109 |
M!O;=R_:88'/9!DW![B)+JQJV`S$15/\:1N"9F!))0""E,YMI[<146<V6*``_ |
10110 |
M+/3)+(^4K1!.\1$YM-T*C)6^J$3[!QSI`LL<%P5D%;GH&^RN73K=_67(!=Y2 |
10111 |
M(9[_SP3H#4E_B+A8WDJR@AB1?N3HN]8`CMMU*?YXY#M2_!<Q]H0NJ)A0I)@3 |
10112 |
M.9SF\!VV;\R9Q0QIHU9NV(,,;'^B,33X:;B\*7.Q@O2@!\,+\5;[1PL3#09/ |
10113 |
M;XE_=\TV?DQ%!(RM!@T=@-*\6>0A(&HH`F;)CSV0%#]U\,PU([U=KV7*KG6V |
10114 |
ML;G5W[,<T%+OX'9H9)%@))`447XU.VT%>2$N$\GU?EG4"9.B]<>"J.50E9O= |
10115 |
M/2.1V`XYJO!?S@JP&FU:-:F;;,%)Z-4'ITG2',%DC*FF8<T?&'8$A8F!:=/_ |
10116 |
M[JG\.)+KHM`A<,&92T.3-ADK"5=<CIT:/-;'7ZX8JP:@+M-7/JDN/291X:X( |
10117 |
MR>M_$X&Q$9W$4283L5KJY:TE%NCNF&`K_5XHJ-5?6'U.PY#@_F*/W4!F-P^W |
10118 |
M-.2?IA;_R6WB4J]',`#Q:C%P.XDAI@HFF$7'L-HCYTC`7+P>T@(TB!!T/",% |
10119 |
M@26!K5@L97\H&A@(M;<0B+^_KYO\O7KX3V?231CAA!H)+K\T@P3<,M*8KU$E |
10120 |
M>ZPJB*JE^56%$PV#3?:*;F]EG21C[)"@)L8XZ*^$I\!#Y><L@6:.,]^2UT". |
10121 |
MP_'),.DBP@Q/J3?UWPI*;^0$M9I!`6$$8=Z8_P81D5GEWM8.46TF8KT3&P4@ |
10122 |
M!GW6P;)9UT4^`Y/Y/*,'?X.EX0I2/SUN%SV#8UI>@G.^[%>Q5_I:A_T9>VVL |
10123 |
MVFE[+@6L0%5ON,3Z68!#^7$/EQ/TP.;I:LG['=]`B@90@C(W-W]'(5Z',AWO |
10124 |
MGP6Z-4T#!SO@V=0/PHL<)/'<)-^%!6(WMI5(>!@^K)JPC&[U><EEZECF:O/L |
10125 |
MB$X]K4OGS]0L>QS[-M.0,3"$]:-C_H6+O$L`5N=TH_[SI\7I"4:P(%!-%F0C |
10126 |
M80/]WD5R/+1EHFG1RE;`"W!B'18>MK/0V?6IY2HJ$OZX.QH+'NL7?4MRO1P- |
10127 |
M10'\=MR?$2XOZ(/&?R2\.R:TI,@U]`2G8'#/FM@RAD#`:1B]VCSUA3\(VFC; |
10128 |
M`GH?US/7F(NP`P)9YOV1R4XE`"R*)X?-$U`<]8%L[K1[CR*[Q@W14S)+[\TG |
10129 |
M\,F_3=0$3X=6GR@GXMTQV#3)#RNC+/@!&W2\Y<W$$#3OL)X@E9;>7_(]6,P= |
10130 |
M3"EJA7^5$KL?)UL'%+?0P"*GF)-0Q*BX!%/)PSR_]`TG(->P]22B"P+[""'D |
10131 |
M[/!BBZ_A]E=38=N`]".+A.>-H:Y`\;5>CJ!=O!@]S4-_7Y`^(P-8670,`Q&% |
10132 |
MC:QJQJ;[0#:,.I]T1P3:-S/)>IYVL5$,4/('1^W197II&E:H[*@^'HTP?FD: |
10133 |
M(E9PY/S,VF]H719JNCUFDVC-Z):$;2P2^(MB&M9BH75N^8+A$.2&^*G/[K;J |
10134 |
M;_X9*E.^9+%_C@KD-<D!&1+T[8;%Z%81[[O"^7\;'6*6?5"WVP'C4>5E5K<: |
10135 |
MO#1D@.>KE)@?20(#.K9,+]*9Z)QHG^F]7C3(+"JW,X--A2[BA!J1--4GC)V8 |
10136 |
MFN\L.4',WD*'O^426H-3Q-`G@0(I3EWD]2"1@Y@#WS#-Q=38R(;2=BFO-%>] |
10137 |
M)F.Y[5O'SEY@KZHJ58Z3XC*S0O%(@G46HPPX>2^T.5JU`YH\1VAH,!L#UDP* |
10138 |
M+E3_,%R'LW-60G7,)4=S2B$=20NMUN*Q7)A=(57'WWR8?[""&UVWG(A#BCC, |
10139 |
MI1?M_SEC];1TP7M?VR53/:JV)$5_L2FH\3?#@.\U079+[Y60>[\=!R+R\!1Q |
10140 |
MS,DNE9`@F\GHJF/TI$++\))**R:HFW.-]3XBXQ^4=GW'33TJ*9WXF)+7\')E |
10141 |
MQ\-"O]J"/A*M,B1YC\4>\)IRCWU7$[!&9TMDP:W3/O_1,4Q+UZF!1T/SLTQI |
10142 |
M!-HB).(+SU/\)'-/@MKV7L%,[O6[&XV+Y%6\I1WKD"/NRF,JFRTH4WB,_<(& |
10143 |
M:!:^X%5JY'&2J!SZ3MKE:]%LL8-]8X,EI5P-3$0K7-#\5L$@Y'1^R_I*\H(A |
10144 |
M^VLT'(?BAL/YM%BOCG32F)-4J=V6I*YLC4&N);Z"#^V"]2?HUS4K3A4+SLV@ |
10145 |
MH'?*W_XFBUHZ$SK:2>?&M`7S8$M78Z0Q!FGOALDPW#CE6K>BY'_C1)M%[DA- |
10146 |
M`A]F'J':WLB9/E=O:(&M=#IV.)%!-7W7[:FOH`!6S.3F6_T526F3"$QX/UA_ |
10147 |
MR<:F!]-2K9N9.\#%5P+B86M+)\=$(4P4)Q)G'_X)Q@E.XA?DD5\RP6`1?@1[ |
10148 |
M?*+IUK(JL>C'&.4*QZQ,#QS4RCPJ661I9FS:>>!<'X`<X&]@!A\<-"@KY!45 |
10149 |
MB;C_GA&`^(9>*ZCSQN?@U&-;I=NO7+="AD!66]_@>S7=T_`/BIZY0A?]4UQ/ |
10150 |
M=AF'?'D_A%>U[NBR9!P359PM7]]%IV!)D_6HU5,SXMT9K\I7LCH%9I@9==]J |
10151 |
MY3&G(5DXKT^R<R'^=(N76*K%A(N(]W3N<W9VV#_!;\GO=Z5XA!\F%X(Z*=MM |
10152 |
M/ZU:8EYX8@6&AC1CP5L"V#YJNV486/]@TR-5_S8E[/6UWI/"0&&?L5.JPF@" |
10153 |
ME!;])T'I_<!FY#)1ONQ<`=Z'\)QO"A)P*3E/[MYK!`@CLU43]BV`>ZP#6*TW |
10154 |
MZS#""==*ORE,&'X%[7';#J,>*ZWE4V_$-1D-(/.?9!92,TB73PB`!>.?!H"- |
10155 |
M>)(0CAELXDY?!"$Z-^37T4!SE94"6=*8#QH-=WP&>M?<<V]^V-@`ZX:JN0Z& |
10156 |
M&1KY>44`Y7BC#ZB0YA<8S8&ES692D\1(N>+5$J47H0/>V\F8.!D/G_WC_URR |
10157 |
MTAL8[&/`(-M!%]*\!MP27C;!"T\VF-W#V??8FH`1O"+)^YK@@/HHEQYE'E5' |
10158 |
M-V[Q%0[/SA8'XK^=_6FML\A@V:ESOW[$.ADH_\J#0"]<7D?B+'ZSE*U6K>.U |
10159 |
M?8G+$32;<+H+GI674"./:K(F^:O2]VS3?!6>2/R3MO>5<.5P#IBU4-W$FZ-: |
10160 |
M=(9J>*W-`OFC1O7#]I$[]LXM3CL;MJPM[DE18&1J.+IM]U.OQ?$^+A9,BC41 |
10161 |
M=<NUAC.G0E]HN6+M7PEX>I$.<9,0F7R^RX]'!H#56O,V$!&B"2F\E>T?Z+>L |
10162 |
M2#E4K)T:712`QY5U2:0>,C:,Z&KGBTQP=P;X[FQ9XA#=!4_$/@$KCF><R:4? |
10163 |
MKM]%?.B,7/5]N%;6BHM<GI5S8TL=)?N#`LKLY0(5L^2MI)C+SH5(MI#<Q=*1 |
10164 |
M_+LH36@#JU4R2,;L6F@>?C^J)[4K-UN:5T#YLY_ABWW.28YGH`1_;TK;S6N! |
10165 |
MKE#K5E#Q\!IX%I\(U5<E%-)SB(6KT:>[2S(9]GBT^3+7`67P%/;Y+.:$FQ,? |
10166 |
M`J5_<,]:\^;JZLM&7`"!I(%5[$YY3=G=Y=J.RJT4;OD7Y@<+E%`AE@!`5R\. |
10167 |
M[Z/Z]8WO_(KSZ==/)5VN^GA(R38EQB(%FU=S7^]TU=F?+HN2O6HM!)$8$&JU |
10168 |
M&(:,9(3:9G4X&94K3XM@;,V<Z#UC)(+@]:CX+>[,**AT?]JV5<C=(A"1E_=% |
10169 |
MBAP"GEB[00:!_ULRSZ+G0APRQ'%8E]\#\?#.RAY"MZ@6H+);-?!X^G)J6AX8 |
10170 |
M["8*.8>PU:AO5>YFI1!DM-A#JY#]9K#_N,\6J_0+=`\]$)T=[@KL+6\=MU@4 |
10171 |
M.QG/M_A$P,+2F8EIW/GEQDZ&;9/J]KZ_$'=8""D]AZ4_)(UFQHS=1#R&!$>I |
10172 |
M_G/1]7?^],/+_=[:_C`_8Z&TA`%S8M`2H9/AX5!\<E0*<I"EMW<4+ER\9E6O |
10173 |
M<CQA=4!^YK:B=L(%3OIX!;UXHB?T)PY0_H#G/!6-,B[@N>;/AYG,A]F?K>Y3 |
10174 |
M+,98O*/.C']Z4*C?1K,7;99>AY=;.E_#.N8,#<F5"L#:QX17TT$C?O6CJ_/E |
10175 |
M@7!@]HX(0]40P\6(='_4/O6I2TB+>VI(HD\``U(-5,U+F2&.M5JM?#(S_<IR |
10176 |
M9+INN^_I)">7C99M\SZ.38(R%GN$_>P.%O!#:+%%`M>?=[C#-/%_.T'33V"- |
10177 |
M<,2)!H9:,UY!`BU;R7*YVLZ]83(5$429![!9W.T$,N]0(9\,@IJD7;I(W]OQ |
10178 |
M3)[(J(R-(\+0"X`%)"$%.-3$0(#-"@>#ZNY\W(YGPD09/.65",_7^GB1!>7$ |
10179 |
M$69<Z?H_MH7WB5;EL9T(\\#$`[TF\T-4P`MM=AN[#N8H@0&QV\H=P(.@4W30 |
10180 |
MC7Y+AZ_]KRXGU'3-(4H[EX5R7^=A-JWVI8L407=U(;2\Q[V$=X[1H&Z9!8]V |
10181 |
MY=\HD\L!<5A]O!7ZJKJ.?TV_MZ>^N_G=D9(I&!2H$>$=N!7VGY=\WN`2[TV+ |
10182 |
ML^SK94C@>+&1#V"XZ";<<AL,%B:T6F;N(IQE3Z'6DXT,$<.(5H=6%J>ZU0HL |
10183 |
M8[9*X^LY6/WBELWAA*/TG6;LUH:'F[B5H-1;^$ZQ+_"K`/JFLG`LW%3=2#Y& |
10184 |
M)WK4YI)<`LX(,:L-E\*[(TXG@6\"'*O_B1"]:?M09D3$$1*]U];J=Y"!5AM) |
10185 |
MP]RZD529>O4R!+J$("=;.]71'EKI%XO0I2W#1D3JL.G<)Z<NP22#Z`.18`MG |
10186 |
MV(-3N`Y7J31IGK'/\,S\\GPWDX7>\/O0+TXJ(KM&9W+)$R&[%=VD[D"I(%`B |
10187 |
MP"N=$!\`QB'1"_7#`PC+2!Y4<_=<0OO+[SA1!6W^YYA%R?C-M`G_JT;`]EYH |
10188 |
M?:A8,3M8JE;!NBW)8,NVG<2IP-`"&REY4]CT89K-*&W7SQ#!0&7C9?`)LN/3 |
10189 |
M?G`>='_T*#CT#LW>+6N0J.I"F=[JY$\+X<2+;^OJ/U\@FX4'YW>YKI]=)7\4 |
10190 |
ME0,BTR[N-]_SS)N`U6?P=]>U938O$921[Q6'+P_^*S`[V.4ZM6.H#DI?-%/M |
10191 |
M!\*TE#Y7B^*'3.\)N.[EE^(*2-`2LYQ6&MYU44;:"'F;%CDMK<Y><`I$:^]\ |
10192 |
M(F'+!76[`:03&?^-[,;_:D1=?!GYOT$*'6,O+-')6WR(PX%0U(_*D#RBT\7D |
10193 |
MM-^'N-^70JTRLF"DN2ASZ<;8%X3X,+J-HS09I;+8^H&8Y6HXJTHA-1S`SK$I |
10194 |
MWKJ3`&?3(!-O(0PB/UZ')E=)3<Q$22P,]??41T1`26K6^]N!;O^@S0Y8HHVK |
10195 |
MEX1F\,W*N=YI.4P@F>N(H//=XECVJ]QIJ`!3<D0G%8X+P3U?IZ&BL_W\`<L_ |
10196 |
M)IU<1(?&/=^;`B(Z.OM;L!9?U0O!4A.2?V/EU*%=.0Z`S2#N<^HUY]+<A]:J |
10197 |
M-J:IA\0F[^RQY9H=SR!CWLG;VG@!NH-"L4@T*)5R7?+P%8$+M7<=^D^LPX;M |
10198 |
MZS\`+3:E\C71?+99>E;-&3_F6^/SHY`?OP`LF&#@"D/!:%"1EA")$HDTN;9U |
10199 |
M":UIY:'!W'`D`-4>G+V*_3]9P>SO_1'\S\H!QZ[U@P8.Y:]OT!/'P:58<_") |
10200 |
M2^S;(((]\$9W!E[$(6;$U=:EUB]0`2E8V94Q%62KU!(RKV-#(0D*;[OO%8/_ |
10201 |
MK9`PF.G>A2>T7V)*%N(`=18%,[<XY,5`-@,>0>+X'NPF2<-53.+P=(B,`OL0 |
10202 |
M3U6'UX'L<31V$IS)$>2RB`#=`S)D)#1Y/B^E==XYMD9Q>C0K`NX$HW-QD>ST |
10203 |
M_46/5,^OZ'3AS52JP>PBCI!R7E;4T6ISZ.AH(><&V'>WQ=T>0]=8MHZ9!R9* |
10204 |
M1U;U6=N85#X9-"1$K9==V^G2OIOKD>$4W04<L(5AR)8(Q_P[Z\0'\]-,R,W[ |
10205 |
M<:R&M:51+YO^O[,BG8GZJ9IW>*053G>>M6+CG*0IW5^37E)?3LRC=J+G&;`F |
10206 |
MJ^UD(J$LW8/>0#-6]4J0F7W_&!OAQ(KP?E`[NA9)*VQ\<C0\T]8!.G;U<U]` |
10207 |
MLU<$J,G+`#S1'>I_6\9K;WZ&KH,$IL!8VNO7Y;O=(@A1+2.G40G2*9T(>$'B |
10208 |
M<?V=#:LM,DI/0]'B!JU(/"V0YDORW/?JCMTE(]UTDNH&C-JDEUYS[.'6X-:6 |
10209 |
M_4ZW&=:4Q#H8?>DPT%X*$X1P;5@5"9V8!#2Q&*POH7O>]X2M--0/4%.W/R#A |
10210 |
MWPEO<];D*0M@55PE%](#FI/(O$2Q<PAB?)Z-Y8A"]S/UV%A'(OUA8`3+-;=( |
10211 |
M?Q/-!7-"WEK@1.`6L$W50=GMO/L?7@@6)84/XYR8EN/S"IV5V]]%6$G+OTX/ |
10212 |
MWJ0A@25_F;M[1_2W>EFVW@SNW"V)8^V(N`GA>[!7YF,W*MAJAX?'GHBX^&&6 |
10213 |
MU$F=26#-2/:8=HL%]5K/30HRAZC1P1U;K;.&TLVR,93-?H<`"OF9>ZX7EL]X |
10214 |
MI:/,4"7.%H-LOY[>_XOV:<>"L,.-C,;_0"I)XF32&4TIBE..)P-A".C6>%1. |
10215 |
MUW^O438M(_V-CNUA9I`3MSWE[T]"21U_*5*53M:-U[[.=*OA-]<.J3/=;*D: |
10216 |
M_ZJ.S=7A04F@<AN!4(+"_'VM*K9]#!;F9G@ZOS_P%_MSL*R3/V:VSG._"LR> |
10217 |
MGX>?<X34YD>BX3B:S/$P\$1BH\M^--,$:Q[\+8<3XK;'K.!7F/'*R-&QM+D[ |
10218 |
M-.D9A91L7ADH>!_`B`++4"C5VZ"#32W(EJ/T:QR%LFSGFZ2[WIX)].<*)PU7 |
10219 |
MA/5QJC[SH3(;%RUSO8.0?[BTS<`CH]?:3S\().O$=3GVJWU`(:[+_6S)30^K |
10220 |
M+IV=.WA2T]-,MZG)F)3#^.GT5H@T2[B(7D<9_*:9?QR+?OA0M0</A)<U%?!X |
10221 |
M$[?S7/"_PGGT8&;$TC*^ZI+_O.)/`M74_AE*AM$DLC-61_@-.0\N&"S)32O> |
10222 |
M'$2-RX%.BP$*/1-2$3#)/6]:]'FU'[)Y%Q)@'V"B8TZTJD.B#,Y)DC!)\>1P |
10223 |
M:P,-(1Q3^CYNW<_6O;@K>1>X,G=L\7VG?&XDU##ZL;(82032OI9`X[C.O+^8 |
10224 |
MW1MCS/&B]JVOB4.>X$BH<#"RCD12#"-<B@1_/A;[*8.MB.'"4Q;(#AS"TBP8 |
10225 |
MZN?8[WDJJ;NAA:KWS=\UKT"L-M*2'BJZP5W4S4QZSC%K+D&JYH7$B&EZ=ZV) |
10226 |
MFJ]&YVH7""^V*KI>-*:]*KQ!VXNCYG0*VQW]97H.?QN(Z-5"+/59J2>_E#A= |
10227 |
M3()D=H13*:1LVV*W51^9X]?$N275CE,'<0M)GXAPT07'AAQGQE6C2Q-I$6%= |
10228 |
MIVRFHQ$^`L'_P0MNKK0!$8<'6F=-,4"@@F<AH4R3&W47*8%U(E%4FN"$-JN4 |
10229 |
M'MWXW[]A?RM?N&KS<[]SMY=6Q4L;.($WLCD/PW1!>;FQ&P+Q407#OA$WASWF |
10230 |
MB0@TQ.Q7,["DN\-#6`=GB%[B8&3D-/G,#G.N>[CV>%\0-,VXO*;]9WJ(2X%* |
10231 |
M]AGW/R\$+7GF,X)25+^`5N!Q&H6?Y5Z1Z$`GDIE]MR>RL#6_DW^X/'U<7U3' |
10232 |
M8NNEJ^L4M*1`,PMTGD*#[-FBK(3H$[<\=B_81.G8E:I7"HH7-3`O>-3IM5D3 |
10233 |
MPG_==$+&4(SG1`XO,7<$0=!Z(9X?/8?R\4VS#5\QI3UMGFY'=A^6+6J_4+/M |
10234 |
MJ+-KX!5TR0?*5%'#@7#0X(H08*JZHZ-T!+^+Q,PFV]E75EQGS@M),Q+[I,SO |
10235 |
M#=>@U$2:!2"._Y<N:OG?JJV1-O5W[!TH<<Y3&463^G0+H"ZA0-3KZ!B>++=H |
10236 |
MVO*O8/8#"O@R\Z^Z)6?#_2<5%=+Z6K8EEMNI[1)U8>8!NFXV.^.VQ.6#C'9X |
10237 |
MM,2D$S[GD*7EYXV"8^WUWB)!JKT@A!2B"2;2!1#*XH^Y3"'>2*Z)P(_T)5<? |
10238 |
MMO,\G@!5Q):)T"CXD[0\*Z]`A`6^>!S_['LI`"39;YWE3CVBFQ<^0.)N,5XY |
10239 |
M_VM$?6&,F0?:>F\*4Z)2Q(9P!`S#I*J&<JT#`(V)TKK#4+?R'T.4MA/1`2<I |
10240 |
M05HRY!^QE=97Z$CWHB,]_HKQBS>*79FEG^/KJA2''`>T6"ATON?I7YJJ+3M" |
10241 |
MNFXS&:7O=RNIM9@/&@FXKE$5G_R+O$:3Z=F1^ALHX!.&*$:+N/-:;M751NZ! |
10242 |
M;X;I?=;J`J8IN;H`\*YE>;![H9&,:6I_11#8,0W`9BVYC!D6$H*<F[$7Q+-2 |
10243 |
M@0RVY*[&A?.CWIPQ$67^N:/Z-`"IT1V5,;E;T@*I:GF($0D8H`P4*=G01'Q) |
10244 |
MWV/'A,]BN\K.F0?W5&&\)-E<V*%MI6WWB(W'(9#Z]YAB"6RK\ZYVJ[I-:RS% |
10245 |
MS<Q7?>8/"T<W]_LV2O:%7[[]Z"N%#J,ZY%.7@EJATO/3*FG]8"=4P!^A!3.7 |
10246 |
M8&4\63T\TBT)UY@6B2O1I<L.(:%(I"[E(%[>.];<X)X6[RZ&*W,E]?C]$+ZX |
10247 |
MJ,E(-\6#)&WQFXW_!$ST=NLZ.ULYB+DE4:=2)!Y55($862F,B],Q^;NAO@;C |
10248 |
M^64^VH^W(#Z-W\WF\Q[X=33T/"OY_[3WCD^6-%^T\&E[&M/6G+9M6].V;=NV |
10249 |
M;=NVW=.<MFU,3]L^=Y[?&_%^N__!K4\5&14[(RHR=ZVU:Z]</@];U/*L*6## |
10250 |
M4?D?YMW\O[Y?8A`18:ZE<RW"PPP'*DN:?5==VRK8%DR`>?JYNB@-7JPG6PR[ |
10251 |
M5F'5(WR2&U(;>&.>NYG^7R-)W!`CBC1Y;0?P$M3?V3!';MG45DZ''N<@B%^I |
10252 |
M0''K<7&+!7]$%?I@*:68/NL1"SZ*RGC,A=ABD@;5,`&I@8!%BN+7*("333YH |
10253 |
M8C*O'X%V]0N/<YI66P`]`CHZQ[:%[#B&N9MN"5[\'8H=%&G[,4SD,@J10[T# |
10254 |
MJNF,SO62[N#CA,UAL`"9KTHS,28_K4;:;)0L:=!'1<-E3`4,O73WO)U:2STC |
10255 |
M1!U.(J)8#41B;Z^"1ZB=N8(M5<6\)$`&V[BFOOPRAET!DT(>NSS^\IODF-T1 |
10256 |
M^_&@EN;S[+9EB^NX^]NX">J^6Y(5!W&63X93(:K9[M`(;>*;#3]T/QFO.QG! |
10257 |
MQU9UH2=64)_JB#3_X>!PRW$,HV+U3X:[A'L[JE_QEKU3"4FU-EAZYWN;7UNR |
10258 |
MV"UL^OZ*;DX2=-#>WYLBEBG^V(K8R"6C-29+UXR"P]&B!1UH^)[=>Z)=]O_' |
10259 |
M;:+^(?`84Z[0T(703Y#]EHAT,KM?C9E-_;:>-RP7I(PDK6;\?(R?UE'NAFRQ |
10260 |
MRCH_(?>%`;V)R-P!CKU`4P;%V)FUW6SC>X4[_&G;S\_":IB/6`=K\GQ/XN_. |
10261 |
M(0<L'KX7V?WZR+V[;0W;;K)FM&Y9Z)^Z"W^(;Q]Z1?E$A`:8_P#0?<7[P#L\ |
10262 |
M/][@9B$=B)`@39`T`;PQW;]TU)U="!,!I`B\?*@1587:<=]\?`2[`BK`@+'Y |
10263 |
ME(=6<R+J.H0LKAET]M1_"+`.'/A3<F"DM+&^5QT.$.-:8&.N[\==Q=VGYN3= |
10264 |
MTRA-"NPJ%AK9"3MG\6++^+JZ4]*BF$A>P=<@G8F?9?_4.J!CR'8/T;@CMFGN |
10265 |
ML:S\?3?5>[%INJ7C%3W('3O:`\T9>=M$/%<>(7T<4[/XVX)4C6U/4<UN4KW3 |
10266 |
M?8DB$YOH+?85.J!FC%/,2URM\DV`+5'@_Z?BPOAK")^@>ION9@C:(\6IN.&K |
10267 |
MA[6\#@?#H"2-M"/&#QAAOV/GS3WQDE8((*>01Z&@AY):G/:#GFS9@@SS7$Y, |
10268 |
MH$GQ8ISHF9/Y;EL]XELZ*.C4L2/6_=9V^^SK->.'OC7Z!'?%466)I6&`SSL) |
10269 |
M/?T\<\GM:`1Q+^S-,MTN_X&FVRD"Z5_S(%3*/"X16]R7C2$R7B4X(._SKZ(` |
10270 |
MTS8#YC#EBFV*:</X^_'96R`T3(4N_N,&ZU]X8@P]R5L_3U9$H,.8BT%!O4@, |
10271 |
MTAST8.&1NF.2:!6[8UG4MLO/9H4U59_D2`6_/V<VKXE0^#\M(E9W)`,&]=MT |
10272 |
M=DV."4C3<Y]K]\WZYM5#6O#CHDBG+G)5V7'GMO5NH&G+,20P-'FO'0"P'EN% |
10273 |
MY?(_OS>J?<ZD>T:6';5^0:<,JV;2N%R!(=9`75B8I5*.LH(P@`+_0#A=-](_ |
10274 |
M$-X4!+D60/`$RN^0GF?7.U@5G11G+N![1`&N:B1::+$^L@?AL]/>R9MS'*VQ |
10275 |
M1I`':12@8=N[%3/C$';JT2UI7[5("#'+M+3:B*)?4LM#-JPED09O7E)84V?7 |
10276 |
M6>=<KXXY]8^:[KK]NA/.K.8@F>7(W,OC]P^%+$?-J(?B!H:U86O:[S:E6Y"= |
10277 |
M/0L/@V$S'2T@$E&+HV./,59=OVIW]Z,D#H"G7$2&8<XG&>GRGW;X_!9%AIZF |
10278 |
MQK7J@>*EN8RM8**TQ4;E%4%Y'_=+11QGJJ2`;7,XG^$$'H,O,Y,RHW\-OH'_ |
10279 |
M-))&^Q5O^C'\.$N)IN4]"^G%*?!Y$%_5MPQ?WKVE<A-F''O,FRA.SU#N2%"\ |
10280 |
MY6"G,BO.UQN_.Z/=(NZJ&G">;L\L!Z<IX_V#])3_J,4ETI@O9=PFI>HEU@-L |
10281 |
MGF(7FYOQKC\/.`QU;!O]1P",LSMM&]80".WITI[Z!M+78H>#J[R$LV@_'B(^ |
10282 |
M!E>B-V%FV'3>#LZI?,JM,4[XJ/./#M:UX@!_M<"Y%"%2G5%&<O[^$)!#7<SX |
10283 |
M#%:8$9>_"G?O`2R'A>*2>:(2$)ZD,JM)4F?@]U;RB[/OR#`D??[Q(R$E_.68 |
10284 |
M1KCF)W8W>EZ._?.UQ@K4)KWS;.)6'*&4LD7KM6R5;U.<P3:L)HH25XB*W:"L |
10285 |
M_*'DCWRF,>T*)@_L`A&5]0W%F1:4ZL<_H@\7F9<</X+HB'\T8DTR"K-1!G_' |
10286 |
MNQE9XNZ%-==1C7Z..:`V$<=GX*MW(+.AS-+(^T@P.#[2S4B,:6IL5L0"IWK; |
10287 |
MEVI#^`R>]UQK$RC.*@>YJ+]%SY_C`+T+6V6S,N-0)/(H][N2W&L35R':V=A9 |
10288 |
M,X'POLE1RC=E&GCN2<\.)T(UQ#?4^^]/]S3_E8<AB&!'`(Y\+Z!=*U$#MPV< |
10289 |
M>5]\=LWO!Q,9*">Z&_F1AZ3CV>-1'(CRJ2KE9<@<)Y%$:)[@N(H745-NN9`K |
10290 |
M(MA.=V4A=-C2D$R%]`85[R;00?:L;F=V%UY&[C-J5C0)3'/<C65RGV"%W:,F |
10291 |
M101$UD*YRXPG/:0M)O&FIK4`7OXB+C-L(@&O51<I:Y1I>&G9(6]%4L%F5CC; |
10292 |
M2?1HKW==OO>RRJ6VFF9<"7HKRM3F!!B@WD@L3E),1?+*A-55=;><9]>RG20= |
10293 |
M&(_TT+?XZ[DU)1(R<N$5)=JOXF3%T"/T$2KF0*.6[`LCM(W5\P9##'XSBAI, |
10294 |
M;7C/\_6`2&7X&:T#W$=>'4</4#KE'9(I^I$Q-'M1A`X:@F/,+2J,YJG*Z6T< |
10295 |
M"78G*TE6ODF"Y3X:A"S%1W2.E<43IG<R:C>.WXO1=(Q3M3;((^_?]G;]3Q&@ |
10296 |
M,,C]"1)PF]'B_O9FVD0F_;0W)>.C&4B([ZX/,;*WF'!V,KAHE[2U?+FAZXB" |
10297 |
MG*#X>25W.,-&2?X<*6F'S&CX`]\%Q=F+;>U;G+5#<^X_;$8GZ.\]KUP=L;.N |
10298 |
M]@D&P'=:9EHG_/G)\FB".ZL*.#=>B:GAY"TY7E/2P&?0@63RZ$4I?"]1!<(O |
10299 |
M;11*,!>S)?^6TY+N-Z<L<];$<.=]:;WR"2&(^HL_+(X;J&.TC:[%JG!3$C,M |
10300 |
M4_.M((J\&7`F+BB'.LB?YY&*+EV!"T;*'TB2/C5]9?'7+#]T4:54=1T%!NL6 |
10301 |
M6X%="#=\HIP-*)=$WF*UQR<T7T1+@8$0JL97@:AK\K57DWPM\JA_,;W)VN=; |
10302 |
M[U0<5OL8]XK04:<$\N$)Z#6T'I%,N&E^['`P(M=>F5RJKQ5[/[E6?-,&+/Q_ |
10303 |
MYI.*\+"%GZ#:F"23UF1A+@?<=`(AK452.9M^\P0[V36880[=YF4UK&Z:A!C, |
10304 |
M6A>"N?*!&[*CU*Z`0;'QMX'V,,#;4'Z#9'%[6-5N!@,3Q_%"(=*[@P7?>8"C |
10305 |
MO#8D^8^&;*$AZ*OBFETB<-$]LQ&Y5PU1:[R4,OLZ*'UN"M:E`)A$L8N1-M^A |
10306 |
MP'0,I146YI^?7;H_^<YS%HJ>`2G=-HN*TM5-?F:5FA*%Q]TV?G0=8:B$0E>, |
10307 |
MV(E&JM#]YDO"94AQ\%)V#Y#GD(TUQ=H>3K&1HKRQ=LF#^VW?5M"0B0P)R<O; |
10308 |
MY4H<3=(BH9<EU,$'];21//LV\3P@(7>NAQR(RM)S@PMS\XM[Q8;YAG&\W*Q_ |
10309 |
M^CKPDH/YS:+]_3:U9VTE!=`GQDLK^^%8+;##NC5'==/$=NN/^K?&://)66#U |
10310 |
M]?3U/[4P&1-BD*##PM)[?ELI/[PD"HNLOU-@##>N@:9;??2#\A@6<14*L;C* |
10311 |
MQM6@G`<N`"JV&\H,>=O-M!K)8NHXT*KIP(?_FW4E56#"M;.U/'6"M%0FRVJN |
10312 |
MP)T:?#<\;W0E$N@/U#8@5%3?Y]G$+%=4M\0VZ(=#",ID74K+#VQ,1]-#[J!B |
10313 |
ML$M/$CTT52L523H6KBGI()SE,?[?3B'VO^)%6_H0NW^M\?<)O@\E+/XX&HYK |
10314 |
MQC$SD]/DDQ0LI%E%GH;"L15;UE14J91:1$FYT9P*6(8AT1"/X.*9VMOHM@M* |
10315 |
M3BI'@.TG&6_ZSLLA;:`X%E*MVR531/9=G/#D&!V?QU&PRSW#X9:)R^/H()GR |
10316 |
M3W-2!V?BSFF6SW]RV%24,$.-9*6SQ-#05!!(`'JC3*KA@A<_CA!">>RDSGQ5 |
10317 |
MR>2/1[$#@OX#AY4F_].]>2,600J.RVFV%D-12HB6*=3=)$R76=GW,?G7X"@' |
10318 |
MLPPAW^`&2>;FW5J$G1E6:#I42&#X=PB4(5%<:7F47YY[2:F.H::^R"%1_$QK |
10319 |
MH03)6TN9@@&;^B?*&5N9#:&>2#-U#>0#^I##<VVH7B7TO;R^70)VE2<M[>9- |
10320 |
MG0V_S@(_D4<BD%*U?*+"Q;OE?F'"&;+RLL0V363\F:^*6>'!,YI">IIRR*A_ |
10321 |
M:;I37^<39U98&'*3&HF?F+)F7=41:_\%I70CP8^0+XN`X9_X#H.H?HT]?\!G |
10322 |
MM7N1:VK\Z/N=H;JL);Y6,*;VF@J.F8N`:C<=BJ9@NN)R2N!_.W"&#,80&[HH |
10323 |
M,AD3;JWI&'(+I!<A)K8Q8F+S++)<XQ589S66?]MC%N`C8-E."WKF=^W;!_3# |
10324 |
MX+&*&[+8:;[+)A<YZR79//FU#VXSSMS&)-`21/>?X-OQ_N(I9UPB=#$Q1D]: |
10325 |
MNM@+Y\'_/G3+V'3GM"_(##9$!3]?5T'!8)RF]YZH4JT=5$?]].E1*>OQ>1(! |
10326 |
MQ-F)S*^7",Q*2;\31EU)\HW=I5`%@!=!-K[6QV=.$04'7,5AA@KQVDC9*G8/ |
10327 |
M./BBL[;!8URBZ4NT(+PDF6PA]AO6NX]6V:7S#1V)6BCO\G6B,7ZV6VR\E0P) |
10328 |
MJM<,D#1]#>-)/K9P&W\BMUG\L840D3UX%4*_VY^Q[=.14(LX.S:A_X-D:7B5 |
10329 |
M4YJS@_X%^6\9.?Y;1A8Y:JD:&IF=8,\"&!#"Z.5,G@SD4F38*+V"RFQQQN^^ |
10330 |
M?=#CGUU7*RJH98Z"6:-V)"@P.RVNG6_R^?Q.]3SKU"R<2DXO,3W[ZP=%<)^B |
10331 |
MY\Q?XC88,69IQI)3L@^>"+CJE-C0X[!P':1G"K(NP@[U)9%X4^/9*%>$+4YP |
10332 |
M'$(+8-6HSVF/>37HE]GXHH^)#SY<C6B&[^I-YH%="FY$?(*2;]&B4J%0X;AZ |
10333 |
M?.^B'@C!P6H".,7!S'C2#G7J1`!Z;7%R!R8.:0@8+N'YQ'L+>$L2Q)_<:D0N |
10334 |
M*&0H@TERCJ6T9V7\72UYKR8-(0GZM!!9/7$7?"OW>&8'[+"=,XR43+C![NW" |
10335 |
M]^A$54,]EH?%@2M@K8&,8:!TBA4KQ)ND+'.:3(YN-\QYG&48Q=8+"E4OV:_[ |
10336 |
MGG^O32L)!=J04N'/2K0G6OW19+8'S/7^J"/T*^2$]$!;G)V.B\&RK(A(TO.K |
10337 |
MER!A>\.%_N$UR_1WX,E'A$])LN35\X@M:,MO8F)3S6OT`9UFP:@NX^O)*#K8 |
10338 |
M0(1-R"&"L`XJB?VR'/^:+%6!;Y;84WS@/B`-%S@O)D7+OYG/'5QOEEE>H5$? |
10339 |
M<C*/#:MVJT+Y#^\&5>G,J'/G?9/<UK&;T_*U+1PN^?(YH[DU[?=E!85-9QAF |
10340 |
MGH6)IRHDI](,_ZW;`QI<K\@8BWS*Z9)U"UK4)5>7>)?%"9?86`AM!&4J[9>) |
10341 |
M_50G>-R'^=W[51>O!B@F$U^.ZU*BS3,5#+)NQER;$W4NN3SBGG2V(S2H^,W" |
10342 |
M@N82^K*HC@%*>`GJXQ7QV4#@Z_*C%6+$DR?TQ@X=-9ELSEC+0RF*9/IR%=3[ |
10343 |
MAR?(N>!'&-&G10%PE?&C4ISH,!=BTKI0F=0OFU*R5B-%6!$$2HI.-J>;H%ZD |
10344 |
MA-WKL9/)U5RZ37>YUE[4\I-D90Z.:ZNOJ^ESOWTSMLJQ8#L4G+R?Y0-?:DJX |
10345 |
MBN^(A/E<EE^ZFXP`KU(`B?([2RO*DEQZ?=9AO+2G0B6DU5`P^.;6[0$`00:3 |
10346 |
M,MBI9TWFT;WH=.(I8/Z`%-H\$.+H3T\D-EZA$T4N/>$?DZ[M^M3'3;,6G?>X |
10347 |
MFO.,O]SY9<(&0QV_`Y4R3[%@B9-#Q^C\N>F,P#35:B"S2:L'R2=W8D;=,77N |
10348 |
M=-KH_4ML"(CO6<.R]@GL^D!)H2GK8&:AW]9PYR]5[^*#;N6P-!^8>ZE*N2U2 |
10349 |
M#ULW(W`+4;7-`B(YZDU0,/VUGBB9\SEJL=.V=POVGQW"=1//N((#,)Q+`+<Z |
10350 |
M,R>2Y01EQ*,50PI+G*)L_*/^4./2_P!&VR]#%&B*&?151XYO3R#_`WZ;RZCF |
10351 |
M9>FBY:>]48.4H)=!3#:&+%[YG2;@@=)M8JI_ADLSM1Y16BA]*J2#U#M-7_JK |
10352 |
M5H<W.LR-)(Q_?/AI`V6?E(?5-A:]A_@QK%*=OC9\<?UA`C[%VIB[#:R71IR` |
10353 |
MC>K8B!HD%62>V+'>PHUP"Z0P$;>R>2\*5<,G[+8CYI.HJ2]L\ES&H&@<N7O3 |
10354 |
MOHO;[?O"V.VYZN&QRFT3J@I5AJP+A=H!A!1T<]'R@!`,7WMN&UU$@T+IO`Z4 |
10355 |
M:(")\QUC<3A%O9V@7VA2W!CR%M:4.RZ0P9J(ECYZ8C`Y9D.F\A?8[U%7K6CM |
10356 |
M3+H8]^R0%^KAJ_Z=_N-J+<W0K*"FG0_CJIPA:)97W3:@=]EXE*"M9$W0=&SI |
10357 |
M7:-E#\&Y'FH"?,34\=Z(%J^'^'6GX+S'/2/BH@3XW3^ZH+ZH3(0(Z:[]$\(H |
10358 |
M!D9>[Q_8G4XOQZ9,65FW^X%2/#HB$N]0D&EJ+F#F=P),_RZ80V715ZHUH:T+ |
10359 |
M4T5:'X>(<H^EGFP_VYBB_-N:.!(G-E>/(WPQY%F#U48WW!XW0<Z\66MQ1"F' |
10360 |
M<KJ6^J,KV2T`2Y072;+''#+16FL5%9$4")SV<<Y-*L-68E*4=Y?>[$[`C$J& |
10361 |
M44Z?]\(J_4O+PL<":'E"YG]ZMB4DY/'S\Z3VJCB/M;#"-7ULJKA+[+E48T4Z |
10362 |
M7!A/YB`P8$HXY4EX()00/(A^LLE%6+6=ZEE(H@@P+DH0L!CM#J9M_.N6^D:! |
10363 |
M=ME6]F:C^S-I4#69>JX)<TX2H9\Z+]R%DZI1(J"@J,+_SM*$OUX\?Q.COX;M |
10364 |
MP])B^6*XY[5")GGFMP;=KK+K"#N&E!*0<0,V$5VYM[E=Q+/P9V)5-7T?$PEL |
10365 |
MH\3:GPHH25%/<<SJNY#H'YE#&/X)4\*'FR#`'=5_G&P3B`BY*A]3+3D-\C>F |
10366 |
M8;/20L=?S&W4'2]46B8FHM=AC%D?N_@=#WCMN6C,_ML"^>E18E;(07`H@`TF |
10367 |
M8K/6LIT`>M&?A(H5&]X5<??M[L$$W2HE$0O85)3(M5KP[Q?TC>E>7R"DS&?F |
10368 |
MO/D"=^=MH)D%</WTJG-G"VNNG:JC0S!\\H19B1-K<8G37KGJJ,9VT'O4&\(Q |
10369 |
M@!F5E-`0MD+7B@Z"<,SY:-B]<03VQC13]1\REA)MKO5;XF-7;!XU$DOI'.ND |
10370 |
MS;X+]Z03E`HV*UA9L`4D@I-E^X)0C,*+%63RC_2RJ\T7WU",NH?3\%0%63:J |
10371 |
M:WX[;10QLPR*1H:/"9OXAW@2D-,7RD*G2E/*=>F9O,IG[U'&<`-6'ESP0H\S |
10372 |
MQIUE-EK/<RYC)^RKDBSE]RV/X-)&%,[QB2R:*2`:>H*,W#235I7KUR*,<C7> |
10373 |
M.#AT.7Z/Z'#,^ZBDM3\VKCV$'_Z7"VS&A+"A3QS0%.)!H`7^%)1Z<S0EK<J% |
10374 |
M.DRJ`S@4X(]&/I9^<!DP&7D,\K@P,(R,WRS'A#LO6C!2FJZ7P3:OV1+@N,@A |
10375 |
M,"+(C,+ELPLT-4&RS>GD7:Y0Y<HWE5PHZO,<5^7C(ZPWF-EBQ5I73;;(8HXK |
10376 |
MPO%OZ7HAKWZ!3BI%&O)-)O12B\3+Z@!D]S,?%Z1DG=_;PLZ0?-PSQGN=HLC4 |
10377 |
MFENH.9*8:Z[@4GBU?DI/Q>5@0>=HT3CCD_F9E[1FO#*K&=77=L'$>#3LX_UT |
10378 |
M-9FF`NY_D'A/UI6KM\8<5*P=X#ICN(B_S?6A;<IB9(D62:%,8]VW9O8(?M,Q |
10379 |
MW(/3_H=&B;-##7$CN#\/%48[/0HNS\1C^J*NH=903'Y[QMKU(KI6%GZ?\([I |
10380 |
M0QEG.ZEZ:P-E0`^UR[-&L>EM4V-%S]$HT_D(1$5]\[`K9=49(_X\_5];Y)KK |
10381 |
M/WB$1'=Y./`%4BZ_%3;G@7+U2J>X9'7$(ZY<Y&P$]2N>/7#2)&)7O%(7E!`) |
10382 |
MK9DMBC$35,IG)_AZO;$X\[*<BS#*.GA/3@I"$A*'!Y-._0J6!-+%5>@7VTO` |
10383 |
M8E-*O527H?)H>3^M[@02OW+FBQ97M(DTT)++.W1H?5963F85EMM>YO)[%_+2 |
10384 |
M;TX,F=RR1,32FT-T;2XLFNS[1M1TT=!W\&+S%1>4VK`.AQTE;I<8*GHJF)BJ |
10385 |
MU2%I^6IXQB%73I]!?@M-E\[A%E0QOJ6^[V)M;G9^^&1D/F[Q'',N.L#\,JUJ |
10386 |
M=<B&/%,'Y*5(@M_5\^P\#XHJ:N+R![)[@]9K;RQ^9(?DOY^_#9D[:-`K9>\W |
10387 |
M2K(U+PRRDT3<I^$:5-=&I"Z08H]G,N#Q/YHE:WW.]2D]6YT91XYU0).G^W4; |
10388 |
MW#+/$*>%RT(0FX\`I88@GMNQ/8V".LV>MOI/77;^*QU.(04SHN"LKDF]@T"9 |
10389 |
MTMFX"JTTL!Y>?V18DAWI.T=L2#7?7U@$L;>GOC:^8<(H//CQI+.*;;.RADN) |
10390 |
M8H5)[R'&3"J7IZ_/%,>7UH2GO%"%KOM'L'FL//Y-)!`E\47B6(X3)?6^3X6, |
10391 |
M'ISEKP]7A0TX*L1><^:S#CG!EQ_=,TB2+V]9ATO*8`\=KR@3ZW</K>W/F;T: |
10392 |
MAKI2QC/'BE6H6=1'I19.CWF"Y3+[T4ZD')6LN$Z8NHJV=+]Z&Y'<G+.D)G3N |
10393 |
MX3[:S+YB#R)4+YMB3''F`FH+5&//'P\1F>G0"*O4)HN`!9H_F]6J-8$<56*[ |
10394 |
M"[\(]HM^SC9DI'1'(MR+E!UO,=!%Z)`ZGD=C=K]].IX,C_)]TP#K1DI\?D"U |
10395 |
M6WDGW(P%@@7@[^H*,9KFHB.+X=9%MMY6F0!$<\'VI`<YU+[9S/)Q%W_FR?9] |
10396 |
M+_L8!O7X_<.EO]V^AP52GM/)%:I<@OS-?J#`CU[EX.#!D);\A$6*'Y=RX)W2 |
10397 |
M7?"WAA);#A-#(+F<:^D48KR%&(T[][0,9K\DC.&T5M]1N*M@((<,B6"SW8F( |
10398 |
M+/6*MM\K18E?GU%-Q(&J>[FVY6CLF5J3[,*P]BX*5<I'R3`KNY">)YZH(#76 |
10399 |
MPJ[-N_N;E7O$7Z=7%&SE>DLV)Q*4ZMK+;*FN8;LW;*'7%T7J5]CJN]BR'$?% |
10400 |
M,CQ$Y#J2G_OW82NY"!P#3#V<\1)F@*SX15B&T;B1P[EW.GS[<P_&0E$B0G:9 |
10401 |
M0N@;Z<9Z2(W!_N\"FG9:I5$"I?'\^7H*+J;CI8@FJ0-4N[X/N]&^WN],T$H\ |
10402 |
MO/?'^NV=,L,R*V=(Q",YX39!6)9I+7>4V0=_#[4/QG)-BAV22C*V:C9I":>Y |
10403 |
MMO&_/86&$'"K\QCK:B;&B%^B-^3'9;?^]M;N.<>W7%OH;Y?^CR9IN:&'&1H< |
10404 |
MEB!3&Y!]@6C4O0M(R7A8['YV$CE&=!14H:T9CQUFQH./9,7B0HP$`-\O!TM& |
10405 |
MD_Q[BZ#@W87Y,-5IK4>RJ:MU,BGI8]MX:9\E"M`I*?(@"382D$XU)!\32IU= |
10406 |
MZ4C9+UBG=?S(#&ZO;.-DOBUY3KJ0G;VG@4)X>W920YWP<UR7#E\_(PF#;B,) |
10407 |
M2_)F/+Q3-`]HXBJU39H38KLB/.AHXO%;/S5SQAKN',C<6VFK:M?.M,NLX679 |
10408 |
M+J`MIF-2=CKAT2#SI(9X+R;#=DK,S=_5D&-.,%WQ@9X&-T82V*0_S%)(X,HE |
10409 |
MGHZD)`71>7Z6_1P+25B,$3Y*LND:9=2YF0)P#6D`FI,^SE>0)JP6^;9"2JP^ |
10410 |
MCU:H\9]"SNT6:_L0SIA(*+&!`O>UW0?)$4-W"Q2-<J!GSPOK_C/?B8GPD5CH |
10411 |
M187H.$".>XJ,?MH"W<5F2^_?2"DP:_IWTD[M=WK!K_\J&FYX(84:PI+0*J&? |
10412 |
M('VWY*ZD8^9-J3]M?3)9U*+Z%2IHIUL^<2#HA,&GO2DJ2:,N)3!NP$*3R]'P |
10413 |
MK[PP_#@K>[M#D<M3)/^CZ0Z/4EQTW8QQN+]MCY*D<.9.NCX#3'V:%TI,MWNJ |
10414 |
M1A#;+D86Y^-?>7^)8+;)"O692Y.YMDHV/"I_8EVG'RS">$\AF9^84;?#B![< |
10415 |
MGQPVA;;4$#'4%\H0J?S\+*FF[OZ)K3`*!,.S!=L8,/V3KB*G(+0'!BC=$D51 |
10416 |
M#54$%Z_<75!Y&MWP^C-65[OJ+->+0I[P`Y/4G:/&I[B`D^_OVS+E@9*OL7#Z |
10417 |
MJVL2#9_?U.$VU,XMKZ9>GA7"!0S18J#8-MR*,7>\F9X$28",6$MZC)BTTZX6 |
10418 |
MA4&O?%O;4Z:\NG]CVW0QN+RUX3*T]9XP5*#!$X4SO+E&K"I`TU#(8WX:39#; |
10419 |
M.[NXX`K@2?R+\+UNBNE!=@8B//7VS`W?HN-0Y/QWP#6RVZX\UE07J-&S_S_S |
10420 |
M)RV2D$`#HQBI^D=.R@<0:)!?I_!'%C8/BU0=X4,A,@:DONA<S/KZ^O;K=T$[ |
10421 |
MVZ(F+T>ET+]_-FDGMB9'MV;S2]E>$E[HK]>EML4'DE<N%I,`2=.M&G@M:#2, |
10422 |
M%W=PYF$1Y.ENX[@*MZ[332`T2?Y8?=MC+I%%\@%QM#Y9HG:-NO>76ZV/MS;9 |
10423 |
MF*EC=_[.@V#I<JZC5ZZR5[*2Q5]89;R64XSLS8I@W,C48Y*00LL_!J3.Z,;1 |
10424 |
M9>N.@JM3>W6;W,^XOA0=]A#ICD^ZKPPIX,*?]A8=?U\\_JUSC#C<]Z/^DWK1 |
10425 |
MS&*AB@S+`]O(/ZK$+%))99\]EGW[#L!DLUOC0M';3WZQP)"#`A#GP`1O0ZS" |
10426 |
M>I_M$LJTRE@HT[#I5'-Q?/*C;>,Z[UZY+>:I>,HDQ1,$9_9C%WE&-7,)Z+B@ |
10427 |
MX4/">8Z3>$@^4)@V0Z*T7:]!"'XK#HN+/[T:;*B!""'=V12SED_M_F@G[CG/ |
10428 |
M6M/5OO='USEXP0QHL5ZWQ88,FMH(:,0MCZSZ`#$\+8A""[N[-5JK<JE8D9;D |
10429 |
MW#7PO6<8A@N`08XB&$#_[JF]%K?UQB\_[)[!W7C0GK\@\A4%VT6W3LON2@/N |
10430 |
M89NN._"?2/*I"G1O-=$L6HX3_51#28C1>909X#&_7X62+$B:"M]FZO^6Z.O* |
10431 |
MB7P$5QPZ9OX8G\>G(B@JE3IZYP9W_)"X<IPUZ90]Z?.D9.>(,+BEL^ZS9-`A |
10432 |
MW)@)!:QAV'><TO\I@4P.,CM"U:()&^2S;;$N=R7S"3??BRS*5GT6I()7C/;> |
10433 |
M6T,_-";HK\8'"@D&W/@%!?#W:/I%/'C0*F))`X@S18S@TH[,=WU:Z\79T*#P |
10434 |
M)^9=P#B/0/F#.FQ!ZK<)>^O6,+64OCHQPFH77#LU+F]Y1"8X&\@BW-\Z,W'C |
10435 |
M8-(Q\`\I`2EZ]+)G7)A>\NJ7/`#$`/#/<<8'Z^,W5P/;HK>V;/V:$R'(-ML7 |
10436 |
M`8!A:W@5CVO-[Q\$X\%/0ZS[^?7V8!;=;5O0AD"+F-C"PB@MJN=^DPUR:#>> |
10437 |
M9G;HXVJ!8_#Q/=_9WU^=T:;B2I;%Q`L9]`S?!DJ,:CEF4TZ]D211$X<MBD!! |
10438 |
M@8A;`Z1MTG-/<+B-8Y\.N8S>+_PP-`7>8E[`X3VGF&JZ.5Z\2%Y#4G>6)+D\ |
10439 |
MO#X!R]WS>]V#NST_5.K:=Z30CID?AV]^TJ]>V6FOSEL6^!7:"MD=35Y9ST2J |
10440 |
M\]Q$K+I1%Z9%/BA&!^G.KX6Y5+E[VZG<TF'UQ,(6#S?FO@F`U=PMD]'!3)CP |
10441 |
MH/D3PD;=$.A23AS):"`G/T\(TNPR1@+)(AU&3HKMEBL<Y0(*5YK0!UK*XD9% |
10442 |
M;ZT.CH]$[D&(9.#[GX6:E<9SA@@7DID)`06):&CP[5P=,OT+'OAN[GR@F=4J |
10443 |
M?%W(-H22L<'@0HOAD0<>A7NFF>BW$A7&!"Y=NF6C#55)C59;ZZ3?3E7-<K`W |
10444 |
MN1)Z\U/=`SN#--R,I@PC3?Z^?O\R^,\DO####$J&I/222]#N^FU,;2F@E=.6 |
10445 |
M(==RIG.-&3((X<4\(&5^G@?*L_R\Q*NO"ADSHYA1A!<\Q5[X)IE`<FB?CV=> |
10446 |
M>?;7D3P2=DOXRMF*?,Z85'8^4_FZM,XS5UQU[$QYUP,^$#6(E%IRR!#8?YCP |
10447 |
M;=C&?P&!ZBR,QM`U5T1^LUL`+.$OG(/-#WKZ>"XPSO69(CO^!3O'L@YR[J'@ |
10448 |
M1I0-SK9R]8"(L7[`Z$?D*7?1<8=]&8LT9=L:A+3S7I[CS?P$>;08)]B3P:]T |
10449 |
M+]D?G2S6U?[]C)*;B#+;Q*WITAJJ];&Q^*G3ZWI$S+I\>50R0F?]3DA`VJ8P |
10450 |
M`DQ<]^B.;4%W`+X\(XQR)SQB<5<Q$FJIEOX?"(W:]K^_@EJ6RI2N;WIGNP*Z |
10451 |
M71;E:LQ.MZ]/&H7M:^RI1Y]+`X:#5^"`O6$H"+JNUBJO<E>ETKLNL[,HU>\? |
10452 |
M975"#SPVT-BVL;_JXR;]XXN>=__KMYF/&P8BD@AJ._9:KGZ"_'<@T6>^S;EU |
10453 |
ME4MYU[XI):+PR%ZTETB,[:V;;D^TO$LXEBK<)GAC,X'#2^;=N@RJ*ZIYB:O> |
10454 |
MY'EU5YN_JPZ62U/BR">X46,$B008OT#.)8`7/)LMMLP`5\F#/=D%8;[NM4E" |
10455 |
M2USWJ<SQ?;=R6Q:7>F&W2CSA^&L%I#_,@GC!7\?Z($6_RSI):EOD'8HW3#)1 |
10456 |
M:E,\"JH7>W\)EEPH--KR`Q<\*,BHX1:'M&Q,&,&45"??"\(LH`R#MM#UF,:G |
10457 |
M+9A6O`1IE:>.!1GP1;M4]'YL&CHQ"6&K2\+3O/Y96Y#%P?\6VJ8TE[AGX63T |
10458 |
M!TP^SW$Q$4\EKJA6Q^GC8$W&+HJ9^G2]=7Q#TM.^]F>^.^[JTXYNZ62E%DN9 |
10459 |
M]6,\UXXQQ_<1;0VZ*T.6YWI9&MAN]>\&J>E"==6X6*E]=%[?*%:P2G/\F>B0 |
10460 |
ME%0Q8@2DNK*`J3Z6=CV4,5%<[/[\R43^X`UNKK+PP8P*/[7^5AZ"0(4S<^1S |
10461 |
MFTC`';Y7`_.,O@IT!"GV']GQR+#>.=$CBKXKU'J3EAY<V.NJK17G90-*3;6L |
10462 |
M:I*!XM:.G;_%!WIV0FVV6#,;G)I*O)U3Q@&%_`B"$-<>WSF`\A9!'N&WS??% |
10463 |
MD:+3^PI(\`D_;0S4:!@U@^,T8\B:!>+OH2\3&5UZ\V1/,N4H9_O,ZJ_%!=GA |
10464 |
M^W:TV#FI4MP;9O14F"^QX?0Q[7<!O`E,OGD%5P$,'=,=6".04Y"<R#)R)="& |
10465 |
M2SWXND:;`E+/'`3E+#7=Q<95EI2\0/2<M6]"<9!L:"14,3*R;1U";)="XQ&S |
10466 |
M0+1\]\%N3:XUV/L'[K4:"?>O0?J*J0*$:?N0O9RVWTA!<W3YDV<3^[\DV#!R |
10467 |
MUW]=%1NW]$!!1'(1,M;"SORIS<(%V<>ZM[`^E7'!R`^;SQ2^(:O:&X!J%\90 |
10468 |
MV`N-TQG'E?N=/N$'-I;KV!&'!3<C<^7!O4'IM"D)HG&'VU1VBW8Q3&O(BYCP |
10469 |
MH<2:W&+NS\9!#[[^OG"R5ZRR9O@2BZZY<`#3K6K%=0`Y7%UVQ^*[O(V.$1EJ |
10470 |
MNTX,4E%2;E^]2!D*"Y-9T7BSO=4\V7!.SF_J@:A-+HS[*9MT;:?+@,7*)N)B |
10471 |
MKF7"9<A\$6F:H)HTR%^BOZBD%3#>%0*$UX1A:="RN$O>^3>-CX?19S5=%L30 |
10472 |
M+JNKU>.<`R>7'_.$1O8$K46FZ2;+-V35FNTDOP_&TE'B?B,2\?$K"#J";BAS |
10473 |
MCL6CI8'E.J:0IM=RE?"9^>C/1LH]@"MM=?K2\6+5T^S.1C6XZ62&$X2)X"OB |
10474 |
MCOZ^%(JA$>MK66MU]7ZEDJY^I#!W2>@3/<QOBN2TGKU`ZLF('Q]]7ZQ,=5RZ |
10475 |
M"`7>[Q!OUKF_YZI-O!UYF^^<J]_:8J,,X1H:N$@=?33P"F"TE^?[H:6G4$\; |
10476 |
M*5L:_V6]Y*<:,?OJF_4T)9+E+Y4D#R;)T[X<9HB-./6S)Z:M>_)=P*1PPB<B |
10477 |
MYT]Z#AL-(G3WC6UTI&TNZ'H5@7GV/A[!J;NJWO.]8.I1>+&$G#6.O#T*K$V) |
10478 |
M.?O!]#OF8RK1#:)T$?TJ;/N&1OT>&CD?O52)$6YPC=O^Y+DKEF\CXE-$O9KX |
10479 |
M?#S)^ZDOA&4;DC'C+SX^%X.O3C((1!@3<*9!6G5U&.0$+BCQ+JG9YRI0L*CZ |
10480 |
M>8"GFZ;O^;`X8<!30:NZ7F;^T/>*A9/6^3?*E!49+HS)]7.2\S"9+=I5BT\C |
10481 |
MF]H0?)$1W!TW^^+MG`6KA]GKI2MINV'E'I'KU:#=F=[1[\LV0R]NGU9N'ZV, |
10482 |
M5K#L*J7A&<O$X*X!*C1^C6K&W=VF-BZ4$.]BG`8YX;A%O.6"LX`?%P3Q(GKL |
10483 |
M6E>:#!%7_I7LI>'BP1W>HL'S)KZX07T!%F1PRB->[4A&7AM%!*?U>?O+Z%_8 |
10484 |
MI-@TQPK:7,OB>JM@46?I%M=B&P;4+G?]B9O_,_L@@#'$EA1N-UWG`8&B?2LJ |
10485 |
M@9&K+(TB7"K>&G$J55M)3&UCA/Z0XTVT,"*GUYH*E2^9;'"YY+YT/K=^XNF< |
10486 |
M&*"?9U)`Q"G&F5$3:F0#R57!-D6!Z-,_*H]$(2[*UP_CPUE-[C;`Q+KZ;K.2 |
10487 |
M],2_!?-YL1*5`\'F^K)`&8W34DG$7/*'E`&U.J^`^_M&R\F"L%SV=7<0G$@D |
10488 |
MN3%5[^Q8-IFQ?[4&<V:CYD\^*O+%AP12PJ3)5D02K-!D;*LN)(7G$;'`;8V) |
10489 |
M>4D$9&HVEM+F&0G]4P`1%7FMRV]?..#-:R[YK7%UZL09,IZXM+)Q#`[UROBE |
10490 |
M])[;FSVM!)!3$A^HY.9L]*/!ZGENMZ6L:&:?C1<,[1-904S4\P5?NH$KFWTA |
10491 |
M;CW9S+\@"I$`C)TWZ!G;]SDX-)D?[<T]ST#4T"$`$JMS<Y#('I#T/!?3F::J |
10492 |
M`W+^A!?<6+\$P@XK>.0R>X`DED5SNI;SOA!9P_#JB4)"7.FV_[C'@8<\,6B5 |
10493 |
M<=&92DW1DJE1W1'-;*09W!]"5%#7[,NDB#F`I>>?U>52(\86J%)EELJCH22D |
10494 |
M'HIJ:`\V+9I?3&)KIMU8E!/#'4=1>NV)XCV/SCO#Q%7TO@S:Y8&7:Y?FD,:P |
10495 |
MWC?7,3QRC7-(;D[S\-#^MN@8M8M:>#`MXJJC",8S*%SJ3L6^LZ'C,W`<_595 |
10496 |
MP!L7V&1OHLG7C<0C+2X?PA0F/_QI(&YK0ZU?\J4M*-0V?\J"E%H_:T]CF2*; |
10497 |
MOF25%ENVF0.#E!&W"6,SB#;*->'9!=%ZK#F2K:5E5%325<^V39\D-"!25\,= |
10498 |
MZ&9WI$4-L6[978R<0*DMH:E<C61_/%"S6%[TGO%M/UH`/*3HL!TAIG=:@11E |
10499 |
MPSS17[JV'5"3._V?=B%$ENKMR_Y\T)%VD=V,XU/H86"09]&PP!)M[=.).OA& |
10500 |
M>&HSC0T]_QG_),P\CXJ]9F;C6#?,M9)HD^N[815T.+R#4<D3&I<L^[*V%_H# |
10501 |
M4HZ70;8O6'_D'M)"Y[#9JHF-2Z?T=EYAN=]C>M3M5$&6,K22Q?/>G59RJDI: |
10502 |
M*FLM=BN^"W/)5B,Y,X1@7\\RGX;+[X*]/]5+B;J"\K]O?AG(X*=U7'DT]WDV |
10503 |
M2FFXS<-0TL]O6)MLT]1=,HPT+JTA\Z6:10A7ZQ)\)QI>J&D.5QCJP0@/2Q6A |
10504 |
M.I^C<RU;4A!*D<*OM"5T,7Z<!N`H("%3XVM-,"\C],$__`@%JL/$*YN)3/!D |
10505 |
MC%LP:LH"%"<`U@>3=E>7FIK\5/WEME$P_!L%9I\&Y9^/J^/_=0WX01EB0Q]( |
10506 |
M<^P:7(,RFN89G--9<T6$%-8$@HJA%EE73]SU(4QVGSG8B"A]1)\-`P.6M'JY |
10507 |
M`"KO2ZWL%INC?==*DY/=LA=GP_3X=HI=UM02O@/.\X/@B@&6F%5:Z6F*FZD4 |
10508 |
MXYFRUM$S>7U<*89@,M<$>6LD'MP5>[C.&C6"O'`QLB8)UMF5/G8=:2C&#.7Y |
10509 |
M=KN3!K?^\Y.'^,'=KQD?<8H+<*0=IW-?@WTBMN1U'5M9G>$[^1XTT:.2T/S) |
10510 |
M.I>Z+WQDG!*$:`I5+!>FKLZF!+>&5:I)F,"02N)WGPVHB>886D<8R]^`/_0J |
10511 |
M)D@#/O0NGDT[(4+F3/%HQ<_F6GO'/N22\"V5%3W6Z3Y733)3A(F[$"-_=<R^ |
10512 |
M,94@M\L&*"-Z;Q/2))JF>S00O#_?H_VCM-)!*"&&"B/VU_Y*8(6;+:8N/ZXN |
10513 |
M?I\[`!JIT!>.,(&;;7Q@(RWN\W,EK:%>+B/*"T%"BZGN)EKO47%1-6$8,61# |
10514 |
M['R+'[IMNA>VCLK8D*TCPF>WE(T,H7$ZGA*Q]=P+YW1^<$9F%)T\CYL0&V`2 |
10515 |
MYV`X=0"X[\!]*&"[.84Y^R^_/+YWJ*9E1(F&2!;*:#-3VK\9)B%K6M&A42-4 |
10516 |
M7FA$5A;/(N$PGAWSMRV8JIF]K.A'$4!(]>4":U36'ZU)225TEA;CM/&03W(< |
10517 |
M9&X=4JZI%20,0_V`D-?(Q%MQM!P)&-;G.V:P,P<3IS]Y&.UL=^9)CI^%J5MQ |
10518 |
M&M:Q[TTD?#B"D-@OT`$PKHLP@B/Z42Y+P"]*SBU[Z'L^DP)"/$*8*+(`\&E& |
10519 |
M+O-10[11@5D1P$*=*9PP2ICFP#((I#E?V"![[KW:>S&(@TQ8@*8%)(T'#*9= |
10520 |
MY54V[E'Y*5<[,*"J083O1'^_5")X0WT9I5,_^[*T2D-L66L:%/[UA?Y>T(=/ |
10521 |
M2O<F"*F['=6$@O5^R^7*4(T.[2U/1FV=_E1"T``V\M>C4^YCP=<L@8?A)'PF |
10522 |
MUB9)O([K6`VQIQBC9J1)2&F")&R0>&2=NR%YD.E7)I0/_5[NR2CC.1X.#,Q? |
10523 |
M&LEQS`A&H"PD;$#J%/I)#R1"`6,5+M@W6=>4O+N$\QE%UF,=656+<#>H\=3" |
10524 |
M33EHSO:&/.=L^ZA$Y9C@-&J[/NX]_H282;@@<9V5YU\;6:=S4^C9\CESG7=- |
10525 |
M4X('.$>H^-[.=D&N3?23'`'C\`EF!C:,IDTPP5$P2S&&D*E<8.A(8^B`Q?[H |
10526 |
MAW9`CJYN?#`C(LGG@1T(U&\WEY:SW:(ME$V^#1%T"45T/L(:^8D*9+GS2-[Z |
10527 |
M,+AX^Q-N)I7_O=*G<9S0NE=,#MH[4A*.QTA?RTD0OP9Y6I)&Y0G2<ZZ+6KNE |
10528 |
M5<K:,/+U8+`OJ"3I"&9,JRAZS]#E):$]%W(*ZS(VD4L/J8KE/=5:UL@*@Y'X |
10529 |
MZ,U^%92\DR6<038YC:]!RJ:FU;D'Y@+#U_6#%>Z!/WSA'%B&%!JZT/D&A5Y^ |
10530 |
M5S\?9!`&NX"HL*T'EF";+..L.`,)A@LK$MK,N54(6V;:A%A5KUMYHT/5H?>G |
10531 |
M^6=!.107CJB\B,4%M9UVZXQ7,]HIW]&S(+`:DG;=9*>)]^B*,^*W'%/C'_X_ |
10532 |
M0$=GX'N2F)R]ET\)<M6R>YD+(!B&!6NV!\:2GR-!H]HZ,*=I7);]!K1+YO_? |
10533 |
M/Y;_]*4Q+7]'0?YTOC6YN9BPN`52(@<!G*U1R4L9+XYC0'SPV8F5_#C'PB;< |
10534 |
M$L8$B%`AXE`=_H"@`*$39WMU'ZKY<GPM6D4C3=(35C)227@L+C`9L0>K'\%( |
10535 |
M)[K#HJJT@FC"!#&AK<]?<$"80RGM?P/T)VWLC<W.ZM`U<5;$WUV/9Y^J"*7W |
10536 |
M8+^%*2@-/XI1%@YY3?3:,$>T7ZGR(8"_^XLIWQD#0A!EZB;F/U@+\TNU(`!@ |
10537 |
MHG/L*/#CJ_@.#<J`SX!2B4.O!1XV8Q]2)QSFZ9BWE-R.ZYH?JW&(?.^=$"$8 |
10538 |
MD,LL=)D30OV64#]T*7*Z5(/?,F5D[1:R,WQ?J8F@@2*UA:<H4*%7J%H*:O!] |
10539 |
MQMYB`3<L(;Y?IV^P@AO+CXRP0X*:;$T@D+9N&4:7'M5X&F?S1:#$=P'.NMK5 |
10540 |
MOU2"7E95GPNF/U6HI<QG7(,2&F&P$V2V=&DK#R.R5[>+97YW';P<A6*6W<R) |
10541 |
MO7?9N<=V`]#PLL(5#$]=6&0QAT-%VH."3.*<W=X^;&LLTEW"[!;[PRVP5CFD |
10542 |
M%;EP':H^8V3``V"_^ZF=T-DZ".!D`#&!6%!2EZE7Y5)Y8"4?-]2-LBCR-SAP |
10543 |
MC%W7"O6;8ZQ2+4DY)^!J#P19Q:9G&^K(12\J@?Y\IB7&RT]?.BAGI@Z\V4W= |
10544 |
M>RB+#'D#0*\]J`[V`DAY<E6+.Q(:.1W`(2O[V=8EGB"O$'(?(B,@DB7BF!`0 |
10545 |
M\5@#^,WT!97PG]Q[_ELP$.70(6H3!*K&@6__VQB]A7:0UIOY4D"*N[%@/=:I |
10546 |
ML7E"A"E.<"S&..]:<%7#BD3HJ9@0T+I5/9'W2$>--CP!$].1=J/A)+.8%<H_ |
10547 |
M^*L$1T4>D_<7;-2B'^5XE&+;WXQB7I)4K^[9=^92:H?Z22/_37()WAX2XEW1 |
10548 |
M0V4L$X/)["JRM>>?T1Q+#<6T>ZAJ:2<[L?0^"00YQ8$ZWX=PK&5]GLJ!U!V= |
10549 |
MOT)S9AON%HO(1:.];#$)NC[^\(S1(MM[<QZ)=\NPP_A`UI`C<ES1K@E*LJQ\ |
10550 |
M"QR:%*N9#1E.93,9$>)&/7/VF-V4C_*-#O+:PVF!$-,!>2=]H06TTJR!H4`6 |
10551 |
MMITTO8$8'N=<,B?P6K9:;,HHD+D5%#P9*Z@C6ME)?@+9V:-NLO:\0TRLL`AE |
10552 |
M90@EQ2AC+*&05H,I'H*;M%XS^A(#J<&2D.J'<E86*WJQ@$@HS.VO9^3^M&;; |
10553 |
ML7D0VXC^8V_^M02)!`78O1<TA1GKJURV&?Y2=C@!V)VG_#GT_%Y/HN`_$I.* |
10554 |
M"'*KU@F@NO)^3ICMD_'&N4>HXT?S7:+_5SD&^_>9O;+Z`.T>G0FYV!4/^!@` |
10555 |
MO9B8;MGHT,]6R`6%8>L#AX>/5M1+40$P:E.3)3J-(5DRV24CHJI$=_!6VQ1[ |
10556 |
M$<PO,?-=115<)%GFMB7NI:JRD,^F>NSW%Z2%F$ZQMPG^A'Y/0%E,E<D<;J:J |
10557 |
MUP32MQ2T<9GTDU^N<>0NT?>\"$&@B.5::6_:2BSN-)!RV15P;XL<-_,/@D(K |
10558 |
ME`"L6)4UOF#U5JT')(.]8Y<OR4QH)QATF73O)C7+Q(/T&(5_F_)_-FCA0BC0 |
10559 |
M6JS23Z#^"61&&([9-D3T=)OH-P.C&-(EPF,O=QP@T^C5<+!SZ'B[YCA.D]MX |
10560 |
MIIVD32A<[EW=L83`8)H,?S"/=`;7=6G76)O&[&R3$(?6PI8*A8D6E1Z8L/9< |
10561 |
MC7'9#W9-*7WSA$76L5O,8,Z&SYW!GT1K>"T-JNC2@BJ.(S=MB@3D[5J;R#[? |
10562 |
MDG:$UDS[JLZ)%/BT2Y/4-VH?%63/8?;=%#;;^S'K-`B=X-DMEUYV=1.IW;5Z |
10563 |
MD'^/,53DH-UZ#<QF]@<JT2'>5Z_)=6DW#$Y$TH(Y^Y6F?+4)>/S/W$CP7U*Q |
10564 |
M(K;K>`7ICR.C-`&WP=/4![9-Y)>#L18#Y7C^T((5M=;QO>G,$J&:<1ZA%A=( |
10565 |
MDE)>:LO691*_GQU3*K2X.?8@GHKM_G(K5Z+.6<6!!>Y?ZD10$CF1--=%:URU |
10566 |
MK>M>Q>7Q.<;3F`R+?N`@+H[N.&3LB]*HAUD8F^-DL89Q9QU]@,D%=_-!UHP& |
10567 |
MSP0;ZZJK"B/K&H&SE])<DYRD5M<64_\>9$)=Q:IK)OW+Z#_\)8`9;DZ/U;1B |
10568 |
MU*(>4!YY\8P'2=XN!09[+-7!DX.*G<%JM2-A8'`T-XIM6/M9S0KZES@Q#AD1 |
10569 |
MAP;FP(2`ME\@4;.T*MAT9R8I"`)J8K'U\2'#?-\7/W#2D#E,<7.TUN/EVJ/< |
10570 |
M4R^6I1Z9,(7&RM%+F_TA*AB$$DE%!/)+GY85QGBFE:.QOM,16G@(KZ5FX#&T |
10571 |
M9_>SMM-,;]M[6LM*YT<V\S2;#_3-N1WE7&927G,NN8S`!9YHOM;EG4?9F\0) |
10572 |
M49RP4==SOO4B&/IR1#4:4DS2"*/_?G:YF2X'&MUV;*_5;U=L^1BE+(1IB0O< |
10573 |
MH7IH-M5WC%:B1<<,N&^"LE2.Q$=.&@;(1O5[-/B0J)#SQ0%&D4QW"`F_>>W_ |
10574 |
M9\@$*X0-:UQ$Z-9Y]MY/Q-&$[[H"9@E?(ZXN3TA6V);[Y1,.?9"3[.Z%;&TK |
10575 |
M,T-UJ$@PKJ0E"J/L+\]9@!]/SF?6S_>H'Q(F+G_7QD!.<K&O-7IC:`_'AXYD |
10576 |
ME'OB^2<\3T1"`^_HBF6*LSL'G&H9`8IUV62VKL`#K%$\Y04C:35E;YZ'\R!, |
10577 |
M,&3&12Q>Q2S^<"^FR;\$^FHHQ7!WN7ZP/H@8.!V[!6$P=X*(+*%OW?JS6A?Q |
10578 |
MV3F6%E,7^\81TPBAT@)(!'G8&XZ9_>7YWU&W4%(`$48')[7P#U!LGV"W5$7+ |
10579 |
M(A6;JY,#BHV&YBUL0HI2-<D:<2;OMR\P`V`,PPV[79$7,X'C<H/IJ7/]#OPB |
10580 |
M5ANP_@'E5-`[*&D5\SO+*;:QXH0TY>/\UV[I+.@HHNW])MO.??PH\H-84/PY |
10581 |
M@]EVS')J:I:+1"[L#7LF?:K:,X#5L'IB&PQ-V]L5!E5)+UX#.JF4_P(<UAQ: |
10582 |
MZ'KK`UH_XN54P.8[?,M;L+YJC(4X*C(D).1`](?@-,>#%0[I&".\.-@7/L(4 |
10583 |
M<#SS3.`.%K.T6`,`-L(\QX^!B?DE?]5P1HD-U0+];X@5%[+8`'WOO]L7$,A" |
10584 |
MV@P]!EP'``P0MTY09(2_`00`<*>!_ST!!@!CS1(2'Z0<@`"`6[`&QP0I!L`` |
10585 |
M(.<LH'&@B@'(`-B">43F?[,2`E`$BW%,_H7A_2\,R_B_F3P`@H!8L_\7\/\2 |
10586 |
M$!OPG9<;3MBHP!/P[Y(2DQ.M$S8(^C]02P,$"@``````(7)D,;SN+#Z8#``` |
10587 |
MF`P``"0`%0!M;WIA<'!S+V5X=&5N<VEO;G,O86-T:6]N8G5T=&]N<RYP;F=5 |
10588 |
M5`D``RZ`BD%4><A!57@$`.@#9`")4$Y'#0H:"@````U)2$12````/P```"H( |
10589 |
M!@````1$@_<````&8DM'1````````/E#NW\````)<$A9<P``"Q,```L3`0": |
10590 |
MG!@````'=$E-10?4"P,6*BT2`27Y```,)4E$051XVNV8>5R4Y[7'OS/SSLO` |
10591 |
M;`RH#"`"`B*+2P37&$PB4J^*&L4M-BIM7*K6QB6QQH_6+;=-C&D3KS>-B4DJ |
10592 |
M)M'4)L;0M'6+B%LTU9"*`BHJ`B*R.\@^3__(X[U>"PQH_'QR[_7\]W[>><\\ |
10593 |
MY_S.><[Y_>#_L>G^C\?G`UB`6L!Y]TM-<U^HJFH#!AD,AM38V%@,!@,.AX.R |
10594 |
MLC+.G#F#JJI#@*OU]?67?L"!6V>M>S^W(.]T9=KGG[WKN';Y59F$EDU5U4&` |
10595 |
M`,1+:Q>*BM(L455Y7925YHMC1_>(\>,2Q.WWJJJ.;.>!7@2.`>XM)?Y[,JW) |
10596 |
M'KKVV.4:\?3FKYV@O0286T5>5=4X#P^/M-V[-B$$_&W/(4Z=RN;2Y0*L%G>> |
10597 |
M&AN/KV\G=#HM6JV6J<\L0575KNVH@!4;7GUMS>(EBSX%G@&J'U#P@?/?.YHS |
10598 |
M?7A_M6^0#>JJU@$OW8V\]LZ'L+"PM/2TG?CY!1(<',F0N$?I[.^/E\V&ZJ8G |
10599 |
MY_P5ZNL;Z-#!AL5J8MO6]=37U^>Z.$@7Q>K_;>>(6!$>T6.-?_0@LB_D/=4E |
10600 |
M("`-,$H`S$`R,%E6Q?V8TGG`N.V/10>HZW>?AKJJ8N!WS96\<N=#9F8F';U] |
10601 |
M,)D[X:2!1_H,(#JJ-Q45)9257Z>DI!2;S1-5-5!554%FYGE7!PD"_OS\;[9$ |
10602 |
M)B4FT,FBP>&HQ60R</#0X9BNP8$IL@*2ADY_\9WB&^7\XXLW5P$O`_7W$KG> |
10603 |
MZO]$TO19_3W,)KY8%@.P'*ALR[?BE9>?%Y6EWXJ&VNNBKKI4U-:4B=J:$E%] |
10604 |
MLU"4%&>+W(LGQ9:W7Q8__4F2F#QIQ.W^;];<C)X?CUSP.U%0)<2GA[/%]@.9 |
10605 |
M8L?!L^+/7U\5QZ\TB)F+5C4!SP$>P!]_M?6(".XQ2`"/`6IS/L=]D(,EN$^+ |
10606 |
MJ/<?\]-K>[/*Q8B%;PC``7BW^..[GM<>/YZQXGI1!='1T0R+[X]><:.NH9'R |
10607 |
M2MB_+Y6BH@*JJAQ<OIQ/86$QP-J6G-N#(\;,FS&9C;M.DYE?A4:K0U6T--85 |
10608 |
M</C#9$HR]VT`_@HT`3/V;OE5TJCD7[)QT>A7@!$MH/\BD`@,N?N]T1ZV:.+/ |
10609 |
M7[1?OUE#VHZW`-X#RML:_,J_G\I<D7>UF*RL2WQU(@.#0:&AT8E.4T?QC3*N |
10610 |
MY!62>S$?G:)!K^@`5K88O+=%+7<:V?_E(4Z^]UP]T!3WS`KW\R?V.$NROWH- |
10611 |
M.`J<`+H`AOH:![%#$P&"`6MS!T__];S)N1E'>W2.&E!:>_6;<-5H*JRO=@`8 |
10612 |
M`H("5_4-\V?Y;U.H+CK?`&QN;KZW:)&1(>+]]S>)Q,3'1;]^O45D9#?1JU>D |
10613 |
ML%K-PFAT%YZ>9A$7-T#$QD:)T-!`T9JO(?$CQ>L'R@5:?0.P`7C'ZA,L@%>` |
10614 |
M7@/CGJSJ%A$M@+Y`^NLI?Q&;C]\20!$0TH);OS%O9SIS2AI%T)!I3:K1-`10 |
10615 |
M,5C.G+S6).;NS!&VX+X"^!PPM#H/_V7V:33H%86Y/UO`HX/ZLW3I?(;%#^21 |
10616 |
M1[HS;=HX(B*Z$A45CM'HCE;;^JC.OU%!K=8`SH8*8`>07GG]T@O`D8"NW=./ |
10617 |
MINTWCQ\_GIX]>Y]X[Y/]@V,&#"8K-]\5/H6?S8QZ?>?)7*:]L%)K[S5B'Y`U |
10618 |
MX86-475U=1Q+_XK*HG-.X"U7EV:SP1O</>@:$HJ?OYV^L8/IT-&.W<>/R,AH |
10619 |
M;#8+5JL)F\V"3J=M]937KEPH$->^0?9T)?`1\'98=.^4;9_M,Y?7P;S%*]G] |
10620 |
MY2EB^PW@^+E\SIPXA$2^M:I:_,:R.4[%;"%QWE)E_B_7!"]+3N2-]#R*O]J- |
10621 |
ML\:1)Y<I9[N"OS,)BDZ+FT$E-*0+>E6'V6Q"I].AT;1M.;M5<7W]YDVO.A>\ |
10622 |
M>=C'TS_D(T`/;)J_^FUSG<[*_I,72#^=Q>'3Y_CPP%EV?KZ?`V\M<@+_[F(! |
10623 |
M<E9<.3OIBX]V8K7[$SPJF=T7'5S-N41)Y@$!I+1EO"G_,NN$("/C6Z*B>N(4 |
10624 |
MS4\R(00.QRV$<!G_'W(/_ZGS+D?YDH9J1Q#@!<Q<.#4A?."TU3%6_PB:&NO1 |
10625 |
MJ^XTUI1S>L<J9V--52J0`52UYKBNXOJN"WO>_X>;S;^'9V@H2I.3PD/;J;M9 |
10626 |
M6@=L`QK;'7QC8Q-'CAS'T]-&1D8FB8EC_^N=P_%=,@L*BLC/+Z:AH<&5_PI@ |
10627 |
M>=XW!S;*65X-U#MKRX<<V;P@9<*O__;4WC<74%%T\88LT=7`(>"J2Q("C247 |
10628 |
M3XR_G/;AN2CO7^@J'55<24]!]OKE>Z*T-V_>^CHOK^#I??L.XFDUH]'>XN+% |
10629 |
M/+*S+P).LK,O4E!03&;F>:JK:X<T-35=<?$?3<`MF8A;\KD12+U54?*CLORS |
10630 |
M?DV-#6.`_Y2(%P$U+GK^MI4YBG+.UI:7)ET]\B=-37EA!3`#*+NO!5E5U4FJ |
10631 |
MJ@I`6*U6H=?K[X?-M61&X!.@VWTP/:U6U0Z3HZU/:_?8#\TT,FCK_1Q:JVKY |
10632 |
MWQ3T0WMH#P7,!RI@:N08=;8U>!O0&<@'+@%;Y/C9+6]HY!)2^P,.W`KTP.*U |
10633 |
MGKJ:"T#IW8M/<S?D0&`N<!X8&A:$*H089[/0!/1S=V<L$"?I9F@[#_2HW+F5 |
10634 |
M!RU@`E$$CXZCJFR#)%4NJ>UCP)+@`%X"_"P6=@.3-!KR@1F>5CX&(GTZ\7N@ |
10635 |
MNYS[GNTXU`H@1LYV_0-%W;_?9X`-Q2"D\&%P]=&L`#^6`$9_7^8`7=ST[`>F |
10636 |
MJ2HYP,B.WKP+!/K[\]H="6A5P`1FX&XM!F9C"UDG5]V],@$:*5DE`U'?@X"I |
10637 |
MQ6)/!<((BO\26-B:E/4_.`N@>IF8`&#OR'3`+<#.8L#7SY?7`?_.?JP"`CTM |
10638 |
M?"X%PM8$S-GX]ML&&/#I.050Z1`U62)QNP*2@42\PW.`P2WI=VU3,$WQP&.$ |
10639 |
MC]X`+`:>;>L"M-S+QG9`V\5.DA!B@K<GXX00"_TZ,`G0V>W,!7H8C:0!8UT@ |
10640 |
M/P:_/D>^T[1ZKP0ZXQNS%NA(\+#YP)-2P-0#?P2B,7@6RFII/@'=)[HB:F,) |
10641 |
M&?&RU/D<[:FD-<`XHX%4(#(TF'F`&AC`7,#3;&8K\+C)R`'@:45'H>RGYLU@ |
10642 |
MS0,Z$#9R&S"8J(D'@8&$C_D2F"/E+&_`#="C53.EI'6LQ1[M/G$JD-1"<F() |
10643 |
M?#(%",/=LQKX4;O67JV6&T"R7N'O0(+!C50@WF)B+S!6K^<\\)Q.1SGP<Q?N |
10644 |
M?DS4A'7`:*`.6$JGZ-,R\/5`N!R9!L`.S*#/LR_):@AJP><$C/:I<B+YH2C_ |
10645 |
MC;J[)1OPH6/D*6`9T*.]73/;PX,W@`DZ'1>`V3H=5X`E&@UUP!*]GG-`LDY' |
10646 |
M4>MJ@7L&T`6-M@&(!]Z1%]`K@`^*>A*8+=&>ABWT/P!?26MM+0F80!R!"0N` |
10647 |
MZ2A*'*!#;S@#>!$V.A68+UF>TKZ53T<^$.[AP6K@28N%C<`3;FYD`0FJR@4@ |
10648 |
MP<V-;.!G+MS-)&;.)F`1T`_H"3P/=$-GR!5"+$2G;@>>Q1:X'C`1/>4CB7Q( |
10649 |
M*WY_"SQ"<,+'DK_G`L,)'[T:&(M>;0#"[H7IS7)WYS>`T6AD*V`V&OD`&&,T |
10650 |
ML@68Z.'!+F"\HE#8>B;=<N4X+)*]K0(&%+<LP(9WX#A`0X?>4P$W0H=O`H8! |
10651 |
MW[C8'S28.EP#>M!E<"HPG$Y]E@&#,=L+)?+>[9X4BD(^$.+AP2P@QFQF)A!J |
10652 |
M,)`.1+B[<QJ(\_#@E"S9UJP?ML`\H`^J\;"\U3\`P@A.>![PQ;?/.B"`T.$I |
10653 |
MP"AT^GH@4N[EK5DW.D5F`+T(&;$5Z$5@W"E966ONE=_/,AC8`9B,1OX`>'AY |
10654 |
M\1J0:#*Q$9@@D9^BT[E`_COTAF+R*9)H!`!Z=(83P"BZCS\,/$Y$TB'@"12W |
10655 |
M6F"BO`A=]:L"3,9WP-=`'"&C#P+3)0?QNJ<=05&X!DPQ&'@7&&6U,N<.Y'M+ |
10656 |
MY!-EX'/;HHA)DM%=SEQ%5L`GP*,HQIOR$BR2JV_4'9N?*PL#9A`4?Q3X-[ES |
10657 |
M)-S/DA0*-`#+]'HR@1B3B4^!*48C>X`9\O9?+KE`F_8NR2"U=\A7>DSVOP)+ |
10658 |
M@:%`1\"_'8'?MO'`3W"SE`%+@,#O@QQ,E+-22*>-,F!Q#VRNM:1\(LOT7G=Z |
10659 |
M#5J&`9.D@/D@V>+W+F`JLBWN_=!:'@J8#ZT=]D\E!`IV=825/@````!)14Y$ |
10660 |
MKD)@@E!+`P0*```````A<F0Q5;"^EF@!``!H`0``)0`5`&UO>F%P<',O97AT |
10661 |
M96YS:6]N<R]E>'1E;G-I;VY!8F]U="YP;F=55`D``RZ`BD%4><A!57@$`.@# |
10662 |
M9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_ |
10663 |
M`/\`_Z"]IY,````)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"!<0`1W> |
10664 |
M_BZ6````]4E$051XVMV3O4X"012%O]VX,%N8#$%90M2)DO`&EOY4%H;P%"1; |
10665 |
MZ`/X>@O$QL[6BD!E82!!,I/5O3:K[`:,AI+3W9OSG3NY-P.[K],SM3W<[=7O |
10666 |
M`3EL5-K;\"$@;\M+`>0WDU\L=&VOVH];#SFP?)U?X/L>3\_G+N_);;=^EWOI |
10667 |
MQRV\8L#1<97IQ,G,7FV<YFQ&I(?`BBN]8#IQ&*,Z6B5K\/OBDT@/"0+O9ZO& |
10668 |
MJ'(`P'AL7P"LS4K]Q]$\!4A3<07O>L"WE/+Y2`6M$D2@W0F#/Y=8U&@P6QSL |
10669 |
M#V@V*]>U,$$RR?Y]OQ.CX@VGDT84W.S@7_D"5WY*+%4V<Y$`````245.1*Y" |
10670 |
M8()02P,$"@``````(7)D,8SV_O0?`@``'P(``"<`%0!M;WIA<'!S+V5X=&5N |
10671 |
M<VEO;G,O97AT96YS:6]N3W!T:6]N<RYP;F=55`D``RZ`BD%4><A!57@$`.@# |
10672 |
M9`")4$Y'#0H:"@````U)2$12````$````!`(!@```!_S_V$````&8DM'1`#_ |
10673 |
M`/\`_Z"]IY,````)<$A9<P``"Q,```L3`0":G!@````'=$E-10?4"!<0`0)3 |
10674 |
M]B-C```!K$E$051XVJV13TC3<1C&/T8T"`.A:9>&EU!V:1O!:(<N'9*"4$:W |
10675 |
M#AXE*+"\>%`"$81P!P\6@@2"LD,1##U9%P^5BC2=[==*I_@'G$XZ!7,9/EU^ |
10676 |
M[Y"Y%D;O\?U^WN=]WN\#_[FN``*N56$B+A.I]*CYV1E5`2*`$HG$KLM4+.7S |
10677 |
M.1,Y5_Z6R61.++@,R./QE*#BP8%!3=8,A4(#;N^$.Z46%P[ML5`H:&W%,?". |
10678 |
MRSP&%`P&!RM9K@6TG$H>;FUN:'UM]6CEVY>C\;%1`?+Y?'&_WR]7Y(]UWMVX |
10679 |
M;DY22XMJ:VLMB?Q+I/O`N]LMM^R<"\"9OPT9K'`X+$"S'S_HX8,.ZU^L.MS9 |
10680 |
M-ZRDDU7/4%R`&IL#`'+2:3T;Z#>1ADI.U#LXJJ2357=L7$]')M78'-#QF/?S |
10681 |
M>WK2^<A$O#9X%E!L9(*;-ZXS,?6>.N\EYF:FV?BZ9,PV4..M;U#Z\S+%G[\8 |
10682 |
M?OXB[Y[S'4!))ZO>H;CZ7T[K;GN7;:DM<^FQ=*+1J(`><_#ZS=OY>[NY'#N? |
10683 |
M%I@<B^'>^:-,H`C47`T$[;32/]P'7AU+H.DT6?\&,Q3,!2&AP]<`````245. |
10684 |
M1*Y"8()02P,$"@``````(7)D,2Y[!,Z@#0``H`T``"4`%0!M;WIA<'!S+V5X |
10685 |
M=&5N<VEO;G,O86-T:6]N8G5T=&]N<VDN<&YG550)``,N@(I!5'G(055X!`#H |
10686 |
M`V0`B5!.1PT*&@H````-24A$4@```#\````J"`8````$1(/W````!'-"250( |
10687 |
M"`@(?`ADB```#5=)1$%4>)SM66M45%>R+O%$19SHJ%&QA?@F+@2CQC@Q:IPD |
10688 |
M!J-&<W'K&!TT/I:C1@1?J*A3.2)-:`5I:+`!4:11Y/TH6X6012(114!CZUV1 |
10689 |
M$!F0BY&7KZ`L8[#F!S1##'0#SHQ9,_?71Y_39Y_ZOJ]V5>T&$!$``/Y;\;D' |
10690 |
M\)LB+DG2[V59GF5I:<F'#Q_F\>/'<T1$!-O:VC(BLB1)4V59'O);(&`&^R.B |
10691 |
M-0!(;1)`DJ1)B,@`P%E961QS-)3KZNKXV-%(+BTMY3?>&,?&^[(LSVIG0)X` |
10692 |
M<`X1+0&@T[^8>,\3)T[4C)L\K5BE4NT$@&[FB$]5*I7LX^W!UZ]?9R%F<E14 |
10693 |
M%"L4`SDT-)1=_NS,!04%O,%]!5^Z=,DH0'LR8-?9LV<9`)(0T>I?2-Q"I5)Y |
10694 |
M[?0[S!D9&4\`X&^(^+N6OM_TAT:CX:!`)5=557'$P4`N+"SDZ>].X_#P<!XU |
10695 |
M:C@G)27Q)VN7\+5KUWCG3M<F`<P$8NOM[6WH.V@H!P4%\=9/?;FZNIK[]NV; |
10696 |
MWRA`I\;`EB'B0@"P_"<(\++3HG6/;MZ\R2!U8T3T,NL\`/#=NW<Y[G@T/WSX |
10697 |
MD'5187SGSAW6!/IP<7$Q;]^VEK___GOV_6P'7[MVC<6\]XU;H+5`!B/B_RY< |
10698 |
MO8-OW[[-D<=3^.[=NWSD>`K?OGV[>08LBX^/KQ\Z[MUZ1-P%`%V>@;@T8+CC |
10699 |
M.8/!P%,7N#(B5@!`G[;L>?YXJ>#:VEI.3CS*CQX]XL2$&/[IIY\X/C:*?_SQ |
10700 |
M1PX+"^"\O#Q^]]W)'!L;:]+Y/7OVQ/UA]E)^^/`A[_Q,PT5%1;S-.Y!OW+C! |
10701 |
M_@?C^>3)D_4`X(Z(W0$@/C\_GP>\/)(1<4I'!7BA>Z_IGW_^^9/U7L'LX^/# |
10702 |
M`+`2$25SQ`$`=L?$Q/"'<V9P04$!'XK8SW?OWN6(@P'\PP\_\/+EB_CTZ=,\ |
10703 |
MP^DM/GSX,`]2#&!$W-U:(/UM1SPJ*ROCA>Z?<69F)D]Q^2MG967QU,7;.3`P |
10704 |
MD`%`A8BO`$!71+0:9>_(V=G9#`U%\?<=<%XZ<N3(#QN]0S@A(8$!H!81^YAZ |
10705 |
M[A<77GJI#VNU6GYM_*N<EI;&<SZ8P2=.G.#9L][FV-A8MK,;QBJ5BGOW[LE^ |
10706 |
M?GZF4AXB(B)XJY^.X^/C&0`>(>)#QVG.K%:KZP%@+R)^"`#W$;$7``P(#0UE |
10707 |
MCX`X1L1;T+!E?K7N5)>MGO[^_N=:R@R52N7QD>NG;#`8N'MO:T;$(`"P:!-Q |
10708 |
M`("@H"!V<UO#T='1/&)$0Y$:/-B&E4HE=^W:A95*)=O;V[%6JV5KZWXFB]WH |
10709 |
M,>.YL+"0H9/%8T3T`X"#OKZ^1L?'O&+O<#\H*(@!8`(B9O]EPTXN+BYF`+B% |
10710 |
MB,-:B<]P*"J&]^[=^R,`#&QVOYO-\%$/2TI*>,P?_X<1\2<`<#"7,;^X8&,S |
10711 |
MD+_YYAM&].23)T^RN_MJ/G7J%(\>/9+3TM+8SFXHIZ6EL;W]"%:KU2:=#PX. |
10712 |
MYE5[=(R(50#P.B(N!8`MB#BW;W_%_2=/GK!8L)!#0D+8?;O,E965/'_C?J/S |
10713 |
MPUI9=V!&1L:3?6''.2PLK%[JVO4M1.P"4M>KY>7E/&.Y)_O[^S,`$")V:S-Q |
10714 |
M@(9VMVW;)JZJJN)ERQ9Q144%+UGR)XZ+B^-5JY:R3J?C>?-F\[%CQWC0H`$F |
10715 |
MG>_:_<7_:VR'MQ#1KC%5>PVT'7S_YLV;').8R@\>/.!#1Y/YSIT[O&I'`!,1 |
10716 |
M`\`WB#C41.#[SYT[Q\ZK=[%6JWT,`,6IJ:GLZ7>(8V-CV:)+UWI$G&TJY5L4 |
10717 |
MP-9V(%^]>I6U6@V?/7N6P\*"^<J5*SQMVB2^>/$B3YC@R!D9&3QQXAAN3%E3 |
10718 |
M1<AMX*C7ZW-R<KA'[WX7L:&M'348#.RM.<K%Q<6\=8^:O_ON._[(W8<3$Q.Y |
10719 |
M<Y=N]8BX`!I&T];6M7CI9;OZO+P\GN'BSJFIJ2SOTW)F9B8/&#Z&$?%O8**] |
10720 |
MF71^X<)Y7%E9R<N7+^;JZFK>NM65$Q(2V,UM-4='1_.\>;,Y,C*2%0K3S@-` |
10721 |
M+T3<VV^(/2N5RML`8(.(W2U>Z)Z?F)C(;RS<SJ=/G^8W%^W@4Z=.\0N6/>H1 |
10722 |
M,14`[+!A!&XU<*52*49/G<.YN;F\:(,WY^;F\I@92]C;V_L)`.S&5MJ;20$4 |
10723 |
MBOX<&1G)*U8LX<3$1-9J`YN</W_^/$^8X,@)"0FL4`S@@(``<\Y#8ZK;`L`K |
10724 |
MB-@;&@X95@"0],477W"/7OT8$2NA86NL`0![;.C[YF9_:?_^_8:Q[_V9,S(R |
10725 |
M>,K"C1P6%L8`4(>((]M-'`!`EN59DB2Q+,OLX#"*SYX]R_/G?\"1D9$\:]8[ |
10726 |
M'!H:RH,'VS`VGN[,O:`17T#$+O"//=@)$:T&#'/,]_+R8@!X!Q'M`4"!_QAY |
10727 |
MV[+N"*U6^_/$#U=S2DH*0\/`%0#M&)!:O"%)TI]D668`8*52R9T[=V;L^&FN |
10728 |
M-;2"AA%W)#3,])W:NXZ%A84X<.!`?:_^MHR(=P#@Y6<B_F_$3HU[NR<B6G1P |
10729 |
M'8M.G3M-1T0"@''M7>=Y"_#/0K-M[3^5>(?QN0?P_\1_*P+(LMQ#DB1K;V]O |
10730 |
M<G1T%#J=CNSM[85&HR$`$+(LCY8DR:J#+WSQ60+>LGFSP(;BUF[,S\\G<\1' |
10731 |
M&1_X:.$\<?_^?8J).2IJ:VO)U]=;'#MVK&E!29*L.T"`GE$`2DQ*$M75U00` |
10732 |
MPF`PD.RVKE6\<N4*^6M"Q:U;MXQQM^R\+,NCK:RL1%%1$<GR=I&>GDZOONHH |
10733 |
MU&HU#1\V1&1E9=$G:U>*_/Q\<EN_VBA`6S)`811LD\<6\8P"B'OW[I'K%L\F |
10734 |
M1\^=.T<>2Q?_"L^?/T^[UJP2ER]?IK=GS#%^OV7G;6QL1'EY.05K_$5-30WM |
10735 |
MVN4ADI.3R<YNI`@/#Z<_3ILBSI\_3YZ>&\75JU=IO>M??K5@"V@#`**FIH94 |
10736 |
M^_U$45$1[?22C<]U[8CS!\(/B\N7+Q,`B(L7+Q(`B/KZ>DI-3?T5/G[\F%:M |
10737 |
MWRR2DY--.X^(="A"*^KJZNC8,9VX=^\>180?$.7EY>2U>T=#*GVZ75R_?IUV |
10738 |
M>&X2IT^?;G'!IYTJ*"B@96M7"[U>3T[.<T5*2HKQ.9,_,;6R97ZQE]6JS2(O |
10739 |
M+X\`0%165E)(2$@35E14T/'CQ\6%"Q?HS;>=3#L/`.+++[\D7528>/3H$<7' |
10740 |
M'6_$&%%75T=11PZ*JJHJ6KMFI4A*2J))DR:VQ7G:Y+E-1$5%$0"(D)`08^`= |
10741 |
M^8^/N'7K%H5IO$1%106%:;Q$65D9J54;15Y>'O6PZB)^_OEGBHN+$[6UM10= |
10742 |
M'2WJZNIHQ5IWD9B8:-;YQ1-?'R_T>CVM^V2UJ*ZNIHB#!T1U=34%!.P7V=G9 |
10743 |
M-&?.3)&2DD(.HT>)P,!`@H93F,F`<W-SF[^X)>).C==[FA-2K=HH2DM+*<!W |
10744 |
MHR@I*:'`O5M$:6DI^7_F)BY=ND0`($I+2\G7UU>4EI:VRWGP\_.C8<.&"IU. |
10745 |
M1TY.TX5>KZ>9,YT$$=&;;TX486%AU+/GBV+OWKW4MV\?<RD/B$C39[[?_,4V |
10746 |
M9E+:E`"BI*2$`GS=14E)29,0:M5&<>/&#?+W62]R<G((`)J<?_#@09N=AT&# |
10747 |
M!HJ"@@(:/_Y5H=5J:=`@A0@.#B9+2TNQ9\\>LK*R%`</'J2A0P>+@(``<RD/ |
10748 |
MT%#43-4&8]47-34UYFH(N8CQ(B,CHT6,B8DA`!!E966D\E.+LK(RVO;7W6UW |
10749 |
M/B@HB#9L<!6%A87TP>R9HJ"@@.;,>5]$1$30>^^](T)#0\G):;J(B(@@:^O^ |
10750 |
M;7&^N0!#GKK>LUE`Y.0\UUP-$41$SC,=FO!IXA<N7*`5:]U%;FXN+5NSONES |
10751 |
MFYRWL5&(*U>NT($#&G'FS!G2!*G%5U]]19,GOR%R<G)H[%A'D9Z>3A,FC#7N |
10752 |
M^0Y-:D;BH>'A`A')<<)K0J_7FW4>GJKVS8F7EY=3='2TJ*RL)%=75Q$9&4F+ |
10753 |
M79:VW7F-1D,>'IM%5545+5OF(JJKJVG+9C>1D)!`KJYKA4ZG(V?GN2(Z.IH4 |
10754 |
M"NNV.O\T6AJ)&]N?7J\GQPFOM:E[-._S1N(:C8;LQTX4%145Y.OK*XJ*BJB? |
10755 |
MS1!QXL0)<MODT7;G,S,S*21$([*SLTFK#1$&@X'>>FMR4RU(3T\G!X=10JU6 |
10756 |
M=]3YGM#8!9R<YXJHJ*CFQ,U-?J*FIH96NV]MRH#R\G)ZQ6&<T.OU357>V]M; |
10757 |
M!`0$D-,'SL)@,+3->;5:30Z.]N+KK[^F:=.FBLK*RB;G5Z[\6.AT.IHZ=;)0 |
10758 |
MJ]74O_]+'77>6/6;MT$"@-^UI7O,G;>@:;`I+R^GR,A(H=5J:9;S`E%:6DH^ |
10759 |
M/C[BVV^_I;Z#!@N]7D^;/+:VS7E)DJQE629)DL2A0X?HXX\7B8R,#')TM!=I |
10760 |
M:6DT;-@0$1P<W'2ZZR#Q7PC0GN?6K?M$("*]/=U))"<GD[N[NR@N+J:5*U>* |
10761 |
MG)P<<G%Q$7J]GN;/GR_"P\-I[.N3Q)DS9\AZ\'#SSAM1EN4IDB0)1*3NW;L+ |
10762 |
M69:?]31G2H!V/6<40*%0"']__U:/L7WZ]!'[]NUK^MQX'&[=^?\F?.X!/&]\ |
10763 |
M[@$\+_P[,&&\W^`-#%,`````245.1*Y"8()02P,$"@``````07)D,0`````` |
10764 |
M`````````!``%0!M;WIA<'!S+W!L=6=I;G,O550)``-I@(I!"F7-055X!`#H |
10765 |
M`V0`4$L#!!0````(`$%R9#$>*.&KM@```),!```I`!4`;6]Z87!P<R]P;'5G |
10766 |
M:6YS+W!L=6=I;DEN<W1A;&QE<E=I>F%R9"YC<W-55`D``VF`BD%4><A!57@$ |
10767 |
M`.@#9`"=D+$.@C`0AO<^11-668Q3&27&@4U>H-`3&DJON99(-+Z[0'%!X^!V |
10768 |
M]_WWW35-C*[!>CBB#5);H!U/G!D:;0OM`W\PSM,>[ZET#B1)6X/@9DHJ'+,I |
10769 |
MZR5-HX+OW<@/;D$5D@**R*/1*GOOB$D:T*4U&B0O>-D20'YII<+;VN22N@BV |
10770 |
M(NFF#1OU/#$S\[4OYOJ[7F$(V/_O&[ANK_]X>"7KKB$<K(J.B+M.&LSR(Q^P |
10771 |
MA#%D[,G8"U!+`P04````"``A<F0QX#TKN3\!```$`P``%``5`&UO>F%P<',O |
10772 |
M8V]N=&5N=',N<F1F550)``,N@(I!5'G(055X!`#H`V0`I5+1;L(@%'WO5]SA |
10773 |
M,T5=]F"C^&*6['5+?,>*RJ3`@*ZZKQ^4:KO$Q2PC(6E[[SGWG-,[7YXJ"9_< |
10774 |
M.J'5`DWR,5K2;/ZZ>B["A5!4+CXMT,%[4Q#2-$W>/.;:[LED-IN1\91,I]AN |
10775 |
M=]B=E6<GK-P(97`YB:`\6%WQ'QR5_A)2LI8HH$EJ&2&:!?#\`6.0PGE@4H(_ |
10776 |
M<#"L/+(]=[#A0NW!U<9(P;>P.8>R</#.+&!,(S9J?^,?P#:Z]@M46U5TPPIW |
10777 |
M%*JP6GM$6XEMKQ1@N=.U+?F-[E(RYT1)8C*DY2?=@%YI)PZ$VFE;,1^B'(I9 |
10778 |
M<5=:8=K/OXD:CNFTI42*BW/:A7K7WX#J"D;T^DO^YCD6F#$N>6_QO?_T>D-G |
10779 |
MZAGX[K-:IU6#ESZK_!]A7?7U*]>?3EG$K/L-?XI>LB0Q7)I]`U!+`P0*```` |
10780 |
M```A<F0Q````````````````$``5`&UO>F%P<',O<')O9FEL92]55`D``RZ` |
10781 |
MBD$+9<U!57@$`.@#9`!02P,$%`````@`(7)D,6/?(+.U`P``[P<``"0`%0!M |
10782 |
M;WIA<'!S+W!R;V9I;&4O<')O9FEL95-E;&5C=&EO;BYC<W-55`D``RZ`BD%4 |
10783 |
M><A!57@$`.@#9`"-55%3XT8,?L^OT.1>@`DV,'VX23O,A4!IYG*!(=`KCVM; |
10784 |
ML?=8[[J[ZYBT<__]I+43DI";-B]9>Z5/TJ=/<GP")_R#JYO;R0RFD_'-;'X# |
10785 |
M5].[\>?VI@<G\"=:)XT>PI?[*9Q'Y_$M_5]$9_&T/9R3$=L]%@BIT1ZU=V`6 |
10786 |
MX`OI8"$5@K`(KDZ^8>K!&[I`^&+^D4H)N*\3)5.8RA2UPW4LAJ-(<,2F_>ZR |
10787 |
M?_PKK$P-I5B!-AYJLG^+@:\I5AZDIAS*2DFA4X1&^H*Q&*9#B>"YPS")%V0N |
10788 |
MR*%:M0EOK$!X]BN\KX9QW#1-5+8)1\;F,1$1=T7/S<(W7%\FG;<RJ3UF4.L, |
10789 |
M[0X<9;EM8"BLAOYH#I-Y'Q+AI!LPVM?)XQ]W3X_P=?3P,)H]/L/=[S":/</G |
10790 |
MR>QZ`$C5$"Z^5A8=46Q!<J6813!'W(['6`O3IN`J3.6".%9"Y[7($7*S1*NE |
10791 |
MSL'*O*!F"9V!DJ7TPA/Y[BU_QEGSMM7E._*36B@8FRS4IK'9=/2OIRDUV:@7 |
10792 |
MZ;=])EIZ22[7N$1E*L+O&-\'8X<KU-]$2<V9EY@E:'/X+7'=\5-JEB*+-/I+ |
10793 |
M-KTWMDTZM2B8VV058-_'XRZ-J=6A:#@:'\/%V=DO:WF\LX]@I!0\M`P]H$.[ |
10794 |
M)*:[BL:D\]!,8X_<\;![.U*>B"42"6(U"+"'!X+EER`K>%LLY%RR(4-UO>;7 |
10795 |
MM[,GN$6-EK([/"YPP6)05+[M1H8FLW\\H+?K\AAD2JHAB__"HKG;0YNV<(Q% |
10796 |
M/6D*F1:0"M=*KK)F*5UH0==17@N=^,**8.)%14I-14+%2^T\BHS1@H/A<4M( |
10797 |
MDQ%,%F'"&^D*7A1"*=.$.3?APL*R2W*'3:/5BM'>,[E#XVY6@Z!ZWB.;0(9M |
10798 |
M'3T',(KZ\Y`'0H6MQKA29U2I;]T9*J,!#!`DS0P5>AZ]/>H"`2$EBY42:>"V |
10799 |
M#`LLF%*BU"=&8YN0Z;:[Q;]K:=_4OU?LAMG,A))#%KC6QGX:1`T!IK*2I-R@ |
10800 |
MU?]!QAILPX?0M%0U[E!S*+5N=MH/T<WL^M!G"$[B7J_WB=8=33O45AWUT\*: |
10801 |
M$FDYY\HD0L7N1>KN'*7.T<>"'+0HT57,9O#YR3I_P54I2),VSJEM+X@T_3$S |
10802 |
MC)%T$:LK>JU50/Q`7''-#BYI8SHO/37IWQZ$AU/G5PI/94E+=KB7)<6C$7!M |
10803 |
MFAW(^E_2DHARN>`(WWN]Q+Q^*(4F$-HOGKMR">TI1**U>-K(S!=#^(AE\-@S |
10804 |
M9ZM*9!G)[-2;:@CGK=T/4$L#!!0````(`"%R9#$I[9OR2@```$P````?`!4` |
10805 |
M;6]Z87!P<R]P<F]F:6QE+W!R;V9I;&5I8V]N+F=I9E54"0`#+H"*051YR$%5 |
10806 |
M>`0`Z`-D`'/W=+.P3!1@$&!H8`"!____*_YD815A8&30`?%!,@Q,RCW]*]DV |
10807 |
MW+KE?/&L<GZ:V+<-JH+?`V_N"+FZ>%'<Z6VJ:L<_F(HR6`,`4$L#!!0````( |
10808 |
M`!QR9#&QZQI<T1D``"L:```+`!4`<')E=FEE=RYP;F=55`D``R>`BD%4><A! |
10809 |
M57@$`.@#9`"55V54%$#7ID$I5Y!N6%"Z>UDIR:4EI%LD7+J7[E*0+@E!I+MA |
10810 |
MD>Y8A*5!A*6[\^7]_?WYWIESYYES?SSGW'MG[CP3I:&F0/B<ZCD:&AJADJ*< |
10811 |
MUA.V/1D,#^=IS;'S)7T"'`L5!3FTQ__.[^W%24^>9U!%`U<T-'R2_QHZ6D86 |
10812 |
MQ9,3UTT)(H\[C4=.S/!*!:[W1$G9I"0GK>,UOY_MZZ73N]0/1NTY56`IXB6^ |
10813 |
MIN#6#*+"-@KU*9>O)O^A8UC>J+>[7WX^?U%>_KZTX8._?>E,?J7CG_E?']__ |
10814 |
M\BKY(*>9][PB'P?#0C$P-#3TRZUU;2LJZS(A/<E!&,72VHR+.I5$#6X:H4;\ |
10815 |
MQD<^V\`$,)^'R>1IO";]'Z!W-7]_G(<\T#<HB89H:2W"]OW)I9A)4E!ID&4@ |
10816 |
M"!X"0PK*C3^P0B.Z\\YA5X?+%9=]QVB-KJK@-&9)QR)T!?&]W.]6"[9=WD$B |
10817 |
M/Y".W,_@@S`O3[S@+]N)14+'1F7]SF.L#'M5]UK`1_)$5XL>HB]8BP)4&)6E |
10818 |
M9]HL`U^=;C$+WJJ;),,*ILI$Z9HFUB:*84T!7^A--VL"9E_S.B>O*KR)0$\5 |
10819 |
MW0L(ZR*_6PG*16_FNPWXH4K5"XN@WPE<#T0!N`0-@X8#^Q5DK]X356[%;*D$ |
10820 |
M"KRS1#[MKV3X5L7\T+0"^8@BJ.Y?1(OST.J_WI]T?BM0!;A2;TO.1;/"-,4N |
10821 |
M0H/`V>`X8'U_O$L*.:2EW;FL/<8AY86L+,_X$`:1PAU$?K'S.1)=IQ<`:R3J |
10822 |
M9J%DJQ9S@=!/V3)!!:$,1SE+U=.YERFSOD&4<$:XE5F;I`XN*9/XE]A)JRF_ |
10823 |
M_MX<"2"#.&<'CA&1'^TD;*'\!R/:RGEW`QT3%^U5>1VM/U]$(Y8<?5<T5O>] |
10824 |
M1);OCA..DR?R$;1:271KFGI(06U##.6#8O,V1D#W\.$*<(E(.G,5DT?_59U5 |
10825 |
MO%6-5'MU](N^/0&+J>;B,P,NQ`9;)-VGV^Z6C+$<G<9=/4RV5K]%MB''#K_+ |
10826 |
M:;KE`#TTV!;YJR--Q^X`PDDQS8EA;P6T2MQ5*+BN*=(_;J"))CT,2NW5#V2C |
10827 |
M<L'(M_4$0AUHBM6__,Y>.[S),WXM+Z!/0]"&PTD'OU1+HO^>8R:J.Y2S(%0P |
10828 |
M%_ZH1&/1F!X],)GE]1.W6L$5@_<S5J0Q9DK_FXN/PD3.&O1TBM4JVK]>77K< |
10829 |
MYARM[O'4FC9.^6'JDS'G%`2>*AB`MD/I0NL(O4SGC[8C&_9E`R5QNP[1/896 |
10830 |
M**<>$H"O=S&J62&2!"G,:S;74I/Z1$6ZG/U89OF=K5'"O[`Z\?4YF/,,=!>Y |
10831 |
M4TS=.*^);F$3W>W#A8[-"KH6G=%7;\,S$487*\1&*!UI0C@2*7H<(Q[B?Z>U |
10832 |
MRJ/F4;=R[WT\Q8TH?ODQZ=4UZ+YI9>6%>R.366O;YUI)82)]=I5]JPA[6_YH |
10833 |
M[$=AJ)8#!NYWLDE7\N&KM%,W2C$U/R*:_8B;-'M=#)5P@R.$\07X<(9J/:+/ |
10834 |
M',^VI$RC\]72!P$TFU$!$$T%+AT^GFW=,$V\.LVHL%\/,.AQPP46'0*M,1Z[ |
10835 |
M=R]#%D2/K?5Q$8#Q8K\HUQ?V$%<2%R))S&*&'^KN)\,K8T\M)=LB?-ND@AVO |
10836 |
M:+EOQW'(<%=S:P9,=\E95V!Q#CFC*8;A(\@3(S7U>7IL^OC3-B7N6^I[#5`P |
10837 |
MP@L[/VPH2C64!`G4(@#"7>'T]QH=N7A&F!U,U-3QTF[BU^'#&)20"FQ*$#*( |
10838 |
MF0S<AGLGAN[[Z".'FIN[#4(BMCF[N%.2-5:@X7:"SV""$BWW+R9OJ6-/[_C@ |
10839 |
M)$$'S#'OJ(G/)R8T"-MB/_K`(,\Z)$:Y;_MQWUV9N8$I8%="^;+[/G(5]%'K |
10840 |
MF(]SK\>63@-/:8CJA^^;8:)+/(MDNNQ=GL5CUH_Z#+8O<G>IWZ[I7:\Y=0XT |
10841 |
M"P`.R"[7EPF\IU^KC5M"QR)3KLVOH7'Q5)#@E?GNZJ"/]IZ[7T=H"XTZ#80Q |
10842 |
M33@XW*.F#9E"[IV)T'!;]AYUYHZ.J[$OA?^:XJPR1,P$_<,Z6#FH>?P6>.K? |
10843 |
M1[3:ZJA6I6/O.A<`QU/F65$D6/]9@G>3)X3VF<'/(<LE21TC7Z\29RWE*!G+ |
10844 |
MU5;$&8*]3`POC50K+(%CR)U^D&QPR&BSR5QAM$T!#8#=F^](4N^=7*MH`"^` |
10845 |
M?9BPR`%B=V$-J0FI-\X:NS6/T6B2CB*M.'()-ZI`+ULZ9X`D7N,\QXWSX11= |
10846 |
M_.A70U/'N?=O?=]>)>YA7`Q.?6JK0Q![-'LT#S_DT^5XTD-MWT[CUP!H0:E# |
10847 |
M3=3*4AYS8%HDW8L?'\)'1`6?V')PA1G>_240?$QAHME:!K7^M4,UU*ZW.7'E |
10848 |
MDPR5U)42P,47C>.UM\4'+`Z.!*<UHM/NN5(*S9\CMJ@0[/[.8TP=.7_4`;V^ |
10849 |
M;9<5?=Y6222OX.][9K?_D.?>G<,IVPG<6Q.O%LY1!+(?TN%"SEDW8B#?+I@S |
10850 |
M-@^S2_%5=RE1!%>/8K&`%=&)37!C)^WDQ=(.=$3.R\\$2_6R&[,'96\2U0J. |
10851 |
MT_YKBDFSDCFZ3WYQ7PV/`&7-L(^6;'1_T^5A#L?2%:-9?KU^HD)@+G'W,P<D |
10852 |
MRL`>XOJ#RPC;;\LS?E'N4(*,#^X7O5A/@G=UN];'P&%;6TB8&;,%^?,B9-Q3 |
10853 |
M"9WTTAGM1M5.'"*C$\L!&&TRO&OWA!+*BP.'$UQ_.9C?P(E[_^_3]I`@+/.[ |
10854 |
M"FO-^%(R1/1K$28N0U$E=<)6/<&J5#"L,.D=BN7].._O""DB\I`-%=>G,EQN |
10855 |
M'Q`[)EC,`J3('&6O'DR_6E3*J?ZK^QQ:E`0"JX".B7WT"/)6':.WQ#/Z[93C |
10856 |
M\8[R21\THHT+7&N*XV+W##`ZN!X[%!]MT+6#Z?_=IC+0E/M8'O*V^=;13RJ: |
10857 |
MQ*IH\]."@A/TO%*'5A(F_7406*LC/U\R$R/C3G6&E/`>3TMJ>G[*-,W-2"`/ |
10858 |
M)EUYYSM-X7,D`L_XMBS9?_,4RL_?Y*[NW?(3KZW.<.YO#T8^>S_LG&LW&L79 |
10859 |
M$G_3&,$O%7;4Y;P.[<&K(@C-'6-/A?91FWKHDRE86UWCD?]C2C>G83IL1+]\ |
10860 |
MWTSBO?Q]E;+P=EYJ-6)HY4)7X?*K/%4V=QV]A,X'Q-89X^<$=J$LW4S]6.@8 |
10861 |
MNVSL\XQHZ#2[BY>-1'8WQGZ4U&43<B`&@/EJ)W"\$`*"L-8E16D"<T%J'>-? |
10862 |
M^2M,@=4E>X(&Z3DT)&/L$5XGC)LSC0BA6*@&=0(49K^OX,=X**0`.U(Z64)L |
10863 |
M93$,,X,#GS4E&$+^>8>8E!&G$#["IG47QF_]6<#1QMS/+'Q%=!%BY0ID2_VY |
10864 |
MPOTLRE%W*TJDE)J7QG'0_ONW#^!A8%8#1S70]:::'V6O?.1O:/G;@//Q<+_` |
10865 |
M&W,MPSYI<?PJ>L.Q1X=9[@_7S/#*&^[9,Y3W;38A^(6<NJI/G>R;R5E*;X2E |
10866 |
M%.F643I+>:K/H-0<AC7_V4'55^GX2J1/PJ1*MF75E.WTW!&F_-E6;C]%DP'4 |
10867 |
MT/)E^1OEK7*042I/[S)KS`TVORW-FU?(KNC*KR=M]R9'A%-60QAD@XE`^?G, |
10868 |
MPXOUCK@3$UPFLGUVV3))O`/7C<*!(8,7?!DH5>]1CYN9NSGNT<3FJ4TNRL#H |
10869 |
M9;/>647OY2KDD6Q4&$5DNZ'N.]3@\_<(M$7?9%+/<-+L-_M>C>YI'9PDI\S7 |
10870 |
M74B$8];;%585'_444MRA1,L1O(3*KT>2_X/H^R@'.1&X0:@KQ.:?,!8-52&F |
10871 |
M90C*B(9'"XEW%=Z0@LP9PR^NPQD$C@=LK3%2/U6!V.3Q7UGYE'7W^Y9ED7*5 |
10872 |
M1;EK57Y!%?)ZG;Z0[^P4FG+%ZX7W_@"YRPM;*"=,,."]E27H4,<>RQ)3,_5X |
10873 |
MB)VND[_&Y77NXQQ1Q.JNB4S3Z/CQ1:B5Z@I5<;&*@FS6PQ&1U=5?8>'#+GA) |
10874 |
M0H[S@E,(Q%R='2+R3XIP['C]18'M)_Y+`I&&.@%A$&6/&RP.D]/'<,]RJKVL |
10875 |
MR7L9F30F=:#H1YE.,>I>IY?RTLX>Z*`?"DFJ0C?'G"?T:F?J"5F8GVF@\L/G |
10876 |
M@[:`\QN7.^Z,I.;:L^U-`*<\HSF@S.EI'4%(04='SM^_?P%O?/S3Y%)')M0` |
10877 |
M%F#7[Y`XRI/EHKJDZT(KGO(NWLBY^CZFHKP)FK_2N[+Z;?"TJ,'YUO$LP8/" |
10878 |
M4W4#Q40;,U@#D:,GH$.16HKX2I+*Q+B[($0!MY*H^-_-U7W;V3HKR[&4Q448 |
10879 |
MK#?`?(.HKRAZD,3%Q26-W_HYHE@=E>4ZQB@AD;FX:/0NW[N`N!JYSQ301OI= |
10880 |
M6&Y<GFS#"6,//[7(2O6UU.XLQS5BF/[4R5SLD"REP+ZJNBDZ?/-[YE8GVWJ7 |
10881 |
M7)E,-HVMN%?@M"#QN*3/'9)G]'A<X7.)?.5=K!4QBW?D2PDO(=H$HI:99MJL |
10882 |
M(E=[Z1O&$KJ<5%;-7$>?A`K72=?2="E_\>;FYBS?@V8K:^NOJ:G]^XTK8U%L |
10883 |
M.8H>'A>1).U2WRP>4?/C>X_]1)J]%;)'>J"JYSU8.9B,-_9]]%X#IA7MMMAZ |
10884 |
M/*#H.>\YVOPI0<*$BF,#;UHNQSS]R5VX=NK*K?C*W;5+H$P/UL_V*).DX_/1 |
10885 |
MW'%:SQ/`Z::YT+Y\*3=P$%,B@U"J-&$5T5405!%3#L)H-21T>RLKBQ`L*MSV |
10886 |
M"_@P]"P2N':;A:-79C3\;S!I<'S<]N'N^M_F)K_=%`L1Z$P#+<=GYTT\Z$+_ |
10887 |
M-F`WAL6+D'?6B9V98B?M8$+-KQBRBZK-.AC\G8[KLFS,<V'SJ:?;;94XIO** |
10888 |
MMIAKY)#5+:%B[7R+Q=L]FF/'>V>4Z3:]@9)O<QPLGKP>GS56`O:AZ&$IU;;R |
10889 |
M\E$N_D9I>0;VOQQXL[7,4I;AXD9K4J*4?U0E<,V`PEJNX/\HP.E&>!%NMK`' |
10890 |
M9,F%$5J7B!DOG_5@^OW[81?PK=DO5Y#7LH_@#@;6,W9_56L[SLK&%C&8Q*:M |
10891 |
MH3'A//9'SW04F]P(7JB4]"YVJUT6>#$%(M37[9<@OX!"<"P^-<NE>E3[<`<+ |
10892 |
MD8T.%FS,O&J#[J;_N?^IPRWI-<9$-CJ*N6I*K8RL42G[9AFSO#LY*1A7,X[O |
10893 |
MC9JD?JOZ*B<Z+52(0+5M+2O,]_'B$-(&XT%C0W\LW+V+J=X^.S_M%&1D]I[J |
10894 |
MPFIL5Z_1ZZYA<._2XF[:D$93-H5]^VT-!G(H6<X&XXM=9'$,C(\7N]A(2>3< |
10895 |
M@F4DI'85OVFS`G^`C.8?',W$HLI+K2'9XLE`E13>@`>_(K7LH1R0[^O7K[^W |
10896 |
MM-Q.WX@LN9$`@<"VXS[J;\G)!MW&7\^)PI">[T42]T[-#,C&.VI?52JP6:1Y |
10897 |
MN1T?<'7Q[D9[G$X(%<]#?(3X`7^-TV5QO:S]^?(BYQA;/GZB^J!TXBWF*"VU |
10898 |
MV!(\"PNP<Z\JJ>#)#SBA)C<>WVMSH(.=:^]DAAB[>!J36_`LW:$_>O\5?H$X |
10899 |
MJ!\<_5+.#$&S&S11:]YDU%UZ#(D(%-DV>@9LD'_SK.GZ7[.`724RR"G(/,@< |
10900 |
M(TZ(E@TBL6\A`TB"+#34KBZ0)^7F$K_=/=CW$NAS%TPTA$O;B<,)X;4@OX]+ |
10901 |
M/3E/MX9$79(1(_F;G+1TT!)3B%V&\<.\D>>2.XW;A+3D!=+R6VHJ<>E6>PC7 |
10902 |
M1;EU?2&+MQTQM7Y*F/F[2(ILP-_SK5!F'(EACX76*6>3O>]Z[!="ZZ<^+8LK |
10903 |
M-9R<PS*S[FTUT1X[F@B*R^'^ZP5U]9BQ[85U_[$L2MRCAY3G3['JD`?T^`Y_ |
10904 |
M/A3U./ALDF^%P%GV/=%K0%*_0-@<RH^(.RA/KD\*L:J+(3O<C&+A!6"9<2]Z |
10905 |
M1"W_E%WE:Y;!`A(^3D%!_L:.KAC/^S0@N!,WL#O%9)X/P0'/2:7/.ZZ-H]B7 |
10906 |
MIB1G4NOS%NJ['2@E[C=VKK<92>M:\ER!B'(^7X&*CF0(V0^,C%B-9@A=^4G- |
10907 |
ME!ET_^V-:37V6_&_K';;UC+QW1>*CHF)@)R%,'HYNG0=;X)S8-&.&_5>(/$\ |
10908 |
M:&'!@(AJ*?/E'T'"X9HC;]`6W>?.6YP/L@!^-T*$(%^YVL*'67>WN'AB1J&Y |
10909 |
M_LD(VH$.:CK4A@1/E3S]I;AV!"0=[L\A/#&O81ESSV0F<-0U5DZ=W6/R"KAC |
10910 |
M\^]N*]SN:\9>#%GS*,4U8-XF.R5Y3XF?,"32+H^YQ\F`##$E5)=`CPJ3<$]9 |
10911 |
M/FKE7BOSV=#\--.AJ+)!E''YS?*#FX-C^*!H[D$Y<>9Q3R-VE?^MQYCH.L$G |
10912 |
M>_O!D9&]XV#KX13G:4V%K[FYXSU1)'.-G^F'4[ABVHL;P'C+;7NVGB>+K8:3 |
10913 |
MY\N[LBVL+SOR/MEV8C_.]&G)=,UL)12C`C-8:\FS%29WV$I)O)U$+<RH`$]G |
10914 |
M$C/0\$4MG@A:V>TMC_0(]HI5C'_WC')\3KH]_@.OV7GWXXU<9&7M50(,QFYQ |
10915 |
M<!T_QHC/"XFD0&,E$Z=3Z;8,WIP\*O0PS>Q*^BION4TV_^D7+Z0T9G57AM5< |
10916 |
MX."7BANR[.3$A5]`8++N0--F%F$SEC7X.PQ?XD)$4/!,PE\A?U6(83_E-,$^ |
10917 |
MNWU+DE6-)_+VM]DWKGF]>4.JCXZ1CU*^*L_??+AG<:O@>T5^2)HBP%?:C6'` |
10918 |
MT>M4:2RD_5".^6O&D=WV;Y/.[6(YVGA'>_(W%IYZB/1.!BU7"?(@H)3U8UT$ |
10919 |
M1(NIJ*Z;BR0!>RTN]-=&2IZEA`5*CKO]\T,[OIA/,TE1)U4V:'F-G(!C& |
10920 |
MF<&LV\13SF;8X+#],:[$Y\PDPS/YR,8<D%JNO^2LIJNKFVJ?D9EY.6RCI,*J |
10921 |
MX_&4R3E#K0%%H/(>OA+4'^F^"[;ZC20"S`[MAM2$E73'>KO+/L.-5>\NL/<S |
10922 |
M,1G>I!7R:W(D3N)'5'/&U&<.V?UTKRO,V&ZQ@A2^^=V0;;T1JKK&_8+_>U,7 |
10923 |
M7'S'D//ZN#*-UUPF8M3D^H0Y.]^T*JVMMK(W,UU63M?#?AX2S"KX#JE&KRO5 |
10924 |
MR%&"1E<94?2;^-F[%N%?HYDBQ!"$N'+0V=D9X.M!B/F4G%4PK4;=S>#.G-OF |
10925 |
M&5=]<MVT6.:0B:G6(ST-$<#!PX2"V7K$2Z1:)!'Y?-&V_7S"?=S/=D.!-D53 |
10926 |
M)T9+X\'IOC^C7)4B4]G2/A+:P^"@+T>09/9:QM4P\JFOU#4H()N=A6K"6#^L |
10927 |
M5I>_,U_=_'TQG6PJS,EIW%UE9CK!)%#O"JJ*3J7+\]O(Q1,1(>'C*N($E`9] |
10928 |
MR,#5OC1/(RL'),U[)"TYDL$=63K.1N@_/_7KTH#C&%.W?\XI1:<]"A9\W]QW |
10929 |
M9ZH=YOAG*LFEA&MM1O.?9%SK0<LP;+DJG_"O?](+6LD_#=X(+4,ELUYZG]8+ |
10930 |
MJ'CJ#]5"@YK^K$]=8F"VI]#8JF=9D,I)F#K<+2Z4IR@RZ.P/MF#]R7S=Z/ZK |
10931 |
M??!,K9D-=TO%^NE'9)&+J,4$G;#7>8A6]+#]S\K7FTN=#QBK&#T[H4Z[F3Z! |
10932 |
ML8NDY6?'`JAX8CU23S>OY'!M,;?MR\%CRFG8%=EH:\/:\%#7V_5`RPZEDYZ0 |
10933 |
M*[\-R]`01\'W>C6M?[ZW+/T;S,XKVGF!.]SRCJGYKAS.55]?_Z1_-&OOI!L> |
10934 |
M=X'"@O70\R'/_-L/XOKUGY*77%P!1R*XY?H%8A&-D,POI%H*:KG"4@M23I4! |
10935 |
MI*U3691_Q))>4]80@I>Z=&ZG@;:549\B$E*I5L_^$!N=)Q[V)QRU2YC\W:96 |
10936 |
M7XG3;ZT'*+8^[&&7K[2N`W\#,!.XL3Z+)%`5A5E3U0GMU?<^<%HH9>7,./`' |
10937 |
MF5E/W%3:@KG]CR6PM9_-O@?8?;:L6<8)TIO#K-/Y9F%`UK6CG%CC\M/KD/#W |
10938 |
ME'%324MB2M5@CG!,.83U#R/W5[LO6^S_*M$:L3#0-3^1^ZOR<I&4:B*W2O4J |
10939 |
M#SRZ%.C=OX7+<Z>O_R1O*]BZM_70*0O6$BWG`SC-HL^3J.)IFV@SAQ7TSFAG |
10940 |
M_!KV>>G+!'!BF)$&;=3[<AL`+Y<8P'7"U]5J?C=]B,L<[P5\K`59BJF./^[9 |
10941 |
M,^%4&9?OJQZV5Y`6G=KA!7SQ34:G'S677+5!^ROIK@,ZJI_QU_H^R%@#LP&, |
10942 |
MAN;!?WQY557<-`S(N,R3\GU"PB-[,WV9>3`J!ZM8V1N(T=C9V46E.,)N1G/A |
10943 |
M/92%RDEND_GR2]S(-F_75/OL#$F%5J7U3\L#_MA3#G9N+SP"WHV*-B_N:`+[ |
10944 |
M)FM@DWK5"BL"\AU)CG(B`URAT"$J?)V`W4U49*ALF\ML<_7E%?WU&I)+DNNL |
10945 |
MH^$7.85`7W<I.#.Y`7I0YL<$(0RELI=@'JNQBI*)0,90,^M@<PD2IJ2&87#A |
10946 |
MQ&R?11W&7>,%Y"Y8D>R]A0(LMH<*C*6"-;F\V";I61^%+_(4]V-$"<53,\HL |
10947 |
MS7!LD)9*CFQU7Q9'MBZS77KT?J&R'F1-6M8Y`RVMM\E24,+#576];Z1\T11; |
10948 |
M]-;S:HM8LOT_J;VD*[?7M(WI*.O]WM;+,%I<7=O[=P.TANHF2Y6KQP">/)RB |
10949 |
MLZKGM*T-9?(PTQ`E)69%F[_[N6@H;2S+Y>Y[.:DS*R/K2$+?:=A3F;(4"A"> |
10950 |
M,WX_%I](JRKA)9Y+_MER%/_17+1':CH;K0&O3S%/4"FICRH85:1$#1Z!$[4C |
10951 |
M?%[G9"LW>-?(_P0JGZUA<<1=;/W266W:8\FYVRDL'&D3C'/(?5=J7MTZ*B=; |
10952 |
ML%3U$]^PS92Z9(7ZK\PJE[B_STO_``Y6SW@1<GJG)<+=D'V:(6;7M($7H%D. |
10953 |
MD9"'!-2>^J`PR=IOLU2'>[Z5O9>LK];ZH+[18V754ES8W_D<ZG$A#1@BZ+M6 |
10954 |
M@R]W+*-\\E1^N`K_)JG3?3#=T>+;'PQ?J<0&<PJ=FOMM/C$T/';J+2^HS-J) |
10955 |
M,]5@17TOVJ98SM_`IQCOUJQY\__[$S\,/6+"UM'>!+>.WJ,]#25Y-;D*&;/@ |
10956 |
M_P!02P$"%P,*``````"`<Y4Q````````````````"``-`````````!``[4$` |
10957 |
M````8G)O=W-E<B]55`4``S]YR$%5>```4$L!`A<#"@``````E1)K,0`````` |
10958 |
M``````````T`#0`````````0`.U!.P```&)R;W=S97(O<')E9B]55`4``\H2 |
10959 |
MDT%5>```4$L!`A<#%`````@`E1)K,=_]B'*-!@``>Q,``!4`#0```````0`` |
10960 |
M`("!>P```&)R;W=S97(O<')E9B]P<F5F+F-S<U54!0`#RA*3055X``!02P$" |
10961 |
M%P,4````"`!4@F0Q(N^V6&<C``#*(P``&``-````````````@(%0!P``8G)O |
10962 |
M=W-E<B]P<F5F+T]P=&EO;G,N<&YG550%``.PG(I!57@``%!+`0(7`Q0````( |
10963 |
M`")R9#'@^Q%V7@<``&D)```4``T```````````"`@0(K``!B<F]W<V5R+U1H |
10964 |
M<F]B8F5R+F=I9E54!0`#+X"*055X``!02P$"%P,*```````B<F0QV)#%O5<" |
10965 |
M``!7`@``%``-````````````@(&G,@``8G)O=W-E<B]4:')O8F)E<BYP;F=5 |
10966 |
M5`4``R^`BD%5>```4$L!`A<#"@``````(G)D,9[\J5?`!@``P`8```X`#0`` |
10967 |
M`````````("!134``&)R;W=S97(O1V\N<&YG550%``,O@(I!57@``%!+`0(7 |
10968 |
M`Q0````(`")R9#'B>DX+X@```)H!```4``T```````$```"`@48\``!B<F]W |
10969 |
M<V5R+W!A9V5);F9O+F-S<U54!0`#+X"*055X``!02P$"%P,*```````B<F0Q |
10970 |
MM1I"&0P#```,`P``%0`-````````````I(%O/0``8G)O=W-E<B]H:6=H;&EG |
10971 |
M:'0N<&YG550%``,O@(I!57@``%!+`0(7`Q0````(`$R8DS&B#*7VS$@!`,-( |
10972 |
M`0`6``T```````````"`@<-```!B<F]W<V5R+U1O;VQB87(N>&-F+F=Z550% |
10973 |
M``./%L9!57@``%!+`0(7`PH``````")R9#%=R2MYD`$``)`!```9``T````` |
10974 |
M``````"`@=B)`0!B<F]W<V5R+T-L;W-E+71A8BUO;&0N<&YG550%``,O@(I! |
10975 |
M57@``%!+`0(7`PH``````(=>93%CD$/_L`$``+`!```:``T```````````"D |
10976 |
M@;2+`0!B<F]W<V5R+W!A9V4M;&EV96UA<FMS+G!N9U54!0`#O:^+055X``!0 |
10977 |
M2P$"%P,*``````#+F9,Q0SR)N%<^``!7/@``'``-````````````@(&QC0$` |
10978 |
M8G)O=W-E<B]4;V]L8F%R+7-M86QL+GAC9BYG>E54!0`#7AG&055X``!02P$" |
10979 |
M%P,4````"``B<F0Q3B05*SP```!#````&``-````````````@(%7S`$`8G)O |
10980 |
M=W-E<B]S96%R8V@M87)R;W<N9VEF550%``,O@(I!57@``%!+`0(7`Q0````( |
10981 |
M`-B9DS'_8=-R524``'LE```9``T```````````"`@=[,`0!B<F]W<V5R+U1O |
10982 |
M;VQB87(M<VUA;&PN<&YG550%``-W&<9!57@``%!+`0(7`PH``````#M@93&< |
10983 |
M*,]+=@<``'8'```9``T```````````"V@7_R`0!B<F]W<V5R+VQI=F5M87)K |
10984 |
M+6ET96TN<&YG550%``,"LHM!57@``%!+`0(7`PH``````")R9#$13AS9W`(` |
10985 |
M`-P"```7``T```````````"`@4'Z`0!B<F]W<V5R+W!A9V4M=&AE;65S+G!N |
10986 |
M9U54!0`#+X"*055X``!02P$"%P,*```````B<F0Q!]%04_X!``#^`0``%@`- |
10987 |
M````````````@(%G_0$`8G)O=W-E<B]396%R8V@M8F%R+G!N9U54!0`#+X"* |
10988 |
M055X``!02P$"%P,*```````B<F0QK:[IVT$"``!!`@``$@`-```````````` |
10989 |
M@(&N_P$`8G)O=W-E<B]396-U<F4N<&YG550%``,O@(I!57@``%!+`0(7`PH` |
10990 |
M`````")R9#'&^^M<'0(``!T"```;``T```````````"`@30"`@!B<F]W<V5R |
10991 |
M+U-E8W5R:71Y+6)R;VME;BYP;F=55`4``R^`BD%5>```4$L!`A<#"@`````` |
10992 |
M(G)D,76TG0EX`0``>`$``!``#0```````````("!GP0"`&)R;W=S97(O26YF |
10993 |
M;RYP;F=55`4``R^`BD%5>```4$L!`A<#%`````@`(G)D,3A*:OF,#P``;1(` |
10994 |
M`!L`#0```````````*2!6@8"`&)R;W=S97(O5&AR;V)B97(M;65D:75M+F=I |
10995 |
M9E54!0`#+X"*055X``!02P$"%P,*```````B<F0QXDZ/=((#``""`P``&P`- |
10996 |
M````````````I($T%@(`8G)O=W-E<B]4:')O8F)E<BUM961I=6TN<&YG550% |
10997 |
M``,O@(I!57@``%!+`0(7`PH``````")R9#%$]5ILP`8``,`&```4``T````` |
10998 |
M``````"`@00:`@!B<F]W<V5R+T=O+7-M86QL+G!N9U54!0`#+X"*055X``!0 |
10999 |
M2P$"%P,*``````!*7V4Q$;;]<MT$``#=!```&@`-````````````I($+(0(` |
11000 |
M8G)O=W-E<B]L:79E;6%R:RUI=&5M:2YP;F=55`4``RRQBT%5>```4$L!`A<# |
11001 |
M%`````@`(G)D,?>)VO="!0``"P<``!\`#0```````````*2!-28"`&)R;W=S |
11002 |
M97(O5&AR;V)B97(M<VUA;&PM9&%R:RYG:6955`4``R^`BD%5>```4$L!`A<# |
11003 |
M%`````@`R9B3,;2(J*@E;```OFX``!,`#0```````````("!R2L"`&)R;W=S |
11004 |
M97(O5&]O;&)A<BYP;F=55`4``WD7QD%5>```4$L!`A<#%`````@`(G)D,07) |
11005 |
MPTJA`0``;P,``!<`#0```````0```("!-)@"`&)R;W=S97(O86)O=71$:6%L |
11006 |
M;V<N8W-S550%``,O@(I!57@``%!+`0(7`Q0````(`")R9#%0OOIR>P4``$4' |
11007 |
M```:``T```````````"`@1^:`@!B<F]W<V5R+U1H<F]B8F5R+7-M86QL+F=I |
11008 |
M9E54!0`#+X"*055X``!02P$"%P,*```````B<F0Q\_<8)+\!``"_`0``&@`- |
11009 |
M````````````@('GGP(`8G)O=W-E<B]4:')O8F)E<BUS;6%L;"YP;F=55`4` |
11010 |
M`R^`BD%5>```4$L!`A<#"@``````#IR3,0```````````````!(`#0`````` |
11011 |
M```0`.U!\Z$"`&)R;W=S97(O8F]O:VUA<FMS+U54!0`#FQW&055X``!02P$" |
11012 |
M%P,4````"`!`<F0Q.39WZST"```T"0``)@`-```````!````@($XH@(`8G)O |
11013 |
M=W-E<B]B;V]K;6%R:W,O8F]O:VUA<FMS36%N86=E<BYC<W-55`4``VB`BD%5 |
11014 |
M>```4$L!`A<#%`````@`)YR3,2O,06Y4'@``@AX``"<`#0```````````("! |
11015 |
MSJ0"`&)R;W=S97(O8F]O:VUA<FMS+T)O;VMM87)K<RUT;V]L8F%R+G!N9U54 |
11016 |
M!0`#R1W&055X``!02P$"%P,4````"``B<F0Q_.S?N<$```!I`0``(0`-```` |
11017 |
M```!````@(%\PP(`8G)O=W-E<B]B;V]K;6%R:W,O861D0F]O:VUA<FLN8W-S |
11018 |
M550%``,O@(I!57@``%!+`0(7`Q0````(`")R9#'EL0&'K@```&,!```5``T` |
11019 |
M``````$```"D@9'$`@!B<F]W<V5R+W-E87)C:&)A<BYC<W-55`4``R^`BD%5 |
11020 |
M>```4$L!`A<#%`````@`(G)D,0!.1KQ8`0``-P,``!0`#0```````0```("! |
11021 |
MA\4"`&)R;W=S97(O8V]N=&5N=',N<F1F550%``,O@(I!57@``%!+`0(7`Q0` |
11022 |
M```(`+&:DS&Z"LRH;Q@``-&%```3``T```````$```"`@2;'`@!B<F]W<V5R |
11023 |
M+V)R;W=S97(N8W-S550%``,-&\9!57@``%!+`0(7`Q0````(`")R9#%F#U]P |
11024 |
MV`$``'($```3``T```````$```"`@=O?`@!B<F]W<V5R+V)R;W=S97(N>&UL |
11025 |
M550%``,O@(I!57@``%!+`0(7`PH``````!MR9#$````````````````-``T` |
11026 |
M````````$`#M0?GA`@!C;VUM=6YI8V%T;W(O550%``,F@(I!57@``%!+`0(7 |
11027 |
M`PH``````!MR9#$````````````````4``T`````````$`#M03GB`@!C;VUM |
11028 |
M=6YI8V%T;W(O8V]O:VEE+U54!0`#)H"*055X``!02P$"%P,4````"``;<F0Q |
11029 |
MCNOQSML"``#_`P``)@`-````````````@(&`X@(`8V]M;75N:6-A=&]R+V-O |
11030 |
M;VMI92]T87-K8F%R+6-O;VMI92YG:6955`4``R:`BD%5>```4$L!`A<#%``` |
11031 |
M``@`&W)D,<B#)S:2!@``S`8``"4`#0```````````("!M.4"`&-O;6UU;FEC |
11032 |
M871O<B]C;V]K:64O<W1A='5S+6-O;VMI92YG:6955`4``R:`BD%5>```4$L! |
11033 |
M`A<#"@``````&W)D,>--XFTI````*0```!T`#0```````0```("!GNP"`&-O |
11034 |
M;6UU;FEC871O<B]C;VUM=6YI8V%T;W(N8W-S550%``,F@(I!57@``%!+`0(7 |
11035 |
M`Q0````(`!MR9#%*-T.N;`$``%T#```9``T```````$```"`@1?M`@!C;VUM |
11036 |
M=6YI8V%T;W(O8V]N=&5N=',N<F1F550%``,F@(I!57@``%!+`0(7`PH````` |
11037 |
M`!QR9#$````````````````5``T`````````$`#M0<_N`@!C;VUM=6YI8V%T |
11038 |
M;W(O<')O9FEL92]55`4``R>`BD%5>```4$L!`A<#%`````@`&W)D,7:SD,V, |
11039 |
M`P``.P<``"``#0```````0```("!%^\"`&-O;6UU;FEC871O<B]P<F]F:6QE |
11040 |
M+W!R;V9I;&4N8W-S550%``,F@(I!57@``%!+`0(7`Q0````(`!MR9#&98$<[ |
11041 |
M@@```(<````@``T```````````"`@?;R`@!C;VUM=6YI8V%T;W(O<')O9FEL |
11042 |
M92]M:6=R871E+F=I9E54!0`#)H"*055X``!02P$"%P,4````"``<<F0Q*>V; |
11043 |
M\DH```!,````*@`-````````````@('+\P(`8V]M;75N:6-A=&]R+W!R;V9I |
11044 |
M;&4O<')O9FEL96EC;VXM;&%R9V4N9VEF550%``,G@(I!57@``%!+`0(7`Q0` |
11045 |
M```(`!QR9#$,TS?7K@```.0````G``T```````$```"`@7+T`@!C;VUM=6YI |
11046 |
M8V%T;W(O<')O9FEL92]P<F]F:6QE36%N86=E<BYC<W-55`4``R>`BD%5>``` |
11047 |
M4$L!`A<#%`````@`(G)D,56)HW2E`0``608```P`#0```````0```("!>O4" |
11048 |
M`&-O;G1E;G1S+G)D9E54!0`#+X"*055X``!02P$"%P,*``````!\<Y4Q```` |
11049 |
M````````````!P`-`````````!``[4%>]P(`9VQO8F%L+U54!0`#/'G(055X |
11050 |
M``!02P$"%P,4````"`#P8'$Q%Y)5&C`&``!3%P``#P`-```````!````@(&8 |
11051 |
M]P(`9VQO8F%L+VUE;G4N8W-S550%``-3A9M!57@``%!+`0(7`PH``````(]H |
11052 |
M:3$````````````````,``T`````````$`#M00K^`@!G;&]B86PO;65N=2]5 |
11053 |
M5`4``ZX&D4%5>```4$L!`A<#%`````@`'')D,:=LYC`\````8P```!H`#0`` |
11054 |
M`````````("!2?X"`&=L;V)A;"]M96YU+VUE;G4M<F%D:6\N9VEF550%``,G |
11055 |
M@(I!57@``%!+`0(7`PH``````!QR9#%D^=$<&0(``!D"```:``T````````` |
11056 |
M``"`@=+^`@!G;&]B86PO;65N=2]M96YU+7)A9&EO+G!N9U54!0`#)X"*055X |
11057 |
M``!02P$"%P,4````"``<<F0Q)CO?<I$```":````(P`-````````````@($X |
11058 |
M`0,`9VQO8F%L+VUE;G4O365N=2UA<G)O=RUD:7-A8FQE9"YP;F=55`4``R>` |
11059 |
MBD%5>```4$L!`A<#%`````@`'')D,7RP(BH\````8P```"``#0`````````` |
11060 |
M`("!'P(#`&=L;V)A;"]M96YU+VUE;G4M<F%D:6\M:&]V97(N9VEF550%``,G |
11061 |
M@(I!57@``%!+`0(7`PH``````!QR9#&G->:MA0$``(4!```@``T````````` |
11062 |
M``"`@:X"`P!G;&]B86PO;65N=2]M96YU+7)A9&EO+6AO=F5R+G!N9U54!0`# |
11063 |
M)X"*055X``!02P$"%P,4````"``<<F0QIVSF,#P```!C````(P`-```````` |
11064 |
M````@(&&!`,`9VQO8F%L+VUE;G4O;65N=2UR861I;RUD:7-A8FQE9"YG:695 |
11065 |
M5`4``R>`BD%5>```4$L!`A<#"@``````'')D,:6Q,GZ1`0``D0$``",`#0`` |
11066 |
M`````````("!&`4#`&=L;V)A;"]M96YU+VUE;G4M<F%D:6\M9&ES86)L960N |
11067 |
M<&YG550%``,G@(I!57@``%!+`0(7`Q0````(`!QR9#'667E^C````)8````: |
11068 |
M``T```````````"`@?\&`P!G;&]B86PO;65N=2]-96YU+6%R<F]W+G!N9U54 |
11069 |
M!0`#)X"*055X``!02P$"%P,4````"``<<F0Q'>4D^(T```"7````(``-```` |
11070 |
M````````@('8!P,`9VQO8F%L+VUE;G4O365N=2UA<G)O=RUH;W9E<BYP;F=5 |
11071 |
M5`4``R>`BD%5>```4$L!`A<#%`````@`'')D,8]QYA0T`0``.0$``"D`#0`` |
11072 |
M`````````("!N`@#`&=L;V)A;"]M96YU+VUE;G4M<F%D:6\M9&ES86)L960M |
11073 |
M:&]V97(N<&YG550%``,G@(I!57@``%!+`0(7`Q0````(`!QR9#$[(DHW/``` |
11074 |
M`&8````C``T```````````"`@4@*`P!G;&]B86PO;65N=2]M96YU+6-H96-K |
11075 |
M+61I<V%B;&5D+F=I9E54!0`#)X"*055X``!02P$"%P,4````"``<<F0QK[(Y |
11076 |
M#IT```"L````(P`-````````````@(':"@,`9VQO8F%L+VUE;G4O;65N=2UC |
11077 |
M:&5C:RUD:7-A8FQE9"YP;F=55`4``R>`BD%5>```4$L!`A<#%`````@`'')D |
11078 |
M,3LB2C<\````9@```!H`#0```````````("!S0L#`&=L;V)A;"]M96YU+VUE |
11079 |
M;G4M8VAE8VLN9VEF550%``,G@(I!57@``%!+`0(7`Q0````(`!QR9#&&K?0+ |
11080 |
M'0$``"`!```:``T```````````"`@58,`P!G;&]B86PO;65N=2]M96YU+6-H |
11081 |
M96-K+G!N9U54!0`#)X"*055X``!02P$"%P,4````"``<<F0QNYF-0RT````Q |
11082 |
M````&@`-````````````@('`#0,`9VQO8F%L+VUE;G4O;65N=2UA<G)O=RYG |
11083 |
M:6955`4``R>`BD%5>```4$L!`A<#%`````@`'')D,;BDY@TV````70```",` |
11084 |
M#0```````````("!.@X#`&=L;V)A;"]M96YU+VUE;G4M87)R;W<M9&ES86)L |
11085 |
M960N9VEF550%``,G@(I!57@``%!+`0(7`Q0````(`!QR9#'LHLLD`P$```@! |
11086 |
M```I``T```````````"`@<8.`P!G;&]B86PO;65N=2]M96YU+6-H96-K+61I |
11087 |
M<V%B;&5D+6AO=F5R+G!N9U54!0`#)X"*055X``!02P$"%P,4````"``<<F0Q |
11088 |
M,O'-/30````Y````(``-````````````@($E$`,`9VQO8F%L+VUE;G4O;65N |
11089 |
M=2UC:&5C:RUH;W9E<BYG:6955`4``R>`BD%5>```4$L!`A<#"@``````'')D |
11090 |
M,77C:_19`0``60$``"``#0```````````("!K!`#`&=L;V)A;"]M96YU+VUE |
11091 |
M;G4M8VAE8VLM:&]V97(N<&YG550%``,G@(I!57@``%!+`0(7`Q0````(`!QR |
11092 |
M9#'4N:J%+0```%T````@``T```````````"`@5@2`P!G;&]B86PO;65N=2]M |
11093 |
M96YU+6%R<F]W+6AO=F5R+F=I9E54!0`#)X"*055X``!02P$"%P,*```````< |
11094 |
M<F0Q````````````````#``-`````````!``[4'8$@,`9VQO8F%L+W1R964O |
11095 |
M550%``,H@(I!57@``%!+`0(7`Q0````(`!QR9#$W7AR+J0```+4````;``T` |
11096 |
M``````````"`@1<3`P!G;&]B86PO=')E92]T=VES='DM;W!E;BYP;F=55`4` |
11097 |
M`R>`BD%5>```4$L!`A<#%`````@`'')D,</_`AA'````2@```!P`#0`````` |
11098 |
M`````("!#A0#`&=L;V)A;"]T<F5E+V-O;'5M;G!I8VME<BYG:6955`4``R>` |
11099 |
MBD%5>```4$L!`A<#%`````@`'')D,;[HM@RP````N@```!L`#0`````````` |
11100 |
M`("!I!0#`&=L;V)A;"]T<F5E+W1W:7-T>2UC;'-D+G!N9U54!0`#)X"*055X |
11101 |
M``!02P$"%P,*```````<<F0Q@["Z0#4#```U`P``&``-````````````@(&B |
11102 |
M%0,`9VQO8F%L+W1R964O<V]R="UA<V,N9VEF550%``,G@(I!57@``%!+`0(7 |
11103 |
M`Q0````(`!QR9#'AUA_;K````+D````?``T```````````"`@2(9`P!G;&]B |
11104 |
M86PO=')E92]T=VES='DM8VQS9"UH=G(N<&YG550%``,H@(I!57@``%!+`0(7 |
11105 |
M`Q0````(`!QR9#'3!(23H````*X````?``T```````````"`@2`:`P!G;&]B |
11106 |
M86PO=')E92]T=VES='DM;W!E;BUH=G(N<&YG550%``,H@(I!57@``%!+`0(7 |
11107 |
M`PH``````!QR9#%\%T9A,P,``#,#```8``T```````````"`@1(;`P!G;&]B |
11108 |
M86PO=')E92]S;W)T+61S8RYG:6955`4``RB`BD%5>```4$L!`A<#%`````@` |
11109 |
MPUYF,?4EKX-^!P``AQX```\`#0```````0```("!D!X#`&=L;V)A;"]T<F5E |
11110 |
M+F-S<U54!0`#K@&-055X``!02P$"%P,*```````<<F0Q```````````````` |
11111 |
M#P`-`````````!``[4%0)@,`9VQO8F%L+V-O;G-O;&4O550%``,H@(I!57@` |
11112 |
M`%!+`0(7`Q0````(`!QR9#'GN";O+0```#`````E``T```````````"`@9(F |
11113 |
M`P!G;&]B86PO8V]N<V]L92]C;VYS;VQE+65R<F]R+61A<V@N9VEF550%``,H |
11114 |
M@(I!57@``%!+`0(7`Q0````(`!QR9#&Y!:W!E@4``%L.```:``T```````$` |
11115 |
M``"`@1<G`P!G;&]B86PO8V]N<V]L92]C;VYS;VQE+F-S<U54!0`#*("*055X |
11116 |
M``!02P$"%P,4````"``<<F0Q6,*4FC4````W````)@`-````````````@('Z |
11117 |
M+`,`9VQO8F%L+V-O;G-O;&4O8V]N<V]L92UE<G)O<BUC87)E="YG:6955`4` |
11118 |
M`RB`BD%5>```4$L!`A<#%`````@`'')D,8.-S5V5!```T`L``!@`#0`````` |
11119 |
M`0```("!B"T#`&=L;V)A;"]P<F]G<F5S<VUE=&5R+F-S<U54!0`#*("*055X |
11120 |
M``!02P$"%P,4````"``<<F0Q$(9MEAD$``#I"@``$``-```````!````@(%H |
11121 |
M,@,`9VQO8F%L+W)A9&EO+F-S<U54!0`#*("*055X``!02P$"%P,4````"``< |
11122 |
M<F0Q&0PWEX$"``!'!```&P`-```````!````@('$-@,`9VQO8F%L+V-U<W1O |
11123 |
M;6EZ951O;VQB87(N8W-S550%``,H@(I!57@``%!+`0(7`Q0````(`&AZ<#$I |
11124 |
M>F6R?`0``.82```5``T```````$```"`@9,Y`P!G;&]B86PO9F]R;6%T=&EN |
11125 |
M9RYC<W-55`4``\1@FD%5>```4$L!`A<#%`````@`'')D,1(H5,T.`@``FP,` |
11126 |
M`!,`#0```````0```("!5SX#`&=L;V)A;"]E>'!A;F1E<BYC<W-55`4``RB` |
11127 |
MBD%5>```4$L!`A<#%`````@`$FQQ,28F#_H*!0``!Q```!(`#0```````0`` |
11128 |
M`("!JT`#`&=L;V)A;"]T;V]L8F%R+F-S<U54!0`#1)F;055X``!02P$"%P,4 |
11129 |
M````"``=<F0Q??6Q**X$``"/"P``$@`-```````!````@('Z10,`9VQO8F%L |
11130 |
M+W!L=6=I;G,N8W-S550%``,I@(I!57@``%!+`0(7`Q0````(`!(-:S'^S9`U |
11131 |
M!P4```$0```1``T```````$```"`@>U*`P!G;&]B86PO=&%B8F]X+F-S<U54 |
11132 |
M!0`#9`F3055X``!02P$"%P,*```````=<F0Q````````````````#0`-```` |
11133 |
M`````!``[4$X4`,`9VQO8F%L+V%R<F]W+U54!0`#*H"*055X``!02P$"%P,4 |
11134 |
M````"``=<F0Q.^CLDBH````O````'@`-````````````@(%X4`,`9VQO8F%L |
11135 |
M+V%R<F]W+V%R<F]W+6QF="UH;W8N9VEF550%``,I@(I!57@``%!+`0(7`Q0` |
11136 |
M```(`!UR9#&/(6+W*0```"X````>``T```````````"`@?-0`P!G;&]B86PO |
11137 |
M87)R;W<O87)R;W<M<FET+6AO=BYG:6955`4``RF`BD%5>```4$L!`A<#%``` |
11138 |
M``@`'7)D,45@"_XT````.````"0`#0```````````("!;5$#`&=L;V)A;"]A |
11139 |
M<G)O=R]A<G)O=RUR:70M<VAA<G`M96YD+F=I9E54!0`#*8"*055X``!02P$" |
11140 |
M%P,4````"``=<F0QOU=L>"D````N````&0`-````````````@('X40,`9VQO |
11141 |
M8F%L+V%R<F]W+V%R<F]W+61N+F=I9E54!0`#*8"*055X``!02P$"%P,4```` |
11142 |
M"``=<F0Q/:(BS]D```#>````*0`-````````````@(%M4@,`9VQO8F%L+V%R |
11143 |
M<F]W+V%R<F]W<RUD<F]P9&]W;BUD:7-A8FQE9"YP;F=55`4``RF`BD%5>``` |
11144 |
M4$L!`A<#%`````@`'7)D,5XT[M8P````-0```"``#0```````````("!HE,# |
11145 |
M`&=L;V)A;"]A<G)O=R]A<G)O=RUL9G0M<VAA<G`N9VEF550%``,I@(I!57@` |
11146 |
M`%!+`0(7`Q0````(`!UR9#'R>5X],````#0````?``T```````````"`@254 |
11147 |
M`P!G;&]B86PO87)R;W<O87)R;W<M=7`M<VAA<G`N9VEF550%``,I@(I!57@` |
11148 |
M`%!+`0(7`Q0````(`!UR9#$P?]M$+0```"X````=``T```````````"`@:=4 |
11149 |
M`P!G;&]B86PO87)R;W<O87)R;W<M9&XM9&ES+F=I9E54!0`#*8"*055X``!0 |
11150 |
M2P$"%P,4````"``=<F0QCR%B]RD````N````&@`-````````````@($D50,` |
11151 |
M9VQO8F%L+V%R<F]W+V%R<F]W+7)I="YG:6955`4``RF`BD%5>```4$L!`A<# |
11152 |
M%`````@`'7)D,0B2B%LI````+@```!D`#0```````````("!FE4#`&=L;V)A |
11153 |
M;"]A<G)O=R]A<G)O=RUU<"YG:6955`4``RF`BD%5>```4$L!`A<#%`````@` |
11154 |
M'7)D,3OH[)(J````+P```!H`#0```````````("!#U8#`&=L;V)A;"]A<G)O |
11155 |
M=R]A<G)O=RUL9G0N9VEF550%``,I@(I!57@``%!+`0(7`Q0````(`!UR9#&B |
11156 |
MP=?O+@```"\````>``T```````````"`@896`P!G;&]B86PO87)R;W<O87)R |
11157 |
M;W<M;&9T+61I<RYG:6955`4``RF`BD%5>```4$L!`A<#%`````@`'7)D,0`) |
11158 |
MU<LM````+@```!X`#0```````````("!!5<#`&=L;V)A;"]A<G)O=R]A<G)O |
11159 |
M=RUR:70M9&ES+F=I9E54!0`#*8"*055X``!02P$"%P,4````"``=<F0Q")*( |
11160 |
M6RD````N````'0`-````````````@(P,`9VQO8F%L+V%R<F]W+V%R<F]W |
11161 |
M+75P+6AO=BYG:6955`4``RF`BD%5>```4$L!`A<#%`````@`'7)D,82"10XK |
11162 |
M````,P```!\`#0```````````("!_%<#`&=L;V)A;"]A<G)O=R]A<G)O=RUD |
11163 |
M;BUS:&%R<"YG:6955`4``RF`BD%5>```4$L!`A<#%`````@`'7)D,0S8;-FF |
11164 |
M````J@```!L`#0```````````("!>5@#`&=L;V)A;"]A<G)O=R]A<G)O=RUD |
11165 |
M;W=N+G!N9U54!0`#*8"*055X``!02P$"%P,4````"``=<F0QA[H_9RT````N |
11166 |
M````'0`-````````````@(%M60,`9VQO8F%L+V%R<F]W+V%R<F]W+75P+61I |
11167 |
M<RYG:6955`4``RF`BD%5>```4$L!`A<#%`````@`'7)D,5U-MI3,````U``` |
11168 |
M`"``#0```````````("!ZED#`&=L;V)A;"]A<G)O=R]A<G)O=W,M9')O<&1O |
11169 |
M=VXN<&YG550%``,I@(I!57@``%!+`0(7`Q0````(`!UR9#$&E<`?,````#4` |
11170 |
M```@``T```````````"`@0E;`P!G;&]B86PO87)R;W<O87)R;W<M<FET+7-H |
11171 |
M87)P+F=I9E54!0`#*H"*055X``!02P$"%P,4````"``=<F0QOU=L>"D````N |
11172 |
M````'0`-````````````@(&,6P,`9VQO8F%L+V%R<F]W+V%R<F]W+61N+6AO |
11173 |
M=BYG:6955`4``RJ`BD%5>```4$L!`A<#%`````@`'7)D,3E&.R\T````.``` |
11174 |
M`"0`#0```````````("!!5P#`&=L;V)A;"]A<G)O=R]A<G)O=RUL9G0M<VAA |
11175 |
M<G`M96YD+F=I9E54!0`#*H"*055X``!02P$"%P,*``````![F64Q```````` |
11176 |
M````````#0`-`````````!``[4&07`,`9VQO8F%L+VEC;VYS+U54!0`#R1:, |
11177 |
M055X``!02P$"%P,*```````@<F0Q````````````````$@`-`````````!`` |
11178 |
M[4'07`,`9VQO8F%L+VEC;VYS+VUE;G4O550%``,K@(I!57@``%!+`0(7`PH` |
11179 |
M`````!UR9#$&@)M;[`$``.P!```:``T```````````"`@15=`P!G;&]B86PO |
11180 |
M:6-O;G,O;65N=2]E9&ET+G!N9U54!0`#*H"*055X``!02P$"%P,4````"``= |
11181 |
M<F0Q)R"`TX8!``">`0``)``-````````````@(%.7P,`9VQO8F%L+VEC;VYS |
11182 |
M+VUE;G4O8V]O:VEE+7-E<W-I;VXN<&YG550%``,J@(I!57@``%!+`0(7`PH` |
11183 |
M`````!UR9#%$]2_D"@,```H#```9``T```````````"`@2MA`P!G;&]B86PO |
11184 |
M:6-O;G,O;65N=2]D96PN<&YG550%``,J@(I!57@``%!+`0(7`PH``````!UR |
11185 |
M9#&H$`4Q`0(```$"```:``T```````````"`@8%D`P!G;&]B86PO:6-O;G,O |
11186 |
M;65N=2]U;F1O+G!N9U54!0`#*H"*055X``!02P$"%P,*```````=<F0Q3D'/ |
11187 |
M\(H"``"*`@``(@`-````````````I('/9@,`9VQO8F%L+VEC;VYS+VUE;G4O |
11188 |
M9&5L+61I<V%B;&5D+G!N9U54!0`#*H"*055X``!02P$"%P,*```````=<F0Q |
11189 |
M>QT62"<"```G`@``'@`-````````````@(&N:0,`9VQO8F%L+VEC;VYS+VUE |
11190 |
M;G4O;6%X:6UI>F4N<&YG550%``,J@(I!57@``%!+`0(7`PH``````!UR9#$R |
11191 |
MB+6M\`$``/`!```9``T```````````"`@29L`P!G;&]B86PO:6-O;G,O;65N |
11192 |
M=2]C=70N<&YG550%``,J@(I!57@``%!+`0(7`PH``````!UR9#'0)07:4P(` |
11193 |
M`%,"```:``T```````````"`@6)N`P!G;&]B86PO:6-O;G,O;65N=2]S879E |
11194 |
M+G!N9U54!0`#*H"*055X``!02P$"%P,*```````=<F0QF9!B9",#```C`P`` |
11195 |
M'@`-````````````@($"<0,`9VQO8F%L+VEC;VYS+VUE;G4O>F]O;5]F:70N |
11196 |
M<&YG550%``,J@(I!57@``%!+`0(7`PH``````!UR9#'GN`@`,P(``#,"```; |
11197 |
M``T```````````"`@79T`P!G;&]B86PO:6-O;G,O;65N=2]P87-T92YP;F=5 |
11198 |
M5`4``RJ`BD%5>```4$L!`A<#"@``````'7)D,67W@[M,`@``3`(``!H`#0`` |
11199 |
M`````````("!]W8#`&=L;V)A;"]I8V]N<R]M96YU+V9O;G0N<&YG550%``,J |
11200 |
M@(I!57@``%!+`0(7`PH``````!UR9#'PN]@E_0(``/T"```C``T````````` |
11201 |
M``"`@9!Y`P!G;&]B86PO:6-O;G,O;65N=2]P<FEN=%]P<F5V:65W+G!N9U54 |
11202 |
M!0`#*H"*055X``!02P$"%P,*```````=<F0QEDZ&L>\"``#O`@``'0`-```` |
11203 |
M````````@('C?`,`9VQO8F%L+VEC;VYS+VUE;G4O<V%V95]A<RYP;F=55`4` |
11204 |
M`RJ`BD%5>```4$L!`A<#"@``````'7)D,1=295Z[`0``NP$``"(`#0`````` |
11205 |
M`````*2!(H`#`&=L;V)A;"]I8V]N<R]M96YU+V-U="UD:7-A8FQE9"YP;F=5 |
11206 |
M5`4``RJ`BD%5>```4$L!`A<#"@``````'7)D,<W!3(;P`P``\`,``!L`#0`` |
11207 |
M`````````("!,H(#`&=L;V)A;"]I8V]N<R]M96YU+V]K+3(R+G!N9U54!0`# |
11208 |
M*H"*055X``!02P$"%P,4````"``=<F0Q5H@</9\```"M````'``-```````` |
11209 |
M````@(%PA@,`9VQO8F%L+VEC;VYS+VUE;G4O<F5M;W9E+G!N9U54!0`#*H"* |
11210 |
M055X``!02P$"%P,*```````=<F0Q.%RIG>H!``#J`0``&@`-```````````` |
11211 |
M@(%>AP,`9VQO8F%L+VEC;VYS+VUE;G4O=V%I="YP;F=55`4``RJ`BD%5>``` |
11212 |
M4$L!`A<#"@``````'7)D,8[>GH60`@``D`(``"0`#0```````````("!E8D# |
11213 |
M`&=L;V)A;"]I8V]N<R]M96YU+W-E87)C:%]R97!L86-E+G!N9U54!0`#*H"* |
11214 |
M055X``!02P$"%P,*```````=<F0Q"TDF^EP"``!<`@``'``-```````````` |
11215 |
M@(%\C`,`9VQO8F%L+VEC;VYS+VUE;G4O:6UP;W)T+G!N9U54!0`#*H"*055X |
11216 |
M``!02P$"%P,4````"``=<F0Q]^QQPUL!``!=`0``&0`-````````````@($G |
11217 |
MCP,`9VQO8F%L+VEC;VYS+VUE;G4O;F5W+G!N9U54!0`#*H"*055X``!02P$" |
11218 |
M%P,*```````=<F0QYUW>`F@"``!H`@``)@`-````````````@('.D`,`9VQO |
11219 |
M8F%L+VEC;VYS+VUE;G4O<')I;G1?<')O<&5R=&EE<RYP;F=55`4``RJ`BD%5 |
11220 |
M>```4$L!`A<#%`````@`'7)D,0]^-MM2`0``50$``!H`#0```````````("! |
11221 |
MCY,#`&=L;V)A;"]I8V]N<R]M96YU+V-O<'DN<&YG550%``,J@(I!57@``%!+ |
11222 |
M`0(7`PH``````!UR9#%PU7@)#P,```\#```C``T```````````"`@2Z5`P!G |
11223 |
M;&]B86PO:6-O;G,O;65N=2]E9&ET7V)O;VMM87)K+G!N9U54!0`#*H"*055X |
11224 |
M``!02P$"%P,*```````@<F0Q<^M\!=P"``#<`@``&P`-````````````@(&3 |
11225 |
MF`,`9VQO8F%L+VEC;VYS+VUE;G4O=&AE;64N<&YG550%``,K@(I!57@``%!+ |
11226 |
M`0(7`PH``````"!R9#'-?3Y]50$``%4!```9``T```````````"`@;V;`P!G |
11227 |
M;&]B86PO:6-O;G,O;65N=2]A9&0N<&YG550%``,K@(I!57@``%!+`0(7`PH` |
11228 |
M`````"!R9#%2<*L&3@,``$X#```8``T```````````"`@5Z=`P!G;&]B86PO |
11229 |
M:6-O;G,O;65N=2]O:RYP;F=55`4``RN`BD%5>```4$L!`A<#"@``````(')D |
11230 |
M,7]T6R&&`0``A@$``",`#0```````````*2!]Z`#`&=L;V)A;"]I8V]N<R]M |
11231 |
M96YU+W5N9&\M9&ES86)L960N<&YG550%``,K@(I!57@``%!+`0(7`PH````` |
11232 |
M`"!R9#&[/QO('P(``!\"```?``T```````````"`@=.B`P!G;&]B86PO:6-O |
11233 |
M;G,O;65N=2]L:6=H=&)U;&(N<&YG550%``,K@(I!57@``%!+`0(7`PH````` |
11234 |
M`"!R9#$8@+"F&`,``!@#```<``T```````````"`@42E`P!G;&]B86PO:6-O |
11235 |
M;G,O;65N=2]Z;V]M7S$N<&YG550%``,K@(I!57@``%!+`0(7`PH``````"!R |
11236 |
M9#'P'?2RN0$``+D!```D``T```````````"D@:NH`P!G;&]B86PO:6-O;G,O |
11237 |
M;65N=2]P87-T92UD:7-A8FQE9"YP;F=55`4``RN`BD%5>```4$L!`A<#"@`` |
11238 |
M````(')D,9,M%%GW`0``]P$``!H`#0```````````("!NZH#`&=L;V)A;"]I |
11239 |
M8V]N<R]M96YU+W!R968N<&YG550%``,K@(I!57@``%!+`0(7`PH``````"!R |
11240 |
M9#$XXSA#00(``$$"```<``T```````````"`@?^L`P!G;&]B86PO:6-O;G,O |
11241 |
M;65N=2]C;VQO<G,N<&YG550%``,K@(I!57@``%!+`0(7`PH``````"!R9#%* |
11242 |
M&WN*0`$``$`!```;``T```````````"`@8^O`P!G;&]B86PO:6-O;G,O;65N |
11243 |
M=2]A8F]U="YP;F=55`4``RN`BD%5>```4$L!`A<#"@``````(')D,4T<EZC` |
11244 |
M`0``P`$``!H`#0```````````("!';$#`&=L;V)A;"]I8V]N<R]M96YU+V]P |
11245 |
M96XN<&YG550%``,K@(I!57@``%!+`0(7`PH``````"!R9#'LRHQ3%0,``!4# |
11246 |
M```>``T```````````"`@2JS`P!G;&]B86PO:6-O;G,O;65N=2]Z;V]M7V]U |
11247 |
M="YP;F=55`4``RN`BD%5>```4$L!`A<#%`````@`(')D,6G%J3<$`P``"`,` |
11248 |
M`!P`#0```````````("!D+8#`&=L;V)A;"]I8V]N<R]M96YU+W-C<FEP="YP |
11249 |
M;F=55`4``RN`BD%5>```4$L!`A<#"@``````(')D,>[79-\'`@``!P(``!D` |
11250 |
M#0```````````*2!X[D#`&=L;V)A;"]I8V]N<R]M96YU+W5R;"YP;F=55`4` |
11251 |
M`RN`BD%5>```4$L!`A<#"@``````(')D,1]5<(<.`@``#@(``!P`#0`````` |
11252 |
M`````("!-KP#`&=L;V)A;"]I8V]N<R]M96YU+W-E87)C:"YP;F=55`4``RN` |
11253 |
MBD%5>```4$L!`A<#"@``````(')D,?C7KK&(`@``B`(``!T`#0`````````` |
11254 |
M`("!D[X#`&=L;V)A;"]I8V]N<R]M96YU+VYE=U]T86(N<&YG550%``,K@(I! |
11255 |
M57@``%!+`0(7`Q0````(`"!R9#$A-WD,<0$``'(!```C``T```````````"D |
11256 |
M@6O!`P!G;&]B86PO:6-O;G,O;65N=2]C;W!Y+61I<V%B;&5D+G!N9U54!0`# |
11257 |
M*X"*055X``!02P$"%P,4````"``@<F0QD&]39"D!``!&`0``&P`-```````` |
11258 |
M````@($RPP,`9VQO8F%L+VEC;VYS+VUE;G4O8VQO<V4N<&YG550%``,K@(I! |
11259 |
M57@``%!+`0(7`PH``````"!R9#%]VCEC=`,``'0#```;``T```````````"` |
11260 |
M@:G$`P!G;&]B86PO:6-O;G,O;65N=2]G;&]B92YP;F=55`4``RN`BD%5>``` |
11261 |
M4$L!`A<#"@``````(')D,40^?SX>`P``'@,``!T`#0```````````("!:\@# |
11262 |
M`&=L;V)A;"]I8V]N<R]M96YU+WIO;VU?:6XN<&YG550%``,K@(I!57@``%!+ |
11263 |
M`0(7`PH``````"!R9#$0\7GT(`(``"`"```B``T```````````"`@=G+`P!G |
11264 |
M;&]B86PO:6-O;G,O;65N=2]A9&1?8F]O:VUA<FLN<&YG550%``,K@(I!57@` |
11265 |
M`%!+`0(7`PH``````"!R9#'ZA(56)@(``"8"```:``T```````````"`@4[. |
11266 |
M`P!G;&]B86PO:6-O;G,O;65N=2]I;F9O+G!N9U54!0`#*X"*055X``!02P$" |
11267 |
M%P,*```````@<F0Q"RZ)2/4!``#U`0``&@`-````````````@('!T`,`9VQO |
11268 |
M8F%L+VEC;VYS+VUE;G4O97AE8RYP;F=55`4``RN`BD%5>```4$L!`A<#"@`` |
11269 |
M````(')D,7::VBJ0`0``D`$``",`#0```````````*2!`],#`&=L;V)A;"]I |
11270 |
M8V]N<R]M96YU+W)E9&\M9&ES86)L960N<&YG550%``,K@(I!57@``%!+`0(7 |
11271 |
M`Q0````(`"!R9#'BG/1T3P$``&P!```C``T```````````"`@>G4`P!G;&]B |
11272 |
M86PO:6-O;G,O;65N=2]C;V]K:64M86-C97!T+G!N9U54!0`#*X"*055X``!0 |
11273 |
M2P$"%P,*```````@<F0QX$#*;_L!``#[`0``&@`-````````````@(&.U@,` |
11274 |
M9VQO8F%L+VEC;VYS+VUE;G4O97AI="YP;F=55`4``RN`BD%5>```4$L!`A<# |
11275 |
M"@``````(')D,?S798?Q`0``\0$``!H`#0```````````("!UM@#`&=L;V)A |
11276 |
M;"]I8V]N<R]M96YU+W)E9&\N<&YG550%``,K@(I!57@``%!+`0(7`PH````` |
11277 |
M`"!R9#$95MKZX`$``.`!```>``T```````````"`@13;`P!G;&]B86PO:6-O |
11278 |
M;G,O;65N=2]D;W=N;&]A9"YP;F=55`4``RN`BD%5>```4$L!`A<#"@`````` |
11279 |
M(')D,</_:YXT`P``-`,``!P`#0```````````("!1=T#`&=L;V)A;"]I8V]N |
11280 |
M<R]M96YU+V-A;F-E;"YP;F=55`4``RN`BD%5>```4$L!`A<#"@``````(')D |
11281 |
M,42)*G.I`P``J0,``!H`#0```````````("!R.`#`&=L;V)A;"]I8V]N<R]M |
11282 |
M96YU+VAE;'`N<&YG550%``,K@(I!57@``%!+`0(7`PH``````"!R9#&4\:H, |
11283 |
M?1T``'T=```=``T```````````"`@;[D`P!G;&]B86PO:6-O;G,O86QE<G0M |
11284 |
M97AC;&%M+G!N9U54!0`#+("*055X``!02P$"%P,4````"``@<F0Q"!>@CQ4! |
11285 |
M```W`0``'0`-````````````@(&+`@0`9VQO8F%L+VEC;VYS+W!G+6QA;F1S |
11286 |
M8V%P92YG:6955`4``RR`BD%5>```4$L!`A<#%`````@`(')D,>[&S_PY```` |
11287 |
M/0```!@`#0```````````("!\`,$`&=L;V)A;"]I8V]N<R]297-T;W)E+F=I |
11288 |
M9E54!0`#+("*055X``!02P$"%P,4````"``@<F0Q^V&O=)0```"7````(P`- |
11289 |
M````````````@(%T!`0`9VQO8F%L+VEC;VYS+W!G+6QA;F1S8V%P92US;6%L |
11290 |
M;"YG:6955`4``RR`BD%5>```4$L!`A<#%`````@`(')D,2HS$S0=`0``/@$` |
11291 |
M`!P`#0```````````("!7@4$`&=L;V)A;"]I8V]N<R]P9RUP;W)T<F%I="YG |
11292 |
M:6955`4``RR`BD%5>```4$L!`A<#"@``````(')D,?DX%/3U#@``]0X``!D` |
11293 |
M#0```````````("!R@8$`&=L;V)A;"]I8V]N<R]1=65S=&EO;BYP;F=55`4` |
11294 |
M`RR`BD%5>```4$L!`A<#"@``````>)EE,2.O"&8-"0``#0D``!P`#0`````` |
11295 |
M`````("!"Q8$`&=L;V)A;"]I8V]N<R]F;VQD97(M:71E;2YP;F=55`4``\,6 |
11296 |
MC$%5>```4$L!`A<#%`````@`(')D,0IM)0T[````0P```!T`#0`````````` |
11297 |
M`("!9Q\$`&=L;V)A;"]I8V]N<R]C;&]S92UB=71T;VXN9VEF550%``,L@(I! |
11298 |
M57@``%!+`0(7`Q0````(`-:.93&UP_LU&0$``!\!```=``T```````````"D |
11299 |
M@?(?!`!G;&]B86PO:6-O;G,O8VQO<V4M8G5T=&]N+G!N9U54!0`#LP2,055X |
11300 |
M``!02P$"%P,4````"``@<F0Q<'E_?3<````[````%@`-````````````@(%; |
11301 |
M(00`9VQO8F%L+VEC;VYS+T-L;W-E+F=I9E54!0`#+("*055X``!02P$"%P,* |
11302 |
M```````B<F0QA5!SSXX&``".!@``%0`-````````````I(';(00`9VQO8F%L |
11303 |
M+VEC;VYS+V9I;F0N<&YG550%``,O@(I!57@``%!+`0(7`PH``````/2<DS'T |
11304 |
M-A#UKP(``*\"```>``T```````````"V@;$H!`!G;&]B86PO:6-O;G,O4')I |
11305 |
M;G0M<')E=FEE=RYP;F=55`4``TP?QD%5>```4$L!`A<#"@``````(')D,6Q; |
11306 |
M]G@["0``.PD``!8`#0```````````("!L2L$`&=L;V)A;"]I8V]N<R]%<G)O |
11307 |
M<BYP;F=55`4``RR`BD%5>```4$L!`A<#"@``````(G)D,?W<7_.1`@``D0(` |
11308 |
M`!D`#0```````````*2!-34$`&=L;V)A;"]I8V]N<R]N;W1F;W5N9"YP;F=5 |
11309 |
M5`4``R^`BD%5>```4$L!`A<#"@``````(')D,7T1X)Z6"0``E@D``!@`#0`` |
11310 |
M`````````("!$C@$`&=L;V)A;"]I8V]N<R]787)N:6YG+G!N9U54!0`#+("* |
11311 |
M055X``!02P$"%P,*```````B<F0QJ[<QTF8!``!F`0``%@`-```````````` |
11312 |
MI('S000`9VQO8F%L+VEC;VYS+V-L;W-E+G!N9U54!0`#+X"*055X``!02P$" |
11313 |
M%P,*```````B<F0Q38N)5%("``!2`@``%0`-````````````I(&B0P0`9VQO |
11314 |
M8F%L+VEC;VYS+W=R87`N<&YG550%``,O@(I!57@``%!+`0(7`Q0````(`"!R |
11315 |
M9#%G$'<8<P```'H````@``T```````````"`@3Q&!`!G;&]B86PO:6-O;G,O |
11316 |
M=&%B<W1R:7`M8F]T=&]M+G!N9U54!0`#+("*055X``!02P$"%P,4````"``@ |
11317 |
M<F0QU-V^=C$````U````&0`-````````````@($"1P0`9VQO8F%L+VEC;VYS |
11318 |
M+TUI;FEM:7IE+F=I9E54!0`#+("*055X``!02P$"%P,*```````@<F0Q```` |
11319 |
M````````````#0`-`````````!``[4%_1P0`9VQO8F%L+W)A9&EO+U54!0`# |
11320 |
M+("*055X``!02P$"%P,4````"``@<F0QL4[Z`2H````N````'``-```````` |
11321 |
M````@(&_1P0`9VQO8F%L+W)A9&EO+W)A9&EO+6-H96-K+F=I9E54!0`#+("* |
11322 |
M055X``!02P$"%P,4````"``@<F0QJ$KLC2T````N````(``-```````````` |
11323 |
M@($X2`0`9VQO8F%L+W)A9&EO+W)A9&EO+6-H96-K+61I<RYG:6955`4``RR` |
11324 |
MBD%5>```4$L!`A<#%`````@`[6IQ,>V#94N'!0``4Q@``!4`#0```````0`` |
11325 |
M`("!N$@$`&=L;V)A;"]S8W)O;&QB87)S+F-S<U54!0`#'I>;055X``!02P$" |
11326 |
M%P,4````"`"C>G`QDF\30]4"``"X!0``$P`-```````!````@(&'3@0`9VQO |
11327 |
M8F%L+V=R;W5P8F]X+F-S<U54!0`#,F&:055X``!02P$"%P,4````"`!O=F4Q |
11328 |
M9J]OL@<$``#L"```$``-```````!````@(&B400`9VQO8F%L+W!O<'5P+F-S |
11329 |
M<U54!0`#PMF+055X``!02P$"%P,4````"``@<F0Q57,Z>OP$``#2#P``$@`- |
11330 |
M```````!````@('L500`9VQO8F%L+VQI<W1B;W@N8W-S550%``,L@(I!57@` |
11331 |
M`%!+`0(7`Q0````(`"!R9#%NKM\W@`$``%0$```9``T```````$```"`@2U; |
11332 |
M!`!G;&]B86PO9VQO8F%L0FEN9&EN9W,N>&UL550%``,L@(I!57@``%!+`0(7 |
11333 |
M`Q0````(`"!R9#'(UUR[7P```*4````9``T```````$```"`@?E<!`!G;&]B |
11334 |
M86PO<')I;G1086=E4V5T=7`N8W-S550%``,L@(I!57@``%!+`0(7`PH````` |
11335 |
M`"%R9#$````````````````0``T`````````$`#M0:1=!`!G;&]B86PO8VAE |
11336 |
M8VMB;W@O550%``,M@(I!57@``%!+`0(7`Q0````(`"%R9#%QEZ`>.0```#P` |
11337 |
M```B``T```````````"`@>==!`!G;&]B86PO8VAE8VMB;W@O8V)O>"UC:&5C |
11338 |
M:RUD:7,N9VEF550%``,M@(I!57@``%!+`0(7`Q0````(`"%R9#%/!B[:,P`` |
11339 |
M`#8````>``T```````````"`@75>!`!G;&]B86PO8VAE8VMB;W@O8V)O>"UC |
11340 |
M:&5C:RYG:6955`4``RV`BD%5>```4$L!`A<#%`````@`B!)K,?IM%)6=!0`` |
11341 |
M!A$``!<`#0```````0```("!^5X$`&=L;V)A;"]A=71O8V]M<&QE=&4N8W-S |
11342 |
M550%``.O$I-!57@``%!+`0(7`Q0````(`"%R9#$54Y!\J``````!```1``T` |
11343 |
M``````$```"`@>!D!`!G;&]B86PO8V]N9FEG+F-S<U54!0`#+8"*055X``!0 |
11344 |
M2P$"%P,4````"``A<F0QK*H3XR,"``"$!```%@`-```````!````@(',900` |
11345 |
M9VQO8F%L+W-P:6YB=71T;VYS+F-S<U54!0`#+8"*055X``!02P$"%P,4```` |
11346 |
M"`##F64Q,K=I?NP"``"E"@``$@`-```````!````I($X:`0`9VQO8F%L+V9I |
11347 |
M;F1"87(N8W-S550%``--%XQ!57@``%!+`0(7`PH``````"%R9#$````````` |
11348 |
M```````.``T`````````$`#M06EK!`!G;&]B86PO86QE<G1S+U54!0`#+8"* |
11349 |
M055X``!02P$"%P,4````"``A<F0Q?]#ZAW,$``!:"@``%P`-```````!```` |
11350 |
M@(&J:P0`9VQO8F%L+V%L97)T<R]A;&5R="YC<W-55`4``RV`BD%5>```4$L! |
11351 |
M`A<#%`````@`(7)D,9FH4R]:!```[`H``!(`#0```````0```("!9W`$`&=L |
11352 |
M;V)A;"]C;VYS;VQE+F-S<U54!0`#+8"*055X``!02P$"%P,*```````A<F0Q |
11353 |
M24YFM-,"``#3`@``$P`-````````````I($&=00`9VQO8F%L+W5R;'-H:6YE |
11354 |
M+G!N9U54!0`#+8"*055X``!02P$"%P,4````"`"%>G`Q6P-B17L%``"6#@`` |
11355 |
M$0`-```````!````@($?>`0`9VQO8F%L+V1I86QO9RYC<W-55`4``_E@FD%5 |
11356 |
M>```4$L!`A<#%`````@`(7)D,540NY06!```:PL``!,`#0```````0```("! |
11357 |
MWGT$`&=L;V)A;"]P<FEN=&EN9RYC<W-55`4``RV`BD%5>```4$L!`A<#%``` |
11358 |
M``@`0')D,>*V3,T,`0``Y0,``!<`#0```````0```("!.H($`&=L;V)A;"]P |
11359 |
M<FEN=%!R979I97<N8W-S550%``-H@(I!57@``%!+`0(7`Q0````(`"%R9#'O |
11360 |
M-AFB?@$``"L#```3``T```````$```"`@9"#!`!G;&]B86PO;&EN:U1R964N |
11361 |
M8W-S550%``,M@(I!57@``%!+`0(7`Q0````(`'!B9C'+1()V904``&(4```1 |
11362 |
M``T```````$```"`@52%!`!G;&]B86PO8G5T=&]N+F-S<U54!0`#I`>-055X |
11363 |
M``!02P$"%P,*```````A<F0Q````````````````#P`-`````````!``[4'] |
11364 |
MB@0`9VQO8F%L+W1O;VQB87(O550%``,M@(I!57@``%!+`0(7`Q0````(`"%R |
11365 |
M9#%&]C35L0```+P````:``T```````````"`@3^+!`!G;&]B86PO=&]O;&)A |
11366 |
M<B],:6=H=&5N+G!N9U54!0`#+8"*055X``!02P$"%P,4````"``A<F0Q-LL$ |
11367 |
M%8T```"A````&0`-````````````@($]C`0`9VQO8F%L+W1O;VQB87(O1&%R |
11368 |
M:V5N+G!N9U54!0`#+8"*055X``!02P$"%P,4````"``A<F0Q\#]\Z34````X |
11369 |
M````&@`-````````````@($6C00`9VQO8F%L+W1O;VQB87(O8VAE=G)O;BYG |
11370 |
M:6955`4``RV`BD%5>```4$L!`A<#%`````@`(7)D,<PJ'XV9`P``N`H``!8` |
11371 |
M#0```````0```("!F(T$`&=L;V)A;"]C;VQO<G!I8VME<BYC<W-55`4``RV` |
11372 |
MBD%5>```4$L!`A<#%`````@`(7)D,?<[6'_G`P``$PH``!,`#0```````0`` |
11373 |
M`("!>I$$`&=L;V)A;"]C:&5C:V)O>"YC<W-55`4``RV`BD%5>```4$L!`A<# |
11374 |
M%`````@`V@N(,>7#(>/U"```\QL``!$`#0```````0```("!IY4$`&=L;V)A |
11375 |
M;"]G;&]B86PN8W-S550%``.<G[9!57@``%!+`0(7`PH``````/!=9C'3+MH= |
11376 |
M?0D``'T)```5``T```````````"`@>">!`!G;&]B86PO1FEL97!I8VME<BYP |
11377 |
M;F=55`4``R,`C4%5>```4$L!`A<#%`````@`(7)D,2P2#<$$`0``U`0``!`` |
11378 |
M#0```````0```("!I:@$`&=L;V)A;"]A<G)O=RYC<W-55`4``RZ`BD%5>``` |
11379 |
M4$L!`A<#%`````@`(7)D,4J,DT@U`0``I`(``!$`#0```````0```("![*D$ |
11380 |
M`&=L;V)A;"]W:7IA<F0N8W-S550%``,N@(I!57@``%!+`0(7`Q0````(`"%R |
11381 |
M9#&MIJ;='`,``+@&```3``T```````$```"`@66K!`!G;&]B86PO<W!L:71T |
11382 |
M97(N8W-S550%``,N@(I!57@``%!+`0(7`Q0````(`"%R9#&S2Y`%LP4``'`6 |
11383 |
M```3``T```````$```"`@<>N!`!G;&]B86PO;65N=6QI<W0N8W-S550%``,N |
11384 |
M@(I!57@``%!+`0(7`Q0````(`,D!B#'?'4XFW04``/X6```8``T```````$` |
11385 |
M``"`@<"T!`!G;&]B86PO=&]O;&)A<F)U='1O;BYC<W-55`4``ZJ-MD%5>``` |
11386 |
M4$L!`A<#%`````@`(7)D,<J@A?-C`@``;08``!$`#0```````0```("!Z+H$ |
11387 |
M`&=L;V)A;"]A;'1T86(N>&UL550%``,N@(I!57@``%!+`0(7`Q0````(`'," |
11388 |
MB#%O:6(`\P,``,$)```2``T```````$```"`@8^]!`!G;&]B86PO=&5X=&)O |
11389 |
M>"YC<W-55`4``^F.MD%5>```4$L!`A<#%`````@`(7)D,3QL2=X]`0``00,` |
11390 |
M`!0`#0```````0```("!Q\$$`&=L;V)A;"]S8W)O;&QB;W@N8W-S550%``,N |
11391 |
M@(I!57@``%!+`0(7`PH``````"%R9#$````````````````1``T````````` |
11392 |
M$`#M04O#!`!G;&]B86PO<V-R;VQL8F%R+U54!0`#+H"*055X``!02P$"%P,4 |
11393 |
M````"``A<F0Q3*GPWI$```"8````'P`-````````````I(&/PP0`9VQO8F%L |
11394 |
M+W-C<F]L;&)A<B]G<FEP<&EE<RUH+G!N9U54!0`#+H"*055X``!02P$"%P,4 |
11395 |
M````"``A<F0Q\?G?>(L```"4````'P`-````````````I(%RQ`0`9VQO8F%L |
11396 |
M+W-C<F]L;&)A<B]G<FEP<&EE<RUV+G!N9U54!0`#+H"*055X``!02P$"%P,4 |
11397 |
M````"``A<F0Q:1<M0RL````L````&P`-````````````@(%/Q00`9VQO8F%L |
11398 |
M+W-C<F]L;&)A<B]S;&ED97(N9VEF550%``,N@(I!57@``%!+`0(7`Q0````( |
11399 |
M`"%R9#',*C+ZFP```*(````=``T```````````"D@<C%!`!G;&]B86PO<V-R |
11400 |
M;VQL8F%R+V=R:7!P:65S+G!N9U54!0`#+H"*055X``!02P$"%P,4````"`"7 |
11401 |
M!FLQ^TJ]G)T$``">"P``%0`-```````!````@(&SQ@0`9VQO8F%L+V9I;&5P |
11402 |
M:6-K97(N8W-S550%``,N_I)!57@``%!+`0(7`Q0````(`"%R9#%0R5BN;P$` |
11403 |
M`&0#```3``T```````$```"`@9C+!`!G;&]B86PO8V]N=&5N=',N<F1F550% |
11404 |
M``,N@(I!57@``%!+`0(7`Q0````(`-IS9#'(!5/S]`$``$$$```2``T````` |
11405 |
M``$```"`@4W-!`!G;&]B86PO8G)O=W-E<BYC<W-55`4``VR#BD%5>```4$L! |
11406 |
M`A<#"@``````&W)D,0````````````````4`#0`````````0`.U!AL\$`&AE |
11407 |
M;'`O550%``,F@(I!57@``%!+`0(7`Q0````(`!MR9#'/HTXA9`8``',)```* |
11408 |
M``T```````````"D@;[/!`!H96QP+VXN<&YG550%``,F@(I!57@``%!+`0(7 |
11409 |
M`Q0````(`!MR9#$K5>O@@0<``)H2```7``T```````$```"D@5_6!`!H96QP |
11410 |
M+VAE;'!&:6QE3&%Y;W5T+F-S<U54!0`#)H"*055X``!02P$"%P,*```````; |
11411 |
M<F0QC'[<TFP$``!L!```#@`-````````````I($JW@0`:&5L<"]P<F5F<RYP |
11412 |
M;F=55`4``R:`BD%5>```4$L!`A<#"@``````&W)D,2SE=5?H`0``Z`$``!`` |
11413 |
M#0```````````*2!U^($`&AE;'`O5V5B;&EN:RYP;F=55`4``R:`BD%5>``` |
11414 |
M4$L!`A<#%`````@`&W)D,>JA?&MP`@``_`8``!``#0```````0```*2!`N4$ |
11415 |
M`&AE;'`O<VED96)A<BYC<W-55`4``R:`BD%5>```4$L!`A<#"@``````&W)D |
11416 |
M,;'QN+@-`@``#0(``!``#0```````````*2!M><$`&AE;'`O<VED96)A<BYP |
11417 |
M;F=55`4``R:`BD%5>```4$L!`A<#%`````@`&W)D,3]'O8GV````Y`$``!@` |
11418 |
M#0```````0```*2!!>H$`&AE;'`O<VED96)A<D)I;F1I;F=S+GAM;%54!0`# |
11419 |
M)H"*055X``!02P$"%P,*```````;<F0Q0!X6K3($```R!```$0`-```````` |
11420 |
M````I(%&ZP0`:&5L<"]Z;V]M7V]U="YP;F=55`4``R:`BD%5>```4$L!`A<# |
11421 |
M"@``````&W)D,;NIH:=H!```:`0```\`#0```````````*2!O.\$`&AE;'`O |
11422 |
M<V5A<F-H+G!N9U54!0`#)H"*055X``!02P$"%P,4````"``;<F0Q?(@;8MX` |
11423 |
M``!"`0``#``-````````````I(%F]`0`:&5L<"]B8V<N<&YG550%``,F@(I! |
11424 |
M57@``%!+`0(7`PH``````!MR9#&TIKQL2P0``$L$```0``T```````````"D |
11425 |
M@8/U!`!H96QP+WIO;VU?:6XN<&YG550%``,F@(I!57@``%!+`0(7`Q0````( |
11426 |
M`!MR9#';K)HG]````%\"```1``T```````$```"D@1'Z!`!H96QP+V-O;G1E |
11427 |
M;G1S+G)D9E54!0`#)H"*055X``!02P$"%P,4````"``;<F0QLGX3R?0&``#F |
11428 |
M&@``#0`-```````!````I(%)^P0`:&5L<"]H96QP+F-S<U54!0`#)H"*055X |
11429 |
M``!02P$"%P,*```````<<F0QL5),/T4"``!%`@``"``-````````````@(%] |
11430 |
M`@4`:6-O;BYP;F=55`4``R>`BD%5>```4$L!`A<#%`````@`CG.5,8@X,/U; |
11431 |
M`@``T@0```L`#0```````0```("!_00%`&EN<W1A;&PN<F1F550%``-;><A! |
11432 |
M57@``%!+`0(7`PH``````$%R9#$````````````````(``T`````````$`#M |
11433 |
M098'!0!M;WIA<'!S+U54!0`#:8"*055X``!02P$"%P,*``````"#!6LQ```` |
11434 |
M````````````#0`-`````````!``[4'1!P4`;6]Z87!P<R]P<F5F+U54!0`# |
11435 |
M)OR2055X``!02P$"%P,4````"``A<F0Q><2L<UT```!@````%``-```````` |
11436 |
M````@($1"`4`;6]Z87!P<R]P<F5F+V1O="YG:6955`4``RZ`BD%5>```4$L! |
11437 |
M`A<#%`````@`(7)D,7E;@.)3!@``G`\``!8`#0```````0```("!M0@%`&UO |
11438 |
M>F%P<',O<')E9B]P<F5F+F-S<WY55`4``RZ`BD%5>```4$L!`A<#%`````@` |
11439 |
M@P5K,4B`FM%8!@``A@\``!4`#0```````0```("!40\%`&UO>F%P<',O<')E |
11440 |
M9B]P<F5F+F-S<U54!0`#)OR2055X``!02P$"%P,4````"``A<F0Q"4+]T+@` |
11441 |
M``#,````%@`-````````````@('Q%04`;6]Z87!P<R]P<F5F+V-H96-K+F=I |
11442 |
M9E54!0`#+H"*055X``!02P$"%P,*``````!]<Y4Q````````````````$@`- |
11443 |
M`````````!``[4'R%@4`;6]Z87!P<R]D;W=N;&]A9',O550%``,^><A!57@` |
11444 |
M`%!+`0(7`PH``````"%R9#'XU@?,T@D``-()```I``T```````````"`@3<7 |
11445 |
M!0!M;WIA<'!S+V1O=VYL;V%D<R]B86-K9W)O=6YD+6=R861I96YT+G!N9U54 |
11446 |
M!0`#+H"*055X``!02P$"%P,*```````A<F0Q:Q'+SSX"```^`@``)0`-```` |
11447 |
M````````@(%E(04`;6]Z87!P<R]D;W=N;&]A9',O9&]W;FQO861#;&5A;G5P |
11448 |
M+G!N9U54!0`#+H"*055X``!02P$"%P,4````"`!VF&4QX1P/]?X```"Q`0`` |
11449 |
M*``-```````!````@('[(P4`;6]Z87!P<R]D;W=N;&]A9',O=6YK;F]W;D-O |
11450 |
M;G1E;G14>7!E+F-S<U54!0`#X!2,055X``!02P$"%P,*```````A<F0Q[BM[ |
11451 |
MQ#HP```Z,```(0`-````````````@(%4)04`;6]Z87!P<R]D;W=N;&]A9',O |
11452 |
M9&]W;FQO861S0D<N<&YG550%``,N@(I!57@``%!+`0(7`PH``````"%R9#$4 |
11453 |
M=V>@3@(``$X"```M``T```````````"`@>)5!0!M;WIA<'!S+V1O=VYL;V%D |
11454 |
M<R]D;W=N;&]A9$-L96%N=7!$:7-A8FQE9"YP;F=55`4``RZ`BD%5>```4$L! |
11455 |
M`A<#"@``````(7)D,<[QB5W$!```Q`0``"(`#0```````````("!D%@%`&UO |
11456 |
M>F%P<',O9&]W;FQO861S+V1O=VYL;V%D26-O;BYP;F=55`4``RZ`BD%5>``` |
11457 |
M4$L!`A<#%`````@`4G.5,='ZO/P!!```EA,``!\`#0```````0```("!J5T% |
11458 |
M`&UO>F%P<',O9&]W;FQO861S+V1O=VYL;V%D<RYC<W-55`4``^QXR$%5>``` |
11459 |
M4$L!`A<#%`````@`07)D,1U]N$7Q````Z0$``!\`#0```````0```("!_&$% |
11460 |
M`&UO>F%P<',O9&]W;FQO861S+V1O=VYL;V%D<RYX;6Q55`4``VF`BD%5>``` |
11461 |
M4$L!`A<#%`````@`(7)D,5NGG`E^````AP```"<`#0```````````("!/V,% |
11462 |
M`&UO>F%P<',O9&]W;FQO861S+V)A8VMG<F]U;F0M<W1R:7!E+G!N9U54!0`# |
11463 |
M+H"*055X``!02P$"%P,*```````A<F0Q^^[I%1\"```?`@``)0`-```````` |
11464 |
M````@($79`4`;6]Z87!P<R]D;W=N;&]A9',O9&]W;FQO861/<'1I;VYS+G!N |
11465 |
M9U54!0`#+H"*055X``!02P$"%P,4````"``A<F0Q]8"%3U<#``!""@``(P`- |
11466 |
M```````!````@(&.9@4`;6]Z87!P<R]D;W=N;&]A9',O9&]W;FQO861S+F-S |
11467 |
M<RYO;&155`4``RZ`BD%5>```4$L!`A<#%`````@`(7)D,8.\)]NG````40,` |
11468 |
M`!\`#0```````````("!.VH%`&UO>F%P<',O9&]W;FQO861S+W9I97=&861E |
11469 |
M<BYP;F=55`4``RZ`BD%5>```4$L!`A<#%`````@`(7)D,;F."S]J`0``-08` |
11470 |
M`"8`#0```````````("!-&L%`&UO>F%P<',O9&]W;FQO861S+V1O=VYL;V%D |
11471 |
M4V5L96-T960N<&YG550%``,N@(I!57@``%!+`0(7`PH``````"%R9#$````` |
11472 |
M```````````2``T`````````$`#M0?=L!0!M;WIA<'!S+WAP:6YS=&%L;"]5 |
11473 |
M5`4``RZ`BD%5>```4$L!`A<#"@``````(7)D,:FZR1I$!P``1`<``"H`#0`` |
11474 |
M`````````("!/&T%`&UO>F%P<',O>'!I;G-T86QL+WAP:6YS=&%L;$ET96U' |
11475 |
M96YE<FEC+G!N9U54!0`#+H"*055X``!02P$"%P,4````"``A<F0Q?'59V&X! |
11476 |
M``!.`P``)@`-```````!````@('==`4`;6]Z87!P<R]X<&EN<W1A;&PO>'!I |
11477 |
M;G-T86QL0V]N9FER;2YC<W-55`4``RZ`BD%5>```4$L!`A<#"@``````07)D |
11478 |
M,0````````````````\`#0`````````0`.U!I'8%`&UO>F%P<',O<VAA<F5D |
11479 |
M+U54!0`#:8"*055X``!02P$"%P,4````"``A<F0QN8X+/VH!```U!@``'P`- |
11480 |
M````````````@('F=@4`;6]Z87!P<R]S:&%R960O:71E;5-E;&5C=&5D+G!N |
11481 |
M9U54!0`#+H"*055X``!02P$"%P,4````"`!!<F0QHYH_E+H```#_````&P`- |
11482 |
M```````!````@(&B>`4`;6]Z87!P<R]S:&%R960O<FEC:'9I97<N8W-S550% |
11483 |
M``-I@(I!57@``%!+`0(7`Q0````(`$%R9#&7%#7(#`$``#T"```;``T````` |
11484 |
M``$```"`@:IY!0!M;WIA<'!S+W-H87)E9"]R:6-H=FEE=RYX;6Q55`4``VF` |
11485 |
MBD%5>```4$L!`A<#%`````@`(7)D,1X%URNG````40,``!P`#0`````````` |
11486 |
M`("!!'L%`&UO>F%P<',O<VAA<F5D+VET96U&861E<BYP;F=55`4``RZ`BD%5 |
11487 |
M>```4$L!`A<#%`````@`(7)D,8.\)]NG````40,``!P`#0```````````("! |
11488 |
M^GL%`&UO>F%P<',O<VAA<F5D+W9I97=&861E<BYP;F=55`4``RZ`BD%5>``` |
11489 |
M4$L!`A<#"@``````(7)D,0````````````````\`#0`````````0`.U!\'P% |
11490 |
M`&UO>F%P<',O=7!D871E+U54!0`#+H"*055X``!02P$"%P,4````"``A<F0Q |
11491 |
MH%KR5FP```!W````&@`-````````````@($R?04`;6]Z87!P<R]U<&1A=&4O |
11492 |
M=V%R;FEN9RYG:6955`4``RZ`BD%5>```4$L!`A<#%`````@`(7)D,99T'I5E |
11493 |
M#0``D0T``!D`#0```````````("!ZWT%`&UO>F%P<',O=7!D871E+VEC;VXS |
11494 |
M,BYP;F=55`4``RZ`BD%5>```4$L!`A<#%`````@`(7)D,2S0"6\]`@``]@4` |
11495 |
M`!D`#0```````0```("!G(L%`&UO>F%P<',O=7!D871E+W5P9&%T92YC<W-5 |
11496 |
M5`4``RZ`BD%5>```4$L!`A<#"@``````(7)D,:-7`.C=`0``W0$``!D`#0`` |
11497 |
M`````````("!)8X%`&UO>F%P<',O=7!D871E+W5P9&%T92YP;F=55`4``RZ` |
11498 |
MBD%5>```4$L!`A<#"@``````(7)D,<V3)QW0!0``T`4``"$`#0`````````` |
11499 |
M`("!3I`%`&UO>F%P<',O=7!D871E+V5X=&5N<VEO;F%L97)T+G!N9U54!0`# |
11500 |
M+H"*055X``!02P$"%P,*``````!]<Y4Q````````````````$P`-```````` |
11501 |
M`!``[4%RE@4`;6]Z87!P<R]E>'1E;G-I;VYS+U54!0`#/GG(055X``!02P$" |
11502 |
M%P,*```````A<F0QWHMC!,X!``#.`0``,``-````````````I(&XE@4`;6]Z |
11503 |
M87!P<R]E>'1E;G-I;VYS+V5X=&5N<VEO;D]P=&EO;G,M9&ES86)L960N<&YG |
11504 |
M550%``,N@(I!57@``%!+`0(7`PH``````"%R9#'$`F6T50@``%4(```C``T` |
11505 |
M``````````"`@>F8!0!M;WIA<'!S+V5X=&5N<VEO;G,O=&AE;65'96YE<FEC |
11506 |
M+G!N9U54!0`#+H"*055X``!02P$"%P,4````"``A<F0QSQ<KPL#<``"1W0`` |
11507 |
M*@`-````````````@(&4H04`;6]Z87!P<R]E>'1E;G-I;VYS+W9I97=7871E |
11508 |
M<FUA<FM4:&5M97,N<&YG550%``,N@(I!57@``%!+`0(7`Q0````(`"%R9#'> |
11509 |
MOQ1E.````$`````B``T```````````"`@;%^!@!M;WIA<'!S+V5X=&5N<VEO |
11510 |
M;G,O<&QA8V5H;VQD97(N9VEF550%``,N@(I!57@``%!+`0(7`PH``````"%R |
11511 |
M9#&CC=CT4`(``%`"```D``T```````````"`@3Y_!@!M;WIA<'!S+V5X=&5N |
11512 |
M<VEO;G,O97AT96YS:6]N2&]M92YP;F=55`4``RZ`BD%5>```4$L!`A<#%``` |
11513 |
M``@`(7)D,7=.</I8`0``%P,``!P`#0```````0```("!Y8$&`&UO>F%P<',O |
11514 |
M97AT96YS:6]N<R]A8F]U="YC<W-55`4``RZ`BD%5>```4$L!`A<#%`````@` |
11515 |
M^IEE,?!&[44%!```UP\``"$`#0```````0```("!C(,&`&UO>F%P<',O97AT |
11516 |
M96YS:6]N<R]E>'1E;G-I;VYS+F-S<U54!0`#N!>,055X``!02P$"%P,4```` |
11517 |
M"``A<F0QTYGVB4F\``!GO0``+@`-````````````@('EAP8`;6]Z87!P<R]E |
11518 |
M>'1E;G-I;VYS+W9I97=7871E<FUA<FM%>'1E;G-I;VYS+G!N9U54!0`#+H"* |
11519 |
M055X``!02P$"%P,*```````A<F0QO.XL/I@,``"8#```)``-```````````` |
11520 |
M@(&/1`<`;6]Z87!P<R]E>'1E;G-I;VYS+V%C=&EO;F)U='1O;G,N<&YG550% |
11521 |
M``,N@(I!57@``%!+`0(7`PH``````"%R9#%5L+Z6:`$``&@!```E``T````` |
11522 |
M``````"`@7Y1!P!M;WIA<'!S+V5X=&5N<VEO;G,O97AT96YS:6]N06)O=70N |
11523 |
M<&YG550%``,N@(I!57@``%!+`0(7`PH``````"%R9#&,]O[T'P(``!\"```G |
11524 |
M``T```````````"`@3Y3!P!M;WIA<'!S+V5X=&5N<VEO;G,O97AT96YS:6]N |
11525 |
M3W!T:6]N<RYP;F=55`4``RZ`BD%5>```4$L!`A<#"@``````(7)D,2Y[!,Z@ |
11526 |
M#0``H`T``"4`#0```````````*2!MU4'`&UO>F%P<',O97AT96YS:6]N<R]A |
11527 |
M8W1I;VYB=71T;VYS:2YP;F=55`4``RZ`BD%5>```4$L!`A<#"@``````07)D |
11528 |
M,0```````````````!``#0`````````0`.U!KV,'`&UO>F%P<',O<&QU9VEN |
11529 |
M<R]55`4``VF`BD%5>```4$L!`A<#%`````@`07)D,1XHX:NV````DP$``"D` |
11530 |
M#0```````0```*2!\F,'`&UO>F%P<',O<&QU9VEN<R]P;'5G:6Y);G-T86QL |
11531 |
M97)7:7IA<F0N8W-S550%``-I@(I!57@``%!+`0(7`Q0````(`"%R9#'@/2NY |
11532 |
M/P$```0#```4``T```````$```"`@01E!P!M;WIA<'!S+V-O;G1E;G1S+G)D |
11533 |
M9E54!0`#+H"*055X``!02P$"%P,*```````A<F0Q````````````````$``- |
11534 |
M`````````!``[4&*9@<`;6]Z87!P<R]P<F]F:6QE+U54!0`#+H"*055X``!0 |
11535 |
M2P$"%P,4````"``A<F0Q8]\@L[4#``#O!P``)``-```````!````@('-9@<` |
11536 |
M;6]Z87!P<R]P<F]F:6QE+W!R;V9I;&5396QE8W1I;VXN8W-S550%``,N@(I! |
11537 |
M57@``%!+`0(7`Q0````(`"%R9#$I[9OR2@```$P````?``T```````````"` |
11538 |
M@=EJ!P!M;WIA<'!S+W!R;V9I;&4O<')O9FEL96EC;VXN9VEF550%``,N@(I! |
11539 |
M57@``%!+`0(7`Q0````(`!QR9#&QZQI<T1D``"L:```+``T```````````"D |
11540 |
M@75K!P!P<F5V:65W+G!N9U54!0`#)X"*055X``!02P4&`````#8!-@'#9@`` |
11541 |
&A(4'```` |
11542 |
` |
11543 |
end |
|
|
11544 |
++ debian/update-mozilla-firefox-chrome |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-gnome-support.postinst |
1 |
#!/bin/sh |
|
|
2 |
|
3 |
set -e |
4 |
|
5 |
umask 022 |
6 |
|
7 |
echo -n "Updating mozilla-firefox chrome registry..." |
8 |
|
9 |
if [ "$1" = "-v" ]; then |
10 |
VERBOSE=1 |
11 |
echo |
12 |
fi |
13 |
|
14 |
unset MOZILLA_FIVE_HOME || : |
15 |
MOZILLA_FIVE_HOME=/usr/lib/mozilla-firefox |
16 |
export MOZILLA_FIVE_HOME |
17 |
|
18 |
# PATH |
19 |
PATH=/usr/lib/mozilla-firefox:$PATH |
20 |
export PATH |
21 |
|
22 |
# added /usr/lib : don't load your local library |
23 |
LD_LIBRARY_PATH=/usr/lib/mozilla-firefox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} |
24 |
export LD_LIBRARY_PATH |
25 |
|
26 |
# fake home to capture .firefox |
27 |
HOME=`mktemp -d /tmp/mozilla-firefox-pkg.XXXXXX` |
28 |
export HOME |
29 |
|
30 |
/sbin/ldconfig |
31 |
|
32 |
VARDIR=/var/lib/mozilla-firefox |
33 |
LIBDIR=/usr/lib/mozilla-firefox |
34 |
EXTDIR=${VARDIR}/extensions.d |
35 |
|
36 |
# cleaning VARDIR |
37 |
rm -fr ${VARDIR}/chrome ${VARDIR}/components ${VARDIR}/extensions/* |
38 |
|
39 |
# cleaning LIBDIR |
40 |
rm -rf ${LIBDIR}/chrome/overlayinfo |
41 |
rm -f ${LIBDIR}/chrome/*.rdf |
42 |
rm -f ${LIBDIR}/components/*.dat |
43 |
rm -f ${LIBDIR}/components.ini |
44 |
rm -f ${LIBDIR}/defaults.ini |
45 |
|
46 |
# create VARDIR |
47 |
install -d ${VARDIR}/chrome/overlayinfo |
48 |
install -d ${VARDIR}/components |
49 |
|
50 |
# create symlinks to LIBDIR |
51 |
ln -sf ${VARDIR}/chrome/overlayinfo ${LIBDIR}/chrome/overlayinfo |
52 |
ln -sf ${VARDIR}/extensions/installed-extensions.txt \ |
53 |
${LIBDIR}/extensions |
54 |
|
55 |
# purge installed-extensions-processed.txt |
56 |
rm -f ${LIBDIR}/extensions/installed-extensions-processed.txt |
57 |
|
58 |
# reinitialize Extensions.rdf |
59 |
rm -f ${LIBDIR}/extensions/Extensions.rdf |
60 |
cat <<EOF > ${LIBDIR}/extensions/Extensions.rdf |
61 |
<?xml version="1.0"?> |
62 |
|
63 |
<RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" |
64 |
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> |
65 |
|
66 |
<Seq about="urn:mozilla:extension:root"/> |
67 |
<Seq about="urn:mozilla:theme:root"/> |
68 |
|
69 |
</RDF> |
70 |
EOF |
71 |
|
72 |
# gen installed-extensions.txt |
73 |
TMPFILE=`tempfile` |
74 |
for f in `echo ${EXTDIR}/* | sort`; do |
75 |
while read line; do |
76 |
EXTUID=`echo ${line} | cut -f 2 -d ,` |
77 |
EXTUIDDIR=${LIBDIR}/extensions/${EXTUID} |
78 |
if [ -e ${EXTUIDDIR} ]; then |
79 |
if [ -e ${EXTUIDDIR}/install.rdf ]; then |
80 |
if grep ${EXTUID} ${EXTUIDDIR}/install.rdf 2>&1 > /dev/null; then |
81 |
echo $line >> ${TMPFILE} |
82 |
elif [ "${VERBOSE}" ]; then |
83 |
echo "W: ${f}: ${EXTUIDDIR}/install.rdf doesn't contain the UID." >& 2 |
84 |
fi |
85 |
elif [ "${VERBOSE}" ]; then |
86 |
echo "W: ${f}: ${EXTUIDDIR}/install.rdf doesn't exist." >&2 |
87 |
fi |
88 |
elif [ "${VERBOSE}" ]; then |
89 |
echo "W: ${f}: ${EXTUIDDIR} doesn't exist." >&2 |
90 |
fi |
91 |
done < $f |
92 |
done |
93 |
|
94 |
mv ${TMPFILE} ${VARDIR}/extensions/installed-extensions.txt |
95 |
chmod 0644 ${VARDIR}/extensions/installed-extensions.txt |
96 |
|
97 |
if [ "$VERBOSE" ]; then |
98 |
for f in `find ${LIBDIR}/extensions/ -name '{*}' -maxdepth 1`; do |
99 |
if ! grep `basename $f` ${VARDIR}/extensions/installed-extensions.txt 2>&1 > /dev/null; then |
100 |
echo "W: `basename $f` not in ${VARDIR}/extensions/installed-extensions.txt" >&2 |
101 |
fi |
102 |
done |
103 |
fi |
104 |
|
105 |
# gen |
106 |
firefox-bin -register >/dev/null 2>&1 || echo "E: Registration process existed with status: $?" >&2 |
107 |
|
108 |
if [ -e ${LIBDIR}/extensions/installed-extensions.txt ]; then |
109 |
echo "E: ${LIBDIR}/extensions/installed-extensions.txt still present. Registration might have gone wrong." >&2 |
110 |
fi |
111 |
|
112 |
# move and link |
113 |
for file in ${LIBDIR}/components/*.dat; do |
114 |
if [ -f "${file}" ]; then |
115 |
mv ${file} ${VARDIR}/components/ |
116 |
ln -fs ${VARDIR}/components/`basename "${file}"` ${LIBDIR}/components/ |
117 |
fi |
118 |
done |
119 |
|
120 |
for file in ${LIBDIR}/chrome/*.rdf; do |
121 |
if [ -f "${file}" ]; then |
122 |
mv ${file} ${VARDIR}/chrome/ |
123 |
ln -fs ${VARDIR}/chrome/`basename "${file}"` ${LIBDIR}/chrome/ |
124 |
fi |
125 |
done |
126 |
|
127 |
mv ${LIBDIR}/defaults.ini ${VARDIR}/ |
128 |
ln -fs ${VARDIR}/defaults.ini ${LIBDIR}/ |
129 |
|
130 |
mv ${LIBDIR}/components.ini ${VARDIR}/ |
131 |
ln -fs ${VARDIR}/components.ini ${LIBDIR}/ |
132 |
|
133 |
mv ${LIBDIR}/extensions/Extensions.rdf ${VARDIR}/extensions/ |
134 |
ln -fs ${VARDIR}/extensions/Extensions.rdf ${LIBDIR}/extensions/ |
135 |
|
136 |
rm -fr ${HOME} |
137 |
|
138 |
# done |
139 |
echo done. |
|
|
140 |
++ debian/mozilla-firefox-gnome-support.postinst |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.postinst |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
if [ "$1" = "configure" ] ; then |
4 |
update-mozilla-firefox-chrome |
5 |
fi |
6 |
|
7 |
#DEBHELPER# |
|
|
8 |
++ debian/mozilla-firefox.postinst |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dev.dirs |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
if [ "$1" = "configure" -o "$1" = "abort-upgrade" ] ; then |
4 |
update-alternatives --install /usr/bin/x-www-browser \ |
5 |
x-www-browser /usr/bin/mozilla-firefox 84 \ |
6 |
--slave /usr/share/man/man1/x-www-browser.1.gz \ |
7 |
x-www-browser.1.gz /usr/share/man/man1/mozilla-firefox.1.gz |
8 |
update-alternatives --install /usr/bin/mozilla mozilla \ |
9 |
/usr/bin/mozilla-firefox 0 \ |
10 |
--slave /usr/share/man/man1/mozilla.1.gz mozilla.1.gz \ |
11 |
/usr/share/man/man1/mozilla-firefox.1.gz |
12 |
fi |
13 |
|
14 |
if [ "$1" = "configure" ] ; then |
15 |
update-mozilla-firefox-chrome |
16 |
fi |
17 |
|
18 |
if [ -x /usr/sbin/update-desktop-database ]; then |
19 |
/usr/sbin/update-desktop-database |
20 |
fi |
21 |
|
22 |
#DEBHELPER# |
|
|
23 |
++ debian/mozilla-firefox-dev.dirs |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.xpm |
1 |
usr/lib/pkgconfig |
|
|
2 |
usr/share/idl |
3 |
usr/include |
4 |
usr/bin |
|
|
5 |
++ debian/mozilla-firefox.xpm |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.1 |
1 |
/* XPM */ |
|
|
2 |
static char * mozicon50_xpm[] = { |
3 |
"48 48 1093 2", |
4 |
" c None", |
5 |
". c #2099CF", |
6 |
"+ c #2CA7D9", |
7 |
"@ c #33AEDD", |
8 |
"# c #34B2E1", |
9 |
"$ c #35B8E5", |
10 |
"% c #2FBAE8", |
11 |
"& c #26B5E4", |
12 |
"* c #199FD6", |
13 |
"= c #177DB8", |
14 |
"- c #2C8FC4", |
15 |
"; c #43A0CE", |
16 |
"> c #55ADD6", |
17 |
", c #5CB5DD", |
18 |
"' c #61C4E8", |
19 |
") c #63CBED", |
20 |
"! c #64CFF1", |
21 |
"~ c #63D1F2", |
22 |
"{ c #5ECCEF", |
23 |
"] c #57C3E9", |
24 |
"^ c #4EB8E1", |
25 |
"/ c #3CABD9", |
26 |
"( c #2A9ED1", |
27 |
"_ c #1991C9", |
28 |
": c #0F7CBA", |
29 |
"< c #166EAC", |
30 |
"[ c #3387BC", |
31 |
"} c #4797C6", |
32 |
"| c #51A0CC", |
33 |
"1 c #56A7D2", |
34 |
"2 c #5BAED7", |
35 |
"3 c #60B6DD", |
36 |
"4 c #67CDEE", |
37 |
"5 c #69D3F2", |
38 |
"6 c #6BD4F4", |
39 |
"7 c #69D3F4", |
40 |
"8 c #63CDEF", |
41 |
"9 c #5AC0E6", |
42 |
"0 c #51B6DF", |
43 |
"a c #49ACD8", |
44 |
"b c #42A2D1", |
45 |
"c c #3898CA", |
46 |
"d c #298CC2", |
47 |
"e c #167EB9", |
48 |
"f c #0B5A9C", |
49 |
"g c #2674AE", |
50 |
"h c #3D87BA", |
51 |
"i c #4590C0", |
52 |
"j c #4B97C6", |
53 |
"k c #519FCB", |
54 |
"l c #58A6D1", |
55 |
"m c #5DADD5", |
56 |
"n c #62B3DA", |
57 |
"o c #69C3E6", |
58 |
"p c #6ED4F2", |
59 |
"q c #6FD6F4", |
60 |
"r c #6ED5F4", |
61 |
"s c #6AD3F2", |
62 |
"t c #5FC3E7", |
63 |
"u c #53B2DC", |
64 |
"v c #4BA8D5", |
65 |
"w c #439FCE", |
66 |
"x c #3B95C7", |
67 |
"y c #338BC0", |
68 |
"z c #2B82B9", |
69 |
"A c #1D76B1", |
70 |
"B c #0C69A9", |
71 |
"C c #10599A", |
72 |
"D c #2D71AA", |
73 |
"E c #377CB2", |
74 |
"F c #3D84B8", |
75 |
"G c #458DBE", |
76 |
"H c #4B95C4", |
77 |
"I c #529CC9", |
78 |
"J c #59A4CF", |
79 |
"K c #5FABD4", |
80 |
"L c #65B1D8", |
81 |
"M c #6BC2E4", |
82 |
"N c #71D5F3", |
83 |
"O c #73D6F3", |
84 |
"P c #72D5F3", |
85 |
"Q c #6DD1F0", |
86 |
"R c #5FBBE2", |
87 |
"S c #54ADD8", |
88 |
"T c #4CA4D2", |
89 |
"U c #439ACB", |
90 |
"V c #3B91C4", |
91 |
"W c #3487BD", |
92 |
"X c #2D7EB7", |
93 |
"Y c #2675AF", |
94 |
"Z c #1E6CA9", |
95 |
"` c #0F5FA0", |
96 |
" . c #055296", |
97 |
".. c #115394", |
98 |
"+. c #2767A2", |
99 |
"@. c #2F70A9", |
100 |
"#. c #3679AF", |
101 |
"$. c #3C81B5", |
102 |
"%. c #448ABC", |
103 |
"&. c #4A92C2", |
104 |
"*. c #519AC7", |
105 |
"=. c #58A2CD", |
106 |
"-. c #5FA9D2", |
107 |
";. c #65B0D7", |
108 |
">. c #6EC8E9", |
109 |
",. c #74D4F2", |
110 |
"'. c #76D6F3", |
111 |
"). c #75D6F3", |
112 |
"!. c #71D3F1", |
113 |
"~. c #62BCE1", |
114 |
"{. c #54A9D5", |
115 |
"]. c #4C9FCE", |
116 |
"^. c #4396C8", |
117 |
"/. c #3B8CC1", |
118 |
"(. c #3483BA", |
119 |
"_. c #2C7AB3", |
120 |
":. c #2670AC", |
121 |
"<. c #1F68A6", |
122 |
"[. c #195F9F", |
123 |
"}. c #0D5497", |
124 |
"|. c #04488D", |
125 |
"1. c #0F4A8D", |
126 |
"2. c #1F5A98", |
127 |
"3. c #2663A0", |
128 |
"4. c #2D6DA6", |
129 |
"5. c #3475AD", |
130 |
"6. c #3B7EB3", |
131 |
"7. c #4287B9", |
132 |
"8. c #4990C1", |
133 |
"9. c #51A4CF", |
134 |
"0. c #569FCA", |
135 |
"a. c #5DA6CF", |
136 |
"b. c #66B5DB", |
137 |
"c. c #6FD1F0", |
138 |
"d. c #75D4F1", |
139 |
"e. c #79D5F2", |
140 |
"f. c #75D3F1", |
141 |
"g. c #63BBE0", |
142 |
"h. c #54A4D1", |
143 |
"i. c #4B9BCB", |
144 |
"j. c #4391C4", |
145 |
"k. c #3B88BD", |
146 |
"l. c #337FB6", |
147 |
"m. c #2C76B0", |
148 |
"n. c #266CA9", |
149 |
"o. c #1F64A3", |
150 |
"p. c #1A5B9C", |
151 |
"q. c #145396", |
152 |
"r. c #0A498E", |
153 |
"s. c #034C8F", |
154 |
"t. c #085293", |
155 |
"u. c #164D8E", |
156 |
"v. c #1D5695", |
157 |
"w. c #24609C", |
158 |
"x. c #2A69A3", |
159 |
"y. c #3271AA", |
160 |
"z. c #387AAF", |
161 |
"A. c #429FCC", |
162 |
"B. c #4CBFE4", |
163 |
"C. c #52C4E8", |
164 |
"D. c #57AFD7", |
165 |
"E. c #5DB3DA", |
166 |
"F. c #65C5E7", |
167 |
"G. c #6DD0EE", |
168 |
"H. c #72D2EF", |
169 |
"I. c #78D4F0", |
170 |
"J. c #7BD5F1", |
171 |
"K. c #76D2EF", |
172 |
"L. c #6AC5E6", |
173 |
"M. c #55A5D1", |
174 |
"N. c #4A95C6", |
175 |
"O. c #428CC0", |
176 |
"P. c #3A83B9", |
177 |
"Q. c #337AB3", |
178 |
"R. c #2C71AD", |
179 |
"S. c #2568A6", |
180 |
"T. c #1F5F9F", |
181 |
"U. c #1D65A3", |
182 |
"V. c #269ACA", |
183 |
"W. c #1C84BA", |
184 |
"X. c #0D7DB5", |
185 |
"Y. c #0298CC", |
186 |
"Z. c #0296CA", |
187 |
"`. c #0C5998", |
188 |
" + c #14498A", |
189 |
".+ c #1B609C", |
190 |
"++ c #2498C8", |
191 |
"@+ c #2977AF", |
192 |
"#+ c #2F75AC", |
193 |
"$+ c #3575AC", |
194 |
"%+ c #40ABD5", |
195 |
"&+ c #49BFE4", |
196 |
"*+ c #50C3E7", |
197 |
"=+ c #56C5E8", |
198 |
"-+ c #5DC8EA", |
199 |
";+ c #63CBEB", |
200 |
">+ c #69CEED", |
201 |
",+ c #6ED0EE", |
202 |
"'+ c #73D2EF", |
203 |
")+ c #77D3EF", |
204 |
"!+ c #72CEEC", |
205 |
"~+ c #5AA7D1", |
206 |
"{+ c #4F99C9", |
207 |
"]+ c #4891C3", |
208 |
"^+ c #4087BC", |
209 |
"/+ c #387EB5", |
210 |
"(+ c #3277B1", |
211 |
"_+ c #2B70AB", |
212 |
":+ c #2463A2", |
213 |
"<+ c #1E5B9C", |
214 |
"[+ c #185395", |
215 |
"}+ c #165496", |
216 |
"|+ c #10498D", |
217 |
"1+ c #105F9E", |
218 |
"2+ c #0A9ECF", |
219 |
"3+ c #0088C0", |
220 |
"4+ c #038DC3", |
221 |
"5+ c #0A4A8C", |
222 |
"6+ c #114E8E", |
223 |
"7+ c #1989BD", |
224 |
"8+ c #22AAD7", |
225 |
"9+ c #28A2D0", |
226 |
"0+ c #2C71A9", |
227 |
"a+ c #3380B5", |
228 |
"b+ c #3EB9E1", |
229 |
"c+ c #45BDE3", |
230 |
"d+ c #4CC0E5", |
231 |
"e+ c #53C3E7", |
232 |
"f+ c #59C6E8", |
233 |
"g+ c #5EC9EA", |
234 |
"h+ c #64CBEB", |
235 |
"i+ c #69CDEC", |
236 |
"j+ c #6ECFED", |
237 |
"k+ c #70D0ED", |
238 |
"l+ c #64BDE1", |
239 |
"m+ c #55A6D1", |
240 |
"n+ c #3D82B8", |
241 |
"o+ c #3D8BBE", |
242 |
"p+ c #49AFD8", |
243 |
"q+ c #378DBF", |
244 |
"r+ c #225F9E", |
245 |
"s+ c #1D5698", |
246 |
"t+ c #174E92", |
247 |
"u+ c #12468B", |
248 |
"v+ c #0E3F85", |
249 |
"w+ c #115F9D", |
250 |
"x+ c #15A2D1", |
251 |
"y+ c #0395C9", |
252 |
"z+ c #0088C1", |
253 |
"A+ c #0190C6", |
254 |
"B+ c #079ACC", |
255 |
"C+ c #0FA0D0", |
256 |
"D+ c #169ECF", |
257 |
"E+ c #1D99CC", |
258 |
"F+ c #25AAD7", |
259 |
"G+ c #2BA0CE", |
260 |
"H+ c #32AED8", |
261 |
"I+ c #3AB7DF", |
262 |
"J+ c #41BBE1", |
263 |
"K+ c #47BEE3", |
264 |
"L+ c #4EC1E5", |
265 |
"M+ c #53C4E7", |
266 |
"N+ c #5FC8E9", |
267 |
"O+ c #63CAEA", |
268 |
"P+ c #67CBEB", |
269 |
"Q+ c #69CBEA", |
270 |
"R+ c #62BCE0", |
271 |
"S+ c #5AAFD7", |
272 |
"T+ c #478DBF", |
273 |
"U+ c #4084B9", |
274 |
"V+ c #3A7CB4", |
275 |
"W+ c #3E8CBF", |
276 |
"X+ c #4DBADF", |
277 |
"Y+ c #3383B8", |
278 |
"Z+ c #215B9B", |
279 |
"`+ c #1B5295", |
280 |
" @ c #164A8E", |
281 |
".@ c #114288", |
282 |
"+@ c #0D3A82", |
283 |
"@@ c #0E4C8E", |
284 |
"#@ c #1380B7", |
285 |
"$@ c #0D96C9", |
286 |
"%@ c #0089C1", |
287 |
"&@ c #007BB8", |
288 |
"*@ c #0085BE", |
289 |
"=@ c #008CC4", |
290 |
"-@ c #0496C9", |
291 |
";@ c #0B9DCF", |
292 |
">@ c #1168AB", |
293 |
",@ c #174F99", |
294 |
"'@ c #21AAD7", |
295 |
")@ c #28AED9", |
296 |
"!@ c #2FB1DB", |
297 |
"~@ c #36B5DE", |
298 |
"{@ c #3CB8E0", |
299 |
"]@ c #42BBE2", |
300 |
"^@ c #49BEE4", |
301 |
"/@ c #54C3E6", |
302 |
"(@ c #59C5E7", |
303 |
"_@ c #5DC7E8", |
304 |
":@ c #5FC5E7", |
305 |
"<@ c #53A9D3", |
306 |
"[@ c #4B96C6", |
307 |
"}@ c #478FC2", |
308 |
"|@ c #4186BB", |
309 |
"1@ c #3C7FB5", |
310 |
"2@ c #3676AF", |
311 |
"3@ c #306EA9", |
312 |
"4@ c #3889BD", |
313 |
"5@ c #44AFD8", |
314 |
"6@ c #2F84B9", |
315 |
"7@ c #194D91", |
316 |
"8@ c #15458A", |
317 |
"9@ c #144D90", |
318 |
"0@ c #0C367E", |
319 |
"a@ c #0C4086", |
320 |
"b@ c #1797C8", |
321 |
"c@ c #1295C8", |
322 |
"d@ c #0487C0", |
323 |
"e@ c #0079B6", |
324 |
"f@ c #0081BC", |
325 |
"g@ c #0E9ACC", |
326 |
"h@ c #1597CA", |
327 |
"i@ c #1CA7D5", |
328 |
"j@ c #23ABD8", |
329 |
"k@ c #2AAFDA", |
330 |
"l@ c #31B2DC", |
331 |
"m@ c #37B5DE", |
332 |
"n@ c #3DB8E0", |
333 |
"o@ c #43BBE2", |
334 |
"p@ c #49BEE3", |
335 |
"q@ c #4EC0E4", |
336 |
"r@ c #53C2E5", |
337 |
"s@ c #57C4E6", |
338 |
"t@ c #4EAAD4", |
339 |
"u@ c #4696C5", |
340 |
"v@ c #438FC0", |
341 |
"w@ c #4088BC", |
342 |
"x@ c #3C80B6", |
343 |
"y@ c #3778B1", |
344 |
"z@ c #3270AB", |
345 |
"A@ c #2C68A5", |
346 |
"B@ c #3D9AC8", |
347 |
"C@ c #46BADF", |
348 |
"D@ c #3DB0D8", |
349 |
"E@ c #287CB2", |
350 |
"F@ c #164D90", |
351 |
"G@ c #299ECC", |
352 |
"H@ c #1B79B0", |
353 |
"I@ c #1A8CBF", |
354 |
"J@ c #199BCC", |
355 |
"K@ c #1392C6", |
356 |
"L@ c #0A86BE", |
357 |
"M@ c #0079B7", |
358 |
"N@ c #006AAC", |
359 |
"O@ c #0074B3", |
360 |
"P@ c #007CB9", |
361 |
"Q@ c #0083BE", |
362 |
"R@ c #008BC2", |
363 |
"S@ c #0393C8", |
364 |
"T@ c #099CCD", |
365 |
"U@ c #10A1D1", |
366 |
"V@ c #17A4D3", |
367 |
"W@ c #1EA8D6", |
368 |
"X@ c #25ABD8", |
369 |
"Y@ c #2BAFDA", |
370 |
"Z@ c #37B5DD", |
371 |
"`@ c #3DB8DF", |
372 |
" # c #42BAE1", |
373 |
".# c #48BCE2", |
374 |
"+# c #4CBEE3", |
375 |
"@# c #50C0E4", |
376 |
"## c #48A8D3", |
377 |
"$# c #3F8EC0", |
378 |
"%# c #3C87BC", |
379 |
"&# c #3A81B7", |
380 |
"*# c #3679B1", |
381 |
"=# c #3171AC", |
382 |
"-# c #2D6AA6", |
383 |
";# c #2862A0", |
384 |
"># c #40A5D1", |
385 |
",# c #43B8DE", |
386 |
"'# c #3DB5DC", |
387 |
")# c #38B1DA", |
388 |
"!# c #2D9ECC", |
389 |
"~# c #2B9FCE", |
390 |
"{# c #246AAA", |
391 |
"]# c #1F96C7", |
392 |
"^# c #1996C9", |
393 |
"/# c #138DC3", |
394 |
"(# c #0E84BC", |
395 |
"_# c #0175B4", |
396 |
":# c #0068AC", |
397 |
"<# c #0070B1", |
398 |
"[# c #0077B5", |
399 |
"}# c #007FBA", |
400 |
"|# c #0086BF", |
401 |
"1# c #018DC4", |
402 |
"2# c #0596C9", |
403 |
"3# c #0B9DCE", |
404 |
"4# c #12A1D1", |
405 |
"5# c #1897C8", |
406 |
"6# c #1E96C7", |
407 |
"7# c #25A0CE", |
408 |
"8# c #2B90C2", |
409 |
"9# c #31A4D0", |
410 |
"0# c #37B4DD", |
411 |
"a# c #3CB7DF", |
412 |
"b# c #41B9E0", |
413 |
"c# c #45BBE0", |
414 |
"d# c #49BCE1", |
415 |
"e# c #4BBBE0", |
416 |
"f# c #419FCC", |
417 |
"g# c #3C91C2", |
418 |
"h# c #337AB1", |
419 |
"i# c #3072AC", |
420 |
"j# c #2C6BA7", |
421 |
"k# c #2864A1", |
422 |
"l# c #255F9E", |
423 |
"m# c #3FAAD4", |
424 |
"n# c #40B6DC", |
425 |
"o# c #3AB3DB", |
426 |
"p# c #35B0D8", |
427 |
"q# c #2F86BD", |
428 |
"r# c #29599F", |
429 |
"s# c #237DB7", |
430 |
"t# c #1E99CA", |
431 |
"u# c #1892C5", |
432 |
"v# c #1389C0", |
433 |
"w# c #0E7FBA", |
434 |
"x# c #0473B2", |
435 |
"y# c #0065AA", |
436 |
"z# c #0064A9", |
437 |
"A# c #006BAD", |
438 |
"B# c #0072B2", |
439 |
"C# c #0080BC", |
440 |
"D# c #0082BC", |
441 |
"E# c #028DC4", |
442 |
"F# c #0796C9", |
443 |
"G# c #0D88BD", |
444 |
"H# c #1372AB", |
445 |
"I# c #1982B8", |
446 |
"J# c #1F79B0", |
447 |
"K# c #247BB1", |
448 |
"L# c #2A86B9", |
449 |
"M# c #31B1DA", |
450 |
"N# c #36B3DC", |
451 |
"O# c #3AB5DD", |
452 |
"P# c #3FB7DE", |
453 |
"Q# c #42B9DF", |
454 |
"R# c #45BAE0", |
455 |
"S# c #48BBE0", |
456 |
"T# c #47B6DD", |
457 |
"U# c #3689BC", |
458 |
"V# c #2D72AB", |
459 |
"W# c #2C73AC", |
460 |
"X# c #2F7DB3", |
461 |
"Y# c #399BC9", |
462 |
"Z# c #3FB4DB", |
463 |
"`# c #3CB3DA", |
464 |
" $ c #37B0D9", |
465 |
".$ c #32AED7", |
466 |
"+$ c #2CA8D3", |
467 |
"@$ c #277EB8", |
468 |
"#$ c #229CCC", |
469 |
"$$ c #1D95C8", |
470 |
"%$ c #188DC2", |
471 |
"&$ c #1384BD", |
472 |
"*$ c #0D7AB6", |
473 |
"=$ c #066FB0", |
474 |
"-$ c #0057A0", |
475 |
";$ c #005FA5", |
476 |
">$ c #0066AA", |
477 |
",$ c #006DAF", |
478 |
"'$ c #006EAC", |
479 |
")$ c #004C8E", |
480 |
"!$ c #005595", |
481 |
"~$ c #025999", |
482 |
"{$ c #085D9B", |
483 |
"]$ c #0D64A0", |
484 |
"^$ c #1369A4", |
485 |
"/$ c #196EA7", |
486 |
"($ c #1E73AA", |
487 |
"_$ c #2376AD", |
488 |
":$ c #2AA0CE", |
489 |
"<$ c #2FAFD9", |
490 |
"[$ c #34B1DB", |
491 |
"}$ c #38B3DC", |
492 |
"|$ c #3BB5DC", |
493 |
"1$ c #3EB6DD", |
494 |
"2$ c #40B7DD", |
495 |
"3$ c #42B7DD", |
496 |
"4$ c #43B7DE", |
497 |
"5$ c #43B7DD", |
498 |
"6$ c #40B5DC", |
499 |
"7$ c #3DB4DB", |
500 |
"8$ c #3AB2DA", |
501 |
"9$ c #33AED6", |
502 |
"0$ c #2EABD5", |
503 |
"a$ c #29A5D2", |
504 |
"b$ c #259ECD", |
505 |
"c$ c #2094C6", |
506 |
"d$ c #1C8DC2", |
507 |
"e$ c #1787BE", |
508 |
"f$ c #127EB9", |
509 |
"g$ c #0D75B3", |
510 |
"h$ c #076AAC", |
511 |
"i$ c #005FA6", |
512 |
"j$ c #00539D", |
513 |
"k$ c #005AA2", |
514 |
"l$ c #0060A6", |
515 |
"m$ c #0068AB", |
516 |
"n$ c #0063A5", |
517 |
"o$ c #004487", |
518 |
"p$ c #004386", |
519 |
"q$ c #004789", |
520 |
"r$ c #004B8D", |
521 |
"s$ c #045192", |
522 |
"t$ c #095997", |
523 |
"u$ c #0E5F9C", |
524 |
"v$ c #1365A0", |
525 |
"w$ c #1869A4", |
526 |
"x$ c #1D6EA7", |
527 |
"y$ c #2274AB", |
528 |
"z$ c #28A6D2", |
529 |
"A$ c #2DAED8", |
530 |
"B$ c #31AFD9", |
531 |
"C$ c #34B1DA", |
532 |
"D$ c #37B2DB", |
533 |
"E$ c #39B3DB", |
534 |
"F$ c #3BB4DB", |
535 |
"G$ c #3CB4DB", |
536 |
"H$ c #3BB3DA", |
537 |
"I$ c #38B1D9", |
538 |
"J$ c #35AFD8", |
539 |
"K$ c #32ADD6", |
540 |
"L$ c #2EAAD4", |
541 |
"M$ c #2BA5D1", |
542 |
"N$ c #2795C5", |
543 |
"O$ c #2374AA", |
544 |
"P$ c #1E5691", |
545 |
"Q$ c #1A4C89", |
546 |
"R$ c #156AA5", |
547 |
"S$ c #1078B5", |
548 |
"T$ c #0B6FAF", |
549 |
"U$ c #0665A9", |
550 |
"V$ c #004A97", |
551 |
"W$ c #004D9A", |
552 |
"X$ c #00509A", |
553 |
"Y$ c #00579F", |
554 |
"Z$ c #0062A7", |
555 |
"`$ c #00468A", |
556 |
" % c #00387C", |
557 |
".% c #003C7F", |
558 |
"+% c #004083", |
559 |
"@% c #044D8E", |
560 |
"#% c #095493", |
561 |
"$% c #0E5A98", |
562 |
"%% c #13609C", |
563 |
"&% c #18659F", |
564 |
"*% c #1C6BA4", |
565 |
"=% c #219FCD", |
566 |
"-% c #25AAD5", |
567 |
";% c #29ABD6", |
568 |
">% c #2DADD7", |
569 |
",% c #30AED8", |
570 |
"'% c #32AFD8", |
571 |
")% c #34B0D8", |
572 |
"!% c #34AED7", |
573 |
"~% c #30ABD4", |
574 |
"{% c #2DA8D2", |
575 |
"]% c #2BA3CF", |
576 |
"^% c #289DCC", |
577 |
"/% c #2494C5", |
578 |
"(% c #20659E", |
579 |
"_% c #1C4684", |
580 |
":% c #183D7C", |
581 |
"<% c #133B7A", |
582 |
"[% c #0F5695", |
583 |
"}% c #0A5FA1", |
584 |
"|% c #055FA5", |
585 |
"1% c #00559F", |
586 |
"2% c #004D99", |
587 |
"3% c #004896", |
588 |
"4% c #002E74", |
589 |
"5% c #003C82", |
590 |
"6% c #004E94", |
591 |
"7% c #003377", |
592 |
"8% c #003175", |
593 |
"9% c #003578", |
594 |
"0% c #003B7F", |
595 |
"a% c #003F82", |
596 |
"b% c #014285", |
597 |
"c% c #044889", |
598 |
"d% c #094E8E", |
599 |
"e% c #0D5493", |
600 |
"f% c #125997", |
601 |
"g% c #167FB4", |
602 |
"h% c #1A96C7", |
603 |
"i% c #1EA5D2", |
604 |
"j% c #22A7D3", |
605 |
"k% c #25A9D4", |
606 |
"l% c #28AAD5", |
607 |
"m% c #2AAAD5", |
608 |
"n% c #2CABD6", |
609 |
"o% c #2DACD6", |
610 |
"p% c #2EACD5", |
611 |
"q% c #2DA9D3", |
612 |
"r% c #2CA6D1", |
613 |
"s% c #299FCD", |
614 |
"t% c #279ACA", |
615 |
"u% c #2495C7", |
616 |
"v% c #218FC3", |
617 |
"w% c #1D86BC", |
618 |
"x% c #1A4683", |
619 |
"y% c #163574", |
620 |
"z% c #112C6C", |
621 |
"A% c #0D2464", |
622 |
"B% c #082D6F", |
623 |
"C% c #044E94", |
624 |
"D% c #004F9A", |
625 |
"E% c #004292", |
626 |
"F% c #00347D", |
627 |
"G% c #002266", |
628 |
"H% c #002669", |
629 |
"I% c #00286C", |
630 |
"J% c #002B6F", |
631 |
"K% c #002E72", |
632 |
"L% c #003478", |
633 |
"M% c #00377B", |
634 |
"N% c #003A7E", |
635 |
"O% c #013D80", |
636 |
"P% c #044285", |
637 |
"Q% c #084889", |
638 |
"R% c #0D4D8D", |
639 |
"S% c #115492", |
640 |
"T% c #15609B", |
641 |
"U% c #189ACB", |
642 |
"V% c #1CA0CF", |
643 |
"W% c #1FA2CF", |
644 |
"X% c #21A3D1", |
645 |
"Y% c #24A4D1", |
646 |
"Z% c #25A5D1", |
647 |
"`% c #27A4D1", |
648 |
" & c #28A4D1", |
649 |
".& c #28A0CE", |
650 |
"+& c #289ECC", |
651 |
"@& c #2596C8", |
652 |
"#& c #2392C5", |
653 |
"$& c #208DC2", |
654 |
"%& c #1D87BD", |
655 |
"&& c #1A75AE", |
656 |
"*& c #173978", |
657 |
"=& c #132E6D", |
658 |
"-& c #0F2565", |
659 |
";& c #0B1D5D", |
660 |
">& c #071555", |
661 |
",& c #021151", |
662 |
"'& c #001F61", |
663 |
")& c #00276D", |
664 |
"!& c #003D8E", |
665 |
"~& c #003B89", |
666 |
"{& c #001E62", |
667 |
"]& c #002063", |
668 |
"^& c #002569", |
669 |
"/& c #002D72", |
670 |
"(& c #003074", |
671 |
"_& c #003579", |
672 |
":& c #033C7F", |
673 |
"<& c #074183", |
674 |
"[& c #0B4787", |
675 |
"}& c #0F5392", |
676 |
"|& c #1391C5", |
677 |
"1& c #1695C8", |
678 |
"2& c #1998CA", |
679 |
"3& c #1C99CA", |
680 |
"4& c #1E9ACB", |
681 |
"5& c #209BCB", |
682 |
"6& c #219BCB", |
683 |
"7& c #229ACA", |
684 |
"8& c #2399C9", |
685 |
"9& c #2397C8", |
686 |
"0& c #2394C6", |
687 |
"a& c #2291C4", |
688 |
"b& c #1E89C0", |
689 |
"c& c #1C84BC", |
690 |
"d& c #1A5B97", |
691 |
"e& c #174C89", |
692 |
"f& c #142D6C", |
693 |
"g& c #102665", |
694 |
"h& c #0C1E5D", |
695 |
"i& c #081756", |
696 |
"j& c #040F4F", |
697 |
"k& c #000847", |
698 |
"l& c #000541", |
699 |
"m& c #00033D", |
700 |
"n& c #00368A", |
701 |
"o& c #00256E", |
702 |
"p& c #00185A", |
703 |
"q& c #001A5D", |
704 |
"r& c #001D60", |
705 |
"s& c #001F63", |
706 |
"t& c #002568", |
707 |
"u& c #00276B", |
708 |
"v& c #00296D", |
709 |
"w& c #002B70", |
710 |
"x& c #003276", |
711 |
"y& c #023579", |
712 |
"z& c #063A7D", |
713 |
"A& c #0A5997", |
714 |
"B& c #0D87BF", |
715 |
"C& c #108AC1", |
716 |
"D& c #138CC3", |
717 |
"E& c #168EC4", |
718 |
"F& c #188FC4", |
719 |
"G& c #1A90C4", |
720 |
"H& c #1C90C4", |
721 |
"I& c #1D8FC4", |
722 |
"J& c #1D8EC3", |
723 |
"K& c #1D8CC2", |
724 |
"L& c #1D8AC0", |
725 |
"M& c #1C87BE", |
726 |
"N& c #1B83BC", |
727 |
"O& c #1A7FB9", |
728 |
"P& c #1864A0", |
729 |
"Q& c #164987", |
730 |
"R& c #132C6A", |
731 |
"S& c #102564", |
732 |
"T& c #0D1E5D", |
733 |
"U& c #091756", |
734 |
"V& c #06104E", |
735 |
"W& c #020947", |
736 |
"X& c #000441", |
737 |
"Y& c #00023C", |
738 |
"Z& c #000038", |
739 |
"`& c #003086", |
740 |
" * c #001A5E", |
741 |
".* c #001354", |
742 |
"+* c #001658", |
743 |
"@* c #001D5F", |
744 |
"#* c #001F62", |
745 |
"$* c #002164", |
746 |
"%* c #002367", |
747 |
"&* c #002D71", |
748 |
"** c #014C8E", |
749 |
"=* c #0474B2", |
750 |
"-* c #077CB9", |
751 |
";* c #0B80BA", |
752 |
">* c #0E82BB", |
753 |
",* c #1083BC", |
754 |
"'* c #1285BD", |
755 |
")* c #1485BE", |
756 |
"!* c #1686BD", |
757 |
"~* c #1785BD", |
758 |
"{* c #1884BC", |
759 |
"]* c #1882BB", |
760 |
"^* c #1880B9", |
761 |
"/* c #187DB7", |
762 |
"(* c #177AB6", |
763 |
"_* c #1571AF", |
764 |
":* c #143676", |
765 |
"<* c #122968", |
766 |
"[* c #0F2362", |
767 |
"}* c #0D1D5C", |
768 |
"|* c #0A1755", |
769 |
"1* c #030A47", |
770 |
"2* c #000239", |
771 |
"3* c #002A82", |
772 |
"4* c #00175D", |
773 |
"5* c #00104F", |
774 |
"6* c #001252", |
775 |
"7* c #001454", |
776 |
"8* c #001657", |
777 |
"9* c #00195C", |
778 |
"0* c #001C5E", |
779 |
"a* c #001D61", |
780 |
"b* c #002165", |
781 |
"c* c #002366", |
782 |
"d* c #002468", |
783 |
"e* c #006CAE", |
784 |
"f* c #006FB0", |
785 |
"g* c #0271B1", |
786 |
"h* c #0574B3", |
787 |
"i* c #0877B4", |
788 |
"j* c #0B78B5", |
789 |
"k* c #0F7AB6", |
790 |
"l* c #107AB7", |
791 |
"m* c #127AB6", |
792 |
"n* c #1279B5", |
793 |
"o* c #1377B4", |
794 |
"p* c #1375B3", |
795 |
"q* c #1372B1", |
796 |
"r* c #126FAF", |
797 |
"s* c #115797", |
798 |
"t* c #0F2766", |
799 |
"u* c #0D2160", |
800 |
"v* c #0B1B5A", |
801 |
"w* c #091554", |
802 |
"x* c #06104D", |
803 |
"y* c #030A46", |
804 |
"z* c #000540", |
805 |
"A* c #000036", |
806 |
"B* c #00237E", |
807 |
"C* c #002980", |
808 |
"D* c #002372", |
809 |
"E* c #001A60", |
810 |
"F* c #001659", |
811 |
"G* c #001358", |
812 |
"H* c #001A5F", |
813 |
"I* c #002064", |
814 |
"J* c #001B5E", |
815 |
"K* c #005397", |
816 |
"L* c #0065A9", |
817 |
"M* c #0067AB", |
818 |
"N* c #0069AC", |
819 |
"O* c #026AAD", |
820 |
"P* c #046CAE", |
821 |
"Q* c #0768AB", |
822 |
"R* c #0965A9", |
823 |
"S* c #0A6EAF", |
824 |
"T* c #0C6EAE", |
825 |
"U* c #0D6DAE", |
826 |
"V* c #0D6CAD", |
827 |
"W* c #0D6AAB", |
828 |
"X* c #0D67AA", |
829 |
"Y* c #0D64A7", |
830 |
"Z* c #0C498C", |
831 |
"`* c #0A1E5E", |
832 |
" = c #091856", |
833 |
".= c #071350", |
834 |
"+= c #050D4B", |
835 |
"@= c #020844", |
836 |
"#= c #00043F", |
837 |
"$= c #00023B", |
838 |
"%= c #000037", |
839 |
"&= c #000035", |
840 |
"*= c #000034", |
841 |
"== c #001A77", |
842 |
"-= c #00237D", |
843 |
";= c #002881", |
844 |
">= c #002D84", |
845 |
",= c #00287F", |
846 |
"'= c #000B6C", |
847 |
")= c #00388A", |
848 |
"!= c #003785", |
849 |
"~= c #001556", |
850 |
"{= c #001759", |
851 |
"]= c #00195B", |
852 |
"^= c #001C5F", |
853 |
"/= c #001C60", |
854 |
"(= c #004B91", |
855 |
"_= c #004287", |
856 |
":= c #00569C", |
857 |
"<= c #0061A7", |
858 |
"[= c #023187", |
859 |
"}= c #033388", |
860 |
"|= c #0563A7", |
861 |
"1= c #0662A7", |
862 |
"2= c #0762A7", |
863 |
"3= c #0860A6", |
864 |
"4= c #085EA4", |
865 |
"5= c #085CA3", |
866 |
"6= c #084388", |
867 |
"7= c #071B5B", |
868 |
"8= c #061453", |
869 |
"9= c #04104D", |
870 |
"0= c #030B48", |
871 |
"a= c #010742", |
872 |
"b= c #00033E", |
873 |
"c= c #00013A", |
874 |
"d= c #000033", |
875 |
"e= c #000032", |
876 |
"f= c #001C79", |
877 |
"g= c #00217C", |
878 |
"h= c #002780", |
879 |
"i= c #002B83", |
880 |
"j= c #003589", |
881 |
"k= c #001D63", |
882 |
"l= c #000F4F", |
883 |
"m= c #000F4E", |
884 |
"n= c #001050", |
885 |
"o= c #001152", |
886 |
"p= c #001353", |
887 |
"q= c #001455", |
888 |
"r= c #002F74", |
889 |
"s= c #00529A", |
890 |
"t= c #0058A1", |
891 |
"u= c #00529D", |
892 |
"v= c #0156A0", |
893 |
"w= c #02569F", |
894 |
"x= c #02549E", |
895 |
"y= c #03529D", |
896 |
"z= c #034F9A", |
897 |
"A= c #032062", |
898 |
"B= c #020F4E", |
899 |
"C= c #010C49", |
900 |
"D= c #000845", |
901 |
"E= c #00033C", |
902 |
"F= c #000138", |
903 |
"G= c #000135", |
904 |
"H= c #001474", |
905 |
"I= c #001F7B", |
906 |
"J= c #00247E", |
907 |
"K= c #002D83", |
908 |
"L= c #001051", |
909 |
"M= c #000A46", |
910 |
"N= c #000B48", |
911 |
"O= c #000C4A", |
912 |
"P= c #000D4B", |
913 |
"Q= c #000E4D", |
914 |
"R= c #001151", |
915 |
"S= c #001253", |
916 |
"T= c #00377E", |
917 |
"U= c #004E9A", |
918 |
"V= c #004C98", |
919 |
"W= c #00408C", |
920 |
"X= c #000946", |
921 |
"Y= c #00053F", |
922 |
"Z= c #000137", |
923 |
"`= c #000031", |
924 |
" - c #000030", |
925 |
".- c #001373", |
926 |
"+- c #001876", |
927 |
"@- c #001D79", |
928 |
"#- c #00267F", |
929 |
"$- c #000D4D", |
930 |
"%- c #000741", |
931 |
"&- c #000843", |
932 |
"*- c #000945", |
933 |
"=- c #000A47", |
934 |
"-- c #000B49", |
935 |
";- c #000D4C", |
936 |
">- c #002F77", |
937 |
",- c #00327A", |
938 |
"'- c #002267", |
939 |
")- c #002166", |
940 |
"!- c #00256A", |
941 |
"~- c #003D89", |
942 |
"{- c #004393", |
943 |
"]- c #003F90", |
944 |
"^- c #003C8D", |
945 |
"/- c #003382", |
946 |
"(- c #003587", |
947 |
"_- c #002069", |
948 |
":- c #00033A", |
949 |
"<- c #000136", |
950 |
"[- c #00002F", |
951 |
"}- c #000C6E", |
952 |
"|- c #001171", |
953 |
"1- c #001574", |
954 |
"2- c #001E7A", |
955 |
"3- c #00196A", |
956 |
"4- c #00053E", |
957 |
"5- c #000640", |
958 |
"6- c #000742", |
959 |
"7- c #00185B", |
960 |
"8- c #003787", |
961 |
"9- c #00398C", |
962 |
"0- c #00378B", |
963 |
"a- c #003388", |
964 |
"b- c #002779", |
965 |
"c- c #00063F", |
966 |
"d- c #00002D", |
967 |
"e- c #00096C", |
968 |
"f- c #000D6F", |
969 |
"g- c #001271", |
970 |
"h- c #001675", |
971 |
"i- c #001872", |
972 |
"j- c #000338", |
973 |
"k- c #00043A", |
974 |
"l- c #00043B", |
975 |
"m- c #00053D", |
976 |
"n- c #000844", |
977 |
"o- c #000944", |
978 |
"p- c #002573", |
979 |
"q- c #002E85", |
980 |
"r- c #002C83", |
981 |
"s- c #001E71", |
982 |
"t- c #00002E", |
983 |
"u- c #00002C", |
984 |
"v- c #000266", |
985 |
"w- c #00066A", |
986 |
"x- c #000A6D", |
987 |
"y- c #000E70", |
988 |
"z- c #000C58", |
989 |
"A- c #000643", |
990 |
"B- c #000337", |
991 |
"C- c #000236", |
992 |
"D- c #000339", |
993 |
"E- c #00053C", |
994 |
"F- c #00063E", |
995 |
"G- c #00073F", |
996 |
"H- c #00145A", |
997 |
"I- c #001C78", |
998 |
"J- c #000743", |
999 |
"K- c #00002A", |
1000 |
"L- c #00005F", |
1001 |
"M- c #000267", |
1002 |
"N- c #000A6C", |
1003 |
"O- c #000952", |
1004 |
"P- c #000131", |
1005 |
"Q- c #000132", |
1006 |
"R- c #000133", |
1007 |
"S- c #000134", |
1008 |
"T- c #000235", |
1009 |
"U- c #00196E", |
1010 |
"V- c #001D7A", |
1011 |
"W- c #001B78", |
1012 |
"X- c #001977", |
1013 |
"Y- c #001775", |
1014 |
"Z- c #001473", |
1015 |
"`- c #000E66", |
1016 |
" ; c #00002B", |
1017 |
".; c #000029", |
1018 |
"+; c #000053", |
1019 |
"@; c #00005E", |
1020 |
"#; c #000265", |
1021 |
"$; c #000464", |
1022 |
"%; c #000130", |
1023 |
"&; c #001160", |
1024 |
"*; c #001164", |
1025 |
"=; c #001674", |
1026 |
"-; c #001272", |
1027 |
";; c #001071", |
1028 |
">; c #000E6F", |
1029 |
",; c #000B6E", |
1030 |
"'; c #00086C", |
1031 |
"); c #00045F", |
1032 |
"!; c #000152", |
1033 |
"~; c #000046", |
1034 |
"{; c #000051", |
1035 |
"]; c #00005A", |
1036 |
"^; c #00012F", |
1037 |
"/; c #000542", |
1038 |
"(; c #00106E", |
1039 |
"_; c #001070", |
1040 |
":; c #000F70", |
1041 |
"<; c #00086B", |
1042 |
"[; c #000367", |
1043 |
"}; c #000163", |
1044 |
"|; c #00005B", |
1045 |
"1; c #000052", |
1046 |
"2; c #000047", |
1047 |
"3; c #000041", |
1048 |
"4; c #000028", |
1049 |
"5; c #000021", |
1050 |
"6; c #000025", |
1051 |
"7; c #00003E", |
1052 |
"8; c #00003A", |
1053 |
"9; c #00075A", |
1054 |
"0; c #00076B", |
1055 |
"a; c #000569", |
1056 |
"b; c #000368", |
1057 |
"c; c #000162", |
1058 |
"d; c #00005C", |
1059 |
"e; c #000054", |
1060 |
"f; c #00004C", |
1061 |
"g; c #000042", |
1062 |
"h; c #000039", |
1063 |
"i; c #000026", |
1064 |
"j; c #000023", |
1065 |
"k; c #000017", |
1066 |
"l; c #00001C", |
1067 |
"m; c #00004D", |
1068 |
"n; c #000055", |
1069 |
"o; c #000027", |
1070 |
"p; c #00003D", |
1071 |
"q; c #000058", |
1072 |
"r; c #00004E", |
1073 |
"s; c #000048", |
1074 |
"t; c #000019", |
1075 |
"u; c #000012", |
1076 |
"v; c #00001D", |
1077 |
"w; c #00001F", |
1078 |
"x; c #000044", |
1079 |
"y; c #000008", |
1080 |
"z; c #000018", |
1081 |
"A; c #000024", |
1082 |
"B; c #000015", |
1083 |
"C; c #000022", |
1084 |
"D; c #00000F", |
1085 |
"E; c #000004", |
1086 |
"F; c #000007", |
1087 |
"G; c #000009", |
1088 |
"H; c #00000C", |
1089 |
"I; c #00000D", |
1090 |
"J; c #00000E", |
1091 |
"K; c #00000A", |
1092 |
"L; c #000003", |
1093 |
"M; c #000000", |
1094 |
"N; c #000001", |
1095 |
"O; c #000005", |
1096 |
"P; c #00000B", |
1097 |
" ", |
1098 |
" ", |
1099 |
" . + @ # $ % & * ", |
1100 |
" = - ; > , ' ) ! ~ { ] ^ / ( _ : ", |
1101 |
" < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e ", |
1102 |
" f g h i j k l m n o p q r s t u v w x y z A B ", |
1103 |
" C D E F G H I J K L M N O P Q R S T U V W X Y Z ` . ", |
1104 |
" ..+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|. ", |
1105 |
" 1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s. ", |
1106 |
" t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y. ", |
1107 |
" Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+ ", |
1108 |
" 3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+k+l+m+]+n+o+p+q+r+s+t+u+v+w+x+y+ ", |
1109 |
" z+A+B+C+D+E+F+G+H+I+J+K+L+M+f+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@ ", |
1110 |
" &@*@=@-@;@>@,@'@)@!@~@{@]@^@L+/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@d@ ", |
1111 |
" e@f@z+A+B+g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@ ", |
1112 |
" N@O@P@Q@R@S@T@U@V@W@X@Y@l@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_# ", |
1113 |
" :#<#[#}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y# ", |
1114 |
" z#A#B#M@C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$z# ", |
1115 |
" -$;$>$,$O@'$)$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$3$6$7$8$ $9$0$a$b$c$d$e$f$g$h$i$ ", |
1116 |
" j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$G$H$8$I$J$K$L$M$N$O$P$Q$R$S$T$U$k$V$ ", |
1117 |
" W$X$Y$Z$`$ %.%+%p$q$@%#%$%%%&%*%=%-%;%>%,%'%)%p#p#J$!%K$~%{%]%^%/%(%_%:%<%[%}%|%1%2% ", |
1118 |
" 3%4%5%6%7%8%9% %0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%0$q%r%]%s%t%u%v%w%x%y%z%A%B%C%D%3% ", |
1119 |
" E%F%G%H%I%J%K%8%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &9+.&+&V.@&#&$&%&&&*&=&-&;&>&,&'&)& ", |
1120 |
" !&~&{&]&G%^&I%J%/&(&7%_& %:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&$&b&c&d&e&f&g&h&i&j&k&l&m& ", |
1121 |
" n&o&p&q&r&s&G%t&u&v&w&K%(&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z& ", |
1122 |
" `& *.*+*p&q&@*#*$*%*^&u&v&J%&***=*-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<*[*}*|*V&1*l&Y&Z&2* ", |
1123 |
" 3*4*5*6*7*8*p&9*0*a*s&b*c*d*v&e*f*g*h*i*j**$k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*Y&Z&A*z* ", |
1124 |
" B*C*D*E*F*G*H*I*+*p&9*J*r&{&x&K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=+=@=#=$=%=&=*= ", |
1125 |
" ==-=;=>=,='=)=!=J*.*~=+*{=]=^=/=(=_=:=l$<=[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=%=&=d=e= ", |
1126 |
" f=g=h=i=3*j=k=l=m=n=o=p=q=~=8*r=^=b*s=t=j$u=-$v=w=x=y=z=A=B=C=D=z*E=F=A*&=d=e=G= ", |
1127 |
" H===I=J=;=K=L=M=N=O=P=Q=l=n=R=6*S=.*T=D%D%D%U=2%V=V$3%W=J*L=X=Y=$=Z=&=*=e=`= - ", |
1128 |
" .-+-@-g=#-$-%-&-*-M==---O=P=;-Q=m=>-,-'-)-!-~-{-E%]-^-/-(-_-:-<-*=d=e=`=[-[- ", |
1129 |
" }-|-1-==2-3-4-4-5-%-6-&-*-X==-=-N=q&;-O=O=O=7-8-9-0-j=a-`&b-c-d=e=`= -[-d-$= ", |
1130 |
" e-f-g-h-i-4-j-k-l-m-4-c-5-%-6-6-&-&-n-o-o-*-M=p-q-r-3*h=s-X=`= -[-t-u-u- ", |
1131 |
" v-w-x-y-g-z-A-B-C-j-D-:-l-l-E-m-4-F-F-c-c-c-G-H-#-J=g=I=I-J-t-t-d-u-K- ", |
1132 |
" L-M-w-N-f-O-P-Q-R-S-T-C-C-B-j-D-D-:-k-l-k-D=U-V-W-X-Y-Z-`-[- ; ;.;u- ", |
1133 |
" +;@;#;$; ;u-d-t-[- -%;P-Q-R-R-S-B-z*&;*;Y-=;H=-;;;>;,;';);!;%=d- ", |
1134 |
" ~;{;];u-.;K- ; ;u-d-d-d-t-t-^;/;(;_;;;:;f-}-x-<;w-[;};|;1;2; ", |
1135 |
" A*%=3;4;5;6;u-7;8;u-K- ; ; ; ;^;9;<;0;w-a;b;v-c;d;e;f;g;h; ", |
1136 |
" i;j;k;l;d=m;1;n;d= ;i;o;o;o;o;p;@;d;q;+;r;s;3;h;`=K- ", |
1137 |
" t;u;k;o;e=Z&%=5;*=l;v;v;v;w; ;x;3;p;Z&d=d-i;w; ", |
1138 |
" y;u;z;v;5;A;A;B;u;u;u;j; ;.;i;C;v;z;u;D; ", |
1139 |
" E;E;F;G;H;I;I;I;H;D;J;H;K;F;E;K; ", |
1140 |
" y;L;M;M;N;N;M;N;O;P; ", |
1141 |
" ", |
1142 |
" ", |
1143 |
" ", |
1144 |
" "}; |
|
|
1145 |
++ debian/mozilla-firefox.1 |
Line 0
Link Here
|
0 |
-- debian/README.Debian |
1 |
.TH MOZILLA\-FIREFOX 1 "November 4, 2004" mozilla\-firefox "Linux User's Manual" |
|
|
2 |
.SH NAME |
3 |
mozilla\-firefox - a Web browser for X11 derived from the Mozilla browser |
4 |
|
5 |
.SH SYNOPSIS |
6 |
.B mozilla\-firefox |
7 |
[\fIOPTIONS\fR] [\fIURL\fR] |
8 |
|
9 |
.B /usr/lib/mozilla\-firefox/firefox\-bin |
10 |
[\fIOPTIONS\fR] [\fIURL\fR] |
11 |
|
12 |
.SH DESCRIPTION |
13 |
\fBMozilla Firefox\fR is an open-source web browser, designed for |
14 |
standards compliance, performance and portability. |
15 |
|
16 |
.SH USAGE |
17 |
\fBmozilla\-firefox\fR is a simple shell script that will set up the |
18 |
environment for the actual executable, \fBfirefox\-bin\fR. |
19 |
|
20 |
.SH OPTIONS |
21 |
A summary of the options supported by \fBmozilla\-firefox\fR is included below. |
22 |
|
23 |
.SS "GTK options" |
24 |
\fB\-\-gdk\-debug=\fR\fIFLAGS\fR |
25 |
Gdk debugging flags to set |
26 |
.TP |
27 |
\fB\-\-gdk\-no\-debug=\fR\fIFLAGS\fR |
28 |
Gdk debugging flags to unset |
29 |
.TP |
30 |
\fB\-\-gtk\-debug=\fR\fIFLAGS\fR |
31 |
Gtk+ debugging flags to set |
32 |
.TP |
33 |
\fB\-\-gtk\-no\-debug=\fR\fIFLAGS\fR |
34 |
Gtk+ debugging flags to unset |
35 |
.TP |
36 |
\fB\-\-gtk\-module=\fR\fIMODULE\fR |
37 |
Load an additional Gtk module |
38 |
|
39 |
.SS "X11 options" |
40 |
.TP |
41 |
.BI \-\-display= DISPLAY |
42 |
X display to use |
43 |
.TP |
44 |
.B \-\-sync |
45 |
Make X calls synchronous |
46 |
.TP |
47 |
.B \-\-no\-xshm |
48 |
Don't use X shared memory extension |
49 |
.TP |
50 |
.BI \-\-xim\-preedit= STYLE |
51 |
.TP |
52 |
.BI \-\-xim\-status= STYLE |
53 |
.TP |
54 |
.B \-\-g\-fatal\-warnings |
55 |
Make all warnings fatal |
56 |
|
57 |
.SS "Mozilla options" |
58 |
.TP |
59 |
\fB\-height\fR \fIvalue\fR |
60 |
Set height of startup window to \fIvalue\fR pixels. |
61 |
.TP |
62 |
.B \-h, \-help |
63 |
Show summary of options. |
64 |
.TP |
65 |
.B \-installer |
66 |
Start with Mozilla 4.x migration window. |
67 |
.TP |
68 |
\fB\-width\fR \fIvalue\fR |
69 |
Set width of startup window to \fIvalue\fR pixels. |
70 |
.TP |
71 |
.B \-v, \-version |
72 |
Print Mozilla Firefox version. |
73 |
.TP |
74 |
\fB\-CreateProfile\fR \fIprofile\fR |
75 |
Create \fIprofile\fR. |
76 |
.TP |
77 |
\fB\-P\fR \fIprofile\fR |
78 |
Start with \fIprofile\fR. |
79 |
.TP |
80 |
.B \-ProfileManager |
81 |
Start with profile manager. |
82 |
.TP |
83 |
\fB\-UILocale\fR \fIlocale\fR |
84 |
Start with \fIlocale\fR resources as User Interface locale. By default, it is |
85 |
guessed from environment and available locales for Mozilla Firefox. |
86 |
.TP |
87 |
\fB\-ContentLocale\fR \fIlocale\fR |
88 |
Start with \fIlocale\fR resources as content locale. By default, it is |
89 |
guessed from environment and available locales for Mozilla Firefox. |
90 |
.TP |
91 |
\fB\-remote\fR \fIcommand\fR |
92 |
Execute \fIcommand\fR in an already running Mozilla Firefox process. |
93 |
For more info, see: \fIhttp://www.mozilla.org/unix/remote.html\fR |
94 |
.TP |
95 |
.B \-jsconsole |
96 |
Start with Javascript Console |
97 |
.TP |
98 |
\fB\-chrome\fR \fIurl\fR |
99 |
Load the specified chrome. |
100 |
.TP |
101 |
.B \-safe\-mode |
102 |
Starts Mozilla Firefox in safe mode, that is disabling all extensions and |
103 |
showing a bit more debugging messages. |
104 |
|
105 |
.SS "Debugger options" |
106 |
.TP |
107 |
.B \-g, \-debug |
108 |
Starts Mozilla Firefox through a debugger (gdb by default). |
109 |
.TP |
110 |
\fB\-\-debugger\fR \fIprogram\fR |
111 |
Use \fIprogram\fR as a debugger for Mozilla Firefox. Implies \fB\-debug\fR. |
112 |
|
113 |
.SH ENVIRONMENT |
114 |
\fIFIREFOX_DSP\fR - configures the /dev/dsp wrapper to use. Accepted values |
115 |
are "auto" (default), "arts", "esd" or "none". |
116 |
|
117 |
.SH FILES |
118 |
\fI/usr/bin/mozilla\-firefox\fR - shell script wrapping |
119 |
\fBfirefox\-bin\fR |
120 |
.br |
121 |
|
122 |
\fI/usr/lib/mozilla/firefox\-bin\fR - \fBmozilla\-firefox\fR |
123 |
executable |
124 |
.br |
125 |
|
126 |
\fI/etc/mozilla\-firefox/mozilla\-firefoxrc\fR - file containing environment |
127 |
variables to be passed to Mozilla Firefox. |
128 |
.br |
129 |
|
130 |
\fI${HOME}/.mozilla/firefox/rc\fR - file containing environment variables to |
131 |
be passed to Mozilla Firefox. Overrides \fI/etc/mozilla\-firefox/mozilla\-firefoxrc\fR |
132 |
|
133 |
.SH BUGS |
134 |
To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR |
135 |
|
136 |
.SH "SEE ALSO" |
137 |
.BR mozilla(1) |
138 |
|
139 |
.SH AUTHORS |
140 |
.TP |
141 |
.B The Mozilla Organization |
142 |
.I http://www.mozilla.org/about.html |
|
|
143 |
++ debian/README.Debian |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-small.xpm |
1 |
README for Debian |
|
|
2 |
================= |
3 |
|
4 |
*** Please submit non packaging issue (e.g. feature requests) bugs to |
5 |
the Debian BTS and the upstream bugzilla |
6 |
(http://bugzilla.mozilla.org/buglist.cgi?product=Firefox) and put a |
7 |
reference to the bugzilla bug in the Debian bug report, to ease bug |
8 |
triage for the maintainer. Thank you. *** |
9 |
|
10 |
Firefox is still in heavy development, and it does not fully support |
11 |
upgrading from one release to another. Moving your .mozilla/firefox |
12 |
directory out of the way should be your first course of action before |
13 |
filing a bug report. Please see #202130 for an excellent analysis. You |
14 |
may also want to try removing ~/.mozilla/firefox/default/*/XUL.mfasl. |
15 |
|
16 |
Firefox requires the loopback interface (lo) to be up and unfiltered |
17 |
to accept keyboard input and function correctly. Please make sure this |
18 |
is the case before filing any bugs. |
19 |
|
20 |
Application Update |
21 |
------------------ |
22 |
|
23 |
From version 1.0-2 onwards, the automatic application update has been |
24 |
completely disabled at the source code level, since it makes no sense |
25 |
in the context of Debian. |
26 |
|
27 |
Automatic extensions update has also been disabled, but you can still |
28 |
enable it by either modifying the /etc/mozilla-firefox/pref/firefox.js |
29 |
file, in the user profile prefs.js, in about:config, or in the |
30 |
advanced preferences panel. You can also, while not re-enabling |
31 |
automatic updates, request extensions updates in the extensions |
32 |
manager dialog or in the advanced preferences panel |
33 |
|
34 |
Extensions |
35 |
---------- |
36 |
|
37 |
From Firefox 0.9, "old" extensions are disabled at first run (i.e. |
38 |
when no profile was found). By old extensions, Firefox means extensions |
39 |
not following the new extensions guidelines described at: |
40 |
http://www.bengoodger.com/software/mb/extensions/packaging/extensions.html |
41 |
But even the ones following these guidelines can be considered old if the |
42 |
contents.rdf file in their chrome gives the attribute chrome:extension = |
43 |
"true" in the package information. |
44 |
|
45 |
For packaged extensions, that will lead to a lock case where you can't |
46 |
enable the extension back, due to an Extensions Manager bug. In such case, |
47 |
edit the chrome/chrome.rdf file in your user profile (usually |
48 |
~/.mozilla/firefox/default.*/chrome/chrome.rdf) and remove the |
49 |
c:disabled="true" attributes from the extensions you want to enable back. |
50 |
|
51 |
Note that the mentioned Extensions Manager bug will prevent you to disable |
52 |
packaged extensions for you profile from Firefox GUI. You need to edit the |
53 |
chrome/chrome.rdf file in the opposite way, i.e. adding a c:disabled="true" |
54 |
attribute to the corresponding rdf:Description element. |
55 |
|
56 |
Sound |
57 |
----- |
58 |
|
59 |
By default, firefox detects and runs the correct dsp wrapper for esd |
60 |
or arts. If this is not the desired behaviour, edit |
61 |
/etc/mozilla-firefox/mozilla-firefoxrc or ~/.mozilla-firefoxrc and set |
62 |
the FIREFOX_DSP variable to: |
63 |
|
64 |
"auto": The default, auto-detection. |
65 |
|
66 |
"esddsp": Use esd. |
67 |
|
68 |
"artsdsp": Use arts. |
69 |
|
70 |
"none": Don't use any sound wrapper. |
71 |
|
72 |
|
73 |
using Java. (You should use plugin which compiled with gcc-3.2) |
74 |
---------- |
75 |
|
76 |
Grab a binary Java distribution from http://java.sun.com/. Install the |
77 |
java-package package and do a make-jpkg on the file. |
78 |
|
79 |
Buttons |
80 |
------- |
81 |
|
82 |
Some people have complained that the button order in dialogs is |
83 |
non-intuitive (ie, they don't like it). To reverse the order, add the |
84 |
following to your chrome/userChrome.css file, under the |
85 |
~/.mozilla/firefox directory: |
86 |
|
87 |
.dialog-button-box { -moz-box-direction: reverse; -moz-box-pack: right; } |
88 |
.dialog-button-box spacer { display: none ! important; } |
89 |
|
90 |
Emacs keybindings |
91 |
----------------- |
92 |
|
93 |
Versions of Firfox before 1.0 supported Emacs style keybindings in |
94 |
text entry boxes. Version 1.0 now merely follows the GTK keybindings |
95 |
settings. To enable Emacs keybindings in GTK, follow the instructions |
96 |
at http://kb.mozillazine.org/Emacs_Keybindings_(Firefox). |
97 |
|
98 |
IDN Resolving |
99 |
------------- |
100 |
|
101 |
To enable IDN domain names, go to the about:config page and change |
102 |
network.enableIDN to true. There is a however some very bad spoofing |
103 |
that this option opens up. See |
104 |
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293975. Enable at |
105 |
your own risk. |
106 |
|
107 |
-- Eric Dorland <eric@debian.org>, Tue Mar 1 02:00:11 2005 |
|
|
108 |
++ debian/mozilla-firefox-small.xpm |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dev.install |
1 |
/* XPM */ |
|
|
2 |
static char * mozicon16_xpm[] = { |
3 |
"16 16 137 2", |
4 |
" c None", |
5 |
". c #388BBF", |
6 |
"+ c #59ADD6", |
7 |
"@ c #68CEEF", |
8 |
"# c #62CCEE", |
9 |
"$ c #45AAD7", |
10 |
"% c #3578AF", |
11 |
"& c #4A93C3", |
12 |
"* c #5EA9D2", |
13 |
"= c #72D1EF", |
14 |
"- c #6DCCEC", |
15 |
"; c #4B9FCE", |
16 |
"> c #3483BA", |
17 |
", c #1E67A5", |
18 |
"' c #1B6BA5", |
19 |
") c #2F7AB0", |
20 |
"! c #48B9E0", |
21 |
"~ c #5CC2E5", |
22 |
"{ c #6ED0EE", |
23 |
"] c #6FC9E9", |
24 |
"^ c #4994C5", |
25 |
"/ c #3783B9", |
26 |
"( c #1E5D9D", |
27 |
"_ c #1463A1", |
28 |
": c #028DC4", |
29 |
"< c #128DC3", |
30 |
"[ c #27ABD7", |
31 |
"} c #3CB8E0", |
32 |
"| c #4EC0E5", |
33 |
"1 c #5BC3E6", |
34 |
"2 c #50A2CE", |
35 |
"3 c #3B7EB5", |
36 |
"4 c #3C93C4", |
37 |
"5 c #2164A1", |
38 |
"6 c #145A9A", |
39 |
"7 c #0E8FC4", |
40 |
"8 c #007EBA", |
41 |
"9 c #0694C8", |
42 |
"0 c #1896C7", |
43 |
"a c #2B99C9", |
44 |
"b c #3CB7DE", |
45 |
"c c #48B9DF", |
46 |
"d c #3E95C5", |
47 |
"e c #2E71AB", |
48 |
"f c #399DCA", |
49 |
"g c #34A9D4", |
50 |
"h c #2387BE", |
51 |
"i c #1388C0", |
52 |
"j c #0059A1", |
53 |
"k c #005C9E", |
54 |
"l c #00498B", |
55 |
"m c #095897", |
56 |
"n c #1869A3", |
57 |
"o c #289CCA", |
58 |
"p c #34B1DA", |
59 |
"q c #3BB3DB", |
60 |
"r c #3BB3DA", |
61 |
"s c #35AFD7", |
62 |
"t c #2BA2CF", |
63 |
"u c #1E6AA2", |
64 |
"v c #106AA7", |
65 |
"w c #0258A0", |
66 |
"x c #00357F", |
67 |
"y c #002D71", |
68 |
"z c #003175", |
69 |
"A c #013A7E", |
70 |
"B c #084889", |
71 |
"C c #1577AF", |
72 |
"D c #1FA1CF", |
73 |
"E c #26A3D1", |
74 |
"F c #28A2CF", |
75 |
"G c #269ACA", |
76 |
"H c #2088BE", |
77 |
"I c #174784", |
78 |
"J c #0B1F5F", |
79 |
"K c #012568", |
80 |
"L c #00206A", |
81 |
"M c #00185A", |
82 |
"N c #001F62", |
83 |
"O c #002569", |
84 |
"P c #002C70", |
85 |
"Q c #0567A7", |
86 |
"R c #0D81BB", |
87 |
"S c #1485BD", |
88 |
"T c #1883BC", |
89 |
"U c #177DB7", |
90 |
"V c #144A88", |
91 |
"W c #0C1D5C", |
92 |
"X c #030B47", |
93 |
"Y c #00023B", |
94 |
"Z c #00207A", |
95 |
"` c #002072", |
96 |
" . c #00236B", |
97 |
".. c #001556", |
98 |
"+. c #001B5E", |
99 |
"@. c #003D81", |
100 |
"#. c #01599E", |
101 |
"$. c #04559E", |
102 |
"%. c #0761A6", |
103 |
"&. c #085499", |
104 |
"*. c #061958", |
105 |
"=. c #020843", |
106 |
"-. c #000137", |
107 |
";. c #001C79", |
108 |
">. c #00155D", |
109 |
",. c #000945", |
110 |
"'. c #000B49", |
111 |
"). c #000E4C", |
112 |
"!. c #002367", |
113 |
"~. c #002A6F", |
114 |
"{. c #003E8B", |
115 |
"]. c #003787", |
116 |
"^. c #00175C", |
117 |
"/. c #000035", |
118 |
"(. c #000030", |
119 |
"_. c #000E67", |
120 |
":. c #00043B", |
121 |
"<. c #000339", |
122 |
"[. c #00043C", |
123 |
"}. c #00053E", |
124 |
"|. c #00063F", |
125 |
"1. c #000E4F", |
126 |
"2. c #00247E", |
127 |
"3. c #00166A", |
128 |
"4. c #00002E", |
129 |
"5. c #00014F", |
130 |
"6. c #000029", |
131 |
"7. c #00012F", |
132 |
"8. c #000953", |
133 |
"9. c #000E6E", |
134 |
"0. c #000A6C", |
135 |
"a. c #000563", |
136 |
"b. c #00002F", |
137 |
"c. c #00001D", |
138 |
"d. c #000025", |
139 |
"e. c #000040", |
140 |
"f. c #000033", |
141 |
" ", |
142 |
" . + @ # $ ", |
143 |
" % & * = - ; > , ", |
144 |
" ' ) ! ~ { ] ^ / ( _ ", |
145 |
" : < [ } | 1 2 3 4 5 6 7 ", |
146 |
" 8 9 0 a b c d e f g h i ", |
147 |
" j k l m n o p q r s t u v w ", |
148 |
" x y z A B C D E F G H I J K ", |
149 |
" L M N O P Q R S T U V W X Y ", |
150 |
" Z ` ...+.@.#.$.%.&.*.=.-. ", |
151 |
" ;.>.,.'.).!.~.{.].^./.(. ", |
152 |
" _.:.<.[.}.|.1.2.3.4. ", |
153 |
" 5.6.(.4.7.8.9.0.a. ", |
154 |
" b.b.c.d.e.f. ", |
155 |
" ", |
156 |
" "}; |
|
|
157 |
++ debian/mozilla-firefox-dev.install |
Line 0
Link Here
|
0 |
-- debian/compat |
1 |
debian/tmp/usr/lib/pkgconfig/*.pc usr/lib/pkgconfig |
|
|
2 |
debian/tmp/usr/share/idl/mozilla-firefox usr/share/idl |
3 |
debian/tmp/usr/include/mozilla-firefox usr/include |
4 |
debian/tmp/usr/bin/firefox-config usr/bin |
|
|
5 |
++ debian/compat |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.manpages |
1 |
4 |
|
|
2 |
++ debian/mozilla-firefox.manpages |
Line 0
Link Here
|
0 |
-- debian/firefox.js |
1 |
debian/mozilla-firefox.1 |
|
|
2 |
debian/update-mozilla-firefox-chrome.8 |
|
|
3 |
++ debian/firefox.js |
Line 0
Link Here
|
0 |
-- debian/debsearch.src |
1 |
// This is the Debian specific preferences file for Mozilla Firefox |
|
|
2 |
// You can make any change in here, it is the purpose of this file. |
3 |
// You can, with this file and all files present in the |
4 |
// /etc/mozilla-firefox/pref directory, override any preference that is |
5 |
// present in /usr/lib/mozilla-firefox/defaults/pref directory. |
6 |
// While your changes will be kept on upgrade if you modify files in |
7 |
// /etc/mozilla-firefox/pref, please note that they won't be kept if you |
8 |
// do them in /usr/lib/mozilla-firefox/defaults/pref. |
9 |
|
10 |
pref("extensions.update.enabled", true); |
11 |
pref("extensions.update.autoUpdateEnabled", false); |
12 |
pref("extensions.update.autoUpdate", false); |
13 |
|
14 |
// Use LANG environment variable to choose locale |
15 |
pref("intl.locale.matchOS", true); |
16 |
|
17 |
// Disable default browser checking. |
18 |
pref("browser.shell.checkDefaultBrowser", false); |
|
|
19 |
++ debian/debsearch.src |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.prerm |
1 |
# Mozilla Firebird plugin file |
|
|
2 |
# |
3 |
# Debian package lookup |
4 |
# by Fergus McKenzie-Kay copying code |
5 |
# by Spencer Wysinger <http://wysinger.com/> |
6 |
# |
7 |
# Last updated: August 12, 2003 |
8 |
|
9 |
<search |
10 |
name="Deb Search" |
11 |
description="Perform a search for Debian packages" |
12 |
action="http://packages.debian.org/cgi-bin/search_packages.pl" |
13 |
searchForm="http://packages.debian.org/" |
14 |
queryEncoding="utf-8" |
15 |
queryCharset="utf-8" |
16 |
method="GET" |
17 |
> |
18 |
|
19 |
<input name="searchon" value="names"> |
20 |
<input name="subword" value="1"> |
21 |
<input name="version" value="all"> |
22 |
<input name="release" value="all"> |
23 |
<input name="keywords" user=""> |
24 |
<input name="sourceid" value="mozilla-search"> |
25 |
|
26 |
</search> |
|
|
27 |
++ debian/mozilla-firefox.prerm |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-gnome-support.install |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
if [ "$1" = "remove" -o "$1" = "deconfigure" ] ; then |
4 |
update-alternatives --remove x-www-browser /usr/bin/mozilla-firefox |
5 |
update-alternatives --remove mozilla /usr/bin/mozilla-firefox |
6 |
fi |
7 |
|
8 |
if [ "$1" = "remove" ]; then |
9 |
rm -rf /var/lib/mozilla-firefox/chrome/overlayinfo |
10 |
rm -f /var/lib/mozilla-firefox/chrome/chrome.rdf |
11 |
rm -f /var/lib/mozilla-firefox/defaults.ini |
12 |
rm -f /var/lib/mozilla-firefox/components.ini |
13 |
rm -f /var/lib/mozilla-firefox/components/xpti.dat |
14 |
rm -f /var/lib/mozilla-firefox/components/compreg.dat |
15 |
rm -f /var/lib/mozilla-firefox/extensions/installed-extensions.txt |
16 |
rm -f /var/lib/mozilla-firefox/extensions/Extensions.rdf |
17 |
if [ -d /var/lib/mozilla-firefox/ ]; then |
18 |
find /var/lib/mozilla-firefox/ -type d -depth -empty -exec rmdir {} \; |
19 |
fi |
20 |
fi |
21 |
|
22 |
#DEBHELPER# |
|
|
23 |
++ debian/mozilla-firefox-gnome-support.install |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.menu |
1 |
debian/tmp/usr/lib/mozilla-firefox/components/*gnome* usr/lib/mozilla-firefox/components |
|
|
2 |
++ debian/mozilla-firefox.menu |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.NEWS |
1 |
?package(mozilla-firefox):needs="x11" section="Apps/Net" \ |
|
|
2 |
title="Mozilla Firefox" \ |
3 |
icon="/usr/share/pixmaps/mozilla-firefox.xpm" \ |
4 |
command="firefox" hints="Web Browsers" |
|
|
5 |
++ debian/mozilla-firefox.NEWS |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-gnome-support.postrm |
1 |
mozilla-firefox (1.0-1) unstable; urgency=medium |
|
|
2 |
|
3 |
A heavily patched extension manager has been introduced this |
4 |
release by Mike Hommey. It is designed to work around the |
5 |
deficiencies in the upstream's current offering. Unfortunately, the |
6 |
registration process for extension and locale packages has now |
7 |
changed in an incompatible way. The packages will install |
8 |
correctly but won't actually be registered with |
9 |
Firefox. Maintainers are aware of the issue and are working on new |
10 |
packages that will work with this new mechanism. Please do not |
11 |
file bugs on this issue. |
12 |
|
13 |
-- Eric Dorland <eric@debian.org>, Wed, 10 Nov 2004 00:16:15 -0500 |
14 |
|
15 |
mozilla-firefox (0.8-1) unstable; urgency=low |
16 |
|
17 |
The mozilla-firefox package no longer uses the ~/.phoenix |
18 |
directory for it's configuration, but the ~/.firefox directory. To |
19 |
migrate your config, just execute "mv ~/.phoenix ~/.firefox" which |
20 |
should work in most cases. |
21 |
|
22 |
-- Eric Dorland <eric@debian.org>, Fri Feb 20 00:01:54 2004 |
|
|
23 |
++ debian/mozilla-firefox-gnome-support.postrm |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dom-inspector.postinst |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
case "$1" in |
4 |
abort-install|purge|remove) |
5 |
update-mozilla-firefox-chrome || true |
6 |
;; |
7 |
*) |
8 |
;; |
9 |
esac |
10 |
|
11 |
#DEBHELPER# |
|
|
12 |
++ debian/mozilla-firefox-dom-inspector.postinst |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-dom-inspector.postrm |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
if [ "$1" = "configure" ] ; then |
4 |
update-mozilla-firefox-chrome |
5 |
fi |
6 |
|
7 |
#DEBHELPER# |
|
|
8 |
++ debian/mozilla-firefox-dom-inspector.postrm |
Line 0
Link Here
|
0 |
-- debian/copyright |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
case "$1" in |
4 |
abort-install|purge|remove) |
5 |
update-mozilla-firefox-chrome || true |
6 |
;; |
7 |
*) |
8 |
;; |
9 |
esac |
10 |
|
11 |
#DEBHELPER# |
|
|
12 |
++ debian/copyright |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.mime |
1 |
This package was debianized by Eric Dorland <eric@debian.org> on |
|
|
2 |
Thu, 05 Jun 2003 01:01:22 -0400 |
3 |
|
4 |
It was downloaded from http://www.mozilla.org/projects/firebird |
5 |
|
6 |
Upstream Authors: Mozilla Project |
7 |
|
8 |
Copyright: |
9 |
|
10 |
MOZILLA PUBLIC LICENSE |
11 |
Version 1.1 |
12 |
|
13 |
--------------- |
14 |
|
15 |
1. Definitions. |
16 |
|
17 |
1.0.1. "Commercial Use" means distribution or otherwise making the |
18 |
Covered Code available to a third party. |
19 |
|
20 |
1.1. "Contributor" means each entity that creates or contributes to |
21 |
the creation of Modifications. |
22 |
|
23 |
1.2. "Contributor Version" means the combination of the Original |
24 |
Code, prior Modifications used by a Contributor, and the Modifications |
25 |
made by that particular Contributor. |
26 |
|
27 |
1.3. "Covered Code" means the Original Code or Modifications or the |
28 |
combination of the Original Code and Modifications, in each case |
29 |
including portions thereof. |
30 |
|
31 |
1.4. "Electronic Distribution Mechanism" means a mechanism generally |
32 |
accepted in the software development community for the electronic |
33 |
transfer of data. |
34 |
|
35 |
1.5. "Executable" means Covered Code in any form other than Source |
36 |
Code. |
37 |
|
38 |
1.6. "Initial Developer" means the individual or entity identified |
39 |
as the Initial Developer in the Source Code notice required by Exhibit |
40 |
A. |
41 |
|
42 |
1.7. "Larger Work" means a work which combines Covered Code or |
43 |
portions thereof with code not governed by the terms of this License. |
44 |
|
45 |
1.8. "License" means this document. |
46 |
|
47 |
1.8.1. "Licensable" means having the right to grant, to the maximum |
48 |
extent possible, whether at the time of the initial grant or |
49 |
subsequently acquired, any and all of the rights conveyed herein. |
50 |
|
51 |
1.9. "Modifications" means any addition to or deletion from the |
52 |
substance or structure of either the Original Code or any previous |
53 |
Modifications. When Covered Code is released as a series of files, a |
54 |
Modification is: |
55 |
A. Any addition to or deletion from the contents of a file |
56 |
containing Original Code or previous Modifications. |
57 |
|
58 |
B. Any new file that contains any part of the Original Code or |
59 |
previous Modifications. |
60 |
|
61 |
1.10. "Original Code" means Source Code of computer software code |
62 |
which is described in the Source Code notice required by Exhibit A as |
63 |
Original Code, and which, at the time of its release under this |
64 |
License is not already Covered Code governed by this License. |
65 |
|
66 |
1.10.1. "Patent Claims" means any patent claim(s), now owned or |
67 |
hereafter acquired, including without limitation, method, process, |
68 |
and apparatus claims, in any patent Licensable by grantor. |
69 |
|
70 |
1.11. "Source Code" means the preferred form of the Covered Code for |
71 |
making modifications to it, including all modules it contains, plus |
72 |
any associated interface definition files, scripts used to control |
73 |
compilation and installation of an Executable, or source code |
74 |
differential comparisons against either the Original Code or another |
75 |
well known, available Covered Code of the Contributor's choice. The |
76 |
Source Code can be in a compressed or archival form, provided the |
77 |
appropriate decompression or de-archiving software is widely available |
78 |
for no charge. |
79 |
|
80 |
1.12. "You" (or "Your") means an individual or a legal entity |
81 |
exercising rights under, and complying with all of the terms of, this |
82 |
License or a future version of this License issued under Section 6.1. |
83 |
For legal entities, "You" includes any entity which controls, is |
84 |
controlled by, or is under common control with You. For purposes of |
85 |
this definition, "control" means (a) the power, direct or indirect, |
86 |
to cause the direction or management of such entity, whether by |
87 |
contract or otherwise, or (b) ownership of more than fifty percent |
88 |
(50%) of the outstanding shares or beneficial ownership of such |
89 |
entity. |
90 |
|
91 |
2. Source Code License. |
92 |
|
93 |
2.1. The Initial Developer Grant. |
94 |
The Initial Developer hereby grants You a world-wide, royalty-free, |
95 |
non-exclusive license, subject to third party intellectual property |
96 |
claims: |
97 |
(a) under intellectual property rights (other than patent or |
98 |
trademark) Licensable by Initial Developer to use, reproduce, |
99 |
modify, display, perform, sublicense and distribute the Original |
100 |
Code (or portions thereof) with or without Modifications, and/or |
101 |
as part of a Larger Work; and |
102 |
|
103 |
(b) under Patents Claims infringed by the making, using or |
104 |
selling of Original Code, to make, have made, use, practice, |
105 |
sell, and offer for sale, and/or otherwise dispose of the |
106 |
Original Code (or portions thereof). |
107 |
|
108 |
(c) the licenses granted in this Section 2.1(a) and (b) are |
109 |
effective on the date Initial Developer first distributes |
110 |
Original Code under the terms of this License. |
111 |
|
112 |
(d) Notwithstanding Section 2.1(b) above, no patent license is |
113 |
granted: 1) for code that You delete from the Original Code; 2) |
114 |
separate from the Original Code; or 3) for infringements caused |
115 |
by: i) the modification of the Original Code or ii) the |
116 |
combination of the Original Code with other software or devices. |
117 |
|
118 |
2.2. Contributor Grant. |
119 |
Subject to third party intellectual property claims, each Contributor |
120 |
hereby grants You a world-wide, royalty-free, non-exclusive license |
121 |
|
122 |
(a) under intellectual property rights (other than patent or |
123 |
trademark) Licensable by Contributor, to use, reproduce, modify, |
124 |
display, perform, sublicense and distribute the Modifications |
125 |
created by such Contributor (or portions thereof) either on an |
126 |
unmodified basis, with other Modifications, as Covered Code |
127 |
and/or as part of a Larger Work; and |
128 |
|
129 |
(b) under Patent Claims infringed by the making, using, or |
130 |
selling of Modifications made by that Contributor either alone |
131 |
and/or in combination with its Contributor Version (or portions |
132 |
of such combination), to make, use, sell, offer for sale, have |
133 |
made, and/or otherwise dispose of: 1) Modifications made by that |
134 |
Contributor (or portions thereof); and 2) the combination of |
135 |
Modifications made by that Contributor with its Contributor |
136 |
Version (or portions of such combination). |
137 |
|
138 |
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are |
139 |
effective on the date Contributor first makes Commercial Use of |
140 |
the Covered Code. |
141 |
|
142 |
(d) Notwithstanding Section 2.2(b) above, no patent license is |
143 |
granted: 1) for any code that Contributor has deleted from the |
144 |
Contributor Version; 2) separate from the Contributor Version; |
145 |
3) for infringements caused by: i) third party modifications of |
146 |
Contributor Version or ii) the combination of Modifications made |
147 |
by that Contributor with other software (except as part of the |
148 |
Contributor Version) or other devices; or 4) under Patent Claims |
149 |
infringed by Covered Code in the absence of Modifications made by |
150 |
that Contributor. |
151 |
|
152 |
3. Distribution Obligations. |
153 |
|
154 |
3.1. Application of License. |
155 |
The Modifications which You create or to which You contribute are |
156 |
governed by the terms of this License, including without limitation |
157 |
Section 2.2. The Source Code version of Covered Code may be |
158 |
distributed only under the terms of this License or a future version |
159 |
of this License released under Section 6.1, and You must include a |
160 |
copy of this License with every copy of the Source Code You |
161 |
distribute. You may not offer or impose any terms on any Source Code |
162 |
version that alters or restricts the applicable version of this |
163 |
License or the recipients' rights hereunder. However, You may include |
164 |
an additional document offering the additional rights described in |
165 |
Section 3.5. |
166 |
|
167 |
3.2. Availability of Source Code. |
168 |
Any Modification which You create or to which You contribute must be |
169 |
made available in Source Code form under the terms of this License |
170 |
either on the same media as an Executable version or via an accepted |
171 |
Electronic Distribution Mechanism to anyone to whom you made an |
172 |
Executable version available; and if made available via Electronic |
173 |
Distribution Mechanism, must remain available for at least twelve (12) |
174 |
months after the date it initially became available, or at least six |
175 |
(6) months after a subsequent version of that particular Modification |
176 |
has been made available to such recipients. You are responsible for |
177 |
ensuring that the Source Code version remains available even if the |
178 |
Electronic Distribution Mechanism is maintained by a third party. |
179 |
|
180 |
3.3. Description of Modifications. |
181 |
You must cause all Covered Code to which You contribute to contain a |
182 |
file documenting the changes You made to create that Covered Code and |
183 |
the date of any change. You must include a prominent statement that |
184 |
the Modification is derived, directly or indirectly, from Original |
185 |
Code provided by the Initial Developer and including the name of the |
186 |
Initial Developer in (a) the Source Code, and (b) in any notice in an |
187 |
Executable version or related documentation in which You describe the |
188 |
origin or ownership of the Covered Code. |
189 |
|
190 |
3.4. Intellectual Property Matters |
191 |
(a) Third Party Claims. |
192 |
If Contributor has knowledge that a license under a third party's |
193 |
intellectual property rights is required to exercise the rights |
194 |
granted by such Contributor under Sections 2.1 or 2.2, |
195 |
Contributor must include a text file with the Source Code |
196 |
distribution titled "LEGAL" which describes the claim and the |
197 |
party making the claim in sufficient detail that a recipient will |
198 |
know whom to contact. If Contributor obtains such knowledge after |
199 |
the Modification is made available as described in Section 3.2, |
200 |
Contributor shall promptly modify the LEGAL file in all copies |
201 |
Contributor makes available thereafter and shall take other steps |
202 |
(such as notifying appropriate mailing lists or newsgroups) |
203 |
reasonably calculated to inform those who received the Covered |
204 |
Code that new knowledge has been obtained. |
205 |
|
206 |
(b) Contributor APIs. |
207 |
If Contributor's Modifications include an application programming |
208 |
interface and Contributor has knowledge of patent licenses which |
209 |
are reasonably necessary to implement that API, Contributor must |
210 |
also include this information in the LEGAL file. |
211 |
|
212 |
(c) Representations. |
213 |
Contributor represents that, except as disclosed pursuant to |
214 |
Section 3.4(a) above, Contributor believes that Contributor's |
215 |
Modifications are Contributor's original creation(s) and/or |
216 |
Contributor has sufficient rights to grant the rights conveyed by |
217 |
this License. |
218 |
|
219 |
3.5. Required Notices. |
220 |
You must duplicate the notice in Exhibit A in each file of the Source |
221 |
Code. If it is not possible to put such notice in a particular Source |
222 |
Code file due to its structure, then You must include such notice in a |
223 |
location (such as a relevant directory) where a user would be likely |
224 |
to look for such a notice. If You created one or more Modification(s) |
225 |
You may add your name as a Contributor to the notice described in |
226 |
Exhibit A. You must also duplicate this License in any documentation |
227 |
for the Source Code where You describe recipients' rights or ownership |
228 |
rights relating to Covered Code. You may choose to offer, and to |
229 |
charge a fee for, warranty, support, indemnity or liability |
230 |
obligations to one or more recipients of Covered Code. However, You |
231 |
may do so only on Your own behalf, and not on behalf of the Initial |
232 |
Developer or any Contributor. You must make it absolutely clear than |
233 |
any such warranty, support, indemnity or liability obligation is |
234 |
offered by You alone, and You hereby agree to indemnify the Initial |
235 |
Developer and every Contributor for any liability incurred by the |
236 |
Initial Developer or such Contributor as a result of warranty, |
237 |
support, indemnity or liability terms You offer. |
238 |
|
239 |
3.6. Distribution of Executable Versions. |
240 |
You may distribute Covered Code in Executable form only if the |
241 |
requirements of Section 3.1-3.5 have been met for that Covered Code, |
242 |
and if You include a notice stating that the Source Code version of |
243 |
the Covered Code is available under the terms of this License, |
244 |
including a description of how and where You have fulfilled the |
245 |
obligations of Section 3.2. The notice must be conspicuously included |
246 |
in any notice in an Executable version, related documentation or |
247 |
collateral in which You describe recipients' rights relating to the |
248 |
Covered Code. You may distribute the Executable version of Covered |
249 |
Code or ownership rights under a license of Your choice, which may |
250 |
contain terms different from this License, provided that You are in |
251 |
compliance with the terms of this License and that the license for the |
252 |
Executable version does not attempt to limit or alter the recipient's |
253 |
rights in the Source Code version from the rights set forth in this |
254 |
License. If You distribute the Executable version under a different |
255 |
license You must make it absolutely clear that any terms which differ |
256 |
from this License are offered by You alone, not by the Initial |
257 |
Developer or any Contributor. You hereby agree to indemnify the |
258 |
Initial Developer and every Contributor for any liability incurred by |
259 |
the Initial Developer or such Contributor as a result of any such |
260 |
terms You offer. |
261 |
|
262 |
3.7. Larger Works. |
263 |
You may create a Larger Work by combining Covered Code with other code |
264 |
not governed by the terms of this License and distribute the Larger |
265 |
Work as a single product. In such a case, You must make sure the |
266 |
requirements of this License are fulfilled for the Covered Code. |
267 |
|
268 |
4. Inability to Comply Due to Statute or Regulation. |
269 |
|
270 |
If it is impossible for You to comply with any of the terms of this |
271 |
License with respect to some or all of the Covered Code due to |
272 |
statute, judicial order, or regulation then You must: (a) comply with |
273 |
the terms of this License to the maximum extent possible; and (b) |
274 |
describe the limitations and the code they affect. Such description |
275 |
must be included in the LEGAL file described in Section 3.4 and must |
276 |
be included with all distributions of the Source Code. Except to the |
277 |
extent prohibited by statute or regulation, such description must be |
278 |
sufficiently detailed for a recipient of ordinary skill to be able to |
279 |
understand it. |
280 |
|
281 |
5. Application of this License. |
282 |
|
283 |
This License applies to code to which the Initial Developer has |
284 |
attached the notice in Exhibit A and to related Covered Code. |
285 |
|
286 |
6. Versions of the License. |
287 |
|
288 |
6.1. New Versions. |
289 |
Netscape Communications Corporation ("Netscape") may publish revised |
290 |
and/or new versions of the License from time to time. Each version |
291 |
will be given a distinguishing version number. |
292 |
|
293 |
6.2. Effect of New Versions. |
294 |
Once Covered Code has been published under a particular version of the |
295 |
License, You may always continue to use it under the terms of that |
296 |
version. You may also choose to use such Covered Code under the terms |
297 |
of any subsequent version of the License published by Netscape. No one |
298 |
other than Netscape has the right to modify the terms applicable to |
299 |
Covered Code created under this License. |
300 |
|
301 |
6.3. Derivative Works. |
302 |
If You create or use a modified version of this License (which you may |
303 |
only do in order to apply it to code which is not already Covered Code |
304 |
governed by this License), You must (a) rename Your license so that |
305 |
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", |
306 |
"MPL", "NPL" or any confusingly similar phrase do not appear in your |
307 |
license (except to note that your license differs from this License) |
308 |
and (b) otherwise make it clear that Your version of the license |
309 |
contains terms which differ from the Mozilla Public License and |
310 |
Netscape Public License. (Filling in the name of the Initial |
311 |
Developer, Original Code or Contributor in the notice described in |
312 |
Exhibit A shall not of themselves be deemed to be modifications of |
313 |
this License.) |
314 |
|
315 |
7. DISCLAIMER OF WARRANTY. |
316 |
|
317 |
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, |
318 |
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, |
319 |
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF |
320 |
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. |
321 |
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE |
322 |
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, |
323 |
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE |
324 |
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER |
325 |
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF |
326 |
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. |
327 |
|
328 |
8. TERMINATION. |
329 |
|
330 |
8.1. This License and the rights granted hereunder will terminate |
331 |
automatically if You fail to comply with terms herein and fail to cure |
332 |
such breach within 30 days of becoming aware of the breach. All |
333 |
sublicenses to the Covered Code which are properly granted shall |
334 |
survive any termination of this License. Provisions which, by their |
335 |
nature, must remain in effect beyond the termination of this License |
336 |
shall survive. |
337 |
|
338 |
8.2. If You initiate litigation by asserting a patent infringement |
339 |
claim (excluding declatory judgment actions) against Initial Developer |
340 |
or a Contributor (the Initial Developer or Contributor against whom |
341 |
You file such action is referred to as "Participant") alleging that: |
342 |
|
343 |
(a) such Participant's Contributor Version directly or indirectly |
344 |
infringes any patent, then any and all rights granted by such |
345 |
Participant to You under Sections 2.1 and/or 2.2 of this License |
346 |
shall, upon 60 days notice from Participant terminate prospectively, |
347 |
unless if within 60 days after receipt of notice You either: (i) |
348 |
agree in writing to pay Participant a mutually agreeable reasonable |
349 |
royalty for Your past and future use of Modifications made by such |
350 |
Participant, or (ii) withdraw Your litigation claim with respect to |
351 |
the Contributor Version against such Participant. If within 60 days |
352 |
of notice, a reasonable royalty and payment arrangement are not |
353 |
mutually agreed upon in writing by the parties or the litigation claim |
354 |
is not withdrawn, the rights granted by Participant to You under |
355 |
Sections 2.1 and/or 2.2 automatically terminate at the expiration of |
356 |
the 60 day notice period specified above. |
357 |
|
358 |
(b) any software, hardware, or device, other than such Participant's |
359 |
Contributor Version, directly or indirectly infringes any patent, then |
360 |
any rights granted to You by such Participant under Sections 2.1(b) |
361 |
and 2.2(b) are revoked effective as of the date You first made, used, |
362 |
sold, distributed, or had made, Modifications made by that |
363 |
Participant. |
364 |
|
365 |
8.3. If You assert a patent infringement claim against Participant |
366 |
alleging that such Participant's Contributor Version directly or |
367 |
indirectly infringes any patent where such claim is resolved (such as |
368 |
by license or settlement) prior to the initiation of patent |
369 |
infringement litigation, then the reasonable value of the licenses |
370 |
granted by such Participant under Sections 2.1 or 2.2 shall be taken |
371 |
into account in determining the amount or value of any payment or |
372 |
license. |
373 |
|
374 |
8.4. In the event of termination under Sections 8.1 or 8.2 above, |
375 |
all end user license agreements (excluding distributors and resellers) |
376 |
which have been validly granted by You or any distributor hereunder |
377 |
prior to termination shall survive termination. |
378 |
|
379 |
9. LIMITATION OF LIABILITY. |
380 |
|
381 |
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT |
382 |
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL |
383 |
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, |
384 |
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR |
385 |
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY |
386 |
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, |
387 |
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER |
388 |
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN |
389 |
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF |
390 |
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY |
391 |
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW |
392 |
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE |
393 |
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO |
394 |
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. |
395 |
|
396 |
10. U.S. GOVERNMENT END USERS. |
397 |
|
398 |
The Covered Code is a "commercial item," as that term is defined in |
399 |
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer |
400 |
software" and "commercial computer software documentation," as such |
401 |
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 |
402 |
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), |
403 |
all U.S. Government End Users acquire Covered Code with only those |
404 |
rights set forth herein. |
405 |
|
406 |
11. MISCELLANEOUS. |
407 |
|
408 |
This License represents the complete agreement concerning subject |
409 |
matter hereof. If any provision of this License is held to be |
410 |
unenforceable, such provision shall be reformed only to the extent |
411 |
necessary to make it enforceable. This License shall be governed by |
412 |
California law provisions (except to the extent applicable law, if |
413 |
any, provides otherwise), excluding its conflict-of-law provisions. |
414 |
With respect to disputes in which at least one party is a citizen of, |
415 |
or an entity chartered or registered to do business in the United |
416 |
States of America, any litigation relating to this License shall be |
417 |
subject to the jurisdiction of the Federal Courts of the Northern |
418 |
District of California, with venue lying in Santa Clara County, |
419 |
California, with the losing party responsible for costs, including |
420 |
without limitation, court costs and reasonable attorneys' fees and |
421 |
expenses. The application of the United Nations Convention on |
422 |
Contracts for the International Sale of Goods is expressly excluded. |
423 |
Any law or regulation which provides that the language of a contract |
424 |
shall be construed against the drafter shall not apply to this |
425 |
License. |
426 |
|
427 |
12. RESPONSIBILITY FOR CLAIMS. |
428 |
|
429 |
As between Initial Developer and the Contributors, each party is |
430 |
responsible for claims and damages arising, directly or indirectly, |
431 |
out of its utilization of rights under this License and You agree to |
432 |
work with Initial Developer and Contributors to distribute such |
433 |
responsibility on an equitable basis. Nothing herein is intended or |
434 |
shall be deemed to constitute any admission of liability. |
435 |
|
436 |
13. MULTIPLE-LICENSED CODE. |
437 |
|
438 |
Initial Developer may designate portions of the Covered Code as |
439 |
"Multiple-Licensed". "Multiple-Licensed" means that the Initial |
440 |
Developer permits you to utilize portions of the Covered Code under |
441 |
Your choice of the NPL or the alternative licenses, if any, specified |
442 |
by the Initial Developer in the file described in Exhibit A. |
443 |
|
444 |
EXHIBIT A -Mozilla Public License. |
445 |
|
446 |
``The contents of this file are subject to the Mozilla Public License |
447 |
Version 1.1 (the "License"); you may not use this file except in |
448 |
compliance with the License. You may obtain a copy of the License at |
449 |
http://www.mozilla.org/MPL/ |
450 |
|
451 |
Software distributed under the License is distributed on an "AS IS" |
452 |
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
453 |
License for the specific language governing rights and limitations |
454 |
under the License. |
455 |
|
456 |
The Original Code is ______________________________________. |
457 |
|
458 |
The Initial Developer of the Original Code is ________________________. |
459 |
Portions created by ______________________ are Copyright (C) ______ |
460 |
_______________________. All Rights Reserved. |
461 |
|
462 |
Contributor(s): ______________________________________. |
463 |
|
464 |
Alternatively, the contents of this file may be used under the terms |
465 |
of the _____ license (the "[___] License"), in which case the |
466 |
provisions of [______] License are applicable instead of those |
467 |
above. If you wish to allow use of your version of this file only |
468 |
under the terms of the [____] License and not to allow others to use |
469 |
your version of this file under the MPL, indicate your decision by |
470 |
deleting the provisions above and replace them with the notice and |
471 |
other provisions required by the [___] License. If you do not delete |
472 |
the provisions above, a recipient may use your version of this file |
473 |
under either the MPL or the [___] License." |
474 |
|
475 |
[NOTE: The text of this Exhibit A may differ slightly from the text of |
476 |
the notices in the Source Code files of the Original Code. You should |
477 |
use the text of this Exhibit A rather than the text found in the |
478 |
Original Code Source Code for Your Modifications.] |
479 |
|
480 |
---------------------------------------------------------------------- |
481 |
|
482 |
AMENDMENTS |
483 |
|
484 |
The Netscape Public License Version 1.1 ("NPL") consists of the |
485 |
Mozilla Public License Version 1.1 with the following Amendments, |
486 |
including Exhibit A-Netscape Public License. Files identified with |
487 |
"Exhibit A-Netscape Public License" are governed by the Netscape |
488 |
Public License Version 1.1. |
489 |
|
490 |
Additional Terms applicable to the Netscape Public License. |
491 |
I. Effect. |
492 |
These additional terms described in this Netscape Public |
493 |
License -- Amendments shall apply to the Mozilla Communicator |
494 |
client code and to all Covered Code under this License. |
495 |
|
496 |
II. "Netscape's Branded Code" means Covered Code that Netscape |
497 |
distributes and/or permits others to distribute under one or more |
498 |
trademark(s) which are controlled by Netscape but which are not |
499 |
licensed for use under this License. |
500 |
|
501 |
III. Netscape and logo. |
502 |
This License does not grant any rights to use the trademarks |
503 |
"Netscape", the "Netscape N and horizon" logo or the "Netscape |
504 |
lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", |
505 |
"Smart Browsing" even if such marks are included in the Original |
506 |
Code or Modifications. |
507 |
|
508 |
IV. Inability to Comply Due to Contractual Obligation. |
509 |
Prior to licensing the Original Code under this License, Netscape |
510 |
has licensed third party code for use in Netscape's Branded Code. |
511 |
To the extent that Netscape is limited contractually from making |
512 |
such third party code available under this License, Netscape may |
513 |
choose to reintegrate such code into Covered Code without being |
514 |
required to distribute such code in Source Code form, even if |
515 |
such code would otherwise be considered "Modifications" under |
516 |
this License. |
517 |
|
518 |
V. Use of Modifications and Covered Code by Initial Developer. |
519 |
V.1. In General. |
520 |
The obligations of Section 3 apply to Netscape, except to |
521 |
the extent specified in this Amendment, Section V.2 and V.3. |
522 |
|
523 |
V.2. Other Products. |
524 |
Netscape may include Covered Code in products other than the |
525 |
Netscape's Branded Code which are released by Netscape |
526 |
during the two (2) years following the release date of the |
527 |
Original Code, without such additional products becoming |
528 |
subject to the terms of this License, and may license such |
529 |
additional products on different terms from those contained |
530 |
in this License. |
531 |
|
532 |
V.3. Alternative Licensing. |
533 |
Netscape may license the Source Code of Netscape's Branded |
534 |
Code, including Modifications incorporated therein, without |
535 |
such Netscape Branded Code becoming subject to the terms of |
536 |
this License, and may license such Netscape Branded Code on |
537 |
different terms from those contained in this License. |
538 |
|
539 |
VI. Litigation. |
540 |
Notwithstanding the limitations of Section 11 above, the |
541 |
provisions regarding litigation in Section 11(a), (b) and (c) of |
542 |
the License shall apply to all disputes relating to this License. |
543 |
|
544 |
EXHIBIT A-Netscape Public License. |
545 |
|
546 |
"The contents of this file are subject to the Netscape Public |
547 |
License Version 1.1 (the "License"); you may not use this file |
548 |
except in compliance with the License. You may obtain a copy of |
549 |
the License at http://www.mozilla.org/NPL/ |
550 |
|
551 |
Software distributed under the License is distributed on an "AS |
552 |
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
553 |
implied. See the License for the specific language governing |
554 |
rights and limitations under the License. |
555 |
|
556 |
The Original Code is Mozilla Communicator client code, released |
557 |
March 31, 1998. |
558 |
|
559 |
The Initial Developer of the Original Code is Netscape |
560 |
Communications Corporation. Portions created by Netscape are |
561 |
Copyright (C) 1998-1999 Netscape Communications Corporation. All |
562 |
Rights Reserved. |
563 |
|
564 |
Contributor(s): ______________________________________. |
565 |
|
566 |
Alternatively, the contents of this file may be used under the |
567 |
terms of the _____ license (the "[___] License"), in which case |
568 |
the provisions of [______] License are applicable instead of |
569 |
those above. If you wish to allow use of your version of this |
570 |
file only under the terms of the [____] License and not to allow |
571 |
others to use your version of this file under the NPL, indicate |
572 |
your decision by deleting the provisions above and replace them |
573 |
with the notice and other provisions required by the [___] |
574 |
License. If you do not delete the provisions above, a recipient |
575 |
may use your version of this file under either the NPL or the |
576 |
[___] License." |
|
|
577 |
++ debian/mozilla-firefox.mime |
Line 0
Link Here
|
0 |
-- debian/control |
1 |
text/html; /usr/bin/mozilla-firefox %s; description=HTML Text; test=test -n "$DISPLAY"; nametemplate=%s.html; priority=5 |
|
|
2 |
text/xml; /usr/bin/mozilla-firefox %s; description=XML Text; test=test -n "$DISPLAY"; nametemplate=%s.xml; priority=5 |
3 |
image/png; /usr/bin/mozilla-firefox %s; description=PNG Image; test=test -n "$DISPLAY"; nametemplate=%s.png; priority=2 |
4 |
image/jpeg; /usr/bin/mozilla-firefox %s; description=JPEG Image; test=test -n "$DISPLAY"; nametemplate=%s.jpeg; priority=2 |
5 |
image/gif; /usr/bin/mozilla-firefox %s; description=GIF Image; test=test -n "$DISPLAY"; nametemplate=%s.gif; priority=2 |
|
|
6 |
++ debian/control |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox-xremote-client |
1 |
Source: mozilla-firefox |
|
|
2 |
Section: web |
3 |
Priority: optional |
4 |
Maintainer: Eric Dorland <eric@debian.org> |
5 |
Uploaders: Mike Hommey <mh@glandium.org> |
6 |
Build-Depends: debhelper (>= 4.0), libx11-dev, libxp-dev, libxt-dev, libgtk2.0-dev, zlib1g-dev, liborbit2-dev, libidl-dev (>= 0.8.0), zip, libxft2-dev, libpng12-dev, libmng-dev, libjpeg62-dev, libxrender-dev, libkrb5-dev, libgnome2-dev, libgconf2-dev, libgnomevfs2-dev, patch, sharutils, m4, gcc-3.4 [amd64], g++-3.4 [amd64], libgnomeui-dev, libxinerama-dev |
7 |
Standards-Version: 3.6.1 |
8 |
|
9 |
Package: mozilla-firefox |
10 |
Architecture: any |
11 |
Depends: fontconfig, psmisc, debianutils (>= 1.16), ${shlibs:Depends} |
12 |
Suggests: mozilla-firefox-gnome-support (= ${Source-Version}), latex-xft-fonts, xprt-xprintorg |
13 |
Provides: www-browser |
14 |
Description: lightweight web browser based on Mozilla |
15 |
Firefox is a redesign of the Mozilla browser component, similar to |
16 |
Galeon, K-Meleon and Camino, but written using the XUL user interface |
17 |
language and designed to be lightweight and cross-platform. |
18 |
. |
19 |
This browser was previously known as Firebird and Phoenix. |
20 |
|
21 |
Package: mozilla-firefox-dom-inspector |
22 |
Architecture: any |
23 |
Depends: ${shlibs:Depends}, mozilla-firefox (= ${Source-Version}) |
24 |
Description: tool for inspecting the DOM of pages in Mozilla Firefox |
25 |
This is a tool that allows you to inspect the DOM for web pages in |
26 |
Mozilla Firefox. This is of great use to people who are doing |
27 |
Mozilla chrome development or web page development. |
28 |
|
29 |
Package: mozilla-firefox-gnome-support |
30 |
Architecture: any |
31 |
Depends: ${shlibs:Depends}, mozilla-firefox (= ${Source-Version}) |
32 |
Description: Support for Gnome in Mozilla Firefox |
33 |
This is an extension to Mozilla Firefox that allows it to use |
34 |
protocol handlers from Gnome-VFS, such as smb or sftp, and other |
35 |
Gnome integration features. |
36 |
|
37 |
Package: mozilla-firefox-dev |
38 |
Architecture: any |
39 |
Section: devel |
40 |
Depends: mozilla-firefox (= ${Source-Version}), libxt-dev, ${shlibs:Depends} |
41 |
Description: Development files for Mozilla Firefox |
42 |
This package contains the development headers, idl files and static libraries |
43 |
needed to develop applications using Mozilla Firefox. |
|
|
44 |
++ debian/mozilla-firefox-xremote-client |
Line 0
Link Here
|
0 |
-- debian/theme/Uninstall |
1 |
#!/bin/sh |
|
|
2 |
|
3 |
## |
4 |
## Set MOZILLA_FIVE_HOME |
5 |
## |
6 |
MOZILLA_FIVE_HOME="/usr/lib/mozilla-firefox" |
7 |
|
8 |
export MOZILLA_FIVE_HOME |
9 |
|
10 |
## |
11 |
## Set LD_LIBRARY_PATH |
12 |
## |
13 |
if [ "$LD_LIBRARY_PATH" ] |
14 |
then |
15 |
LD_LIBRARY_PATH=/usr/lib/mozilla-firefox:/usr/lib/mozilla-firefox/plugins:/usr/lib/mozilla/plugins:/usr/lib:$LD_LIBRARY_PATH |
16 |
else |
17 |
LD_LIBRARY_PATH=/usr/lib/mozilla-firefox:/usr/lib/mozilla-firefox/plugins:/usr/lib/mozilla/plugins:/usr/lib |
18 |
fi |
19 |
export LD_LIBRARY_PATH |
20 |
|
21 |
/usr/lib/mozilla-firefox/firefox-bin -a firefox -remote "$1" |
|
|
22 |
++ debian/theme/Uninstall |
Line 0
Link Here
|
0 |
-- debian/theme/00classic |
1 |
register global skin classic/1.0 |
|
|
2 |
register global skin classic/1.0 |
3 |
register global skin classic/1.0 |
4 |
register global skin classic/1.0 |
|
|
5 |
++ debian/theme/00classic |
Line 0
Link Here
|
0 |
-- debian/inspector/install.rdf |
1 |
theme,{972ce4c6-7e08-4474-a285-3208198ce6fd} |
|
|
2 |
++ debian/inspector/install.rdf |
Line 0
Link Here
|
0 |
-- debian/inspector/00dom-inspector |
1 |
<?xml version="1.0"?> |
|
|
2 |
|
3 |
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
4 |
xmlns:em="http://www.mozilla.org/2004/em-rdf#"> |
5 |
|
6 |
<Description about="urn:mozilla:install-manifest"> |
7 |
<em:id>{641d8d09-7dda-4850-8228-ac0ab65e2ac9}</em:id> |
8 |
<em:version>1.0</em:version> |
9 |
|
10 |
<!-- Target Application this extension can install into, |
11 |
with minimum and maximum supported versions. --> |
12 |
<em:targetApplication> |
13 |
<Description> |
14 |
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> |
15 |
<em:minVersion>1.0</em:minVersion> |
16 |
<em:maxVersion>1.0</em:maxVersion> |
17 |
</Description> |
18 |
</em:targetApplication> |
19 |
|
20 |
<!-- Front End MetaData --> |
21 |
<em:name>DOM Inspector</em:name> |
22 |
<em:description>A powerful tool for viewing and manipulating documents.</em:description> |
23 |
<em:creator>Joe Hewitt</em:creator> |
24 |
|
25 |
<!-- Packages, Skins and Locales that this extension registers --> |
26 |
<em:file> |
27 |
<Description about="urn:mozilla:extension:file:inspector.jar"> |
28 |
<em:package>content/inspector/</em:package> |
29 |
<em:locale>locale/en-US/inspector/</em:locale> |
30 |
<em:skin>skin/classic/inspector/</em:skin> |
31 |
<em:skin>skin/modern/inspector/</em:skin> |
32 |
</Description> |
33 |
</em:file> |
34 |
</Description> |
35 |
|
36 |
</RDF> |
|
|
37 |
++ debian/inspector/00dom-inspector |
Line 0
Link Here
|
0 |
-- debian/inspector/Uninstall |
1 |
extension,{641d8d09-7dda-4850-8228-ac0ab65e2ac9} |
|
|
2 |
++ debian/inspector/Uninstall |
Line 0
Link Here
|
0 |
-- debian/ubuntu-patches/2668-crash |
1 |
register global package inspector |
|
|
2 |
register global skin classic/1.0 |
3 |
register global skin modern/1.0 |
4 |
register global locale en-US |
|
|
5 |
++ debian/ubuntu-patches/2668-crash |
Line 0
Link Here
|
|
|
1 |
Index: content/base/src/nsDOMAttribute.cpp |
2 |
=================================================================== |
3 |
RCS file: /cvsroot/mozilla/content/base/src/nsDOMAttribute.cpp,v |
4 |
retrieving revision 1.48 |
5 |
diff -u -p -r1.48 nsDOMAttribute.cpp |
6 |
--- content/base/src/nsDOMAttribute.cpp 25 Jun 2004 12:25:57 -0000 1.48 |
Line 0
Link Here
|
|
|
1 |
? obj-debug |
2 |
Index: gfx/public/nsIRenderingContext.h |
3 |
=================================================================== |
4 |
RCS file: /cvsroot/mozilla/gfx/public/nsIRenderingContext.h,v |
5 |
retrieving revision 1.62 |
6 |
diff -u -r1.62 nsIRenderingContext.h |
7 |
--- gfx/public/nsIRenderingContext.h 27 Nov 2004 08:22:21 -0000 1.62 |
Line 0
Link Here
|
|
|
1 |
--- mozilla/widget/src/gtk/nsGtkEventHandler.cpp.separator 2004-03-08 17:04:32.169832464 +0100 |
Line 0
Link Here
|
|
|
1 |
Index: configure.in |
2 |
=================================================================== |
3 |
RCS file: /cvsroot/mozilla/configure.in,v |
4 |
retrieving revision 1.1335.2.11 |
5 |
diff -u -7 -p -r1.1335.2.11 configure.in |
6 |
--- configure.in 12 Oct 2004 04:13:29 -0000 1.1335.2.11 |
Line 0
Link Here
|
|
|
1 |
--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp.foo 2005-03-21 17:09:14.000000000 -0500 |
Line 0
Link Here
|
|
|
1 |
Index: jsstr.c |
2 |
=================================================================== |
3 |
RCS file: /cvsroot/mozilla/js/src/jsstr.c,v |
4 |
retrieving revision 3.98 |
5 |
diff -p -u -8 -r3.98 jsstr.c |
6 |
--- jsstr.c 24 Feb 2005 18:59:41 -0000 3.98 |
Line 0
Link Here
|
0 |
-- debian/rules |
1 |
#!/bin/sh |
|
|
2 |
# |
3 |
# The contents of this file are subject to the Netscape Public |
4 |
# License Version 1.1 (the "License"); you may not use this file |
5 |
# except in compliance with the License. You may obtain a copy of |
6 |
# the License at http://www.mozilla.org/NPL/ |
7 |
# |
8 |
# Software distributed under the License is distributed on an "AS |
9 |
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
10 |
# implied. See the License for the specific language governing |
11 |
# rights and limitations under the License. |
12 |
# |
13 |
# The Original Code is mozilla.org code. |
14 |
# |
15 |
# The Initial Developer of the Original Code is Netscape |
16 |
# Communications Corporation. Portions created by Netscape are |
17 |
# Copyright (C) 1998 Netscape Communications Corporation. All |
18 |
# Rights Reserved. |
19 |
# |
20 |
# Contributor(s): |
21 |
# |
22 |
|
23 |
## |
24 |
## For silly people running firefox through sudo |
25 |
## |
26 |
if [ "${SUDO_USER}" ] && [ "${SUDO_USER}" != "${USER}" ]; then |
27 |
SUDO_HOME=`getent passwd ${SUDO_USER} | cut -f6 -d:` |
28 |
if [ "${SUDO_HOME}" = "${HOME}" ]; then |
29 |
echo "You should really not run firefox through sudo WITHOUT the -H option." >&2 |
30 |
echo "Anyway, I'll do as if you did use the -H option." >&2 |
31 |
HOME=`getent passwd ${USER} | cut -f6 -d:` |
32 |
if [ -z "${HOME}" ]; then |
33 |
echo "Could not find the correct home directory. Please use the -H option of sudo." >&2. |
34 |
fi |
35 |
fi |
36 |
fi |
37 |
|
38 |
## |
39 |
## Variables |
40 |
## |
41 |
MOZ_DIST_BIN="/usr/lib/mozilla-firefox" |
42 |
MOZ_PROGRAM="/usr/lib/mozilla-firefox/firefox-bin" |
43 |
|
44 |
## |
45 |
## Load system and user properties |
46 |
## |
47 |
|
48 |
RUNTIME_FIREFOX_DSP="${FIREFOX_DSP}" |
49 |
|
50 |
if [ -f /etc/mozilla-firefox/mozilla-firefoxrc ]; then |
51 |
. /etc/mozilla-firefox/mozilla-firefoxrc |
52 |
fi |
53 |
|
54 |
if [ -f "${HOME}/.mozilla/firefox/rc" ]; then |
55 |
. "${HOME}/.mozilla/firefox/rc" |
56 |
elif [ -f "${HOME}/.mozilla-firefoxrc" ]; then |
57 |
. "${HOME}/.mozilla-firefoxrc" |
58 |
echo "Warning: a .mozilla-firefoxrc file has been found in your home directory" >&2 |
59 |
echo "While it is still supported, it is recommended to move it to" >&2 |
60 |
echo "\${HOME}/.mozilla/firefox/rc" >&2 |
61 |
fi |
62 |
|
63 |
if [ "${RUNTIME_FIREFOX_DSP}" ]; then |
64 |
FIREFOX_DSP="${RUNTIME_FIREFOX_DSP}" |
65 |
fi |
66 |
|
67 |
if [ -z "${FIREFOX_DSP}" ]; then |
68 |
FIREFOX_DSP="auto" |
69 |
fi |
70 |
|
71 |
## |
72 |
## find /dev/dsp handler |
73 |
## |
74 |
|
75 |
if [ "${FIREFOX_DSP}" = "auto" ]; then |
76 |
FIREFOX_DSP= |
77 |
P=`fuser /dev/dsp /dev/sound/dsp /dev/snd/pcm* /dev/audio 2>/dev/null | sed -e 's#^[^:]*:##' -e 's#[^0-9 ]##g' ` |
78 |
if [ -n "$P" ]; then |
79 |
if echo $P | xargs ps --no-headers -o user,command -p | grep "^${USER} *.*esd" >/dev/null 2>&1; then |
80 |
FIREFOX_DSP=esddsp |
81 |
elif echo $P | xargs ps --no-headers -o user,command -p | grep "^${USER} *.*arts" >/dev/null 2>&1; then |
82 |
FIREFOX_DSP=artsdsp |
83 |
fi |
84 |
fi |
85 |
elif [ "${FIREFOX_DSP}" = "none" ]; then |
86 |
FIREFOX_DSP= |
87 |
fi |
88 |
|
89 |
## |
90 |
## Set MOZILLA_FIVE_HOME |
91 |
## |
92 |
MOZILLA_FIVE_HOME="/usr/lib/mozilla-firefox" |
93 |
|
94 |
export MOZILLA_FIVE_HOME |
95 |
|
96 |
## |
97 |
## Set LD_LIBRARY_PATH |
98 |
## |
99 |
EXTENT_LD_LIB_PATH=/usr/lib/mozilla-firefox:/usr/lib/mozilla-firefox/plugins:/usr/lib/mozilla/plugins:/usr/lib |
100 |
if [ "${LD_LIBRARY_PATH}" ]; then |
101 |
LD_LIBRARY_PATH=${EXTENT_LD_LIB_PATH}:${LD_LIBRARY_PATH} |
102 |
else |
103 |
LD_LIBRARY_PATH=${EXTENT_LD_LIB_PATH} |
104 |
fi |
105 |
|
106 |
export LD_LIBRARY_PATH |
107 |
|
108 |
# Set XPSERVERLIST if not set yet for XPrint support, or complain. |
109 |
|
110 |
#if [ -z "${XPSERVERLIST}" ]; then |
111 |
# if [ -x /etc/init.d/xprint ]; then |
112 |
# XPSERVERLIST=`/etc/init.d/xprint get_xpserverlist` |
113 |
# export XPSERVERLIST |
114 |
# else |
115 |
# echo -e "Warning: \${XPSERVERLIST} not set and /etc/init.d/xprint not found;\nprinting will not work.\nPlease install the xprt-xprintorg package" >&2 |
116 |
# fi |
117 |
#fi |
118 |
|
119 |
#Set our package version, for use during start. |
120 |
if [ -f "${MOZILLA_FIVE_HOME}/pkg-ver" ]; then |
121 |
PKG_VER=`cat ${MOZILLA_FIVE_HOME}/pkg-ver`; |
122 |
fi |
123 |
|
124 |
verbose () { |
125 |
if [ "${VERBOSE}" ]; then |
126 |
echo $@ |
127 |
fi |
128 |
} |
129 |
|
130 |
echo_vars () { |
131 |
if [ "${VERBOSE}" ]; then |
132 |
for var in "$@"; do |
133 |
echo "$var=`eval echo \\${$var}`" |
134 |
done |
135 |
fi |
136 |
} |
137 |
|
138 |
# exec wrapper for verbosity |
139 |
exec_verbose () { |
140 |
verbose Running: $@ |
141 |
exec $@ |
142 |
} |
143 |
|
144 |
# exec wrapper for verbosity |
145 |
run_verbose () { |
146 |
verbose Running: $@ |
147 |
$@ |
148 |
} |
149 |
|
150 |
## |
151 |
## Set MOZ_ENABLE_PANGO |
152 |
## |
153 |
|
154 |
MOZ_ENABLE_PANGO=1 |
155 |
export MOZ_ENABLE_PANGO |
156 |
|
157 |
# Figure out if we need to ser LD_ASSUME_KERNEL for older versions of the JVM. |
158 |
set_jvm_vars () { |
159 |
|
160 |
if [ ! -L /usr/lib/mozilla/plugins/libjavaplugin_oji.so ]; then |
161 |
return; |
162 |
fi |
163 |
|
164 |
JVM_LINK=`readlink /usr/lib/mozilla/plugins/libjavaplugin_oji.so` |
165 |
|
166 |
# is it relative? if so append the full path |
167 |
|
168 |
echo "${JVM_LINK}" | grep -e "^/" 2>&1 > /dev/null |
169 |
|
170 |
if [ "$?" -ne 0 ]; then |
171 |
JVM_LINK="/usr/lib/mozilla/plugins/${JVM_LINK}" |
172 |
fi |
173 |
|
174 |
JVM_BASE=`basename "${JVM_LINK}"` |
175 |
JVM_DIR=`dirname "${JVM_LINK}"` |
176 |
JVM_COMMAND="${JVM_DIR}/java" |
177 |
if [ ! -r "${JVM_COMMAND}" ]; then |
178 |
JVM_DIR="${JVM_DIR}/../../../bin/" |
179 |
JVM_COMMAND="${JVM_DIR}/java" |
180 |
# does the command exist? |
181 |
if [ ! -r "${JVM_COMMAND}" ]; then |
182 |
return |
183 |
fi |
184 |
fi |
185 |
|
186 |
# export this temporarily - it seems to work with old and new |
187 |
# versions of the JVM. |
188 |
export LD_ASSUME_KERNEL=2.2.5 |
189 |
|
190 |
# get the version |
191 |
JVM_VERSION=`${JVM_COMMAND} -version 2>&1 | grep version | cut -f 3 -d " " | sed -e 's/\"//g'` |
192 |
|
193 |
unset LD_ASSUME_KERNEL |
194 |
|
195 |
case "${JVM_VERSION}" in |
196 |
(1.3.0*) |
197 |
# bad JVM |
198 |
export LD_ASSUME_KERNEL=2.2.5 |
199 |
;; |
200 |
esac |
201 |
|
202 |
echo_vars JVM_DIR JVM_VERSION |
203 |
} |
204 |
|
205 |
clean_profile() |
206 |
{ |
207 |
# Clean up the XUL.mfasl unconditionally on launch, since we have the |
208 |
# corner case of when firefox is running when upgraded. Need a |
209 |
# better solution or upstream fix. |
210 |
# Clean up the compatibility.ini as well, since we have a corner case of when |
211 |
# some components register protocols. Need a better solution or upstream fix. |
212 |
if [ -f "${HOME}/.mozilla/firefox/profiles.ini" ]; then |
213 |
sed -e '/Path=/! d' -e 's,Path=/,/,' -e "s,Path=,${HOME}/.mozilla/firefox/," "${HOME}/.mozilla/firefox/profiles.ini" \ |
214 |
| while read dir |
215 |
do |
216 |
if [ -f "${dir}/ver" ]; then |
217 |
LOCAL_VER=`cat "${dir}/ver"` |
218 |
else |
219 |
LOCAL_VER=0 |
220 |
fi |
221 |
if `dpkg --compare-versions "$PKG_VER" gt "$LOCAL_VER"`; then |
222 |
rm -f "${dir}/XUL.mfasl" |
223 |
fi |
224 |
echo $PKG_VER > "${dir}/ver" |
225 |
if [ "${dir}/compreg.dat" -ot "/usr/lib/mozilla-firefox/components.ini" ]; then |
226 |
rm -f "${dir}/compatibility.ini" |
227 |
fi |
228 |
done |
229 |
fi |
230 |
} |
231 |
|
232 |
# OK, here's where all the real work gets done |
233 |
|
234 |
# parse command line |
235 |
APPLICATION_ID=firefox |
236 |
REMOTE=0 |
237 |
TRY_USE_EXIST=0 |
238 |
VERBOSE= |
239 |
DEBUG=0 |
240 |
DEBUGGER= |
241 |
first=1 |
242 |
opt= |
243 |
for arg in "$@"; do |
244 |
if [ ${first} -eq 1 ]; then |
245 |
set dummy |
246 |
first=0 |
247 |
fi |
248 |
|
249 |
case "${arg}" in |
250 |
-a | --display | -contentLocale | -UILocale | -remote | --debugger | -height | -width | -chrome | -P) |
251 |
prev=${arg} |
252 |
continue |
253 |
;; |
254 |
esac |
255 |
|
256 |
if [ "${prev}" ]; then |
257 |
case "${prev}" in |
258 |
-a) |
259 |
APPLICATION_ID="${arg}" |
260 |
;; |
261 |
--display) |
262 |
CMDLINE_DISPLAY="${arg}" |
263 |
set "$@" --display "${arg}" |
264 |
;; |
265 |
-remote) |
266 |
REMOTE=1 |
267 |
set "$@" -remote "${arg}" |
268 |
;; |
269 |
--debugger) |
270 |
DEBUGGER="${arg}" |
271 |
DEBUG=1 |
272 |
;; |
273 |
*) |
274 |
set "$@" "${prev}" "${arg}" |
275 |
;; |
276 |
esac |
277 |
prev= |
278 |
elif [ "${arg}" ]; then |
279 |
case "$arg" in |
280 |
--verbose | -V) |
281 |
VERBOSE=1 |
282 |
;; |
283 |
--display=*) |
284 |
CMDLINE_DISPLAY=`echo ${arg} | sed 's/^--display=//'` |
285 |
set "$@" "${arg}" |
286 |
;; |
287 |
-g | -debug) |
288 |
DEBUG=1 |
289 |
;; |
290 |
-*) |
291 |
set "$@" "${arg}" |
292 |
;; |
293 |
*) |
294 |
if [ -z "${opt}" ]; then |
295 |
opt="${arg}" |
296 |
# check to make sure that the url contains at least a :/ in it. |
297 |
echo ${opt} | grep -e ':/' 2>/dev/null > /dev/null |
298 |
RETURN_VAL=$? |
299 |
if [ "${RETURN_VAL}" -eq 1 ]; then |
300 |
# if it doesn't begin with a '/' and it exists when the pwd is |
301 |
# prepended to it then append the full path |
302 |
echo ${opt} | grep -e '^/' 2>/dev/null > /dev/null |
303 |
if [ "$?" -ne "0" ] && [ -e "`pwd`/${opt}" ]; then |
304 |
opt="`pwd`/${opt}" |
305 |
fi |
306 |
# Replace all spaces by %20 and prepend file:// if it is a valid file |
307 |
if [ -e "${opt}" ]; then |
308 |
opt="file://`echo ${opt} | sed 's/ /%20/g'`" |
309 |
fi |
310 |
fi |
311 |
set "$@" "${opt}" |
312 |
else |
313 |
set "$@" "${arg}" |
314 |
fi |
315 |
;; |
316 |
esac |
317 |
fi |
318 |
done |
319 |
|
320 |
if [ $# -ne 0 ]; then |
321 |
shift |
322 |
fi |
323 |
OPTIONS="$@" |
324 |
|
325 |
if [ ${DEBUG} -eq 1 ]; then |
326 |
if [ "${DEBUGGER}" = "" ]; then |
327 |
DEBUGGER=gdb |
328 |
fi |
329 |
TMPFILE=`mktemp -t firefox_argsXXXXXX` |
330 |
echo set args -a ${APPLICATION_ID} "$@" > ${TMPFILE} |
331 |
case "${DEBUGGER}" in |
332 |
gdb) |
333 |
run_verbose gdb "${MOZ_PROGRAM}" -x ${TMPFILE} |
334 |
;; |
335 |
ddd) |
336 |
run_verbose ddd --debugger "gdb -x ${TMPFILE}" "${MOZ_PROGRAM}" |
337 |
;; |
338 |
*) |
339 |
run_verbose ${DEBUGGER} "${MOZ_PROGRAM}" "$@" |
340 |
;; |
341 |
esac |
342 |
rm ${TMPFILE} |
343 |
exit |
344 |
fi |
345 |
|
346 |
if [ $# -eq 1 ] && [ "$1" = "${opt}" ]; then |
347 |
TRY_USE_EXIST=1 |
348 |
fi |
349 |
|
350 |
MOZ_PROGRAM="${MOZ_PROGRAM} -a ${APPLICATION_ID}" |
351 |
|
352 |
echo_vars FIREFOX_DSP APPLICATION_ID CMDLINE_DISPLAY DISPLAY REMOTE \ |
353 |
TRY_USE_EXIST OPTIONS DEBUG DEBUGGER |
354 |
|
355 |
# set our JVM vars |
356 |
# we don't want to do this (Ubuntu: #5636) |
357 |
#set_jvm_vars |
358 |
|
359 |
PING_STATUS=1 |
360 |
|
361 |
# No need to check if DISPLAY is not set, it will fail. But let's continue, |
362 |
# so that firefox gives the display error message itself. |
363 |
if [ "${DISPLAY}" ] || [ "${CMDLINE_DISPLAY}" ]; then |
364 |
if [ -z "${CMDLINE_DISPLAY}" ]; then |
365 |
CMDLINE_DISPLAY="${DISPLAY}" |
366 |
fi |
367 |
|
368 |
# check to see if there's an already running instance or not |
369 |
verbose "Running: ${MOZ_PROGRAM} -remote 'ping()'" |
370 |
DISPLAY="${CMDLINE_DISPLAY}" ${MOZ_PROGRAM} -remote 'ping()' \ |
371 |
> /dev/null 2>&1 |
372 |
PING_STATUS=$? |
373 |
fi |
374 |
|
375 |
echo_vars PING_STATUS |
376 |
|
377 |
# Clean user profile if we are not trying to use the running instance and only |
378 |
# if the check was successful (status 2) |
379 |
if [ "${REMOTE}" -eq 0 ] && [ "${TRY_USE_EXIST}" -eq 0 ] && [ "${PING_STATUS}" -eq 2 ]; then |
380 |
verbose "Cleaning user profile" |
381 |
clean_profile |
382 |
fi |
383 |
|
384 |
# If there is no command line argument at all then try to open a new |
385 |
# window in an already running instance. |
386 |
if [ "${PING_STATUS}" -eq 0 ] && [ $# -eq 0 ]; then |
387 |
exec_verbose ${MOZ_PROGRAM} -remote "xfeDoCommand(openBrowser)" |
388 |
fi |
389 |
|
390 |
# If we are trying to use existing instance, and it exists, and we're not having |
391 |
# a -remote command line argument, then open in window or tab accordingly. |
392 |
if [ "${REMOTE}" -eq 0 ] && [ "${TRY_USE_EXIST}" -eq 1 ] && [ "${PING_STATUS}" -eq 0 ]; then |
393 |
# just pass it off if it looks like a url |
394 |
exec_verbose ${MOZ_PROGRAM} -remote "openURL(${opt})" |
395 |
fi |
396 |
|
397 |
if type "${FIREFOX_DSP}" > /dev/null 2>&1; then |
398 |
# echo "Using $FIREFOX_DSP." |
399 |
MOZ_PROGRAM="${FIREFOX_DSP} ${MOZ_PROGRAM}" |
400 |
fi |
401 |
|
402 |
exec_verbose ${MOZ_PROGRAM} "$@" |
|
|
403 |
++ debian/rules |
Line 0
Link Here
|
0 |
-- debian/mozilla-firefox.preinst |
1 |
#!/usr/bin/make -f |
|
|
2 |
# Sample debian/rules that uses debhelper. |
3 |
# GNU copyright 1997 to 1999 by Joey Hess. |
4 |
|
5 |
# Uncomment this to turn on verbose mode. |
6 |
#export DH_VERBOSE=1 |
7 |
|
8 |
SHELL=/bin/bash # I use bashisms |
9 |
|
10 |
# build phoenix |
11 |
export MOZ_PHOENIX=1 |
12 |
export MOZ_FIREBIRD=1 |
13 |
export MOZ_FIREFOX=1 |
14 |
export BUILD_OFFICIAL=1 |
15 |
export MOZILLA_OFFICIAL=1 |
16 |
#export MOZ_INTERNAL_LIBART_LGPL=1 |
17 |
|
18 |
PHOENIX := mozilla-firefox |
19 |
PHOENIX_CVS := mozilla |
20 |
# things to remove from upstream tarball cause we don't need them |
21 |
UPSTREAM_REMOVE := debian mailnews themes/modern editor/ui \ |
22 |
editor/composer/src lib/mac |
23 |
DEBIAN_VERSION := $(shell dpkg-parsechangelog | sed -n 's/Version: *\(.*\)/\1/ p') |
24 |
UPSTREAM_VERSION := $(shell echo $(DEBIAN_VERSION) | sed 's/-.*$$//') |
25 |
LIB_DIR := /usr/lib/mozilla-firefox |
26 |
|
27 |
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) |
28 |
OPTFLAGS = -O0 |
29 |
else |
30 |
OPTFLAGS = -O2 |
31 |
|
32 |
ifeq ($(DEB_BUILD_ARCH),ia64) |
33 |
OPTFLAGS=-O |
34 |
endif |
35 |
|
36 |
ifeq ($(DEB_BUILD_ARCH),powerpc) |
37 |
OPTFLAGS=-O |
38 |
endif |
39 |
|
40 |
ifeq ($(DEB_BUILD_ARCH),arm) |
41 |
OPTFLAGS=-O |
42 |
endif |
43 |
|
44 |
endif |
45 |
|
46 |
OPTFLAGS += -DDEBIAN |
47 |
|
48 |
DEBUG_FLAG= |
49 |
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) |
50 |
DEBUG_FLAG = --enable-debug |
51 |
else |
52 |
DEBUG_FLAG = --disable-debug |
53 |
endif |
54 |
|
55 |
ifeq ($(DEB_BUILD_ARCH),amd64) |
56 |
CC=gcc-3.4 |
57 |
CXX=g++-3.4 |
58 |
export CC CXX |
59 |
endif |
60 |
|
61 |
|
62 |
CONFIGURE_OPTIONS = \ |
63 |
--enable-default-toolkit=gtk2 \ |
64 |
--with-default-mozilla-five-home=$(LIB_DIR) \ |
65 |
--with-user-appdir=.mozilla \ |
66 |
--with-system-mng=/usr \ |
67 |
--with-system-png=/usr \ |
68 |
--with-system-jpeg=/usr \ |
69 |
--disable-mailnews \ |
70 |
--disable-composer \ |
71 |
--disable-ldap \ |
72 |
--enable-postscript \ |
73 |
--disable-installer \ |
74 |
--disable-xprint \ |
75 |
--enable-crypto \ |
76 |
--disable-svg \ |
77 |
--enable-mathml \ |
78 |
--disable-tests \ |
79 |
--disable-gtktest \ |
80 |
--enable-xft \ |
81 |
--enable-optimize="-pipe -w $(OPTFLAGS)" \ |
82 |
--with-system-zlib=/usr \ |
83 |
--with-gssapi=/usr \ |
84 |
--without-system-nspr \ |
85 |
--enable-xinerama \ |
86 |
--enable-extensions=cookie,xml-rpc,xmlextras,pref,transformiix,universalchardet,webservices,inspector,gnomevfs,negotiateauth,typeaheadfind \ |
87 |
--disable-pedantic \ |
88 |
--disable-long-long-warning \ |
89 |
--enable-single-profile \ |
90 |
--disable-profilesharing \ |
91 |
--enable-gnomevfs \ |
92 |
--enable-pango \ |
93 |
--disable-strip-libs \ |
94 |
$(DEBUG_FLAG) |
95 |
|
96 |
ifneq ($(DEB_BUILD_ARCH),mips) |
97 |
ifneq ($(DEB_BUILD_ARCH),mipsel) |
98 |
# CONFIGURE_OPTIONS += --enable-static --disable-shared |
99 |
endif |
100 |
endif |
101 |
|
102 |
configure: configure-stamp |
103 |
configure-stamp: |
104 |
dh_testdir |
105 |
|
106 |
#(uudecode debian/firefox-gnomestripe-0.1.tar.gz.uu && tar xzf firefox-gnomestripe-0.1.tar.gz) |
107 |
|
108 |
./configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info $(CONFIGURE_OPTIONS) |
109 |
|
110 |
touch configure-stamp |
111 |
|
112 |
build: configure-stamp build-stamp |
113 |
build-stamp: |
114 |
dh_testdir |
115 |
|
116 |
$(MAKE) |
117 |
|
118 |
(cd debian && uudecode mozilla-firefox.png.uu \ |
119 |
&& uudecode debsearch.gif.uu) |
120 |
touch build-stamp |
121 |
|
122 |
clean: |
123 |
dh_testdir |
124 |
dh_testroot |
125 |
rm -f build-stamp configure-stamp debian/stamp-* \ |
126 |
debian/mozilla-firefox.png debian/debsearch.gif \ |
127 |
firefox-gnomestripe-0.1.tar.gz |
128 |
|
129 |
-$(MAKE) distclean |
130 |
|
131 |
rm -fr browser/themes/gnomestripe |
132 |
rm -f toolkit/xre/nsWindowCreator.cpp toolkit/xre/showOSAlert.cpp toolkit/xre/nsSigHandlers.cpp extensions/pref/system-pref/src/gconf/nsSystemPrefFactory.cpp |
133 |
dh_clean |
134 |
|
135 |
install: build |
136 |
dh_testdir |
137 |
dh_testroot |
138 |
dh_clean -k |
139 |
dh_installdirs |
140 |
|
141 |
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp |
142 |
chmod 755 debian/mozilla-firefox-xremote-client |
143 |
# Remove execute on javascript files |
144 |
find debian/tmp -name '*.so' | xargs chmod -x |
145 |
chmod -x debian/tmp/$(LIB_DIR)/components/*.js |
146 |
|
147 |
# Exclude inspector for mozilla-firefox |
148 |
dh_install -pmozilla-firefox '-X*inspector*' '-X*gnome*' |
149 |
dh_install -pmozilla-firefox-dom-inspector |
150 |
dh_install -pmozilla-firefox-gnome-support |
151 |
dh_install -pmozilla-firefox-dev |
152 |
|
153 |
#Install helpers |
154 |
install -m 755 debian/mozilla-firefox-runner \ |
155 |
debian/mozilla-firefox/usr/lib/mozilla-firefox/firefox |
156 |
install -m 755 debian/update-mozilla-firefox-chrome \ |
157 |
debian/mozilla-firefox/usr/sbin/update-mozilla-firefox-chrome |
158 |
|
159 |
# Filter installed chrome |
160 |
egrep -v 'inspector\.jar|embed-sample\.jar|classic\.jar' \ |
161 |
debian/tmp/$(LIB_DIR)/chrome/installed-chrome.txt \ |
162 |
> debian/mozilla-firefox/$(LIB_DIR)/chrome/installed-chrome.txt |
163 |
|
164 |
# Remove installed-extensions.txt |
165 |
rm -rf 'debian/mozilla-firefox/$(LIB_DIR)/defaults/profile/extensions/installed-extensions.txt' |
166 |
|
167 |
# Move classic theme's install.rdf to final destination |
168 |
mv debian/mozilla-firefox/$(LIB_DIR)/defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf debian/mozilla-firefox/$(LIB_DIR)/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/ |
169 |
# Remove unneeded extensions directory |
170 |
rm -rf debian/mozilla-firefox/$(LIB_DIR)/defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} |
171 |
|
172 |
# Remove unneeded configs |
173 |
rm -f debian/mozilla-firefox/$(LIB_DIR)/defaults/pref/editor.js \ |
174 |
debian/mozilla-firefox/${LIB_DIR}/defaults/pref/mailnews.js \ |
175 |
debian/mozilla-firefox/${LIB_DIR}/defaults/pref/inspector.js \ |
176 |
debian/mozilla-firefox/${LIB_DIR}/defaults/pref/firefox-l10n.js |
177 |
|
178 |
# Add Ubuntu package version to preferences |
179 |
echo // Debian package version \ |
180 |
> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
181 |
echo "pref(\"general.useragent.vendorComment\",\"Ubuntu package $(UPSTREAM_VERSION)\");" \ |
182 |
>> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
183 |
|
184 |
# Move profiles into /etc |
185 |
mv \ |
186 |
debian/mozilla-firefox/$(LIB_DIR)/defaults/profile \ |
187 |
debian/mozilla-firefox/etc/mozilla-firefox/ |
188 |
|
189 |
# Ensure that we open links in new windows by default |
190 |
echo // Open links in new windows by default \ |
191 |
>> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
192 |
echo "pref(\"browser.link.open_external\", 2);" \ |
193 |
>> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
194 |
|
195 |
# Enable smooth scrolling, and use system colours |
196 |
echo "pref(\"browser.display.use_system_colors\", true);"\ |
197 |
>> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
198 |
echo "pref(\"general.smoothScroll\", true);" \ |
199 |
>> debian/mozilla-firefox/${LIB_DIR}/defaults/pref/vendor.js |
200 |
|
201 |
echo "$(UPSTREAM_VERSION)" > debian/mozilla-firefox/${LIB_DIR}/pkg-ver |
202 |
|
203 |
#Move pretty icons into place |
204 |
cp -f debian/mozilla-firefox.xpm \ |
205 |
debian/mozilla-firefox/$(LIB_DIR)/icons/default.xpm |
206 |
cp -f debian/mozilla-firefox.xpm \ |
207 |
debian/mozilla-firefox/$(LIB_DIR)/icons/mozicon50.xpm |
208 |
cp -f debian/mozilla-firefox-small.xpm \ |
209 |
debian/mozilla-firefox/$(LIB_DIR)/icons/mozicon16.xpm |
210 |
cp -f debian/mozilla-firefox.xpm \ |
211 |
debian/mozilla-firefox/$(LIB_DIR)/chrome/icons/default/default.xpm |
212 |
|
213 |
# Build architecture-independent files here. |
214 |
binary-indep: build install |
215 |
|
216 |
|
217 |
# Build architecture-dependent files here. |
218 |
binary-arch: build install |
219 |
# dh_testversion |
220 |
dh_testdir |
221 |
dh_testroot |
222 |
dh_installdebconf |
223 |
dh_installdocs |
224 |
dh_installexamples |
225 |
dh_installmenu |
226 |
# dh_installemacsen |
227 |
# dh_installpam |
228 |
# dh_installinit |
229 |
# dh_installcron |
230 |
dh_installman |
231 |
dh_installinfo |
232 |
dh_installmime |
233 |
# dh_undocumented |
234 |
dh_installchangelogs |
235 |
dh_link |
236 |
dh_strip |
237 |
dh_compress |
238 |
dh_fixperms |
239 |
# dh_makeshlibs |
240 |
dh_installdeb |
241 |
# dh_perl |
242 |
dh_shlibdeps |
243 |
dh_gencontrol |
244 |
dh_md5sums |
245 |
dh_builddeb |
246 |
|
247 |
source-tarball-from-cvs: clean |
248 |
cp -af ../$(PHOENIX_CVS) ../$(PHOENIX)-$(UPSTREAM_VERSION).orig |
249 |
cd ../$(PHOENIX)-$(UPSTREAM_VERSION).orig ; rm -rf mailnews debian |
250 |
cd ../$(PHOENIX)-$(UPSTREAM_VERSION).orig ; find . -depth \( -name CVS \ |
251 |
-or -name .cvsignore \) -exec rm -rf '{}' \; |
252 |
cd .. ; tar --remove-files -cf $(PHOENIX)_$(UPSTREAM_VERSION).orig.tar \ |
253 |
$(PHOENIX)-$(UPSTREAM_VERSION).orig |
254 |
rm -rf ../$(PHOENIX)-$(UPSTREAM_VERSION).orig |
255 |
gzip -9 ../$(PHOENIX)_$(UPSTREAM_VERSION).orig.tar |
256 |
|
257 |
binary: binary-indep binary-arch |
258 |
.PHONY: build clean binary-indep binary-arch binary install configure source-tarball-from-cvs |
|
|
259 |
++ debian/mozilla-firefox.preinst |
Line 0
Link Here
|
0 |
-- debian/changelog |
1 |
#!/bin/sh -e |
|
|
2 |
|
3 |
LIBDIR=/usr/lib/mozilla-firefox |
4 |
VARDIR=/var/lib/mozilla-firefox |
5 |
|
6 |
# Remove old link |
7 |
rm -fr ${LIBDIR}/defaults/pref |
8 |
|
9 |
if [ "$1" = "upgrade" ]; then |
10 |
if [ -d "/usr/lib/mozilla-firebird/defaults/pref" ]; then |
11 |
rm -rf /usr/lib/mozilla-firebird/defaults/pref |
12 |
fi |
13 |
|
14 |
# Remove old alternative to www-browser that version < 0.6.1-1 installed |
15 |
if dpkg --compare-versions "$2" lt 0.6.1-1; then |
16 |
update-alternatives --remove www-browser /usr/bin/MozillaFirebird || true |
17 |
fi |
18 |
|
19 |
# Remove old conf files |
20 |
if dpkg --compare-versions "$2" lt 0.9.1-3; then |
21 |
rm -f /etc/mozilla-firefox/pref/all.js |
22 |
rm -f /etc/mozilla-firefox/pref/security-prefs.js |
23 |
rm -f /etc/mozilla-firefox/pref/unix.js |
24 |
rm -f /etc/mozilla-firefox/pref/xpinstall.js |
25 |
rm -f /etc/mozilla-firefox/pref/non-shared.txt |
26 |
fi |
27 |
|
28 |
if dpkg --compare-versions "$2" lt 0.10.1+1.0PR-5 || |
29 |
dpkg --compare-versions "$2" lt 0.99+1.0PR.1+revertedto0.9.3-0ubuntu3; then |
30 |
if [ -f /etc/mozilla-firefox/profile/US/bookmarks.html ]; then |
31 |
mv /etc/mozilla-firefox/profile/US/bookmarks.html /etc/mozilla-firefox/profile/bookmarks.html |
32 |
fi |
33 |
[ -d /etc/mozilla-firefox/profile/US ] && rmdir --ignore-fail-on-non-empty /etc/mozilla-firefox/profile/US |
34 |
fi |
35 |
|
36 |
if dpkg --compare-versions "$2" lt 1.0-1; then |
37 |
rm -f /etc/mozilla-firefox/pref/firefox-l10n.js |
38 |
rm -f /etc/mozilla-firefox/pref/vendor.js |
39 |
|
40 |
|
41 |
# Remove old installed-chrome.txt |
42 |
rm -f ${VARDIR}/chrome/installed-chrome.txt |
43 |
fi |
44 |
|
45 |
if dpkg --compare-versions "$2" lt 1.0-3; then |
46 |
for f in `find ${LIBDIR}/extensions/ -maxdepth 1 -name '{*}' -type l`; do |
47 |
if [ "`readlink -f $f`" = "${LIBDIR}/defaults/profile/extensions/`basename $f`" ]; then |
48 |
rm -f $f |
49 |
fi |
50 |
done |
51 |
if [ -e ${LIBDIR}/defaults/profile/extensions/installed-extensions.txt ] || [ -L ${LIBDIR}/defaults/profile/extensions/installed-extensions.txt ]; then |
52 |
rm -f ${LIBDIR}/defaults/profile/extensions/installed-extensions.txt |
53 |
fi |
54 |
fi |
55 |
|
56 |
# Move of default profile into /etc |
57 |
if dpkg --compare-versions "$2" lt 1.0+dfsg.1-1; then |
58 |
rm -rf /usr/lib/mozilla-firefox/defaults/profile |
59 |
fi |
60 |
fi |
61 |
|
62 |
#DEBHELPER# |
|
|
63 |
++ debian/changelog |
Line 0
Link Here
|
0 |
-- configure.in |
1 |
mozilla-firefox (1.0.2-0ubuntu5) hoary; urgency=low |
|
|
2 |
|
3 |
* Ensure default homepage is correct (US only) (Ubuntu: #8685) |
4 |
* Low risk fix for crasher caused by dragging images (Moz: #288006) |
5 |
* Trivial fix to make sidebar bookamrks work properly again (Moz: #287459) |
6 |
(The combination of the two above bugs is to give us the important bits of |
7 |
Firefox 1.0.3) |
8 |
* Fix defaults/pref harder |
9 |
|
10 |
-- Thom May <thom@ubuntu.com> Tue, 5 Apr 2005 18:20:21 +0100 |
11 |
|
12 |
mozilla-firefox (1.0.2-0ubuntu4) hoary; urgency=low |
13 |
|
14 |
* Always delete /usr/lib/mozilla-firebird/defaults/pref in preinst |
15 |
* Apply patch from moz: 288688; Ubuntu: 8611 |
16 |
JS "lambda" replace exposes malloc heap space after end of JS string |
17 |
|
18 |
-- Thom May <thom@ubuntu.com> Mon, 4 Apr 2005 13:49:06 +0100 |
19 |
|
20 |
mozilla-firefox (1.0.2-0ubuntu3) hoary; urgency=low |
21 |
|
22 |
* Only strip our libs once, for debugging porpoises. |
23 |
|
24 |
-- Thom May <thom@ubuntu.com> Fri, 1 Apr 2005 13:07:46 +0100 |
25 |
|
26 |
mozilla-firefox (1.0.2-0ubuntu2) hoary; urgency=low |
27 |
|
28 |
* Fix gtk2 themer to correctly set foreground and background |
29 |
* Ensure that we correctly delete XUL.mfasl when we change major versions |
30 |
|
31 |
-- Thom May <thom@ubuntu.com> Mon, 28 Mar 2005 19:22:02 +0100 |
32 |
|
33 |
mozilla-firefox (1.0.2-0ubuntu1) hoary; urgency=low |
34 |
|
35 |
* New upstream release |
36 |
* Ensure that AddLangGroup is renamed to NS_AddLangGroup everywhere |
37 |
(Ubuntu: #8103) |
38 |
|
39 |
-- Thom May <thom@ubuntu.com> Wed, 23 Mar 2005 22:07:04 +0000 |
40 |
|
41 |
mozilla-firefox (1.0.1-2ubuntu2) hoary; urgency=low |
42 |
|
43 |
* Enable xinerama (Ubuntu: #6414) |
44 |
* Fix warning to talk about Firefox rather than mozilla (Ubuntu: #6182) |
45 |
* Open in new window by default (Ubuntu: #7653) |
46 |
* Fixes for non Latin1 printing (Ubuntu: #6233) |
47 |
* Fix for Extension-Manager crashing with broken xml |
48 |
* Combination of fixes to hopefully get #7711; certainly I can't reproduce |
49 |
the problem now. |
50 |
|
51 |
-- Thom May <thom@ubuntu.com> Tue, 15 Mar 2005 14:27:15 +0000 |
52 |
|
53 |
mozilla-firefox (1.0.1-2ubuntu1) hoary; urgency=low |
54 |
|
55 |
* Resynchronise with Debian. |
56 |
Security fixes: CAN-2004-1156 - Window Injection Vulnerability |
57 |
CAN-2005-0232 - Fireflashing |
58 |
CAN-2005-0231 - Firetabbing |
59 |
* Add patch to render hebrew RtL rather than LtR |
60 |
* Add patch to make ',' on the numpad work correctly (Ubuntu: #6301) |
61 |
|
62 |
-- Thom May <thom@ubuntu.com> Mon, 07 Mar 2005 12:54:09 +0000 |
63 |
|
64 |
mozilla-firefox (1.0.1-2) unstable; urgency=high |
65 |
|
66 |
* Changes by Mike Hommey: |
67 |
* Urgency: high due to RC bug fix. |
68 |
* debian/update-mozilla-firefox-chrome: Re-initialize Extensions.rdf |
69 |
inside the script instead of relying on mozilla-firefox's default |
70 |
behaviour, which just fails when defaults/profile/extensions/ \ |
71 |
Extensions.rdf doesn't exist (and it seems some people like to remove |
72 |
files in /etc). (Closes: #294175) |
73 |
|
74 |
* Changes by Eric Dorland: |
75 |
* debian/mozilla-firefox.menu: Capitalize "browsers". Thanks Gerfried |
76 |
Fuchs. |
77 |
* debian/mozilla-firefox-runner: Fix from Marc Horowitz to fix sound |
78 |
device detection. (Closes: #297088) |
79 |
* toolkit/content/widgets/tabbrowser.xml: Apply patch from bz#283063, to |
80 |
fix a memory leak when closing tabs. (Closes: #296749) |
81 |
* xpfe/global/resources/content/bindings/browser.xml, |
82 |
xpfe/global/resources/content/bindings/tabbrowser.xml, |
83 |
toolkit/content/widgets/browser.xml, |
84 |
toolkit/content/widgets/tabbrowser.xml: Apply patches from bz#131456 |
85 |
to fix various tab related memory leaks. (Closes: #280586) |
86 |
* netwerk/protocol/http/src/nsHttpHandler.cpp: Patch from bz#265536 to |
87 |
differentiate between AMD64 and i386. (Closes: #282592) |
88 |
|
89 |
-- Eric Dorland <eric@debian.org> Sat, 5 Mar 2005 18:46:09 -0500 |
90 |
|
91 |
mozilla-firefox (1.0.1-1) unstable; urgency=high |
92 |
|
93 |
* New upstream release. (Closes: #296851) |
94 |
- This release fixes the Secunia window injection bug, |
95 |
CAN-2004-1156. (Closes: #293664) |
96 |
|
97 |
* Changes by Mike Hommey: |
98 |
* debian/rules: Some clean-up. |
99 |
* debian/control: Changed my maintainer address. |
100 |
* debian/README.Debian: Add a note about automatic updates for |
101 |
extensions. (Closes: #296761) |
102 |
|
103 |
* Changes by Eric Dorland: |
104 |
* browser/app/profile/firefox.js: Remove disable IDN pref, it's the |
105 |
default now anyway. |
106 |
|
107 |
-- Eric Dorland <eric@debian.org> Tue, 1 Mar 2005 02:03:48 -0500 |
108 |
|
109 |
mozilla-firefox (1.0+dfsg.1-6ubuntu1) hoary; urgency=low |
110 |
|
111 |
* Resynchronise with Debian. |
112 |
* Stop disabling IDN. |
113 |
* Update Pango patches to fix text area problems (Closes: Ubuntu #6007) |
114 |
* Drop alternatives priority to 84, so that people who install ephy get it. |
115 |
* Revert b.m.o 155293 (Closes: Ubuntu #5992) |
116 |
* Change from "Firefox" to "Firefox Web Browser" (Closes: Ubuntu #6380) |
117 |
|
118 |
-- Thom May <thom@ubuntu.com> Fri, 11 Feb 2005 12:49:57 +0000 |
119 |
|
120 |
mozilla-firefox (1.0+dfsg.1-6) unstable; urgency=high |
121 |
|
122 |
* The "And I thought IE had security bugs!" release. |
123 |
* toolkit/content/widgets/tabbrowser.xml, |
124 |
xpfe/global/resources/content/bindings/tabbrowser.xml: Fix |
125 |
"Firetabbing" vulnerability from bugzilla#280056, fixes |
126 |
CAN-2005-0231. (Closes: #294415) |
127 |
* modules/plugin/base/src/nsPluginHostImpl.cpp: Fix "Fireflashing" |
128 |
vulnerability from bugzilla#280664, fixes CAN-2005-0232. (Also Closes: |
129 |
#294415) |
130 |
* build/unix/run-mozilla.sh: Patch from Javier Fernández-Sanguino Peña |
131 |
to fix insecure temp file usage in run-mozilla.sh. (Closes: #294127) |
132 |
* netwerk/base/src/nsStandardURL.cpp, netwerk/base/src/nsStandardURL.h: |
133 |
Patch from bugzilla#261934 to make the network.enableIDN preference |
134 |
work and again. |
135 |
* browser/app/profile/firefox.js: Disable IDN by default. This doesn't |
136 |
close #293975, but drops its severity. |
137 |
* debian/README.Debian: Add warning and describe how to enable IDN. |
138 |
|
139 |
-- Eric Dorland <eric@debian.org> Wed, 9 Feb 2005 22:56:17 -0500 |
140 |
|
141 |
mozilla-firefox (1.0+dfsg.1-5) unstable; urgency=low |
142 |
|
143 |
* debian/mozilla-firefox.desktop: Don't translate "Mozilla Firefox" into |
144 |
French. |
145 |
* browser/app/profile/firefox.js: Set mozilla.widget.raise-on-setfocus |
146 |
to false to prevent unecessary window raising. (Closes: #292049) |
147 |
* debian/rules: Don't compile statically on mips and mipsel, since it's |
148 |
broken for now. |
149 |
|
150 |
-- Eric Dorland <eric@debian.org> Sun, 6 Feb 2005 15:02:36 -0500 |
151 |
|
152 |
mozilla-firefox (1.0+dfsg.1-4) unstable; urgency=low |
153 |
|
154 |
* debian/mozilla-firefox.desktop: Add French translations from Jerome |
155 |
Warnier. I will accept more, but closing this bug. (Closes: #292506) |
156 |
* debian/README.Debian: Update the Emacs keybindings instructions. |
157 |
(Closes: #291691) |
158 |
* debian/mozilla-firefox.1: |
159 |
- Remove -splash from the manpage, it has never worked. (Closes: |
160 |
#287088) |
161 |
- Add units to -height and -width description. (Closes: #285142) |
162 |
|
163 |
-- Eric Dorland <eric@debian.org> Wed, 2 Feb 2005 01:42:53 -0500 |
164 |
|
165 |
mozilla-firefox (1.0+dfsg.1-3) experimental; urgency=low |
166 |
|
167 |
* debian/mozilla-firefox.desktop: Add %u to the exec line so that apps |
168 |
know it can handle URLs. (Closes: #290132) |
169 |
* debian/README.Debian: |
170 |
- Improve button reversal instructions. Thanks Christian Mayrhuber |
171 |
- Fix reference to ~/.firefox. |
172 |
* debian/rules: Enable static building. This will build firefox as one |
173 |
large binary (mostly) and should speed a few things up, especially |
174 |
program load time. I'd like to hear about any speedup (or slow down) |
175 |
you exprience. Porters, please build this for your arch to make sure |
176 |
this doesn't break anything. |
177 |
|
178 |
-- Eric Dorland <eric@debian.org> Thu, 20 Jan 2005 01:40:34 -0500 |
179 |
|
180 |
mozilla-firefox (1.0+dfsg.1-2ubuntu5) hoary; urgency=low |
181 |
|
182 |
* Fix build deps. |
183 |
|
184 |
-- Thom May <thom@ubuntu.com> Fri, 28 Jan 2005 11:14:40 +0000 |
185 |
|
186 |
mozilla-firefox (1.0+dfsg.1-2ubuntu4) hoary; urgency=low |
187 |
|
188 |
* Fix alternatives priority to 85 (Ubuntu #4801) |
189 |
* Use startup notification (Ubuntu: #4984) |
190 |
* Don't set LD_ASSUME_KERNEL for old java VMs, they won't run on Ubuntu |
191 |
anyway (Ubuntu: #5636) |
192 |
* Don't blow away users profile every run (Ubuntu: #3615) |
193 |
* Download to Desktop (Ubuntu: #1358) |
194 |
* Enable gnomestripe theme |
195 |
|
196 |
-- Thom May <thom@ubuntu.com> Mon, 24 Jan 2005 15:29:18 +0000 |
197 |
|
198 |
mozilla-firefox (1.0+dfsg.1-2ubuntu3) hoary; urgency=low |
199 |
|
200 |
* should fix the typeahead in epiphany-browser. |
201 |
* fixed the typeahead conflict with the find extension. |
202 |
* debian/rules: |
203 |
- added typeaheadfind to the extensions. |
204 |
|
205 |
-- Sebastien Bacher <seb128@canonical.com> Sun, 23 Jan 2005 15:37:40 +0100 |
206 |
|
207 |
mozilla-firefox (1.0+dfsg.1-2ubuntu2) hoary; urgency=low |
208 |
|
209 |
* The "nail that gets hammered down" release |
210 |
* Fixes for epiphany and other embedded users: |
211 |
mozilla: #256988, #277587, #97580, #270243, #276482, #238052 |
212 |
gnome: #157435 |
213 |
* Allow search engines to be added to a users profile (Ubuntu: #1855) |
214 |
* Handle warty's entertaining version number in preinst (Ubuntu: #3949) |
215 |
* "Bang, bang, bang" |
216 |
|
217 |
-- Thom May <thom@planetarytramp.net> Thu, 20 Jan 2005 11:30:24 +0000 |
218 |
|
219 |
mozilla-firefox (1.0+dfsg.1-2ubuntu1) hoary; urgency=low |
220 |
|
221 |
* Resynchronise with Debian. |
222 |
|
223 |
-- Scott James Remnant <scott@canonical.com> Tue, 11 Jan 2005 12:53:01 +0000 |
224 |
|
225 |
mozilla-firefox (1.0+dfsg.1-2) unstable; urgency=medium |
226 |
|
227 |
* debian/mozilla-firefox-gnome-support.postrm, |
228 |
debian/mozilla-firefox-dom-inspector.postrm: Don't die if |
229 |
update-mozilla-firefox-chrome dies. (Closes: #287355) |
230 |
|
231 |
-- Eric Dorland <eric@debian.org> Sun, 9 Jan 2005 23:51:10 -0500 |
232 |
|
233 |
mozilla-firefox (1.0+dfsg.1-1) unstable; urgency=low |
234 |
|
235 |
* Not a new upstream release. |
236 |
* other-licenses/branding/firefox, other-licenses/7zstub/firefox: Remove |
237 |
these from the .orig.tar.gz, since they are not DFSG-free. We're not |
238 |
using the files anyway, so out they go. (Not sure the 7zstub stuff is |
239 |
non-free, but it's Windows only so no harm) |
240 |
* debian/rules: |
241 |
- Remove explicit low-optimization on alpha, since Falk |
242 |
Hueffner claims it works. |
243 |
- Move entire defaults/profile directory into /etc/mozilla-firefox, |
244 |
rather than just the bookmarks.html. (Closes: #285538) |
245 |
* debian/mozilla-firefox.links: Link entire defaults/profile now. |
246 |
* debian/mozilla-firefox.preinst: Add upgrade code to remove old |
247 |
defaults/profile to make way for new symlink. |
248 |
* debian/mozilla-firefox.dirs: Just create etc/mozilla-firefox. |
249 |
|
250 |
-- Eric Dorland <eric@debian.org> Sun, 19 Dec 2004 01:31:44 -0500 |
251 |
|
252 |
mozilla-firefox (1.0-5) unstable; urgency=medium |
253 |
|
254 |
* Changes by Mike Hommey: |
255 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Make the |
256 |
extensions upgrade work again. (Closes: #282143) |
257 |
* debian/rules: Better DEB_BUILD_OPTIONS handling, better debugging |
258 |
build (DEB_BUILD_OPTIONS="nostrip debug") |
259 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in, |
260 |
toolkit/mozapps/extensions/content/extensions.js: Allow users to |
261 |
disable globally installed extensions. |
262 |
|
263 |
* Changes by Eric Dorland: |
264 |
* debian/rules: Remove explicit low-optimization on sparc. Apparently |
265 |
there was an issue for a number of arches that required lower |
266 |
optimization settings, but it is now resolved. So porters, please |
267 |
check -O2 on arm, alpha, powerpc and ia64 and let me know if it's |
268 |
safe. Thanks David S. Miller. (Closes: #284533) |
269 |
|
270 |
-- Eric Dorland <eric@debian.org> Tue, 7 Dec 2004 01:06:48 -0500 |
271 |
|
272 |
mozilla-firefox (1.0-4) unstable; urgency=medium |
273 |
|
274 |
* debian/control: Make mozilla-firefox-gnome-support and xprt-xprintorg |
275 |
Suggests, no Recommends after a look at policy. (Closes: #282432) |
276 |
* debian/README.Debian: |
277 |
- Refer to .mozilla/firefox, not .firefox. |
278 |
- Explain how to reenable emacs style keybindings. (Closes: #282321) |
279 |
|
280 |
-- Eric Dorland <eric@debian.org> Sat, 27 Nov 2004 20:40:10 -0500 |
281 |
|
282 |
mozilla-firefox (1.0-3) unstable; urgency=low |
283 |
|
284 |
* Changes by Mike Hommey |
285 |
* The "becoming more and more an iceweasel" release. |
286 |
* debian/firefox.js: |
287 |
+ Enable firefox's internal locale autodetection. |
288 |
+ Disable default browser question at startup. (Closes: #280752) |
289 |
* debian/mozilla-firefox-runner: Removed our locale autodetection. |
290 |
That means now locales installed in user profiles are automatically |
291 |
used, and that there is no need for /var/lib/mozilla-firefox/locales.d |
292 |
anymore. |
293 |
* debian/mozilla-firefox.dirs: Removed creation of |
294 |
/var/lib/mozilla-firefox/locales.d. |
295 |
* debian/rules: Removed creation of the locale file in |
296 |
/var/lib/mozilla-firefox/locales.d. |
297 |
* debian/presubj: Put some more recent information. |
298 |
* htmlparser/src/nsParser.cpp: Applied patch from bz#57717 so that empty |
299 |
html files don't get <html><body></body></html> when viewing source. |
300 |
* browser/base/content/aboutDialog.css: increase the User Agent element |
301 |
height as in bz#238137 (but up to MacOSX's height) to show the full User |
302 |
Agent string. |
303 |
* xpcom/io/nsAppDirectoryServiceDefs.h, |
304 |
xpcom/io/nsAppFileLocationProvider.cpp, |
305 |
xpfe/components/search/src/nsInternetSearchService.cpp: Applied patch from |
306 |
bz#123315 so that Internet search services in user profiles are supported. |
307 |
(Closes: #219053) |
308 |
* debian/mozilla-firefox-runner: |
309 |
+ Remove compatibility.ini only if it is older than |
310 |
/usr/lib/mozilla-firefox/components.ini. That way, we only rebuild it |
311 |
after an update-mozilla-firefox-chrome. |
312 |
+ Detect if we're being run through sudo without the -H option, in which |
313 |
case we force setting of $HOME. (Closes: #218156) |
314 |
* browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. |
315 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in: |
316 |
+ Removed some error messages that get there because firefox is trying to |
317 |
write in the /usr/lib/mozilla-firefox directory as a user. They are |
318 |
useless and lead users to think something is going wrong while it's the |
319 |
(stupid but) normal way firefox works. |
320 |
+ Avoid creation of directories when attempting to read files, that |
321 |
throwed uncaught exceptions breaking some stuff in several different |
322 |
ways when extensions don't follow the new scheme for extensions. |
323 |
+ Avoid copying stuff from |
324 |
/usr/lib/mozilla-firefox/defaults/profile/extensions/ to |
325 |
/usr/lib/mozilla-firefox/extensions/, that's the *very* old way of |
326 |
installing extensions, which, since the old scheme has been thrown away, |
327 |
won't work anyway, if any extension provides files out there. |
328 |
+ CheckForMismatches: Avoid to disable already disabled global extensions, |
329 |
and don't propose to upgrade the locked extensions. That fixes a |
330 |
never-ending loop occuring when running firefox for the first time in a |
331 |
user account, while some global extensions are expired. |
332 |
(Closes: #278722, #281537) |
333 |
* debian/mozilla-firefox.prerm, debian/mozilla-firefox.preinst: Moved |
334 |
removal of links to /usr/lib/mozilla-firefox/defaults/profile/extensions/ |
335 |
sitting in /usr/lib/mozilla-firefox/extensions/, if any remaining, from |
336 |
prerm to preinst. We remove them once and for all, they won't be created |
337 |
by us anymore. |
338 |
* debian/update-mozilla-firefox-chrome: |
339 |
+ Removed support for extensions in |
340 |
/usr/lib/mozilla-firefox/defaults/profile/extensions/. |
341 |
+ Removed some clean-up that had been introduced to help the Extensions |
342 |
Manager not to die, and which, actually, did not work out quite so well. |
343 |
Anyways, with the changes this time, the EM is supposed to support much |
344 |
more problems than ever before (as usual ;) ) so we don't need that |
345 |
anymore. |
346 |
+ Avoid stupid mv error messages when firefox-bin -register fails (which |
347 |
is not supposed to happen, but you're never too careful) |
348 |
* debian/update-mozilla-firefox-chrome, debian/mozilla-firefox.preinst: |
349 |
Move removal of some very old stuff to preinst, to do it once and for all |
350 |
instead of doing it every time we run update-mozilla-firefox-chrome. |
351 |
* netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Applied patch from |
352 |
bz#124561 to get a prompt for username/password in case anonymous login |
353 |
fails. |
354 |
* debian/mozilla-firefox-runner: |
355 |
+ Added check for more arguments so that the url in the command line get |
356 |
detected more accurately. |
357 |
+ When a file name is given on the command line, prepend "file://" and |
358 |
change spaces into %20. (Closes: #281800) |
359 |
|
360 |
* Changes by Eric Dorland |
361 |
* debian/mozilla-firefox.prerm: Patch from Philipp Weis to fix order of |
362 |
find arguments. (Closes: #280852) |
363 |
* debian/mozilla-firefox.desktop: Support new mime type handler in Gnome |
364 |
2.8. (Closes: #281274) (MH: I added some more myme-types) |
365 |
* debian/mozilla-firefox.postinst: Run update-desktop-database if it |
366 |
exists. |
367 |
* widget/src/gtk/nsWidget.cpp: We don't use gtk anymore, might as well |
368 |
revert these patches. Thanks Stephane Despret. |
369 |
|
370 |
-- Eric Dorland <eric@debian.org> Thu, 18 Nov 2004 22:16:28 -0500 |
371 |
|
372 |
mozilla-firefox (1.0-2ubuntu3) hoary; urgency=low |
373 |
|
374 |
* browser/components/prefwindow/content/pref-advanced.xul: Revert Ubuntu |
375 |
changes. Debian now disables application updates and locks packaged |
376 |
extensions, so commenting out the whole software update expander is |
377 |
unnecessary; also, our changes made the file invalid XML (closes: Ubuntu |
378 |
#3761). |
379 |
|
380 |
-- Colin Watson <cjwatson@canonical.com> Tue, 16 Nov 2004 19:27:55 +0000 |
381 |
|
382 |
mozilla-firefox (1.0-2ubuntu2) hoary; urgency=low |
383 |
|
384 |
* Resolve merge conflicts |
385 |
- debian/mozilla-firefox-runner: Debian commented out Xprint code, where |
386 |
we deleted it. Revert to their version |
387 |
- browser/app/profile/firefox.js: Debian set autoUpdateEnabled to |
388 |
"false" rather than commenting out a bunch of settings. Revert to their |
389 |
version |
390 |
- browser/app/profile/firefox.js: Update branded version number to 1.0 |
391 |
- Skip inapplicable changes |
392 |
- browser/app/profile/firefox.js: throbber changed |
393 |
- Manually apply some changes which weren't automatically merged due to |
394 |
EOL-at-EOF conditions |
395 |
- debian/mozilla-firefox.NEWS |
396 |
- debian/mozilla-firefox.dirs |
397 |
- Revert debian/rules changes, merge Debian changes and reapply (creating |
398 |
a trivial conflict rather than a big nasty one) |
399 |
|
400 |
-- Matt Zimmerman <mdz@canonical.com> Sun, 14 Nov 2004 10:52:01 -0800 |
401 |
|
402 |
mozilla-firefox (1.0-2ubuntu1) hoary; urgency=low |
403 |
|
404 |
* Resynchronise with Debian. |
405 |
|
406 |
-- Scott James Remnant <scott@canonical.com> Sat, 13 Nov 2004 21:38:27 +0000 |
407 |
|
408 |
mozilla-firefox (1.0-2) unstable; urgency=low |
409 |
|
410 |
* Changes by Mike Hommey |
411 |
* The "don't do too much on the same day, it's bad for health" release. |
412 |
* debian/firefox.js: Re-activated the extensions update service, and |
413 |
removed the update url. |
414 |
* browser/app/profile/firefox.js: Sync'ed with debian/firefox.js. |
415 |
* debian/mozilla-firefox-dom-inspector.preinst: Removed old inspector.js |
416 |
file. |
417 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in, |
418 |
toolkit/mozapps/extensions/content/extensions.js: Disabled possibility |
419 |
to update locked extensions and themes. Locked extensions being the |
420 |
ones installed by the packaging system, they should be updated through |
421 |
that. |
422 |
* toolkit/mozapps/update/src/nsUpdateService.js.in: Disabled application |
423 |
update functionnality. Firefox should be updated through the packaging |
424 |
system. |
425 |
* browser/components/prefwindow/content/pref-advanced.xul: Removed the |
426 |
preferences panel item to activate application update, since it is |
427 |
totally disabled. |
428 |
* debian/mozilla-firefox-runner: Remove compatibility.ini instead of |
429 |
compreg.dat. (Eric: This will cause a rebuild of the compreg.dat) |
430 |
|
431 |
* Changes by Eric Dorland: |
432 |
* debian/mozilla-firefox.NEWS: Fix typos. |
433 |
* README.Debian: |
434 |
- Add note about application update being completely disabled. |
435 |
- Fix path to XUL.mfsal |
436 |
|
437 |
-- Eric Dorland <eric@debian.org> Wed, 10 Nov 2004 22:56:22 -0500 |
438 |
|
439 |
mozilla-firefox (1.0-1) unstable; urgency=medium |
440 |
|
441 |
* New upstream release (Closes: #280449) |
442 |
|
443 |
* Changes by Mike Hommey: |
444 |
* netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch |
445 |
#164795 from bz#266835 + some tweaks as previously. This might lead to |
446 |
encoding problems with the password, but it is supposed to be ASCII |
447 |
anyway. |
448 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Reworked the |
449 |
previous patches so that the Extensions Manager shows extensions that |
450 |
have been disabled due to version mismatch, and added a workaround so |
451 |
that components registration works correctly. |
452 |
* debian/update-mozilla-firefox-chrome: Removed part that is useless due |
453 |
to last changes in the Extensions Manager. |
454 |
* Make the inspector a real extension again: |
455 |
- debian/inspector/00dom-inspector: File for |
456 |
/var/lib/mozilla-firefox/extensions.d. |
457 |
- debian/inspector/Uninstall: Uninstall file needed in extension |
458 |
directory. |
459 |
- debian/inspector/install.rdf: install.rdf taken from older versions, |
460 |
and adapted to newer versions, adding registered chrome. |
461 |
- debian/mozilla-firefox-dom-inspector.dirs: Removed. Everything will |
462 |
be created by dh_install. |
463 |
- debian/mozilla-firefox-dom-inspector.install: install |
464 |
debian/inspector.rdf and most inspector files in the right place in |
465 |
/usr/lib/mozilla-firefox/extensions/{641d8d09-7dda-4850-8228-ac0ab65e2ac9} |
466 |
and /var/lib/mozilla-firefox |
467 |
* Make the classic theme a real extension, even though it's still in |
468 |
the main package: |
469 |
- debian/theme/00classic: File for |
470 |
/var/lib/mozilla-firefox/extensions.d. |
471 |
- debian/theme/Uninstall: Uninstall file needed in extension |
472 |
directory. |
473 |
- debian/mozilla-firefox.install: Install all files in the right |
474 |
place in |
475 |
/usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} |
476 |
- debian/mozilla-firefox.dirs: Removed creation of |
477 |
/usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/chrome, |
478 |
it will be done by dh_install. |
479 |
- browser/app/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf.in: |
480 |
Added chrome to be registered. |
481 |
* Removed support for /var/lib/mozilla-firefox/chrome.d: |
482 |
- debian/mozilla-firefox.dirs: Removed creation of the directory. |
483 |
- debian/rules: Removed creation of files there, and put the |
484 |
installed-chrome.txt, excluding inspector and classic theme stuff, |
485 |
directly in /usr/lib/mozilla-firefox/chrome. |
486 |
- debian/update-mozilla-firefox-chrome: Removed all |
487 |
/var/lib/mozilla-firefox/chrome.d related stuff. |
488 |
- debian/mozilla-firefox.links: Removed installed-chrome.txt link. |
489 |
- toolkit/mozapps/extensions/src/nsExtensionManager.js.in: disable |
490 |
extensions that fail to install chrome. |
491 |
* debian/mozilla-firefox-runner: Remove user profile compreg.dat at |
492 |
launch time. |
493 |
* Moved some files in /var/lib/mozilla-firefox: |
494 |
- debian/mozilla-firefox.links: Add a symlink for Extensions.rdf |
495 |
and components.ini, from /usr to /var. |
496 |
- debian/mozilla-firefox.prerm: Don't remove files we don't |
497 |
provide and remove files at their new locations. |
498 |
- debian/mozilla-firefox.preinst: Remove |
499 |
/var/lib/mozilla-firefox/installed-chrome.txt. |
500 |
- debian/update-mozilla-firefox-chrome: Create links for |
501 |
Extensions.rdf and components.ini after register call, and remove |
502 |
components.ini before. |
503 |
* Clean-up in files generated by update-mozilla-firefox-chrome: |
504 |
- debian/mozilla-firefox.links: Put all the links generated by |
505 |
update-mozilla-firefox-chrome into the package. |
506 |
- debian/mozilla-firefox.prerm: Remove all /var files generated |
507 |
in the remove target, and changed the way we clean-up |
508 |
/var/lib/mozilla-firefox. |
509 |
* debian/mozilla-firefox.install: Removed chromelist.txt. |
510 |
* Add support for extensions preferences: |
511 |
- debian/update-mozilla-firefox-chrome: Handle |
512 |
/usr/lib/mozilla-firefox/defaults.ini file. |
513 |
- debian/mozilla-firefox.links: Add a symlink to /var for |
514 |
defaults.ini. |
515 |
- toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added |
516 |
defaults registration in -register command. |
517 |
- mozilla-firefox-dom-inspector.install: Move inspector.js into |
518 |
the appropriate extension specific directory. |
519 |
* Move preferences back into /usr: |
520 |
- debian/rules: Don't move the prefs into |
521 |
/etc/mozilla-firefox/pref, and put the vendor thing into /usr |
522 |
as well, and remove firefox-l10.js file. |
523 |
- debian/mozilla-firefox.preinst: remove old prefs in /etc and |
524 |
old symlink /usr/lib/mozilla-firefox/defaults/pref. |
525 |
- debian/firefox.js: new Debian default preferences file. |
526 |
- debian/mozilla-firefox.install: install firefox.js in |
527 |
/etc/mozilla-firefox/pref. |
528 |
- debian/mozilla-firefox.links: rename |
529 |
/usr/lib/mozilla-firefox/defaults/pref symlink to |
530 |
/usr/lib/mozilla-firefox/defaults/syspref. |
531 |
- toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Added |
532 |
a hook so that defaults/syspref gets registered in defaults.ini |
533 |
after all other extensions preferences. |
534 |
* debian/mozilla-firefox.preinst: only clean-up stuff if we are |
535 |
upgrading from a version known to still have the files. Added some |
536 |
more clean-up. |
537 |
* debian/mozilla-firefox.install: Removed useless init.d. |
538 |
* modules/libpref/src/init/all.js: Fixed all chrome URLs which refered to |
539 |
mozilla stuff. |
540 |
* debian/update-mozilla-firefox-chrome: Remove some more files before running |
541 |
firefox-bin -register. |
542 |
|
543 |
* Changes by Eric Dorland: |
544 |
* debian/mozilla-firefox.NEWS: Add warning about broken extension and |
545 |
locale packages with this release. |
546 |
* debian/mozilla-firefox-runner: Comment out warning about xprint, |
547 |
xprint isn't necessarily needed for printing since postscript was |
548 |
reenabled. (Closes: #279858) |
549 |
|
550 |
-- Eric Dorland <eric@debian.org> Wed, 10 Nov 2004 00:33:44 -0500 |
551 |
|
552 |
mozilla-firefox (0.99+1.0RC1-4ubuntu1) hoary; urgency=low |
553 |
|
554 |
* Resynchronise with Debian. |
555 |
|
556 |
-- Scott James Remnant <scott@canonical.com> Tue, 09 Nov 2004 19:09:41 +0000 |
557 |
|
558 |
mozilla-firefox (0.99+1.0RC1-4) unstable; urgency=low |
559 |
|
560 |
* debian/mozilla-firefox-runner: |
561 |
- Fixed to run properly with dash. (Closes: #279549). |
562 |
- Fixed indentation. |
563 |
- Added a basic debugger support. |
564 |
* debian/mozilla-firefox.1: Added information about debugger options. |
565 |
* debian/rules: Added a debug option to DEB_BUILD_OPTIONS. If you want to |
566 |
build a fully gdb'able package, use DEB_BUILD_OPTIONS="noopt nostrip |
567 |
debug" |
568 |
* netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply new patch from |
569 |
bz#266835. |
570 |
- Further change this patch to use Append rather than AppendLiteral, |
571 |
which doesn't seem to exist. (ED) |
572 |
|
573 |
-- Mike Hommey <mh@glandium.org> Thu, 4 Nov 2004 22:01:51 +0900 |
574 |
|
575 |
mozilla-firefox (0.99+1.0RC1-3ubuntu1) hoary; urgency=low |
576 |
|
577 |
* Fix AMD64 build. |
578 |
* Add -dev package (Ubuntu: #3199) |
579 |
* Use pango for rendering |
580 |
* Restore branding changes |
581 |
|
582 |
-- Thom May <thom@canonical.com> Thu, 4 Nov 2004 14:53:04 +0000 |
583 |
|
584 |
mozilla-firefox (0.99+1.0RC1-3) unstable; urgency=low |
585 |
|
586 |
* netwerk/protocol/ftp/src/nsFtpConnectionThread.cpp: Apply patch from |
587 |
bz#266835 to fix anonymous user password issue. (Closes: #226784) |
588 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in: (MH) |
589 |
- Fully apply previous patches, which for some reason left a spurious code |
590 |
line which made the extensions manager not like expired extensions |
591 |
anymore. (Closes: #279140) |
592 |
- Enhanced extensions manager so that the behaviour described in |
593 |
https://bugzilla.mozilla.org/show_bug.cgi?id=247846#c14 *actually* |
594 |
works. Extensions packagers are invited to move their chrome files |
595 |
accordingly, and remove /var/lib/mozilla-firefox/chrome.d files so that |
596 |
extensions chrome don't get registered when they are forced-disable due |
597 |
to version mismatch or some other reason. |
598 |
* debian/mozilla-firefox-runner: |
599 |
- Fix some thinkos. (MH) |
600 |
- Fix for loading files from the command line. (Closes: #279018) (MH) |
601 |
- Removed setting --display from $DISPLAY, let it get it from the |
602 |
environment, but pass --display if it is set. (Mike, |
603 |
I'm worried this will screw up some session |
604 |
managers, let me know what you think, we can revert it) |
605 |
- Removed FIREFOX_OPEN_IN stuff, so that firefox now obeys to "open |
606 |
links from other applications in" setting. (Closes: #279073) (MH) |
607 |
- Enhanced command line parsing, and drop empty arguments. |
608 |
(Closes: #279138) (MH) |
609 |
- No need for a find to look for XUL.mfasl, we already have its |
610 |
location from the path list taken from profiles.ini. (MH) |
611 |
- Better detection of dsp wrapper, when FIREFOX_DSP=auto. |
612 |
(Closes: #254611) (MH) |
613 |
- Correctly open local files even when firefox was not previously |
614 |
running. (Closes: #279018) (MH) |
615 |
* debian/mozilla-firefox.1: (MH) |
616 |
- Removed references to FIREFOX_OPEN_IN. |
617 |
- Added the -safe-mode option. |
618 |
* debian/mozilla-firefoxrc: Removed FIREFOX_OPEN_IN. (MH) |
619 |
|
620 |
-- Eric Dorland <eric@debian.org> Tue, 2 Nov 2004 00:46:28 -0500 |
621 |
|
622 |
mozilla-firefox (0.99+1.0RC1-2) unstable; urgency=medium |
623 |
|
624 |
* browser/app/profile/firefox.js: Disable browser update checking by |
625 |
default. |
626 |
* debian/mozilla-firefox-runner: Apply patch from Aurelien Jarno to fix |
627 |
variable name typo. (Closes: #278844) |
628 |
|
629 |
-- Eric Dorland <eric@debian.org> Fri, 29 Oct 2004 23:50:59 -0400 |
630 |
|
631 |
mozilla-firefox (0.99+1.0RC1-1) unstable; urgency=medium |
632 |
|
633 |
* New upstream release. |
634 |
* layout/xul/base/src/nsImageBoxFrame.{cpp,h}: Remove some conflicts |
635 |
from a previous patch. |
636 |
|
637 |
-- Eric Dorland <eric@debian.org> Thu, 28 Oct 2004 23:33:46 -0400 |
638 |
|
639 |
mozilla-firefox (0.10.1+1.0PR-5) unstable; urgency=low |
640 |
|
641 |
* debian/rules: (MH) |
642 |
- Use upstream extensions set. This will eventually get a |
643 |
correct help menu and fix some yet undiscovered UI issues. |
644 |
(Closes: #257946) |
645 |
- Added support for DEB_BUILD_OPTIONS=noopt. |
646 |
- Changed OPTFLAGS assignment. |
647 |
- Remove whitespace characters in version number for UserAgent |
648 |
branding. |
649 |
- Install mozilla-firefox-runner into /usr/lib/mozilla-firefox/firefox |
650 |
(Closes: #278477) |
651 |
* debian/mozilla-firefox.links: (MH) |
652 |
- Link /usr/bin/firefox and /usr/bin/mozilla-firefox to |
653 |
/usr/lib/mozilla-firefox/firefox. |
654 |
- Removed obsolete profile/US links. |
655 |
* debian/mozilla-firefox.dirs: Create /etc/mozilla/profile instead of |
656 |
/etc/mozilla/profile/US. (MH) |
657 |
* toolkit/xre/nsAppRunner.cpp: Fix crash in nsCmdLineService::Initialize |
658 |
when argc is changed by gtk (when treating gtk specific arguments) |
659 |
(MH) |
660 |
* debian/mozilla-firefox-runner (Changes by MH): |
661 |
- Removed workaround for bug #122990. First, xmlterm is not an activated |
662 |
extension, and secondly, if it still requires the TERM environment |
663 |
variable, it is the user's duty to set it to whatever he wants, not |
664 |
firefox's start script's. |
665 |
- Removed the ulimit -c setting. First, it is set by default to 0 on a |
666 |
newly installed debian, and secondly, it is user's choice to set it or |
667 |
not if he needs to get core files. |
668 |
- Removed unused shell variables. |
669 |
- Removed unsetting AUDIODEV variable. If it still crashes, it does belong |
670 |
to some other code than firefox. The AUDIODEV environment variable is |
671 |
used nowhere in firefox code: |
672 |
http://lxr.mozilla.org/aviarybranch/search?string=AUDIODEV |
673 |
Note that there is a "A crash which occurred when AUDIODEV doesn't |
674 |
contain "/" was fixed." log message in esound version 0.2.33 changes and |
675 |
that the bug may have belonged there. |
676 |
- Replaced ${HOME}/.mozilla-firefoxrc file by a ${HOME}/.mozilla/firefox/rc |
677 |
file. The former is still supported, though, but will bring a warning |
678 |
message. If both are present, only the latter is taken into account. |
679 |
- Changed the way system and user FIREFOX_DSP and FIREFOX_OPEN_IN |
680 |
variables are handled. First, use system values defined in |
681 |
/etc/mozilla-firefox/mozilla-firefoxrc, then override with |
682 |
${HOME}/.mozilla/firefox/rc and then with runtime environment variables. |
683 |
- Don't die when DISPLAY is not set. Display can be passed by --display |
684 |
option, and if not set and needed (some options don't require it), |
685 |
firefox will complain. |
686 |
- Some shell code simplifications by using some coreutils. |
687 |
- Added better command line parsing. |
688 |
- Added verbosity mode. |
689 |
- Removed setting of FONTCONFIG_PATH, /usr/lib/mozilla-firefox/res/Xft |
690 |
doesn't exist |
691 |
- Factorized localization detection. |
692 |
* debian/mozilla-firefox.1 (MH): |
693 |
- Made some clean-up between dashes and hyphens. |
694 |
- Removed obsolete options and added new ones. |
695 |
- Added informations about some debian specific stuff. |
696 |
* debian/update-mozilla-firefox-chrome: Changed the way we move files to |
697 |
/var/lib/mozilla-firefox. It will avoid creating files with a * in their |
698 |
name whenever registration failed. (MH) |
699 |
* debian/README.Debian: Update java instructions, tell them to just use |
700 |
java-package. |
701 |
|
702 |
-- Eric Dorland <eric@debian.org> Thu, 28 Oct 2004 21:30:40 -0400 |
703 |
|
704 |
mozilla-firefox (0.10.1+1.0PR-4) unstable; urgency=medium |
705 |
|
706 |
* This release mostly courtesy Mike Hommey. |
707 |
* layout/src/xul/base/src/nsImageBoxFrame.*: Backported patch from |
708 |
bz#255372. (Closes: #278046) |
709 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in: Force locking |
710 |
globally installed extensions, that will prevent extensions packages |
711 |
files to be unexpectedly removed by firefox. |
712 |
* debian/control: Add Mike Hommey as an Uploader. |
713 |
* debian/mozilla-firefox.install: Removed content-packs.jar which is |
714 |
mozilla-browser specific. |
715 |
* debian/mozilla-firefox.dirs: |
716 |
- Remove leading /'s. |
717 |
- Create |
718 |
/usr/lib/mozilla-firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} |
719 |
/chrome directory so that preview is shown in the Themes Manager. Yes, |
720 |
this is stupid, but it is the way firefox wants it (and it's not even |
721 |
created by make install, nor in the official binary tarball. It is |
722 |
only created at run time, but you know what ? under *nix, a normal |
723 |
user can't create that directory) (Closes: #276404) |
724 |
* debian/rules: Add a /etc/mozilla-firefox/pref/vendor.js file adding |
725 |
the debian package version to the UserAgent. (Closes: #268654) |
726 |
* debian/README.Debian: Update java instructions. I'd love some more |
727 |
definitive pointers. (Closes: #277983) |
728 |
|
729 |
-- Eric Dorland <eric@debian.org> Tue, 26 Oct 2004 00:11:48 -0400 |
730 |
|
731 |
mozilla-firefox (0.10.1+1.0PR-3) experimental; urgency=low |
732 |
|
733 |
* debian/control: |
734 |
- Rename the mozilla-firefox-gnome-vfs package |
735 |
mozilla-firefox-gnome-support since it does more than vfs. No |
736 |
need for Replaces or anything, since it never actually made it to |
737 |
the archive. |
738 |
- Remove strict build dependencies on g++ and binutils, since the |
739 |
fixed versions have hit sarge. |
740 |
- Remove hppa build depends, since gcc has also been fixed there. |
741 |
- Build-depend on libgnome2-dev and libgconf2-dev to build in more |
742 |
gnome support. |
743 |
- Have mozilla-firefox recommend it's gnome support. |
744 |
* debian/rules: |
745 |
- Remove hppa CC redefinitions. |
746 |
- Exclude *gnome* not just *gnomevfs*. |
747 |
- dh_install for gnome-support. |
748 |
* debian/mozilla-firefox-gnome-vfs.*: Rename to |
749 |
mozilla-firefox-gnome-support.*. |
750 |
* debian/mozilla-firefox-gnome-support.install: Grab *gnome*, not just |
751 |
*gnomevfs*. |
752 |
|
753 |
-- Eric Dorland <eric@debian.org> Thu, 21 Oct 2004 23:04:53 -0400 |
754 |
|
755 |
mozilla-firefox (0.10.1+1.0PR-2) experimental; urgency=low |
756 |
|
757 |
* debian/mozilla-firefox-runner: |
758 |
- Patch from Sam Morris to handle cleanup of directories with |
759 |
unusual names. |
760 |
- Fix return value check, patch from rgselk. (Closes: #269690) |
761 |
* debian/mozilla-firefox.1: List full path to firefox-bin. (Closes: |
762 |
#275563) |
763 |
* debian/rules: |
764 |
- --with-gssapi=/usr, enable Negotiate extension. (Closes: |
765 |
#274258) |
766 |
- Enable gnomevfs support, |
767 |
* debian/control: |
768 |
- Build-depend on libkrb5-dev. |
769 |
- Build-depend on libgnomevfs2-dev. |
770 |
- New gnomevfs package, based on work by Mike Hommey. (Closes: |
771 |
#262062) |
772 |
* debian/mozilla-firefox-gnome-vfs.post{inst,rm}: Added, same as |
773 |
corresponding files from mozilla-firefox-dom-inspector. |
774 |
* debian/mozilla-firefox-gnome-vfs.install: Install gnomevfs components. |
775 |
* browser/app/profile/firefox.js: Set |
776 |
network.negotiate-auth.trusted-uris to https:// to enable the |
777 |
negotiate extension over secure links. |
778 |
* config/rules.mk: Tweak patch from Thiemo Seufer to include svg_doc in |
779 |
non-optimization. (Closes: #273353) |
780 |
|
781 |
-- Eric Dorland <eric@debian.org> Sun, 17 Oct 2004 21:25:08 -0400 |
782 |
|
783 |
mozilla-firefox (0.10.1+1.0PR-1) experimental; urgency=critical |
784 |
|
785 |
* New upstream release, fixes security issue bz#259708. (Closes: |
786 |
#274493) |
787 |
|
788 |
-- Eric Dorland <eric@debian.org> Sun, 3 Oct 2004 03:32:43 -0400 |
789 |
|
790 |
mozilla-firefox (0.10+1.0PR-1) experimental; urgency=low |
791 |
|
792 |
* New upstream release. (Closes: #273700, #267003) |
793 |
* toolkit/mozapps/extensions/src/nsExtensionManager.js.in, |
794 |
netwerk/dns/src/nsIDNService.cpp, |
795 |
modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp, |
796 |
gfx/src/windows/nsImageWin.cpp, gfx/src/shared/gfxImageFrame.cpp, |
797 |
browser/app/profile/firefox.js: Resolve conflicts between my tree and |
798 |
upstream. |
799 |
* browser/app/Makefile.in: Fix $(DESTDIR) variable. |
800 |
* accessible/src/atk/nsAccessibleWrap.cpp, |
801 |
accessible/src/atk/nsAccessibleWrap.h: Apply patch from bugzilla for |
802 |
alpha fix that's more likely to make it into CVS. |
803 |
* debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to make |
804 |
update-mozilla-firefox-chrome more verbose on -v. |
805 |
* debian/rules: |
806 |
- Remove typeaheadfind for new find toolbar to work. (Mike Hommey) |
807 |
(Closes: #267170) |
808 |
- Changes to reflect new upstream files. |
809 |
* debian/control: |
810 |
- Remove build-depend on libcairo-dev. |
811 |
- Build depend on libxt-dev, seems to be necessary now. (Closes: |
812 |
#274311) |
813 |
* debian/docs: Removed, as browser/README.html disappeared. (Mike Hommey) |
814 |
* debian/mozilla-firefox.dirs: |
815 |
- Changes to reflect new upstream files. |
816 |
- Removed obsolete libnullplugin.so. |
817 |
* debian/mozilla-firefox.install: |
818 |
- Remove .jar's that aren't there anymore. |
819 |
- Removed obsolete libnullplugin.so. |
820 |
* debian/mozilla-firefox-dom-inspector.dirs, |
821 |
debian/mozilla-firefox-dom-inspector.install, debian/rules: Upstream |
822 |
doesn't consider DOM Inspector as a real extension, and do not provide |
823 |
the appropriate files to make it appear in the extensions |
824 |
manager. Removed all the extension related stuff in the package. (Mike |
825 |
Hommey) |
826 |
* other-licenses/libart_lgpl: Removed, was for SVG, no longer needed. |
827 |
* modules/plugin/samples/default/unix/*: Reverted debian specific |
828 |
changes, we don't want them in the diff since libnullplugin won't get |
829 |
installed. |
830 |
|
831 |
-- Eric Dorland <eric@debian.org> Fri, 1 Oct 2004 18:50:46 -0400 |
832 |
|
833 |
mozilla-firefox (0.9.3-6) unstable; urgency=high |
834 |
|
835 |
* gfx/src/gtk/fontEncoding.properties: Uncomment symbol fonts. (Closes: |
836 |
#272927) |
837 |
* debian/control: Build-depend on binutils (>= 2.15-4) but only on mips |
838 |
and mipsel. (Closes: #273353) |
839 |
* configure.in, configure, rules.mk: Patch from Thiemo Seufer to |
840 |
increase stability and performance on mips. (Closes: #272159) |
841 |
* debian/mozilla-firefox-runner: Detect failure of ping() |
842 |
better. (Closes: #267393) |
843 |
* layout/html/document/src/html.css: Testing fix for xprint problems. |
844 |
|
845 |
-- Eric Dorland <eric@debian.org> Mon, 27 Sep 2004 17:07:37 -0400 |
846 |
|
847 |
mozilla-firefox (0.9.3-5) unstable; urgency=high |
848 |
|
849 |
* debian/update-mozilla-firefox-chrome: Apply another patch form Mike |
850 |
Hommey to fix a few more issues in the script. (Closes: #271480) |
851 |
* Fixes to Secunia security bugs, ported from bugzilla: |
852 |
(Closes: #271888) |
853 |
- browser/base/content/browser.js, |
854 |
xpfe/communicator/resources/content/contentAreaDD.js: Fix for |
855 |
drag and drop exploit, bz#250862. |
856 |
- caps/include/nsScriptSecurityManager.h, caps/src/caps.properties, |
857 |
caps/src/nsScriptSecurityManager.cpp: Fix for enablePrivilege |
858 |
exploit, bz#253942. |
859 |
- gfx/src/shared/gfxImageFrame.cpp, gfx/src/windows/nsImageWin.cpp, |
860 |
modules/libpr0n/decoders/bmp/nsBMPDecoder.cpp: Fix for various |
861 |
overflows in the BMP code, bz#255067. |
862 |
- netwerk/dns/src/nsIDNService.cpp: Fix for bug in non-ASCII |
863 |
characters in domain names, bz#256316 |
864 |
- content/xbl/src/nsXBLPrototypeHandler.cpp: Clipboard injection |
865 |
fix, bz#257523. |
866 |
|
867 |
-- Eric Dorland <eric@debian.org> Thu, 16 Sep 2004 20:06:47 -0400 |
868 |
|
869 |
mozilla-firefox (0.9.3-4) unstable; urgency=high |
870 |
|
871 |
* Urgency high, go into testing dammit! |
872 |
* Apply patch from Mike Hommey as -3.1, which wasn't actually |
873 |
released. See below. (Closes: #271480) |
874 |
* debian/rules: Patch from Matthew Mueller to fix underquoted |
875 |
argument. (Closes: #271432) |
876 |
* debian/control: Build depend on binutils (>= 2.15-3) with fixed mips |
877 |
support. We still need a fixed gcc. |
878 |
|
879 |
-- Eric Dorland <eric@debian.org> Mon, 13 Sep 2004 20:41:27 -0400 |
880 |
|
881 |
mozilla-firefox (0.9.3-3.1) unstable; urgency=low |
882 |
|
883 |
* debian/rules: removed |
884 |
/usr/lib/mozilla-firefox/defaults/profile/extensions/installed-extensions.txt |
885 |
* debian/update-mozilla-firefox-chrome: |
886 |
+ Added a "verbose" mode. |
887 |
+ Added warning messages (only shown in verbose mode) about some |
888 |
extensions specific issues. This is intended to be useful for extensions |
889 |
maintainers. |
890 |
+ Check if the installed-extensions.txt file disappears, which tells if the |
891 |
mozilla-firefox -register went ok. |
892 |
* debian/update-mozilla-firefox-chrome.8: |
893 |
+ Fixed typos. |
894 |
+ Added reference to the -v option for the verbose mode. |
895 |
* debian/mozilla-firefox-runner: enhanced the profile directory check. It |
896 |
didn't work if the path indicated in the profiles.ini was not absolute. |
897 |
|
898 |
-- Mike Hommey <mh@glandium.org> Mon, 13 Sep 2004 20:31:21 +0900 |
899 |
|
900 |
mozilla-firefox (0.9.3-3) unstable; urgency=high |
901 |
|
902 |
* Acknowlege NMU from Mike Hommey. He did a fantastic job in porting a |
903 |
large amount of fixes from upstream CVS. I owe him several large |
904 |
beverages of his choice. (Closes: #259046, #259836) |
905 |
* Port all of Mike's changes to my local CVS. |
906 |
* debian/mozilla-firefox-runner: |
907 |
- Pass command-line arguments to get_locale so they can actually |
908 |
be used. (Closes: #240058) |
909 |
- Apply patch from Mike Hommey to use the profiles.ini to find the |
910 |
path to the profile to clean XUL.mfasl. (Closes: #267326) |
911 |
* debian/update-mozilla-firefox-chrome: Patch from Mike Hommey to fix |
912 |
some bashisms introduced by his NMU. |
913 |
* xpcom/reflect/xptcall/src/md/unix/Makefile.in, |
914 |
xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s, |
915 |
xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips.cpp, |
916 |
xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4, |
917 |
xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s: Patch from |
918 |
Thiemo Seufer to fix mips. This requires patches to gcc and binutils |
919 |
to work and fully close #270621. |
920 |
|
921 |
-- Eric Dorland <eric@debian.org> Wed, 8 Sep 2004 21:13:35 -0400 |
922 |
|
923 |
mozilla-firefox (0.9.3-2.2) unstable; urgency=high |
924 |
|
925 |
* The "never edit the diff file unless you're sure nothing will be |
926 |
missing" release. |
927 |
* debian/mozilla-firefox.prerm: restore the uncut version. |
928 |
* debian/control, debian/rules: Use gcc-3.2 to build on hppa, because of |
929 |
toolchain bug #254549. |
930 |
|
931 |
-- Mike Hommey <mh@glandium.org> Mon, 23 Aug 2004 19:45:54 +0900 |
932 |
|
933 |
mozilla-firefox (0.9.3-2.1) unstable; urgency=high |
934 |
|
935 |
* Non Maintainer Upload for RC Fixes. |
936 |
* Applied changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in |
937 |
and toolkit/mozapps/extensions/locale/extensions.properties to solve some |
938 |
issues with extensions management. (taken from CVS) |
939 |
* Applied other changes to |
940 |
toolkit/mozapps/extensions/src/nsExtensionManager.js.in, |
941 |
toolkit/mozapps/extensions/public/nsIExtensionManager.idl and |
942 |
mozilla/toolkit/xre/nsAppRunner.cpp to be able to use -register |
943 |
instead of -list-global-items for extensions/components/chrome |
944 |
registration through update-mozilla-firefox-chrome, thus not needing |
945 |
Xvfb anymore (-register option doesn't require a X server). |
946 |
(taken from CVS) |
947 |
* Applied some more changes to |
948 |
toolkit/mozapps/extensions/src/nsExtensionManager.js.in in order to |
949 |
avoir overlayinfo deletion during extensions registration process. |
950 |
(taken from CVS) |
951 |
* Final changes to toolkit/mozapps/extensions/src/nsExtensionManager.js.in |
952 |
to avoid registering out of date extensions so that firefox doesn't enter |
953 |
a loop at startup when no profile was found, and to only write in the |
954 |
installed-extensions-processed.txt file the list of actually installed |
955 |
extensions. Note that for packaged extensions installing their files |
956 |
directly into the chrome or components directories, that only means they |
957 |
won't appear in the Extensions Manager. They will still be available in |
958 |
the GUI. |
959 |
* All these fixes improve the Extensions Manager. Closes: #259046. |
960 |
* accessible/src/atk/nsAccessibleWrap.cpp, |
961 |
accessible/src/atk/nsAccessibleWrap.h: fixed 32-bit abuse of gobject |
962 |
(Steve Langasek). Closes: #259836. |
963 |
* debian/control: Removed dependency upon xvfb. |
964 |
* debian/update-mozilla-firefox-chrome: |
965 |
+ Removed use of Xvfb. |
966 |
+ Removed creation of a root default profile, but kept the fake home |
967 |
hack to avoid creation of a .mozilla directory in root's home. |
968 |
+ Changed extensions handling so that the overall process is cleaner. |
969 |
Extensions packages will have to move extensions {uid} directories |
970 |
to /usr/lib/mozilla-firefox/extensions/, while the current location |
971 |
is still supported for compatibility purpose (but is strongly not |
972 |
recommended). |
973 |
+ Removed use of regxpcom and regchrome, since what they both do is |
974 |
done by firefox-bin -register. |
975 |
* debian/rules: force GnomeVFS support to be disabled. (Josselin Mouette) |
976 |
* debian/README.Debian: |
977 |
+ Added a note about potential problems with packaged "old" extensions. |
978 |
+ Added a note about how to manually disable packaged extensions in user |
979 |
profile. |
980 |
+ Removed some old notes that don't apply anymore. |
981 |
* debian/mozilla-firefox-dom-inspector.install, debian/rules: Move |
982 |
extensions files to /usr/lib/mozilla-firefox/extensions/ instead of |
983 |
/usr/lib/mozilla-firefox/defaults/profile/extensions/. |
984 |
* debian/mozilla-firefox.links: Move installed-extensions.txt symlink |
985 |
from /usr/lib/mozilla-firefox/defaults/profile/extensions/ to |
986 |
/usr/lib/mozilla-firefox/extensions/. |
987 |
* debian/mozilla-firefox.prerm: More cleanup on removal of package. |
988 |
|
989 |
-- Mike Hommey <mh@glandium.org> Sun, 22 Aug 2004 21:43:47 +0900 |
990 |
|
991 |
mozilla-firefox (0.9.3-2) unstable; urgency=low |
992 |
|
993 |
* xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Comment out |
994 |
NARGSAVE, like I did in 0.9.1-7, should fully fix #262571. |
995 |
* debian/mozilla-firefox.preinst: Remove brace expansion |
996 |
bashism. (Closes: #264200) |
997 |
* debian/control: Depend on debianutils (>= 1.16) since we use mktemp |
998 |
-d. (Closes: #263958) |
999 |
* debian/mozilla-firefox-runner: Make -contentLocale COUNTRY, not |
1000 |
lang-COUNTRY. (Closes: #263940) |
1001 |
|
1002 |
-- Eric Dorland <eric@debian.org> Sun, 8 Aug 2004 23:41:02 -0400 |
1003 |
|
1004 |
mozilla-firefox (0.9.3-1) unstable; urgency=low |
1005 |
|
1006 |
* New upstream release. (Closes: #263193) |
1007 |
* debian/update-mozilla-firefox-chrome.8: Add manpage from Mark Suter |
1008 |
for update-mozilla-firefox-chrome.8. (Closes: #263149) |
1009 |
* debian/mozilla-firefox.manpages: Add update-mozilla-firefox-chrome.8. |
1010 |
* debian/control: Add build-deps on gcc-3.4 for amd64. (Closes: #262679) |
1011 |
|
1012 |
-- Eric Dorland <eric@debian.org> Wed, 4 Aug 2004 20:21:22 -0400 |
1013 |
|
1014 |
mozilla-firefox (0.9.1-7) unstable; urgency=low |
1015 |
|
1016 |
* debian/mozilla-firefox-runner: |
1017 |
- Reintroduce check for command-line arguments (I broke this last |
1018 |
release). (Closes: #262692, #262462, #262537, #262588, #262727) |
1019 |
- Allow overriding of -contentLocale and -UILocale. (Closes: |
1020 |
#240058) |
1021 |
* xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips.s: Comment out |
1022 |
NARGSAVE reassignment, it is defined elsewhere. (Closes: #262571) |
1023 |
* debian/rules: Force amd64 to build with gcc 3.4. (Closes: #262679) |
1024 |
|
1025 |
-- Eric Dorland <eric@debian.org> Mon, 2 Aug 2004 10:16:46 -0400 |
1026 |
|
1027 |
mozilla-firefox (0.9.1-6) unstable; urgency=low |
1028 |
|
1029 |
* widget/src/gtk2/keysym2ucs.c: Patch from Eugeniy Meshcheryakov to |
1030 |
allow mozilla firefox to enter a ghe with upturn. (Closes: #261543) |
1031 |
* debian/mozilla-firefox-runner: |
1032 |
- Remove some mail and composer cruft. |
1033 |
- Add warning if DISPLAY is not set. (Closes: #261465) |
1034 |
|
1035 |
-- Eric Dorland <eric@debian.org> Thu, 29 Jul 2004 22:49:59 -0400 |
1036 |
|
1037 |
mozilla-firefox (0.9.1-5) unstable; urgency=low |
1038 |
|
1039 |
* debian/control: Goodbye mozilla-firebird transition package. |
1040 |
* debian/mozilla-firefox-runner: Add -a firefox flag when running |
1041 |
firefox-bin. (Closes: #259237) |
1042 |
* debian/mozilla-firefox.desktop: Add GenericName field. |
1043 |
* debian/update-mozilla-firefox-chrome: Fix quoting problem with |
1044 |
{*}. (Closes: #257243) |
1045 |
* debian/rules: |
1046 |
- Re-enable postscript printing support, since the security |
1047 |
issues turned out to be bogus. (Closes: #257628) |
1048 |
- Disable SVG support, it's still too broken to be usable. |
1049 |
(Closes: #259544) |
1050 |
|
1051 |
-- Eric Dorland <eric@debian.org> Sun, 18 Jul 2004 20:09:14 -0400 |
1052 |
|
1053 |
mozilla-firefox (0.9.1-4) unstable; urgency=low |
1054 |
|
1055 |
* The "Let's try unstable" release. There are still issues, but there |
1056 |
are issues with 0.8 as well, so no more point in waiting. |
1057 |
* debian/update-mozilla-firefox-chrome: |
1058 |
- Copy over empty Extensions.rdf file on update. (Closes: #257243) |
1059 |
- Increase sleep to 15 seconds, hopefully this will work on most |
1060 |
people's machines. |
1061 |
* My apologies to Mike Hommey for mispelling his name in last release. |
1062 |
|
1063 |
-- Eric Dorland <eric@debian.org> Sun, 11 Jul 2004 23:51:24 -0400 |
1064 |
|
1065 |
mozilla-firefox (0.9.1-3) experimental; urgency=low |
1066 |
|
1067 |
* Ok, I was wrong, we're still in experimental. I think we need to fix a |
1068 |
few more issues before getting this in unstable, like #257258, and |
1069 |
make sure the hacky extensions mechanism is more bullet-proof. |
1070 |
* debian/rules: --disable-installer, since we don't use it. |
1071 |
* debian/update-mozilla-firefox-chrome: |
1072 |
- Wait 8 seconds instead of 5 for the hack, might help some |
1073 |
people reporting problems. |
1074 |
- Remove ${LIBDIR}/extensions/{*}. I may move that to |
1075 |
/var/lib/mozilla-firefox eventually, but let's leave it for now. |
1076 |
* debian/mozilla-firefox.png.uu: Make a nicer png icon, based on the |
1077 |
about box graphic. |
1078 |
* debian/mozilla-firefox.preinst: Remove old config files in |
1079 |
/etc/mozilla-firefox/pref. (Closes: #257711, 257557) |
1080 |
* browser/app/profile: firefox.js: Revert change to app.version, |
1081 |
apparently it breaks extensions. (Closes: #257941) |
1082 |
|
1083 |
-- Eric Dorland <eric@debian.org> Wed, 7 Jul 2004 21:26:55 -0400 |
1084 |
|
1085 |
mozilla-firefox (0.9.1-2) experimental; urgency=low |
1086 |
|
1087 |
* The "Mike Homey, lord of the bugs" release. Thanks to Mike for being a |
1088 |
huge help with bug triage. That's right, help with bugs and your name |
1089 |
could have a prestigious place in the changelog. |
1090 |
* I'd like my next release to be to unstable, so let me know about |
1091 |
profile transition bugs, etc. |
1092 |
* debian/control: Build-depend on libcairo1-dev. |
1093 |
* debian/rules: Enable svg support using cairo renderer. (Closes: |
1094 |
#215990) |
1095 |
* debian/mozilla-firefox-xremote-client: Add -a firefox switch to make |
1096 |
the remote client find firefox only. Thanks Jonathan Black. (Closes: |
1097 |
#256967) |
1098 |
* debian/mozilla-firefox.desktop: Make comment Gnome HIG |
1099 |
compliant. (Closes: #257592) |
1100 |
* browser/app/profile/firefox.js: |
1101 |
- app.version = 0.9.1. |
1102 |
- Disable app updates by default. We're debian, we handle updates. |
1103 |
* debian/update-mozilla-firefox-chrome: |
1104 |
- Remove installed-extensions-processed.txt before regenerating. |
1105 |
(Closes: #257243) |
1106 |
- Take some, but not all advice from Alexandru Fomin. Improve Xvfb |
1107 |
and extension registration hacks. |
1108 |
|
1109 |
-- Eric Dorland <eric@debian.org> Sun, 4 Jul 2004 16:58:17 -0400 |
1110 |
|
1111 |
mozilla-firefox (0.9.1-1) experimental; urgency=low |
1112 |
|
1113 |
* New upstream release. |
1114 |
* config/autoconf.mk.in: Alright, /usr/lib/firefox-0.9 was a bad idea, |
1115 |
use /usr/lib/mozilla-firefox. Change all the instances |
1116 |
/usr/lib/firefox-0.9 back to /usr/lib/mozilla-firefox. I feel |
1117 |
silly. (Closes: #256991) |
1118 |
* debian/mozilla-firefox-runner: Actually check for the existence of the |
1119 |
.mozilla/firefox directory before trying to clean it. |
1120 |
* debian/update-mozilla-firefox-runner: |
1121 |
- Call firefox-bin, not firefox you silly goose. |
1122 |
- Use mozilla-firefox tempfile, not mozilla-browser. |
1123 |
- The horrible hackiness continues: For my previous hack to work, |
1124 |
I need to preseed a profile directory in the home directory I |
1125 |
create. Now things should work. (Closes: #256812) |
1126 |
|
1127 |
-- Eric Dorland <eric@debian.org> Thu, 1 Jul 2004 17:16:29 -0400 |
1128 |
|
1129 |
mozilla-firefox (0.9-1) experimental; urgency=low |
1130 |
|
1131 |
* New upstream release. There may be regressions from 0.8. (Closes: |
1132 |
#254522) |
1133 |
* widget/src/gtk/nsGtkMozRemoteHelper.cpp, |
1134 |
widget/src/gtk2/nsGtkMozRemoteHelper.cpp, |
1135 |
widget/src/xremoteclient/XRemoteClient.cpp: Fix previously applied to |
1136 |
fix -remote behaviour undone. Mozilla now includes the program name in |
1137 |
the properties to distinguish between various Mozilla apps. |
1138 |
* xpcom/reflect/xptcall/src/md/unix/Makefile.in: remove extra endif. |
1139 |
* dom/public/idl/core/nsIDOMNSDocument.idl: Reintroduce referrer |
1140 |
attribute that got lost somehow. |
1141 |
* content/events/src/nsEventStateManager.cpp: Fix a strange broken |
1142 |
function call to GetContainer. |
1143 |
|
1144 |
* debian/rules: |
1145 |
- Follow upstream and --enable-single-profile and |
1146 |
--disable-profilesharing. |
1147 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1148 |
- --user-app-dir=.mozilla to jive with new location. |
1149 |
- Remove dom-inspector extension dir from the regular package. |
1150 |
* debian/control: Depend on xvfb for insane hack below. |
1151 |
* debian/mozilla-firefox.install: |
1152 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1153 |
- Remove ipc dir, mozipcd. |
1154 |
- Add init.d, greprefs dirs. |
1155 |
* debian/mozilla-firefox.dirs: |
1156 |
- Add /var/lib/mozilla-firefox/extensions{,.d} |
1157 |
* debian/mozilla-firefox-dom-inspector.dirs: Add |
1158 |
/var/lib/mozilla-firefox/extensions.d. |
1159 |
* debian/mozilla-firefox-dom-inspector.install: |
1160 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1161 |
- Install dom-inspector extension dir. |
1162 |
* debian/mozilla-firefox.links: |
1163 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1164 |
- Link /usr/lib/mozilla-firefox to /usr/lib/firefox-0.9. |
1165 |
- Link installed-extensions.txt to our place in |
1166 |
/var/lib/mozilla-firefox. |
1167 |
* debian/mozilla-firefox-runner: |
1168 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1169 |
- Fix xprintorg typo. (Closes: #255706) |
1170 |
- Search .mozilla/firefox for XUL.mfasl files. |
1171 |
* debian/mozilla-firefox-xremote-client: Replace |
1172 |
/usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1173 |
* debian/update-mozilla-firefox-chrome: |
1174 |
- Replace /usr/lib/mozilla-firefox with /usr/lib/firefox-0.9. |
1175 |
- Capture return values from reg* commands on error, stolen |
1176 |
from mozilla source. |
1177 |
- Remove returns from check_running. |
1178 |
- Pull in snippets from /var/lib/mozilla-firefox/extensions.d |
1179 |
to generate installed-extensions.txt for new extensions mechanism. |
1180 |
- An insane hack, but necessary because of upstream: Launch a Xvfb |
1181 |
to run firefox to generate the necessary extension metadata. I've |
1182 |
been told this will not be necessary in the next version. |
1183 |
|
1184 |
-- Eric Dorland <eric@debian.org> Mon, 28 Jun 2004 23:40:59 -0400 |
1185 |
|
1186 |
mozilla-firefox (0.8-12) unstable; urgency=low |
1187 |
|
1188 |
* The "Last Chance Before 0.9" release. |
1189 |
* debian/mozilla-firefox-runner: Fix unescaped \n, thanks Olly |
1190 |
Betts. (Closes: #252436) |
1191 |
* debian/update-mozilla-firefox-chrome: Watch out for empty |
1192 |
LD_LIBRARY_PATH. Thanks George Cristian Birzan. (Closes: #254142) |
1193 |
* debian/README.Debian: Restructure and update a bit. |
1194 |
* debian/presubj: Add bug information from README.Debian for reportbug. |
1195 |
* debian/mozilla-firefox.install: Install the presubj. |
1196 |
|
1197 |
-- Eric Dorland <eric@debian.org> Mon, 14 Jun 2004 19:39:27 -0400 |
1198 |
|
1199 |
mozilla-firefox (0.8-11) unstable; urgency=low |
1200 |
|
1201 |
* Apply amd64 fix from #249211. |
1202 |
* debian/README.Debian: Shamelessly stole the java plugin installation |
1203 |
instructions from the mozilla package. (Closes: #243513) |
1204 |
* nsCommonWidget.cpp, nsCommonWidget.h, nsWindow.cpp: Apply patch (with |
1205 |
some hand massaging) from upstream bugzilla bug #209342 to fix initial |
1206 |
window placement. (Closes: #235209, 241519) |
1207 |
* nsprpub/pr/src/misc/prnetdb.c: Apply patch from Miquel van Smoorenburg |
1208 |
to prevent unless reverse DNS lookups. (Closes: #251978) |
1209 |
* debian/mozilla-firefox-runner: Apply patch from Jasper Spaans to fix |
1210 |
remote xprint printing. (Closes: #252072) |
1211 |
|
1212 |
-- Eric Dorland <eric@debian.org> Tue, 1 Jun 2004 23:12:36 -0400 |
1213 |
|
1214 |
mozilla-firefox (0.8-10) unstable; urgency=low |
1215 |
|
1216 |
* debian/mozilla-firefox.install: Don't install uuencoded file. (Closes: |
1217 |
#251441) |
1218 |
* debian/mozilla-firefox-runner: unset AUDIODEV which can cause |
1219 |
crashes. Thanks Christopher Armstrong. (Closes: #236231) |
1220 |
* update-mozilla-firefox-chrome: Port security fix from #249613 to |
1221 |
handle insecure tempfile creation. |
1222 |
* debian/rules: Following the advice of #247585 I'm disabling postscript |
1223 |
printing. Perhaps this will alleviate some of the other printing |
1224 |
problems. |
1225 |
|
1226 |
-- Eric Dorland <eric@debian.org> Sun, 30 May 2004 01:47:52 -0400 |
1227 |
|
1228 |
mozilla-firefox (0.8-9) unstable; urgency=low |
1229 |
|
1230 |
* debian/control: |
1231 |
- Suggest latex-xft-fonts for MathML fonts. Thanks Michael |
1232 |
JasonSmith. (Closes: #216925) |
1233 |
- Build depend on libx11-dev & libxp-dev instead of xlibs-dev to |
1234 |
reflect new X packages. |
1235 |
* widget/src/gtk2/nsWindow.cpp: Apply patch from Peter Colberg to ignore |
1236 |
unused mouse buttons. (Closes: #244305) |
1237 |
* debian/README.Debian: Document the fact that the loopback interface |
1238 |
has to be up and unfiltered for things to work right. |
1239 |
|
1240 |
-- Eric Dorland <eric@debian.org> Wed, 5 May 2004 23:30:42 -0400 |
1241 |
|
1242 |
mozilla-firefox (0.8-8) unstable; urgency=low |
1243 |
|
1244 |
* security/nss/lib/freebl/unix_rand.c: Remove code that called netstat |
1245 |
to gain so entropy. It's pretty useless on a Linux system. Thanks |
1246 |
Wichert. (Closes: #241200) |
1247 |
* debian/README.Debian: Add note about changing the button order in the |
1248 |
dialog boxes. (Closes: #240261) |
1249 |
* debian/control: Add dummy package for mozilla-firebird to smooth |
1250 |
upgrades. (Closes: #235577) |
1251 |
|
1252 |
-- Eric Dorland <eric@debian.org> Sat, 3 Apr 2004 16:19:34 -0500 |
1253 |
|
1254 |
mozilla-firefox (0.8-7) unstable; urgency=low |
1255 |
|
1256 |
* debian/mozilla-firefox-runner: |
1257 |
- Cleanup XUL.mfasl whenever firefox is run with no |
1258 |
command-line. (Closes: #238717) |
1259 |
- Add patch from Laurent Buffler to add config to allow |
1260 |
new tabs to be opened instead of new windows. (Closes: #239323) |
1261 |
* debian/mozilla-firefoxrc: Put the new FIREFOX_OPEN_IN variable in |
1262 |
there and document it's use. |
1263 |
|
1264 |
-- Eric Dorland <eric@debian.org> Sat, 27 Mar 2004 17:21:51 -0500 |
1265 |
|
1266 |
mozilla-firefox (0.8-6) unstable; urgency=low |
1267 |
|
1268 |
* debian/control: Build-depend on g++-3.3 (>= 3.3.3-4) to work around |
1269 |
broken 3.3.3-3 release. (Closes: #238318, #238241, #238441, #238523, |
1270 |
#238534) |
1271 |
* debian/rules: Install new small-firefox icon. |
1272 |
* debian/mozilla-firefox{.png, .xpm, -small.xpm}: Use the new DFSG-free |
1273 |
icons, the old pretty ones are trademarked and not DSFG-free. I know, |
1274 |
it's stupid. Complain to the Mozilla Foundation, not me. (Closes: |
1275 |
#234869) |
1276 |
|
1277 |
-- Eric Dorland <eric@debian.org> Sun, 21 Mar 2004 22:09:16 -0500 |
1278 |
|
1279 |
mozilla-firefox (0.8-5) unstable; urgency=low |
1280 |
|
1281 |
* Rebuild with g++-3.3 3.3.3-2 to work around broken g++. (Closes: |
1282 |
#238318) |
1283 |
|
1284 |
-- Eric Dorland <eric@debian.org> Wed, 17 Mar 2004 21:38:58 -0500 |
1285 |
|
1286 |
mozilla-firefox (0.8-4) unstable; urgency=low |
1287 |
|
1288 |
* debian/README.Debian: |
1289 |
- Tell people not to remove their ~/.firefox directory. Just move it |
1290 |
out of the way. (Closes: #235594) |
1291 |
- Add notes about the sound dsp. (Closes: #236678) |
1292 |
* debian/mozilla-firefox-runner: |
1293 |
- Don't redirect stderr. (Closes: #236160) |
1294 |
- Add get_locale code from Aurelien Jarno (Closes: #235521) |
1295 |
- Fix dsp auto-detection code. (Closes: #236678) |
1296 |
* debian/rules: Add default locale file. |
1297 |
* debian/mozilla-firefox.dirs: Add locales dir. |
1298 |
|
1299 |
* browser/app/profile/all.js, |
1300 |
content/events/src/nsEventStateManager.cpp, |
1301 |
modules/libpref/src/init/all.js, widget/public/nsGUIEvent.h, |
1302 |
widget/src/gtk/nsWidget.cpp: Reapply extended mouse events patch from |
1303 |
Derek Upham. (Closes: #235385, #230876) |
1304 |
* browser/base/content/browser-sets.inc: Make ESC stop animations |
1305 |
again. (Closes: #235474) |
1306 |
|
1307 |
-- Eric Dorland <eric@debian.org> Tue, 16 Mar 2004 00:31:19 -0500 |
1308 |
|
1309 |
mozilla-firefox (0.8-3) unstable; urgency=low |
1310 |
|
1311 |
* debian/mozilla.firefox.menu: Change the case of |
1312 |
mozilla-Firefox. (Closes: #234982, #234755) |
1313 |
* debian/NEWS.Debian: Move to debian/mozilla-firefox.NEWS so that it |
1314 |
actually gets installed. (Closes: #234700) |
1315 |
* debian/update-mozilla-firefox-chrome: Setup dummy home directory to |
1316 |
capture silly .firefox directory. (Closes: #234855) |
1317 |
* debian/mozilla-firefox.png.uu, debian/mozilla-firefox.xpm: Use the |
1318 |
new, pretty mozilla-firefox icons. (Closes: #234869) |
1319 |
* debian/rules: Install the pretty icon in the right places. |
1320 |
|
1321 |
-- Eric Dorland <eric@debian.org> Thu, 26 Feb 2004 21:10:27 -0500 |
1322 |
|
1323 |
mozilla-firefox (0.8-2) unstable; urgency=low |
1324 |
|
1325 |
* The "what he taketh, he giveth back" release. |
1326 |
* debian/rules: |
1327 |
- Disable the wallet extension, this really closes #222447. |
1328 |
- Remove some more cruft left over from the patch system. |
1329 |
- Reinstall the dom-inspector. |
1330 |
* debian/control: Add the dom-inspector back, now that it is supported |
1331 |
upstream. |
1332 |
* debian/mozilla-firefox-dom-inspector.{install,dirs,postinst,postrm}: |
1333 |
Bring these files back. |
1334 |
* docshell/base/nsWebShell.cpp: Only do keyword lookup on when DNS |
1335 |
entries don't exist. (Closes: #233916, #218033, #211524) |
1336 |
|
1337 |
-- Eric Dorland <eric@debian.org> Mon, 23 Feb 2004 21:48:03 -0500 |
1338 |
|
1339 |
mozilla-firefox (0.8-1) unstable; urgency=low |
1340 |
|
1341 |
* The "Let's Change Our Name Every Other Day" release. |
1342 |
* New upstream release, mozilla-firebird has been renamed to |
1343 |
mozilla-firefox. Let's hope it lasts. (Closes: #231903, #222447) |
1344 |
* debian/mozilla-firebird.*: Renamed to debian/mozilla-firefox.*. |
1345 |
|
1346 |
* debian/README.Debian: Update for firefox, remove blurb about the |
1347 |
inspector. |
1348 |
* debian/NEWS.Debian: Explain how to move your configs over. I may make |
1349 |
this automatic if enough people complain, but I'm loathe to muck |
1350 |
around in pople's home directories. |
1351 |
|
1352 |
* debian/control: |
1353 |
- Rename the package. |
1354 |
- Tweak description to list Firefox's previous aliases. |
1355 |
- Remove conflicts on mozilla-firebird-dom-inspector. |
1356 |
|
1357 |
* debian/rules: |
1358 |
- s/firebird/firefox/g, s/MozillaFirebird/firebird/g. |
1359 |
- Comment out some old inspector code. |
1360 |
- Remove unused patch subsystem. |
1361 |
- Disable gtktest. We don't need no stinking tests. |
1362 |
- Remove disable plaintext editor line, not sure why it's there. |
1363 |
- Disable LDAP support. We don't use it. |
1364 |
- Remove executable bit on *.so files. |
1365 |
- Remove useless preference files. |
1366 |
- Exclude the inspector files. |
1367 |
- Don't remove installed-chrome, we don't install it anymore. |
1368 |
- user-app-dir = .firefox. (Closes: #212301) |
1369 |
- export MOZILLA_OFFICIAL for the build ID. (Closes: #231133) |
1370 |
|
1371 |
* debian/mozilla-firefox-runner: |
1372 |
- s/firebird/firefox/g. |
1373 |
- Remove composer and editor functions. |
1374 |
- Use .firefox directory. |
1375 |
|
1376 |
* debian/mozilla-firefox.install: |
1377 |
- s/firebird/firefox/g, s/MozillaFirebird/firefox/g. |
1378 |
- Don't install timebombgen. |
1379 |
- Install icons directory. |
1380 |
- Don't install installed-chrome.txt, we just remove it anyway. |
1381 |
|
1382 |
* debian/mozilla-firefox.desktop, debian/mozilla-firefox.dirs, |
1383 |
debian/mozilla-firefox.manpages, debian/mozilla-firefox.links, |
1384 |
debian/mozilla-firefox.menu, debian/mozilla-firefox.mime, |
1385 |
debian/mozilla-firefoxrc, debian/mozilla-firefox.postinst, |
1386 |
debian/mozilla-firefox.prerm, debian/update-mozilla-firefox-chrome, |
1387 |
debian/mozilla-firefox.1, debian/mozilla-firefox-xremote-client: |
1388 |
s/firebird/firefox/g, s/MozillaFirebird/firefox/g. |
1389 |
|
1390 |
* debian/mozilla-firefox.links: Link mozilla-firefox.1 to firefox.1. |
1391 |
|
1392 |
* debian/mozilla-firefox.preinst: Remove, at least with the rename I can |
1393 |
erase some of my previous blunders. |
1394 |
|
1395 |
* debian/mozilla-firefox.{png.uu,xpm}: Use the package icon. |
1396 |
|
1397 |
* browser/app/nsBrowserApp.cpp: Change package name to Firefox, so now |
1398 |
the ~/.firefox is used. (Closes: #196550) |
1399 |
|
1400 |
* browser/app/profile/all.js: Merge in autoscroll fixes. |
1401 |
* browser/base/content/browser-sets.inc: Merge in upstream stop button |
1402 |
fix. |
1403 |
* modules/plugin/samples/default/unix/nullplugin.c: Merge in removal of |
1404 |
commented code. |
1405 |
* nsprpub/pr/include/md/_linux.cfg, nsprpub/pr/include/md/_linux.h, |
1406 |
security/coreconf/Linux.mk: Merge in hppa build fixes from upstream. |
1407 |
* config/autoconf.mk.in: Install into /usr/lib/mozilla-firefox now. |
1408 |
* content/base/src/nsDocumentViewer.cpp: Remove redundant stop patch |
1409 |
since it has been merged upstream. |
1410 |
* content/events/src/nsEventStateManager.cpp, |
1411 |
modules/libpref/src/init/all.js, widget/src/gtk/nsWidget.cpp: Revert |
1412 |
back to upstream version. There was a patch here to add support for |
1413 |
extended mouse buttons, but I'm removing it since I don't trust that |
1414 |
it works in the new version correctly. Send me another patch if you |
1415 |
want this functionality back. |
1416 |
* toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Revert this |
1417 |
back to upstream, I'm not sure which patches I applied to this file, |
1418 |
likely something to try and fix the double password prompt. |
1419 |
* widget/src/xremoteclient/XRemoteClient.cpp, |
1420 |
widget/src/xremoteclient/XRemoteClient.h: Revert to upstream version, |
1421 |
I believe it does the right thing now, but the patch I used does not |
1422 |
apppear to have been used. Restore the properties to _FIREFOX_* |
1423 |
though. |
1424 |
* widget/src/gtk/nsGtkMozRemoteHelper.cpp, |
1425 |
widget/src/gtk2/nsGtkMozRemoteHelper.cpp: Change the _FIREBIRD_* to |
1426 |
_FIREFOX_* here as well. |
1427 |
* content/base/src/nsDocument.cpp: Comment out nsDocument::GetDomConfig, |
1428 |
needed to get things to compile. |
1429 |
|
1430 |
-- Eric Dorland <eric@debian.org> Sun, 15 Feb 2004 21:28:45 -0500 |
1431 |
|
1432 |
mozilla-firebird (0.7-7) unstable; urgency=low |
1433 |
|
1434 |
* debian/mozilla-firebird-runner: Open a new window when loading a |
1435 |
regular file. (Closes: #228853) |
1436 |
|
1437 |
-- Eric Dorland <eric@debian.org> Thu, 29 Jan 2004 22:12:30 -0500 |
1438 |
|
1439 |
mozilla-firebird (0.7-6) unstable; urgency=medium |
1440 |
|
1441 |
* The "Indian-giver-christmas" release. |
1442 |
* Urgency medium since we're closing some critical bugs that need to get |
1443 |
in before a freeze. |
1444 |
* Completely remove mozilla-firebird-dom-browser. No one stepped up to |
1445 |
help fix it's brokeness in 0.7 and I don't use it or particularly care |
1446 |
about it. So it is no more. If someone steps up to take responsibility |
1447 |
I might put it back, but otherwise it may RIP. (Closes: #222085) |
1448 |
* debian/mozilla-firebird-runner: Remove XUL.mfasl uncoditionally |
1449 |
now. There is a corner case where this file is corrupted on upgrade |
1450 |
when firebird was running. This is a total hack, and not an elegant |
1451 |
solution, but at least it fixes the problem. (Closes: #224779, |
1452 |
#224323) |
1453 |
* debian/control: Conflict against old mozilla-firebird-dom-inspector |
1454 |
since it doesn't work anymore. |
1455 |
|
1456 |
-- Eric Dorland <eric@debian.org> Thu, 25 Dec 2003 15:54:21 -0500 |
1457 |
|
1458 |
mozilla-firebird (0.7-5) unstable; urgency=low |
1459 |
|
1460 |
* browser/base/content/browser-sets.inc: Patch to make ESC stop actually |
1461 |
work. (Closes: #223382) |
1462 |
* debian/rules: Turn down optimizations on sparc. (Closes: #223760) |
1463 |
|
1464 |
-- Eric Dorland <eric@debian.org> Sun, 14 Dec 2003 23:01:59 -0500 |
1465 |
|
1466 |
mozilla-firebird (0.7-4) unstable; urgency=low |
1467 |
|
1468 |
* The "All of Takuo's hard work really pays off" release. |
1469 |
* toolkit/components/passwordmgr/base/nsPasswordManager.cpp: Patch from |
1470 |
upstream bugzilla (#220214) to fix double password prompt |
1471 |
problem. (Closes: #222696) |
1472 |
* xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips.s.m4: Stolen |
1473 |
patch from mozilla package to make mozilla-firebird build on |
1474 |
mips. (Closes: #222743) |
1475 |
* content/base/src/nsDocumentViewer.cpp: Port yet another patch to allow |
1476 |
the ESC key to stop animated gifs. (Closes: #223382) |
1477 |
|
1478 |
-- Eric Dorland <eric@debian.org> Mon, 8 Dec 2003 23:59:16 -0500 |
1479 |
|
1480 |
mozilla-firebird (0.7-3) unstable; urgency=low |
1481 |
|
1482 |
* debian/control: Add dependency on psmisc since we use fuser. Thanks |
1483 |
Daniel Schröter. |
1484 |
* widget/src/xremoteclient/XRemoteClient.{cpp,h}: Apply patch from |
1485 |
bugzilla to fix -remote behaviour on modern WMs. Thanks Nikolai |
1486 |
Prokoschenko. (Closes: #197632) |
1487 |
* nsprpub/pr/src/misc/prdtoa.c: Apply fix from mozilla package (#215067) |
1488 |
to fix building on arm. This is a partial fix to #222743. |
1489 |
* debian/patches: Remove these. Put everything in CVS. |
1490 |
|
1491 |
-- Eric Dorland <eric@debian.org> Fri, 5 Dec 2003 20:03:46 -0500 |
1492 |
|
1493 |
mozilla-firebird (0.7-2) unstable; urgency=low |
1494 |
|
1495 |
* Apply excellent patch from Alexander Sack <asac@jwsdot.com> to fix the |
1496 |
issues with mozilla running and firebird not starting. (Closes: |
1497 |
#216264) |
1498 |
* browser/app/profile/all.js: Set the default of "general.autoScroll" to |
1499 |
false because it annoyes me. (Closes: #221661) |
1500 |
|
1501 |
-- Eric Dorland <eric@debian.org> Wed, 19 Nov 2003 20:59:55 -0500 |
1502 |
|
1503 |
mozilla-firebird (0.7-1) unstable; urgency=low |
1504 |
|
1505 |
* New upstream release. (Closes: #216019) |
1506 |
* debian/patches/dom-inspector.diff: Remove, and apply directly into my |
1507 |
CVS. |
1508 |
* debian/patches/pref.diff: Removed, doesn't seem applicable anymore. |
1509 |
* debian/rules: export MOZ_FIREBIRD=1. |
1510 |
* debian/control: |
1511 |
- Change Chimera to Camino. (Closes: #220821) |
1512 |
- Fix typos in descriptions. (Closes: #218202) |
1513 |
- Add build-deps on m4. (Closes: #219681) |
1514 |
|
1515 |
-- Eric Dorland <eric@debian.org> Wed, 12 Nov 2003 23:01:35 -0500 |
1516 |
|
1517 |
mozilla-firebird (0.6.1-8) unstable; urgency=low |
1518 |
|
1519 |
* Apply patch to make forward and back buttons work on mice. (Closes: |
1520 |
#211606) |
1521 |
* debian/rules: Use -O optimization on alpha, so it will build |
1522 |
again. (Closes: #213603) |
1523 |
|
1524 |
-- Eric Dorland <eric@debian.org> Fri, 3 Oct 2003 00:07:44 -0400 |
1525 |
|
1526 |
mozilla-firebird (0.6.1-7) unstable; urgency=low |
1527 |
|
1528 |
* Rebuild with the latest and greatest from unstable. This seems to fix |
1529 |
the problems with bookmarks people were having, at least for me. No |
1530 |
idea why. Please reopen if this doesn't fix it for you. (Closes: |
1531 |
#209339, #211706, #211286, #211146, #212011) |
1532 |
|
1533 |
-- Eric Dorland <eric@debian.org> Mon, 22 Sep 2003 00:00:08 -0400 |
1534 |
|
1535 |
mozilla-firebird (0.6.1-6) unstable; urgency=low |
1536 |
|
1537 |
* Patch from Eric Wong <normalperson@yhbt.net> to make plugin requests |
1538 |
less annoying. (Closes: #196609) |
1539 |
* debian/rules: Stop building libart. |
1540 |
* debian/mozilla-firebird.links: Fix path to bookmarks file. (Partial |
1541 |
fix to #211286) |
1542 |
|
1543 |
-- Eric Dorland <eric@debian.org> Wed, 17 Sep 2003 20:22:56 -0400 |
1544 |
|
1545 |
mozilla-firebird (0.6.1-5) unstable; urgency=low |
1546 |
|
1547 |
* The "sorry Chris Gray" release. |
1548 |
* debian/rules: disable SVG. This was causing drag and drop to lock up |
1549 |
X and possibly fixes #208630. (Closes: #209371) |
1550 |
* debian/mozilla-firebird-runner: Remove XUL.mfasl if we have upgraded, |
1551 |
since it can cause problems. (Closes: #200073, #202130, #207351) |
1552 |
|
1553 |
-- Eric Dorland <eric@debian.org> Sat, 13 Sep 2003 20:15:37 -0400 |
1554 |
|
1555 |
mozilla-firebird (0.6.1-4) unstable; urgency=low |
1556 |
|
1557 |
* The "pleasing Chris Gray" release. |
1558 |
* other-licenses/libart_gpl: Add this library for svg. |
1559 |
* debian/rules: |
1560 |
- Enable svg. |
1561 |
- Move bookmarks.html file into /etc. (Closes: #207398) |
1562 |
* debian/mozilla-firebird.links: Add links back to files moved to /etc. |
1563 |
* security/coreconf/Linux2.6.mk: Add this as a copy of Linux2.5.mk to |
1564 |
get mozilla-firebird to build on 2.6. (Closes: #207821) |
1565 |
|
1566 |
-- Eric Dorland <eric@debian.org> Sun, 31 Aug 2003 04:40:30 -0400 |
1567 |
|
1568 |
mozilla-firebird (0.6.1-3) unstable; urgency=low |
1569 |
|
1570 |
* debian/mozilla-firebird.prerm: Remove mozilla alternative on |
1571 |
remove. (Closes: #205310) |
1572 |
* debian/debsearch.{gif.uu,src}: Debian search plugin graciously |
1573 |
contributed by Fergus McKenzie-Kay <Linux@NerdIT.com>. |
1574 |
* debian/rules: |
1575 |
- uudecode and clean up debsearch.gif.uu. |
1576 |
- Steal platform specific optimization code from mozilla |
1577 |
package. Thanks Brian Nelson. (Closes: #206309) |
1578 |
* debian/mozilla-firebird.install: Install the above files. |
1579 |
* debian/control: Update Standards-Version to 3.6.1. |
1580 |
|
1581 |
-- Eric Dorland <eric@debian.org> Sun, 24 Aug 2003 19:09:11 -0400 |
1582 |
|
1583 |
mozilla-firebird (0.6.1-2) unstable; urgency=low |
1584 |
|
1585 |
* The "Stop Pestering Me Already!" release. |
1586 |
* debian/control: Only recommend xprt-xprintorg, don't require |
1587 |
it. (Closes: #204176) |
1588 |
|
1589 |
-- Eric Dorland <eric@debian.org> Sun, 10 Aug 2003 20:00:11 -0400 |
1590 |
|
1591 |
mozilla-firebird (0.6.1-1) unstable; urgency=low |
1592 |
|
1593 |
* New upstream release. (Closes: #203518, #201203) |
1594 |
* debian/control: |
1595 |
- Standards-Version to 3.6.0. |
1596 |
- Don't provide www-browser anymore. (Closes: #201035) |
1597 |
- Depend on xprt-xprintorg so printing will work. (Closes: #202418) |
1598 |
* debian/mozilla-firebird.preinst: Remove www-browser alternative. |
1599 |
* debian/mozilla-firebird.postinst: Don't install www-browser alternative. |
1600 |
* debian/mozilla-firebird.prerm: Don't remove www-browser alternative |
1601 |
anymore. |
1602 |
* debian/README.Debian: Added note about configuration breaking on |
1603 |
upgrade. (Closes: #202130) |
1604 |
* debian/patches/classic.diff: Removed. Not sure what it's point was. |
1605 |
* debian/rules: Add --disable-pedantic to the configure options. |
1606 |
|
1607 |
-- Eric Dorland <eric@debian.org> Sun, 3 Aug 2003 14:58:12 -0400 |
1608 |
|
1609 |
mozilla-firebird (0.6-8) unstable; urgency=low |
1610 |
|
1611 |
* debian/patches/alpha-build-fix.diff: Steal patch from mozilla to allow |
1612 |
building on alpha. (Closes: #198638) |
1613 |
* debian/patches/hppa-build-fix.diff: Steal patch from mozilla to allow |
1614 |
building on hppa, clean it up so it applies cleanly. (Closes: #199068) |
1615 |
* debian/mozilla-firebird.png.uu: Added uuencoded nice png icon. |
1616 |
* debian/rules: Add code to decode and clean up the new icon file. |
1617 |
* debian/mozilla-firebird.install: Install new icon. |
1618 |
* debian/mozilla-firebird.desktop: Use the new icon. |
1619 |
|
1620 |
-- Eric Dorland <eric@debian.org> Fri, 27 Jun 2003 23:21:56 -0400 |
1621 |
|
1622 |
mozilla-firebird (0.6-7) unstable; urgency=low |
1623 |
|
1624 |
* debian/mozilla-firebird.1: Stole the mozilla manpage for my own |
1625 |
nefarious purposes. (Closes: #196638) |
1626 |
* debian/mozilla-firebird.postrm: Add slave links to the |
1627 |
mozilla-firebird manpage. (Closes: #197145) |
1628 |
* debian/mozilla-firebird-xremote-client: Set up the environment |
1629 |
properly so it returns correct information. (Closes: #197632) |
1630 |
* debian/mozilla-firebird.xpm: Added icon from |
1631 |
http://iconpacks.mozdev.org/phoenix/iconshots/flame48true.png to have |
1632 |
a nice menu icon. (Closes: #197565) |
1633 |
* Updated the README.Debian with some helpful bug reporting tips. |
1634 |
* debian/rules: Replaced dh_installmanpages with dh_installman. |
1635 |
|
1636 |
-- Eric Dorland <eric@debian.org> Sun, 22 Jun 2003 15:15:37 -0400 |
1637 |
|
1638 |
mozilla-firebird (0.6-6) unstable; urgency=low |
1639 |
|
1640 |
* debian/mozilla-firebird.postinst: Add priority 0 alternative on |
1641 |
mozilla. (Closes: #196444) |
1642 |
* debian/control: Add build-depends on libxrender-dev, libmng-dev, |
1643 |
libpng12-dev, libjpeg62-dev. |
1644 |
* debian/rules: |
1645 |
- Build with system jpeg, mng and png libs. |
1646 |
- Exclude inspector files from mozilla-firebird. |
1647 |
(Closes: #196432, #196509) |
1648 |
|
1649 |
-- Eric Dorland <eric@debian.org> Sat, 7 Jun 2003 15:19:23 -0400 |
1650 |
|
1651 |
mozilla-firebird (0.6-5) unstable; urgency=low |
1652 |
|
1653 |
* The "Mike Hommey is my homey" release. |
1654 |
* Thanks to Mike Hommey <mh@glandium.org> for his excellent work on this |
1655 |
version (it's 99% his), which I've shamelessly stolen. |
1656 |
* Added a README.Debian file. |
1657 |
* Added a separate mozilla-firebird-dom-inspector package. |
1658 |
* debian/patches/dom-inspector.diff: |
1659 |
- add DOM Inspector to Tools menu. (note: DOM Inspector is still |
1660 |
not very well integrated with Firebird) |
1661 |
- remove modern skin references. |
1662 |
* debian/patches/xpinstall.diff: remove unneeded chrome registrations |
1663 |
from xpinstall/packager/unix/browser.jst. |
1664 |
* debian/patches/classic.diff: remove |
1665 |
themes/classic/global/win/preview.gif from jar file and modify |
1666 |
preview image reference in rdf file to Preview.png. |
1667 |
* debian/patches/pref.diff: remove preview image constraints in |
1668 |
browser/components/prefwindow/skin/pref.css file to avoid deformation |
1669 |
of preview image in classic theme. |
1670 |
* debian/mozilla-firebird.preinst: added #DEBHELPER#. |
1671 |
* debian/mozilla-firebird.install: |
1672 |
- Don't install the modern.jar and embed-sample.jar files. |
1673 |
- Remove files related to dom-inspector. |
1674 |
* debian/rules: |
1675 |
- enabling xinerama support. |
1676 |
- disabling build of chatzilla and venkman. |
1677 |
- moved /var/lib/mozilla-firebird/chrome.d/99default to |
1678 |
/var/lib/mozilla-firebird/chrome.d/00all |
1679 |
- remove references to embed-sample.jar in |
1680 |
/var/lib/mozilla-firebird/chrome.d/00all |
1681 |
- Add some comments. |
1682 |
- Change == to =, for more strict /bin/sh's. |
1683 |
* debian/control: Build-Depend on libidl-dev (>= 0.8.0) because the |
1684 |
configure script requires at least this version. |
1685 |
* debian/copyright: Make this a real debian copyright file. |
1686 |
|
1687 |
-- Eric Dorland <eric@debian.org> Thu, 5 Jun 2003 01:00:32 -0400 |
1688 |
|
1689 |
mozilla-firebird (0.6-4) unstable; urgency=low |
1690 |
|
1691 |
* debian/rules: Change -O2 to -O for building on powerpc. |
1692 |
* debian/mozilla-firebird.preinst: Delete |
1693 |
/usr/lib/mozilla-firebird/defaults/pref on upgrade to facilitate |
1694 |
transition to prefs in /etc. Thanks to all who reported this. |
1695 |
|
1696 |
-- Eric Dorland <eric@debian.org> Tue, 27 May 2003 21:45:06 -0400 |
1697 |
|
1698 |
mozilla-firebird (0.6-3) unstable; urgency=low |
1699 |
|
1700 |
* First attempt at a debian upload. (Closes: #163270) |
1701 |
* debian/rules: |
1702 |
+ Small fix to Mike Hommey's chrome patch. |
1703 |
+ Suggestion from Bernhard R. Link to install |
1704 |
/usr/lib/mozilla-firebird/defaults/pref to |
1705 |
/etc/mozilla-firebird/pref |
1706 |
+ Add dh_installmime call. |
1707 |
* debian/mozilla-firebird.mime: Install mime type handlers for firebird. |
1708 |
* debian/mozilla-firebird.links: Link |
1709 |
/usr/lib/mozilla-firebird/defaults/pref to /etc/mozilla-firebird/pref |
1710 |
* debian/mozilla-firebird.install: Don't install the inspector.jar. |
1711 |
|
1712 |
-- Eric Dorland <eric@debian.org> Mon, 26 May 2003 00:28:40 -0400 |
1713 |
|
1714 |
mozilla-firebird (0.6-2) unstable; urgency=low |
1715 |
|
1716 |
* debian/rules: |
1717 |
+ Add --with-user-appdir=.mozilla-firebird, since it still |
1718 |
defaults to .phoenix. |
1719 |
+ Don't use the ${prefix} variable, use /usr, since ${prefix} |
1720 |
doesn't seem to work. |
1721 |
+ Use --without-system-nspr. |
1722 |
* debian/mozilla-firebird.install: |
1723 |
+ Be picky about what chrome files we install, since there's |
1724 |
quite a few we don't need, and a bunch of empty dirs. |
1725 |
* Excellent patch from Mike Hommey <mh@glandium.org> to add a |
1726 |
update-mozilla-firebird-chrome script. |
1727 |
|
1728 |
-- Eric Dorland <eric@debian.org> Sat, 24 May 2003 13:00:44 -0400 |
1729 |
|
1730 |
mozilla-firebird (0.6-1) unstable; urgency=low |
1731 |
|
1732 |
* New upstream release. |
1733 |
* Renamed to mozilla-firebird. |
1734 |
* Changed phoenix to mozilla-firebird where appropriate. |
1735 |
* debian/mozilla-firebird.links: Add link mozilla-firebird to |
1736 |
MozillaFirebird. |
1737 |
* debian/control: |
1738 |
+ Standars-Version to 3.5.10.0. |
1739 |
+ Build-depend on gtk2 libs now. |
1740 |
+ Build-depend on libidl-dev. |
1741 |
+ Add Provides x-www-browser. |
1742 |
* debian/rules: |
1743 |
+ Enable building with the gtk2 libs. |
1744 |
+ Make mozilla-firebird-xremote-client executable in install target. |
1745 |
* debian/mozilla-firebird.desktop: Added gnome menu entry. |
1746 |
* debian/mozilla-firebird.{prerm,postinst}: Add alternatives to |
1747 |
www-browser and x-www-browser. |
1748 |
|
1749 |
-- Eric Dorland <eric@debian.org> Mon, 19 May 2003 20:43:39 -0400 |
1750 |
|
1751 |
phoenix (0.5-4) unstable; urgency=low |
1752 |
|
1753 |
* debian/control: Depend on fontconfig. |
1754 |
* debian/rules: Add source-tarball-from-cvs to build a orig tarball from |
1755 |
a checked out cvs tree. Now I can provide source package. And there |
1756 |
was much rejoicing. |
1757 |
|
1758 |
-- Eric Dorland <eric@debian.org> Fri, 17 Jan 2003 21:06:47 -0500 |
1759 |
|
1760 |
phoenix (0.5-3) unstable; urgency=low |
1761 |
|
1762 |
* debian/phoenix-xremote-client: Added to send remote commands to |
1763 |
phoenix. Just a wrapper that calls phoenix-bin -remote. |
1764 |
* debian/phoenix-runner: |
1765 |
+ Use phoenix-xremote-client. |
1766 |
+ Replace MOZILLA_DSP with PHOENIX_DSP. |
1767 |
* debian/phoenixrc: phoenix-runner uses this file to determine what dsp |
1768 |
to start. |
1769 |
* debian/phoenix.install: |
1770 |
+ Install phoenix-xremote-client, and don't install |
1771 |
mozilla-xremote-client. |
1772 |
+ Install phoenixrc. |
1773 |
|
1774 |
-- Eric Dorland <eric@debian.org> Mon, 23 Dec 2002 02:52:21 -0500 |
1775 |
|
1776 |
phoenix (0.5-2) unstable; urgency=low |
1777 |
|
1778 |
* debian/control: |
1779 |
+ Add Provides: www-browser. |
1780 |
+ Build-depend on libxft2-dev, libnspr-dev. |
1781 |
* debian/rules: |
1782 |
+ Use xft and the system nspr. |
1783 |
+ Install phoenix-runner. |
1784 |
* debian/phoenix-runner: Stolen from the mozilla package to run phoenix. |
1785 |
|
1786 |
-- Eric Dorland <eric@debian.org> Sat, 21 Dec 2002 02:03:11 -0500 |
1787 |
|
1788 |
phoenix (0.5-1) unstable; urgency=low |
1789 |
|
1790 |
* New upstream release. |
1791 |
* debian/phoenix.install: Fix paths to phoenix libs. |
1792 |
* debian/control: |
1793 |
+ Standards-Version to 3.5.8 |
1794 |
+ Improve build-deps. |
1795 |
* debian/rules: |
1796 |
+ Have configure options here, no more .mozconfig. |
1797 |
+ Steal some patch code from Colin. |
1798 |
* debian/patches/mozappdir.diff: Change the mozappdir. |
1799 |
|
1800 |
-- Eric Dorland <eric@debian.org> Mon, 9 Dec 2002 02:43:13 -0500 |
1801 |
|
1802 |
phoenix (0.4-3) unstable; urgency=low |
1803 |
|
1804 |
* debian/phoenix.menu: Add menu entry. |
1805 |
* Rebuild to fix libstdc++ dependency. |
1806 |
* .mozonfig: Disable more tests. |
1807 |
|
1808 |
-- Eric Dorland <eric@debian.org> Wed, 20 Nov 2002 19:13:18 -0500 |
1809 |
|
1810 |
phoenix (0.4-2) unstable; urgency=low |
1811 |
|
1812 |
* debian/control: |
1813 |
+ Add build-depends. |
1814 |
+ Fix section and description. |
1815 |
* .mozconfig: |
1816 |
+ Use system zlib. |
1817 |
|
1818 |
-- Eric Dorland <eric@debian.org> Wed, 13 Nov 2002 19:03:52 -0500 |
1819 |
|
1820 |
phoenix (0.4-1) unstable; urgency=low |
1821 |
|
1822 |
* Initial release. |
1823 |
|
1824 |
-- Eric Dorland <eric@debian.org> Mon, 11 Nov 2002 23:09:41 -0500 |
|
|
1825 |
++ configure.in |
Lines 92-97
Link Here
|
92 |
MAKE_VERSION=3.78 |
92 |
MAKE_VERSION=3.78 |
93 |
WINDRES_VERSION=2.14.90 |
93 |
WINDRES_VERSION=2.14.90 |
94 |
W32API_VERSION=2.4 |
94 |
W32API_VERSION=2.4 |
|
|
95 |
GNOMEUI_VERSION=2.0.6 |
95 |
GNOMEVFS_VERSION=2.0 |
96 |
GNOMEVFS_VERSION=2.0 |
96 |
GCONF_VERSION=1.2.1 |
97 |
GCONF_VERSION=1.2.1 |
97 |
LIBGNOME_VERSION=2.0 |
98 |
LIBGNOME_VERSION=2.0 |
Lines 1112-1119
Link Here
|
1112 |
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1 |
1113 |
MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1 |
1113 |
;; |
1114 |
;; |
1114 |
mips*) |
1115 |
mips*) |
1115 |
CFLAGS="$CFLAGS -Wa,-xgot" |
1116 |
MOZ_DEBUG_FLAGS="-g" # We want inlining |
1116 |
CXXFLAGS="$CXXFLAGS -Wa,-xgot" |
|
|
1117 |
;; |
1117 |
;; |
1118 |
esac |
1118 |
esac |
1119 |
;; |
1119 |
;; |
Lines 3461-3466
Link Here
|
3461 |
MOZ_ENABLE_XFT=1, |
3461 |
MOZ_ENABLE_XFT=1, |
3462 |
MOZ_ENABLE_XFT= ) |
3462 |
MOZ_ENABLE_XFT= ) |
3463 |
|
3463 |
|
|
|
3464 |
if test "$MOZ_ENABLE_XFT" && test "$MOZ_ENABLE_FREETYPE2"; then |
3465 |
AC_MSG_ERROR([Cannot enable XFT and FREETYPE2 at the same time.]) |
3466 |
fi |
3467 |
|
3464 |
if test "$MOZ_ENABLE_XFT" |
3468 |
if test "$MOZ_ENABLE_XFT" |
3465 |
then |
3469 |
then |
3466 |
AC_DEFINE(MOZ_ENABLE_XFT) |
3470 |
AC_DEFINE(MOZ_ENABLE_XFT) |
Lines 3475-3480
Link Here
|
3475 |
AC_SUBST(MOZ_XFT_LIBS) |
3479 |
AC_SUBST(MOZ_XFT_LIBS) |
3476 |
|
3480 |
|
3477 |
dnl ======================================================== |
3481 |
dnl ======================================================== |
|
|
3482 |
dnl = pango font rendering |
3483 |
dnl ======================================================== |
3484 |
MOZ_ARG_ENABLE_BOOL(pango, |
3485 |
[ --enable-pango Enable Pango font rendering support], |
3486 |
MOZ_ENABLE_PANGO=1, |
3487 |
MOZ_ENABLE_PANGO=) |
3488 |
|
3489 |
if test "$MOZ_ENABLE_PANGO" |
3490 |
then |
3491 |
AC_DEFINE(MOZ_ENABLE_PANGO) |
3492 |
PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.5.0) |
3493 |
|
3494 |
dnl Make sure that the pango version is _actually_ new enough |
3495 |
_SAVE_CFLAGS=$CFLAGS |
3496 |
_SAVE_LDFLAGS=$LDFLAGS |
3497 |
CFLAGS="$MOZ_PANGO_CFLAGS $CFLAGS" |
3498 |
LDFLAGS="$MOZ_PANGO_LIBS $LDFLAGS" |
3499 |
AC_CHECK_LIB(pangoft2-1.0, pango_fc_font_map_add_decoder_find_func,, |
3500 |
AC_MSG_ERROR([Your Pango is too old. Sorry.])) |
3501 |
CFLAGS=$_SAVE_CFLAGS |
3502 |
LDFLAGS=$_SAVE_LDFLAGS |
3503 |
|
3504 |
AC_SUBST(MOZ_ENABLE_PANGO) |
3505 |
AC_SUBST(MOZ_PANGO_CFLAGS) |
3506 |
AC_SUBST(MOZ_PANGO_LIBS) |
3507 |
fi |
3508 |
|
3509 |
dnl ======================================================== |
3478 |
dnl = disabling x11 core support, enabled by default |
3510 |
dnl = disabling x11 core support, enabled by default |
3479 |
dnl ======================================================== |
3511 |
dnl ======================================================== |
3480 |
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-1} |
3512 |
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-1} |
Lines 3588-3594
Link Here
|
3588 |
|
3620 |
|
3589 |
AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT) |
3621 |
AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT) |
3590 |
fi |
3622 |
fi |
|
|
3623 |
dnl = libgnomeui support module |
3624 |
dnl ======================================================== |
3625 |
|
3626 |
if test "$MOZ_ENABLE_GTK2" |
3627 |
then |
3628 |
MOZ_ENABLE_GNOMEUI=1 |
3629 |
|
3630 |
MOZ_ARG_DISABLE_BOOL(gnomeui, |
3631 |
[ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ], |
3632 |
MOZ_ENABLE_GNOMEUI=, |
3633 |
MOZ_ENABLE_GNOMEUI=force) |
3591 |
|
3634 |
|
|
|
3635 |
if test "$MOZ_ENABLE_GNOMEUI" |
3636 |
then |
3637 |
PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION, |
3638 |
[MOZ_ENABLE_GNOMEUI=1], [ |
3639 |
if test "$MOZ_ENABLE_GNOMEUI" = "force" |
3640 |
then |
3641 |
AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION]) |
3642 |
fi |
3643 |
MOZ_ENABLE_GNOMEUI= |
3644 |
]) |
3645 |
fi |
3646 |
|
3647 |
AC_SUBST(MOZ_ENABLE_GNOMEUI) |
3648 |
AC_SUBST(MOZ_GNOMEUI_CFLAGS) |
3649 |
AC_SUBST(MOZ_GNOMEUI_LIBS) |
3650 |
|
3651 |
fi |
3592 |
dnl ======================================================== |
3652 |
dnl ======================================================== |
3593 |
dnl = Setting MOZ_EXTRA_X11CONVERTERS turns on additional |
3653 |
dnl = Setting MOZ_EXTRA_X11CONVERTERS turns on additional |
3594 |
dnl = converters in intl/uconv that are used only by X11 gfx |
3654 |
dnl = converters in intl/uconv that are used only by X11 gfx |
Lines 3999-4004
Link Here
|
3999 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
4059 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
4000 |
fi |
4060 |
fi |
4001 |
;; |
4061 |
;; |
|
|
4062 |
*) |
4063 |
if test "$MOZ_ENABLE_GNOMEUI"; then |
4064 |
|
4065 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
4066 |
fi |
4067 |
;; |
4068 |
*) |
4069 |
if test "$MOZ_ENABLE_GNOMEUI"; then |
4070 |
MOZ_IMG_DECODERS_DEFAULT="$MOZ_IMG_DECODERS_DEFAULT icon" |
4071 |
fi |
4072 |
;; |
4002 |
esac |
4073 |
esac |
4003 |
|
4074 |
|
4004 |
MOZ_ARG_ENABLE_STRING(image-decoders, |
4075 |
MOZ_ARG_ENABLE_STRING(image-decoders, |