From ed4c60e3ec8de8a1892715ddd2111123de16c119 Mon Sep 17 00:00:00 2001 From: Polevara Veronika Date: Sat, 25 Nov 2023 15:59:13 +0100 Subject: [PATCH 1/3] Dodanie D-Task --- TaskD01/description.txt | 5 +++++ TaskD01/run.py | 13 +++++++++++++ TaskD01/simple.exp | 2 ++ TaskD01/simple.in | 3 +++ TaskD01/simple.out | 2 ++ TaskD02/description.txt | 7 +++++++ TaskD02/run.py | 13 +++++++++++++ TaskD02/simple.exp | 3 +++ TaskD02/simple.in | 5 +++++ TaskD02/simple.out | 3 +++ TaskD03/description.txt | 6 ++++++ TaskD03/run.py | 14 ++++++++++++++ TaskD03/simple.exp | 3 +++ TaskD03/simple.in | 5 +++++ TaskD03/simple.out | 3 +++ TaskD04/description.txt | 6 ++++++ TaskD04/run.py | 21 +++++++++++++++++++++ TaskD04/simple.exp | 4 ++++ TaskD04/simple.in | 5 +++++ TaskD04/simple.out | 4 ++++ 20 files changed, 127 insertions(+) create mode 100644 TaskD01/description.txt create mode 100644 TaskD01/run.py create mode 100644 TaskD01/simple.exp create mode 100644 TaskD01/simple.in create mode 100644 TaskD01/simple.out create mode 100644 TaskD02/description.txt create mode 100644 TaskD02/run.py create mode 100644 TaskD02/simple.exp create mode 100644 TaskD02/simple.in create mode 100644 TaskD02/simple.out create mode 100644 TaskD03/description.txt create mode 100644 TaskD03/run.py create mode 100644 TaskD03/simple.exp create mode 100644 TaskD03/simple.in create mode 100644 TaskD03/simple.out create mode 100644 TaskD04/description.txt create mode 100644 TaskD04/run.py create mode 100644 TaskD04/simple.exp create mode 100644 TaskD04/simple.in create mode 100644 TaskD04/simple.out diff --git a/TaskD01/description.txt b/TaskD01/description.txt new file mode 100644 index 0000000..f2365af --- /dev/null +++ b/TaskD01/description.txt @@ -0,0 +1,5 @@ +Write a program to find lines containing the word "Hamlet". +Do use regular expressions. + +POINTS: 1 +DEADLINE: 2023-11-26 23:59:59 \ No newline at end of file diff --git a/TaskD01/run.py b/TaskD01/run.py new file mode 100644 index 0000000..bdcf3a7 --- /dev/null +++ b/TaskD01/run.py @@ -0,0 +1,13 @@ +import re +import sys + +found_lines = [] + + +for line in sys.stdin: + if re.search(r'\bHamlet\b', line): + found_lines.append(line.strip()) + + +if found_lines: + print('\n'.join(found_lines), end='') \ No newline at end of file diff --git a/TaskD01/simple.exp b/TaskD01/simple.exp new file mode 100644 index 0000000..0064e87 --- /dev/null +++ b/TaskD01/simple.exp @@ -0,0 +1,2 @@ +Here comes Hamlet +Hamlet Hamlet again \ No newline at end of file diff --git a/TaskD01/simple.in b/TaskD01/simple.in new file mode 100644 index 0000000..24e23e3 --- /dev/null +++ b/TaskD01/simple.in @@ -0,0 +1,3 @@ +Here comes Hamlet +ABC +Hamlet Hamlet again \ No newline at end of file diff --git a/TaskD01/simple.out b/TaskD01/simple.out new file mode 100644 index 0000000..0064e87 --- /dev/null +++ b/TaskD01/simple.out @@ -0,0 +1,2 @@ +Here comes Hamlet +Hamlet Hamlet again \ No newline at end of file diff --git a/TaskD02/description.txt b/TaskD02/description.txt new file mode 100644 index 0000000..d10a828 --- /dev/null +++ b/TaskD02/description.txt @@ -0,0 +1,7 @@ +Write a program to find lines containing the word "pies" separated by spaces. +The word does not need to have space on the left if it is the line beginning or space on the right if it is line ending. +Return line no matter of word "pies" casing. +Do use regular expressions. + +POINTS: 1 +DEADLINE: 2023-11-26 23:59:59 \ No newline at end of file diff --git a/TaskD02/run.py b/TaskD02/run.py new file mode 100644 index 0000000..8128990 --- /dev/null +++ b/TaskD02/run.py @@ -0,0 +1,13 @@ +import re +import sys + +found_lines = [] + +for line in sys.stdin: + if re.search(r'\b\s*pies\s*\b', line, flags=re.IGNORECASE): + found_lines.append(line.strip()) + + +if found_lines: + print('\n'.join(found_lines), end='') + diff --git a/TaskD02/simple.exp b/TaskD02/simple.exp new file mode 100644 index 0000000..caa7f93 --- /dev/null +++ b/TaskD02/simple.exp @@ -0,0 +1,3 @@ +Pies ma Ale +Kot i pies to zwierzeta +pies \ No newline at end of file diff --git a/TaskD02/simple.in b/TaskD02/simple.in new file mode 100644 index 0000000..cbf2ba9 --- /dev/null +++ b/TaskD02/simple.in @@ -0,0 +1,5 @@ +Pies ma Ale +Ala ma psa +tu nic nie ma +Kot i pies to zwierzeta +pies \ No newline at end of file diff --git a/TaskD02/simple.out b/TaskD02/simple.out new file mode 100644 index 0000000..caa7f93 --- /dev/null +++ b/TaskD02/simple.out @@ -0,0 +1,3 @@ +Pies ma Ale +Kot i pies to zwierzeta +pies \ No newline at end of file diff --git a/TaskD03/description.txt b/TaskD03/description.txt new file mode 100644 index 0000000..114f376 --- /dev/null +++ b/TaskD03/description.txt @@ -0,0 +1,6 @@ +Write a program to find lines containing date from 1900 to 1999 in format '19XX r.' no matter what on the left or right of the expression. +Note that part ' r.' is obligatory. +Do use regular expressions. + +POINTS: 1 +DEADLINE: 2023-11-26 23:59:59 \ No newline at end of file diff --git a/TaskD03/run.py b/TaskD03/run.py new file mode 100644 index 0000000..05f6da4 --- /dev/null +++ b/TaskD03/run.py @@ -0,0 +1,14 @@ +import re +import sys + + +found_lines = [] + +for line in sys.stdin: + if re.search(r'\b19\d{2}\s*r\.\b|\b\W19\d{2}\s*r\.\b|\b19\d{2}\s*r\.\W', line, flags=re.IGNORECASE): + found_lines.append(line.strip()) + + +if found_lines: + print('\n'.join(found_lines), end='') + diff --git a/TaskD03/simple.exp b/TaskD03/simple.exp new file mode 100644 index 0000000..175c58f --- /dev/null +++ b/TaskD03/simple.exp @@ -0,0 +1,3 @@ +Kiedys byl 1934 r. +Kiedys byl 1934 r.fsdfsdfsdf +1934 r. to jakas data \ No newline at end of file diff --git a/TaskD03/simple.in b/TaskD03/simple.in new file mode 100644 index 0000000..e3a93b7 --- /dev/null +++ b/TaskD03/simple.in @@ -0,0 +1,5 @@ +Kiedys byl 1934 r. +Kiedys byl 1934 r.fsdfsdfsdf +Kiedys byl 1935 rok +1934 r. to jakas data +1934 to tez jakas data \ No newline at end of file diff --git a/TaskD03/simple.out b/TaskD03/simple.out new file mode 100644 index 0000000..175c58f --- /dev/null +++ b/TaskD03/simple.out @@ -0,0 +1,3 @@ +Kiedys byl 1934 r. +Kiedys byl 1934 r.fsdfsdfsdf +1934 r. to jakas data \ No newline at end of file diff --git a/TaskD04/description.txt b/TaskD04/description.txt new file mode 100644 index 0000000..4db2554 --- /dev/null +++ b/TaskD04/description.txt @@ -0,0 +1,6 @@ +Write a program to find all maximum substrings of digits. +Return only these substrings separated by spaces in their order. +Do use regular expressions. + +POINTS: 2 +DEADLINE: 2023-11-26 23:59:59 \ No newline at end of file diff --git a/TaskD04/run.py b/TaskD04/run.py new file mode 100644 index 0000000..fc5985a --- /dev/null +++ b/TaskD04/run.py @@ -0,0 +1,21 @@ +import re +import sys + +def remove_non_digits(line): + + return re.sub(r'[^0-9\s]', '', line) + + +processed_lines = [] + +for line in sys.stdin: + processed_line = remove_non_digits(line) + processed_line = re.sub(r'^\s+|\s+$', '', processed_line) + processed_line = re.sub(r'\s+', ' ', processed_line) + + digit_groups = re.findall(r'\d+', processed_line) + + if digit_groups: + processed_lines.append(' '.join(digit_groups)) + +print('\n'.join(processed_lines), end='') \ No newline at end of file diff --git a/TaskD04/simple.exp b/TaskD04/simple.exp new file mode 100644 index 0000000..c184ec8 --- /dev/null +++ b/TaskD04/simple.exp @@ -0,0 +1,4 @@ +34234 34 5 +34535 +34 +1992 1999 \ No newline at end of file diff --git a/TaskD04/simple.in b/TaskD04/simple.in new file mode 100644 index 0000000..df710ac --- /dev/null +++ b/TaskD04/simple.in @@ -0,0 +1,5 @@ +34234 34 dfd gfd 5 +34535 +fsdflskfjsdflk +fsdkfj sdf34fdfd +The company was established in 1992 from the merger of Authorware, Inc. (creators of the Authorware package) and MacroMind-Paracomp (producer of Macromind Director). In 1999, Macromedia purchased Allaire and its bi \ No newline at end of file diff --git a/TaskD04/simple.out b/TaskD04/simple.out new file mode 100644 index 0000000..c184ec8 --- /dev/null +++ b/TaskD04/simple.out @@ -0,0 +1,4 @@ +34234 34 5 +34535 +34 +1992 1999 \ No newline at end of file From 078f633165cd2324d1828a3d19c0111b50f19a61 Mon Sep 17 00:00:00 2001 From: Polevara Veronika Date: Sun, 10 Dec 2023 17:28:51 +0100 Subject: [PATCH 2/3] Dodanie E-Task --- TaskE06/description.txt | 35 +++++++++++++++++++++++++++++++++++ TaskE06/run.py | 19 +++++++++++++++++++ TaskE06/test.exp | 10 ++++++++++ TaskE06/test.in | 10 ++++++++++ TaskE06/test.out | 10 ++++++++++ TaskE19/description.txt | 35 +++++++++++++++++++++++++++++++++++ TaskE19/run.py | 19 +++++++++++++++++++ TaskE19/test.exp | 9 +++++++++ TaskE19/test.in | 9 +++++++++ TaskE19/test.out | 9 +++++++++ 10 files changed, 165 insertions(+) create mode 100644 TaskE06/description.txt create mode 100644 TaskE06/run.py create mode 100644 TaskE06/test.exp create mode 100644 TaskE06/test.in create mode 100644 TaskE06/test.out create mode 100644 TaskE19/description.txt create mode 100644 TaskE19/run.py create mode 100644 TaskE19/test.exp create mode 100644 TaskE19/test.in create mode 100644 TaskE19/test.out diff --git a/TaskE06/description.txt b/TaskE06/description.txt new file mode 100644 index 0000000..d51a6f3 --- /dev/null +++ b/TaskE06/description.txt @@ -0,0 +1,35 @@ +Liczba pięcio bądź sześciocyfrowa +================================= + +Napisać program, który wczytuje kolejne wiersze ze standardowego +wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w +jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno +użyć negacji jako operacji w danym języku programowania, jeśli da się +to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy +użyć pojedynczego wyrażenia regularnego. + +Write a program, which loads consecutive lines from standard input +and analyze every line (with no newline character). You should +use regular expressions to the greatest extent possible (e.g. you +can not use negation in the programming language if it is +possible to express the same in regular expression). Wherever possible, +use one regular expression. + +Dla każdego napisu należy sprawdzić, czy napis reprezentuje liczbę pięcio- +bądź sześciocyfrową. Liczba nie powinna zawierać zer nieznaczących. +Jeśli napis spełnia tak określony warunek, należy wypisać na +standardowym wyjściu 'yes', w przeciwnym razie — 'no'. + +For each string, check if the given string represents +5 or 6 digits number. The number should not contain leading zeros. +If the string fulfills the condition, you should print 'yes' on the +standard output and 'no' otherwise. + +UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu +dzieli się przez 10 z resztą 6. + +Attention. The task is for students whose students id remainder of the division by 10 is 6. + +POINTS: 1 +DEADLINE: 2023-12-10 23:59:59 +REMAINDER: 6/10 diff --git a/TaskE06/run.py b/TaskE06/run.py new file mode 100644 index 0000000..3ec7a19 --- /dev/null +++ b/TaskE06/run.py @@ -0,0 +1,19 @@ +import re +import sys + +def check(a): + pattern = r'^(?!0)\d{5,6}$' + + if re.match(pattern, a): + return True + else: + return False + + + +for line in sys.stdin: + word = line.strip() + if check(word): + print("yes") + else: + print("no") \ No newline at end of file diff --git a/TaskE06/test.exp b/TaskE06/test.exp new file mode 100644 index 0000000..daafc65 --- /dev/null +++ b/TaskE06/test.exp @@ -0,0 +1,10 @@ +no +no +yes +yes +yes +yes +no +no +yes +yes diff --git a/TaskE06/test.in b/TaskE06/test.in new file mode 100644 index 0000000..a8331f2 --- /dev/null +++ b/TaskE06/test.in @@ -0,0 +1,10 @@ +012345 +0123456 +10000 +100001 +12345 +123456 +333333333333 +9999 +99999 +999999 diff --git a/TaskE06/test.out b/TaskE06/test.out new file mode 100644 index 0000000..daafc65 --- /dev/null +++ b/TaskE06/test.out @@ -0,0 +1,10 @@ +no +no +yes +yes +yes +yes +no +no +yes +yes diff --git a/TaskE19/description.txt b/TaskE19/description.txt new file mode 100644 index 0000000..26d0474 --- /dev/null +++ b/TaskE19/description.txt @@ -0,0 +1,35 @@ +Potęga setki +============ + +Napisać program, który wczytuje kolejne wiersze ze standardowego +wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w +jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno +użyć negacji jako operacji w danym języku programowania, jeśli da się +to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy +użyć pojedynczego wyrażenia regularnego. + +Write a program, which loads consecutive lines from standard input +and analyze every line (with no newline character). You should +use regular expressions to the greatest extent possible (e.g. you +can not use negation in the programming language if it is +possible to express the same in regular expression). Wherever possible, +use one regular expression. + +Dla każdego napisu należy sprawdzić, czy zadany napis jest potęgą liczby +100. +Jeśli napis spełnia tak określony warunek, należy wypisać na +standardowym wyjściu 'yes', w przeciwnym razie — 'no'. + +For each string, check if the given string is the power of 100. +If the string fulfills the condition, you should print 'yes' on the +standard output and 'no' otherwise. + + +UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu +dzieli się przez 27 z resztą 19. + +Attention. The task is for students whose students id remainder of the division by 27 is 19. + +POINTS: 1 +DEADLINE: 2023-12-10 23:59:59 +REMAINDER: 19/27 diff --git a/TaskE19/run.py b/TaskE19/run.py new file mode 100644 index 0000000..8134134 --- /dev/null +++ b/TaskE19/run.py @@ -0,0 +1,19 @@ +import re +import sys + +def check(a): + pattern = r'^(?!10$)10*$' + + if re.match(pattern, a): + return True + else: + return False + + + +for line in sys.stdin: + word = line.strip() + if check(word): + print("yes") + else: + print("no") diff --git a/TaskE19/test.exp b/TaskE19/test.exp new file mode 100644 index 0000000..889c90d --- /dev/null +++ b/TaskE19/test.exp @@ -0,0 +1,9 @@ +no +yes +no +yes +yes +yes +no +no +no diff --git a/TaskE19/test.in b/TaskE19/test.in new file mode 100644 index 0000000..de73392 --- /dev/null +++ b/TaskE19/test.in @@ -0,0 +1,9 @@ +-100 +1 +10 +100 +10000 +1000000 +1001 +2000 +500 diff --git a/TaskE19/test.out b/TaskE19/test.out new file mode 100644 index 0000000..889c90d --- /dev/null +++ b/TaskE19/test.out @@ -0,0 +1,9 @@ +no +yes +no +yes +yes +yes +no +no +no From 99d78804602b00aab665cd36dda41cda413d9628 Mon Sep 17 00:00:00 2001 From: Polevara Veronika Date: Sun, 10 Dec 2023 17:37:17 +0100 Subject: [PATCH 3/3] Zmiana D-Task --- TaskD01/run.py | 2 +- TaskD01/simple.exp | 4 ++-- TaskD01/simple.in | 6 +++--- TaskD01/simple.out | 2 +- TaskD02/run.py | 2 +- TaskD02/simple.exp | 6 +++--- TaskD02/simple.in | 10 +++++----- TaskD02/simple.out | 6 +++--- TaskD03/run.py | 2 +- TaskD03/simple.exp | 6 +++--- TaskD03/simple.in | 10 +++++----- TaskD03/simple.out | 6 +++--- TaskD04/run.py | 2 +- TaskD04/simple.exp | 8 ++++---- TaskD04/simple.in | 10 +++++----- TaskD04/simple.out | 2 +- 16 files changed, 42 insertions(+), 42 deletions(-) diff --git a/TaskD01/run.py b/TaskD01/run.py index bdcf3a7..2a62b0f 100644 --- a/TaskD01/run.py +++ b/TaskD01/run.py @@ -10,4 +10,4 @@ for line in sys.stdin: if found_lines: - print('\n'.join(found_lines), end='') \ No newline at end of file + print('\n'.join(found_lines)) \ No newline at end of file diff --git a/TaskD01/simple.exp b/TaskD01/simple.exp index 0064e87..8f93eae 100644 --- a/TaskD01/simple.exp +++ b/TaskD01/simple.exp @@ -1,2 +1,2 @@ -Here comes Hamlet -Hamlet Hamlet again \ No newline at end of file +Here comes Hamlet +Hamlet Hamlet again diff --git a/TaskD01/simple.in b/TaskD01/simple.in index 24e23e3..3d2b578 100644 --- a/TaskD01/simple.in +++ b/TaskD01/simple.in @@ -1,3 +1,3 @@ -Here comes Hamlet -ABC -Hamlet Hamlet again \ No newline at end of file +Here comes Hamlet +ABC +Hamlet Hamlet again diff --git a/TaskD01/simple.out b/TaskD01/simple.out index 0064e87..996086c 100644 --- a/TaskD01/simple.out +++ b/TaskD01/simple.out @@ -1,2 +1,2 @@ Here comes Hamlet -Hamlet Hamlet again \ No newline at end of file +Hamlet Hamlet again diff --git a/TaskD02/run.py b/TaskD02/run.py index 8128990..f4e563c 100644 --- a/TaskD02/run.py +++ b/TaskD02/run.py @@ -9,5 +9,5 @@ for line in sys.stdin: if found_lines: - print('\n'.join(found_lines), end='') + print('\n'.join(found_lines)) diff --git a/TaskD02/simple.exp b/TaskD02/simple.exp index caa7f93..7b3620b 100644 --- a/TaskD02/simple.exp +++ b/TaskD02/simple.exp @@ -1,3 +1,3 @@ -Pies ma Ale -Kot i pies to zwierzeta -pies \ No newline at end of file +Pies ma Alę +Kot i pies to zwierzęta +pies diff --git a/TaskD02/simple.in b/TaskD02/simple.in index cbf2ba9..99827b0 100644 --- a/TaskD02/simple.in +++ b/TaskD02/simple.in @@ -1,5 +1,5 @@ -Pies ma Ale -Ala ma psa -tu nic nie ma -Kot i pies to zwierzeta -pies \ No newline at end of file +Pies ma Alę +Ala ma psa +tu nic nie ma +Kot i pies to zwierzęta +pies diff --git a/TaskD02/simple.out b/TaskD02/simple.out index caa7f93..c49b5ad 100644 --- a/TaskD02/simple.out +++ b/TaskD02/simple.out @@ -1,3 +1,3 @@ -Pies ma Ale -Kot i pies to zwierzeta -pies \ No newline at end of file +Pies ma Alę +Kot i pies to zwierzęta +pies diff --git a/TaskD03/run.py b/TaskD03/run.py index 05f6da4..b9d111c 100644 --- a/TaskD03/run.py +++ b/TaskD03/run.py @@ -10,5 +10,5 @@ for line in sys.stdin: if found_lines: - print('\n'.join(found_lines), end='') + print('\n'.join(found_lines)) diff --git a/TaskD03/simple.exp b/TaskD03/simple.exp index 175c58f..7134c32 100644 --- a/TaskD03/simple.exp +++ b/TaskD03/simple.exp @@ -1,3 +1,3 @@ -Kiedys byl 1934 r. -Kiedys byl 1934 r.fsdfsdfsdf -1934 r. to jakas data \ No newline at end of file +Kiedyś był 1934 r. +Kiedyś był 1934 r.fsdfsdfsdf +1934 r. to jakaś data diff --git a/TaskD03/simple.in b/TaskD03/simple.in index e3a93b7..66d0858 100644 --- a/TaskD03/simple.in +++ b/TaskD03/simple.in @@ -1,5 +1,5 @@ -Kiedys byl 1934 r. -Kiedys byl 1934 r.fsdfsdfsdf -Kiedys byl 1935 rok -1934 r. to jakas data -1934 to tez jakas data \ No newline at end of file +Kiedyś był 1934 r. +Kiedyś był 1934 r.fsdfsdfsdf +Kiedyś był 1935 rok +1934 r. to jakaś data +1934 to też jakaś data diff --git a/TaskD03/simple.out b/TaskD03/simple.out index 175c58f..2086f79 100644 --- a/TaskD03/simple.out +++ b/TaskD03/simple.out @@ -1,3 +1,3 @@ -Kiedys byl 1934 r. -Kiedys byl 1934 r.fsdfsdfsdf -1934 r. to jakas data \ No newline at end of file +Kiedyś był 1934 r. +Kiedyś był 1934 r.fsdfsdfsdf +1934 r. to jakaś data diff --git a/TaskD04/run.py b/TaskD04/run.py index fc5985a..e0b0f1e 100644 --- a/TaskD04/run.py +++ b/TaskD04/run.py @@ -18,4 +18,4 @@ for line in sys.stdin: if digit_groups: processed_lines.append(' '.join(digit_groups)) -print('\n'.join(processed_lines), end='') \ No newline at end of file +print('\n'.join(processed_lines)) \ No newline at end of file diff --git a/TaskD04/simple.exp b/TaskD04/simple.exp index c184ec8..c661a47 100644 --- a/TaskD04/simple.exp +++ b/TaskD04/simple.exp @@ -1,4 +1,4 @@ -34234 34 5 -34535 -34 -1992 1999 \ No newline at end of file +34234 34 5 +34535 +34 +1992 1999 diff --git a/TaskD04/simple.in b/TaskD04/simple.in index df710ac..25d660c 100644 --- a/TaskD04/simple.in +++ b/TaskD04/simple.in @@ -1,5 +1,5 @@ -34234 34 dfd gfd 5 -34535 -fsdflskfjsdflk -fsdkfj sdf34fdfd -The company was established in 1992 from the merger of Authorware, Inc. (creators of the Authorware package) and MacroMind-Paracomp (producer of Macromind Director). In 1999, Macromedia purchased Allaire and its bi \ No newline at end of file +34234 34 dfd gfd 5 +34535 +fsdflskfjsdflk +fsdkfj sdf34fdfd +Firma powstała w 1992 r., z połączenia Authorware, Inc. (twórców pakietu Authorware) i MacroMind-Paracomp (producenta Macromind Director). W 1999 r. Macromedia zakupiła firmę Allaire i jej bi diff --git a/TaskD04/simple.out b/TaskD04/simple.out index c184ec8..ab6d9c5 100644 --- a/TaskD04/simple.out +++ b/TaskD04/simple.out @@ -1,4 +1,4 @@ 34234 34 5 34535 34 -1992 1999 \ No newline at end of file +1992 1999