	.title	desgri
	.ident	/X1.00/
    .Asect
	. = 40000

sta$rt:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#-10,SP
	MOV	#Enter,@.54562
	CLR	-10(R5)
.40022:	CMP	-10(R5),#7	;ZAPOLNENIE TABLICY KLAWIATURY
	BGE	.40062
	MOV	-10(R5),R0
	ASL	R0
	MOV	-10(R5),R1
	ASL	R1
	MOV	.54602(R1),@<.54564>(R0)
	INC	-10(R5)
	BR	.40022

.40062:	JSR	PC,csv$
	JMP	sp$r5		;?

csv$:	MOV	R5,-(SP)
	MOV	SP,R5
	JMP	sp$r5

Enter:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177766,SP
	MOV	#1,.52036
Cyckle:	TST	.52036
	BEQ	.40152
	JSR	PC,gt$key
	MOV	R0,.51762
	MOV	.51762,R0	;?
	MOV	#CtrlSt,R1
	JMP	Disp$

.40152:	BR	.40160		;?

.40154:	JSR	PC,gt$key
.40160:	JMP	sp$r5

.40164:	JSR	PC,Print
	BR	Cyckle

.40172:	BR	Cyckle

.40174:	MOV	#now.X,@SP	;DUGA
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#next.X,@SP
	JSR	PC,clr12
	MOV	#next.Y,@SP
	JSR	PC,clr12
	MOV	#Alpha,@SP
	JSR	PC,clr12
	JSR	PC,Cyrck
	BR	Cyckle

.40252:	MOV	#now.X,@SP	;ZALIWKA CWETOM
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#next.X,@SP
	JSR	PC,clr12
	MOV	#next.Y,@SP
	JSR	PC,clr12
	JSR	PC,Fild
	BR	Cyckle

.40320:	MOV	#now.X,@SP	;oTRISOWKA LINII
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#next.X,@SP
	JSR	PC,clr12
	MOV	#next.Y,@SP
	JSR	PC,clr12
	JSR	PC,Line
	BR	Cyckle

.40366:	MOV	#now.X,@SP
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	JSR	PC,Dot$$
	BR	Cyckle

.40414:	MOV	#N.spr,@SP
	JSR	PC,clr12
	MOV	#now.X,@SP
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	JSR	PC,OutSpr
	BR	Cyckle

.40452:	MOV	#N.spr,@SP		;zAPISX SPRAJTA S \KRANA
	JSR	PC,clr12
	MOV	#now.X,@SP
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	JSR	PC,GtScSp
	BR	Cyckle

.40510:	MOV	#now.X,@SP		;{TRIHOWKA
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	JSR	PC,Dash
	JMP	Cyckle

.40540:	MOV	#now.X,@SP	;pOLU^ENIE CWETA TO^KI
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	JSR	PC,GetDot
	JMP	Cyckle

.40570:	MOV	#N.spr,@SP	;wWOD SPRAJTA
	JSR	PC,clr12
	JSR	PC,In.Spr
	JMP	Cyckle

.40610:	MOV	#Invers,@SP
	JSR	PC,clr12
	JMP	Cyckle

.40624:	MOV	#1,.52074	;zADANIE pALITRY
	CLR	-10(R5)
.40636:	CMP	-10(R5),#16.
	BGE	.40700
	MOV	#ColTmp,@SP
	JSR	PC,clr12
.40656:	MOV	#TmpBuf,R0
	ADD	-10(R5),R0
	MOVB	ColTmp,@R0
	INC	-10(R5)
	BR	.40636
.40700:	CLR	.52074
	JSR	PC,ColSet
	JMP	Cyckle

.40714:	MOV	#PenCol,@SP
	JSR	PC,clr12
	JMP	Cyckle

.40730:	MOV	#Max.Y,@SP
	JSR	PC,clr12
	MOV	#Max.X,@SP
	JSR	PC,clr12
	JSR	PC,Screen
	JMP	Cyckle

.40760:	MOV	#1,.52074	;bESFORMATNYJ WWOD
	MOV	#Un.Adr,@SP
	JSR	PC,clr12
	CLR	.52074
	MOV	#N.Word,@SP
	JSR	PC,clr12
	JSR	PC,Un.Inp
	JMP	Cyckle

.41022:	MOV	#1,.52074	;bESFORMATNYJ WYWOD
	MOV	#Un.Adr,@SP
	JSR	PC,clr12
	CLR	.52074
	MOV	#N.Word,@SP
	JSR	PC,clr12
	JSR	PC,Un.Out
	JMP	Cyckle

.41064:	MOV	#now.X,@SP		;pERENOS FRAGMENTA
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#next.X,@SP
	JSR	PC,clr12
	MOV	#next.Y,@SP
	JSR	PC,clr12
	MOV	#New.X,@SP
	JSR	PC,clr12
	MOV	#New.Y,@SP
	JSR	PC,clr12
	JSR	PC,Trans
	JMP	Cyckle

.41154:	MOV	#now.X,@SP		;pEREDA^A M. NA \KRAN
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#MatAdr,@SP
	JSR	PC,clr12
	MOV	#N.Word,@SP
	JSR	PC,clr12
	JSR	PC,PtMatx
	JMP	Cyckle

.41224:	MOV	#now.X,@SP	;PEREDA^A MATRIC S \KRANA.
	JSR	PC,clr12
	MOV	#now.Y,@SP
	JSR	PC,clr12
	MOV	#MatAdr,@SP
	JSR	PC,clr12
	MOV	#N.Word,@SP
	JSR	PC,clr12
	JSR	PC,GtMatx
	JMP	Cyckle

NoChar:	JMP	Cyckle

clr12:	MOV	R5,-(SP)	;o^I]AET 12 BAJT PO ADR. AscBuf=52124
	MOV	SP,R5
	ADD	#177766,SP
	MOV	#AscBuf,.52142	;?
	CLR	-10(R5)
.41322:	CMP	-10(R5),#12.
	BGE	.41352
	mov	#AscBuf,r0
	add	-10(r5),r0
	clrb	@r0
	INC	-10(R5)
	BR	.41322

