1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
|
<<<<<<< HEAD
{
"metadata": {
"name": "",
"signature": "sha256:23cf65a359a2231e3abd5faae195b73ed4d5756e6083812ae87c387c1bb53f5a"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Chapter 15: Additional in 'C'<h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.1, Page number: 505<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Allocate memory to pointer variable. \n",
"\n",
"import sys\n",
"\n",
"#Variable initialization\n",
"j = 0\n",
"k = int(raw_input(\"How many number : \"))\n",
"p = [0 for i in range(0,k)]\n",
"\n",
"#in python, all variables are allocated using dynamic memory allocation technique and no\n",
"#malloc function and pointer concept is available in python.\n",
"\n",
"#Read the numbers\n",
"while j != k:\n",
" p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
" j += 1\n",
" \n",
"j = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"The numbers are : \")\n",
"while j != k:\n",
" sys.stdout.write(\"%d\\t\"%(p[j]))\n",
" j += 1\n",
" \n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many number : 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 1 = 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 2 = 2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 3 = 3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 4 = 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The numbers are : 1\t2\t3\t4\t"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.2, Page number: 506<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Memory allocation to pointer variable. \n",
"\n",
"import sys\n",
"\n",
"#Variable initialization\n",
"j = 0\n",
"k = int(raw_input(\"How many Number : \"))\n",
"p = [0 for i in range(0,k)]\n",
"\n",
"#in python, all variables are allocated using dynamic memory allocation technique and no\n",
"#calloc function and pointer concept is available in python.\n",
"\n",
"#Read the numbers\n",
"while j != k:\n",
" p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
" j += 1\n",
" \n",
"j = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"The numbers are : \")\n",
"while j != k:\n",
" sys.stdout.write(\"%d\\t\"%(p[j]))\n",
" j += 1\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many Number : 3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 1 = 45\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 2 = 58\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 3 = 98\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The numbers are : 45\t58\t98\t"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.3, Page number: 507<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Reallocate memory \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"str1 = \"India\"\n",
"\n",
"#in python, value tagged method is used for data storage instead of memory tagging.\n",
"#no realloc function is in python\n",
"\n",
"#Result\n",
"sys.stdout.write(\"str = %s\"%(str1))\n",
"str1 = \"Hindustan\"\n",
"sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"str = India\n",
"Now str = Hindustan"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.4, Page number: 508<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display unused memory \n",
"\n",
"import psutil\n",
"\n",
"psutil.phymem_usage()\n",
"\n",
"#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
"#status and usage of physical memory in python."
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.5, Page number: 510<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Linked list\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialziation\n",
"ch = 'y'\n",
"p = 0\n",
"q = []\n",
"\n",
"#Function Definitions\n",
"def gen_rate(m):\n",
" q.append(m)\n",
" \n",
"def show():\n",
" print q\n",
" \n",
"def addatstart(m):\n",
" q.insert(0,m)\n",
" \n",
"def append(m,po):\n",
" q.insert(po,m)\n",
"\n",
"def erase(d):\n",
" q.remove(d)\n",
" \n",
"def count():\n",
" print len(q)\n",
" \n",
"def descending():\n",
" q.sort(reverse=True)\n",
" \n",
"#Get choice\n",
"while ch == 'y':\n",
" n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
" #There is no switch statement in python\n",
" if n == 1:\n",
" i = int(raw_input(\"How many node you want : \"))\n",
" for j in range(0,i):\n",
" m = int(raw_input(\"Enter the element : \"))\n",
" gen_rate(m)\n",
" show()\n",
" else:\n",
" if n == 2:\n",
" m = int(raw_input(\"Enter the element : \"))\n",
" addatstart(m)\n",
" show()\n",
" else:\n",
" if n == 3:\n",
" m = int(raw_input(\"Enter the element and position \"))\n",
" po = int(raw_input(\"Enter the element and position\"))\n",
" append(m,po)\n",
" show()\n",
" else:\n",
" if n == 4:\n",
" d = int(raw_input(\"Enter the number for deletion : \"))\n",
" erase(d)\n",
" show()\n",
" else:\n",
" if n == 5:\n",
" show()\n",
" else:\n",
" if n == 6:\n",
" count()\n",
" else:\n",
" if n == 7:\n",
" descending()\n",
" show()\n",
" else:\n",
" sys.stdout.write(\"Enter value between 1 to 7\")\n",
" \n",
" ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"1. Generate\n",
"2. Add at starting\n",
"3. Append\n",
"4. Delete\n",
"5. Show\n",
"6.Count\n",
"7.Descending\n",
"Enter your choice: 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many node you want : 4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 7\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[1, 5, 4, 7]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Do u wnat to continue (y/n)n\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.6, Page number: 518<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Draw circle, line and arc using graphics function\n",
"\n",
"%matplotlib inline\n",
"import pylab\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# matplotlib package is used for graphics\n",
"#Give proportionate sizes to draw\n",
"#draw circle\n",
"circle2=plt.Circle((.5,.5),.2,color='b')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(circle2)\n",
"\n",
"\n",
"#draw line\n",
"figure()\n",
"pylab.plot([210,110],[150,150])\n",
"\n",
"#Draw ellipse\n",
"figure()\n",
"from matplotlib.patches import Ellipse\n",
"e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(e)\n",
"e.set_clip_box(plt.axes().bbox)\n",
"e.set_alpha(0.7)\n",
"pylab.xlim([20, 50])\n",
"pylab.ylim([-65, -35])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"(-65, -35)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x399d950>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x399d690>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nb941fx8Pm8j+DW82my1pwYIFl/xd50S0F198cfsrr7zyK5nGb6z+yTB+27Zt22U0GmuTkpJs8fHx\njUFBQfZHH330HVnGbqz+PfbYY4dkGLuxWmFh4c5XX311izfjd8dn9EII5YknnjiYkZFR/swzz/x+\ncP3atWuPvf322xsA4O23396Qn59/5E7XcifcrH+NjY0Jg8vvv//+jzMzMy/5p0LftLS0RA/+6etw\nOPQlJSV5JpPJKsv43ax/wz8RPl3Hb9euXc/V1tYm2my25Hffffen999//yfvvPPOY7KM3Vj9O3To\n0OOy/N/r6ekJ6urqCgUAu90efOLEidWZmZmXvBq/O/0qdPr06WWKoniysrLKhp/u1NraGrly5cqP\np/spXmP176OPPvrBY489digzM/PiwoULP1+3bt2RpqamOH/X6k27ePFipslkupCVlVWWmZl5cc+e\nPc8KMXCKlwzjd7P+yTJ+g81isSwfPCtFlrEb3k6ePGke7N+jjz76jgxjV11dnZyVlVWWlZVVNn/+\n/Mu7du3a5u34KUJMy8NzRER0m3iHKSIiyTHoiYgkx6AnIpIcg56ISHIMeiIiyTHoiYgk9/8B1dqr\nlLRzGX0AAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x2610890>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.7, Page number: 519<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Draw boxes and fill with different designs.\n",
"\n",
"%pylab\n",
"#matplotlib package is used for graphics\n",
"from matplotlib.patches import Rectangle\n",
"from matplotlib.collections import PatchCollection\n",
"\n",
"e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(e)\n",
"e.set_clip_box(ax.bbox)\n",
"e.set_alpha(0.7)\n",
"pylab.xlim([20, 50])\n",
"pylab.ylim([-65, -35])\n",
"\n",
"#There are no different automatic fill styles. user should create the styles."
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x7373590>"
]
}
],
"prompt_number": 72
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.8, Page number: 520<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display text in different size, font, vertically and horizontally \n",
"\n",
"%matplotlib inline\n",
"\n",
"from pylab import *\n",
"\n",
"#Tkinter package is used for graphics\n",
"# set limits so that it no longer looks on screen to be 45 degrees\n",
"xlim([-5,5])\n",
"\n",
"# Locations to plot text\n",
"l1 = array((1,1))\n",
"l2 = array((5,5))\n",
"\n",
"# Rotate angle\n",
"angle = 90\n",
"trans_angle = gca().transData.transform_angles(array((45,)),\n",
" l2.reshape((1,2)))[0]\n",
"\n",
"# Plot text\n",
"th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
" rotation=0)\n",
"th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
" rotation=0)\n",
"th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
" rotation=angle)\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAASvCAYAAAA39ApSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFNfj//+ZpRfpoNgAxUZUYpfYAMWKvZfYYmJMSGwx\n3YglxRiVqO8YjcYSeywotogCahKNiga7EUUURRFQqiDL7u8Pz3zf87m/XTqavPN8nHPP0Zk7c++U\nZfe1M3tH1uv1EgAAAADgvzQvugMAAAAA8HdDUAIAAAAAAUEJAAAAAAQEJQAAAAAQEJQAAAAAQEBQ\nAgAAAAABQQkAUCJr164dq9FodF5eXgmlmVdRHj586Org4PC4WrVq9588eWJVWe08L56enrc0Go1u\n3bp1Y150X/4JQkNDQzUajS4gICD6Rffl36Qi9vvzONfT09Od3n333SV169a9YWFhka/RaHQajUaX\nmZlpV1lt/h0o23n06NFOL7ovf3c9e/bcr9FodEeOHOlc0mUISgDwN6d8UNFoNLri6t66dctTqVtZ\nH0pkWTb6AL6i5pXXzJkz52ZmZtp99NFHX1pZWT1Rz4uJifEvzQcG5YPbuHHj1lRWf0uqMvfZ8xIe\nHt4vNDQ0dPfu3X0ru63S7C/lOJelzJ49e1ZlbocoLCxsyuzZs2fFxcX5Ps92S8rQfi/tca+sc72w\nsNCkc+fOR5YtWxZy69YtT0tLy7xq1ardr1at2v2S/N2sbKGhoaGzZ8+elZiY6FEZ65dlWf9P+DuS\nn59vERER0TskJGRZy5Ytzzg4ODw2MzMrcHV1fRgYGBi1bNmykKK+BFP/nS+qrF69+jVDy8+dO3em\nJEnStGnTFul0uhJlINOybSoA4HkrzRvhP+WNs6QuXrzYeNWqVRNq1Khxd9KkScuN1Svtdr/IfeTt\n7R1vbW2da29vn/Gi+lBRwsPD+61fv3702LFj1/bt23f3i+6Pws3NLeXp06fm4vTc3Fxr5UqDq6vr\nQxMTk0KxTpUqVbKeRx8VYWFhU27fvl3by8srwdfXN+55tl0UV1fXhw0aNLhWu3bt2+K8v8txj4yM\nDIqLi/M1Nzd/GhUVFfjKK6/8/qL6YsicOXM+kyRJCggIiPbw8EisyHU3aNDgmizLemtr69yKXG9l\nCA4O3qu+mmNmZlZQpUqVrPT0dKeYmBj/mJgY/yVLlrx74MCBHnXr1r1R1LqqVat239g8GxubHEPT\nW7RoEdunT589e/bs6bN69erXXn/99R+K6zNBCQD+B+n1evlF96EiLViwYIZOp9OMGzdujbm5+dMX\n3Z+KcPjw4S4vug//606dOtXa0PR169aNGTdu3BpZlvWnT59uZSgE4Jm33377P2+//fZ/XnQ/inLh\nwoUmkiRJTZs2Pf93C0mKyvpS5sqVK40qY72VQavVmnp6et4aN27cmj59+uxRvhB4/Pixww8//PD6\n7NmzZ8XHx3v36NHjwIULF5pYWFjkG1qPLMv6e/fuVS9LHyZNmrR8z549fRYsWDCjJEGJW+8AAH9r\n6enpTtu2bRsiy7J+9OjR6190f2DcPyWg/537+XfumzEvus+5ubnWkiRJtra22S+yH8V50fvpRZs3\nb96n8fHx3jNnzpyrvmrq4ODweMaMGQuUW+bi4+O9t2/fPqgy+hAUFBTp7u6eHB8f7x0ZGRlUXH2C\nEgD8C128eLHxG2+8sbJevXrXra2tc21tbbObNm16/tNPP52XlpbmXBlt3rhxo+6kSZOW16tX77qV\nldUTOzu7zObNm5+dO3fuzKysrCrGllu/fv3o/Px8ixYtWsR6e3vHV0bfDDl37lyz0aNHr/fw8Ei0\ntLTMc3R0fNSuXbvfvv3228mGbueSpP//oBbR0dEB/fr1C3d3d082MTEpVP8mytgP3P39/WNKch++\nsYEzYmJi/AcPHvxzjRo17lpYWOS7uLikdunS5fDatWvHGrsvX/zB/pEjRzr36tVrn6ur60NLS8s8\nHx+fy3PmzPksPz/fQmxLo9Ho1q9fP1qSnl2pEfup/s3Y/fv3qy1duvSdvn377m7UqNEVe3v7DCsr\nqyfe3t7xr7/++g+XL1/2KdnRqXxZWVlVvvrqqw/9/PxOODk5pVtYWOTXqlXrzvDhwzefPHmyrVh/\n69atQ5VtDg8P72donX/++efLlpaWeRqNRvfll19+JEn/3fe3b9+uLUmSNG7cuDXiPixJf2NjY1to\nNBqdmZlZgaEBDCZOnLhCWd++fft6ifM3b948XKPR6MRbwwwN5lDa46729OlT8wULFszw9fWNs7Gx\nybG3t8/o3LnzkV9++aVbSbZTbezYsWvVvycTf8Mi/s4sLy/PMiwsbMorr7zyu6Oj4yNLS8s8Dw+P\nxDFjxqwr6rdhymt1/fr1o0vTf6V/kvQsJAUEBEQX9RpOSkqqOXXq1MUvvfTSJRsbmxwLC4v86tWr\n32vRokXstGnTFp05c6al2Iax/V3S3+cZG6SjMt4j2rVr91tR5/OQIUO2KWHX0LZWBI1GoxsyZMg2\nSZKklStXvlHsAnq9nkKhUCh/4zJr1qxQWZZ1Go2msLi6t27d8pBlWSfLsm7dunWjDdWZP3/++xqN\nplBZp62tbZalpeUTZbnq1avfPXfu3MvicmvWrBkry7LOy8vrZmnm6fV6aevWrUMsLCzylDbt7e0f\nW1lZ5Spt1q5dO/HKlSsNDS3bo0eP/bIs66ZOnbrI2HZHR0f7K+s+evRox+L2k4eHxy1ZlnXjxo37\n0dD8RYsWTVX6ptFoCh0dHdOV/suyrPP19f0zOTm5WlH7ISwsbLK4vLo9pQ/icRowYMAOd3f3e8aK\ncqwM7eupU6cuUvpoYmKidXJySjMzM3uqTOvcufPhrKwsW2PnmL+/f/TXX389Q728iYmJVlk+MDDw\nSGFhoUZZ7vfff/erVq1asnIsrayscsX+njhxoq1Sf8yYMWuVdZmbm+e7uLg8NDc3z1fOR0tLyyc7\nduwYUNTrICAgIKq8rynlOGk0msLExMTa4vxz5869XLNmzTtKX83MzJ7a29s/Vr9uvvzyyw/F5V57\n7bVVsizrnJ2dU+/cuVNTPS87O9umQYMGV5XjoEz/5ptvplerVi1Z2c8ODg6PxH1Ykm3S6XSyo6Nj\nukajKdyzZ09vcb63t/d1ZXumTZu2UJw/YcKEH2RZ1o0dO3ZNcfu9tMddOdeXLVv2dps2bU7Ksqyz\nsLDIs7Ozy1Dv0x9//HFcaY7j5MmTw9zd3e/Z2tpmKeeUug8LFy6cptRNSkqq0bhx4wvKPrCwsMhT\n9pdyvi9dujTE2N8LjUZTWNr+K/1T2nR2dk5V969169Z/KHX//PNPX0dHx3T1Oefs7Jyqfv2Jx0av\n10vG/u61atXqVFF/R5S/C4ZeT2V9j6iI4uTklCbLsu6dd95ZIs5T/50vTxvbt28fKMuyztHRMV2n\n08lF1a3wDaRQKBRKxZbSBKWEhATPooLSqlWrXpNlWWdnZ5fx5ZdffvjgwQM3vf7Zh6zY2NjmnTt3\nPizLsq5WrVq3s7OzbdTLljUoxcbGNlfelDt06HDs4sWLLyltRkREBFevXv2uLMs6b2/v62KbWq3W\nxM7OLkOWZd2WLVuGGttu9RtoTExMp+L2U1FBKSIiIljZh/37999569YtD71eLz19+tTsp59+GqX0\np127dr+qQ4N6P1hZWeWampoWjB8/fnVSUlINvV4vFRYWam7cuFFH7IOxQGuoxMbGNrexscmWZVkX\nEhKyVD1v6dKlIUq/33zzzeXKsc3JybEOCwubrByDYcOGbTZ2jjk6OqabmJhoP/nkk3lpaWlOer1e\nyszMrKLMl2VZZ+jD7NixY9cUFTyVMm/evE8WLlw47dKlSz7qfXfp0iWfUaNG/STLss7W1jbr3r17\n7sb6WNlB6d69e+5ubm4PZFnWDRo06OezZ88202q1Jnq9XkpJSXH97LPPZiv7Mjw8vK962ZycHOtG\njRpdlmVZ16lTpxj1No4bN+5HWZZ1rq6uKYa2ryzng1j69u0bLsuybsqUKYvV0+/cuVNTlmWdvb39\nY1mWdS+//PI5cdm6devGG2q/qP1e0uOubJuTk1NarVq1bu/Zs6e3sk+vXbtW38/P73dZlnVVqlTJ\nzMjIsCvtdoeGhs4q6tzQarUmSsBxdHRM37Rp0/CCggJTvV4v3bx506t37957lPPhwIED3Su6/yX5\nEkf529uyZcvTf/zxR2tlekFBgen169e9Fy5cOO2bb76ZXpZ1i2X//v09lAAmrrM87xHlLefPn2+i\n/J1ZuXLl6+J85e+8LMs6Pz+/3+3s7DIsLCzyataseWfgwIHbd+/e3ack7SQlJdVQ9ltsbGzzoupW\n2MZRKBQKpXKK+kNq1apV7xdVXFxcHhoLSpmZmVUcHBweaTSawkOHDgUZakur1Zq0bNnytCzLurCw\nsMnqeWUNSt27dz8gy7Kufv361548eWIpzj937tzLygdP8U378uXLjZQ3NCVgGSrqN1BHR8f04vaT\n8iHB0Ac89QddQ982qoPU9u3bBxraD8qH7KKOa2k/GCclJdVQQmXXrl1/UX8Iz83NtVK+iR05cuQG\nQ8urg5T44UB9js2ePfszQ8sPHDhwuyzLuqCgoEPiPOVKUXEfmIsrwcHBEbIs6+bNm/eJsddBZQel\n8ePHr5ZlWTdq1KifjC2/ePHiKcYCR1xcXFPl23dlX27evHmY0l5ERERwRZwPhsq33377rizLuqZN\nm8app69bt260LMu6CRMm/FCzZs07Go2mUAnCer1eSkxMrK307/bt27VKut9LetyVbbOyssq9du1a\nfXH+w4cPXZR9tnHjxhGl3e7izo0tW7YMVbYvMjKyizhfq9WatG3b9oQsy7omTZqcr+j+lyTMWFlZ\n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\njV11ft7vEeHh4f2GDh26tbCw0GTAgAE7t2zZMqykw+EbYmNjk6NcCUxISPAqqq4yxLl4NVhEUAKA\nfwnl1pCKul2iJKpWrfpA+fedO3dqGaun3GplamqqVd9ip/RZkiRJ/ZuLyqL0NzU11cXYs5Ik6b/9\nLe5Ntjz279/fc+rUqYslSZI+/fTTeSNGjNhkrK7S7+JuWXse/TZm+/btg3Q6ncbHx+fyli1bhrVo\n0SJWvPUnOTnZ/Xn3S019vpXndXL27Nnmyq1Eyq1CU6dOXXz16tWG5e5kMZSwc/369Xp3796tIQYl\n5d96vV6OiooKVObXr1//L/X2/y9Rzvei/gYpoV1d/0Vo167db1999dWHx48f7/Do0SPH3bt3923S\npMmFJ0+eWI0fP/7H4m4VE61YsWLi4sWLp8qyrF++fPmkom4pfp7vEbt27eo/ZMiQbVqt1rR///67\nlOeQVXa7CuVYq9+jDCEoAcC/RLt27X6TpGcf4u7fv1/tebTZvHnzs7Is6/V6vXzkyJHOxuodPny4\niyQ9+1CpvhpTv379v+zs7DL1er18/vz5ppXd35YtW56RpGdXAIw9MFPd31atWp2ujH7ExcX5Dh06\ndKtOp9MMHTp0q/jgTJHS76SkpJrXr1+vZ6hOYWGhiXKVoaL7rX6oprE6yodUQ78xUCj79UVp1arV\naTMzswK9Xi9HRET0Lss6cnJybIYPH765oKDArEuXLof/+OOPNq1btz715MkTq2HDhm0xFsBLsg9L\nokGDBteU35dERUUFxsTE+JuYmBT6+/vHKHWU0BQVFRVYntvuKqrPlU0534v6GxQTE+NfWFhoIsuy\nvrJe16XdTxYWFvm9e/eO2Llz5wBJkqT8/HyLX3/9tX1Jlz906FDXkJCQZZL07KqS+oHXhjyv94id\nO3cOGDp06FYlJG3btm1IRVyFz87OtlUG4jD2W11Jeva3KCMjw16WZb0yMI8xBCUA+JcYPHjwzw4O\nDo+fPn1qPm3atEVF1dXpdJqMjAz78rZpb2+f0b1794OSJEkLFiyYYeie9ri4ON8dO3YMlCRJEkcr\nkmVZr9zadPLkybbl7U9xmjRpcsHHx+eyXq+X582b96mh0fH279/f89SpU60N9bci3Lt3r3pwcPDe\nnJwcm7Zt255ct27dmOKWCQoKinR2dk7T6/WysVHvVqxYMTE5OdldlmV9Rffbzs4uU5KejXJorI7y\n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\nZV3Xjz/+OD49Pd1p0qRJy8vbh/LYvXt3Xzs7u8yKXGdpPHr0yHHOnDmf1a5d+3azZs3OlWUdsizr\ni9ovy5cvn5SVlVVFkiRJr9fLc+fOnXnmzJmWe/bs6aOuV61atftlaV+tIranOK+//voPPXv23F/S\nNst6zmi1WtORI0dubN++/a/Lly+fZG5u/tTW1ja7PH03JCwsbErHjh2P9e/ff1dplmvRokXsyZMn\n2zZq1OhKRffJkNTUVJc1a9aMa9GiRWzXrl0P7dy5c4CxfXvmzJmWgYGBUYGBgVGrV69+zd7ePuOv\nv/6qn5OTY6PUqVat2v233nrru6lTpy4+ceKE3/PYBqCyEZQA4F9Kr9fLFbWeBQsWzBg/fvyP5ubm\nTytinaX19OlTc3Nz86e+vr5xL6J9UUXtW0PED9IuLi6pZmZmBa1btz5VWW1W5vbUqFHjbo0aNe5W\ndpt3796tkZ2dbTt48OCf27dv/2tFrltUlr5XqVIlqzKPocjT0/NWWlqasyRJ0uHDh7vs3LlzgKF6\nOp1OM3r06PVBQUGRO3bsGKhM79Sp01Gx7qRJk5Z/88037x07dqxjx44dj1Ve74Hng1vvAOB/TEJC\ngtfIkSM3urm5pVhaWuY1a9bsXHh4eL+yrOvgwYPd/fz8TlhbW+c6ODg87t+//66//vqrvrpOTEyM\nf3x8vPfIkSM3lrfvp06dat2lS5fDVapUybK1tc3u0qXL4dOnT7dS1xk7duzaWrVq3Tlx4oTfK6+8\n8ru1tXXuBx98MF+S/u9ta7du3fI0dltaQEBAtLK+zMxMu5CQkGXVq1e/Z2lpmdewYcOrYWFhU8Rt\n1Gg0uoiIiN4hISHLXF1dH7q6uj589dVXf8rIyLBX2qtTp85NSXp2lURpa/369aMlSZIOHTrUtWfP\nnvurV69+z8bGJqdJkyYXFi1aNE2n01X4e3Fubq71Bx98MN/LyyvBwsIiv06dOje/+OKLj5UP8Dk5\nOTYNGza82qZNmz+0Wu3/+9L00KFDXTUajW758uWTEhMTPYraHtGOHTsGajQa3d27d2so06ZPn75Q\no9HoVq9e/ZoyLTIyMkij0eiuXLnSSJL+7613xe1DSXoWQg4fPtylefPmZ5X9WNz5HRoaGurl5ZUg\nSZL02muvrVafA3q9Xl68ePHUBg0aXLOwsMivXr36vXfeeWepctVOodFodDNnzpy7ZMmSd728vBLs\n7Owy/f39Yy5fvuyj1PH09Lx1+/bt2hs3bhyp9F25FfSvv/6q379//11Vq1Z9YGVl9cTDwyNxyJAh\n2woLC00k6f9/652yXwyVdevWjVHarMjXuyExMTH+V69ebTht2rRFxdX18vJKaNOmzR8rV658o6La\nB14kghIA/ANotVpTsSgfsNTu3LlTq02bNn9cuHChSVhY2JSIiIjezZs3Pztw4MAdERERvUvT5sGD\nB7v36tVrn52dXea2bduGLF++fNLFixcbt2/f/td79+5VV9dzdXV9WL9+/b/K0/fz58837dSp09GM\njAz7devWjVm/fv3ozMxMu06dOh09f/58U3XdjIwM++HDh28eOXLkxoMHD3YfMWLEJkn6v7etVa9e\n/d7JkyfbqsuqVasmaDQanY+Pz2VJevZtea9evfatXbt27IwZMxbs3bs3uHv37genTZu26JNPPvlc\n7OPkyZO/NTExKdy8efPwWbNmzd6xY8fAyZMnf6u0p3wr//HHH3+htKncVpaQkOAVGBgYtWrVqgn7\n9+/vOWbMmHWhoaGhhtopD61Wa9qtW7dfVq9e/drUqVMXHzx4sPuECRNWzZ07d+aMGTMWSJIk2djY\n5GzZsmVYXFyc78yZM+dKkiQ9ePCg6ujRo9f37dt396RJk5a7u7snF7U9In9//xhZlvVRUVGByrSo\nqKhAKyurJ+K0atWq3VdfGVMfM0Nt9urVa59S98aNG3WnTJkS9t57732zc+fOAe7u7smDBw/++caN\nG3WN7ZPXX3/9h59//nmwJEnSzJkz5548ebLt8uXLJ0mSJH3yySefT58+fWG3bt1+2bt3b/D777//\n9dq1a8f26tVrn3hlaMOGDaMOHDjQY+nSpe+sWbNm3O3bt2v37dt3t3I+h4eH96tWrdr97t27H1T6\nruzfXr167UtOTnb//vvv3zx06FDXr7766kNLS8s8Y0H59ddf/0F97p44ccJvwIABO01NTbUNGjS4\nJkkV+3o35tdff20vSZL05MkTq7Zt2540Nzd/WrVq1QeTJ0/+Ni8vz1Ks3759+18jIyODKqJt4IXT\n6/UUCoVC+ZuWNWvWjJVlWVdUmT179mdK/fHjx692c3N7kJ6e7qheT1BQ0KGXX375nPL/WbNmhcqy\nrFPXEdfVokWLM/Xr179WWFioUaYlJCR4mpmZPZ02bdpCZVpAQEBUQEBAVHn7PnDgwO2Ojo7pGRkZ\n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\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhK\nAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgI\nSgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAI\nCEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAA\nCAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAA\nAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAA\nAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIA\nAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoIS\nAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKC\nEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAAC\nghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAA\nAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAA\nAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICg\nBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICA\noAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACA\ngKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAA\ngICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAA\nAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEA\nAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgB\nAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAo\nAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAg\nKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAg\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAF1G7TEAACAASURBVAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAo4f9j7+6jvKzrxP+/PjgQfVPS0FBnJgcEYdDEGwRvSseKuFkl\nN03RVBJTjvvTtFxjv7Wl2Gqi25ZGW7TeBGuR/soVNRzvJ7eMO1NMRRsMdAYXDBGDUgaG+f3RD4VX\nOFrKXJ/l83ic4zl85noLr65zPPH8XNf1vgAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACAR\nSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAA\nQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAgl\nAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAg\nEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIA\nAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAI\nJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAA\nIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQS\nAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQ\nCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkA\nACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiE\nEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAA\nkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJ\nAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABI\nhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQA\nAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRC\nCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAA\nSIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEE\nAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAk\nQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIA\nAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKh\nBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAA\nJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVAC\nAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAAS\noQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEA\nACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQ\nAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAA\nEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgB\nAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJ\nUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAA\nABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQo\nAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAA\niVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQA\nAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBE\nKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAA\nAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEBSVfQAwOsWL17c/6677hq5YMGCocuXL989ImL3\n3XdfPnTo0AUjRoy4Z5999vlt0TMCAFSCUkdHR9EzQMW76667Rk6ZMmVSU1NTQ7du3TbW1dUt7d27\n94sREStXrtz12Wef3Wvjxo3djjzyyAcnTZo0ZfTo0XcWPTMAwPbMrXdQsNGjR995/PHH/7S2trbl\nzjvvHL1q1ar3LV68uP/cuXOHz507d/gzzzyz90svvbTLnXfeOXqvvfZ69sQTT7xZKAEAbFtCCQpW\nX1+/aMmSJX2nT58+fuTIkXf16tXrD3nNTjvttGbkyJF3TZ8+ffySJUv67rvvvk8UMSsAQKVw6x0A\nAEDiihKUkUsvvfSrzz///J5bO/Y///M/e1x66aVf7eqZAAAqkStKUEa6deu2cc6cOYcOGzZsXj62\nYMGCocOGDZu3ceNGX3AAAGxjnf6Fa8KECdf36dNnxQc/+MHfvNGaz33uc9cMGDCgeciQIQsfeeSR\nA9/5EYGIiNWrV+/8rne9a13RcwAAVIJO36N0xhln3HDeeed9+/TTT5+xteOzZ88es3jx4v7Nzc0D\n5s6dO/ycc8757pw5cw7dNqPC9umBBx44+oEHHji6o6OjFBExbdq0iXfccccxm6955ZVX3n3HHXcc\nYxMHAICu0WkoffjDH/7vpUuX1r3R8dtuu23s+PHjp0dEDB8+fO7q1at3XrFiRZ8+ffqseIfnhO3W\nz3/+86P+5V/+5Z83fb7hhhvOyGt69OjRNnjw4Cevueaaz3XtdAAAlanTUHozy5Ytq66trW3Z9Lmm\npqa1tbW1JodSqVTyIBS8DevWrXvXI488cuARRxzxy6JnoWttutIIAHStt/1QeP4/8TeKoo6OjkL/\nufjiiwufoVz+cS6cC+fif8e5AACK87ZCqbq6ellLS0vtps+tra011dXVy97+WFCZJk2aFBs2bNjq\nsd///vdxzDHHbPUYAADvrLcVSmPHjr1txowZp0dEzJkz59Cdd955teeT4G93zTXXxOGHHx7PPPPM\nFj+/++67Y//9949f//rXBU0GAFBZOg2lk08+eebhhx/+0NNPPz2wtra25frrr58wbdq0idOmTZsY\nETFmzJjZ/fr1+13//v0XT5w4cdq///u//0PXjP3Xa2hoKHqEsuFcvK7czsW8efPij3/8Yxx00EEx\nffr0aGtriy984QsxevToGDp0aDz22GPb7M8ut3NRJOcCAOiSF86WSqUO99vDW/PKK6/E+eefH9de\ne2306dMnVq9eHVdeeWWcd955RY9GFyuVStFhMwcAKMTb3swBeGe9+93vjsMPPzx69OgRK1asiAED\nBsSxxx5b9FgAABVFKEEZ+cMf/hAnn3xyTJgwIc4444z45S9/GevXr48DDjggfvSjHxU9HgBAxXDr\nHZSRvn37xpo1a+Laa6+N4447LiIi/vSnP8X5558f1113XZx66qkxY8aMgqekq7j1DgCKI5SgjDQ0\nNMQPf/jDqK6u/otjP/3pT+Pss8+OF198sYDJKIJQAoDiCCUoIx0dHVEqvfHfi1taWqK2tvYNj7N9\nEUoAUJyqogcAXrcpkhYuXBgPPvhgrFq1Ks4+++zYY489orm5Ofr06VPwhAAAlcEVJSgj69ati09/\n+tNxyy23RMSfw2n+/Plx0EEHxSc/+cnYZ5994oorrih4SrqKK0oAUBy73kEZ+fKXvxz33Xdf3Hjj\n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\n4G+2fv36+Kd/+qf41re+FRER7e3tBU9EV3FFCQCK0+l7lObNmzesf//+i+vq6pZGRIwbN+7Hs2bN\n+sTmofSjH/3olOOPP/6nNTU1rREROZKAv01zc3PMmDEjbrzxxnj22WejV69eceKJJxY9FgBAReg0\nlJYtW1ZdW1vbsulzTU1N69y5c4dvvqa5uXnA+vXrux999NEPrFmzZqfzzz//6tNOO+0/8+91ySWX\nvPbrhoaGaGhoeNvDw/Zm1apV8eMf/zhmzJgR8+bNi27dusWIESPi61//ehx33HHRs2fPokdkG2pq\naoqmpqaixwAA4k1CqVQqven9cuvXr+/+61//+qD77rvvo3/605/+z2GHHfarQw89dM6AAQOaN1+3\neSgBr2tra4s77rgjZsyYEXfeeWesX78+Bg8eHFOmTIlTTz019thjj6JHpIvkL5EmT55c3DAAUOE6\nDaXq6uplLS0ttZs+t7S01G66xW6T2trall133XXlu9/97lfe/e53v3LkkUc+uHDhwiE5lICt2333\n3WP16tXRu3fvmDhxYowfPz4OPvjgoscCAKhone56N3To0AXNzc0Dli5dWtfW1tbjpptuOmns2LG3\nbb7mE5/4xKxf/OIXH2pvb9/hT3/60/+ZO3fu8MGDBz+5bceG7ceRRx4Zt9xySzz//PNxzTXXiCQA\ngDLQ6RWlqqqqDVOnTj135MiRd7W3t+9w5plnXldfX79o2rRpEyMiJk6cOG3QoEFPjRo1qnH//fd/\nrFu3bhvPOuus/xBK8NbdeuutRY8AAEDihbNQsKuvvjrOOeec6NGjx1tav27duvje974X559//jae\njKLZHhwAiiOUoGBDhgyJVatWxYQJE+LTn/507LPPPltd9+STT8bMmTPjhhtuiN69e8fChQu7eFK6\nmlACgOIIJShYe3t7XH/99XHVVVfF4sWLY7fddot99903evfuHRERK1eujN/85jexatWq6NevX1x0\n0UVx1llnRbdunT5iyHZAKAFAcYQSlImOjo5oamqKxsbGmD9/fqxYsSJKpVL06dMnhg4dGh//+Mfj\nox/9aNFj0oWEEgAURygBlCmhBADFce8OAABAIpSgzDz//PNx4YUXxtChQ6Nfv35xyCGHxEUXXRTL\nly8vejQAgIrh1jsoI7/97W/jQx/6UKxevTqOOOKI6NOnTyxfvjweeuih2GWXXeIXv/hFDBgwoOgx\n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\njBkze2vHNg8lAP5S/hJp8uTJxQ0DABWu01AqlUpv+X65Bx544Ojrr79+wi9/+csj3v5YAAAAxek0\nlKqrq5e1tLTUbvrc0tJSW1NT05rXPfbYY/ufddZZ/9HY2Dhql112eWlbDAoAANBVOt31bujQoQua\nm5sHLF26tK6tra3HTTfddNLYsWNv23zNc88994FPfvKTt9x4442n9u/ff/G2HRcAAGDb6/SKUlVV\n1YapU6eeO3LkyLva29t3OPPMM6+rr69fNG3atIkRERMnTpx26aWXfvWll17a5ZxzzvluRET37t3X\nz5s3b1hXDA8AALAtdLo9+Dv2h9geHOCvZntwACjOm75wFgAAoNIIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAICkYkKpqamp6BHKhnPx\nOufidc7F65wLAOBNQ6mxsXHUoEGDnhowYEDzlClTJm1tzec+97lrBgwY0DxkyJCFjzzyyIHv/Jhv\nn7/4vM65eJ1z8Trn4nXOBQDQaSi1t7fvcO65505tbGwc9eSTTw6eOXPmyYsWLarffM3s2bPHLF68\nuH9zc/OA73//+2efc8453922IwMAAGxbnYbSvHnzhvXv339xXV3d0u7du68fN27cj2fNmvWJzdfc\ndtttY8ePHz89ImL48OFzV69evfOKFSv6bMuhAQAAtqWqzg4uW7asura2tmXT55qamta5c+cOf7M1\nra2tNX369Fmx+bpSqfROzfw3mzx5ctEjlA3n4nXOxeuci9c5FwBQ2ToNpVKp1PFWfpOOjo4tKij/\ne/k4AABAOev01rvq6uplLS0ttZs+t7S01NbU1LR2tqa1tbWmurp62Ts/KgAAQNfoNJSGDh26oLm5\necDSpUvr2traetx0000njR079rbN14wdO/a2GTNmnB4RMWfOnEN33nnn1fm2OwAAgP9NOr31rqqq\nasPUqVPPHTly5F3t7e07nHnmmdfV19cvmjZt2sSIiIkTJ04bM2bM7NmzZ4/p37//4ve85z1/vOGG\nG87omtEBAAC2jVJHx1t6DGm78o1vfOPCiy666KqVK1fu+r73vW9V0fMU5aKLLrrqjjvuOKZHjx5t\ne++99zM33HDDGe9973tfLnqurtLY2Djqggsu+FZ7e/sOn/3sZ6+dNGnSlKJnKkpLS0vt6aefPuOF\nF154f6lU6jj77LO//7nPfe6aoucqSnt7+w5Dhw5dUFNT03r77bcfW/Q8AEDXe9MXzm5vWlpaau+5\n554Re+2117NFz1K0j3/843c/8cQT+y5cuHDIPvvs89uvf/3r/7fombrKW3lHWCXp3r37+m9+85uf\nf+KJJ/adM2fOod/5znf+n0o+H1dfffX5gwcPfvKtbmgDAGx/Ki6UvvCFL/zblVde+cWi5ygHI0aM\nuKdbt24bI/78DqzW1taaomfqKm/lHWGVZPfdd19+wAEHPBoRseOOO66tr69f9Pzzz+9Z9FxFaG1t\nrZk9e/aYz372s9fasRMAKldFhdKsWbM+UVNT07r//vs/VvQs5eb666+fMGbMmNlFz9FVtvb+r2XL\nllUXOVO5WLp0ad0jjzxy4PDhw+cWPUsRPv/5z3/zqquuumjTlwgAQGXqdDOH/41GjBhxz/Lly3fP\nP7/sssu+/PWvf/3/3n333R/f9LNK+Lb4jc7H5Zdf/qVjjz329og/n5sePXq0nXLKKT/q+gmL4Zaq\nrVu7du2OJ5xwwk+uvvrq83fccce1Rc/T1e64445j3v/+979w4IEHPtLU1NRQ9DwAQHG2u1C65557\nRmzt548//vh+S5Ys6TtkyJCFEX++vebggw9+eN68ecPe//73v9C1U3adNzofm/zgBz/4zOzZs8fc\nd999H+2qmcrBW3lHWKVZv3599+OPP/6np5566o3HHXfcrUXPU4SHHnro8Ntuu23s7Nmzx7z66qs9\n//CHP/Q6/fTTZ2x6BQIAUDkqcte7iIi+ffsuefjhhw+u5F3vGhsbR1144YXf+PnPf37UrrvuurLo\nebrShg0bqgYOHPj0fffd99E999zz+WHDhs2bOXPmyfX19YuKnq0IHR0dpfHjx0/v3bv3i9/85jc/\nX/Q85eDnP//5Uf/6r//6j3a9A4DKVFHPKG3OrVcR55133rfXrl2744gRI+458MADH/mHf/iH/6+9\nO7RhIIYBKJp5wowPlXWDkM51E4R0g7Cg4GOdp7SKdLQBeW8CI0tfBj5Xz/Qvvz/Ccs6fUsp710hK\nKaUxxlFrffXeHxFxRcTVWnuunms1ewIA9rXtRQkAAODOthclAACAO0IJAABgIpQAAAAmQgkAAGAi\nlAAAACZCCQAAYPIF5fe6JjownXYAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x3f2e190>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.9, Page number: 521<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display status of mouse button pressed \n",
"\n",
"from Tkinter import *\n",
"from tkFileDialog import askopenfilename\n",
"import Image, ImageTk\n",
"\n",
"if __name__ == \"__main__\":\n",
" root = Tk()\n",
"\n",
" #setting up a tkinter canvas with scrollbars\n",
" frame = Frame(root, bd=2, relief=SUNKEN)\n",
" frame.grid_rowconfigure(0, weight=1)\n",
" frame.grid_columnconfigure(0, weight=1)\n",
" xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
" xscroll.grid(row=1, column=0, sticky=E+W)\n",
" yscroll = Scrollbar(frame)\n",
" yscroll.grid(row=0, column=1, sticky=N+S)\n",
" canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
" canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
" xscroll.config(command=canvas.xview)\n",
" yscroll.config(command=canvas.yview)\n",
" frame.pack(fill=BOTH,expand=1)\n",
"\n",
" \n",
"\n",
" #function to be called when mouse is clicked\n",
" def printcoords(event):\n",
" #outputting x and y coords to console\n",
" print \"Mouse Button pressed\"\n",
" print (event.x,event.y)\n",
" #mouseclick event\n",
" canvas.bind(\"<Button 1>\",printcoords)\n",
"\n",
" root.mainloop()\n",
" \n",
"import win32api, win32con\n",
"\n",
"print \"Current cursor position at \" \n",
"print win32api.GetCursorPos()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Mouse Button pressed\n",
"(207, 115)\n",
"Current cursor position at "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"(502, 188)\n"
]
}
],
"prompt_number": 108
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.10, Page number: 523<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Change mouse cursor.\n",
"\n",
"#Placing the cursor on top of the circle button will change the pointer to circle\n",
"# and plus button to plus symbol\n",
"\n",
"from Tkinter import *\n",
"import Tkinter\n",
"\n",
"top = Tkinter.Tk()\n",
"\n",
"B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
" cursor=\"circle\")\n",
"B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
" cursor=\"plus\")\n",
"B1.pack()\n",
"B2.pack()\n",
"top.mainloop()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 110
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
=======
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Chapter 15: Additional in 'C'<h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.1, Page number: 505<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Allocate memory to pointer variable. \n",
"\n",
"import sys\n",
"\n",
"#Variable initialization\n",
"j = 0\n",
"k = int(raw_input(\"How many number : \"))\n",
"p = [0 for i in range(0,k)]\n",
"\n",
"#in python, all variables are allocated using dynamic memory allocation technique and no\n",
"#malloc function and pointer concept is available in python.\n",
"\n",
"#Read the numbers\n",
"while j != k:\n",
" p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
" j += 1\n",
" \n",
"j = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"The numbers are : \")\n",
"while j != k:\n",
" sys.stdout.write(\"%d\\t\"%(p[j]))\n",
" j += 1\n",
" \n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many number : 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 1 = 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 2 = 2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 3 = 3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 4 = 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The numbers are : 1\t2\t3\t4\t"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.2, Page number: 506<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Memory allocation to pointer variable. \n",
"\n",
"import sys\n",
"\n",
"#Variable initialization\n",
"j = 0\n",
"k = int(raw_input(\"How many Number : \"))\n",
"p = [0 for i in range(0,k)]\n",
"\n",
"#in python, all variables are allocated using dynamic memory allocation technique and no\n",
"#calloc function and pointer concept is available in python.\n",
"\n",
"#Read the numbers\n",
"while j != k:\n",
" p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
" j += 1\n",
" \n",
"j = 0\n",
"\n",
"#Result\n",
"sys.stdout.write(\"The numbers are : \")\n",
"while j != k:\n",
" sys.stdout.write(\"%d\\t\"%(p[j]))\n",
" j += 1\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many Number : 3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 1 = 45\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 2 = 58\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Number 3 = 98\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The numbers are : 45\t58\t98\t"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.3, Page number: 507<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Reallocate memory \n",
"\n",
"import sys\n",
"\n",
"#Variable Initialization\n",
"str1 = \"India\"\n",
"\n",
"#in python, value tagged method is used for data storage instead of memory tagging.\n",
"#no realloc function is in python\n",
"\n",
"#Result\n",
"sys.stdout.write(\"str = %s\"%(str1))\n",
"str1 = \"Hindustan\"\n",
"sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"str = India\n",
"Now str = Hindustan"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.4, Page number: 508<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display unused memory \n",
"\n",
"import psutil\n",
"\n",
"psutil.phymem_usage()\n",
"\n",
"#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
"#status and usage of physical memory in python."
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.5, Page number: 510<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Linked list\n",
"\n",
"import sys\n",
"\n",
"#Variable Initialziation\n",
"ch = 'y'\n",
"p = 0\n",
"q = []\n",
"\n",
"#Function Definitions\n",
"def gen_rate(m):\n",
" q.append(m)\n",
" \n",
"def show():\n",
" print q\n",
" \n",
"def addatstart(m):\n",
" q.insert(0,m)\n",
" \n",
"def append(m,po):\n",
" q.insert(po,m)\n",
"\n",
"def erase(d):\n",
" q.remove(d)\n",
" \n",
"def count():\n",
" print len(q)\n",
" \n",
"def descending():\n",
" q.sort(reverse=True)\n",
" \n",
"#Get choice\n",
"while ch == 'y':\n",
" n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
" #There is no switch statement in python\n",
" if n == 1:\n",
" i = int(raw_input(\"How many node you want : \"))\n",
" for j in range(0,i):\n",
" m = int(raw_input(\"Enter the element : \"))\n",
" gen_rate(m)\n",
" show()\n",
" else:\n",
" if n == 2:\n",
" m = int(raw_input(\"Enter the element : \"))\n",
" addatstart(m)\n",
" show()\n",
" else:\n",
" if n == 3:\n",
" m = int(raw_input(\"Enter the element and position \"))\n",
" po = int(raw_input(\"Enter the element and position\"))\n",
" append(m,po)\n",
" show()\n",
" else:\n",
" if n == 4:\n",
" d = int(raw_input(\"Enter the number for deletion : \"))\n",
" erase(d)\n",
" show()\n",
" else:\n",
" if n == 5:\n",
" show()\n",
" else:\n",
" if n == 6:\n",
" count()\n",
" else:\n",
" if n == 7:\n",
" descending()\n",
" show()\n",
" else:\n",
" sys.stdout.write(\"Enter value between 1 to 7\")\n",
" \n",
" ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"1. Generate\n",
"2. Add at starting\n",
"3. Append\n",
"4. Delete\n",
"5. Show\n",
"6.Count\n",
"7.Descending\n",
"Enter your choice: 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"How many node you want : 4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 4\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Enter the element : 7\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[1, 5, 4, 7]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"stream": "stdout",
"text": [
"Do u wnat to continue (y/n)n\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.6, Page number: 518<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Draw circle, line and arc using graphics function\n",
"\n",
"%matplotlib inline\n",
"import pylab\n",
"import matplotlib.pyplot as plt\n",
"\n",
"#Tkinter package is used for graphics\n",
"#Give proportionate sizes to draw\n",
"#draw circle\n",
"circle2=plt.Circle((.5,.5),.2,color='b')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(circle2)\n",
"\n",
"\n",
"#draw line\n",
"figure()\n",
"pylab.plot([210,110],[150,150])\n",
"\n",
"#Draw ellipse\n",
"figure()\n",
"from matplotlib.patches import Ellipse\n",
"e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(e)\n",
"e.set_clip_box(ax.bbox)\n",
"e.set_alpha(0.7)\n",
"pylab.xlim([20, 50])\n",
"pylab.ylim([-65, -35])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"WARNING: pylab import has clobbered these variables: ['pylab', 'e']\n",
"`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 61,
"text": [
"(-65, -35)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x707a9f0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n3eYAAL5E5iE0NDSYvLw8Y4wxdXV1ZvLkySYnJ8fk5OSYMWPGmKlTp5q2tjZjjDHNzc1m1qxZ5oMP\nPujzeNOnTzeSePHixYvXQ76mT5/+MHHdp4Sv7D0ej9ra2uJ/drvdOnfunCZOnKjOzk6tXLlS27Zt\n08KFC/s8xkcffZToaQEAQzDgmn0gENCiRYt08eJFZWdna+fOnX3O/e1vf6vLly8rEonI5/PJ5/Op\nvb09qQUDABLnMF9ccAcAjDpJf4K2t4ewOjo6tHTpUs2aNUs/+MEP1NnZGd+3detWzZw5U7Nnz9bh\nw4eTXU7S9dbfhg0bNGfOHOXn5+v555/Xf//73/i+0dDf5774EJ00svrrq7eKigrNmTNHeXl52rhx\nY3x8JPUm9d7f6dOntWDBAvl8Ps2fP19nzpyJ7xtp/TU3N+v//u//9MQTTygvL0/vvvuupNGTL331\nl7R8GdKKfy+OHTtmzp8/H7+ha4wxGzZsMNu2bTPGGFNaWmo2btxojDHmwoULJj8/39y+fds0NDSY\n6dOnm3v37iW7pKTqrb/Dhw/H6964ceOo688YY5qamsyyZctMTk6O+eSTT4wxI6+/3no7cuSIWbJk\nibl9+7YxxpiPP/7YGDPyejOm9/6+//3vm6qqKmOMMQcPHjR+v98YMzL7a21tNTU1NcYYY/73v/+Z\nWbNmmQ8//HDU5Etf/SUrX5J+Zd/bQ1h//etf9corr0iSXnnlFe3fv1/SZ5/XDwQCSk1NVU5OjmbM\nmKHTp08nu6Sk6q2/pUuXKiXls3+UTz75pFpaWiSNnv6k3h+iG2n99dbb73//e/3qV7+KPw8yadIk\nSSOvN6n3/jIzM+NXgp2dncrKypI0MvubMmWK5s6dK0lKS0vTnDlzdOXKlVGTL731d/Xq1aTlyyP5\nH6G1tbXJ6XRKkpxOZ/zTPFevXpXL5YrPc7lcunLlyqMoadi89957evbZZyWNnv76eohuNPR36dIl\nHTt2TE899ZT8fr/Onj0raXT0JkmlpaVav369Hn/8cW3YsEFbt26VNPL7a2xsVE1NjZ588slRmS8P\n9vegoeTLI/+/XjocDjkcjn73j1RvvfWWxo4dq5dffrnPOSOtv88footEIvEx0889/ZHW3927d3Xt\n2jWdPHlS27dv10svvdTn3JHWmySVlJTo3XffVVNTk95++20Fg8E+546U/q5fv64XXnhB77zzjtLT\n07vtGw35cv36db344ot65513lJaWFh8far48krB3Op3697//LUlqbW3V5MmTJUlZWVlqbm6Oz2tp\naYn/mjnS7Nq1SwcPHtSf//zn+Nho6O/y5ctqbGxUfn6+3G63WlpaVFBQoLa2tlHRn8vl0vPPPy9J\nmj9/vlJSUtTe3j4qepM+u0H73HPPSZJefPHF+K/5I7W/O3fu6IUXXtDq1av14x//WNLoypfP+1u1\nalW8PylJ+TIcNxoefOLWmM9u0JaWlhpjjNm6dWuPGwy3bt0y//rXv8y0adPM/fv3h6OkpPpif4cO\nHTK5ubnmP//5T7d5o6W/B/V2g3Yk9ffF3v7whz+YzZs3G2OM+ec//2mys7ONMSOzN2N69ufz+Uws\nFjPGGPP3v//dzJs3zxgzMvu7f/++Wb16tfnZz37WbXy05Etf/SUrX5Ie9j/96U9NZmamSU1NNS6X\ny7z33nvmk08+MYsXLzYzZ840S5cuNdeuXYvPf+utt8z06dPNd77znfinBr7Kvtjfjh07zIwZM8zj\njz9u5s6da+bOnWvWrVsXnz9S+xs7dmz839+D3G53POyNGVn99dbb7du3zapVq0xeXp757ne/a44e\nPRqfP5J6M6b3v3tnzpwxCxYsMPn5+eapp54y58+fj88faf0dP37cOBwOk5+fH/+7dujQoVGTL731\nd/DgwaTlCw9VAYAF+FpCALAAYQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAX+Hze/zGOH\nVK27AAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x7349d10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x78994d0>"
]
}
],
"prompt_number": 61
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.7, Page number: 519<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Draw boxes and fill with different designs.\n",
"\n",
"%pylab\n",
"#Tkinter package is used for graphics\n",
"from matplotlib.patches import Rectangle\n",
"from matplotlib.collections import PatchCollection\n",
"\n",
"e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
"fig = plt.gcf()\n",
"fig.gca().add_artist(e)\n",
"e.set_clip_box(ax.bbox)\n",
"e.set_alpha(0.7)\n",
"pylab.xlim([20, 50])\n",
"pylab.ylim([-65, -35])\n",
"\n",
"#There are no different automatic fill styles. user should create the styles."
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x7373590>"
]
}
],
"prompt_number": 72
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.8, Page number: 520<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display text in different size, font, vertically and horizontally \n",
"\n",
"%pylab\n",
"\n",
"from pylab import *\n",
"\n",
"#Tkinter package is used for graphics\n",
"# set limits so that it no longer looks on screen to be 45 degrees\n",
"xlim([-5,5])\n",
"\n",
"# Locations to plot text\n",
"l1 = array((1,1))\n",
"l2 = array((5,5))\n",
"\n",
"# Rotate angle\n",
"angle = 90\n",
"trans_angle = gca().transData.transform_angles(array((45,)),\n",
" l2.reshape((1,2)))[0]\n",
"\n",
"# Plot text\n",
"th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
" rotation=0)\n",
"th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
" rotation=0)\n",
"th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
" rotation=angle)\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Using matplotlib backend: module://IPython.kernel.zmq.pylab.backend_inline\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'angle', 'linalg', 'info']\n",
"`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAA5AAAATCCAYAAADLrQlWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeUFFXC/vGnezIwMMOQBASGLIIoAgKSg+ASX0AQV5II\nKuqCArqGV4FFF8EAiLrKLkFAMawSDSgZBFxAlrQknSGpIBJkkORwf3/w63q7Ot6BIa3fzzl9znTV\nrVu3blWHZ6r6lscYYwQAAAAAQBTey90AAAAAAMDVgQAJAAAAALBCgAQAAAAAWCFAAgAAAACsECAB\nAAAAAFYIkAAAAAAAKwRIAMAF83q9rseUKVNc8ydPnhxU5mLbsmWLYmNjnfUNHTr0oq/zcunVq5er\nb5s0aXK5m/RfY/HixUHH7u7duy93sxDGxdhfl/r1lZ2drTfeeEMNGzZUWlqaYmJiLul755WM12Pu\nmjhxoqsvv/jiC6vlYi9yuwAAuahx48ZaunSpa9rZs2dDls3MzFTZsmVd03r27KlJkyZdtPb5eDye\nC5qfG4YMGeL0TXJysgYOHBhUJvDLWKNGjbRo0aKQ9U2ePFn33HOPa9qkSZPUs2fPXGpx7rkU/Xu5\njBkzRkeOHHGeN2nSRI0aNbpk689p35YpU+aCvuCWLl1aGRkZ5718bpg8ebIyMzOd5zfddJPat29/\n+RqUA6H2165du1zvgx6PRwMHDlSBAgXOu87c1KVLF3388ceXZd3na+bMmVq/fr3zPD09/ZK8N16p\n/RHNtm3btHTpUi1dulSbNm3Srl27dOzYMcXHx6tIkSK68cYb1blzZ3Xt2lWxsaHjWqjPpEjmzJmj\n1q1bu6b16NFDw4cPd96jhgwZom+++SZqvxIgAeAqltMPz6v1wzanFi5cqE8//dR5/sADDyglJSXq\ncldrf/racaW052IaM2aMK5B5PJ5LGiAvtSthn06ePNn1j6uePXte8QHS4/HIGBNyXkZGhoYPH+6a\n1rt3b+sAeTEtX748ZHiMtD1XgpkzZ+rtt992njdq1OiiBsgrvT8i+eijj9S5c+eQ806cOKFdu3Zp\n165dmjVrlkaOHKnZs2crPT39gtcb6r0kNjZWjz32mB566CFJ0oYNGzR58mT17t07Yl0ESADAf52R\nI0c6f3s8HvXt2/cytubie/HFFzVs2DDneWJi4mVszaV1JQSsSDweT8g2hvryG1juSv2CfCX3ed26\ndV1nSyWpRIkSrueB7b+Stmf16tWu57GxsXr//fdVvXp1xcTEXKZW5dzF6lOb/XulC3XVULhAvHnz\nZrVo0UKbNm2yel8P914TaX90795dgwcP1smTJyVJo0aNIkACAH5fdu7cqS+//NJ5XqtWLZUrV+4y\ntujiS0tLU1pa2uVuxmVxpYYsn+XLlys7O9s1zRij+vXra9++fc60kiVLavny5UHLh7t87XK6kvs8\nISFBpUqVilgmVPuvlG3KyspyPS9RooQ6dOhwmVpz/i5Wf9rs36tF/vz5ddddd+n2229XhQoVdOTI\nEc2cOVOvvPKKzpw545T77rvvNHnyZN1///0R63vxxRfDntmUpCJFioScnpycrDZt2ujDDz+UdO7y\n2kWLFkX8re/v+5e4AADHzp07NWTIENWqVUtpaWmKi4tT4cKFVb9+fT333HM6fPjwJWnH4cOHNXr0\naDVv3lzFihVTQkKCkpOTVbFiRfXo0UPz58+PuPzf//531/OuXbtezOaGtWTJEvXp00fXXXedChQo\noPj4eBUtWlSNGzfWc889p4MHD4ZdNtSgRL/88oueeuopValSRXny5HENHhFtkI/A+dEeS5YsCWqT\nMUZz5szRXXfdpfLlyys5OVkJCQkqXry4WrZsqbFjx+rYsWMhtyczMzPkOo4ePaqnn35aVapUUVJS\nklJSUtS8eXN9/vnnYfsk8PeEw4YNCztAU3Z2tqZPn65BgwapWbNmqlSpkgoXLqy4uDglJyerXLly\n6tixo6ZOner6wpabSpQooVKlSrkepUuXDjqbFBsbG1SuVKlSKl68uKTg4ykhIUElSpRQmzZtNGnS\nJP32229B6/773//u6pfY2NigM1ynT59W9erVXeWaNm0qY4zKlCkjr9cb9LvrKVOmnPdAJoH7q1mz\nZkFlSpUq5czPkydP0L7p3r27q45+/fo58yINsuIbzKtp06au+owxSk9Pdy0T7QyMdO6fAx07dlTR\nokWVkJCg8uXLa/DgwTp69KhVX/jzvUb9rySQzv1eM1q7vvnmGz344IOqXr26UlNTnffuOnXq6Mkn\nn4y4b3z72PcYNmyYzp49qzfffFP16tVTgQIFlDdvXtWoUUOvvvpqUDBs3LixvF6v6/JV6dzxGul9\n5ddff9W4cePUokULlShRQomJiUpMTFTJkiV18803q3fv3nr99de1Y8cOV73RBtEJNT/SI9x+vpif\n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\nqBkzZriuOAgUeIVKqNs1+SNAAsBVxBNwX0KbD+LAZULNHz58uHbs2KEnn3xS9erVU5EiRRQfH6+k\npCRde+21at68uZ566iktWbLEdZmL7XoC2xuuLR07dtR3332nF154QU2aNFHRokUVHx+vfPnyqXz5\n8rr77rv16aef6osvvgg7hHmFChVcXy5Xr14d9nciNv0TahsilU9JSdGsWbO0cOFC9e7dW5UqVVL+\n/PkVFxenwoULq2HDhvrLX/6ijIwM3X333RfcrlBti1ZftEegkiVLavny5Zo5c6buvPNOpaenK2/e\nvIqPj1exYsXUokULvfLKK/r2228jXrpqcyxGK1O6dGmtWrVKd911l0qUKKH4+Piwy9SsWVPr1q1T\nz549Vbx4cae9HTt21LJly9SnT5+o7bI9dnPKpt+lcwH+448/1ooVK3TfffepWrVqSk1NVWxsrJKT\nk1WhQgW1b99eo0eP1ubNm12/qerfv78yMjKc+kuUKKHXX3/dVX/r1q2dyxp95e655x7XPeDy58+v\nr776Sv369VN6eroSEhJyfM/ZUHyvU/+6ypYt6xroJSEhQbVr1w7qq3AB0nZ/DRw4UNOmTVODBg2U\nkpIir9cbdptsX182643G9n1GOtc3b731ltauXav+/furWrVqSklJUVxcnNLS0lS7dm39+c9/1o4d\nO8IOBmNzDNq0KSYmRgsWLNCgQYNUqVIlJSYmhi0/btw4TZ8+Xf3791edOnVUtmxZJScnKy4uTgUL\nFlTNmjX16KOPauPGjUH3mI3Wz6HampP3utz6PIwkp20M1c7k5GTt379f7733nu6//37Vrl3baWdi\nYqKKFy+uli1b6uWXX9bOnTvVqVOnsO355ZdfXP80qlSpUtTb43jMxfpXGgAAl8nChQtdg8M89thj\nIQcUAADg92z8+PH605/+5DyfOHFi0CBEgQiQAID/Sq1bt3ZGHU1OTlZmZqZSU1Mvc6sAALgynDlz\nRuXLl9eePXskSdWrV9c333wTdTkuYQUA/FcaPXq0YmJi5PF4lJWVpXHjxl3uJgEAcMWYOnWq9uzZ\n41wqO3r0aKvlOAMJAAAAALDCGUgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKABAAAAABY\nIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKA\n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\nLC6v8wT8Fi4pKUlLly7ViBEjVL16deXNm1d58uRRuXLl1LFjR02cOFHXXHNNxPpDTS9atKjWrFmj\ngQMHqly5cs59IOvWratJkybp9ddfd9Vx7733Sjo3QEXgYBm+NofarnBtaty4sb7++mt17drVuQ9k\nWlqa2rRpo8WLF6tbt27W/RZpvn/bAh+SdNddd2nx4sVq06aNChUq5NyPsWvXrvr6669d97zMSf9K\n537neuedd6pIkSJB6502bZq6du2qggULKiUlRd27d9d7773narPt9ocTbr/ceeedWr58uTp16qRi\nxYopLi5ORYoUUa1atfTnP/9ZgwYNctr/9ddfy+PxaNSoUSpXrpyKFy+u1157TZK0detWPfroo069\nU6dOVcOGDVWgQIGoAyn5812a6vF4XL+78x+cqHHjxkHbFqpPbr75Zo0bN07lypVTfHx8yDZEOo5s\n2htpf/ztb3/TpEmTVLduXSUnJys+Pl7lypXTwIEDtWbNGtclrOH6KNz0SP37xBNPqEGDBs59PfPm\nzev0xZ/+9Kew22/+/xnaaK+TIkWKaM2aNXrsscdUuXJlJSYmKjk5WZUqVdIf//hHzZgxI0f9Fmld\nPu+++65eeOEFXXfddUpISFCBAgV022236YsvvtDdd9/tKutbf4ECBdS1a9eobQF+7zzG8GthAMDF\nd+utt2rlypXq1q2bpk+ffrmbAwA6c+aMypcvrz179ujJJ5+M+ptPAARIAMAlsmrVKtWrV0+xsbHa\nunWr9W8DAeBimThxou69914VLVpUO3fudEaxBRAeARIAAAAAYIXfQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAA8P/Yu/cgver6juOfZ3O/SLgnyiUkUiiNXGJoKwq4toNVLgrDRa3EWJCa\ncBEGREp1KNG0A5V2qI46VQyYUrENxtRQEcaWQImkViUhVq3BxAQZIGQwlEsW4ubpHzQLayD5xjH7\nHNjX658s5znJftmZ/c2+93fOeaBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nACrWxdwAACAASURBVAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBE\nQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAA\nKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgA\nAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUC\nEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABA\niYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIA\nAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQ\nAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABK\nBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAA\ngBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAE\nAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAi\nIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAA\nlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQA\nAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAl\nAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAA\nQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREAC\nAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgR\nkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAA\nSgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIA\nAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImA\nBAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQ\nIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAA\nAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQk\nAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIAS\nAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAA\noERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiAB\nAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQI\nSAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAA\nJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkA\nAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERA\nAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAo\nEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAA\nAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQIS\nAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJ\ngAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAA\nUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAA\nAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoE\nJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACA\nEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQA\nAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIg\nAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAICSoZ0eAHhpTz/9dO69\n99488sgjabfbmTBhQqZOnZrRo0d3ejQAAAYhAQkNs2nTpixYsCBf+MIXcvfdd2fTpk1pt9tJklar\nlaFDh+aoo47KOeeckzPOOCPDhg3r8MQAAAwWrfaWn0yBjps/f34uv/zyrFq1qnT+pEmTctVVV+X0\n00/fyZMBAICAhEbp6nr+tuTf+73fyzHHHJPDDz88e+yxR5Jk/fr1Wb58ef7jP/4j//Vf/5XkuV3J\n3t7ejswLAMDgIiChQcaNG5fzzz8/H/jABzJp0qRtnrtq1apcd911+exnP5sNGzYM0IQAAAxmAhIa\nZMOGDdl11113+t8BAIBfh4CEhlqzZk1arVb233//To8CAABJCu8D+aEPfSjjx49PV1dXTjrppJc8\nb+HChTnwwAMzatSovOUtb8nPfvaz3+ScMOhMmjTpJS9jnTRpUiZPnjzAEwEAMNhtNyBbrVbe8573\n9H38Yh5++OG8+93vzq677pprrrkm3/ve9zJjxozf7KRAkqTdbmfNmjVZs2ZNp0cBAGCQ2e77QP7d\n3/1d1qxZk0996lMvec5NN92UZ599NpdffnlOPfXU/Od//mduvPHGrFq1yi4J7IDHH388jz/+eF54\nZfnatWvTbrf7foGzbNmyJMmQIUM6MiMAAIPXdgMySbZ3m+Tq1auTJPvss0+SZN999+07LiCh7tpr\nr83s2bP7YrHdbm91GeuW78fXvOY1Az4fAACDWykgd9S2gvOII47I8uXLd8anhVeMF34PvdT305aH\n7DA4HH744X27zwAAnfJrB2RPT0+GDBmSYcOG9e0yPvDAA3nDG96QBx98MEledPdx+fLl293RHAhX\nXnllrrzyyk6P0Qi+Fs/r9Ndi4cKFWbhwYZJk3rx5SZIZM2b0fc+0Wq3sueeeecMb3pBTTz11p87S\n6a9FkzTha+GXBQBAE2w3IP/1X/81P/jBD5I8dy/WF7/4xRx77LE5+OCDM2XKlKxYsSLvfve782d/\n9me5+uqr8/DDD+drX/tajjnmmO2+ETrQ38knn5yTTz45yfMBef3113dyJAAA6LPdp7Bec801ufzy\ny9NqtXLfffflT//0T/Ptb387yfO/EZ8wYUJuuummbNiwIZdeemmmTZuWG264YacODq90GzZsyObN\nm1/y9VWrVg3gNAAAUAjIO+64I5s3b05vb2/fnzNmzMjmzZtz33339Z13yimn5P77709PT08WL17c\n+N3H7u7uTo/QGL4Wz2vS1+KII47I0qVLX/S1L33pS5k6depO/fxN+lp0mq8FAMBzWu0BviGx1Wo1\n4h5IaLqurq4MHTo0f/EXf5GPfvSjSZ57m4+ZM2fmn/7pn9JqtdLb29vhKRko1k4AoAkEJDTU+PHj\n8+ijjyZJjj322HzoQx/KxRdfnLVr1yZJDj30UE80HkSsnQBAEwhIaKhHH300s2bNyoIFC/od7+rq\nyiWXXJJPfOITGT58eIemY6BZOwGAJhCQ0HDveMc7csstt/T990c/+tF84hOf6OBEdIK1EwBogu0+\nRAfojLVr1+a4447rF49J8ld/9Vf54Ac/mKeffrpDkwEAMFjZgYSGGjduXJ544okkyYknnpiLL744\n559/fn74wx8mSSZPnpz777+/kyMygKydAEAT2IGEhnriiScycuTIfPrTn87Xv/71dHd357vf/W5m\nzZqVJFm9enWHJwQAYLCxAwkNdeihh+YrX/lKpkyZstVrixYtytlnn51169Z1YDI6wdoJADSBgISG\neuaZZzJixIiXfP2hhx7Kq1/96gGciE6ydgIATTC00wMAL25LPN577725/fbb89hjj+Xqq6/OmjVr\n0mq1xCMAAAPODiQ02AUXXJDPfOYzSZ773unt7c3RRx+de+65J3Pnzs2MGTM6PCEDxdoJADSBh+hA\nQ11//fV98fhCs2bNSrvdzqJFizowFQAAg5mAhIb63Oc+lyQ544wz+h1/85vfnCRZvnz5gM8EAMDg\n5hJWaKgxY8akp6cn69aty1577dV3CeumTZsyYsSIjB49Ok8++WSnx2SAWDsBgCawAwkNtSUWRo4c\n2e/4mjVrkjwXFAAAMJAEJDTUa1/72rTb7cybN6/v2EMPPZQLLrggSXLggQd2ajQAAAYpAQkN9a53\nvStJct555yV5bkdy3333zW233ZYkOf300zs2GwAAg5N7IKFBZs+enVarlSuuuCI9PT3p7u7Od77z\nna3OO/LII3PXXXdtdXkrr1zWTgCgCQQkNEhXV1ffw3KS5Omnn86nPvWpLFq0KOvWrcv48eNz4okn\n5sILL8yoUaM6PC0DydoJADSBgIQG+dWAhC2snQBAE7gHEgAAgJKhnR4A6K/dbuess84qnTt37tyd\nPA0AADzPJazQIF1d9YsCXOo6uFg7AYAmcAkrvEyJCQAABppLWKFhWq1W5s6du91AbLVaAzQRAAA8\nxyWs0CCewspLsXYCAE3gElYAAABKBCQ0jF0mAACayj2Q0CD//u//7t5GAAAayz2QAC8D1k4AoAlc\nwgoAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJRs9208lixZklmzZuUnP/lJpkyZkuuuuy5Tp07t\nd0673c7FF1+cr3zlK9mwYUMOOOCAzJ49O2ecccZOGxxeif7kT/5kh97GY+7cuTtxGgAA6G+bb+PR\n09OTAw44IGPGjMmll16aOXPmZMSIEVm5cmW6up7fvLz11ltzwgknZNq0aXn/+9+fyy+/PL/85S/z\nxBNPZMiQIf0/oUfRw0t64ffV9rRarfT29u7EaWgSaycA0ATb/Gn11ltvzbp163Luuedm5syZOfvs\ns7N69eosXry433m77rprkuS1r31t/vAP/zC77LJLdtlllx36YRjYMWICAICBts1LWFevXp0k2Wef\nffr9ueX4FkcddVSuuOKKfPzjH88///M/Z+TIkbnlllt26FI8IFm1alWnRwAAgJe03XsgX+ildjy+\n853v5C//8i/zR3/0R5k5c2YuuuiizJgxI//zP/+T0aNHb3X+lVde2fdxd3d3uru7d2hoeKU64IAD\nOj0CDbF48eKtrvYAAOi0bQbk5MmTkyQPPPBAkuTBBx/sO97T05MhQ4Zk2LBhWbx4cXp7ezN9+vS8\n853vzKJFizJ37tz86Ec/yrRp07b6d18YkMC2/eIXv8j999+fjRs3bvXascce24GJGAi/+su12bNn\nd24YAID/t82AfPvb35699947n/vc5zJ27Nh88YtfzKRJk/LmN785Q4cOzZQpU7JixYoccsghSZLP\nfvazeeqpp3LLLbdkxIgRmTRp0oD8T8Ar0aZNm/LBD34w8+bNS7vd3uoKAA/RAQBgoG3zKTcjRozI\n/PnzM3bs2Fx00UWZMGFC5s+f3/dwnC33OJ500kn52Mc+lrVr1+bCCy/MnnvumRtvvDG77777zv8/\ngFeoa665JjfccEM2b978opePe4gOAAADbZtv47FTPqFH0UPJ4YcfnhUrVuSII47IsmXLkiSnnHJK\nvvGNb2TffffN0Ucfneuvv77DUzJQrJ0AQBN4nw1oqPvvvz+tVis333xzkucC4qtf/WpuvvnmrF69\nOu94xzs6PCEAAIONHUhoqOHDh6e3tzfPPPNMRo4cmXa7nSeeeCJdXV0ZPXp03z3IDA7WTgCgCXbo\nbTyAgbPbbrtl/fr12bhxY3bfffesX78+c+bMyZgxY5IkP/3pTzs8IQAAg42AhIaaPHly1q9fnwcf\nfDCvf/3rc/vtt+eqq67qe917RgIAMNDcAwkN9da3vjUHHXRQfvzjH+fDH/5w31OPk+cuZ7ziiis6\nOB0AAIOReyDhZWLJkiWZP39+hg0blpNPPjlvetObOj0SA8jaCQA0gYAEeBmwdgIATeASVmioefPm\n5ayzzsqNN97Y7/g//MM/5Kyzzsq8efM6NBkAAIOVHUhoqGnTpmXZsmW58847c/TRR/cdX7p0ad74\nxjfmsMMOy7Jlyzo4IQPJ2gkANIGAhIbaZZdd8tRTT+WJJ57I6NGj+44/9dRTedWrXpWxY8fmf//3\nfzs4IQPJ2gkANIFLWKGhnn322STJI4880u/4unXrkiS//OUvB3wmAAAGNwEJDbX//vun3W7n0ksv\nzcaNG5MkGzduzGWXXZYk2W+//To5HgAAg5CAhIY64YQTkiQLFizIhAkTcuihh2bChAm5+eabkyTH\nH398J8cDAGAQcg8kNNTDDz+cI444ou+S1RcaP358li1blvHjx3dgMjrB2gkANIEdSGioCRMm5O67\n787b3va2DBkyJEkydOjQvP3tb8/dd98tHgEAGHB2IOFlYOPGjXnsscey++67Z9SoUZ0ehw6wdgIA\nTSAgAV4GrJ0AQBMM7fQAwPMmTZqUVquVVatW9X38Ytrtdt95AAAwUOxAQoN0dXWl1Wqlt7c3XV3b\nvkV5y3kMDtZOAKAJ7EBCg+y///59u47777//Ns99qd1JAADYWexAArwMWDsBgCbwNh7QUF/60pcy\nb968F31t7dq1Wbt27QBPBADAYGcHEhrqhfdD7shrvDJZOwGAJrADCS8zohEAgE7xEB1okOXLl2f5\n8uV9O03tdnury1hXrFiRJBkxYsSAzwcAwOAmIKFBFi5cmNmzZ/c79v73v/9Fz508efIATAQAAM9z\nCSs0SPUet+HDh+eKK67YydMAAEB/HqIDDbJs2bIsW7YsSXLWWWclSa6//vq+75lWq5U999wzU6dO\nzWte85qOzcnAs3YCAE0gIKGhuru702q1cscdd3R6FBrA2gkANIFLWKGBNm7cmLVr12bNmjX58Y9/\n3OlxAAAgiR1IaKxx48blySefzMaNGzN8+PBOj0OHWTsBgCawAwkNddxxx6XdbvfdEwkAAJ1mBxIa\n6u67784pp5yScePGZc6cOZk6dWpGjRrV75z999+/Q9Mx0KydAEATCEhoqK6u/hcItFqtvo/b7XZa\nrVZ6e3sHeiw6xNoJADTB0E4PANT8ajyICQAABpqAhIZ63/vet83XX7gjCQAAA2G7l7AuWbIks2bN\nyk9+8pNMmTIl1113XaZOnbrVeQ888EDOP//8fOtb38qwYcNy4okn5sYbb9z6E7oMC2CHWTsBgCbY\n5lNYe3p6cuqpp+app57Ktddem0ceeSSnnXZaNm/e3O+8drudU045Jf/2b/+Wyy67LJ/85Cez9957\n79TBYTBZt25dfvSjH3V6DAAABrltBuStt96adevW5dxzz83MmTNz9tlnZ/Xq1Vm8eHG/8+644458\n//vfz8UXX5zLLrss55xzTv72b/92Z84Ng8Ldd9+dww8/PBMmTMjrXve6JMm73/3u/MEf/EGWLl3a\n4ekAABhsthmQq1evTpLss88+/f7ccnyLH/7wh0mSm2++OaNHj84uu+yST3/607/xYWEwWbFiRd76\n1rdmxYoV/Y7/zu/8ThYvXpyvfOUrHZoMAIDBaoceovNS998888wzSZLhw4dn4cKF+djHPpaLLroo\nb3vb2/Jbv/VbW51/5ZVX9n3c3d2d7u7uHRkDBoWPf/zj6enpyV577ZVHH3207/g73/nOXHnllbnz\nzjs7OB072+LFi7e62gMAoNO2GZCTJ09O8twDcpLkwQcf7Dve09OTIUOGZNiwYX3nnXDCCTnppJPy\n7W9/OytWrMjPfvaz7QYk8OLuvPPOtFqt3HbbbXn961/fd/zggw9Okvz85z/v1GgMgF/95drs2bM7\nNwwAwP/b5lNYn3nmmUycODGjR4/OpZdemjlz5mTkyJFZuXJlhg4dmilTpmTFihXZuHFjJk2alHHj\nxuUjH/lIrr766jzyyCP56U9/mj333LP/J/QkQSgZPnx4ent709PTkxEjRqTVaqW3tzcbNmzI7rvv\nnuHDh6enp6fTYzJArJ0AQBNs8x7IESNGZP78+Rk7dmwuuuiiTJgwIfPnz09X13N/bcv70I0aNSo3\n33xzRowYkfPPPz9jx47NggULtopHoG6vvfZKkvz3f/93v+Nf+tKXkiTjx48f8JkAABjctvs+kL/x\nT+i36FAyffr0/OM//mMOOOCA/OxnP0uSHHfccfnWt76Vdrud973vfbnhhhs6OiMDx9oJADSBgISG\n+tGPfpRp06a96GWqI0eOzPe+970ccsghHZiMTrB2AgBNsM1LWIHOOeSQQ3L77bf3PTRni4MOOijf\n/OY3xSMAAAPODiQ0SHd3d6ZPn57TTz89u+yyS9/xlStXZt26dRk/fnwOPPDADk5Ip1g7AYAmEJDQ\nIFseUDVy5MiceOKJOfPMM3P88cdn6NAdestWXoGsnQBAEwhIaJAtAflCe+yxR84444yceeaZOeqo\nozowFU1g7QQAmkBAQoN861vfyk033ZQFCxbk8ccf7/daq9XKpEmTcuaZZ+bMM890KesgY+0EAJpA\nQEIDPfvss7n11ltz0003ZdGiRdm4cWO/11utVn73d383S5cu7dCEDDRrJwDQBAISGu6pp57Kv/zL\nv+Smm27K7bffnk2bNiV57nupt7e3w9MxUKydAEATeDIHNNyYMWNy8sknp9VqZcOGDVmyZEmnRwIA\nYJASkNBQmzZtym233ZYvf/nL+frXv56NGzf224GyGwUAwEATkNAg7XY7d955Z7785S/nq1/9an7x\ni19sdc6kSZPy3ve+N9OnT+/AhAAADGYCEhpkv/32y0MPPbTV7uLuu++e008/PdOnT88b3/jGDk0H\nAMBg5yE60CAvfB/IESNG5IQTTsj06dNz/PHHZ9iwYR2cjE6zdgIATWAHEhrmmGOOyfTp03P66adn\n3LhxnR4HAAD6CEhokNWrV2fixImdHgMAAF5U1/ZPAQbKr/O+jqtWrdoJkwAAwNYEJDTIwQcfnDPP\nPDN33XXXds+988478973vje//du/PQCTAQCAh+hAo2x5iE6r1cqrX/3qvOlNb8phhx2WPffcM0ny\n6KOP5r777suSJUvy8MMP930vbd68uWMzMzCsnQBAEwhIaJClS5fmkksuyT333FM6/6ijjsrf/M3f\n5A1veMNOnoxOs3YCAE0gIKGBlixZks9//vO5/fbb88gjj/R7bfz48XnrW9+aD3zgAznmmGM67JKU\ndAAAD19JREFUNCEDzdoJADSBgISGe+CBB/Lwww8neS4e999//w5PRCdYOwGAJhCQAC8D1k4AoAm8\nDyQ03D333JNvfOMbefTRR7P33nvnhBNOyO///u93eiwAAAYhO5DQYDNnzsznP//5fsdarVY++MEP\n5rOf/WyHpqITrJ0AQBMISGioG264IWedddZLvn799ddnxowZAzgRnWTtBACaoKvTAwAvbsvO48SJ\nE3PttddmwYIFufbaazNx4sR+rwMAwECxAwkN9apXvSpPP/10li1blkMPPbTv+A9+8IMcdthhedWr\nXpXHH3+8gxMykKydAEAT2IGEhnr22WeTJPvtt1+/4/vuu2+/1wEAYKAISGio/fbbL+12O5dcckk2\nbNiQJNmwYUM+/OEPJ3k+JAEAYKAISGiok046KclzD8vZY489Mm7cuOyxxx6ZO3duv9cBAGCguAcS\nGmr9+vU58sgjs3bt2q1emzhxYr773e9mjz326MBkdIK1EwBoAjuQ0FB77rlnli5dmrPPPjsTJkzI\nkCFD8prXvCbnnHNOli5dKh4BABhwdiABXgasnQBAE9iBBAAAoGRopwcAntfV1ZVWq7Xd89rtdlqt\nVnp7ewdgKgAAeI6AhIapXqbockYAAAbadgNyyZIlmTVrVn7yk59kypQpue666zJ16tQXPffRRx/N\nIYccksceeyyf/OQnc8kll/zGB4ZXsmOPPbZ8r1tlpxIAAH6TthmQPT09OfXUUzNmzJhce+21mTNn\nTk477bSsXLkyXV1b3z554YUXpqenJ4kfbuHXsXjx4k6PAAAAL2mbD9G59dZbs27dupx77rmZOXNm\nzj777KxevfpFf8j9xje+kVtuuSWXXXbZzpoVAACADtrmDuTq1auTJPvss0+/P7cc3+LJJ5/Mueee\nm6uuuipjxozZGXPCoDB79uwd2r2/4oorduI0AADQ3w49ROel7su6+uqrM3r06Bx33HH52te+liRZ\nv359NmzYkF133XWr86+88sq+j7u7u9Pd3b0jY8Ar1uzZs8vntlotAfkKtnjxYpc0AwCNs82AnDx5\ncpLkgQceSJI8+OCDfcd7enoyZMiQDBs2LD//+c/z4x//OAcffHDf373qqqsyduzY/Pmf//lW/+4L\n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\nAAAAANbkf1M+pbyPupgkAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x792e430>"
]
}
],
"prompt_number": 95
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.9, Page number: 521<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Display status of mouse button pressed \n",
"\n",
"from Tkinter import *\n",
"from tkFileDialog import askopenfilename\n",
"import Image, ImageTk\n",
"\n",
"if __name__ == \"__main__\":\n",
" root = Tk()\n",
"\n",
" #setting up a tkinter canvas with scrollbars\n",
" frame = Frame(root, bd=2, relief=SUNKEN)\n",
" frame.grid_rowconfigure(0, weight=1)\n",
" frame.grid_columnconfigure(0, weight=1)\n",
" xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
" xscroll.grid(row=1, column=0, sticky=E+W)\n",
" yscroll = Scrollbar(frame)\n",
" yscroll.grid(row=0, column=1, sticky=N+S)\n",
" canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
" canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
" xscroll.config(command=canvas.xview)\n",
" yscroll.config(command=canvas.yview)\n",
" frame.pack(fill=BOTH,expand=1)\n",
"\n",
" \n",
"\n",
" #function to be called when mouse is clicked\n",
" def printcoords(event):\n",
" #outputting x and y coords to console\n",
" print \"Mouse Button pressed\"\n",
" print (event.x,event.y)\n",
" #mouseclick event\n",
" canvas.bind(\"<Button 1>\",printcoords)\n",
"\n",
" root.mainloop()\n",
" \n",
"import win32api, win32con\n",
"\n",
"print \"Current cursor position at \" \n",
"print win32api.GetCursorPos()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Mouse Button pressed\n",
"(207, 115)\n",
"Current cursor position at "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"(502, 188)\n"
]
}
],
"prompt_number": 108
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3>Example 15.10, Page number: 523<h3>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Change mouse cursor.\n",
"\n",
"#Placing the cursor on top of the circle button will change the pointer to circle\n",
"# and plus button to plus symbol\n",
"\n",
"from Tkinter import *\n",
"import Tkinter\n",
"\n",
"top = Tkinter.Tk()\n",
"\n",
"B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
" cursor=\"circle\")\n",
"B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
" cursor=\"plus\")\n",
"B1.pack()\n",
"B2.pack()\n",
"top.mainloop()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 110
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
>>>>>>> 0ee873700378b995b441b1be6652178f741aea5b
}
|