From b7c5d2afd9774286272c59305b31194c0276f2be Mon Sep 17 00:00:00 2001 From: Charles Li Date: Wed, 1 Mar 2017 00:03:50 -0500 Subject: [PATCH] Add sql and db driver script for updating review, course_offering and co_to_i tables --- .gitignore | 3 +- .../migrations/0022_review_course_offering.py | 21 +++ apps/web/models/review.py | 1 + blob.json | 1 + layup_list/settings.py | 8 +- scripts/add_course_offering_to_review.py | 155 ++++++++++++++++++ 6 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 apps/web/migrations/0022_review_course_offering.py create mode 100644 blob.json create mode 100644 scripts/add_course_offering_to_review.py diff --git a/.gitignore b/.gitignore index c851d1a..d78ce95 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ venv/ staticfiles .env -.pyversion +.exportenv +.python-version data ### Python ignores (https://github.com/github/gitignore/blob/master/Python.gitignore) diff --git a/apps/web/migrations/0022_review_course_offering.py b/apps/web/migrations/0022_review_course_offering.py new file mode 100644 index 0000000..2b99ba2 --- /dev/null +++ b/apps/web/migrations/0022_review_course_offering.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-02-26 04:12 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('web', '0021_allow_null_course_registration_number'), + ] + + operations = [ + migrations.AddField( + model_name='review', + name='course_offering', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='web.CourseOffering'), + ), + ] diff --git a/apps/web/models/review.py b/apps/web/models/review.py index 3f4c251..b73a86a 100644 --- a/apps/web/models/review.py +++ b/apps/web/models/review.py @@ -26,6 +26,7 @@ class Review(models.Model): user = models.ForeignKey(User) professor = models.CharField(max_length=255, db_index=True, blank=False) + course_offering = models.ForeignKey("CourseOffering", null=True) term = models.CharField(max_length=3, db_index=True, blank=False) comments = models.TextField(blank=False) diff --git a/blob.json b/blob.json new file mode 100644 index 0000000..0c4d4e5 --- /dev/null +++ b/blob.json @@ -0,0 +1 @@ +{"new_co_to_i_id": [9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555], "new_course_offering_ids": [13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061], "updated_review_ids": [3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 1555, 26, 29, 30, 35, 36, 37, 54, 55, 56, 59, 60, 61, 62, 1689, 63, 65, 66, 67, 68, 70, 72, 73, 74, 75, 98, 80, 81, 82, 87, 91, 93, 94, 95, 2150, 99, 100, 105, 106, 107, 108, 109, 117, 240, 133, 134, 135, 136, 137, 141, 144, 148, 149, 151, 152, 153, 154, 155, 156, 160, 161, 162, 163, 186, 11197, 170, 172, 173, 174, 175, 176, 178, 179, 181, 241, 187, 188, 189, 195, 196, 197, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 212, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 242, 243, 244, 248, 267, 1811, 268, 269, 270, 272, 275, 278, 279, 280, 443, 283, 284, 285, 286, 287, 288, 289, 290, 291, 306, 297, 301, 305, 307, 308, 309, 310, 313, 338, 339, 342, 343, 344, 1302, 359, 360, 361, 362, 5792, 364, 365, 366, 367, 368, 369, 377, 378, 379, 380, 382, 383, 384, 385, 386, 387, 388, 389, 399, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 416, 417, 418, 419, 420, 422, 426, 427, 428, 433, 434, 435, 437, 438, 439, 440, 444, 463, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 485, 487, 488, 489, 491, 492, 493, 494, 498, 499, 500, 501, 502, 503, 506, 1303, 508, 509, 510, 511, 516, 529, 10775, 518, 519, 520, 523, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 556, 543, 544, 545, 551, 552, 557, 558, 559, 560, 561, 562, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 583, 584, 589, 590, 591, 4135, 601, 604, 605, 612, 1931, 615, 616, 617, 618, 619, 620, 621, 627, 634, 635, 636, 637, 638, 639, 640, 641, 704, 645, 646, 647, 648, 649, 650, 651, 652, 653, 659, 661, 662, 665, 666, 667, 668, 669, 670, 671, 672, 673, 794, 688, 689, 690, 6346, 697, 698, 702, 703, 705, 706, 707, 708, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 757, 7551, 736, 737, 753, 744, 745, 746, 747, 748, 754, 1976, 758, 759, 760, 761, 763, 764, 765, 766, 767, 2012, 772, 773, 774, 775, 776, 777, 780, 781, 786, 787, 788, 795, 806, 811, 812, 813, 814, 818, 819, 820, 823, 825, 826, 3574, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 849, 850, 851, 864, 866, 877, 4187, 867, 868, 869, 870, 871, 872, 886, 887, 888, 889, 890, 891, 4299, 925, 929, 933, 934, 935, 936, 937, 940, 941, 942, 8453, 948, 950, 952, 954, 955, 956, 957, 959, 960, 961, 962, 963, 970, 971, 977, 983, 984, 985, 986, 988, 989, 990, 993, 994, 997, 998, 1012, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1013, 1014, 1015, 1016, 1017, 1018, 1022, 1023, 1024, 1025, 1030, 1031, 1032, 1033, 1038, 1212, 1039, 8895, 1051, 1054, 1094, 4300, 1057, 1213, 1069, 1071, 1072, 1074, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1098, 1099, 1100, 1101, 1102, 1104, 1105, 4301, 1115, 1135, 1136, 1137, 1139, 1145, 1146, 1147, 1152, 1154, 1155, 1156, 1158, 1161, 1163, 1165, 1172, 1174, 1175, 1177, 1179, 1190, 1180, 1181, 1183, 1189, 1191, 1193, 1195, 1196, 1199, 1200, 1202, 1203, 1204, 1205, 1208, 1210, 1216, 1224, 1226, 6195, 1227, 1231, 1232, 1233, 1236, 1237, 1242, 1243, 1244, 1245, 1246, 1247, 1249, 1250, 6196, 1257, 1263, 1264, 6245, 1265, 1266, 1267, 1272, 1273, 1275, 1276, 1278, 1279, 1280, 1281, 1282, 1283, 1285, 9459, 1288, 1293, 1295, 1299, 1300, 1301, 1304, 1311, 1314, 1317, 1320, 1324, 1325, 1329, 1330, 1331, 1337, 1338, 1339, 1344, 1345, 1346, 1347, 1576, 1350, 1352, 1353, 1354, 1356, 1359, 1361, 1363, 1366, 1368, 1369, 1370, 1374, 1376, 1408, 1452, 1379, 1382, 1383, 1385, 1388, 1390, 1392, 1393, 1483, 1394, 1397, 1398, 1400, 1404, 1405, 1410, 1412, 1414, 1415, 1416, 1417, 1418, 1419, 1439, 1425, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1441, 1442, 1444, 1446, 1447, 1448, 1449, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1465, 1466, 1467, 1468, 1469, 1471, 1473, 1474, 1478, 1480, 1481, 1482, 1486, 1487, 1488, 1491, 1495, 1496, 1497, 1498, 1500, 1502, 1503, 1508, 1509, 1511, 1512, 1515, 1516, 1517, 1520, 1521, 1522, 1523, 1524, 1529, 1531, 1532, 1534, 1535, 1540, 1542, 1543, 1545, 1547, 1549, 1553, 1559, 1563, 1564, 1565, 1568, 1570, 1571, 1572, 6509, 1577, 1580, 1583, 1584, 1587, 1588, 1591, 1592, 1593, 1594, 1596, 1597, 1598, 1600, 1602, 1604, 1605, 1608, 1609, 1611, 1612, 1613, 1614, 1615, 1616, 1619, 1621, 1622, 1625, 1626, 1627, 1630, 1634, 1638, 1641, 1642, 1643, 1668, 1645, 1648, 1649, 1650, 1654, 1655, 1657, 1660, 1666, 1688, 1670, 1672, 1675, 1676, 1677, 1679, 1680, 1681, 1682, 1683, 1685, 1692, 1694, 1696, 1699, 1700, 1710, 1701, 1703, 1704, 1708, 1709, 1711, 1712, 1716, 1717, 1718, 1721, 1724, 1725, 1727, 1728, 1732, 1736, 1738, 1739, 9509, 1744, 1745, 1747, 1750, 1751, 1752, 1766, 1753, 1757, 1759, 1760, 1761, 1762, 1764, 1765, 1769, 1770, 1771, 1775, 1777, 1779, 1785, 1786, 1787, 1794, 1801, 1802, 1810, 1816, 1817, 1818, 1820, 1821, 1824, 1825, 1826, 1830, 1831, 1832, 1834, 1837, 1838, 1839, 1842, 1844, 6712, 1847, 1857, 1858, 1861, 7098, 1863, 1864, 1866, 1872, 1877, 1878, 1882, 1884, 1897, 1899, 1900, 1903, 1907, 1908, 1909, 1927, 1910, 1911, 1912, 1914, 1915, 1916, 1975, 1917, 1918, 1920, 1921, 1925, 1934, 1935, 1936, 1944, 1946, 1948, 1951, 1953, 1954, 1955, 1956, 1960, 1961, 10781, 1963, 1964, 1966, 1970, 1971, 1973, 1974, 10802, 1981, 1982, 1983, 1987, 2032, 10803, 1988, 1993, 1998, 2014, 3575, 2000, 2003, 2004, 2005, 2007, 2009, 2010, 2015, 2016, 2018, 2020, 2023, 2025, 2027, 2028, 2030, 2033, 2035, 2042, 2043, 2044, 2046, 2047, 2048, 2049, 2051, 2053, 2055, 2057, 2060, 2074, 2063, 2064, 2065, 2066, 2068, 2069, 2077, 2079, 2080, 2087, 2088, 2089, 2092, 2093, 2096, 2099, 2100, 2101, 2102, 2105, 2107, 2109, 2110, 2112, 2115, 2120, 2124, 2126, 2127, 2128, 2129, 2130, 2136, 2138, 2139, 2142, 2143, 2146, 2147, 2151, 2153, 2154, 2155, 2157, 2160, 2162, 2164, 2166, 2169, 2171, 2172, 2173, 2174, 2175, 2207, 2181, 2184, 2186, 2190, 2191, 2192, 2193, 10961, 2194, 2195, 2198, 2200, 2201, 2204, 2206, 2210, 2215, 2217, 2219, 2221, 2223, 2225, 2228, 2229, 2232, 2233, 2238, 2239, 2241, 2242, 2312, 2245, 2246, 2247, 2250, 2256, 2260, 2261, 2263, 2266, 2268, 2270, 2273, 2275, 2279, 2280, 2281, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2295, 2296, 2297, 2299, 2301, 2303, 2304, 2305, 2306, 2307, 2308, 2310, 6618, 2316, 2319, 2321, 2322, 2324, 2325, 2327, 2329, 2330, 6619, 2335, 2339, 2340, 2342, 2343, 2344, 2346, 2348, 2352, 2354, 2359, 2360, 2362, 2364, 2365, 2366, 2367, 2368, 2369, 2371, 2372, 2373, 2374, 2376, 2377, 2378, 2379, 2381, 2384, 2386, 2390, 2391, 2392, 2393, 2397, 2399, 2401, 2402, 2405, 2406, 2407, 2410, 2412, 2414, 2416, 2417, 2418, 2420, 2422, 2426, 2427, 2429, 2430, 2433, 2434, 2436, 2439, 2441, 2443, 2444, 2446, 2447, 3628, 2448, 2451, 2452, 2458, 2461, 2462, 2464, 2467, 2468, 2469, 2472, 2473, 2476, 2477, 2481, 2482, 2483, 2484, 2486, 2488, 2489, 2491, 2497, 2498, 2503, 2504, 2506, 2509, 6737, 2510, 2513, 2514, 2516, 2517, 2518, 2522, 2523, 2527, 2528, 2529, 2531, 2532, 2533, 2534, 2535, 2537, 2538, 2541, 2542, 2543, 2549, 2551, 2567, 2554, 2555, 2556, 2558, 2561, 2564, 2565, 2788, 2569, 2570, 2573, 2574, 2576, 2580, 2581, 2583, 2586, 2589, 2592, 2594, 2599, 2601, 2607, 2609, 2610, 2612, 2613, 2619, 2620, 2621, 2660, 2627, 2628, 2629, 2632, 2633, 16687, 2638, 2641, 2644, 2646, 2691, 2790, 2649, 2653, 2655, 2659, 2663, 2669, 2671, 2672, 2674, 17528, 2678, 2679, 2680, 2682, 2686, 2690, 2701, 2715, 2802, 2708, 2711, 2717, 2718, 2721, 2726, 2728, 2729, 2734, 2739, 2750, 2760, 2761, 2764, 2765, 2774, 2777, 2778, 2779, 2781, 2785, 2787, 2792, 2793, 2795, 2797, 2799, 2800, 2806, 2807, 2808, 2809, 2815, 2844, 22060, 2820, 2822, 2825, 2826, 2829, 2830, 2906, 2833, 2834, 2835, 2836, 2839, 2840, 2841, 2842, 2843, 2846, 2848, 2849, 2850, 2851, 2852, 2853, 2855, 2857, 2864, 2866, 2868, 2869, 2870, 2874, 2875, 2876, 2877, 2878, 2879, 2881, 2882, 2884, 2886, 2908, 2890, 2892, 2893, 2896, 2898, 2900, 2902, 2909, 2910, 2911, 2913, 2914, 2916, 2917, 2918, 2919, 2922, 2925, 2926, 2972, 2934, 2937, 2938, 2939, 2940, 2941, 2944, 2953, 2956, 2957, 2958, 2960, 2961, 2962, 2964, 2965, 2969, 2970, 2974, 2975, 2980, 2981, 2983, 2984, 2985, 2989, 2990, 2992, 3000, 3003, 3004, 3005, 3007, 3008, 3015, 3017, 3019, 3020, 3023, 3029, 3033, 3036, 3041, 3045, 3047, 3048, 3051, 3053, 3057, 3059, 3062, 3063, 3067, 3069, 3070, 3073, 3074, 3076, 3078, 3079, 3080, 3087, 5604, 3088, 3091, 3095, 3096, 3097, 3098, 3099, 3100, 3156, 3103, 3105, 3106, 3108, 3111, 3112, 3113, 3115, 3116, 3117, 3121, 3123, 3124, 3127, 3128, 3130, 3133, 3135, 3137, 3138, 3139, 3140, 5605, 3141, 3142, 3145, 3148, 3150, 3153, 3158, 3159, 3161, 3163, 3168, 3170, 3171, 3182, 3185, 3187, 3188, 3189, 3190, 3195, 3198, 3200, 3201, 3206, 3208, 3211, 3299, 3215, 3216, 3218, 3220, 3221, 3222, 3223, 3226, 3227, 3228, 3229, 3232, 3234, 3236, 3237, 3238, 3239, 3241, 3242, 3342, 3246, 3248, 3250, 3251, 3255, 3258, 3260, 3261, 3262, 3264, 3266, 3267, 3269, 3270, 3273, 3274, 3276, 3277, 3278, 3279, 3282, 3283, 3285, 3289, 3296, 3301, 3302, 3303, 3304, 3305, 3307, 3309, 3310, 3311, 3313, 3316, 3319, 3322, 3326, 3329, 3357, 3330, 3331, 3335, 3336, 3337, 3340, 3341, 3343, 3344, 3345, 3346, 3352, 3355, 3358, 3360, 3363, 3365, 3368, 3369, 3372, 3467, 3376, 3377, 3378, 3379, 3483, 3385, 3388, 3389, 3394, 3410, 3396, 3397, 3398, 3399, 3401, 3402, 3404, 3405, 3406, 3407, 3408, 3409, 3411, 3414, 3416, 3417, 3419, 3420, 3422, 3423, 3428, 3431, 3434, 3439, 3440, 3445, 3446, 3447, 3448, 3452, 3458, 3459, 3461, 3463, 3469, 3470, 3474, 3475, 3476, 3477, 3480, 3482, 3484, 3487, 3488, 3491, 3492, 3496, 3497, 3530, 3498, 3499, 3500, 3505, 3506, 3508, 3512, 3514, 3515, 3516, 3520, 3523, 3524, 3526, 3557, 3531, 3532, 3534, 3535, 3538, 3541, 3544, 3545, 3547, 3548, 3550, 3555, 3556, 3558, 3560, 3561, 3563, 3564, 3565, 3566, 3567, 3569, 3571, 3577, 3578, 3579, 3580, 3581, 3583, 3584, 3587, 3589, 3669, 3594, 3596, 3597, 3600, 3601, 3602, 3606, 3607, 3608, 3609, 3610, 3611, 3614, 3615, 3619, 3621, 3622, 3623, 3631, 3632, 3634, 3637, 3639, 3640, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3653, 3656, 3658, 3659, 3661, 3662, 3663, 3664, 4188, 3671, 3672, 3674, 3677, 3678, 3679, 3680, 3682, 3684, 3685, 5637, 3690, 3691, 3692, 3693, 3694, 3695, 3698, 3701, 3702, 3704, 3706, 3708, 3709, 3715, 3716, 3718, 3719, 3720, 3722, 3728, 3730, 3731, 3732, 3734, 3735, 3736, 3778, 3740, 3741, 3742, 3743, 3744, 3747, 3748, 3799, 3752, 3753, 3757, 3800, 3763, 3764, 3765, 3766, 3767, 3771, 3772, 3773, 3774, 3775, 3777, 3779, 3781, 3786, 3788, 3789, 3793, 3794, 3796, 3801, 3802, 3803, 3805, 3813, 3830, 3816, 3818, 3821, 3824, 3825, 3826, 3827, 3828, 3831, 3833, 3837, 3838, 3839, 3840, 3842, 3843, 3844, 3871, 3846, 3848, 3849, 3850, 3852, 3853, 3854, 3855, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3867, 3868, 3870, 3873, 3874, 3875, 3876, 3877, 3878, 3881, 3882, 3883, 3886, 3890, 3891, 3895, 3896, 3898, 3899, 3901, 3902, 3904, 3906, 3907, 3909, 3912, 3914, 3915, 3916, 3917, 3919, 3921, 3922, 3928, 3929, 3930, 3931, 3935, 3937, 3942, 3943, 3945, 3946, 3947, 3948, 3949, 3950, 3955, 3956, 3958, 3959, 3961, 3962, 3963, 3964, 3969, 3970, 3972, 3973, 3975, 3976, 3978, 3980, 3981, 3985, 3988, 3990, 3991, 3993, 3994, 3996, 3998, 4001, 4003, 4005, 4006, 4008, 4010, 4013, 4014, 4015, 4016, 4018, 4021, 4022, 4024, 4025, 4027, 4029, 4036, 4039, 4044, 4046, 4047, 4048, 4049, 4051, 4052, 4053, 4054, 4056, 4057, 4058, 4061, 4063, 4069, 4071, 4073, 4077, 4133, 4079, 4081, 4083, 4086, 4087, 4090, 4093, 4097, 4100, 4101, 4102, 4103, 4104, 4105, 4109, 4111, 4113, 4114, 4116, 4117, 4122, 4123, 4127, 4129, 4132, 4134, 4138, 4140, 4141, 4142, 6929, 4148, 4151, 4156, 4158, 4161, 4162, 4163, 4165, 4166, 4184, 4170, 4171, 4173, 4189, 4193, 4195, 4196, 4201, 4218, 4219, 4204, 4205, 4206, 4207, 4210, 4211, 4216, 4278, 4223, 4224, 4225, 4228, 4232, 4236, 4238, 4239, 4240, 4241, 4243, 4245, 4246, 4296, 4248, 4251, 4253, 4255, 6930, 4260, 4262, 4263, 4266, 4270, 4272, 4274, 4275, 4282, 4285, 4286, 4287, 4289, 4290, 4292, 4303, 4307, 4312, 4313, 4315, 4318, 4320, 4322, 4324, 4325, 4326, 4327, 4329, 4330, 4332, 4334, 4339, 4340, 4341, 4343, 4344, 4345, 4347, 4348, 4350, 4354, 4355, 4356, 4366, 4368, 4371, 4372, 4376, 4377, 4378, 4380, 4381, 6931, 4383, 4385, 4387, 4413, 4399, 4400, 4402, 4403, 4405, 4408, 4409, 4416, 4420, 4421, 4422, 4424, 4425, 4427, 4429, 4432, 4435, 4436, 4437, 4441, 4443, 4449, 4450, 4452, 4453, 4455, 4456, 4517, 4462, 4463, 4464, 4466, 4467, 4468, 4472, 4473, 4476, 4480, 4483, 4484, 4485, 4491, 4492, 4494, 4496, 4497, 4499, 4500, 4501, 4502, 4503, 4506, 4508, 4509, 4511, 4514, 4516, 10270, 4520, 4521, 4523, 4524, 4527, 4528, 4532, 4534, 4536, 4541, 4542, 4545, 4549, 4550, 4633, 4555, 4558, 4559, 4560, 4564, 4568, 4572, 4574, 4576, 4577, 4578, 4581, 4582, 4585, 4586, 4587, 4588, 4589, 4594, 5639, 4599, 4600, 4601, 4604, 4605, 4606, 4607, 4608, 4618, 4619, 4620, 4626, 4629, 4632, 4635, 4638, 4640, 4642, 4644, 5640, 4645, 4654, 4655, 4656, 4660, 4661, 4682, 4667, 4668, 4669, 4670, 4672, 4675, 4679, 4681, 4800, 4684, 4685, 4686, 4688, 4691, 4692, 4697, 4698, 4701, 4702, 4707, 4709, 4711, 4714, 4718, 4719, 4720, 4721, 4728, 4729, 4731, 4736, 4738, 4740, 4744, 4745, 4746, 4747, 4748, 4751, 4755, 4757, 4758, 4759, 4760, 4762, 4763, 4765, 10271, 4766, 4768, 4769, 4772, 4778, 4780, 4781, 4821, 4787, 4788, 4789, 4790, 4793, 4795, 4796, 4798, 4803, 4804, 4805, 4808, 4812, 4813, 4820, 4824, 4825, 4827, 4828, 4829, 4830, 4831, 4834, 4835, 4836, 4837, 4839, 4842, 4846, 4848, 4849, 4850, 4880, 4965, 4852, 4853, 4855, 4861, 4862, 4865, 4866, 4867, 4869, 4870, 4872, 4873, 4876, 4877, 4878, 4879, 4881, 4885, 4889, 4892, 4931, 4894, 4897, 4900, 4903, 4906, 4908, 4909, 4910, 4913, 4917, 4918, 4920, 4966, 4923, 4924, 4925, 4926, 4928, 4929, 5072, 4934, 4936, 4937, 4938, 4939, 4940, 4941, 4946, 4947, 4951, 4956, 4960, 4961, 4963, 4968, 4972, 4976, 4979, 4981, 4982, 4986, 4989, 4992, 4995, 4997, 4998, 5000, 5001, 5005, 5007, 5013, 5014, 5016, 5018, 5022, 5023, 5025, 5026, 5027, 5029, 5030, 5032, 5033, 5034, 5090, 5037, 5038, 5039, 5042, 5048, 5049, 5053, 5058, 5061, 5064, 5065, 5066, 5068, 5076, 5080, 5081, 5085, 5091, 5092, 5095, 5097, 5100, 5101, 5103, 5104, 5106, 5107, 5108, 5111, 5112, 5114, 5116, 5119, 5121, 5129, 5135, 5136, 5139, 5140, 5141, 5142, 5143, 5144, 5146, 5148, 5149, 5151, 5153, 5154, 5155, 5156, 5158, 5164, 5167, 5170, 5173, 5175, 5177, 5179, 5180, 5181, 5182, 5209, 5187, 5188, 5193, 5195, 5197, 5200, 5201, 5203, 5204, 5212, 5218, 5219, 5221, 5227, 5231, 5235, 5237, 5239, 6313, 5243, 5245, 5246, 5247, 5248, 5266, 5252, 5254, 5255, 5257, 5258, 5260, 5261, 5264, 5271, 5272, 5273, 5276, 5277, 5283, 5287, 5289, 5290, 5291, 5294, 5308, 5296, 5297, 5298, 5302, 5305, 5309, 5311, 5318, 5365, 5323, 5325, 5328, 5334, 5337, 5339, 5341, 5344, 5347, 5355, 5356, 5357, 5360, 5361, 5434, 5435, 5367, 5370, 5372, 5374, 5375, 5377, 5378, 5379, 7663, 5380, 5383, 5385, 5387, 5390, 5392, 5393, 5394, 5512, 5395, 5410, 5411, 5412, 5416, 5420, 5423, 5425, 5427, 5428, 5429, 5431, 5432, 5433, 5439, 5442, 5445, 5446, 5451, 5452, 5453, 5457, 5458, 5459, 5461, 5462, 5463, 5464, 5466, 5468, 5472, 5475, 5476, 5478, 5479, 5513, 5480, 5483, 5484, 5486, 5488, 5490, 5491, 5492, 5493, 5494, 5495, 5498, 5499, 5502, 5503, 5504, 5506, 5507, 5508, 5509, 5511, 5514, 5517, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5530, 5532, 5534, 5536, 5538, 5539, 5540, 5541, 5543, 5544, 5603, 5545, 5547, 5548, 5549, 5551, 5552, 5554, 5557, 5558, 5559, 5560, 5562, 5563, 5564, 5565, 5566, 5567, 5569, 5571, 5572, 5573, 5574, 5575, 5577, 5578, 5579, 5580, 5582, 5583, 5584, 5585, 5586, 5587, 5589, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5608, 5609, 5610, 5612, 5613, 5614, 5615, 5616, 5619, 5620, 5624, 5625, 5627, 5628, 5631, 5632, 5633, 5634, 5635, 5641, 5642, 5643, 5644, 5647, 5649, 5651, 5653, 5655, 5656, 5659, 5661, 5663, 5664, 5665, 5668, 5669, 5670, 5672, 5673, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5685, 5686, 5689, 5690, 5692, 5694, 5695, 5696, 5698, 5699, 5700, 5702, 5703, 5704, 5706, 5707, 5709, 5710, 5711, 5712, 5713, 5714, 5716, 5717, 5718, 5721, 5724, 5725, 5726, 5734, 5735, 5736, 5737, 5738, 5739, 5790, 5741, 5743, 5746, 5748, 5749, 5750, 5751, 5754, 5755, 5769, 5756, 5757, 5758, 5759, 5760, 5761, 5763, 5764, 5765, 7694, 5771, 5772, 5775, 5776, 5777, 5779, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5794, 5795, 5796, 5797, 5798, 5802, 5803, 5805, 5806, 5808, 5809, 5812, 5818, 5819, 5824, 5825, 5826, 5830, 5833, 5835, 5839, 5840, 5841, 5842, 5844, 5845, 5847, 5848, 5849, 5850, 5851, 5856, 5857, 5858, 5862, 5863, 5864, 5865, 5866, 5868, 5870, 5873, 5874, 5875, 5880, 5881, 5884, 5886, 5888, 5889, 5893, 5894, 5897, 5899, 5901, 5903, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5916, 6009, 5917, 5918, 5920, 5921, 5922, 5925, 5928, 5929, 5931, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5948, 5949, 5951, 5952, 5954, 5956, 5957, 5958, 5960, 5962, 5966, 5967, 5968, 5970, 5972, 5973, 5976, 5978, 5979, 5981, 5982, 5983, 5985, 5987, 5989, 5990, 5992, 5994, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6006, 6007, 6008, 6010, 6011, 6012, 6014, 6015, 6016, 6018, 6019, 6020, 6022, 6023, 6024, 6025, 6026, 6027, 6029, 6030, 6031, 6033, 6034, 6038, 6039, 6040, 6041, 6045, 6046, 6047, 6048, 6049, 6053, 6054, 6056, 6057, 6059, 6062, 6065, 6066, 6067, 6068, 6070, 6072, 6074, 6146, 6075, 6076, 6077, 6078, 6080, 6081, 6082, 6084, 6085, 6086, 6088, 6089, 6090, 6091, 10395, 6093, 6094, 6095, 6096, 6097, 6105, 6107, 6111, 6114, 6115, 6116, 6117, 6124, 6143, 6128, 6129, 6130, 6133, 6136, 6138, 6141, 6142, 6147, 6148, 6149, 6150, 6153, 6154, 6155, 6157, 6160, 6162, 6164, 6168, 6169, 6171, 6172, 6173, 6176, 6177, 6178, 6179, 6182, 6185, 6186, 6188, 6189, 6190, 6191, 6194, 6197, 6198, 6199, 6202, 6204, 6211, 6212, 6214, 6215, 6216, 6218, 6220, 6223, 6224, 6228, 6229, 6232, 6233, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6246, 6247, 6248, 6250, 6252, 6253, 6254, 6256, 6257, 6258, 6315, 6263, 6264, 6265, 6268, 6270, 6273, 6275, 6276, 6277, 6278, 6343, 6344, 10421, 6279, 6283, 6284, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6296, 6297, 6299, 6301, 6303, 6306, 6307, 6308, 6309, 6310, 6311, 6318, 6319, 6320, 6323, 6325, 6326, 6328, 6332, 6334, 6342, 6350, 6352, 6353, 6355, 6357, 6359, 6364, 6365, 6366, 6367, 6579, 6374, 6375, 6377, 6378, 6379, 6381, 6383, 6384, 6385, 6387, 6388, 6390, 6395, 6396, 6399, 6400, 6405, 6408, 6409, 6411, 6413, 6415, 6417, 6418, 6419, 6420, 6421, 6423, 6427, 6429, 6430, 6432, 6433, 6436, 6437, 6439, 6440, 6442, 6443, 6524, 6446, 6449, 6451, 6452, 6453, 6455, 6456, 6457, 6546, 6458, 6460, 6461, 6462, 6463, 6464, 6466, 6468, 6469, 6470, 6472, 6475, 6476, 6477, 6547, 6478, 6479, 6481, 6482, 6483, 6484, 6486, 6490, 6510, 6493, 6494, 6495, 6497, 6498, 6500, 6501, 6505, 6507, 6508, 6511, 6512, 6513, 6520, 6521, 6522, 6527, 6528, 6530, 6531, 6532, 6534, 6536, 6538, 6540, 6541, 6542, 6544, 6549, 6550, 6555, 6556, 6557, 6560, 6561, 6562, 6563, 6581, 6568, 6570, 6571, 6572, 6574, 6576, 6577, 6582, 6583, 6585, 6586, 6588, 6590, 6591, 6594, 6595, 6597, 6598, 6599, 6601, 6602, 6604, 6606, 6607, 6612, 6613, 6617, 6622, 6626, 6628, 6629, 6633, 6739, 6638, 6643, 6644, 6645, 6646, 6649, 6708, 6651, 6656, 6664, 6666, 6667, 6668, 6669, 6670, 6671, 6673, 6679, 6685, 6686, 6691, 6695, 6696, 6697, 6702, 6703, 6706, 6707, 6713, 6714, 6715, 6716, 6717, 6718, 6720, 6721, 6723, 8178, 6729, 6731, 6734, 6735, 6736, 6740, 6741, 6743, 6744, 6747, 6748, 6749, 6751, 6753, 6755, 6756, 6757, 6759, 6761, 6764, 6765, 6767, 6768, 6769, 6809, 6772, 6773, 6776, 6777, 6779, 6780, 6781, 6782, 6810, 6783, 6784, 6786, 6787, 6788, 6789, 6829, 6797, 6799, 6801, 6806, 6813, 6814, 6815, 6817, 6818, 6819, 6822, 6823, 6824, 6827, 6828, 6979, 6831, 6832, 6833, 6834, 6835, 6836, 6840, 6844, 6845, 6846, 6847, 6848, 6852, 6853, 6854, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6865, 6867, 6870, 6872, 6873, 6874, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6886, 7008, 6888, 6889, 6891, 6894, 6895, 6897, 6898, 6899, 6900, 6903, 6904, 6905, 6906, 6908, 6910, 6911, 6912, 6913, 6915, 6917, 6918, 6919, 6923, 6926, 6927, 6933, 6934, 6936, 6937, 6938, 6941, 6942, 6943, 6944, 6945, 6948, 6949, 6950, 6951, 6952, 6954, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6965, 6967, 6970, 6971, 6972, 6974, 6977, 6978, 6981, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6992, 6994, 7010, 7011, 6995, 6998, 6999, 7000, 7001, 7004, 7005, 7006, 7096, 10494, 7013, 7015, 7017, 7018, 7021, 7022, 7023, 7026, 7027, 7028, 7030, 7033, 7034, 7035, 7036, 7040, 7041, 7042, 7044, 7047, 7050, 7051, 7052, 7053, 7054, 7055, 7057, 7058, 7059, 7060, 7162, 7061, 7062, 7065, 7066, 7067, 7069, 7071, 7072, 7073, 7074, 7076, 7080, 7081, 7082, 7083, 7088, 7091, 7094, 7095, 7100, 7107, 7108, 7111, 7112, 7113, 7130, 8217, 7114, 7115, 7117, 7118, 7119, 7122, 7123, 7125, 7132, 7133, 7136, 7138, 7141, 7143, 7144, 7147, 7149, 7150, 7151, 7152, 7156, 7158, 7159, 7160, 7163, 7164, 7165, 7168, 7169, 7170, 7174, 7175, 7176, 7177, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7187, 7188, 7189, 7190, 8218, 7191, 7199, 7200, 7201, 7203, 7204, 7206, 7207, 7208, 7214, 7217, 7218, 7223, 7227, 7230, 7231, 7255, 7256, 7257, 7234, 7235, 7237, 7239, 7241, 7258, 7361, 7243, 7246, 7248, 7249, 7250, 7253, 7314, 7259, 7260, 7261, 7262, 7264, 7265, 7266, 7267, 7268, 7359, 7271, 7272, 7273, 7275, 7280, 7283, 7362, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7293, 7294, 7363, 7300, 7302, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7316, 7318, 7319, 7320, 7322, 7323, 7325, 7326, 7327, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7344, 7346, 7349, 7350, 7352, 7354, 7355, 7356, 7357, 7364, 7366, 7368, 7369, 7370, 7372, 7375, 7402, 7377, 7378, 7381, 7383, 7385, 7386, 7387, 7388, 7389, 7391, 7392, 7393, 7396, 7398, 7399, 7401, 7405, 7406, 7407, 7408, 7410, 7415, 7417, 7419, 7420, 7421, 7425, 7454, 7430, 7435, 7437, 7438, 7444, 7445, 7446, 7447, 7449, 7450, 7452, 7453, 7457, 7459, 7462, 7464, 7466, 7467, 7468, 7472, 7474, 7477, 7478, 7479, 7480, 7483, 7485, 7486, 7487, 7488, 7490, 7492, 7496, 7534, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7507, 7508, 7509, 7510, 7511, 7512, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7524, 7526, 7527, 7528, 7529, 7531, 7532, 7536, 7538, 7539, 7540, 7543, 7546, 7547, 7552, 7554, 7559, 7561, 7564, 7570, 7571, 7573, 8233, 7576, 7579, 7580, 7583, 7587, 7588, 7589, 7590, 7593, 7594, 7596, 7598, 7599, 7601, 7604, 7606, 7609, 7612, 7617, 7618, 7622, 7625, 7627, 7628, 7629, 7631, 7632, 7633, 7636, 7637, 7638, 7640, 7641, 7642, 7643, 7644, 7646, 7650, 7651, 7652, 7656, 7657, 7661, 7662, 7666, 7670, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7692, 7695, 7696, 7697, 7700, 7701, 7702, 7703, 7704, 7705, 7708, 7713, 7716, 7733, 7720, 7721, 7723, 7726, 7727, 7732, 7734, 7736, 7739, 7741, 7743, 7748, 7750, 7752, 7755, 7756, 7757, 7758, 7760, 7762, 7763, 7764, 7765, 7768, 7770, 7772, 7774, 7775, 7780, 7782, 7785, 7786, 7788, 7790, 7791, 7793, 7796, 7797, 7799, 7801, 7802, 7803, 7806, 7822, 7811, 7812, 7813, 7818, 7819, 7820, 7823, 7825, 7832, 7835, 7837, 7838, 7839, 7840, 7843, 7844, 7845, 7846, 7973, 7848, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7861, 7862, 7864, 7865, 7868, 7871, 7872, 7873, 8336, 7876, 7877, 7880, 7884, 7885, 7890, 7893, 7894, 7895, 7896, 7897, 7902, 7903, 8302, 7906, 7907, 7909, 7910, 7912, 7913, 7915, 7918, 7923, 7924, 7925, 7927, 8006, 7932, 7939, 7941, 7942, 8007, 7943, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7971, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7968, 7969, 7970, 7975, 7978, 7979, 7980, 7984, 7985, 7988, 8025, 7991, 7992, 7994, 7996, 7997, 8001, 8002, 8003, 8005, 8008, 8009, 8010, 8011, 8015, 8018, 8021, 8028, 8029, 8031, 8033, 8035, 8037, 8038, 8042, 8044, 8046, 8048, 8049, 8050, 8051, 8058, 8106, 8060, 8063, 8064, 8068, 8069, 8072, 8077, 8080, 8082, 8088, 8091, 8093, 8095, 8100, 8102, 8104, 8110, 8111, 8112, 8113, 8115, 8117, 8118, 8119, 8121, 8123, 8125, 8128, 8129, 8130, 8134, 8135, 8136, 8140, 8159, 8145, 8146, 8148, 8152, 8153, 8154, 8157, 8162, 8163, 8171, 8173, 8174, 8175, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8188, 8189, 8190, 8193, 8195, 8196, 8197, 8198, 8200, 8201, 8204, 8207, 8208, 8209, 8211, 8213, 8214, 8215, 10804, 8221, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8231, 8232, 8236, 8238, 8239, 8241, 8242, 8247, 8248, 8249, 8250, 8251, 8253, 8255, 8256, 8259, 8261, 8262, 8263, 8264, 8265, 8271, 8337, 8272, 8275, 8277, 8278, 8279, 8280, 8281, 8283, 8338, 11045, 8285, 8287, 8288, 8293, 8294, 8297, 8300, 8301, 8303, 8304, 8306, 8307, 8308, 8310, 8311, 8312, 8313, 8315, 8316, 8318, 8319, 8321, 8322, 8323, 8329, 8339, 8341, 8342, 8343, 8346, 8347, 8348, 8349, 8351, 8352, 8355, 8358, 8362, 8363, 8367, 8368, 8373, 8374, 8375, 8377, 8379, 8381, 8384, 8387, 8390, 8391, 8392, 8393, 8395, 8396, 8397, 8398, 8401, 8451, 8402, 8403, 8404, 8407, 8410, 8411, 8412, 8452, 8414, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8429, 8437, 8440, 8441, 8444, 8445, 8449, 8454, 8455, 8456, 8457, 8460, 8462, 8464, 8465, 8468, 8536, 8470, 8471, 8472, 8473, 8474, 8477, 8478, 8479, 8480, 8482, 8646, 8488, 8490, 8491, 8493, 8495, 8496, 8497, 8499, 8500, 8501, 8503, 8504, 8505, 8506, 8507, 8508, 8510, 8511, 8513, 8515, 8516, 8517, 13239, 8522, 8523, 8525, 8527, 8528, 8531, 8532, 8534, 8538, 8539, 8540, 8543, 8544, 8545, 8546, 8551, 8552, 8554, 8555, 8556, 8557, 8558, 8560, 8561, 8563, 8564, 8565, 8566, 8569, 8570, 8571, 8572, 8576, 8577, 8578, 8580, 8582, 8588, 8589, 8591, 8593, 8596, 8627, 8604, 8605, 8606, 8607, 8608, 8609, 8611, 8612, 8616, 8618, 8621, 8622, 8623, 13241, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8638, 8641, 8648, 8649, 8651, 8652, 8654, 8655, 8656, 8657, 8659, 8660, 8663, 8666, 8667, 8668, 8671, 8672, 8673, 8675, 8677, 8678, 8679, 8682, 8683, 13274, 8685, 8686, 8687, 8691, 8693, 8696, 8697, 8699, 8702, 8706, 8708, 8709, 8715, 8716, 8717, 8718, 8720, 8721, 8723, 8724, 8725, 8751, 8730, 8732, 8733, 8736, 8737, 8740, 8743, 8744, 8745, 8747, 8752, 8755, 8759, 8761, 8762, 8764, 8767, 9059, 8769, 8772, 8774, 8776, 8777, 8780, 8781, 8783, 8784, 8785, 8789, 8790, 8791, 8792, 8794, 8796, 8797, 8798, 8799, 8853, 8800, 8801, 8802, 8803, 8804, 8806, 8807, 8809, 8811, 8854, 8816, 8817, 8818, 8819, 8820, 8821, 8826, 8831, 8833, 8835, 8837, 8843, 8870, 8845, 8846, 8847, 8848, 8849, 8851, 8871, 8858, 8862, 8863, 8864, 8865, 8867, 8868, 8872, 8874, 8876, 8878, 8879, 8883, 8884, 8886, 8888, 8890, 8892, 8893, 8897, 8900, 8902, 8904, 8905, 8906, 8908, 8909, 8910, 8911, 8916, 8920, 8922, 8923, 8925, 9066, 8927, 8929, 8930, 8931, 8937, 8940, 8942, 8943, 8946, 8948, 8951, 8953, 8954, 8955, 8956, 8957, 8960, 8962, 8968, 8970, 8971, 9095, 8975, 8976, 8980, 8981, 8983, 8984, 8988, 8990, 8993, 8995, 8997, 9001, 9002, 9003, 9006, 9008, 9009, 9010, 9012, 9016, 9017, 9018, 9029, 9030, 9034, 9035, 9036, 9037, 9062, 9064, 9041, 9043, 9044, 9045, 9046, 9048, 9049, 9050, 9051, 9053, 9054, 9056, 9067, 9070, 9071, 9073, 9076, 9079, 9080, 9081, 9083, 9084, 9085, 9087, 9091, 9092, 9099, 9102, 9106, 9113, 9114, 9115, 9116, 9117, 9120, 9123, 9126, 9128, 9130, 9132, 9133, 9134, 9135, 9136, 9138, 9139, 9140, 9141, 9407, 9143, 9144, 9145, 9147, 9148, 9149, 9150, 9151, 9153, 9157, 9159, 9161, 9162, 9163, 9164, 9166, 9169, 9170, 9172, 9174, 9176, 9177, 9178, 9182, 9183, 10307, 9185, 9186, 9191, 9194, 9213, 9199, 9200, 9201, 9203, 9205, 9206, 9210, 9211, 9212, 9230, 9214, 9215, 9218, 9219, 9220, 9221, 9224, 9225, 9226, 9231, 9236, 9237, 9238, 9241, 9242, 9246, 9248, 9250, 9259, 9252, 9254, 9255, 9257, 9261, 9264, 9265, 9268, 9271, 9273, 9274, 9275, 9276, 9279, 9280, 9281, 9283, 9286, 9288, 9292, 9293, 10308, 9294, 9296, 9298, 9301, 9304, 9305, 9308, 9311, 9312, 9313, 9314, 14026, 9318, 9320, 9321, 9324, 9327, 9328, 9332, 9333, 9336, 9338, 9343, 9348, 9349, 9351, 9356, 9357, 9360, 9361, 9362, 9363, 9364, 9366, 9368, 9372, 9376, 9378, 9379, 9408, 9381, 9382, 9385, 9386, 9387, 9390, 9405, 9406, 9396, 9400, 9402, 9410, 9413, 9415, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9426, 9429, 9430, 9431, 9433, 9435, 9436, 9440, 9442, 9443, 9445, 9447, 9449, 9452, 9455, 9456, 9457, 9458, 9462, 9464, 9465, 9466, 9468, 9469, 9477, 9480, 14862, 9486, 9487, 9488, 9489, 9491, 9493, 9495, 9497, 9505, 9507, 9508, 9513, 9514, 9516, 9518, 9519, 9520, 9521, 9522, 9535, 9528, 9529, 9530, 9533, 9541, 9542, 9544, 9547, 9550, 9552, 9553, 9557, 9559, 9560, 9562, 9563, 9564, 9573, 9960, 9574, 9575, 9578, 9580, 9584, 9586, 9587, 9590, 9591, 9592, 9594, 9595, 9598, 9664, 9603, 9606, 9609, 9610, 9614, 9615, 9616, 9617, 9619, 9620, 9621, 9622, 9626, 9629, 9630, 9635, 9636, 9641, 9646, 9696, 9649, 9653, 9654, 9659, 9662, 9667, 9668, 9669, 9670, 9671, 9673, 9674, 9677, 9678, 9734, 9681, 9682, 9683, 9684, 9685, 9690, 9691, 9694, 9698, 9699, 9700, 9703, 9706, 9707, 9711, 9712, 9717, 9718, 9719, 9722, 9723, 9727, 9728, 9732, 9741, 9742, 9745, 9746, 9749, 9750, 9753, 9766, 9754, 9755, 9758, 9762, 9763, 9764, 9767, 9768, 9770, 9774, 9777, 9778, 9779, 9780, 9781, 9784, 9785, 9787, 9790, 9791, 9794, 9795, 9796, 9802, 18270, 9804, 9806, 9807, 9809, 9810, 9811, 9814, 9815, 9817, 9818, 9819, 9821, 9824, 9956, 9830, 9831, 9832, 9833, 9834, 9835, 9838, 9840, 9843, 9846, 9847, 9848, 9850, 9852, 9854, 9855, 9860, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9872, 9873, 9874, 9875, 9876, 9878, 9879, 9882, 9957, 9884, 9886, 9887, 9888, 9889, 9893, 9894, 9907, 9900, 9901, 9904, 9905, 9906, 9911, 9913, 9915, 9917, 9919, 9920, 9923, 9926, 9929, 9931, 9932, 9933, 9935, 9937, 9958, 9939, 9940, 9941, 9942, 9947, 9955, 9961, 9963, 9964, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9978, 9980, 9985, 9986, 9989, 9990, 9992, 9993, 9995, 9996, 10051, 10003, 10004, 10007, 10008, 10009, 10010, 10011, 10013, 10014, 10016, 10018, 10020, 10052, 10022, 10023, 10026, 10028, 10046, 10032, 10033, 10034, 10037, 10040, 10043, 10053, 10055, 10056, 10057, 10058, 10059, 10061, 10062, 10065, 10066, 10068, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10083, 10084, 10085, 10092, 10093, 10096, 10097, 10099, 10135, 10100, 10101, 10102, 10104, 10105, 10107, 10108, 10109, 10113, 10114, 10115, 10116, 10118, 10120, 10121, 10122, 10123, 10124, 10125, 10127, 10131, 10132, 10133, 10134, 10180, 10136, 10137, 10138, 10140, 10141, 10142, 10143, 10144, 10145, 10147, 10149, 10151, 10154, 10155, 10157, 10158, 10159, 10160, 10162, 10165, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10178, 10179, 10181, 10182, 10183, 10184, 10186, 10188, 10189, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10371, 10201, 10202, 10203, 10205, 10207, 10208, 10209, 10211, 10216, 10217, 10218, 10219, 10220, 10224, 10225, 10226, 10227, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10253, 10236, 10237, 10240, 10241, 10243, 10245, 10246, 10248, 10250, 10251, 10252, 10392, 10254, 10255, 10257, 10259, 10260, 10261, 10262, 10263, 10265, 10268, 10273, 10274, 10276, 10278, 10280, 10282, 10284, 10286, 10393, 10287, 10288, 10289, 10291, 10292, 10293, 10294, 10296, 10298, 10300, 10303, 10304, 10305, 10310, 10313, 10314, 10316, 10318, 10320, 10322, 10323, 10328, 10332, 10333, 10394, 10334, 10336, 10337, 10338, 10340, 10341, 10342, 10343, 10344, 10346, 10347, 10350, 10352, 10354, 10355, 10356, 10357, 10359, 10363, 10364, 10365, 10367, 10372, 10374, 10375, 10378, 10379, 10380, 10382, 10383, 10385, 10388, 10391, 10400, 10401, 10402, 10404, 10406, 10407, 10408, 10409, 10410, 10413, 10414, 10416, 10417, 10419, 10420, 10422, 10423, 10425, 10430, 10431, 10432, 10433, 10435, 10436, 10441, 10491, 10442, 10443, 10444, 10445, 10447, 10448, 10449, 10450, 10454, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10465, 10466, 10467, 10469, 10470, 10471, 10472, 10474, 10475, 10476, 10477, 10479, 10480, 10481, 10483, 10484, 10485, 10487, 10490, 10495, 10496, 10497, 10498, 10499, 10500, 10504, 10507, 10508, 10509, 10511, 10513, 10514, 10515, 10516, 10519, 10521, 10525, 10526, 10528, 10529, 10530, 10532, 10533, 10538, 10541, 10543, 10544, 10545, 10546, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10556, 10558, 10561, 10563, 10567, 10568, 10570, 10571, 10573, 10576, 10577, 10579, 10776, 10581, 10583, 10584, 10585, 10586, 10588, 10589, 10590, 10591, 10592, 10593, 10611, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10605, 10606, 10609, 10613, 10614, 10616, 10617, 10619, 10621, 10623, 10624, 10625, 10626, 10629, 10630, 10633, 10638, 10639, 10641, 10642, 10643, 10644, 10650, 10651, 10652, 10654, 10656, 10657, 10658, 10660, 10661, 10662, 10663, 10665, 10667, 10668, 10669, 10671, 10672, 10675, 10677, 10679, 10680, 10681, 10778, 10683, 10685, 10686, 10687, 10691, 10692, 10693, 10695, 10696, 10700, 10702, 10703, 10705, 10706, 10707, 10709, 10711, 10713, 10714, 10715, 10718, 10719, 10721, 10722, 10723, 10724, 10726, 10779, 10727, 10728, 10729, 10731, 10733, 10734, 10735, 10737, 10738, 10739, 10772, 10742, 10744, 10745, 10746, 10748, 10749, 10753, 10754, 10755, 10773, 10759, 10761, 10762, 10763, 10766, 10768, 10769, 10770, 10771, 10782, 10783, 10786, 10787, 10788, 10790, 10791, 10793, 10794, 10796, 10797, 10805, 10807, 10810, 10811, 10814, 10816, 10819, 10834, 10820, 10821, 10822, 10824, 10825, 10828, 10832, 10833, 10836, 10837, 10839, 10842, 10844, 10848, 10849, 10850, 10851, 10853, 10855, 10857, 10859, 10860, 10861, 10862, 10863, 10866, 10867, 10870, 10872, 10874, 10875, 10878, 10879, 10880, 10881, 10884, 10902, 10905, 10887, 10889, 10890, 10891, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10907, 10908, 10909, 10910, 10913, 10914, 10916, 10917, 10918, 10920, 10921, 10922, 10923, 10924, 10928, 10929, 10930, 10932, 10935, 10937, 10938, 10939, 10940, 10941, 10960, 10943, 10945, 10946, 10947, 10949, 10951, 10952, 10953, 10956, 10957, 10959, 10962, 10963, 10966, 10969, 10970, 10972, 10973, 10974, 10975, 10977, 11014, 10978, 10980, 10982, 10984, 10985, 10986, 10987, 10990, 10992, 10995, 10999, 11000, 11002, 11003, 11004, 11005, 11007, 11008, 11010, 11015, 11018, 11019, 11020, 11022, 11023, 11024, 11025, 11026, 11043, 11044, 11032, 11033, 11035, 11037, 11038, 11040, 11041, 11042, 11046, 11047, 11048, 11049, 11050, 11051, 11054, 11056, 11057, 11058, 11059, 11060, 11062, 11063, 11065, 11067, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11079, 11979, 11082, 11083, 11084, 11087, 11088, 11092, 11093, 11094, 11113, 11096, 11097, 11099, 11101, 11102, 11103, 11104, 11106, 11110, 11111, 11114, 11118, 11120, 11121, 11124, 11126, 11127, 11128, 11129, 11130, 11133, 11135, 11137, 11138, 11140, 11142, 11144, 11145, 11146, 11149, 11151, 11152, 11154, 11156, 11158, 11162, 11165, 11166, 11167, 11169, 11170, 11171, 11172, 11174, 11175, 11176, 11177, 11179, 11180, 11181, 11183, 11184, 11186, 11188, 11189, 11191, 11193, 11194, 11196, 11198, 11200, 11202, 11204, 11206, 11208, 12030, 11214, 11215, 11217, 11218, 11219, 11221, 11225, 11226, 11227, 11228, 11230, 11231, 11232, 11235, 11735, 11236, 11239, 11240, 11241, 11242, 11245, 11248, 11736, 11249, 11250, 11251, 11252, 11255, 11257, 11258, 11737, 11261, 11262, 11263, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11273, 11274, 11277, 11278, 11280, 11283, 11287, 11290, 11292, 11293, 11294, 11310, 11296, 11297, 11300, 11303, 11304, 11305, 11306, 11307, 11309, 11821, 11312, 11314, 11315, 11316, 11318, 11321, 11322, 11323, 11326, 11328, 11333, 11334, 11335, 11341, 11342, 11343, 11344, 11345, 11359, 11346, 11350, 11352, 11353, 11354, 11355, 11780, 11360, 11363, 11364, 11365, 11366, 11367, 11370, 11371, 11373, 11375, 11376, 11377, 11379, 11380, 11382, 11383, 11384, 11385, 11387, 11391, 11392, 11393, 11394, 11395, 11396, 11823, 11402, 11403, 11405, 11406, 11407, 11411, 11504, 11414, 11416, 11417, 11418, 11521, 11428, 11430, 11431, 11437, 11439, 11444, 11447, 11448, 11449, 11451, 11454, 11458, 11535, 11459, 11462, 11463, 11465, 11466, 11468, 11470, 11844, 11471, 11473, 11477, 11478, 11479, 11480, 11481, 11485, 11487, 11488, 11538, 11492, 11493, 11494, 11495, 11496, 11499, 11500, 11501, 11502, 11503, 11641, 11505, 11513, 11514, 11516, 11523, 11525, 11528, 11529, 11530, 11531, 11541, 11542, 11543, 11544, 11545, 11546, 11550, 11551, 11552, 11554, 11557, 11558, 11559, 11561, 11563, 11564, 11565, 11566, 11568, 11571, 11642, 11577, 11579, 11584, 11590, 11643, 11594, 11597, 11598, 11600, 11603, 11604, 11605, 11608, 11609, 11644, 11895, 11610, 11611, 11612, 11613, 11615, 11616, 11618, 11621, 11622, 11623, 11896, 11624, 11626, 11627, 11628, 11629, 11631, 11632, 11633, 11634, 11640, 11645, 11646, 11648, 11649, 11650, 11654, 11657, 11658, 11688, 11661, 11664, 11665, 11668, 11671, 11672, 11689, 11897, 11673, 11674, 11675, 11677, 11678, 11681, 11683, 11684, 11685, 11693, 11694, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11705, 11709, 11710, 11712, 11714, 11715, 11717, 11719, 11720, 11722, 11724, 11726, 11727, 11730, 11732, 11740, 11741, 11742, 11744, 11747, 11750, 11752, 11753, 11756, 11758, 11761, 11762, 11764, 11782, 11766, 11767, 11770, 11771, 11772, 11773, 11775, 11776, 11777, 11783, 11784, 11785, 11788, 11789, 11791, 11792, 11796, 11797, 11798, 11799, 11801, 11802, 11806, 11807, 11808, 11811, 11812, 11814, 11815, 11816, 11818, 11825, 11828, 11830, 11833, 11834, 11835, 11836, 11837, 11838, 11842, 11847, 11849, 11850, 11855, 11856, 11857, 11863, 11864, 11866, 11870, 11872, 11878, 11899, 11879, 11883, 11887, 11889, 11891, 11892, 11903, 11904, 11905, 11907, 11908, 11909, 11923, 11957, 11912, 11913, 11919, 11920, 11921, 11922, 11925, 11927, 11929, 11930, 11931, 11932, 11934, 11935, 11936, 11941, 11943, 11945, 11947, 11949, 11950, 11952, 11954, 11955, 11956, 11959, 11960, 11962, 11964, 11965, 11966, 11971, 11972, 11974, 11975, 11976, 11977, 11978, 11981, 11982, 11984, 11986, 11987, 11989, 11991, 11992, 11993, 11994, 11995, 12000, 12002, 12003, 12004, 12007, 12010, 12011, 12012, 12014, 12015, 12017, 12018, 12019, 12020, 12021, 12023, 12025, 12026, 12027, 12031, 12032, 12033, 12034, 12036, 12038, 12041, 12042, 12043, 12044, 12045, 12047, 12049, 12050, 12051, 12055, 12056, 12059, 12060, 12061, 12064, 12067, 12068, 12072, 12073, 12079, 12080, 12081, 12082, 12083, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12094, 12095, 12096, 12098, 12099, 12100, 12101, 12103, 12104, 12105, 12106, 12108, 12109, 12116, 12136, 12118, 12120, 12121, 12122, 12123, 12125, 12127, 12128, 12131, 12133, 12138, 12139, 12143, 12145, 12149, 12151, 12199, 12152, 12159, 12161, 12163, 12166, 12168, 12169, 12170, 12173, 12177, 12178, 12179, 12181, 12182, 12183, 12185, 12186, 12187, 12188, 12189, 12198, 19117, 12200, 12202, 12203, 12204, 12206, 12207, 12208, 12210, 12212, 12214, 12215, 12217, 12221, 12222, 12226, 12229, 12231, 12232, 12233, 12234, 12235, 12237, 12238, 12239, 12240, 12241, 12244, 12246, 12248, 12251, 12252, 12254, 12255, 12257, 12258, 12259, 12260, 12262, 12263, 12264, 12265, 12284, 12269, 12270, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12286, 12287, 12289, 12290, 12292, 12294, 12296, 12297, 12298, 12299, 12300, 12301, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12315, 12316, 12362, 12317, 12318, 12319, 12320, 12321, 12322, 12326, 12327, 12328, 12329, 12330, 12331, 12333, 12363, 12336, 12338, 12339, 12340, 12342, 12346, 12347, 12349, 12350, 12354, 12355, 12359, 12364, 12365, 12366, 12367, 12369, 12370, 12372, 12374, 12376, 12381, 12382, 12385, 12386, 12387, 12388, 12389, 12391, 12394, 12397, 12856, 12398, 12401, 12404, 12405, 12406, 12407, 12409, 12412, 12413, 12414, 12416, 12417, 12418, 12419, 12424, 12428, 12955, 12429, 12431, 12433, 12435, 12436, 12437, 12438, 12442, 12443, 12449, 12450, 12451, 12452, 12457, 12458, 12459, 12461, 12463, 12464, 12467, 12468, 12471, 12473, 12957, 12477, 12479, 12480, 12481, 12482, 12483, 12485, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12497, 12498, 12501, 12502, 12517, 12504, 12506, 12507, 12510, 12512, 12513, 12518, 12519, 12521, 12523, 12526, 12527, 12530, 12532, 12533, 12535, 12536, 12537, 12538, 12540, 12541, 12542, 12665, 12543, 12544, 12547, 12548, 12553, 12554, 12555, 12556, 12557, 12559, 12560, 12561, 12563, 12564, 12570, 12571, 12974, 12575, 12576, 12577, 12580, 12582, 12584, 12702, 12586, 12588, 12589, 12590, 12591, 12594, 12595, 12598, 12599, 12602, 12606, 12608, 12612, 12613, 12614, 12616, 12617, 12619, 12620, 12621, 12622, 12624, 12625, 12641, 12627, 12628, 12629, 12631, 12632, 12633, 12634, 12635, 12642, 12644, 12646, 12647, 12648, 12649, 12650, 12652, 12653, 12654, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 20433, 12666, 12667, 12668, 12669, 12672, 12673, 12674, 12675, 12676, 12677, 12679, 12682, 12683, 12685, 12686, 12687, 20434, 12691, 12692, 12694, 12696, 12697, 12698, 12700, 12704, 12706, 12707, 12710, 12711, 12713, 12714, 12715, 12717, 12761, 12719, 12722, 12723, 12726, 12727, 12728, 12731, 12896, 12733, 12734, 12736, 12738, 12740, 12741, 12742, 12745, 12746, 12748, 12749, 12755, 12757, 12758, 12759, 12762, 12763, 12767, 12769, 12770, 12771, 12772, 12773, 12774, 12975, 12779, 12781, 12782, 12784, 12785, 12786, 12787, 12788, 12790, 12793, 12794, 12795, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12805, 12806, 12807, 12845, 12808, 12810, 12811, 12813, 12814, 12817, 12818, 12819, 12820, 12823, 12824, 12825, 12827, 12829, 12830, 12831, 12833, 12834, 12835, 12836, 12841, 12848, 12850, 12854, 12855, 12857, 12859, 12862, 12864, 12865, 12866, 12867, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12898, 12878, 12879, 12880, 12885, 12887, 12890, 12892, 12894, 12895, 12903, 12906, 12907, 12908, 12909, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12920, 12921, 12935, 12923, 12926, 12927, 12928, 12930, 12931, 12933, 12934, 12953, 12936, 12938, 12940, 12941, 12944, 12945, 12947, 12950, 12951, 12954, 12958, 12959, 12963, 12964, 12966, 12967, 12968, 12969, 12972, 12978, 12980, 12982, 12983, 12985, 12986, 12987, 12988, 12989, 12990, 12992, 12993, 12994, 12995, 12997, 12999, 13001, 13004, 13031, 13007, 13008, 13009, 13010, 13012, 13015, 13016, 13017, 13149, 13020, 13023, 13025, 13026, 13027, 13029, 13033, 13036, 13037, 13039, 13040, 13041, 13046, 13050, 13055, 13056, 13057, 13058, 13060, 13082, 13062, 13064, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13077, 13079, 13081, 13083, 13086, 13089, 13090, 13091, 13093, 13095, 13098, 13100, 13107, 13108, 13110, 13111, 13113, 13114, 13115, 13116, 13123, 13127, 13148, 13133, 13134, 13135, 13137, 13140, 13141, 13142, 13144, 13145, 13151, 13153, 13154, 13159, 13161, 13163, 13164, 13166, 13167, 13168, 13170, 13171, 13172, 13173, 13174, 13175, 13224, 13275, 13177, 13178, 13180, 13185, 13187, 13188, 13189, 13192, 13193, 13195, 13196, 13198, 13201, 13206, 13207, 13208, 13210, 13213, 13215, 13216, 13217, 13218, 13219, 13220, 13222, 13226, 13227, 13228, 13230, 13231, 13234, 13235, 13243, 13248, 13249, 13251, 13255, 13262, 13264, 13266, 13268, 13272, 13273, 13276, 13278, 13279, 13280, 13284, 13285, 13290, 13291, 13293, 13295, 13296, 13297, 13298, 13301, 13337, 13306, 13307, 13308, 13309, 13313, 13315, 13316, 13317, 13318, 13319, 13321, 13322, 13323, 13324, 13325, 13326, 13328, 13329, 13330, 13333, 13334, 13336, 13341, 13342, 13343, 13345, 13346, 13347, 13348, 13349, 13382, 13351, 13354, 13355, 13357, 13359, 13363, 13364, 13380, 13365, 13369, 13373, 13376, 13387, 13389, 13391, 13393, 13394, 13395, 13397, 13398, 13400, 13401, 13402, 13403, 13406, 13407, 13410, 13411, 13412, 13414, 13416, 13418, 13419, 13421, 13422, 13423, 13426, 13445, 13441, 13443, 13448, 13452, 13453, 13456, 13457, 13458, 13459, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13471, 13546, 13473, 13474, 13475, 13476, 13477, 13480, 13481, 13482, 13484, 13487, 13503, 13489, 13492, 13494, 13495, 13496, 13498, 13499, 13501, 13502, 13545, 13504, 13505, 13508, 13511, 13515, 13516, 13518, 13520, 13523, 13524, 13527, 13529, 13530, 13532, 13535, 13537, 13542, 13544, 13547, 13548, 13551, 13553, 13555, 13558, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13570, 13571, 13572, 13573, 13574, 13634, 13575, 13578, 13579, 13580, 13581, 13583, 13648, 13584, 13587, 13605, 13593, 13594, 13595, 13597, 13598, 13599, 13600, 13601, 13611, 13612, 13614, 13615, 13616, 13617, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13629, 13631, 13637, 13639, 13647, 13651, 13653, 13656, 13657, 13660, 13661, 13662, 13664, 13665, 13667, 13668, 13669, 13673, 13674, 13675, 13676, 13677, 13680, 13685, 13686, 13687, 13693, 13694, 13695, 13697, 13699, 13700, 13705, 13708, 13709, 13710, 13711, 13713, 13826, 13717, 13719, 13720, 13724, 13726, 13729, 13730, 13732, 13733, 13734, 13735, 13737, 13739, 13740, 13741, 13743, 13745, 13748, 13749, 13755, 13759, 13761, 13762, 13763, 13766, 13767, 13768, 13772, 13773, 13774, 13776, 13777, 13778, 13782, 13786, 13787, 13794, 13796, 13798, 13799, 13800, 13801, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13811, 13812, 14046, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13824, 13825, 20808, 13830, 13832, 13833, 13834, 13835, 13839, 13840, 13841, 13842, 13843, 13885, 13844, 13848, 13849, 13851, 13853, 13854, 13855, 13856, 13857, 13956, 13858, 13859, 13860, 13862, 13863, 13864, 13865, 13867, 13868, 13871, 13873, 13874, 21456, 13876, 13880, 13882, 13883, 13884, 13889, 13890, 13894, 13897, 13899, 13957, 13902, 13903, 13904, 13906, 13907, 13911, 13912, 13914, 13915, 13916, 13958, 13917, 13918, 13919, 13921, 13922, 13924, 13925, 13926, 13927, 13929, 13930, 13931, 14005, 13933, 13936, 13937, 13939, 14144, 13940, 13942, 13943, 13945, 13946, 13947, 13948, 13950, 13952, 13953, 13954, 13955, 13960, 13961, 13963, 13964, 13966, 13967, 13968, 13969, 13971, 13972, 13973, 13974, 13975, 14006, 14145, 13976, 13977, 13979, 13980, 13983, 13987, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 14000, 14003, 14004, 14024, 14025, 14007, 14009, 14010, 14011, 14012, 14015, 14016, 14018, 14021, 14029, 14030, 14031, 14032, 14034, 14036, 14038, 14039, 14041, 14042, 14043, 14044, 14048, 14049, 14050, 14051, 14053, 14054, 14055, 14058, 21468, 14059, 14060, 14061, 14064, 14065, 14066, 14067, 14071, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14086, 14087, 14088, 14089, 14090, 14094, 14095, 14096, 14098, 14099, 14100, 14102, 14104, 14105, 14108, 14109, 14111, 14125, 14112, 14114, 14115, 14118, 14119, 14121, 14128, 14130, 14131, 14133, 14134, 14135, 14138, 14142, 14146, 14148, 14149, 14150, 14151, 14153, 14154, 14244, 14156, 14158, 14161, 14163, 14164, 14165, 14167, 14168, 14170, 14171, 23235, 14173, 14174, 14175, 14177, 14178, 14179, 14180, 14181, 14184, 14185, 14186, 14187, 14189, 14190, 14192, 14193, 14194, 14196, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14207, 14209, 14210, 14211, 14212, 14213, 14214, 14217, 14220, 14223, 14224, 14225, 14226, 14227, 14229, 14230, 14233, 14245, 14235, 14236, 14237, 14239, 14240, 14241, 14246, 14248, 14249, 14250, 14251, 14253, 14254, 14255, 14264, 14256, 14257, 14261, 14262, 14263, 14267, 14269, 14270, 14271, 14273, 14276, 14277, 14320, 14278, 14279, 14280, 14281, 14286, 14287, 14290, 14291, 14376, 14296, 14298, 14299, 14301, 14303, 14304, 14306, 14307, 14390, 14309, 14316, 14317, 14318, 14319, 14929, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14330, 14331, 14334, 14335, 14337, 14338, 14339, 14340, 14343, 14344, 14346, 14353, 14354, 14355, 14357, 14359, 14361, 14365, 14366, 14367, 14369, 14372, 14373, 14374, 14377, 14380, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14391, 14392, 14393, 14394, 14397, 14398, 14399, 14400, 14402, 14403, 14404, 14407, 14408, 14409, 14410, 14411, 14413, 14418, 14419, 14420, 14434, 14421, 14422, 14423, 14424, 14425, 14428, 14486, 14436, 14438, 14439, 14441, 14442, 14443, 14445, 14446, 16027, 14450, 14451, 14452, 14454, 14457, 14458, 14460, 14462, 14464, 14465, 14467, 14489, 14468, 14470, 14471, 14472, 14473, 14474, 14477, 14490, 14492, 16351, 14479, 14480, 14481, 14482, 14493, 14494, 14497, 14498, 14501, 14503, 14504, 14505, 14506, 14508, 14511, 14512, 14513, 14514, 14517, 14519, 14522, 14523, 14527, 14532, 14536, 14539, 14540, 14541, 14546, 14549, 14550, 14569, 14554, 14555, 14556, 14557, 14564, 14566, 14568, 14571, 14573, 14574, 14576, 14577, 14578, 14579, 14585, 14586, 14587, 14590, 14591, 14597, 14598, 14599, 16737, 14601, 14602, 14603, 14606, 14609, 14611, 14612, 14613, 14615, 14616, 14619, 14621, 14622, 14625, 14626, 14627, 14629, 14630, 14631, 14632, 14636, 14638, 14645, 14647, 14650, 14651, 14652, 14654, 14657, 14658, 14659, 14660, 14663, 14664, 14666, 14667, 14668, 14669, 14670, 14671, 14674, 14675, 14678, 14679, 14684, 14689, 14697, 14698, 14767, 14699, 14700, 14701, 14702, 14705, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14768, 14718, 14720, 14721, 14723, 14724, 14730, 14732, 14736, 14738, 14739, 14741, 14742, 14743, 14744, 14745, 14746, 14750, 14752, 14769, 14754, 14755, 14757, 14759, 14763, 14764, 14766, 16738, 14771, 14772, 14774, 14775, 14776, 14777, 14778, 16739, 14784, 14785, 14786, 14788, 14789, 14790, 14798, 14791, 14793, 14794, 14796, 14844, 14799, 14803, 14804, 14806, 14808, 14810, 14811, 14812, 14814, 14815, 14816, 14817, 14819, 14861, 14820, 14822, 14823, 14824, 14825, 14827, 14828, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14839, 14840, 14842, 14843, 14845, 14848, 14849, 14850, 14853, 14857, 14858, 14859, 14860, 14865, 14866, 14868, 14869, 14870, 14872, 14873, 17650, 14876, 14878, 14879, 14880, 14883, 14885, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14899, 14901, 14902, 14903, 14905, 14906, 14907, 14909, 14911, 14914, 14915, 14917, 14919, 14921, 14923, 14926, 14930, 14931, 14933, 14934, 14935, 14938, 14939, 14940, 14941, 14942, 14946, 14949, 14950, 14951, 14953, 14956, 14959, 14960, 14962, 14999, 14965, 14966, 14968, 14971, 15011, 14977, 14978, 14979, 14980, 14981, 14982, 14984, 15199, 14989, 14991, 14993, 14994, 14998, 15000, 15001, 15002, 15004, 15005, 15006, 15007, 15009, 15010, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15024, 15085, 15025, 15026, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15041, 15043, 15044, 15046, 15047, 15048, 15049, 15051, 15053, 15057, 15060, 15061, 15062, 15065, 15068, 15069, 15070, 15073, 15074, 15076, 15078, 15079, 15080, 15082, 15083, 15084, 15087, 15093, 17745, 15094, 15098, 15100, 15101, 15103, 15104, 15112, 15113, 15114, 15115, 15117, 15118, 15119, 15120, 15123, 15140, 17938, 15124, 15126, 15127, 15130, 15141, 15243, 15131, 15133, 15135, 15138, 15143, 15144, 15148, 15152, 15195, 15153, 15154, 15156, 15157, 15158, 15159, 15160, 15163, 15164, 15167, 15168, 15171, 15172, 15173, 15175, 15176, 15178, 15179, 15180, 15197, 15181, 15183, 15185, 15186, 15189, 15191, 15193, 15194, 15198, 15201, 15204, 15205, 15207, 15208, 15220, 15210, 15212, 15213, 15217, 15218, 15219, 15222, 15223, 15225, 15226, 15241, 15242, 15291, 15230, 15232, 15236, 15246, 15247, 15250, 15251, 15252, 15254, 15255, 15257, 15260, 15261, 15263, 15264, 15265, 15268, 15269, 15272, 15273, 15277, 15280, 15282, 15283, 15285, 15286, 15287, 15288, 15289, 15290, 15293, 15295, 15296, 15299, 15300, 15301, 15302, 15306, 15307, 15324, 15308, 15311, 15312, 15313, 15314, 15316, 15319, 15320, 15323, 15357, 15325, 15326, 15329, 15330, 15331, 15332, 15334, 15335, 15337, 15338, 15340, 15341, 15343, 15344, 15345, 15348, 15352, 15353, 15358, 15359, 15361, 15364, 15365, 15368, 15369, 15370, 15371, 15372, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15385, 15387, 15407, 15388, 15390, 15391, 15392, 15394, 15396, 15397, 15398, 15402, 15403, 15404, 15408, 15411, 15413, 15419, 15420, 15421, 15422, 15480, 15424, 15425, 15426, 15427, 15430, 15433, 15434, 15435, 15439, 15745, 15440, 15442, 15443, 15444, 15445, 15450, 15454, 15455, 15456, 15458, 15459, 15460, 15461, 15462, 15464, 15465, 15469, 15470, 15471, 15472, 15473, 15475, 15478, 15484, 15485, 15486, 15487, 15488, 15490, 15491, 15495, 15496, 15497, 15499, 15502, 15507, 15508, 15509, 15511, 15515, 15527, 15516, 15517, 15518, 15519, 15520, 15522, 15523, 15524, 15526, 15541, 15528, 15531, 15532, 15533, 15534, 15535, 15536, 15538, 15547, 15548, 15551, 15553, 15554, 15557, 15558, 15560, 15561, 15564, 15566, 15569, 15571, 15573, 15574, 15575, 15577, 15579, 15580, 15583, 15584, 15585, 15682, 15586, 15588, 15589, 15591, 15594, 15598, 15601, 15603, 15605, 15608, 15609, 15611, 15613, 15614, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15625, 15626, 15627, 15631, 15633, 15634, 15636, 15637, 15638, 15639, 15640, 15641, 15643, 15644, 15645, 15646, 15648, 15653, 15654, 15655, 15679, 15656, 15657, 15659, 15660, 15662, 15663, 15664, 15668, 15669, 15671, 15672, 15674, 15676, 15677, 15678, 15681, 15683, 15685, 15688, 15691, 15693, 15695, 15698, 15699, 15701, 15702, 15705, 15706, 15707, 15708, 15709, 15711, 15714, 15715, 15716, 15717, 15719, 15720, 15723, 15725, 15726, 15727, 15731, 15732, 15733, 15736, 15737, 15740, 15741, 15742, 15743, 15747, 15748, 15750, 15751, 15753, 15754, 15755, 15756, 15757, 15758, 15847, 15761, 15765, 15767, 15769, 15772, 15773, 15774, 15775, 15800, 15848, 15778, 15779, 15780, 15782, 15783, 15784, 15789, 15790, 15809, 15792, 15793, 15794, 15796, 15797, 15798, 15801, 15802, 15803, 15805, 15806, 15807, 15833, 15812, 15813, 15817, 15821, 15822, 15823, 15825, 15827, 15828, 15829, 15830, 15831, 15832, 15947, 18372, 15834, 15835, 15837, 15840, 15843, 15845, 15846, 15849, 15854, 15857, 15862, 15864, 15865, 15866, 15867, 15871, 15873, 15875, 15876, 15879, 15881, 15882, 15884, 15886, 15887, 15888, 15890, 15891, 16009, 16010, 15895, 15897, 15898, 15899, 15902, 15904, 15905, 15906, 15907, 15910, 15919, 15922, 15923, 15925, 15927, 15928, 15931, 15932, 15933, 15935, 15936, 15937, 15938, 15943, 15944, 15948, 15950, 15951, 15955, 15956, 15957, 15958, 15961, 15962, 16011, 15965, 15966, 15969, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15981, 15982, 15983, 15985, 15986, 15987, 15989, 15991, 15993, 15994, 16001, 16002, 16003, 16005, 16007, 16012, 16014, 16017, 16019, 16020, 16022, 16023, 16024, 16030, 16031, 16032, 16034, 16036, 16038, 16039, 16042, 16117, 16045, 16046, 16051, 16055, 16056, 16057, 16058, 16060, 16062, 16063, 16066, 16068, 16926, 16069, 16070, 16072, 16073, 16074, 16077, 16078, 16079, 16081, 16187, 16082, 16084, 16085, 16087, 16088, 16090, 16091, 16093, 16094, 16095, 16097, 16098, 16099, 16101, 16103, 16107, 16112, 16113, 16116, 16119, 16120, 16121, 16123, 16125, 16128, 16129, 16130, 16131, 16132, 16136, 16137, 16142, 16143, 16144, 16148, 16149, 16150, 16151, 16152, 16153, 16155, 16156, 16164, 16166, 16167, 16188, 16173, 16174, 16175, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16190, 16192, 16195, 16197, 16199, 16396, 16202, 16204, 16207, 16208, 16209, 16212, 16213, 16214, 16216, 16219, 16220, 16222, 16223, 16224, 16225, 16226, 16227, 16229, 16231, 16232, 16266, 16236, 16237, 16238, 16239, 16242, 16243, 16267, 16245, 16246, 16247, 16250, 16252, 16255, 16256, 16258, 16260, 16262, 16264, 16270, 16271, 16272, 16273, 16276, 16277, 16278, 16293, 16281, 16282, 16283, 16285, 16287, 16288, 16289, 16290, 16291, 16297, 16298, 16299, 16300, 16301, 16303, 16305, 16306, 16310, 16339, 16311, 16313, 16314, 16315, 16319, 16320, 16321, 16322, 16323, 16350, 16326, 16327, 16328, 16329, 16330, 16333, 16334, 16337, 16340, 16341, 16342, 16343, 16344, 16345, 16348, 16349, 16353, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16367, 16369, 16370, 16371, 16374, 16375, 16378, 16382, 16383, 16388, 16390, 16391, 16392, 16401, 16402, 16403, 16407, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16419, 16422, 16423, 16427, 16428, 16429, 16430, 16432, 16433, 16434, 16435, 16437, 16438, 16440, 16445, 16448, 16449, 16451, 16466, 16453, 16454, 16457, 16458, 16460, 16461, 16463, 16464, 16468, 16469, 16471, 16472, 16473, 16474, 16480, 16497, 16481, 16482, 16483, 16484, 16486, 16487, 16488, 16490, 16493, 16495, 16496, 16498, 16499, 16500, 16505, 16511, 16512, 16513, 16514, 16515, 16519, 16960, 16523, 16524, 16532, 16533, 16534, 16535, 16537, 16538, 16540, 16543, 16545, 16546, 16549, 16550, 16551, 16553, 16554, 16555, 16557, 16558, 16562, 16563, 16564, 16565, 16566, 16568, 16569, 16570, 16571, 16573, 16574, 16575, 16576, 16582, 16583, 16584, 16586, 16589, 16591, 16594, 16611, 16612, 16629, 16596, 16598, 16599, 16602, 16603, 16604, 16605, 16606, 16608, 16609, 16610, 16628, 16614, 16615, 16616, 16621, 16625, 16627, 16630, 16631, 16632, 16633, 16635, 16636, 16637, 16639, 16640, 16641, 16643, 16644, 16666, 16647, 16648, 16649, 16650, 16652, 16655, 16656, 16658, 16662, 16663, 16664, 16686, 16668, 16669, 16670, 16672, 16673, 16674, 16675, 16676, 16677, 16679, 16680, 16681, 16682, 16683, 16684, 16688, 16689, 16691, 16692, 16693, 16695, 16696, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16706, 16707, 16961, 16709, 16712, 16713, 16714, 16715, 16716, 16723, 16724, 16728, 16729, 16730, 16731, 16732, 16744, 16745, 16746, 16748, 16751, 16766, 16753, 16754, 16756, 16757, 16759, 16760, 16761, 16762, 16763, 16764, 16767, 16768, 16770, 16772, 16773, 16774, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16810, 16788, 16793, 16794, 16795, 16797, 16798, 16800, 16801, 16804, 16805, 16807, 16808, 16962, 16813, 16816, 16817, 16818, 16822, 16825, 16826, 16827, 16828, 16829, 16834, 16835, 16836, 16838, 16839, 16840, 16841, 16843, 16846, 16849, 16850, 16852, 16854, 16855, 16858, 16860, 16892, 16864, 16865, 16866, 16867, 16868, 16869, 16871, 16872, 16873, 16874, 16876, 16877, 16878, 16882, 16883, 16884, 16885, 16886, 16887, 16889, 16891, 16893, 16895, 16897, 16898, 16899, 16900, 16901, 16902, 16905, 16906, 16923, 16908, 16909, 16910, 16912, 16914, 16915, 16917, 16918, 16919, 16921, 16928, 16931, 16934, 16936, 16937, 16938, 16939, 16940, 16942, 16944, 16949, 16950, 16951, 16952, 16954, 16955, 16956, 16957, 16959, 16963, 16964, 16968, 16971, 16972, 16973, 16974, 16975, 16976, 16978, 16980, 16984, 16985, 16989, 16990, 16992, 16993, 16995, 16996, 16998, 16999, 17000, 17006, 17007, 17008, 17010, 17011, 17015, 17016, 17017, 17018, 17020, 17022, 17023, 17024, 17026, 17029, 17031, 17033, 17035, 17036, 17037, 17038, 17039, 17041, 17042, 17043, 17045, 17046, 17061, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17059, 17062, 17064, 17066, 17068, 17071, 17083, 17072, 17073, 17074, 17075, 17076, 17078, 17079, 17081, 17087, 17088, 17089, 17090, 17091, 17093, 17097, 17098, 17099, 17101, 17103, 17104, 17107, 17108, 17110, 17111, 17112, 17114, 17116, 17118, 17119, 17121, 17122, 17123, 17124, 17125, 17126, 17130, 17131, 17134, 17135, 17136, 17137, 17139, 17140, 17141, 17143, 17144, 17145, 17146, 17147, 17149, 17150, 17151, 17152, 17153, 17166, 17186, 17154, 17155, 17156, 17158, 17162, 17163, 17164, 17165, 17167, 17168, 17169, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17187, 17188, 17189, 17190, 17193, 17195, 17529, 17196, 17197, 17198, 17200, 17204, 17205, 17206, 17207, 17530, 17208, 17212, 17213, 17214, 17215, 17216, 17219, 17223, 17225, 17227, 17229, 17247, 17231, 17233, 17234, 17239, 17240, 17241, 17244, 17245, 17250, 17251, 17254, 17256, 17257, 17258, 17259, 17262, 17263, 17531, 17270, 17273, 17275, 17276, 17278, 17279, 17280, 17281, 17289, 17291, 17293, 17294, 17295, 17296, 17299, 17300, 17303, 17304, 17305, 17306, 17307, 17310, 17311, 17312, 17314, 17318, 17320, 17321, 17591, 17323, 17324, 17329, 17345, 20650, 17332, 17338, 17339, 17340, 17341, 17342, 17621, 17346, 17348, 17349, 17350, 17351, 17353, 17622, 17356, 17357, 17359, 17361, 17362, 17363, 17364, 17374, 17379, 17380, 17382, 17383, 17384, 17386, 17387, 17389, 17392, 17435, 17396, 17399, 17400, 17402, 17404, 17406, 17407, 17408, 17507, 17410, 17414, 17415, 17418, 17419, 17420, 17421, 17423, 17424, 17426, 17429, 17431, 17432, 17433, 17434, 17437, 17442, 17443, 17444, 17445, 17447, 17449, 17450, 17451, 17452, 17453, 17456, 17457, 17458, 17460, 17461, 17462, 17463, 17504, 17464, 17467, 17472, 17505, 17477, 17479, 17480, 17481, 17484, 17488, 17489, 17493, 17495, 17496, 17500, 17502, 17508, 17509, 17510, 17511, 17512, 17514, 17517, 17522, 17526, 17532, 17533, 17535, 17536, 17537, 17540, 17542, 17543, 17544, 17546, 17547, 17549, 17550, 17554, 17556, 17560, 17561, 17562, 17568, 17570, 17575, 17576, 17577, 17634, 17578, 17579, 17581, 17583, 17584, 17585, 17586, 17587, 17588, 17592, 17593, 17594, 17597, 17598, 17600, 17602, 17603, 17604, 17605, 17609, 17610, 17611, 17614, 17615, 17619, 17620, 17624, 17627, 17628, 17630, 17631, 17632, 17633, 17636, 17637, 17638, 17641, 17642, 17643, 17644, 17646, 17648, 17652, 17654, 17655, 17658, 17659, 17661, 17662, 17663, 17664, 17666, 17667, 17683, 18315, 17668, 17670, 17671, 17672, 17674, 17678, 17679, 17680, 17681, 17682, 17684, 17686, 17687, 17688, 17689, 17694, 17696, 17727, 17697, 17698, 17699, 17700, 17702, 17703, 17704, 17705, 17728, 18083, 17711, 17712, 17714, 17716, 17717, 17718, 17722, 17724, 17726, 17733, 17735, 17737, 17739, 17742, 17743, 17746, 17747, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17776, 17777, 17762, 17766, 17768, 17771, 17772, 17773, 17774, 17778, 17779, 17780, 17781, 17783, 17784, 17785, 17787, 17788, 17795, 17797, 17800, 17804, 17805, 17806, 17824, 17807, 17808, 17810, 17813, 17814, 17816, 17817, 17820, 17821, 17822, 17882, 17827, 17828, 17829, 17835, 17883, 17840, 17841, 17842, 17845, 17857, 17846, 17848, 17849, 17850, 17852, 17853, 17854, 17855, 17856, 17858, 17859, 17860, 17861, 17862, 17865, 17866, 17867, 17868, 17870, 17881, 17874, 17875, 17877, 17885, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17901, 17902, 17907, 17909, 17911, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17924, 17926, 17927, 17928, 17930, 17931, 17932, 17933, 17934, 17935, 17939, 17940, 17942, 17944, 17945, 17946, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17958, 17959, 17960, 17961, 17964, 17965, 17968, 17970, 17971, 17973, 17974, 18002, 17976, 17977, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17989, 17991, 17992, 17996, 17999, 18000, 18001, 18005, 18007, 18009, 18010, 18011, 18012, 18013, 18016, 18018, 18019, 18022, 18023, 18024, 18025, 18026, 18027, 18044, 18045, 18046, 18030, 18031, 18032, 18033, 18034, 18035, 18037, 18038, 18049, 18052, 18055, 18056, 18060, 18062, 18064, 18066, 18067, 18068, 18069, 18070, 18073, 18074, 18076, 18080, 18081, 18082, 18087, 18088, 18095, 18096, 18097, 18098, 18099, 18100, 18102, 18103, 18105, 18109, 18110, 18112, 18114, 18116, 18118, 18119, 18121, 18122, 18123, 18124, 18126, 18127, 18130, 18131, 18132, 18133, 18134, 18135, 18137, 18140, 18141, 18143, 18144, 18146, 18147, 18686, 18149, 18150, 18152, 18154, 18155, 18157, 18158, 18159, 18161, 18714, 18164, 18166, 18167, 18169, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18180, 18181, 18183, 18184, 18185, 18187, 18189, 18193, 18195, 18196, 18198, 18203, 18204, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18217, 18218, 18220, 18236, 18222, 18224, 18227, 18228, 18230, 18234, 18235, 18732, 18237, 18239, 18240, 18241, 18242, 18244, 18245, 18247, 18248, 18249, 18250, 18252, 18255, 18257, 18259, 18261, 18263, 18264, 18265, 18267, 18269, 18271, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18285, 18287, 18288, 18289, 18291, 18294, 18299, 18300, 18302, 18305, 18306, 18310, 18311, 18316, 18317, 18319, 18321, 18322, 18323, 18325, 18326, 18788, 18328, 18330, 18331, 18334, 18336, 18338, 18339, 18356, 18341, 18342, 18343, 18346, 18349, 18351, 18353, 18357, 18358, 18360, 18361, 18363, 18364, 18365, 18368, 18369, 18370, 18371, 18375, 18377, 18378, 18379, 18380, 18382, 18385, 18386, 18389, 18390, 18449, 18391, 18392, 18394, 18395, 18396, 18398, 18399, 18401, 18402, 18403, 18404, 18405, 18406, 18408, 18409, 18417, 18419, 18420, 18421, 18422, 18423, 18424, 18428, 18510, 18434, 18437, 18438, 18441, 18443, 18445, 18450, 18451, 18452, 18453, 18454, 18456, 18457, 18459, 18460, 18511, 18461, 18463, 18465, 18468, 18469, 18470, 18471, 18475, 18476, 18478, 18479, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18496, 18497, 18498, 18499, 18501, 18504, 18508, 18789, 18515, 18516, 18517, 18518, 18519, 18535, 18522, 18523, 18524, 18525, 18526, 18528, 18529, 18532, 18533, 18536, 18538, 18539, 18542, 18544, 18546, 18547, 18548, 18558, 18559, 18560, 18562, 18790, 18563, 18564, 18566, 18567, 18569, 18570, 18571, 18572, 18577, 18578, 18580, 18582, 18583, 18584, 18585, 18587, 18592, 18593, 18594, 18596, 18597, 18598, 18603, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18625, 18626, 18627, 18628, 18630, 18631, 18632, 18633, 18637, 18639, 18641, 18643, 18644, 18646, 18647, 18648, 18649, 18650, 18652, 18653, 18656, 18658, 18659, 18660, 18662, 18663, 18665, 18667, 18791, 18669, 18673, 18678, 18679, 18683, 18684, 18687, 18688, 18691, 18694, 18695, 18696, 18698, 18700, 18701, 18703, 18704, 18706, 18707, 18710, 18712, 18713, 18716, 18717, 18720, 18723, 18725, 18726, 18728, 18731, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18746, 18747, 18748, 18749, 18750, 18752, 18753, 18755, 18757, 18758, 18759, 18760, 18764, 21208, 18765, 18766, 18767, 18769, 18771, 18772, 18774, 18775, 18787, 18780, 18781, 18785, 18786, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18801, 18803, 18804, 18805, 18806, 18808, 18809, 18811, 18813, 18815, 18816, 18817, 18818, 18820, 18822, 18824, 18825, 18826, 18827, 18828, 18829, 18831, 18832, 18834, 18836, 18837, 18839, 18840, 18842, 18843, 18845, 18846, 18847, 18848, 18849, 18850, 18852, 18853, 18855, 18856, 18857, 18858, 18860, 18861, 18865, 18885, 18866, 18868, 18871, 18873, 18874, 18896, 18875, 18876, 18877, 18881, 18882, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18899, 18900, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18911, 18912, 18913, 18914, 18916, 18917, 18919, 18920, 18921, 18922, 18923, 18924, 18926, 18928, 18929, 18931, 18932, 18933, 18934, 18935, 18937, 18939, 18940, 18943, 18944, 18945, 18946, 18948, 18949, 18950, 18955, 18957, 18958, 18959, 18960, 18962, 18963, 18964, 18966, 18967, 18968, 18971, 18972, 18984, 18976, 18977, 18979, 18980, 19008, 18987, 18989, 18990, 18991, 18993, 18994, 18995, 18998, 19001, 19002, 19005, 19009, 19010, 19013, 19014, 19015, 19017, 19019, 19020, 19022, 19023, 19024, 19025, 19026, 19028, 19029, 19031, 19032, 19033, 19034, 19038, 19039, 19043, 19045, 19047, 19049, 19050, 19051, 19052, 19053, 19054, 19056, 19057, 19079, 19058, 19060, 19061, 19066, 19080, 19067, 19070, 19071, 19074, 19077, 19113, 19116, 19082, 19083, 19085, 19088, 19114, 19090, 19091, 19092, 19093, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19106, 19107, 19108, 19109, 19112, 19118, 19119, 19120, 19121, 19123, 19124, 19125, 19126, 19128, 19129, 19130, 19132, 19133, 19134, 19137, 19138, 19139, 19140, 19141, 19144, 19145, 19147, 19148, 19150, 19169, 19949, 19152, 19154, 19156, 19157, 19158, 19163, 19165, 19167, 19168, 19170, 19172, 19176, 19179, 19180, 19181, 19182, 19183, 19185, 19186, 19188, 19189, 19190, 19193, 19194, 19198, 19199, 19207, 19208, 19212, 19213, 19214, 19215, 19216, 19217, 19219, 19220, 19221, 19224, 19225, 19226, 19227, 19229, 19231, 19232, 19233, 19234, 19236, 19239, 19241, 19242, 19244, 19249, 19250, 19259, 19295, 19252, 19254, 19257, 19258, 20114, 19260, 19262, 19264, 19265, 19266, 19267, 19279, 19652, 19268, 19269, 19270, 19272, 19275, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289, 19291, 19297, 19298, 19299, 19300, 19302, 19303, 19305, 19306, 19307, 19308, 19407, 19310, 19312, 19313, 19314, 19316, 19318, 19324, 19325, 19327, 19408, 19332, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19653, 19343, 19344, 19346, 19348, 19349, 19350, 19352, 19354, 19355, 19358, 19359, 19360, 19362, 19363, 19364, 19365, 19366, 19369, 19370, 19371, 19372, 19374, 19381, 19384, 19387, 19388, 19389, 19391, 19393, 19396, 19397, 19403, 19404, 19405, 19409, 19410, 19412, 19413, 19414, 19415, 19417, 19418, 19419, 19420, 19421, 19423, 19424, 19483, 19425, 19426, 19429, 19434, 19435, 19436, 19437, 19438, 19440, 19443, 19444, 19447, 19449, 19450, 19453, 19454, 19455, 19456, 19457, 19459, 19460, 19461, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19633, 19470, 19471, 19473, 19474, 19475, 19484, 19486, 19488, 19489, 19492, 19494, 19560, 19498, 19505, 19507, 19508, 19511, 19512, 19514, 19517, 19521, 19522, 19635, 19523, 19524, 19526, 19527, 19528, 19529, 19530, 19562, 19533, 19534, 19535, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19576, 19544, 19545, 19546, 19547, 19548, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19559, 19563, 19564, 19565, 19569, 19571, 19572, 19575, 20345, 19578, 19579, 19580, 19584, 19585, 19587, 19588, 19651, 19590, 19592, 19594, 19595, 19596, 19597, 19598, 19600, 19603, 19605, 19606, 19607, 19608, 19612, 19616, 19617, 19618, 19619, 19620, 19621, 19623, 19625, 19627, 19629, 19630, 19631, 19632, 19639, 19640, 19641, 19642, 19645, 19647, 19648, 19649, 19654, 19655, 19656, 19659, 19660, 19661, 19663, 19664, 19667, 19670, 19671, 19672, 19675, 19676, 19678, 19679, 19680, 19681, 19683, 19785, 19684, 19685, 19686, 19692, 19693, 19695, 19933, 19698, 19699, 19702, 19704, 19705, 19706, 19708, 19784, 19713, 19715, 19718, 19719, 19720, 19721, 19722, 19726, 19727, 19737, 19728, 19729, 19730, 19731, 19734, 19735, 19736, 19739, 19740, 19741, 19742, 19743, 19744, 19747, 19748, 19749, 19768, 19752, 19753, 19755, 19756, 19761, 19763, 19765, 19766, 19767, 19770, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19781, 19782, 19787, 19788, 19790, 19792, 19794, 19796, 19798, 19799, 19800, 19802, 19806, 19808, 19811, 19812, 19814, 19815, 19816, 19818, 19819, 19820, 19821, 19824, 19825, 19826, 19828, 19829, 19831, 19832, 19835, 19837, 19935, 19840, 19842, 19843, 19844, 19846, 19848, 19849, 19850, 19851, 19853, 19855, 19857, 19858, 19860, 19862, 19864, 19865, 19866, 19867, 19936, 19870, 19871, 19873, 19874, 19875, 19877, 19878, 19937, 22496, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19892, 19894, 19895, 19896, 19897, 19899, 19900, 19903, 19907, 19908, 19912, 19913, 19915, 19917, 19919, 19920, 19922, 19924, 19926, 19928, 19929, 19930, 19931, 19939, 19940, 19945, 19946, 19948, 19950, 19955, 19956, 19958, 19959, 19960, 19961, 19962, 19963, 19965, 20346, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19978, 19979, 19982, 19983, 19984, 19986, 19989, 19990, 19991, 19993, 19996, 19999, 20000, 20002, 20015, 20003, 20005, 20006, 20008, 20009, 20010, 20011, 20012, 20013, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 20053, 20029, 20030, 20031, 20032, 20034, 20035, 20036, 20038, 20039, 20040, 20043, 20044, 20045, 20046, 20048, 20050, 20051, 20224, 20056, 20057, 20058, 20059, 20060, 20061, 20063, 20064, 20066, 20067, 20069, 20070, 20072, 20073, 20074, 20077, 20079, 20080, 20081, 20083, 20085, 20087, 20088, 20091, 20092, 20096, 20097, 20099, 20110, 20111, 20100, 20101, 20102, 20103, 20104, 20108, 20109, 20113, 20115, 20117, 20118, 20119, 20120, 20121, 20122, 20132, 20124, 20126, 20127, 20129, 20131, 20134, 20135, 20138, 20140, 20143, 20145, 20147, 20379, 20148, 20152, 20155, 20158, 20159, 20160, 20187, 20380, 20162, 20163, 20164, 20165, 20166, 20167, 20168, 20169, 20173, 20174, 20175, 20200, 20177, 20179, 20181, 20182, 20184, 20185, 20186, 20188, 20190, 20192, 20193, 20194, 20197, 20199, 20201, 20202, 20203, 20204, 20206, 20207, 20209, 20210, 20211, 20223, 20212, 20213, 20214, 20218, 20219, 20220, 20225, 20226, 20227, 20228, 20229, 20230, 20231, 20233, 20234, 20235, 20236, 20238, 20239, 20240, 20241, 20242, 20247, 20248, 20249, 20250, 20251, 22817, 20255, 20257, 20258, 20259, 20263, 20264, 20265, 20268, 20271, 20272, 20274, 20277, 20278, 20279, 20281, 20282, 20288, 20289, 20290, 20291, 20292, 20293, 20294, 20295, 20299, 20300, 20301, 20302, 20303, 20304, 20305, 20306, 20308, 20309, 20310, 20311, 20312, 20313, 20315, 20316, 20410, 20317, 20320, 20321, 20323, 20324, 20327, 20343, 20328, 20329, 20330, 20333, 20334, 20336, 20337, 20339, 20340, 20341, 20348, 20350, 20351, 20352, 20353, 20356, 20357, 20358, 20359, 20360, 20361, 20362, 20363, 20365, 20366, 20367, 20368, 20370, 20371, 20373, 20374, 20382, 20383, 20387, 20389, 20390, 20391, 20392, 20395, 20396, 20397, 20398, 20399, 20400, 20403, 20404, 20405, 20408, 20409, 20411, 20412, 20413, 20414, 20415, 20416, 20417, 20418, 20419, 20421, 20422, 20424, 20426, 20427, 20429, 20430, 20431, 20432, 20436, 20438, 20439, 20440, 20441, 20442, 20443, 20446, 20449, 20450, 20451, 20452, 20453, 20455, 20456, 20458, 20459, 20460, 20464, 20465, 20466, 20468, 20469, 20471, 20474, 20476, 20478, 20479, 20480, 20483, 20484, 20486, 20487, 20488, 20577, 20490, 20493, 20494, 20497, 20498, 20521, 20499, 20500, 20501, 20503, 20504, 20505, 20507, 20508, 20509, 20510, 20511, 20515, 20516, 20518, 20519, 20574, 20523, 20525, 20527, 20530, 20532, 20533, 20536, 20537, 20538, 20539, 20541, 20542, 20543, 20545, 20547, 20548, 20549, 20552, 20553, 20554, 20555, 20556, 20557, 20558, 20559, 20561, 20562, 20565, 20567, 20568, 20569, 20571, 20572, 20573, 20575, 20580, 20585, 20586, 20588, 20591, 20649, 20592, 20595, 20599, 20600, 20601, 20606, 20607, 20608, 20609, 20610, 20611, 20612, 20613, 20614, 20615, 20618, 20620, 20623, 20624, 20631, 20632, 20647, 20636, 20637, 20640, 20641, 20643, 20644, 20645, 20653, 20654, 20656, 20657, 20660, 20663, 20664, 20665, 20667, 20668, 20670, 20671, 20674, 20675, 20677, 20678, 20690, 20691, 20681, 20682, 20683, 20684, 20685, 20686, 20687, 20688, 20692, 20693, 20694, 20695, 20699, 20702, 20704, 20705, 20706, 20708, 20709, 20710, 20713, 20714, 20715, 20716, 20717, 20719, 20720, 20723, 20725, 20726, 20727, 20730, 20731, 20732, 20733, 20737, 20738, 20739, 20740, 20741, 20742, 20745, 20747, 20748, 20749, 20752, 20755, 20756, 20758, 20759, 20760, 20761, 20763, 20766, 20767, 20768, 20770, 20771, 20775, 20977, 20780, 20781, 20782, 20784, 20785, 20789, 20791, 20792, 20806, 20807, 20795, 20796, 20801, 20802, 20803, 20805, 20810, 20812, 20815, 20816, 20817, 20819, 20822, 20824, 20825, 20826, 20827, 20830, 20831, 20832, 20836, 20837, 20838, 20839, 20841, 20843, 20845, 20846, 20848, 20849, 20850, 20863, 20852, 20853, 20854, 20855, 20857, 20858, 20859, 20861, 20867, 20868, 20869, 20870, 20874, 20875, 20876, 20891, 20877, 20878, 20879, 20880, 20881, 20882, 20883, 20885, 20886, 20888, 20892, 20895, 20896, 20897, 20898, 20900, 20901, 20904, 20905, 20906, 20907, 20908, 20909, 20913, 20915, 20917, 20918, 20919, 20922, 20923, 20925, 20926, 20927, 20928, 20929, 20931, 20933, 20935, 20936, 20937, 20940, 20942, 20943, 20944, 20945, 20948, 20949, 20950, 20951, 20952, 20953, 20976, 20959, 20962, 20963, 20964, 20965, 20968, 20970, 20971, 20972, 20973, 20981, 20982, 20983, 20988, 20989, 20990, 20993, 20994, 22005, 20997, 20998, 20999, 21000, 21002, 21003, 21005, 21006, 21007, 21008, 21634, 21012, 21014, 21015, 21017, 21019, 21021, 21022, 21026, 21027, 21029, 21030, 21031, 21033, 21035, 21037, 21040, 21041, 21042, 21043, 21044, 21045, 21046, 21047, 21050, 21051, 21052, 21053, 21055, 21057, 21058, 21059, 21060, 21061, 21063, 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21074, 21075, 21077, 21078, 21079, 21080, 21081, 21083, 21084, 21085, 21218, 21091, 21093, 21094, 21097, 21099, 21112, 21100, 21101, 21103, 21105, 21106, 21107, 21108, 21110, 21111, 21129, 21113, 21115, 21118, 21122, 21123, 21125, 21126, 21128, 21280, 21130, 21131, 21132, 21133, 21134, 21135, 21138, 21139, 21178, 21143, 21145, 21146, 21147, 21148, 21150, 21151, 21181, 21182, 21153, 21154, 21155, 21156, 21157, 21158, 21160, 21162, 21163, 21164, 21193, 21165, 21166, 21168, 21171, 21172, 21173, 21174, 21176, 21183, 21184, 21187, 21188, 21189, 21190, 21191, 21192, 21194, 21195, 21196, 21197, 21198, 21202, 21203, 21205, 21206, 21209, 21210, 21211, 21214, 21215, 21216, 21217, 21219, 21222, 21223, 21224, 21225, 21226, 21233, 21234, 21282, 21238, 21239, 21241, 21242, 21244, 21245, 21247, 21248, 21249, 21250, 21251, 21254, 21255, 21257, 21258, 21260, 21261, 21262, 21263, 21264, 21265, 21269, 21270, 21272, 21273, 21275, 21276, 21278, 21279, 21285, 21287, 21288, 21290, 21291, 21294, 21295, 21469, 21296, 21300, 21301, 21302, 21303, 21304, 21306, 21307, 21308, 21310, 21313, 21316, 21317, 21318, 21319, 21320, 21323, 21325, 21327, 21328, 21329, 21330, 21331, 21332, 21333, 21334, 21336, 21337, 21339, 21340, 21341, 21343, 21344, 21345, 21346, 21347, 21348, 21349, 21350, 21351, 21352, 21355, 21357, 21358, 21359, 21360, 21362, 21364, 21365, 21366, 21367, 21369, 21370, 21371, 21372, 21495, 21373, 21374, 21375, 21380, 21381, 21382, 21383, 21385, 21386, 21388, 21390, 21393, 21395, 21396, 21397, 21398, 21399, 21401, 21402, 21403, 21404, 21405, 21407, 21428, 21411, 21414, 21416, 21417, 21418, 21452, 21420, 21421, 21422, 21423, 21424, 21425, 21426, 21427, 21429, 21432, 21433, 21435, 21437, 21454, 21440, 21441, 21442, 21443, 21444, 21445, 21446, 21447, 21448, 21449, 21451, 21455, 21457, 21458, 21459, 21460, 21461, 21463, 21464, 21465, 21466, 21467, 21472, 21473, 21474, 21475, 21477, 21478, 21479, 21480, 21482, 21483, 21484, 21485, 21486, 21487, 21488, 21489, 21490, 21491, 21493, 21494, 21498, 21499, 21501, 21504, 21508, 21511, 21517, 21524, 21527, 21528, 22469, 21531, 21533, 21535, 21538, 21539, 21654, 21541, 21542, 21543, 21544, 21545, 21547, 21550, 21551, 21680, 21553, 21555, 21556, 21557, 21558, 21559, 21560, 21681, 21563, 21564, 21566, 21568, 21569, 21571, 21575, 21576, 21578, 21580, 21585, 21586, 21587, 21589, 21590, 21593, 22082, 21596, 21599, 21601, 21602, 21738, 21604, 21605, 21608, 21610, 21611, 21612, 21614, 21616, 21619, 21620, 21621, 21623, 21624, 21626, 21628, 21629, 21630, 21631, 21633, 21638, 21641, 21647, 21648, 21650, 21655, 21657, 21659, 21660, 21661, 21662, 21663, 21664, 21665, 22083, 21666, 21667, 21668, 21669, 21670, 21671, 21674, 21676, 21677, 21679, 21685, 21686, 21687, 21689, 21691, 21694, 21695, 21698, 21699, 21700, 21703, 21704, 21706, 21707, 21708, 21709, 21711, 21712, 21716, 21717, 21719, 21720, 21722, 22006, 21726, 21728, 21729, 21730, 21740, 21746, 21747, 21748, 21749, 21786, 21751, 21752, 21754, 21755, 21759, 21760, 21762, 21763, 21764, 21765, 21766, 21768, 21769, 21814, 21770, 21772, 21774, 21775, 21776, 21777, 21779, 21781, 21785, 21789, 21790, 21791, 21794, 21799, 21813, 22120, 21800, 21801, 21802, 21805, 21807, 21809, 21816, 21817, 21819, 21821, 21822, 21823, 21825, 21827, 21828, 21829, 21831, 21832, 21835, 21836, 21837, 21839, 21842, 21843, 21844, 21846, 21847, 21849, 21851, 21852, 21856, 21858, 21860, 21861, 21862, 21863, 21864, 21865, 21869, 21870, 21871, 21872, 21874, 21875, 21876, 21878, 21879, 22122, 21880, 21881, 21882, 21884, 21885, 21886, 21888, 22123, 21891, 21893, 21894, 21895, 21897, 21900, 21902, 21903, 21905, 21906, 21907, 21910, 21911, 21913, 21918, 21919, 21922, 21923, 21924, 21930, 21931, 21932, 21933, 21935, 21936, 21937, 21938, 21939, 21940, 21941, 21942, 21943, 21985, 21945, 21946, 21949, 21951, 21953, 21954, 21955, 21956, 21958, 21959, 21960, 21961, 21963, 21964, 21965, 21966, 21967, 21968, 21970, 21974, 21975, 21977, 21979, 21980, 21982, 21983, 21984, 21989, 21990, 21992, 21996, 21997, 21998, 21999, 22000, 22002, 22008, 22010, 22014, 22017, 22019, 22023, 22058, 22028, 22029, 22030, 22031, 22059, 22042, 22048, 22052, 22053, 22054, 22055, 22056, 22057, 22063, 22065, 22068, 22072, 22073, 22076, 22078, 22080, 22084, 22085, 22087, 22088, 22089, 22091, 22092, 22093, 22094, 22096, 22097, 22099, 22100, 22102, 22106, 22109, 22113, 22116, 22117, 22118, 22119, 22125, 22126, 22127, 22128, 22130, 22132, 22134, 22135, 22136, 22138, 22139, 22141, 22151, 22142, 22143, 22144, 22145, 22148, 22153, 22155, 22156, 22157, 22158, 22161, 22486, 22164, 22165, 22166, 22167, 22168, 22169, 22170, 22171, 22172, 22175, 22177, 22180, 22182, 22183, 22187, 22188, 22189, 22190, 22192, 22194, 22198, 22487, 22203, 22204, 22208, 22219, 22211, 22213, 22214, 22215, 22218, 22221, 22222, 22224, 22225, 22226, 22228, 22230, 22231, 22233, 22234, 22236, 22237, 22240, 22241, 22243, 22244, 22245, 22246, 22248, 22250, 22251, 22252, 22253, 22255, 22256, 22257, 22258, 22259, 22260, 22261, 22262, 22263, 22264, 22265, 22266, 22272, 22274, 22277, 22278, 22279, 22489, 22280, 22283, 22285, 22287, 22288, 22326, 22290, 22292, 22293, 22294, 22295, 22305, 22296, 22300, 22302, 22306, 22310, 22312, 22313, 22314, 22317, 22318, 22319, 22320, 22321, 22322, 22323, 22324, 22330, 22331, 22332, 22334, 22335, 22338, 22339, 22340, 22345, 22346, 22347, 22348, 22350, 22351, 22353, 22354, 22355, 22408, 22356, 22357, 22362, 22363, 22364, 22366, 22368, 22369, 22370, 22377, 22379, 22380, 22381, 22382, 22384, 22389, 22390, 22391, 22392, 22394, 22395, 22396, 22490, 22397, 22399, 22401, 22402, 22403, 22405, 22406, 22491, 22411, 22414, 22417, 22493, 22418, 22419, 22420, 22423, 22424, 22425, 22426, 22427, 22428, 22429, 22431, 22432, 22433, 22434, 22435, 22448, 22436, 22437, 22438, 22440, 22443, 22444, 22445, 22446, 22447, 22451, 22454, 22455, 22456, 22458, 22467, 22468, 22460, 22461, 22463, 22464, 22472, 22473, 22474, 22476, 22478, 22480, 22481, 22482, 22483, 22485, 22498, 22500, 22501, 22502, 22506, 22507, 22509, 22514, 22515, 22520, 22524, 22527, 22529, 22532, 22890, 22537, 22539, 22541, 22543, 22544, 22545, 22547, 22548, 22549, 22550, 22551, 22553, 22554, 22559, 22560, 22561, 22563, 22567, 22568, 22572, 22573, 22574, 22575, 22577, 22579, 22580, 22891, 22582, 22584, 22586, 22588, 22591, 22592, 22595, 22596, 22598, 22599, 22600, 22604, 22606, 22608, 22609, 22610, 22611, 22612, 22613, 22616, 22620, 22621, 22640, 22641, 22674, 22626, 22628, 22629, 22630, 22632, 22633, 22635, 22636, 22638, 22639, 22936, 22643, 22644, 22645, 22646, 22647, 22648, 22649, 22651, 22652, 22653, 22654, 22656, 22657, 22658, 22659, 22661, 22663, 22664, 22665, 22666, 22667, 22668, 22669, 22670, 22672, 22702, 22675, 22677, 22679, 22681, 22682, 22684, 22685, 22686, 22687, 22688, 22689, 22703, 22690, 22691, 22692, 22693, 22694, 22695, 22696, 22697, 22698, 22699, 22700, 22701, 22706, 22709, 22711, 22712, 22713, 22725, 22716, 22717, 22718, 22719, 22721, 22722, 22723, 22726, 22727, 22728, 22730, 22731, 22732, 22733, 22748, 22736, 22737, 22738, 22739, 22740, 22742, 22744, 22745, 22746, 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22756, 22758, 22760, 22762, 22763, 22764, 22765, 22766, 22767, 22768, 22769, 22770, 22772, 22774, 22775, 22776, 22777, 22780, 22781, 22782, 22783, 22784, 22785, 22786, 22793, 22803, 22787, 22788, 22791, 22804, 22794, 22795, 22798, 22799, 22800, 22801, 22802, 22805, 22806, 22808, 22809, 22810, 22811, 22812, 22813, 22814, 22815, 22816, 22818, 22819, 22820, 22821, 22823, 22828, 22831, 22840, 22841, 22847, 22848, 22849, 22850, 22851, 22852, 22856, 22859, 22860, 22861, 22862, 22863, 22864, 22865, 22866, 22867, 22869, 22961, 22872, 22874, 22875, 22877, 22878, 22958, 22879, 22881, 22882, 22883, 22884, 22885, 22887, 22888, 22893, 22895, 22897, 22898, 22902, 22903, 22904, 22905, 22906, 22908, 22909, 22911, 22912, 22913, 22915, 22916, 22917, 22918, 22920, 22922, 22959, 22923, 22924, 22925, 22928, 22935, 22937, 22945, 22957, 22946, 22948, 22949, 22950, 22951, 22953, 22960, 22963, 22964, 22965, 22966, 22968, 22969, 22970, 22971, 22972, 22973, 22974, 22975, 22978, 22979, 22981, 22982, 22984, 22986, 22988, 22989, 22990, 22991, 22992, 22993, 23008, 22996, 22997, 22998, 22999, 23001, 23002, 23006, 23007, 23013, 23014, 23015, 23016, 23017, 23018, 23043, 23024, 23025, 23026, 23027, 23029, 23030, 23031, 23034, 23035, 23038, 23039, 23042, 23047, 23048, 23049, 23050, 23053, 23055, 23056, 23057, 23058, 23059, 23060, 23061, 23063, 23068, 23069, 23070, 23071, 23072, 23073, 23109, 23074, 23075, 23077, 23078, 23080, 23083, 23084, 23087, 23088, 23799, 23089, 23094, 23095, 23096, 23097, 23100, 23101, 23102, 23104, 23107, 23108, 23110, 23112, 23114, 23118, 23121, 23122, 23123, 23124, 23126, 23128, 23129, 23130, 23132, 23134, 23136, 23137, 23139, 23140, 23143, 23144, 23145, 23146, 23147, 23148, 23149, 23151, 23152, 23153, 23860, 23155, 23156, 23157, 23158, 23159, 23160, 23161, 23162, 23163, 23164, 23203, 23166, 23167, 23168, 23169, 23171, 23173, 23177, 23178, 23180, 23181, 23182, 23183, 23204, 23186, 23187, 23188, 23189, 23191, 23192, 23205, 23233, 23201, 23202, 23862, 23206, 23207, 23214, 23215, 23216, 23220, 23221, 23234, 23224, 23226, 23227, 23230, 23232, 23236, 23238, 23240, 23242, 23244, 23245, 23246, 23247, 23250, 23253, 23255, 23256, 23257, 23259, 23260, 23262, 23267, 23269, 23864, 23271, 23272, 23273, 23274, 23277, 23278, 23280, 23282, 23283, 23284, 23285, 23287, 23288, 23305, 23289, 23293, 23306, 23307, 23295, 23297, 23300, 23302, 23308, 23309, 23311, 23312, 23315, 23316, 23317, 23866, 23318, 23320, 23321, 23322, 23323, 23324, 23335, 23800, 23325, 23327, 23331, 23332, 23867, 23338, 23339, 23340, 23345, 23365, 23366, 23346, 23347, 23348, 23350, 23352, 23353, 23354, 23387, 23356, 23357, 23358, 23360, 23363, 23364, 23368, 23369, 23370, 23371, 23372, 23373, 23374, 23375, 23376, 23377, 23378, 23379, 23382, 23383, 23384, 23385, 23388, 23389, 23391, 23393, 23395, 23396, 23397, 23398, 23400, 23402, 23404, 23405, 23406, 23413, 23409, 23411, 23412, 23416, 23417, 23418, 23419, 23420, 23423, 23424, 23426, 23427, 23430, 23431, 23432, 23433, 23434, 23435, 23436, 23438, 23439, 23450, 23441, 23443, 23445, 23447, 23448, 23449, 23451, 23452, 23454, 23455, 23457, 23458, 23459, 23460, 23462, 23465, 23466, 23467, 23468, 23487, 23488, 23469, 23470, 23471, 24077, 23476, 23478, 23482, 23483, 23485, 23489, 23491, 23492, 23495, 24078, 23497, 23498, 23499, 23500, 23501, 23502, 23506, 23507, 23510, 23511, 23512, 23666, 23513, 23514, 23515, 23518, 23519, 23667, 23520, 23521, 23522, 23523, 23524, 23525, 23528, 23540, 23531, 23532, 23533, 23542, 23543, 23544, 23546, 23547, 23548, 23549, 23550, 23552, 23557, 23558, 23559, 23560, 23562, 23577, 23737, 23563, 23564, 23565, 23566, 23568, 23569, 23570, 23572, 23574, 23575, 23738, 23578, 23579, 23580, 23581, 23582, 23586, 23588, 23589, 23590, 23592, 23787, 23594, 23596, 23598, 23600, 23601, 23602, 23607, 23608, 23609, 23610, 23611, 23612, 23788, 23613, 23614, 23615, 23616, 23617, 23619, 23622, 23626, 23627, 23628, 23629, 23630, 23631, 23632, 23633, 23655, 23634, 23635, 23636, 23637, 23638, 23639, 23643, 23644, 23645, 23646, 23647, 23649, 23650, 23652, 23654, 23656, 23657, 23658, 23660, 23661, 23663, 23664, 23665, 23669, 23670, 23671, 23673, 23674, 23675, 23676, 23680, 23681, 23682, 23684, 23686, 23687, 23688, 23689, 23690, 23691, 23692, 23695, 23696, 23697, 23700, 23701, 23704, 23705, 23706, 23708, 23709, 23710, 23711, 23712, 23714, 23716, 23719, 23720, 23721, 23722, 23725, 23727, 23729, 23730, 23731, 23734, 23735, 23736, 23739, 23740, 23741, 23742, 23743, 23744, 23745, 23746, 23748, 23749, 23750, 23751, 23752, 23753, 23754, 23756, 23757, 23758, 23759, 23760, 23761, 23763, 23766, 23767, 23768, 23771, 23772, 23773, 23775, 23777, 23779, 23780, 23782, 23783, 23784, 23785, 23786, 23793, 23794, 23795, 23796, 23797, 23798, 23801, 23803, 23804, 23805, 23809, 23810, 23820, 23811, 23812, 23814, 23815, 23816, 23817, 23818, 23819, 23821, 23822, 23823, 23825, 23826, 23827, 23828, 23829, 23830, 23831, 23832, 23857, 23833, 23834, 23835, 23836, 23837, 23838, 23839, 23841, 23858, 23845, 23846, 23848, 23849, 23850, 23852, 23853, 23854, 23855, 23856, 23868, 23869, 23870, 23872, 23873, 23874, 23875, 23877, 23878, 23879, 23880, 23988, 23882, 23883, 23885, 23886, 23890, 23892, 23893, 23895, 23896, 23897, 23898, 23900, 23901, 24016, 23904, 23906, 23907, 23908, 23912, 23913, 24029, 23914, 23919, 23920, 23922, 23923, 23925, 23928, 23929, 24079, 23930, 23931, 23932, 23934, 23935, 23937, 23938, 23939, 24106, 23940, 23941, 23942, 23943, 23944, 23945, 23949, 23950, 23951, 23952, 23953, 23954, 23955, 23956, 23962, 23963, 23964, 23966, 23968, 23969, 23970, 23971, 23979, 23972, 23973, 23974, 23975, 23976, 23980, 23982, 23983, 23984, 23985, 23986, 23989, 23990, 23991, 23992, 23994, 23995, 23996, 23997, 23999, 24000, 24001, 24002, 24003, 24005, 24006, 24030, 24007, 24008, 24009, 24010, 24012, 24013, 24014, 24015, 24017, 24018, 24019, 24020, 24021, 24022, 24023, 24024, 24025, 24026, 24031, 24032, 24033, 24034, 24035, 24036, 24038, 24039, 24040, 24042, 24043, 24044, 24045, 24046, 24047, 24048, 24049, 24050, 24051, 24052, 24053, 24054, 24056, 24057, 24065, 24058, 24059, 24060, 24061, 24062, 24063, 24064, 24067, 24068, 24069, 24070, 24071, 24072, 24073, 24074, 24075, 24080, 24081, 24082, 24083, 24084, 24085, 24086, 24087, 24088, 24089, 24091, 24092, 24093, 24094, 24097, 24098, 24099, 24100, 24101, 24102, 24103, 24104, 24105]} \ No newline at end of file diff --git a/layup_list/settings.py b/layup_list/settings.py index f224f72..a4e7136 100644 --- a/layup_list/settings.py +++ b/layup_list/settings.py @@ -72,8 +72,12 @@ DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'layuplist', + 'USER': 'lidatong', + 'PASSWORD': os.environ['PASSWORD'], + 'HOST': '127.0.0.1', + 'PORT': '5432', } } DATABASES['default'] = dj_database_url.config() diff --git a/scripts/add_course_offering_to_review.py b/scripts/add_course_offering_to_review.py new file mode 100644 index 0000000..4e91ef6 --- /dev/null +++ b/scripts/add_course_offering_to_review.py @@ -0,0 +1,155 @@ +from __future__ import division, print_function + +import os +import json +import psycopg2 + +from collections import namedtuple +from psycopg2.extras import NamedTupleCursor + + +SELECT_INSTRUCTORS = """ + WITH matches AS ( + SELECT web_review.id AS r_id, + professor, + web_instructor.name, + web_instructor.id AS i_id + FROM web_review + INNER JOIN web_instructor + ON name LIKE SUBSTRING(professor, 0, length(professor)) || '%' + WHERE professor != '' + ) + SELECT matches.r_id, matches.i_id FROM ( + SELECT matches.r_id, + professor, + COUNT(matches.r_id) AS cnt + FROM matches + GROUP BY matches.r_id, professor) AS uniq + INNER JOIN matches + ON matches.r_id = uniq.r_id + WHERE cnt = 1 +""" + +SELECT_REVIEWS = """ + SELECT id, course_id AS c_id, term + FROM web_review; +""" + +SELECT_COURSE_OFFERINGS = """ + SELECT * + FROM web_courseoffering; +""" + +SELECT_COURSE_OFFERING = """ + SELECT id + FROM web_courseoffering + WHERE course_id = %(course_id)s AND term = %(term)s AND period = ''; +""" + +INSERT_COURSE_OFFERING = """ + INSERT INTO web_courseoffering (course_id, term, section, period, created_at, updated_at) + VALUES (%(c_id)s, %(term)s, %(section)s, %(period)s, now(), now()) + RETURNING id; +""" + + +INSERT_CO_INSTRUCTORS = """ + INSERT INTO web_courseoffering_instructors (courseoffering_id, instructor_id) + VALUES (%(co_id)s, %(i_id)s) + RETURNING id; +""" + +UPDATE_REVIEW = """ + UPDATE web_review + SET course_offering_id = (%(co_id)s) + WHERE id = (%(review_id)s) + RETURNING id; +""" + + +def select(cur, query, params=None): + cur.execute(query, params) + return cur + + +def insert(cur, query, params=None): + cur.execute(query, params) + return cur.fetchone()[0] # id of just inserted + + +def update(cur, query, params=None): + cur.execute(query, params) + return cur.fetchone()[0] # id of just inserted + + +def create_review_to_instructor_mapping(cur): + """Returns a mapping from review to instructor for those reviews with a + `professor` field that uniquely matches an instructor name + + *Important note*: this is not guaranteed to be accurate! + + The following is an example where this function can be wrong: Prof. Jane + Austen taught ENGL 1 in 2001, but has left Dartmouth. Prof Jane Albrecht + joined in 2005 and teaches HIST 1. This query will match Jane Albrecht to + Jane A. as the professor who taught ENGL 1 in 2001. + + This issue mainly applies to old reviews for which we only have the data + [First Name] + [Last Initial]. Can potentially be made better by doing dept + checks (but doesn't seem worth it). + """ + rows = select(cur, SELECT_INSTRUCTORS) + return {row.r_id: row.i_id for row in rows} + + +def main(): + conn = psycopg2.connect(os.environ["DATABASE_URL"]) + cur = conn.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor) + review_to_instructor_mapping = create_review_to_instructor_mapping(cur) + + cos = {(row.course_id, row.term) + for row in select(cur, SELECT_COURSE_OFFERINGS)} + new_course_offering_ids = [] + new_course_offering_to_instructor_ids = [] + updated_review_ids = [] + reviews = select(cur, SELECT_REVIEWS).fetchall() + for review in reviews: + if review.id not in review_to_instructor_mapping: + continue + + print("*********") + print("[review id]", review.id) + if (review.c_id, review.term) not in cos: + print("[adding new row to course offering]", review.c_id, review.term) + params = {"c_id": review.c_id, "term": review.term, "section": 1, "period": ""} + new_co_id = insert(cur, INSERT_COURSE_OFFERING, params) + print("[new_co_id]", new_co_id) + new_course_offering_ids.append(new_co_id) + cos.add((review.c_id, review.term)) + + instructor_id = review_to_instructor_mapping[review.id] + print("[adding new row to co_to_instructor]", instructor_id) + params = {"co_id": new_co_id, "i_id": instructor_id} + new_co_to_i_id = insert(cur, INSERT_CO_INSTRUCTORS, params) + print("[new_co_to_i_id]", new_co_to_i_id) + new_course_offering_to_instructor_ids.append(new_co_to_i_id) + + co_id = new_co_id + else: + params = {"course_id": review.c_id, "term": review.term} + co_id = select(cur, SELECT_COURSE_OFFERING, params).fetchone().id + + params = {"co_id": co_id, "review_id": review.id} + print("[updating review's course offering]", review.id, co_id) + updated_review_id = update(cur, UPDATE_REVIEW, params) + updated_review_ids.append(updated_review_id) + + blob = {"new_course_offering_ids": new_course_offering_ids, + "new_co_to_i_id": new_course_offering_to_instructor_ids, + "updated_review_ids": updated_review_ids} + + with open("blob.json", "w") as blob_file: + json.dump(blob, blob_file) + + +if __name__ == '__main__': + main()