.41352:	MOV	#AscBuf,.52142
	CLR	.52042
	CLR	.52040
	MOV	#1,.52044
.41376:	TST	.52044
	BEQ	.41430
	JSR	PC,gt$key
	MOV	R0,.51762
	MOV	.51762,R0	;?
	MOV	#Asc$St,R1
	JMP	Disp$

.41430:	TST	.52074
	BEQ	.41626
	MOV	#10,@SP
	MOV	4(R5),-(SP)
	MOV	#14,-(SP)
	MOV	#AscBuf,-(SP)
	JSR	PC,.50754
	ADD	#6,SP
	BR	.41656

.41470:	CLR	.52040
	CLR	.52044
	CLR	.52036
	JSR	PC,gt$key
	MOV	R0,.51762
	BR	.41376	;?

.41516:	BR	.41376

.41520:	CLR	.52044	;??
	BR	.41376

.41526:	TST	.52040
	BEQ	.41376
	CLR	.52044
	BR	.41376

.41542:	MOV	#1,.52042
	BR	.41376

.41552:	TST	.52042
	BNE	.41376
	MOV	#1,.52040
	MOV	.52142,R0
	INC	.52142
	MOV	.51762,R1
	BIC	#-200,R1
	MOVB	R1,@R0
	BR	.41376

Inv.Ch:	TST	.52040
	BEQ	.41376
	CLR	.52044
	BR	.41376

.41626:	MOV	#12,@SP
	MOV	4(R5),-(SP)
	MOV	#14,-(SP)
	MOV	#AscBuf,-(SP)
	JSR	PC,.50754
	ADD	#6,SP
.41656:	JMP	sp$r5

gt$key:	MOV	R5,-(SP)
	MOV	SP,R5
.41666:	BIT	#200,@.52046
	BEQ	.41666
	MOV	@.52050,.52072
	MOV	.52072,R0
	JMP	sp$r5

Put.Ch:	MOV	R5,-(SP)
	MOV	SP,R5
.41720:	BIT	#200,@.52052
	BEQ	.41720
	MOV	4(R5),@.52054
	JMP	sp$r5

PtMatx:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177756,SP
	MOV	MatAdr,177764(R5)
	MOV	N.Word,177762(R5)
	CMP	Max.X,#400.
	BNE	.42016
	MOV	now.X,R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,now.X
	BR	.42034

.42016:	MOV	now.X,R1
	SXT	R0
	DIV	#10,R0
	MOV	R0,now.X
.42034:	CLR	-10(R5)
.42040:	CMP	-10(R5),177764(R5)
	BGE	.42104
	MOV	#15574,.54414
.42054:	CMP	Max.Y,#240.
	BNE	.42110
	MOV	now.Y,R0
	ASL	R0
	ASL	R0
	ADD	R0,.54414
	BR	.42122
.42104:	JMP	sp$r5
.42110:	MOV	now.Y,R0
	ASL	R0
	ADD	R0,.54414
.42122:	MOV	@.54414,.52034
	ADD	now.X,.52034
	CLR	177766(R5)
.42142:	CMP	177766(R5),177762(R5)
	BGE	.42264
	JSR	PC,gt$key
	MOV	R0,177756(R5)
	JSR	PC,gt$key
	MOV	R0,-20(R5)
	MOV	-20(R5),R0
	ASH	#10,R0
	MOV	R0,-20(R5)
	BIS	177756(R5),-20(R5)
	MOV	.52034,@.52066
	MOV	-20(R5),@.52070
	TST	Invers
	BEQ	.42276
	MOV	@.52070,.51764
	MOV	.51764,R0
	MOV	-20(R5),R1
	XOR	R1,R0
	MOV	R0,@.52070
	BR	.42304
.42264:	INC	now.Y
	INC	-10(R5)
	BR	.42040
.42276:	MOV	-20(R5),@.52070
.42304:	INC	.52034
	INC	177766(R5)
	BR	.42142

GtMatx:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177754,SP
	MOV	MatAdr,177764(R5)
	MOV	N.Word,177762(R5)
	CMP	Max.X,#400.
	BNE	.42372
	MOV	now.X,R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,now.X
	BR	.42410
.42372:	MOV	now.X,R1
	SXT	R0
.42377:	DIV	#10,R0
	MOV	R0,now.X
.42410:	CLR	-10(R5)
.42414:	CMP	-10(R5),177764(R5)
	BGE	.42460
	MOV	#15574,.54414
	CMP	Max.Y,#240.
	BNE	.42464
	MOV	now.Y,R0
	ASL	R0
	ASL	R0
	ADD	R0,.54414
	BR	.42476
.42460:	JMP	sp$r5
.42464:	MOV	now.Y,R0
	ASL	R0
	ADD	R0,.54414
.42476:	MOV	@.54414,.52034
	ADD	now.X,.52034
	CLR	177766(R5)
.42516:	CMP	177766(R5),177762(R5)
	BGE	.42640
	MOV	.52034,@.52066
	MOV	@.52070,-20(R5)
	MOV	-20(R5),R0
	BIC	#-400,R0
	MOV	R0,177756(R5)
	MOV	177756(R5),@SP
	JSR	PC,Put.Ch
	MOV	-20(R5),R0
	ASH	#-10,R0
	MOV	R0,-20(R5)
	MOV	-20(R5),R0
	BIC	#-400,R0
	MOV	R0,177756(R5)
	MOV	177756(R5),@SP
	JSR	PC,Put.Ch
	INC	.52034
	INC	177766(R5)
	BR	.42516
.42640:	INC	now.Y
	INC	-10(R5)
	BR	.42414

Fild:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#-20,SP
.42662:	CMP	now.Y,next.Y
	BLE	.42714
.42672:	MOV	next.Y,177764(R5)

.42700:	MOV	now.Y,next.Y
	MOV	177764(R5),now.Y
.42714:	CMP	now.X,next.X
	BLE	.42746
.42724:	MOV	next.X,177762(R5)
	MOV	now.X,next.X
	MOV	177762(R5),now.X
