/[www]/www/philosophy/javascript-trap.pl.html
ViewVC logotype

Contents of /www/philosophy/javascript-trap.pl.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.40 - (show annotations) (download) (as text)
Fri Nov 18 07:32:45 2016 UTC (7 years, 9 months ago) by gnun
Branch: MAIN
CVS Tags: HEAD
Changes since 1.39: +3 -3 lines
File MIME type: text/html
Automatic update by GNUnited Nations.

1 <!--#set var="PO_FILE"
2 value='<a href="/philosophy/po/javascript-trap.pl.po">
3 https://www.gnu.org/philosophy/po/javascript-trap.pl.po</a>'
4 --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
5 --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.pl-diff.html"
6 --><!--#set var="OUTDATED_SINCE" value="2016-03-27" -->
7
8 <!--#include virtual="/server/header.pl.html" -->
9 <!-- Parent-Version: 1.77 -->
10
11 <!-- This file is automatically generated by GNUnited Nations! -->
12 <title>Pułapka JavaScript'u</title>
13
14 <!--#include virtual="/philosophy/po/javascript-trap.translist" -->
15 <!--#include virtual="/server/banner.pl.html" -->
16 <!--#include virtual="/server/outdated.pl.html" -->
17 <h2>Pułapka JavaScript'u</h2>
18
19 <p><a href="http://www.stallman.org/">Richard Stallman</a></p>
20
21 <p><strong>Możliwe, że&nbsp;korzystasz z&nbsp;niewolnych programów
22 na&nbsp;swoim komputerze każdego dnia &mdash; przez przeglądarkę
23 internetową</strong></p>
24
25 <p>W&nbsp;społeczności wolnego oprogramowania, znana jest idea tego,
26 że&nbsp;niewolne programy źle traktują użytkowników. Niektórzy z&nbsp;nas
27 całkowicie odmawiają instalacji prawnie zastrzeżonego oprogramowania,
28 a&nbsp;wielu innych fakt bycia niewolnym uważa za&nbsp;wadę programu. Wielu
29 użytkowników jest świadomych tego, że&nbsp;kwestia ta ma zastosowanie
30 do&nbsp;wtyczek oferowanych do&nbsp;instalacji przez przeglądarki, jako
31 że&nbsp;mogą one być wolne bądź&nbsp;niewolne.</p>
32
33 <p>Jednak&nbsp;przeglądarki uruchamiają inne niewolne programy, o co nie pytają
34 użytkowników ani&nbsp;nawet ich o tym nie informują &mdash; programy zawarte
35 bezpośrednio bądź&nbsp;przez odnośnik na&nbsp;stronach internetowych. Te
36 programy najczęściej napisane są w&nbsp;JavaScript, choć&nbsp;wykorzystywane
37 są także i&nbsp;inne języki.</p>
38
39 <p>JavaScript (oficjalnie nazywany ECMAScript, choć&nbsp;niewielu korzysta
40 z&nbsp;tej nazwy) był dawniej wykorzystywany do&nbsp;drobnych upiększeń
41 na&nbsp;stronach internetowych, takich jak ładne, lecz&nbsp;nieistotne
42 elementy nawigacji bądź&nbsp;wyświetlania. Dopuszczalnym było traktowanie
43 ich jedynie jako rozszerzenia znaczników HTML, raczej niż prawdziwe
44 oprogramowanie; nie stanowiły one znaczącej kwestii.</p>
45
46 <p>Wiele stron korzysta z&nbsp;JavaScript w&nbsp;ten sposób,
47 jednak&nbsp;niektóre wykorzystują go do&nbsp;większych programów
48 wykonujących duże zadania. Przykładowo, Google Docs próbuje pobrać
49 na&nbsp;maszynę użytkownika program JavaScript o objętości pół megabajta,
50 upakowany w&nbsp;formie, którą nazwać można Obfuscriptem (celowo
51 nieczytelnie napisany kod) ponieważ&nbsp;nie posiada żadnych komentarzy
52 i&nbsp;prawie żadnych białych znaków, a&nbsp;nazwy metod są
53 jednoliterowe. Kod źródłowy programu jest preferowaną formą do&nbsp;jego
54 modyfikacji; upakowany kod nie jest kodem źródłowym,
55 natomiast&nbsp;prawdziwy kod źródłowy tego programu nie jest dostępny dla
56 użytkownika.</p>
57
58 <p>Przeglądarki normalnie nie informują użytkownika kiedy ładują programy
59 JavaScript. Niektóre przeglądarki ma możliwość by wyłączyć JavaScript
60 całkowicie, jednak&nbsp;nawet jeśli o tym wiesz, jest nieoczywiste jak
61 rozróżnić nietrywialne niewolne oprogramowanie i&nbsp;je zablokować. Jednak,
62 nawet w&nbsp;społeczności wolnego oprogramowania, większość użytkowników nie
63 jest świadoma tej kwestii; milczenie przeglądarek sprzyja zaś&nbsp;zatajaniu
64 tego.</p>
65
66 <p>Jest możliwym wydanie programu JavaScript jako wolnego oprogramowania, przez
67 dystrybucję kodu objętego licencją wolnego oprogramowania. Jeśli program
68 jest samowystarczalny&nbsp;&ndash; jeśli jego funkcja czy&nbsp;cel są
69 niezależne od&nbsp;strony na&nbsp;której jest&nbsp;&ndash; to jest
70 w&nbsp;porządku; możecie skopiować program do&nbsp;pliku na&nbsp;komputerze,
71 zmodyfikować go i&nbsp;odwiedzić w&nbsp;przeglądarce aby&nbsp;go
72 uruchomić. Ale&nbsp;to nietypowy przypadek.</p>
73
74 <p>Zwykle programy JavaScript są zaprojektowane aby&nbsp;działać
75 z&nbsp;konkretną stroną czy&nbsp;witryną i&nbsp;strona czy&nbsp;witryna
76 wymaga ich do&nbsp;funkcjonowania. Wtedy jest dodatkowy problem: nawet jeśli
77 jest kod źródłowy programu, przeglądarki nie oferują udogodnień
78 umożliwiających uruchomienie własnej zmodyfikowanej wersji zamiast tej
79 dostarczanej na&nbsp;stronie. Efekt jest porównywalny do&nbsp;tivoizacji
80 (ang. tivoization - od&nbsp;urządzenia TiVo), jednak&nbsp;nie jest on aż tak
81 trudny do&nbsp;obejścia.</p>
82
83 <p>JavaScript nie jest jedynym językiem w&nbsp;którym strony przesyłają
84 programy. Flash umożliwia programowanie poprzez&nbsp;rozszerzony wariant
85 JavaScript; jeśli kiedykolwiek będziemy mieli wystarczająco kompletny,
86 wolny, program do&nbsp;odtwarzania Flash, będziemy musieli się uporać
87 z&nbsp;niewolnymi programami Flash. Silverlight wydaje się stwarzać problemy
88 podobne do&nbsp;Flasha, jedynie gorsze, skoro Microsoft używa go jako
89 platformy do&nbsp;niewolnych kodeków. Wolne zastępstwo Silverlight nie
90 byłoby wystarczające dla wolnego świata chyba, że&nbsp;standardowo zawiera
91 wolne zastępcze kodeki.</p>
92
93 <p>Aplety Java także są uruchamiane w&nbsp;przeglądarce i&nbsp;wzbudzają
94 podobne kłopoty. Ogólnie rzecz biorąc, każdy typ systemu apletów stanowi
95 tego typu zagrożenie. Posiadanie wolnego środowiska wykonawczego dla apletu
96 jedynie przybliża nas aby&nbsp;bezpośrednio zetknąć się z&nbsp;sednem
97 sprawy.</p>
98
99 <p>Teoretycznie jest możliwe aby&nbsp;programować w&nbsp;HTML i&nbsp;CSS,
100 ale&nbsp;w praktyce jest to ograniczone i&nbsp;niewygodne;
101 aby&nbsp;cokolwiek zrobiło to już dobre przedsięwzięcie. Takie programy
102 powinny być wolne, ale&nbsp;CSS nie jest poważnym problemem dla wolności
103 użytkowników w&nbsp;roku 2016.</p>
104
105 <p>Powstał silny ruch który domaga się od&nbsp;stron internetowych by
106 komunikowały się jedynie przez formaty i&nbsp;protokoły, które są wolne
107 (niektórzy powiedzą &bdquo;otwarte&rdquo;); a&nbsp;więc takich, których
108 dokumentacja została opublikowana i&nbsp;które każdy może
109 zaimplementować. Z&nbsp;obecnością programów na&nbsp;stronach internetowych,
110 takie kryterium jest konieczne, lecz&nbsp;nie wystarczające. JavaScript sam
111 w&nbsp;sobie, jako format, jest wolny, a&nbsp;wykorzystanie JavaScript
112 w&nbsp;na stronie internetowej samo w&nbsp;sobie nie jest złe. Jednak, jak
113 widać po&nbsp;powyższych przykładach, nie jest to automatycznie
114 w&nbsp;porządku. Kiedy strona przesyła program do&nbsp;użytkowanika, nie
115 jest wystarczającym by program był napisany w&nbsp;udokumentowanym
116 i&nbsp;nieobciążonym języku; taki program musi być także
117 wolny. &bdquo;Jedynie wolne programy przesyłane do&nbsp;użytkownika&rdquo;
118 mogą stać się częścią kryterium dla poprawnego zachowania się stron
119 internetowych.</p>
120
121 <p>Ciche ładowanie i&nbsp;uruchamianie niewolnych programów jest jedną
122 z&nbsp;wielu kwestii wnoszonych przez &bdquo;aplikacje
123 sieciowe&rdquo;. Termin &bdquo;aplikacji sieciowych&rdquo; został
124 zaprojektowany by ignorować fundamentalne różnice między oprogramowaniem
125 dostarczonym do&nbsp;użytkowników, a&nbsp;oprogramowaniem działającym
126 na&nbsp;serwerze. Może się on odnosić do&nbsp;wyspecjalizowanego programu
127 uruchamianego bezpośrednio w&nbsp;przeglądarce; może się on odnosić
128 do&nbsp;wyspecjalizowanego oprogramowania serwera; może się on odnosić
129 do&nbsp;wyspecjalizowanego programu w&nbsp;przeglądarce działającego
130 wspólnie z&nbsp;wyspecjalizowanym oprogramowaniem serwera. Strony klienta
131 i&nbsp;serwera podnoszą różne kwestie etyczne, nawet jeśli są tak mocno
132 zintegrowane, że&nbsp;w efekcie tworzą części jednego programu. To
133 opracowanie dotyczy tylko oprogramowanie po&nbsp;stronie
134 klienta. Oprogramowanie na&nbsp;serwerach omawiamy osobno.</p>
135
136 <p>W&nbsp;kwestiach praktycznych, jak możemy sobie radzić z&nbsp;problemem
137 niewolnych programów JavaScript na&nbsp;stronach internetowych? Pierwszym
138 krokiem jest aby&nbsp;go nie uruchamiać.</p>
139
140 <p>Po&nbsp;pierwsze, co mamy na&nbsp;myśli przez &bdquo;nietrywialne&rdquo;?
141 Skoro pojęcie &bdquo;nietrywialności&rdquo; jest stopniowane, jest kwestią
142 zaprojektowania prostego kryterium dającego dobre rezultaty, raczej niż
143 ustalania jednej poprawnej odpowiedzi.</p>
144 <p>
145 Nasza wstępna zasada jest aby&nbsp;program JavaScript był nietrywialny
146 jeśli:</p>
147
148 <ul>
149 <li>robi żądania AJAX lub&nbsp;jest ładowany ze skryptami, które robią żądania
150 AJAX,</li>
151
152 <li>ładuje dynamicznie zewnętrzne skrypty lub&nbsp;jest ładowany razem ze
153 skryptami, które to robią,</li>
154
155 <li>definiuje funkcje i&nbsp;albo ładuje zewnętrzny skrypt (z wnętrza html)
156 lub&nbsp;jest ładowany jako taki,</li>
157
158 <li>używa dynamiczne struktury JavaScript, które są trudne do&nbsp;analizowania
159 bez&nbsp;uruchamiania programu, lub&nbsp;jest ładowany razem ze skryptami,
160 które używają takich struktur. Te struktury to:
161 <ul>
162 <li>używanie funkcji eval,</li>
163 <li>wywoływanie funkcji za&nbsp;pomocą kwadratowych nawiasów,</li>
164 <li>Używanie konstrukcji innych niż ciąg znaków z&nbsp;niektórymi funkcjami
165 (Obj.write, Obj.createElement, ...).</li>
166 </ul>
167 </li>
168 </ul>
169
170 <p>Jak rozróżnić czy&nbsp;dany kod JavaScript jest wolny? Na&nbsp;zakończenie
171 tego artykułu proponujemy konwencję, według której nietrywialne programy
172 JavaScript na&nbsp;stronie internetowej mogłyby podać URL pod&nbsp;którym
173 znajduje się ich kod źródłowy, a&nbsp;także przy wykorzystaniu stylizowanych
174 komentarzy określać swoją licencję.</p>
175
176 <p>W&nbsp;końcu musimy zmienić wolne przeglądarki aby&nbsp;rozpoznawały
177 i&nbsp;blokowały nietrywialny JavaScript na&nbsp;stronach
178 internetowych. Program <a href="/software/librejs/">LibreJS</a> wykrywa
179 niewolny, nietrywialny JavaScript na&nbsp;stronach, które odwiedzacie
180 i&nbsp;go blokuje. LibreJS jest dodatkiem dla IceCat i&nbsp;IceWeasel (i dla
181 Firefoksa).</p>
182
183 <p>Użytkownicy przeglądarek potrzebują wygodnej metody określenia kodu
184 JavaScript, którego chcą użyć <em>zamiast</em> JavaScript na&nbsp;wybranej
185 stronie. (Określony kod może być całkowitym zastąpieniem,
186 bądź&nbsp;zmodyfikowaną wersją wolnego programu JavaScript obecnego
187 na&nbsp;wybranej stronie.) Greasemonkey jest bliskie umożliwienia tego,
188 jednak&nbsp;nie do&nbsp;końca, gdyż nie gwarantuje modyfikacji kodu
189 JavaScript na&nbsp;stronie zanim ten zacznie się wykonywać. Wykorzystanie
190 lokalnego proxy działa, jednak&nbsp;jest zbyt niedogodne by być realnym
191 rozwiązaniem. Potrzebujemy rozwiązania, które jest niezawodne
192 i&nbsp;wygodne, jak i&nbsp;witryny gdzie można się dzielić zmianami. Projekt
193 GNU zarekomenduje strony, które są dedykowane jedynie wolnym zmianom.</p>
194
195 <p>Takie możliwości umożliwią programom JavaScript zawartym na&nbsp;stronach
196 internetowych bycie wolnymi w&nbsp;rzeczywistym i&nbsp;praktycznym
197 sensie. JavaScript nie będzie nadal szczególną przeszkodą do&nbsp;naszej
198 wolnośći &mdash; nie bardziej niż C i&nbsp;Java są nimi teraz. Będziemy
199 mogli odrzucić a&nbsp;nawet podmienić niewolne, nietrywialne programy
200 JavaScript, tak samo jak możemy podmienić niewolne pakiety normalnie
201 oferowane nam do&nbsp;instalacji. Nasza kampania dla stron internetowych by
202 uwolnić ich JavaScript może się wtedy zacząć.</p>
203
204 <p>W&nbsp;międzyczasie jest jeden przypadek gdzie jest dopuszczalne uruchamiać
205 niewolny program JavaScript: aby&nbsp;wysłać zażalenie do&nbsp;operatorów
206 witryn internetowych, że&nbsp;powinni uwolnić lub&nbsp;usunąć JavaScript ze
207 stron. Nie wahajcie się włączyć JavaScript tymczasowo aby&nbsp;to zrobić,
208 ale&nbsp;pamiętajcie go potem wyłączyć.</p>
209
210 <p><strong>Podziękowania dla <a href="/people/people.html#mattlee">Matta
211 Lee</a> i&nbsp;<a href="http://ejohn.org">Johna Resiga</a> za&nbsp;ich pomoc
212 w&nbsp;definiowaniu naszej propozycji kryterium, oraz&nbsp;dla Davida
213 Parunakiana za&nbsp;pomoc w&nbsp;uświadomieniu mi problemu.</strong></p>
214
215 <h3 id="AppendixA">Załącznik A: konwencja dla wypuszczania wolnych programów JavaScript.</h3>
216
217 <p>Odnośniki do&nbsp;kodu źródłowego proponujemy oznaczać</p>
218 <pre dir="ltr">
219
220 // @source:
221
222 </pre>
223
224 <p>a&nbsp;następnie URL. To spełnia wymóg GNU GPL aby&nbsp;rozprowadzać kod
225 źródłowy. Jeśli kod jest na&nbsp;innej stronie, musicie zwrócić uwagę
226 aby&nbsp;<a href="/licenses/gpl-faq.html#SourceAndBinaryOnDifferentSites">o
227 to właściwie zadbać</a>. Kod źródłowy jest konieczny aby&nbsp;program był
228 wolny.
229 </p>
230
231 <p>By wskazać licencję kodu JavaScript zawartego na&nbsp;stronie, proponujemy
232 umieszczenie licencji między dwoma komentarzami w&nbsp;tej formie:</p>
233 <pre dir="ltr">
234 <!--TRANSLATORS: Do not translate these license notices. The <pre>
235
236 elements have dir="ltr" explicitly set to cater for RTL languages.-->
237
238 @licstart The following is the entire license notice for the
239 JavaScript code in this page.
240 ...
241 @licend The above is the entire license notice
242 for the JavaScript code in this page.
243 </pre>
244 <p>Oczywiście, wszystko to powinno być zawarte w&nbsp;wielowierszowym
245 komentarzu.</p>
246
247 <p><a href="/licenses/gpl.html">GNU GPL</a>, tak jak wiele innych licencji
248 wolnego oprogramowania wymaga dystrybucji kopii licencji zarówno
249 z&nbsp;kodem jak i&nbsp;binariami programu. Jednakże, GNU GPL jest
250 na&nbsp;tyle długie, że&nbsp;załączanie go do&nbsp;strony zawierającej
251 JavaScript może być uciążliwe. Można pominąć to wymaganie, dla kodu
252 do&nbsp;którego posiada się prawa autorskie, taką notatką licencyjną:</p>
253 <pre dir="ltr">
254
255 Copyright (C) YYYY Developer
256
257 Kod JavaScript na&nbsp;tej stronie jest wolnym oprogramowaniem: można
258 go rozprowadzać oraz&nbsp;modyfikować go zgodnie z&nbsp;warunkami GNU
259 General Public License (GNU GPL) opublikowanym przez Free Software
260 Foundation, licencji w&nbsp;wersji 3, bądź&nbsp;(opcjonalnie) każdą późniejszą wersją
261 Kod dystrybuowany jest BEZ&nbsp;JAKIEJKOLWIEK GWARANCJI;
262 nawet bez&nbsp;domniemanej gwarancji ZDATNOŚCI DO&nbsp;HANDLU
263 czy&nbsp;ZDATNOŚCI DO&nbsp;OKREŚLONEGO CELU. Proszę odwołać się
264 do&nbsp;GNU GPL po&nbsp;szczegóły.
265
266 Jako dodatkowe zezwolenie zgodne z&nbsp;GNU GPL wersji 3 sekcji 7,
267 można dystrybuować nie-źródłowe (np., zminimalizowane bądź&nbsp; upakowane)
268 formy tego kodu bez&nbsp;kopii GNU GPL normalnie wymaganej
269 w&nbsp;sekcji 4, pod&nbsp;warunkiem załączenia tej notatki licencyjnej i&nbsp;URL
270 przez które odbiorcy mogą dotrzeć do&nbsp;Właściwego Źródła
271
272 </pre>
273
274 <p>Dziękuje Jaffarowi Rumithowi za&nbsp;zwrócenie mojej uwagi na&nbsp;tę
275 kwestię.</p>
276
277 <h3 id="AppendixB">Załącznik B: konwencja dla wypuszczania wolnych programów JavaScript.</h3>
278
279 <p>Jeśli jesteście webmasterem rozprowadzającym wolne oprogramowanie JavaScript
280 na&nbsp;Waszej stronie, to jasne i&nbsp;konsekwentne umieszczanie informacji
281 o licencjach i&nbsp;kodzie źródłowym pomaga odwiedzającym upewnić się,
282 że&nbsp;uruchamiają wolne oprogramowanie i&nbsp;pomogą Wam przestrzegać
283 warunki licencji.</p>
284
285 <p>Jedną z&nbsp;metod przedstawiania licencji jest ta opisana wyżej w&nbsp;<a
286 href="#AppendixA">Dodatku A</a>. Druga metoda, <a
287 href="/licenses/javascript-labels.html">JavaScript license web labels</a>,
288 może być wygodniejsza dla bibliotek z-minifi-owanym kodem JavaScript,
289 szczególnie gdy to nie Wy go napisaliście.</p>
290
291 <div class="translators-notes">
292
293 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
294 </div>
295 </div>
296
297 <!-- for id="content", starts in the include above -->
298 <!--#include virtual="/server/footer.pl.html" -->
299 <div id="footer">
300 <div class="unprintable">
301
302 <p>Wszelkie pytania dotyczące GNU i&nbsp;FSF prosimy kierować na&nbsp;adres <a
303 href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Inne metody kontaktu
304 z&nbsp;FSF można znaleźć na&nbsp;stronie <a
305 href="/contact/contact.html">kontakt</a> <br /> Informacje o niedziałających
306 odnośnikach oraz&nbsp;inne poprawki (lub propozycje) prosimy wysyłać
307 na&nbsp;adres <a
308 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p>
309
310 <p>
311 <!-- TRANSLATORS: Ignore the original text in this paragraph,
312 replace it with the translation of these two:
313
314 We work hard and do our best to provide accurate, good quality
315 translations. However, we are not exempt from imperfection.
316 Please send your comments and general suggestions in this regard
317 to <a href="mailto:web-translators@gnu.org">
318
319 &lt;web-translators@gnu.org&gt;</a>.</p>
320
321 <p>For information on coordinating and submitting translations of
322 our web pages, see <a
323 href="/server/standards/README.translations.html">Translations
324 README</a>. -->
325 Staramy się, aby&nbsp;tłumaczenia były wierne i&nbsp;wysokiej jakości,
326 ale&nbsp;nie jesteśmy zwolnieni z&nbsp;niedoskonałości. Komentarze odnośnie
327 tłumaczenia polskiego oraz&nbsp;zgłoszenia dotyczące chęci współpracy
328 w&nbsp;tłumaczeniu prosimy kierować na&nbsp;adres <a
329 href="mailto:www-pl-trans@gnu.org">www-pl-trans@gnu.org</a>. <br /> Więcej
330 informacji na&nbsp;temat koordynacji oraz&nbsp;zgłaszania propozycji
331 tłumaczeń artykułów znajdziecie na&nbsp;<a
332 href="/server/standards/README.translations.html">stronie tłumaczeń</a>.</p>
333 </div>
334
335 <!-- Regarding copyright, in general, standalone pages (as opposed to
336 files generated as part of manuals) on the GNU web server should
337 be under CC BY-ND 4.0. Please do NOT change or remove this
338 without talking with the webmasters or licensing team first.
339 Please make sure the copyright date is consistent with the
340 document. For web pages, it is ok to list just the latest year the
341 document was modified, or published.
342
343 If you wish to list earlier years, that is ok too.
344 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
345 years, as long as each year in the range is in fact a copyrightable
346 year, i.e., a year in which the document was published (including
347 being publicly visible on the web or in a revision control system).
348
349 There is more detail about copyright years in the GNU Maintainers
350 Information document, www.gnu.org/prep/maintain. -->
351 <p>Copyright &copy; 2009-2013, 2016 Richard Stallman</p>
352
353 <p>Ta strona jest dostępna na&nbsp;<a rel="license"
354 href="http://creativecommons.org/licenses/by-nd/4.0/deed.pl">licencji
355 Creative Commons Uznanie autorstwa&nbsp;&ndash; Bez&nbsp;utworów zależnych
356 4.0 Międzynarodowe</a>.</p>
357
358 <!--#include virtual="/server/bottom-notes.pl.html" -->
359 <div class="translators-credits">
360
361 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
362 Tłumaczenie: Jan Owoc 2012, 2016, Jan Wieremjewicz 2010, 2012; poprawki Jan
363 Owoc 2010, 2011, 2013.</div>
364
365 <p class="unprintable"><!-- timestamp start -->
366 Aktualizowane:
367
368 $Date: 2016/05/26 22:28:56 $
369
370 <!-- timestamp end -->
371 </p>
372 </div>
373 </div>
374 </body>
375 </html>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26