.42746:	MOV	next.Y,R0
	SUB	now.Y,R0
	MOV	R0,177764(R5)
	MOV	next.X,R0
	SUB	now.X,R0
	MOV	R0,177762(R5)
	CMP	Max.X,#400.
	BNE	.43044
	MOV	now.X,R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,now.X
	MOV	177762(R5),R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,177762(R5)
	BR	.43100
.43044:	MOV	now.X,R1
	SXT	R0
	DIV	#10,R0
	MOV	R0,now.X
	MOV	177762(R5),R1
	SXT	R0
	DIV	#10,R0
	MOV	R0,177762(R5)
.43100:	CLR	-10(R5)
.43104:	CMP	-10(R5),177764(R5)
	BGE	.43150
	MOV	#15574,.54414
	CMP	Max.Y,#240.
	BNE	.43154
	MOV	now.Y,R0
	ASL	R0
	ASL	R0
	ADD	R0,.54414
	BR	.43166
.43150:	JMP	sp$r5
.43154:	MOV	now.Y,R0
	ASL	R0
	ADD	R0,.54414
.43166:	MOV	@.54414,.52034
	ADD	now.X,.52034
	CLR	177766(R5)
.43206:	CMP	177766(R5),177762(R5)
	BGE	.43270
	MOV	.52034,@.52066
	TST	Invers
	BEQ	.43302
	MOV	@.52070,.51764
	MOV	PenCol,R0
	ASL	R0
	ADD	Cnt0,R0
.43252:	MOV	@R0,R0
	XOR	R0,.51764
.43260:	MOV	.51764,@.52070
	BR	.43320
.43270:	INC	now.Y
	INC	-10(R5)
	BR	.43104
.43302:	MOV	PenCol,R0
	ASL	R0
	ADD	Cnt0,R0
	MOV	@R0,@.52070
.43320:	INC	.52034
	INC	177766(R5)
	BR	.43206

Trans:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177750,SP
	CMP	now.Y,next.Y
	BLE	.43374
	MOV	next.Y,177764(R5)
	MOV	now.Y,next.Y
	MOV	177764(R5),now.Y
.43374:	CMP	now.X,next.X
	BLE	.43426
	MOV	next.X,177762(R5)
	MOV	now.X,next.X
	MOV	177762(R5),now.X
.43426:	MOV	now.X,177756(R5)
	MOV	now.Y,177754(R5)
	MOV	PenCol,-20(R5)
	MOV	next.Y,R0
	SUB	now.Y,R0
	MOV	R0,177764(R5)
	MOV	next.X,R0
	SUB	now.X,R0
	MOV	R0,177762(R5)
	CLR	-10(R5)
.43504:	CMP	-10(R5),177762(R5)
	BGE	.43634
	CLR	177766(R5)
.43520:	CMP	177766(R5),177764(R5)
	BGE	.43646
	MOV	177756(R5),R0
	ADD	-10(R5),R0
	MOV	R0,now.X
	MOV	177754(R5),R0
	ADD	177766(R5),R0
	MOV	R0,now.Y
	CLR	@SP
	JSR	PC,Gt$Dot
	MOV	R0,PenCol
	MOV	New.X,R0
	ADD	-10(R5),R0
	MOV	R0,now.X
.43606:	MOV	New.Y,R0
	ADD	177766(R5),R0
	MOV	R0,now.Y
	JSR	PC,Dot$$
	INC	177766(R5)
	BR	.43520
.43634:	MOV	-20(R5),PenCol
	JMP	sp$r5
.43646:	INC	-10(R5)
	BR	.43504

Line:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177756,SP
	MOV	next.Y,R0
	SUB	now.Y,R0
	MOV	R0,-10(R5)
	MOV	next.X,R0
	SUB	now.X,R0
	MOV	R0,177766(R5)
	TST	-10(R5)
	BGE	.43736
	MOV	-10(R5),R0
	NEG	R0
	MOV	R0,177762(R5)
	BR	.43744
.43736:	MOV	-10(R5),177762(R5)
.43744:	TST	177766(R5)
	BGE	.43766
	MOV	177766(R5),R0
	NEG	R0
	MOV	R0,177764(R5)
	BR	.43774

.43766:	MOV	177766(R5),177764(R5)
.43774:	CMP	177764(R5),177762(R5)
	BGE	.44014
	MOV	177762(R5),-20(R5)
	BR	.44022

.44014:	MOV	177764(R5),-20(R5)
.44022:	JSR	PC,Dot$$
	CLR	177764(R5)
.44032:	MOV	177764(R5),177762(R5)
	MOV	-20(R5),177756(R5)
.44046:	TST	177756(R5)
	BEQ	.44114
	ADD	-10(R5),177762(R5)
	ADD	177766(R5),177764(R5)
	CMP	177762(R5),-20(R5)
	BLT	.44120
	INC	now.Y
	SUB	-20(R5),177762(R5)
	BR	.44120

.44114:	JMP	sp$r5

.44120:	MOV	-20(R5),R0
	NEG	R0
	CMP	177762(R5),R0
	BGT	.44146
	DEC	now.Y
	ADD	-20(R5),177762(R5)
.44146:	CMP	177764(R5),-20(R5)
	BLT	.44170
	INC	now.X
	SUB	-20(R5),177764(R5)
.44170:	MOV	-20(R5),R0
	NEG	R0
	CMP	177764(R5),R0
	BGT	.44216
.44204:	DEC	now.X
	ADD	-20(R5),177764(R5)
.44216:	JSR	PC,Dot$$
	DEC	177756(R5)
	BR	.44046		;KONEC PR. oTRISOWKI LINII

Dot$$:	JSR	R5,r$Save
	ADD	#-4,SP
	TST	now.Y
	BLT	.44256
	cmp	now.Y,Max.Y
	ble	.44260
.44256:	BR	.44276	;??

.44260:	TST	now.X
	BLT	.44276
	cmp	now.X,Max.X
.44274:	BLE	.44302
.44276:	JMP	r$Ret

.44302:	MOV	now.Y,R2
	MOV	now.X,R3
	MOV	R3,-10(R5)
	MOV	#15574,.54414
	CMP	Max.Y,#240.
	BNE	.44336
	ASL	R2
.44336:	MOV	R2,R0
	ASL	R0
	ADD	R0,.54414
	MOV	@.54414,.52034
	CMP	Max.X,#400.
	BNE	.44414
	ASR	R3
	ASR	R3
	MOV	now.X,R0
	BIC	#-4,R0
	MOV	R0,-10(R5)
	MOV	#.54530,ptr1
	BR	.44442

.44414:	ASH	#-3,R3
	MOV	now.X,R0
	BIC	#-10,R0
	MOV	R0,-10(R5)
	MOV	#.54540,ptr1
.44442:	MOV	-10(R5),R0
	ASL	R0
	ADD	R0,ptr1
	ADD	R3,.52034
	MOV	.52034,@.52066
	MOV	@.52070,.51764
	MOV	PenCol,R0
	ASL	R0
	ADD	Cnt0,R0
	MOV	@R0,R0
	MOV	@ptr1,R1
.44514:	com	r1
	bic	r1,r0
	mov	r0,.51766
	TST	Invers	;PRIZNAK INWERSII/NALOVENIQ ?
	BEQ	.44552
	MOV	.51764,R0
	MOV	.51766,R1
	XOR	R1,R0
	MOV	R0,@.52070
	BR	.44606		;br .44276

.44552:	MOV	@ptr1,R0
	MOV	#-1,R1
.44562:	XOR	R1,R0
	COM	R0
	BIC	R0,.51764
	MOV	.51764,R0
	BIS	.51766,R0
	MOV	R0,@.52070
.44606:	BR	.44276

Dash:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177762,SP
	CLR	@SP
	JSR	PC,Gt$Dot
	MOV	R0,.52016
.44632:	CMP	PenCol,.52016
	BEQ	.45144
.44642:	TST	now.Y
	BNE	.44654
	INC	now.Y
.44654:	CMP	now.Y,max.Y
	BLE	.44676
	MOV	Max.Y,R0
	DEC	R0
	MOV	R0,now.Y
.44676:	TST	now.X
	BNE	.44710
	INC	now.X
.44710:	CMP	now.X,max.X
.44716:	BLE	.44732
	MOV	Max.X,R0
	DEC	R0
	MOV	R0,now.X
.44732:	MOV	now.Y,177766(R5)
	MOV	now.X,177764(R5)
.44746:	MOV	#1,@SP
	JSR	PC,Gt$Dot
	TST	R0
	BEQ	.44776
	INC	now.Y
	CMP	now.Y,Max.Y
	BLT	.44746
.44776:	MOV	now.Y,R0
	DEC	R0
	MOV	R0,-10(R5)
	MOV	177766(R5),R0
	DEC	R0
	MOV	R0,now.Y
.45022:	MOV	#1,@SP
	JSR	PC,Gt$Dot
	TST	R0
	BEQ	.45050
	DEC	now.Y
	TST	now.Y
	BNE	.45022
.45050:	MOV	now.Y,R0
	INC	R0
	MOV	R0,177766(R5)
	MOV	177766(R5),now.Y
.45070:	CMP	now.Y,-10(R5)
	BGT	.45144
	MOV	177764(R5),R0
	INC	R0
	MOV	R0,now.X
.45112:	MOV	#1,@SP
	JSR	PC,Gt$Dot
	TST	R0
	BEQ	.45156
	INC	now.X
	CMP	now.X,Max.X
	BLT	.45112
	BR	.45156
.45144:	JMP	sp$r5
.45150:	INC	now.Y
	BR	.45070
.45156:	MOV	177764(R5),R0
	DEC	R0
	MOV	R0,now.X
.45170:	MOV	#1,@SP
	JSR	PC,Gt$Dot
	TST	R0
	BEQ	.45150
	DEC	now.X
	TST	now.X
	BNE	.45170
	BR	.45150

OutSpr:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177764,SP
	MOV	N.spr,R0
	ASL	R0
	MOV	SprTab(R0),N..Spr
	CMP	Max.X,#400.
	BNE	.45274
	MOV	now.X,R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,now.X
	BR	.45312
.45274:	MOV	now.X,R1
	SXT	R0
	DIV	#10,R0
	MOV	R0,now.X
.45312:	CLR	-10(R5)
.45316:	CMP	-10(R5),#20
	BGE	.45362
.45326:	MOV	#15574,.54414
	CMP	max.Y,#240.
	BNE	.45366
	MOV	now.Y,R0
	ASL	R0
	ASL	R0
	ADD	R0,.54414
	BR	.45400
.45362:	JMP	sp$r5
.45366:	MOV	now.Y,R0
.45372:	ASL	R0
	ADD	R0,.54414
.45400:	MOV	@.54414,.52034
	ADD	now.X,.52034
	CLR	177766(R5)
.45420:	CMP	177766(R5),#4
	BGE	.45472
	MOV	.52034,@.52066
	TST	Invers
	BEQ	.45504
	MOV	@.52070,177764(R5)
	MOV	177764(R5),R0
	MOV	@N..Spr,R1
	XOR	R1,R0
	MOV	R0,@.52070
	BR	.45512
.45472:	INC	now.Y
	INC	-10(R5)
	BR	.45316
.45504:	MOV	@N..Spr,@.52070
.45512:	ADD	#2,N..Spr
	INC	.52034
	INC	177766(R5)
	BR	.45420

In.Spr:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177766,SP
	MOV	N.spr,R0
	ASL	R0
	MOV	SprTab(R0),N..Spr
	CLR	-10(R5)
.45562:	CMP	-10(R5),#100
	BGE	.45616
	MOV	N..Spr,@SP
	JSR	PC,clr12
	ADD	#2,N..Spr
	INC	-10(R5)
	BR	.45562
.45616:	JMP	sp$r5

GtScSp:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177766,SP
	MOV	N.spr,R0
	ASL	R0
	MOV	SprTab(R0),N..Spr
	CMP	Max.X,#400.
	BNE	.45676
	MOV	now.X,R1
	SXT	R0
	DIV	#4,R0
	MOV	R0,now.X
	BR	.45714

.45676:	MOV	now.X,R1
	SXT	R0
	DIV	#10,R0
	MOV	R0,now.X
.45714:	CLR	-10(R5)
.45720:	CMP	-10(R5),#20
	BGE	.45764
.45730:	MOV	#15574,.54414
	CMP	max.Y,#240.
	BNE	.45770
	MOV	now.Y,R0
	ASL	R0
	ASL	R0
	ADD	R0,.54414
	BR	.46002
.45764:	JMP	sp$r5
.45770:	MOV	now.Y,R0
.45774:	ASL	R0
	ADD	R0,.54414
.46002:	MOV	@.54414,.52034
	ADD	now.X,.52034
	CLR	177766(R5)
.46022:	CMP	177766(R5),#4
	BGE	.46066
	MOV	.52034,@.52066
	MOV	@.52070,@N..Spr
	ADD	#2,N..Spr
	INC	.52034
.46056:	INC	177766(R5)
	BR	.46022

.46066:	INC	now.Y
	INC	-10(R5)
	BR	.45720

Gt$Dot:	JSR	R5,r$Save
.46103:	TST	-(SP)
	MOV	now.Y,R4
	MOV	now.X,R2
	MOV	R2,R3
	MOV	#15574,.54414
	CMP	Max.Y,#240.
	BNE	.46140
	ASL	R4
.46140:	MOV	R4,R0
	ASL	R0
	ADD	R0,.54414
	MOV	@.54414,.52034
	CMP	Max.X,#400.
	BNE	.46214
	ASR	R2
	ASR	R2
	MOV	now.X,R0
	BIC	#-4,R0
	MOV	R0,R3
	MOV	#.54530,ptr1
	BR	.46240
.46214:	ASH	#-3,R2
.46216:	MOV	now.X,R0
	BIC	#-10,R0
	MOV	R0,R3
	MOV	#.54540,ptr1
.46240:	MOV	R3,R0
.46242:	ASL	R0
	ADD	R0,ptr1
	ADD	R2,.52034
	MOV	.52034,@.52066
	MOV	@.52070,R0
	MOV	@ptr1,R1
.46272:	COM	R1
	BIC	R1,R0
	MOV	R0,.51764
	TST	4(R5)
	BEQ	.46346
	MOV	.52016,R0
	ASL	R0
	ADD	Cnt0,R0
	MOV	@R0,R0
	MOV	@ptr1,R1
.46330:	COM	R1
	BIC	R1,R0
	CMP	R0,.51764
	BEQ	.46452
	CLR	R0
	BR	.46556

.46346:	MOV	.52034,@.52066
	MOV	@.52070,R0
.46360:	MOV	@ptr1,R1
	COM	R1
	BIC	R1,R0
	MOV	R0,.51764
	CMP	Max.X,#400.
	BNE	.46562
	MOV	#3,R0

.46410:	SUB	R3,R0
	ASL	R0
	ASL	R0
	MOV	R0,.51766
	MOV	.51764,R0
	MOV	.51766,R1
	NEG	R1
	ASH	R1,R0
	MOV	R0,.51764
	BIC	#-20,.51764
	BR	.46624

.46452:	MOV	.52034,@.52066
	MOV	@.52070,.51764
	MOV	@ptr1,R0
	MOV	#-1,R1
.46476:	XOR	R1,R0
	COM	R0
	BIC	R0,.51764
	MOV	PenCol,R0
	ASL	R0
	ADD	Cnt0,R0
	MOV	@R0,R0
	MOV	@ptr1,R1
.46526:	COM	R1
	BIC	R1,R0
	MOV	R0,.51766
	MOV	.51764,R0
	BIS	.51766,R0
	MOV	R0,@.52070
	MOVB	#1,R0
.46556:	JMP	r$Ret

.46562:	MOV	#7,R0
	SUB	R3,R0
	ASL	R0
	MOV	R0,.51766
	MOV	.51764,R0
	MOV	.51766,R1
	NEG	R1
	ASH	R1,R0
	MOV	R0,.51764
	BIC	#-4,.51764
.46624:	;--BR-
	MOV	.51764,R0
	BR	.46556

GetDot:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177766,SP
	CLR	@SP
	JSR	PC,Gt$Dot
	MOV	R0,-10(R5)
	ADD	#101,-10(R5)
	MOV	-10(R5),@.52054
	JMP	sp$r5

ColSet:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177766,SP
	CLR	-10(R5)
.46710:	CMP	-10(R5),#20
	BGE	.46766
	MOV	-10(R5),177766(R5)
	ASL	177766(R5)
	ASL	177766(R5)
	MOVB	177766(R5),@.52060
.46744:	MOV	#TmpBuf,R0
	ADD	-10(R5),R0
	MOVB	@R0,@.52062
	INC	-10(R5)
	BR	.46710
.46766:	JMP	sp$r5

Screen:	MOV	R5,-(SP)
	MOV	SP,R5
	CMP	Max.Y,#480.
	BNE	.47016
	BIS	#2,@.52056
	BR	.47024
.47016:	BIC	#2,@.52056
.47024:	CMP	Max.X,#400.
	BNE	.47052
	BISB	#200,@.52060
.47042:	MOV	#ptr400,Cnt0
.47050:	BR	.47066
.47052:	BICB	#-200,@.52060
	MOV	#ptr800,Cnt0
.47066:	JMP	sp$r5

Un.Inp:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177762,SP
	MOV	Un.Adr,.52032
	CLR	177766(R5)
.47114:	CMP	177766(R5),N.Word
	BGE	.47210
	JSR	PC,gt$key
	MOV	R0,177762(R5)
	JSR	PC,gt$key
	MOV	R0,177764(R5)
	MOV	177764(R5),R0
	ASH	#10,R0
	MOV	R0,177764(R5)
	BIS	177762(R5),177764(R5)
	MOV	177764(R5),@.52032
	ADD	#2,.52032
	INC	177766(R5)
	BR	.47114
.47210:	JMP	sp$r5

Un.Out:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#-20,SP
	MOV	Un.Adr,.52032
	CLR	177766(R5)
.47236:	CMP	177766(R5),N.Word
	BGE	.47354
	MOV	@.52032,177764(R5)
	MOV	177764(R5),R0
	BIC	#-400,R0
	MOV	R0,177762(R5)
	MOV	177762(R5),@SP
	JSR	PC,Put.Ch
	MOV	177764(R5),R0
	ASH	#-10,R0
	MOV	R0,177764(R5)
	MOV	177764(R5),R0
	BIC	#-400,R0
	MOV	R0,177762(R5)
	MOV	177762(R5),@SP
	JSR	PC,Put.Ch
	ADD	#2,.52032
	INC	177766(R5)
	BR	.47236
.47354:	JMP	sp$r5

Cyrck:	JSR	R5,r$Save
	ADD	#177752,SP
	MOV	next.X,R0
	SUB	now.X,R0
	MOV	R0,177764(R5)
	MOV	next.Y,R0
	SUB	now.Y,R0
	MOV	R0,177762(R5)
	MOV	177762(R5),177756(R5)
	MOV	177764(R5),R1
	MUL	177764(R5),R1
	MOV	177762(R5),R3
	MUL	177762(R5),R3
	ADD	R3,R1
	MOV	R1,177744(R5)
	CLR	177746(R5)
	CLR	-10(R5)
.47464:	CMP	-10(R5),#310
	BGE	.47526
	MOV	177746(R5),R1
	MUL	177746(R5),R1
	MOV	R1,177766(R5)
	CMP	177766(R5),177744(R5)
	BHI	.47556
	INC	177746(R5)
	BR	.47564

.47526:	MOV	177746(R5),177744(R5)
	TST	177762(R5)
	BGE	.47572
	MOV	177762(R5),R0
	NEG	R0
	MOV	R0,177762(R5)
	BR	.47572

.47556:	mov	#454,-10(R5)
.47564:	INC	-10(R5)
	BR	.47464

.47572:	CLR	-20(R5)
	MOV	177762(R5),R1
	MUL	#144,R1
	MOV	R1,177762(R5)
	TST	177762(R5)
	BEQ	.47736
	MOV	177762(R5),-(SP)
	SXT	-(SP)
	MOV	177744(R5),-(SP)
	CLR	-(SP)
	JSR	PC,.51530
	TST	(SP)+
	MOV	(SP)+,R0
	MOV	R0,177766(R5)
	CLR	-10(R5)
.47654:	CMP	-10(R5),#22
	BGE	.47752
	MOV	-10(R5),R0
	ASL	R0
	CMP	177766(R5),InterT(R0)
	BLT	.50020
	MOV	-10(R5),R0
	ASL	R0
	CMP	177766(R5),<InterT+2>(R0)
	BGT	.50020
	MOV	-10(R5),-20(R5)
	MOV	#22,-10(R5)
	BR	.50020

.47736:	TST	177764(R5)
	BLE	.50312
	CLR	-10(R5)
	BR	.50312

.47752:	MOV	177756(R5),177762(R5)
	MOV	-20(R5),-10(R5)
	TST	177762(R5)
	BGE	.50026
	TST	177764(R5)
	BLE	.50026
	MOV	#110,R0
	SUB	-10(R5),R0
	MOV	R0,-10(R5)
	BR	.50152

.50020:	INC	-10(R5)
	BR	.47654

.50026:	TST	177762(R5)
	BGE	.50052
	TST	177764(R5)
	BGE	.50052
	ADD	#44,-10(R5)
	BR	.50152

.50052:	TST	177762(R5)
	BLE	.50104
	TST	177764(R5)
	BGE	.50104
	MOV	#44,R0
	SUB	-10(R5),R0
	MOV	R0,-10(R5)
	BR	.50152

.50104:	TST	177762(R5)
	BLE	.50130
	TST	177764(R5)
	BNE	.50130
	MOV	#22,-10(R5)
	BR	.50152

.50130:	TST	177762(R5)
	BGE	.50152
	TST	177764(R5)
	BNE	.50152
	MOV	#66,-10(R5)
.50152:	MOV	Alpha,R1
	SXT	R0
	DIV	#5,R0
	MOV	R0,Alpha
	MOV	Alpha,177762(R5)
	MOV	now.X,-20(R5)
	MOV	now.Y,177756(R5)
	MOV	next.X,177754(R5)
	MOV	next.Y,177752(R5)
	CLR	177764(R5)
.50232:	CMP	177764(R5),177762(R5)
	BGT	.50330
	MOV	177764(R5),R0
	ADD	-10(R5),R0
	MOV	R0,Alpha
	MOV	Alpha,R0
	ADD	#22,R0
	MOV	R0,177750(R5)
	CMP	Alpha,#110
	BLE	.50334
	SUB	#110,Alpha
	BR	.50334

.50312:	TST	177764(R5)
	BGE	.50152
	MOV	#44,-10(R5)
	BR	.50152

.50330:	JMP	r$Ret

.50334:	CMP	177750(R5),#110
	BLE	.50352
	SUB	#110,177750(R5)
.50352:	MOV	177750(R5),R0
	ASL	R0
	MOV	InterT(R0),177766(R5)
	MOV	177746(R5),R1
	MUL	177766(R5),R1
	MOV	R1,R1
	SXT	R0
	DIV	#144,R0
	ADD	-20(R5),R0
	MOV	R0,now.X
	MOV	Alpha,R0
	ASL	R0
	MOV	InterT(R0),177766(R5)
	MOV	177746(R5),R1
	MUL	177766(R5),R1
	MOV	R1,R1
	SXT	R0
	DIV	#144,R0
	ADD	177756(R5),R0
	MOV	R0,now.Y
	MOV	now.X,177754(R5)
	MOV	now.Y,177752(R5)
	JSR	PC,Line
	MOV	177754(R5),next.X
	MOV	177752(R5),next.Y
	INC	177764(R5)
	BR	.50232

Print:	MOV	R5,-(SP)
	MOV	SP,R5
	ADD	#177750,SP
	MOV	#<240.-1>,-20(R5)
	MOV	Max.X,177764(R5)
	MOV	#800.,Max.X
.50556:	TST	-20(R5)
	BLE	.50700
	CLR	-10(R5)
.50570:	CMP	-10(R5),#1440
	BGE	.50712
	MOV	#1,177754(R5)
	CLRB	177757(R5)
	MOV	#7,177766(R5)
.50620:	TST	177766(R5)
	BLT	.50722
	MOV	-10(R5),now.X
	MOV	-20(R5),R0
	SUB	177766(R5),R0
	MOV	R0,now.Y
	CLR	@SP
	JSR	PC,Gt$Dot
	MOV	R0,177762(R5)
	TST	177762(R5)
	BEQ	.50742
	BISB	177754(R5),177757(R5)
	BR	.50742

.50700:	MOV	177764(R5),Max.X
	JMP	sp$r5

.50712:	SUB	#10,-20(R5)
	BR	.50556

.50722:	MOVB	177757(R5),R0
	MOV	R0,@SP
	JSR	PC,Put.Ch
	INC	-10(R5)
	BR	.50570

.50742:	ASL	177754(R5)
	DEC	177766(R5)
	BR	.50620

.50754:	JSR	R5,r$Save	;pOLU^ENIE CELOGO(?) ^ISLA IZ
	ADD	#-10,SP		;CEPO^KI Ascii SIMWOLOW.
	MOV	4(R5),R4
	MOV	6(R5),R2
	MOV	10(R5),R3
	CLR	-10(R5)
	MOV	R4,177762(R5)
	CLR	177764(R5)
.51014:	TST	R2
	BEQ	.51034
	CMPB	@R4,#40
	BLE	.51062
	CMPB	#177,@R4
	BLE	.51062
.51034:	TST	R2
	BEQ	.51070
	CMPB	@R4,#55
	BNE	.51172
	MOV	#1,177764(R5)
	INC	R4
	DEC	R2
	BR	.51070

.51062:	DEC	R2
	INC	R4
	BR	.51014

.51070:	CMP	12(R5),#20
	BNE	.51206
	CMP	#2,R2
.51102:	BHI	.51206
	CMPB	@R4,#60
	BNE	.51206
	CMPB	#101,1(R4)
	BGT	.51146
	CMPB	1(R4),#132
	BGT	.51146
	MOVB	1(R4),R0
	ADD	#40,R0
	BR	.51152

.51146:	MOVB	1(R4),R0
.51152:	CMP	R0,#170
	BNE	.51206
	ADD	#2,R4
	SUB	#2,R2
	BR	.51206

.51172:	CMPB	@R4,#53
	BNE	.51070
	INC	R4
	DEC	R2
	BR	.51070

.51206:	TST	R2
	BEQ	.51242
	CMPB	#60,@R4
	BGT	.51332
	CMPB	@R4,#71
	BGT	.51332
	MOVB	@R4,R0
	ADD	#177720,R0
	MOV	R0,177766(R5)
	BR	.51350

.51242:	TST	177764(R5)
	BEQ	.51260
	MOV	-10(R5),R0
	NEG	R0
	BR	.51264

.51260:	;--BR-
	MOV	-10(R5),R0
.51264:	;--BR-
	MOV	R0,@R3
	TST	R2
	BEQ	.51462
	CMPB	#101,@R4
	BGT	.51316
	CMPB	@R4,#132
	BGT	.51316
	MOVB	@R4,R0
	ADD	#40,R0
	BR	.51320

.51316:	;--BR-
	MOVB	@R4,R0
.51320:	;--BR-
	CMP	R0,#154
	BNE	.51462
	INC	R4
	BR	.51462

.51332:	;--BR-
	CMPB	#141,@R4
	BGT	.51376
	CMPB	@R4,#172
	BLE	.51412
	BR	.51376

.51350:	;--BR-
	MOV	-10(R5),R1
	MUL	12(R5),R1
	ADD	177766(R5),R1
	MOV	R1,-10(R5)
	DEC	R2
	INC	R4
	BR	.51206

.51376:	;--BR-
	CMPB	#101,@R4
	BGT	.51242
	CMPB	@R4,#132
	BGT	.51242
.51412:	;--BR-
	CMPB	#101,@R4
	BGT	.51436
	CMPB	@R4,#132
	BGT	.51436
	MOVB	@R4,R0
	ADD	#40,R0
	BR	.51440

.51436:	;--BR-
	MOVB	@R4,R0
.51440:	;--BR-
	ADD	#177651,R0
	MOV	R0,177766(R5)
	CMP	12(R5),177766(R5)
	BGT	.51350
	BR	.51242

.51462:	;--BR-
	MOV	R4,R0
	SUB	177762(R5),R0
	JMP	r$Ret

r$Save:	MOV	R5,R0
	MOV	SP,R5
	MOV	R4,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	CLR	-(SP)
	JMP	@R0

r$Ret:	MOV	R5,R2
	MOV	-(R2),R4
	MOV	-(R2),R3
	MOV	-(R2),R2
sp$r5:	MOV	R5,SP
	MOV	(SP)+,R5
	RTS	PC

.51530:	MOV	R0,-(SP)
	MOV	R1,-(SP)
	JSR	R5,r$Save
	CLR	@SP
	MOV	16(R5),R1
	MOV	14(R5),R0
	BGE	.51564
	NEG	R0
	NEG	R1
	SBC	R0
	COM	@SP
.51564:	TST	10(R5)
	BGE	.51610
	NEG	10(R5)
	NEG	12(R5)
	SBC	10(R5)
	COM	@SP
.51610:	CLR	R2
	CLR	R3
	MOV	#40,R4
.51620:	ASL	R1
	ROL	R0
	ROL	R3
	ROL	R2
	CMP	10(R5),R2
	BNE	.51642
	CMP	12(R5),R3
.51642:	BHI	.51660
	SUB	10(R5),R2
	SUB	12(R5),R3
	SBC	R2
	INC	R1
.51660:	DEC	R4
	BGT	.51620
	TST	@SP
	BEQ	.51676
	NEG	R0
	NEG	R1
	SBC	R0
.51676:	MOV	R0,14(R5)
	MOV	R1,16(R5)
	JMP	.51730		;??

Disp$:	TST	(R1)+
	BEQ	.51726
	CMP	R0,(R1)+
	BNE	Disp$
	JMP	@-4(R1)
.51726:	JMP	@(R1)+

.51730:	ADD	#-6,R5
	MOV	R5,SP
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	MOV	(SP)+,R4
	MOV	(SP)+,R5
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	MOV	(SP)+,2(SP)
	TST	(SP)+
	RTS	PC

.51762:	.word	0
.51764:	.word	0
.51766:	.word	0
now.Y:	.word	0
now.X:	.word	0
next.Y:	.word	0
next.X:	.word	0
New.Y:	.word	0
New.X:	.word	0
MatAdr:	.word	0
N.Word:	.word	0
Invers:	.word	0
N.spr:	.word	0
PenCol:	.word	0
.52016:	.WORD	0

Max.Y:	.WORD	240.
Max.X:	.word	800.
Un.Adr:	.WORD	0
.52026:	.WORD	0
.52030:	.WORD	0
.52032:	.WORD	0
.52034:	.WORD	16384.	;40000
.52036:	.WORD	1.
.52040:	.WORD	0
.52042:	.WORD	0
.52044:	.WORD	0

.52046:	.WORD	176560
.52050:	.WORD	176562
.52052:	.WORD	176564
.52054:	.WORD	176566

.52056:	.word	167770
.52060:	.word	167772
.52062:	.word	167773
.52064:	.word	167774
.52066:	.word	160000
.52070:	.word	160002
.52072:	.word	0
.52074:	.word	0
Alpha:	.word	0
TmpBuf:	.byte	0,1,2,3,4,5,6,7,8.,9.,10.,11.,12.,13.,14.,15.
	.even
.52120:	.word	TmpBuf

ColTmp:	.word	0
AscBuf:	.blkw	6
.52140:	.WORD	0
.52142:	.WORD	AscBuf

InterT:	.WORD	0,8.,17.,26.,34.,42.,50.,57.,64.,70.,114,122
	.word	126,132,136,140,142,143,144,143,142,140,136,132,126
	.word	122,114,70.,64.,57.,50.,42.,34.,26.,17.,8.,0
	.WORD	-8.,-17.,-26.,-34.,-42.,-50.,-57.,-64.,-70.,-76.,-82.,-86.
	.WORD	-90.,-94.,-96.,-98.,-99.,-100.,-99.,-98.,-96.,-94.,-90.,-86.
	.WORD	-82.,-76.,-70.,-64.,-57.,-50.,-42.,-34.,-26.,-17.,-8.,0
N..Spr:	.word	0
.52370:	.word	4

.52372:	.WORD	16.	;20
.52374:	.blkw	1400/2
.53774:	.blkb	376
.54372:	.WORD	0

SprTab:	.WORD	.52374		;tABLICA NA^ALXNYH ADRESOW
	.WORD	.52374+200	;SPRAJTOW
	.WORD	.52374+400
	.WORD	.52374+600
	.WORD	.52374+1000
	.WORD	.52374+1200
	.WORD	.52374+1400
	.WORD	.52374+1600

.54414:	.word	15574		;dLINA STROKI ?

ptr400:	.WORD	0,10421,21042,31463,42104,52525,63146,73567
	.word	104210,114631,125252,135673,146314,156735,167356,177777
ptr800:	.WORD	0,52525,125252,177777,0,52525,125252,177777
	.WORD	0,52525,125252,177777,0,52525,125252,177777

Cnt0:	.word	ptr800
	.word	1001,4004,20020,100100

.54530:	.WORD	170000,7400,360,17
.54540:	.word	140000,30000,6000,1400,300,60,14,3

ptr1:	.54530
.54562:	.word	11000

.54564:	.word	4160,4162,4164,4112,4114,4116,4342

.54602:	.WORD	162343		;nOWYE KODY KLAWI[
	.WORD	163345
	.WORD	164347
	.WORD	10423
	.WORD	25
	.word	3
	.word	5000

CtrlSt:	.word	.41224,'Z	;pEREDA^A MATRIC S \KRANA
	.word	.41154,'Y	;pEREDA^A MATRIC NA \KRAN
	.word	.41064,'T	;pERENOS FRAGMENTA
	.word	.41022,'U	;wYWOD PAMQTI B/FORMATA
	.WORD	.40760,'W	;wWOD W PAMQTX wt B/FORMATA
	.WORD	.40730,'O	;fORMAT \KRANA
	.WORD	.40714,'C	;cWET PERA
	.word	.40624,'R	;pALITRA
	.word	.40610,'X	;nALOVENIE/ZAME]ENIE CWETA
	.word	.40570,'M	;wWOD SPRAJTA
	.word	.40540,'H	;pOLU^ENIE CWETA TO^KI
	.word	.40510,'P	;{TRIHOWKA KONTURA
	.WORD	.40452,'B	;zAPISX SPRAJTA S \KRANA
	.word	.40414,'S	;oTRISOWKA SPRAJTA
	.word	.40366,'D	;tO^KA
	.word	.40320,'L	;lINIQ
	.WORD	.40252,'G	;zALIWKA cWETOM
	.WORD	.40174,'A	;oTRISOWKA DUGI
	.WORD	.40164,'*	;pE^ATX \KRANA
	.WORD	.40154,33
	.WORD	0,NoChar

Asc$St:	.WORD	.41552,'9
	.WORD	.41552,'8
	.WORD	.41552,'7
	.WORD	.41552,'6
	.WORD	.41552,'5
	.WORD	.41552,'4
	.WORD	.41552,'3
	.WORD	.41552,'2
	.WORD	.41552,'1
	.WORD	.41552,'0
	.WORD	.41542,'.
	.WORD	.41526,40
	.WORD	.41520,',
	.WORD	.41470,33
	.WORD	0,Inv.Ch
    .end	sta$rt
                                                                                                                                                                                            