Index: src_plugins/io_hyp/hyp_l.c =================================================================== --- src_plugins/io_hyp/hyp_l.c (revision 8646) +++ src_plugins/io_hyp/hyp_l.c (revision 8647) @@ -495,8 +495,8 @@ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 137 -#define YY_END_OF_BUFFER 138 +#define YY_NUM_RULES 138 +#define YY_END_OF_BUFFER 139 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -504,88 +504,105 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_acclist[696] = +static yyconst flex_int16_t yy_acclist[856] = { 0, - 1, 1, 138, 134, 136, 137, 4, 136, 137, 5, - 137, 5, 136, 137, 136, 137, 130, 136, 137, 131, - 136, 137, 134, 136, 137, 132, 134, 136, 137, 134, - 136, 137, 108, 134, 136, 137, 133, 136, 137, 20, - 134, 136, 137, 134, 136, 137, 134, 136, 137, 134, - 136, 137, 134, 136, 137, 134, 136, 137, 134, 136, - 137, 134, 136, 137, 134, 136, 137, 30, 134, 136, - 137, 31, 134, 136, 137, 134, 136, 137, 134, 136, - 137, 134, 136, 137, 42, 134, 136, 137, 43, 134, - 136, 137, 134, 136, 137, 134, 136, 137, 134, 136, + 1, 1, 139, 135, 137, 138, 4, 137, 138, 5, + 138, 5, 137, 138, 137, 138, 131, 137, 138, 132, + 137, 138, 135, 137, 138, 133, 135, 137, 138, 135, + 137, 138, 108, 135, 137, 138, 134, 137, 138, 20, + 135, 137, 138, 135, 137, 138, 135, 137, 138, 135, + 137, 138, 135, 137, 138, 135, 137, 138, 135, 137, + 138, 135, 137, 138, 135, 137, 138, 30, 135, 137, + 138, 31, 135, 137, 138, 135, 137, 138, 135, 137, + 138, 135, 137, 138, 42, 135, 137, 138, 43, 135, + 137, 138, 135, 137, 138, 135, 137, 138, 135, 137, - 137, 134, 136, 137, 134, 136, 137, 134, 136, 137, - 134, 136, 137, 134, 136, 137, 128, 136, 137, 129, - 136, 137, 134, 136, 137, 127, 131, 136, 137, 134, - 136, 137, 127, 129, 136, 137, 126, 134, 136, 137, - 134, 136, 137, 134, 136, 137, 125, 134, 136, 137, - 1, 134, 136, 137, 1, 4, 136, 137, 1, 5, - 137, 1, 5, 136, 137, 1, 136, 137, 1, 130, - 136, 137, 1, 131, 136, 137, 1, 132, 134, 136, - 137, 1, 133, 136, 137, 1, 128, 136, 137, 1, - 134, 136, 137, 134, 136, 137, 4, 136, 137, 2, + 138, 135, 137, 138, 135, 137, 138, 135, 137, 138, + 135, 137, 138, 135, 137, 138, 129, 137, 138, 130, + 137, 138, 135, 137, 138, 128, 135, 137, 138, 4, + 137, 138, 4, 128, 137, 138, 127, 132, 137, 138, + 127, 130, 137, 138, 128, 135, 137, 138, 126, 135, + 137, 138, 135, 137, 138, 135, 137, 138, 125, 135, + 137, 138, 1, 135, 137, 138, 1, 4, 137, 138, + 1, 5, 138, 1, 5, 137, 138, 1, 137, 138, + 1, 131, 137, 138, 1, 132, 137, 138, 1, 133, + 135, 137, 138, 1, 134, 137, 138, 1, 129, 137, - 5, 137, 2, 5, 136, 137, 136, 137, 130, 136, - 137, 131, 136, 137, 132, 134, 136, 137, 133, 136, - 137, 128, 136, 137, 129, 136, 137, 134, 136, 137, - 134, 4, 5, 135, 134, 108, 134, 108, 134, 108, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 53, 134, 134, 134, 57, 134, 134, 134, 60, 134, - 134, 134, 134, 134, 62, 134, 134, 134, 134, 64, - 134, 134, 134, 134, 69, 134, 70, 134, 134, 107, - 134, 134, 72, 134, 134, 134, 134, 134, 134, 134, + 138, 1, 135, 137, 138, 135, 137, 138, 4, 137, + 138, 2, 5, 138, 2, 5, 137, 138, 137, 138, + 131, 137, 138, 132, 137, 138, 133, 135, 137, 138, + 134, 137, 138, 129, 137, 138, 130, 137, 138, 135, + 137, 138, 135, 4, 5, 136, 135, 108, 135, 108, + 135, 108, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 53, 135, 135, 135, 57, 135, 135, 135, + 60, 135, 135, 135, 135, 135, 62, 135, 135, 135, + 135, 64, 135, 135, 135, 135, 69, 135, 70, 135, - 134, 76, 134, 134, 134, 78, 134, 134, 134, 134, - 134, 134, 87, 134, 134, 134, 90, 134, 134, 134, - 134, 93, 134, 134, 134, 94, 134, 134, 134, 98, - 134, 134, 102, 134, 134, 134, 134, 3, 134, 127, - 126, 134, 134, 125, 134, 125, 134, 125, 134, 134, - 1, 134, 1, 1, 4, 1, 5, 1, 1, 135, - 1, 134, 1, 1, 3, 134, 2, 4, 2, 5, - 2, 135, 134, 2, 3, 108, 134, 111, 134, 108, - 134, 134, 121, 134, 114, 134, 116, 134, 115, 134, - 119, 134, 112, 120, 134, 113, 134, 118, 134, 109, + 135, 107, 135, 135, 72, 135, 135, 135, 135, 135, + 135, 135, 135, 76, 135, 135, 135, 78, 135, 135, + 135, 135, 135, 135, 87, 135, 135, 135, 90, 135, + 135, 135, 135, 93, 135, 135, 135, 94, 135, 135, + 135, 98, 135, 135, 102, 135, 135, 135, 135, 3, + 128, 135, 128, 128, 4, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 135, 128, 126, 135, 135, 125, + 135, 125, 135, 125, 135, 135, 1, 135, 1, 1, + 4, 1, 5, 1, 1, 136, 1, 1, 135, 1, - 134, 110, 134, 122, 134, 117, 134, 120, 134, 124, - 134, 123, 134, 54, 55, 21, 134, 134, 56, 58, - 134, 134, 134, 134, 134, 134, 134, 18, 134, 134, - 61, 63, 19, 134, 65, 66, 134, 134, 134, 68, - 134, 134, 16, 134, 134, 33, 134, 134, 36, 134, - 134, 134, 134, 134, 134, 75, 134, 81, 134, 134, - 84, 134, 134, 44, 134, 134, 134, 134, 134, 79, - 80, 88, 134, 134, 91, 134, 134, 51, 134, 134, - 95, 96, 97, 99, 100, 101, 106, 134, 103, 134, - 105, 125, 134, 134, 125, 134, 134, 134, 59, 134, + 1, 3, 135, 2, 4, 2, 5, 2, 136, 135, + 2, 3, 135, 108, 135, 111, 135, 108, 135, 135, + 121, 135, 114, 135, 116, 135, 115, 135, 119, 135, + 112, 120, 135, 113, 135, 118, 135, 109, 135, 110, + 135, 122, 135, 117, 135, 120, 135, 124, 135, 123, + 135, 54, 55, 21, 135, 135, 56, 58, 135, 135, + 135, 135, 135, 135, 135, 18, 135, 135, 61, 63, + 19, 135, 65, 66, 135, 135, 135, 68, 135, 135, + 16, 135, 135, 33, 135, 135, 36, 135, 135, 135, + 135, 135, 135, 75, 135, 81, 135, 135, 84, 135, - 134, 134, 134, 134, 134, 134, 134, 28, 134, 67, - 134, 134, 134, 134, 134, 134, 73, 134, 134, 41, - 134, 74, 77, 82, 83, 85, 86, 134, 134, 134, - 134, 134, 134, 50, 134, 134, 92, 134, 134, 134, - 11, 134, 134, 23, 134, 134, 134, 134, 134, 134, - 134, 134, 71, 134, 134, 134, 134, 37, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 9, - 134, 134, 134, 134, 104, 134, 22, 134, 134, 134, - 134, 134, 134, 27, 134, 29, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 45, 134, 134, 134, 48, + 135, 44, 135, 135, 135, 135, 135, 79, 80, 88, + 135, 135, 91, 135, 135, 51, 135, 135, 95, 96, + 97, 99, 100, 101, 106, 135, 103, 135, 105, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 127, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 125, 135, 135, 125, + 135, 1, 135, 135, 135, 135, 59, 135, 135, 135, + 135, 135, 135, 135, 135, 28, 135, 67, 135, 135, - 134, 134, 134, 134, 134, 134, 52, 134, 134, 134, - 134, 13, 134, 134, 26, 134, 134, 32, 134, 134, - 134, 134, 38, 134, 134, 134, 134, 134, 49, 134, - 12, 134, 134, 134, 7, 134, 134, 134, 24, 134, - 134, 134, 15, 134, 134, 134, 39, 134, 40, 134, - 134, 47, 134, 14, 134, 134, 134, 8, 134, 134, - 17, 134, 134, 10, 134, 134, 134, 6, 134, 25, - 134, 134, 46, 134, 134, 134, 134, 134, 134, 134, - 134, 34, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 35, 134, 134, 89 + 135, 135, 135, 135, 73, 135, 135, 41, 135, 74, + 77, 82, 83, 85, 86, 135, 135, 135, 135, 135, + 135, 50, 135, 135, 92, 135, 135, 135, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 11, 135, 135, 23, 135, + 135, 135, 135, 135, 135, 135, 135, 71, 135, 135, + 135, 135, 37, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 9, 135, 135, 135, 135, 104, + 128, 128, 128, 128, 128, 128, 128, 135, 22, 135, + 135, 135, 135, 135, 135, 27, 135, 29, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 45, 135, 135, + 135, 48, 135, 135, 135, 135, 135, 135, 52, 135, + 128, 128, 128, 135, 135, 135, 13, 135, 135, 26, + 135, 135, 32, 135, 135, 135, 135, 38, 135, 135, + 135, 135, 135, 49, 135, 12, 135, 135, 135, 7, + 135, 128, 128, 128, 135, 135, 24, 135, 135, 135, + 15, 135, 135, 135, 39, 135, 40, 135, 135, 47, + 135, 14, 135, 135, 128, 128, 128, 135, 8, 135, + 135, 17, 135, 135, 10, 135, 135, 135, 128, 128, + + 128, 6, 135, 25, 135, 135, 46, 135, 135, 128, + 128, 128, 135, 135, 135, 128, 128, 128, 135, 135, + 135, 128, 128, 128, 34, 135, 135, 135, 128, 128, + 128, 135, 135, 128, 128, 128, 135, 135, 128, 128, + 128, 135, 135, 128, 128, 128, 35, 135, 135, 128, + 128, 128, 89, 128, 128 } ; -static yyconst flex_int16_t yy_accept[578] = +static yyconst flex_int16_t yy_accept[770] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 4, 7, 10, 12, 15, 17, 20, @@ -592,64 +609,85 @@ 23, 26, 30, 33, 37, 40, 44, 47, 50, 53, 56, 59, 62, 65, 68, 72, 76, 79, 82, 85, 89, 93, 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 130, 133, 137, 141, 144, 147, 151, - 155, 159, 162, 166, 169, 173, 177, 182, 186, 190, - 194, 197, 200, 203, 207, 209, 212, 215, 219, 222, - 225, 228, 231, 232, 233, 234, 234, 235, 236, 238, - 240, 240, 242, 243, 244, 245, 246, 247, 248, 249, + 120, 123, 126, 130, 133, 137, 141, 145, 149, 153, + 156, 159, 163, 167, 171, 174, 178, 181, 185, 189, + 194, 198, 202, 206, 209, 212, 215, 219, 221, 224, + 227, 231, 234, 237, 240, 243, 244, 245, 246, 246, + 247, 247, 248, 250, 252, 252, 254, 255, 256, 257, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 259, 260, 261, 262, 263, 264, 265, 265, 266, 267, - 268, 269, 269, 270, 271, 272, 273, 274, 275, 275, - 276, 277, 278, 278, 279, 280, 281, 282, 283, 284, - 285, 285, 286, 287, 287, 288, 289, 290, 292, 293, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 302, 303, 304, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 313, 314, 315, 316, 317, 317, 318, - 319, 320, 321, 322, 322, 323, 324, 324, 325, 326, - 327, 328, 328, 329, 330, 331, 332, 333, 333, 334, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 271, 272, 273, 274, 275, 276, + 277, 277, 278, 279, 280, 281, 281, 282, 283, 284, + 285, 286, 287, 287, 288, 289, 290, 290, 291, 292, + 293, 294, 295, 296, 297, 297, 298, 299, 299, 300, + 301, 302, 304, 305, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 314, 315, 316, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 325, 326, 327, + 328, 329, 329, 330, 331, 332, 333, 334, 334, 335, + 336, 336, 337, 338, 339, 340, 340, 341, 342, 343, - 335, 336, 337, 338, 338, 339, 339, 340, 341, 343, - 344, 346, 348, 350, 351, 353, 354, 356, 358, 359, - 361, 363, 364, 366, 367, 367, 368, 369, 371, 371, - 372, 373, 374, 374, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 378, 379, 380, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 414, 415, 415, 416, - 418, 419, 419, 420, 420, 421, 422, 423, 424, 425, + 344, 345, 345, 346, 347, 348, 349, 350, 350, 351, + 353, 354, 354, 354, 354, 354, 354, 354, 354, 354, + 354, 354, 354, 354, 354, 354, 354, 354, 354, 355, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 376, 377, + 379, 380, 382, 384, 386, 387, 389, 390, 392, 394, + 395, 397, 398, 400, 401, 403, 404, 404, 405, 406, + 408, 408, 409, 410, 410, 411, 411, 413, 414, 414, + 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 414, 414, 414, 416, 417, 418, 420, 421, - 426, 427, 428, 430, 431, 431, 432, 432, 433, 435, - 435, 436, 436, 437, 438, 439, 440, 440, 441, 442, - 443, 445, 446, 448, 449, 451, 452, 453, 454, 455, - 456, 456, 457, 458, 458, 459, 460, 461, 461, 462, - 463, 464, 466, 467, 468, 469, 470, 470, 471, 471, - 472, 472, 473, 474, 475, 475, 476, 477, 478, 480, - 481, 481, 482, 482, 483, 483, 484, 484, 485, 485, - 486, 486, 487, 489, 489, 490, 491, 491, 492, 494, - 495, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 498, 499, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 452, 453, 453, 454, 456, 457, 457, 458, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 468, 469, 469, + 470, 470, 471, 473, 473, 474, 474, 475, 476, 477, + 478, 478, 479, 480, 481, 483, 484, 486, 487, 489, + 490, 491, 492, 493, 494, 494, 495, 496, 496, 497, + 498, 499, 499, 500, 501, 502, 504, 505, 506, 507, + 508, 508, 509, 509, 510, 510, 511, 512, 513, 513, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 510, 510, 511, 512, 513, 514, 515, 516, 517, 517, - 518, 519, 520, 522, 522, 523, 523, 524, 524, 525, - 525, 526, 526, 527, 527, 528, 529, 530, 531, 532, - 533, 534, 536, 537, 537, 538, 539, 540, 541, 543, - 544, 546, 547, 548, 549, 550, 551, 552, 553, 553, - 554, 555, 556, 557, 558, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 572, 573, 574, 575, - 575, 576, 577, 579, 580, 581, 582, 583, 584, 586, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 598, + 514, 515, 516, 518, 519, 519, 520, 520, 521, 521, + 522, 522, 523, 523, 524, 524, 525, 527, 527, 528, + 529, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, + 548, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 579, 580, 582, 584, 585, 585, 585, 585, 585, + 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, - 599, 600, 602, 603, 604, 605, 606, 607, 609, 610, - 611, 612, 614, 615, 617, 618, 620, 621, 622, 623, - 625, 626, 627, 628, 629, 631, 633, 634, 635, 637, - 638, 639, 641, 642, 643, 645, 646, 647, 649, 651, - 652, 654, 656, 657, 658, 660, 661, 663, 664, 666, - 667, 668, 670, 672, 673, 675, 676, 677, 678, 679, - 680, 681, 682, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 694, 695, 695, 696, 696 + 585, 585, 586, 587, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 598, 598, 599, 600, 601, 602, + 603, 604, 605, 605, 606, 607, 608, 610, 610, 611, + 611, 612, 612, 613, 613, 614, 614, 615, 615, 616, + 617, 618, 619, 620, 621, 622, 624, 625, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 641, 641, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 658, 659, 661, 662, 663, 664, 665, + 666, 667, 668, 668, 669, 670, 671, 672, 673, 675, + + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 687, 688, 689, 690, 690, 691, 692, 693, 694, 694, + 695, 696, 697, 698, 699, 701, 702, 703, 704, 705, + 706, 708, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 720, 721, 722, 724, 725, 726, 727, 728, 729, + 731, 732, 732, 733, 734, 735, 736, 737, 739, 740, + 742, 743, 745, 746, 747, 748, 750, 751, 752, 753, + 754, 756, 758, 759, 760, 762, 763, 763, 764, 765, + 766, 767, 769, 770, 771, 773, 774, 775, 777, 779, + 780, 782, 784, 785, 786, 786, 787, 788, 789, 791, + + 792, 794, 795, 797, 798, 799, 800, 800, 801, 802, + 804, 806, 807, 809, 810, 811, 811, 812, 813, 814, + 815, 816, 817, 817, 818, 819, 820, 821, 822, 823, + 823, 824, 825, 827, 828, 829, 830, 830, 831, 832, + 833, 834, 835, 835, 836, 837, 838, 839, 840, 840, + 841, 842, 843, 844, 845, 845, 846, 847, 849, 850, + 851, 851, 852, 853, 853, 854, 855, 856, 856 } ; static yyconst flex_int32_t yy_ec[256] = @@ -657,16 +695,16 @@ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 5, 1, 1, 1, 1, 1, 6, - 7, 8, 9, 10, 9, 11, 1, 12, 13, 14, - 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, - 15, 1, 16, 1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 1, 1, 1, 1, 42, 1, 43, 44, 44, 44, + 1, 5, 1, 6, 1, 1, 1, 1, 1, 7, + 8, 9, 10, 11, 10, 12, 1, 13, 14, 15, + 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, + 16, 1, 17, 1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 27, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 1, 1, 1, 1, 43, 1, 44, 27, 27, 27, - 45, 46, 44, 44, 44, 44, 47, 44, 48, 49, - 50, 51, 44, 44, 52, 44, 53, 44, 44, 44, + 45, 46, 27, 27, 27, 27, 47, 27, 48, 49, + 50, 51, 27, 27, 52, 27, 53, 27, 27, 27, 54, 55, 56, 1, 57, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -686,501 +724,721 @@ static yyconst flex_int32_t yy_meta[58] = { 0, - 1, 2, 3, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 1, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 4, 6 + 1, 2, 3, 4, 5, 4, 4, 4, 1, 1, + 6, 1, 7, 7, 7, 8, 1, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 1, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 4, 10 } ; -static yyconst flex_int16_t yy_base[642] = +static yyconst flex_int16_t yy_base[876] = { 0, - 0, 1102, 57, 1101, 113, 169, 121, 127, 225, 281, - 337, 393, 1107, 0, 1097, 118, 139, 1093, 2955, 2955, - 133, 0, 136, 450, 2955, 152, 120, 176, 178, 122, - 122, 1077, 1075, 231, 185, 187, 1063, 504, 194, 537, - 186, 126, 222, 195, 240, 255, 234, 1041, 1045, 2955, - 2955, 576, 2955, 633, 2955, 145, 150, 207, 281, 301, - 1087, 210, 219, 255, 0, 0, 315, 0, 0, 687, - 743, 275, 247, 261, 294, 297, 306, 799, 310, 320, - 324, 855, 0, 1086, 328, 1082, 1081, 321, 0, 337, - 911, 342, 966, 1008, 1050, 1092, 1134, 1176, 1218, 1260, + 0, 1931, 56, 112, 168, 224, 56, 63, 280, 336, + 392, 448, 1936, 0, 77, 77, 80, 1929, 0, 4505, + 73, 0, 76, 505, 4505, 90, 62, 120, 124, 66, + 125, 1913, 1911, 559, 129, 175, 1899, 594, 133, 628, + 142, 67, 183, 190, 239, 246, 218, 1881, 1885, 4505, + 4505, 668, 88, 724, 766, 4505, 4505, 820, 94, 151, + 146, 257, 876, 151, 107, 129, 207, 932, 0, 987, + 0, 0, 1042, 1098, 212, 183, 186, 215, 1155, 199, + 1211, 239, 242, 246, 1267, 0, 206, 270, 1923, 1922, + 1919, 262, 0, 280, 1323, 285, 1378, 1421, 1464, 1507, - 1302, 1344, 1386, 1428, 349, 1470, 1512, 1554, 1596, 196, - 246, 265, 2955, 1066, 1067, 344, 358, 2955, 362, 313, - 1050, 363, 2955, 1047, 236, 1060, 346, 365, 366, 2955, - 368, 1040, 370, 372, 373, 2955, 1049, 1048, 1043, 374, - 377, 2955, 1041, 389, 2955, 1046, 1039, 0, 1038, 400, - 2955, 1052, 1038, 1040, 1046, 1051, 158, 1051, 403, 404, - 2955, 1043, 405, 407, 414, 2955, 1034, 361, 1039, 1023, - 408, 409, 410, 2955, 411, 1029, 1032, 412, 2955, 415, - 1021, 1015, 1030, 419, 2955, 1021, 426, 429, 430, 2955, - 433, 440, 441, 505, 2955, 507, 1011, 508, 2955, 509, + 1550, 1593, 1636, 1679, 1722, 1765, 1808, 1851, 291, 1894, + 1937, 1980, 2023, 305, 306, 307, 4505, 1906, 1907, 311, + 312, 4505, 313, 161, 1890, 330, 4505, 1887, 65, 1900, + 309, 346, 348, 4505, 352, 1880, 353, 354, 358, 4505, + 1889, 1888, 1883, 370, 371, 4505, 1881, 375, 4505, 1886, + 1879, 0, 1878, 399, 4505, 1892, 1878, 1879, 1878, 1883, + 167, 1883, 400, 404, 4505, 1875, 405, 420, 422, 4505, + 1873, 124, 1875, 1859, 412, 421, 427, 4505, 428, 1865, + 1868, 429, 4505, 463, 1860, 1854, 1869, 464, 4505, 1860, + 465, 469, 470, 4505, 471, 486, 487, 492, 4505, 493, - 511, 992, 1637, 433, 435, 512, 0, 2955, 503, 528, - 542, 547, 553, 534, 701, 0, 1041, 530, 566, 1037, - 1693, 581, 541, 1749, 585, 590, 593, 596, 598, 601, - 604, 1805, 607, 609, 1039, 1038, 1037, 1036, 1035, 1034, - 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, - 1862, 1023, 602, 697, 1917, 1021, 1959, 1013, 2001, 1012, - 2043, 1011, 2085, 1010, 2127, 1009, 2169, 1005, 2211, 1004, - 2253, 1003, 2295, 1002, 2337, 1001, 2379, 1000, 2421, 999, - 2463, 998, 2505, 997, 2547, 534, 2955, 555, 2955, 0, - 965, 615, 2955, 616, 2955, 622, 965, 959, 978, 977, + 1850, 560, 4505, 561, 566, 1832, 2065, 286, 316, 247, + 2122, 310, 1849, 349, 1866, 1847, 1859, 564, 247, 355, + 345, 573, 123, 1844, 395, 426, 587, 461, 2160, 329, + 468, 1844, 574, 1861, 1842, 1854, 603, 366, 570, 363, + 637, 419, 1839, 495, 641, 665, 592, 2201, 2258, 632, + 645, 674, 677, 687, 693, 2314, 0, 491, 415, 660, + 1867, 2370, 2425, 637, 566, 2481, 590, 621, 708, 631, + 712, 717, 724, 2538, 2594, 634, 645, 4505, 693, 729, + 731, 733, 735, 746, 747, 767, 768, 772, 827, 828, + 832, 833, 837, 838, 2651, 839, 832, 840, 2706, 846, - 968, 964, 0, 963, 624, 2955, 625, 2955, 0, 697, - 2955, 698, 2955, 967, 968, 699, 713, 2955, 955, 966, - 944, 960, 950, 958, 0, 715, 951, 933, 939, 717, - 718, 2955, 719, 720, 2955, 721, 722, 723, 2955, 724, - 725, 0, 941, 283, 951, 937, 739, 2955, 749, 2955, - 750, 2955, 928, 730, 753, 2955, 754, 927, 0, 933, - 758, 2955, 759, 2955, 760, 2955, 761, 2955, 764, 2955, - 765, 2955, 0, 768, 2955, 925, 769, 2955, 773, 607, - 683, 951, 948, 947, 946, 943, 942, 940, 937, 935, - 934, 933, 929, 928, 927, 926, 925, 2589, 906, 775, + 2749, 847, 2792, 854, 2835, 855, 2878, 856, 2921, 861, + 2964, 862, 3007, 863, 3050, 867, 3093, 868, 3136, 869, + 3179, 884, 3222, 885, 3265, 886, 3308, 891, 3351, 892, + 4505, 893, 4505, 0, 1838, 897, 4505, 898, 4505, 899, + 1838, 1832, 1851, 1849, 1833, 1829, 0, 1828, 905, 4505, + 914, 4505, 0, 915, 4505, 945, 4505, 1831, 1832, 949, + 950, 4505, 1816, 1827, 1805, 1821, 1811, 1819, 0, 951, + 1813, 1802, 1808, 955, 957, 4505, 967, 980, 4505, 982, + 995, 997, 4505, 999, 1003, 0, 1810, 345, 1820, 1806, + 1004, 4505, 1005, 4505, 1012, 4505, 1802, 881, 1020, 4505, - 2955, 904, 903, 881, 897, 902, 899, 894, 883, 0, - 776, 2955, 892, 780, 897, 884, 879, 881, 794, 2955, - 888, 770, 0, 795, 2955, 806, 2955, 809, 2955, 810, - 2955, 811, 2955, 813, 2955, 891, 879, 798, 879, 877, - 870, 0, 883, 815, 2955, 877, 877, 817, 858, 866, - 0, 869, 869, 875, 876, 860, 869, 873, 818, 2955, - 863, 860, 872, 867, 845, 855, 860, 853, 855, 857, - 850, 850, 843, 842, 852, 0, 851, 844, 839, 820, - 2955, 851, 0, 841, 850, 835, 833, 843, 0, 0, - 849, 831, 845, 828, 820, 823, 822, 826, 0, 828, + 1021, 1802, 0, 1812, 1022, 4505, 1037, 4505, 1049, 4505, + 1050, 4505, 1054, 4505, 1055, 4505, 0, 1059, 4505, 1804, + 1067, 4505, 913, 1057, 1062, 251, 1058, 958, 1102, 907, + 1092, 1013, 1071, 677, 1105, 1072, 1108, 1127, 1163, 4505, + 1817, 1798, 1802, 1807, 1813, 1806, 1000, 1093, 1806, 1798, + 593, 1079, 1114, 1120, 1164, 1165, 1168, 1169, 1181, 1171, + 1178, 1173, 3393, 3449, 1189, 1211, 690, 1215, 1130, 944, + 1016, 1218, 1186, 1220, 1222, 1224, 1230, 1806, 1804, 1248, + 1243, 1067, 1265, 0, 942, 976, 1194, 1249, 1279, 1280, + 1284, 1288, 1289, 1290, 1294, 1295, 1296, 1300, 1301, 1302, - 814, 0, 813, 815, 825, 824, 813, 0, 817, 821, - 819, 0, 805, 0, 803, 0, 809, 813, 771, 0, - 768, 768, 756, 735, 0, 0, 697, 687, 0, 670, - 615, 0, 604, 594, 0, 592, 590, 0, 0, 569, - 0, 0, 564, 554, 0, 545, 0, 486, 0, 498, - 481, 0, 0, 200, 0, 475, 432, 436, 398, 414, - 363, 353, 0, 307, 290, 269, 240, 211, 173, 133, - 103, 0, 825, 829, 2955, 2955, 2631, 2637, 2643, 2649, - 2654, 2660, 2666, 2671, 2676, 2682, 2688, 2694, 2700, 2706, - 2712, 2717, 2722, 2727, 2732, 2737, 2742, 2747, 2752, 2757, + 1306, 3506, 1795, 1310, 4505, 1793, 1792, 1768, 1781, 1786, + 1782, 1777, 1766, 0, 1311, 4505, 1775, 1315, 1778, 1765, + 1760, 1765, 1316, 4505, 1772, 1226, 0, 1317, 4505, 1332, + 4505, 1333, 4505, 1334, 4505, 1339, 4505, 1380, 4505, 1775, + 1744, 1349, 1744, 1735, 1728, 0, 1741, 1392, 4505, 1734, + 1727, 1396, 4505, 1394, 1368, 1397, 1400, 1401, 1423, 1404, + 1409, 1432, 1424, 1436, 1720, 1697, 1695, 1446, 1132, 1451, + 1029, 1469, 1445, 1473, 1476, 1479, 1483, 1487, 1490, 1518, + 1527, 1522, 1678, 1683, 0, 1686, 1681, 1683, 1684, 1666, + 1653, 1656, 1509, 4505, 1625, 1609, 1621, 1609, 1587, 1587, - 2762, 2767, 2772, 2777, 2782, 2787, 2792, 2798, 2804, 2809, - 2813, 2817, 2821, 2825, 2829, 2833, 2837, 2841, 2845, 2849, - 2853, 2857, 2861, 2865, 2869, 2874, 2879, 2884, 2889, 2894, - 2899, 2904, 2909, 2914, 2919, 2924, 2929, 2934, 2939, 2944, - 2949 + 1566, 1557, 1540, 1528, 1516, 1515, 1508, 1502, 1503, 0, + 1497, 1481, 1474, 1533, 4505, 1552, 1399, 1542, 1451, 1561, + 1556, 1569, 1565, 1448, 0, 1438, 1441, 1422, 1419, 1422, + 0, 0, 1425, 1384, 1387, 1364, 1351, 1335, 1332, 1336, + 0, 1338, 1321, 0, 1316, 1310, 1320, 1308, 1283, 0, + 1570, 1284, 1571, 1599, 1283, 1255, 1245, 0, 1207, 0, + 1189, 0, 1192, 1184, 1168, 0, 1155, 1132, 1126, 1114, + 0, 0, 1096, 1086, 0, 1583, 1093, 1595, 1607, 1064, + 1046, 0, 986, 951, 0, 942, 937, 0, 0, 946, + 0, 0, 941, 1613, 915, 1510, 1610, 904, 0, 902, + + 0, 868, 0, 885, 843, 1585, 827, 1611, 1628, 0, + 0, 549, 0, 748, 1647, 724, 1650, 1642, 707, 717, + 671, 1667, 649, 1324, 1645, 647, 638, 602, 1669, 584, + 1657, 1653, 0, 581, 550, 1659, 491, 1681, 1698, 479, + 463, 1690, 327, 1693, 1714, 272, 260, 1703, 200, 442, + 1731, 186, 169, 1702, 149, 1738, 1735, 0, 1753, 1743, + 45, 1752, 1769, 1784, 4505, 1783, 1776, 4505, 3549, 3559, + 3569, 3579, 3589, 3598, 3602, 3611, 3621, 3630, 3640, 3649, + 3658, 3668, 3677, 3687, 3697, 3707, 3717, 3727, 3737, 3746, + 3755, 3764, 3773, 3782, 3791, 3800, 3809, 3818, 3827, 3836, + + 3845, 3854, 3863, 3872, 3881, 3891, 3901, 3910, 3920, 3929, + 3938, 3948, 3957, 3967, 3977, 3987, 3997, 4007, 4017, 4027, + 4037, 4046, 4054, 4062, 4070, 4078, 4086, 4094, 4102, 4110, + 4118, 4126, 4134, 4142, 4150, 4158, 4166, 4175, 4184, 4193, + 4202, 4211, 4220, 4229, 4238, 4247, 4256, 4265, 4274, 4283, + 4292, 4301, 4310, 4319, 4328, 4338, 4347, 4356, 4364, 4372, + 4380, 4388, 4396, 4404, 4412, 4420, 4428, 4436, 4444, 4452, + 4460, 4468, 4476, 4485, 4494 } ; -static yyconst flex_int16_t yy_def[642] = +static yyconst flex_int16_t yy_def[876] = { 0, - 576, 1, 576, 3, 577, 577, 6, 6, 578, 578, - 579, 579, 576, 580, 576, 576, 576, 581, 576, 576, - 580, 580, 580, 576, 576, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 576, - 576, 582, 576, 576, 576, 580, 580, 580, 580, 583, - 584, 584, 584, 585, 584, 584, 583, 584, 584, 586, - 587, 588, 576, 576, 589, 588, 588, 587, 588, 588, - 588, 590, 580, 576, 576, 581, 576, 580, 24, 24, - 576, 24, 591, 592, 593, 594, 595, 596, 597, 598, + 768, 1, 769, 769, 770, 770, 6, 6, 771, 771, + 772, 772, 768, 773, 768, 768, 768, 774, 775, 768, + 773, 773, 773, 768, 768, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 768, + 768, 776, 777, 768, 768, 768, 768, 778, 773, 773, + 773, 773, 779, 780, 780, 780, 781, 782, 780, 779, + 780, 780, 783, 784, 785, 768, 768, 786, 787, 785, + 784, 785, 785, 785, 788, 773, 768, 768, 774, 768, + 775, 773, 24, 24, 768, 24, 789, 790, 791, 792, - 599, 600, 601, 602, 580, 603, 604, 605, 606, 576, - 580, 580, 576, 580, 580, 580, 576, 576, 580, 580, - 580, 576, 576, 580, 580, 580, 580, 580, 576, 576, - 580, 580, 576, 580, 580, 576, 580, 580, 580, 580, - 576, 576, 580, 576, 576, 580, 580, 580, 580, 576, - 576, 580, 580, 580, 580, 580, 580, 580, 580, 576, - 576, 580, 576, 580, 580, 576, 580, 580, 580, 580, - 580, 580, 576, 576, 580, 580, 580, 576, 576, 580, - 580, 580, 580, 576, 576, 580, 576, 580, 580, 576, - 580, 576, 580, 580, 576, 580, 580, 576, 576, 580, + 793, 794, 795, 796, 797, 798, 799, 800, 773, 801, + 802, 803, 804, 768, 773, 773, 768, 773, 773, 773, + 768, 768, 773, 773, 773, 768, 768, 773, 773, 773, + 773, 773, 768, 768, 773, 773, 768, 773, 773, 768, + 773, 773, 773, 773, 768, 768, 773, 768, 768, 773, + 773, 773, 773, 768, 768, 773, 773, 773, 773, 773, + 773, 773, 773, 768, 768, 773, 768, 773, 773, 768, + 773, 773, 773, 773, 773, 773, 768, 768, 773, 773, + 773, 768, 768, 773, 773, 773, 773, 768, 768, 773, + 768, 773, 773, 768, 773, 768, 773, 773, 768, 773, - 580, 580, 582, 607, 576, 576, 54, 576, 580, 580, - 580, 580, 580, 580, 583, 584, 584, 584, 585, 584, - 586, 608, 584, 587, 588, 576, 588, 576, 589, 581, - 588, 590, 609, 576, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 576, 576, 580, 251, 626, 576, 627, 576, 628, 576, - 629, 576, 630, 576, 631, 576, 632, 576, 633, 576, - 634, 576, 635, 576, 636, 576, 637, 576, 638, 576, - 639, 576, 640, 576, 641, 576, 576, 576, 576, 580, - 580, 576, 576, 576, 576, 580, 580, 580, 580, 580, + 773, 768, 768, 773, 773, 773, 805, 806, 768, 807, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 211, 211, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 808, 768, 773, + 773, 773, 773, 773, 773, 809, 810, 810, 810, 811, + 810, 812, 813, 814, 810, 815, 816, 768, 816, 768, + 817, 818, 816, 819, 820, 821, 768, 768, 822, 823, + 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, + 834, 835, 836, 837, 768, 768, 773, 295, 838, 768, - 580, 580, 580, 580, 576, 576, 576, 576, 580, 576, - 576, 576, 576, 580, 580, 580, 576, 576, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 576, 576, 580, 576, 576, 580, 580, 576, 576, 580, - 580, 580, 580, 580, 580, 580, 576, 576, 576, 576, - 576, 576, 580, 580, 576, 576, 580, 580, 580, 580, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 580, 576, 576, 580, 576, 576, 580, 580, - 580, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 580, 576, + 839, 768, 840, 768, 841, 768, 842, 768, 843, 768, + 844, 768, 845, 768, 846, 768, 847, 768, 848, 768, + 849, 768, 850, 768, 851, 768, 852, 768, 853, 768, + 768, 768, 768, 773, 773, 768, 768, 768, 768, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 768, 768, + 768, 768, 773, 768, 768, 768, 768, 773, 773, 773, + 768, 768, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 768, 768, 773, 768, 768, 773, + 773, 768, 768, 773, 773, 773, 773, 773, 773, 773, + 768, 768, 768, 768, 768, 768, 773, 773, 768, 768, - 576, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 576, 576, 580, 580, 580, 580, 580, 580, 576, 576, - 580, 580, 580, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 580, 580, 580, 580, 580, - 580, 580, 580, 576, 576, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 576, 576, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 576, - 576, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 773, 773, 773, 773, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 773, 768, 768, 773, + 768, 768, 854, 854, 854, 854, 854, 854, 854, 854, + 854, 854, 854, 854, 854, 854, 854, 854, 854, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 854, 854, 854, 854, 854, 854, 854, 854, 854, + 854, 854, 855, 855, 464, 464, 464, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, + 773, 773, 773, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 576, 576, 0, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 873, 874, 773, 768, 768, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 768, 768, 773, 773, 773, 773, + 773, 773, 768, 768, 773, 773, 773, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 773, + 773, 773, 773, 773, 773, 773, 773, 768, 768, 773, + 773, 773, 768, 854, 854, 854, 854, 854, 854, 854, + 854, 854, 854, 854, 768, 768, 768, 854, 854, 854, + 875, 464, 464, 464, 464, 464, 464, 464, 464, 464, + 464, 464, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 768, 768, 773, 773, 773, 773, 773, 773, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576 + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 768, 768, 854, 854, 854, 768, 854, + 464, 464, 464, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 854, 768, 854, 464, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 773, 773, 854, 768, 854, 464, 773, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 773, 854, 768, 854, 464, 773, 773, 773, + + 773, 773, 773, 773, 773, 854, 768, 854, 464, 773, + 773, 773, 773, 773, 854, 768, 854, 464, 773, 773, + 773, 854, 768, 854, 464, 773, 773, 773, 854, 768, + 854, 464, 773, 773, 773, 854, 768, 854, 464, 773, + 773, 854, 768, 854, 464, 773, 773, 854, 768, 854, + 464, 773, 773, 854, 768, 854, 464, 773, 773, 854, + 768, 854, 464, 768, 768, 854, 464, 0, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768 } ; -static yyconst flex_int16_t yy_nxt[3013] = +static yyconst flex_int16_t yy_nxt[4563] = { 0, - 14, 15, 16, 17, 18, 19, 20, 14, 21, 22, - 23, 24, 24, 24, 25, 14, 26, 27, 28, 29, - 30, 31, 14, 14, 32, 14, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 14, 14, 14, 14, 14, 14, 14, 48, 14, - 14, 14, 14, 49, 14, 50, 51, 14, 15, 16, - 17, 18, 19, 53, 14, 14, 22, 14, 14, 14, - 14, 25, 14, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 14, 14, + 14, 15, 16, 17, 15, 18, 19, 20, 14, 21, + 22, 23, 24, 24, 24, 25, 14, 26, 27, 28, + 29, 30, 31, 14, 14, 32, 14, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 14, 14, 14, 14, 14, 14, 48, 14, + 14, 14, 14, 49, 14, 50, 51, 54, 16, 17, + 55, 18, 19, 56, 14, 60, 22, 61, 62, 62, + 62, 25, 60, 215, 61, 62, 62, 62, 87, 88, + 88, 87, 88, 88, 92, 93, 93, 93, 94, 94, + 94, 114, 211, 119, 114, 120, 131, 180, 86, 132, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 50, 55, 15, 16, 17, 18, 19, 20, - 85, 85, 22, 129, 56, 56, 56, 25, 14, 57, - 573, 58, 59, 59, 59, 57, 130, 58, 59, 59, - 59, 85, 85, 88, 89, 89, 89, 90, 90, 90, - 115, 127, 116, 110, 128, 176, 209, 209, 209, 177, - 210, 211, 211, 211, 111, 112, 113, 572, 50, 51, - 15, 16, 17, 18, 19, 20, 52, 117, 22, 122, - 56, 56, 56, 25, 114, 328, 141, 173, 144, 571, - 118, 119, 123, 329, 124, 160, 184, 110, 125, 142, + 344, 181, 345, 115, 116, 117, 250, 250, 250, 259, + 259, 50, 57, 54, 16, 17, 55, 18, 19, 56, + 58, 121, 22, 118, 121, 126, 133, 25, 126, 133, + 145, 259, 259, 145, 164, 122, 123, 164, 440, 127, + 134, 128, 215, 177, 146, 129, 177, 387, 165, 130, + 147, 124, 258, 388, 166, 258, 125, 178, 253, 253, + 253, 179, 251, 252, 252, 252, 761, 50, 57, 15, + 16, 17, 15, 18, 19, 20, 148, 340, 22, 148, + 59, 59, 59, 25, 182, 270, 270, 182, 270, 270, + 149, 188, 150, 341, 188, 372, 151, 759, 183, 184, - 174, 145, 126, 146, 175, 143, 120, 147, 161, 185, - 113, 121, 218, 218, 162, 186, 557, 148, 212, 212, - 212, 218, 218, 178, 50, 51, 61, 62, 63, 64, - 65, 66, 133, 558, 67, 198, 179, 180, 181, 68, - 570, 187, 182, 134, 135, 136, 183, 286, 199, 228, - 228, 137, 188, 189, 190, 138, 192, 216, 191, 220, - 287, 200, 139, 228, 228, 140, 288, 193, 194, 195, - 300, 201, 301, 196, 569, 197, 227, 226, 226, 289, - 69, 51, 61, 62, 63, 64, 65, 66, 70, 568, - 67, 213, 211, 211, 211, 68, 226, 230, 231, 226, + 185, 268, 268, 373, 186, 189, 152, 87, 187, 257, + 87, 190, 261, 269, 268, 268, 269, 268, 272, 202, + 273, 758, 202, 50, 51, 15, 16, 17, 15, 18, + 19, 20, 52, 203, 22, 755, 59, 59, 59, 25, + 191, 268, 268, 191, 268, 268, 204, 196, 268, 268, + 196, 211, 192, 193, 194, 211, 205, 86, 195, 197, + 198, 199, 440, 89, 443, 200, 553, 201, 254, 252, + 252, 252, 88, 88, 94, 94, 94, 753, 255, 50, + 51, 64, 65, 66, 64, 67, 68, 69, 209, 209, + 70, 86, 94, 94, 94, 71, 86, 295, 295, 295, - 226, 214, 216, 216, 216, 216, 216, 216, 226, 226, - 567, 86, 226, 226, 437, 216, 216, 216, 216, 216, - 216, 216, 226, 226, 438, 214, 226, 226, 296, 216, - 85, 85, 90, 90, 90, 566, 69, 51, 72, 73, - 74, 75, 76, 77, 297, 292, 78, 83, 90, 90, - 90, 79, 83, 251, 251, 251, 216, 253, 293, 117, - 254, 254, 254, 294, 122, 303, 305, 129, 304, 307, - 216, 133, 118, 310, 312, 317, 295, 123, 141, 306, - 130, 565, 308, 343, 136, 564, 311, 313, 318, 344, - 144, 142, 80, 81, 72, 73, 74, 75, 76, 77, + 297, 255, 752, 298, 298, 298, 114, 330, 332, 114, + 330, 332, 336, 121, 338, 336, 121, 338, 209, 209, + 117, 331, 333, 215, 215, 440, 337, 122, 339, 347, + 87, 126, 348, 230, 126, 72, 51, 64, 65, 66, + 64, 67, 68, 69, 73, 127, 70, 349, 749, 133, + 349, 71, 133, 351, 137, 354, 351, 137, 354, 356, + 440, 350, 356, 134, 440, 215, 446, 352, 140, 355, + 440, 361, 145, 357, 361, 145, 148, 541, 440, 148, + 441, 440, 444, 454, 457, 362, 146, 542, 445, 215, + 149, 72, 51, 75, 76, 77, 75, 78, 79, 80, - 82, 150, 78, 145, 331, 160, 163, 79, 334, 347, - 349, 173, 351, 178, 151, 338, 355, 332, 161, 166, - 184, 335, 348, 350, 174, 352, 179, 187, 339, 356, - 361, 363, 563, 185, 365, 205, 205, 205, 205, 562, - 190, 192, 367, 362, 364, 336, 337, 366, 80, 81, - 83, 91, 340, 341, 195, 368, 561, 83, 83, 83, - 92, 89, 89, 89, 560, 83, 83, 83, 83, 83, - 93, 94, 95, 83, 83, 83, 96, 83, 97, 98, - 83, 99, 83, 83, 100, 101, 83, 83, 83, 102, - 103, 83, 104, 83, 105, 94, 96, 106, 98, 83, + 154, 375, 81, 154, 375, 164, 167, 82, 164, 167, + 440, 215, 450, 391, 155, 376, 391, 259, 259, 165, + 170, 378, 393, 382, 378, 393, 382, 392, 177, 395, + 182, 177, 395, 182, 440, 379, 394, 383, 234, 215, + 215, 440, 178, 396, 183, 215, 211, 83, 84, 75, + 76, 77, 75, 78, 79, 80, 85, 768, 81, 380, + 381, 384, 385, 82, 399, 188, 191, 399, 188, 191, + 405, 407, 409, 405, 407, 409, 440, 756, 400, 189, + 194, 234, 234, 440, 406, 408, 410, 196, 411, 451, + 196, 411, 258, 413, 415, 258, 413, 415, 747, 215, - 107, 83, 101, 108, 109, 150, 369, 559, 371, 198, - 374, 556, 377, 206, 209, 209, 209, 555, 151, 370, - 152, 372, 199, 375, 153, 378, 208, 554, 154, 376, - 155, 156, 218, 218, 157, 286, 158, 159, 163, 212, - 212, 212, 380, 223, 223, 381, 381, 381, 287, 164, - 165, 166, 213, 211, 211, 211, 288, 167, 212, 212, - 212, 168, 214, 553, 379, 379, 379, 214, 216, 289, - 220, 169, 170, 214, 552, 171, 172, 204, 205, 205, - 204, 204, 204, 223, 223, 551, 214, 226, 226, 550, - 204, 214, 226, 226, 227, 226, 226, 214, 228, 228, + 746, 199, 412, 83, 84, 86, 95, 414, 416, 95, + 440, 234, 461, 86, 86, 86, 96, 93, 93, 93, + 743, 86, 86, 86, 86, 86, 97, 98, 99, 86, + 86, 86, 100, 86, 101, 102, 86, 103, 86, 86, + 104, 105, 86, 86, 86, 106, 107, 86, 108, 109, + 98, 100, 110, 102, 86, 111, 86, 105, 112, 113, + 137, 202, 418, 137, 202, 418, 719, 421, 265, 265, + 421, 741, 138, 139, 140, 203, 419, 215, 215, 440, + 141, 422, 420, 720, 142, 440, 447, 448, 440, 440, + 234, 143, 268, 268, 144, 154, 442, 455, 154, 215, - 226, 230, 231, 226, 230, 87, 226, 226, 229, 234, - 234, 234, 234, 254, 254, 254, 292, 294, 381, 381, - 381, 549, 86, 400, 548, 305, 307, 547, 546, 293, - 295, 204, 204, 83, 206, 545, 401, 204, 306, 308, - 83, 83, 83, 83, 83, 207, 207, 208, 83, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 222, 223, - 223, 222, 222, 222, 381, 381, 381, 544, 310, 312, + 215, 215, 440, 456, 234, 452, 215, 440, 440, 155, + 740, 156, 215, 215, 567, 157, 234, 234, 440, 158, + 462, 159, 160, 268, 268, 161, 737, 162, 163, 167, + 234, 735, 167, 270, 270, 453, 277, 277, 234, 265, + 265, 168, 169, 170, 250, 250, 250, 277, 277, 171, + 458, 459, 440, 172, 234, 234, 440, 253, 253, 253, + 234, 734, 257, 173, 174, 261, 733, 175, 176, 208, + 209, 209, 208, 208, 208, 208, 234, 234, 234, 234, + 440, 211, 730, 208, 234, 254, 252, 252, 252, 253, + 253, 253, 553, 208, 296, 255, 426, 296, 255, 481, - 411, 222, 216, 216, 216, 216, 216, 216, 254, 254, - 254, 311, 313, 412, 317, 216, 419, 398, 424, 331, - 426, 334, 428, 430, 338, 432, 434, 318, 543, 420, - 542, 425, 332, 427, 335, 429, 431, 339, 433, 435, - 347, 83, 222, 204, 225, 226, 226, 225, 225, 225, - 349, 351, 442, 348, 355, 444, 216, 225, 541, 361, - 363, 365, 367, 350, 352, 369, 371, 356, 445, 374, - 377, 443, 362, 364, 366, 368, 400, 411, 370, 372, - 540, 459, 375, 378, 379, 379, 379, 539, 538, 401, - 412, 537, 466, 214, 460, 419, 424, 467, 225, 225, + 481, 481, 482, 463, 463, 483, 483, 483, 255, 269, + 268, 268, 269, 728, 268, 272, 89, 273, 255, 268, + 272, 255, 90, 208, 208, 87, 268, 268, 87, 271, + 300, 255, 302, 300, 304, 302, 306, 304, 727, 306, + 726, 212, 213, 214, 215, 216, 215, 308, 310, 217, + 308, 310, 218, 215, 219, 723, 220, 221, 222, 223, + 224, 225, 215, 226, 227, 228, 229, 87, 312, 314, + 230, 312, 314, 316, 229, 229, 316, 229, 229, 229, + 229, 721, 229, 231, 232, 233, 234, 235, 234, 229, + 229, 236, 229, 229, 237, 234, 238, 229, 239, 240, - 225, 226, 226, 225, 225, 225, 468, 426, 420, 425, - 428, 430, 432, 225, 434, 471, 444, 214, 480, 459, - 427, 480, 472, 429, 431, 433, 574, 435, 473, 445, - 574, 481, 460, 536, 481, 535, 534, 533, 532, 575, - 531, 530, 529, 575, 528, 527, 526, 525, 524, 523, - 522, 521, 520, 519, 225, 225, 233, 234, 234, 233, - 233, 233, 518, 517, 516, 515, 514, 513, 512, 233, - 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, - 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, - 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 241, 242, 243, 244, 234, 245, 246, 247, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 208, 209, 209, 249, 208, 208, 208, 318, 320, + 207, 318, 320, 322, 324, 208, 322, 324, 326, 328, + 296, 326, 328, 296, 298, 298, 298, 300, 302, 716, + 300, 302, 298, 298, 298, 304, 306, 308, 304, 306, + 308, 502, 310, 312, 314, 310, 312, 314, 316, 318, + 320, 316, 318, 320, 714, 208, 208, 257, 257, 257, + 257, 257, 257, 257, 86, 322, 324, 326, 322, 324, + 326, 257, 328, 330, 332, 328, 330, 332, 336, 338, - 479, 478, 477, 476, 475, 474, 470, 469, 465, 464, - 233, 233, 91, 463, 462, 461, 458, 457, 456, 455, - 454, 453, 452, 451, 450, 449, 284, 282, 280, 278, - 276, 235, 236, 237, 274, 272, 270, 238, 268, 239, - 240, 266, 241, 264, 262, 242, 243, 260, 258, 256, - 244, 245, 252, 246, 448, 447, 236, 238, 247, 240, - 446, 248, 441, 243, 249, 250, 83, 252, 440, 439, - 436, 423, 422, 83, 253, 83, 83, 254, 254, 254, - 421, 83, 418, 417, 416, 415, 414, 413, 410, 409, - 408, 407, 406, 405, 404, 403, 402, 399, 284, 282, + 504, 336, 338, 504, 546, 713, 349, 331, 333, 349, + 712, 211, 337, 339, 505, 351, 354, 211, 351, 354, + 350, 711, 553, 547, 556, 710, 426, 426, 553, 352, + 355, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 268, 268, 356, 257, 257, 356, + 515, 361, 523, 515, 361, 523, 528, 707, 375, 528, + 357, 375, 211, 705, 516, 362, 524, 704, 530, 703, + 529, 530, 376, 768, 257, 702, 573, 296, 426, 467, + 296, 378, 531, 532, 378, 701, 532, 257, 257, 257, + 257, 257, 257, 257, 257, 379, 534, 533, 382, 534, - 280, 278, 276, 274, 272, 270, 268, 83, 83, 256, - 266, 264, 262, 260, 258, 83, 83, 83, 83, 83, - 83, 83, 256, 83, 252, 284, 282, 280, 278, 276, - 274, 272, 270, 268, 266, 264, 262, 260, 258, 256, - 252, 219, 217, 373, 373, 360, 359, 358, 357, 83, - 83, 258, 354, 353, 346, 345, 342, 83, 83, 83, - 83, 83, 83, 83, 333, 83, 330, 327, 326, 325, - 324, 323, 322, 321, 320, 319, 316, 315, 314, 309, - 302, 299, 298, 291, 290, 86, 87, 84, 217, 202, - 148, 83, 83, 260, 149, 132, 131, 87, 84, 83, + 536, 382, 257, 536, 538, 391, 393, 538, 391, 393, + 535, 700, 383, 395, 537, 440, 395, 211, 539, 392, + 394, 399, 548, 405, 399, 548, 405, 396, 553, 463, + 463, 209, 209, 574, 559, 400, 549, 406, 407, 215, + 215, 407, 257, 264, 265, 265, 264, 264, 264, 264, + 409, 411, 408, 409, 411, 413, 415, 264, 413, 415, + 418, 211, 211, 418, 410, 412, 211, 699, 421, 414, + 416, 421, 768, 768, 419, 211, 211, 553, 426, 483, + 483, 483, 422, 211, 560, 561, 553, 553, 426, 563, + 426, 426, 698, 554, 768, 234, 211, 264, 208, 267, - 83, 83, 83, 83, 83, 83, 576, 83, 52, 52, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 83, 83, 262, 576, 576, 576, 576, - 576, 83, 83, 83, 83, 83, 83, 83, 576, 83, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 83, 83, 264, 576, 576, - 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, - 576, 83, 576, 576, 576, 576, 576, 576, 576, 576, + 268, 268, 267, 267, 267, 267, 211, 553, 440, 211, + 426, 426, 211, 267, 695, 426, 426, 553, 211, 557, + 768, 426, 426, 553, 211, 558, 426, 426, 693, 768, + 692, 211, 215, 215, 555, 768, 211, 426, 691, 562, + 426, 426, 553, 463, 463, 208, 426, 768, 234, 568, + 467, 690, 689, 267, 267, 267, 267, 268, 268, 267, + 267, 267, 267, 267, 267, 267, 267, 211, 211, 211, + 267, 267, 211, 211, 620, 211, 688, 211, 553, 768, + 768, 234, 211, 768, 440, 211, 768, 234, 440, 687, + 234, 564, 569, 768, 570, 300, 440, 267, 300, 463, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 83, 83, 266, - 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, - 83, 83, 576, 83, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 83, - 83, 268, 576, 576, 576, 576, 576, 83, 83, 83, - 83, 83, 83, 83, 576, 83, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 463, 426, 463, 463, 208, 686, 234, 577, 234, 234, + 267, 267, 267, 268, 268, 267, 267, 267, 267, 685, + 234, 234, 467, 684, 463, 463, 267, 467, 463, 463, + 208, 463, 463, 578, 579, 463, 463, 463, 463, 208, + 683, 467, 572, 463, 463, 575, 467, 581, 467, 600, + 302, 576, 467, 302, 601, 481, 481, 481, 580, 467, + 467, 463, 463, 602, 255, 682, 267, 267, 276, 277, + 277, 276, 276, 276, 276, 681, 582, 483, 483, 483, + 304, 306, 276, 304, 306, 308, 467, 255, 308, 310, + 312, 314, 310, 312, 314, 316, 318, 320, 316, 318, - 576, 83, 83, 270, 576, 576, 576, 576, 576, 83, - 83, 83, 83, 83, 83, 83, 576, 83, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 83, 83, 272, 576, 576, 576, 576, - 576, 83, 83, 83, 83, 83, 83, 83, 576, 83, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 83, 83, 274, 576, 576, - 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, + 320, 322, 324, 326, 322, 324, 326, 328, 680, 677, + 328, 504, 515, 675, 504, 515, 593, 523, 528, 593, + 523, 528, 276, 276, 95, 505, 516, 95, 211, 674, + 594, 524, 529, 530, 532, 534, 530, 532, 534, 768, + 536, 673, 672, 536, 279, 280, 281, 531, 533, 535, + 282, 671, 283, 284, 537, 285, 670, 731, 286, 287, + 669, 668, 667, 288, 289, 666, 290, 605, 280, 282, + 291, 284, 211, 292, 606, 287, 293, 294, 86, 296, + 607, 538, 296, 768, 538, 665, 86, 297, 86, 86, + 298, 298, 298, 548, 86, 539, 548, 614, 211, 664, - 576, 83, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 83, 83, 276, - 576, 576, 576, 576, 576, 83, 83, 83, 83, 83, - 83, 83, 576, 83, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 83, - 83, 278, 576, 576, 576, 576, 576, 83, 83, 83, - 83, 83, 83, 83, 576, 83, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 614, 211, 426, 211, 211, 211, 663, 549, 211, 768, + 426, 615, 768, 211, 768, 768, 768, 426, 662, 553, + 86, 86, 300, 426, 553, 300, 616, 211, 211, 86, + 86, 86, 86, 86, 86, 86, 211, 86, 768, 768, + 211, 651, 661, 426, 426, 426, 660, 768, 426, 426, + 211, 553, 426, 617, 659, 211, 658, 618, 463, 463, + 208, 768, 657, 86, 86, 302, 768, 234, 302, 656, + 655, 652, 86, 86, 86, 86, 86, 86, 86, 467, + 86, 234, 463, 463, 208, 467, 463, 463, 208, 463, + 463, 208, 463, 463, 208, 467, 463, 463, 208, 467, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 83, 83, 280, 576, 576, 576, 576, 576, 83, - 83, 83, 83, 83, 83, 83, 576, 83, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 83, 83, 282, 576, 576, 576, 576, - 576, 83, 83, 83, 83, 83, 83, 83, 576, 83, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 83, 83, 284, 576, 576, + 463, 463, 621, 463, 463, 467, 86, 86, 304, 650, + 593, 304, 649, 593, 211, 86, 86, 86, 86, 86, + 86, 86, 648, 86, 594, 768, 467, 467, 647, 467, + 467, 463, 463, 208, 614, 463, 463, 614, 646, 622, + 463, 463, 208, 623, 645, 644, 211, 643, 615, 86, + 86, 306, 708, 642, 306, 467, 211, 768, 86, 86, + 86, 86, 86, 86, 86, 211, 86, 768, 641, 463, + 463, 208, 426, 426, 211, 211, 768, 467, 463, 463, + 208, 653, 463, 463, 208, 768, 768, 211, 640, 211, + 676, 639, 86, 86, 308, 467, 678, 308, 768, 211, - 576, 576, 576, 83, 83, 83, 83, 83, 83, 83, - 576, 83, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 83, 204, 205, - 205, 204, 204, 204, 576, 576, 576, 576, 576, 576, - 576, 204, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 204, 204, 222, 223, 223, 222, 222, 222, + 768, 86, 86, 86, 86, 86, 86, 86, 694, 86, + 768, 654, 463, 463, 208, 211, 696, 211, 638, 679, + 463, 463, 208, 463, 463, 208, 768, 715, 768, 637, + 636, 709, 697, 717, 706, 86, 86, 310, 635, 634, + 310, 463, 463, 208, 86, 86, 86, 86, 86, 86, + 86, 211, 86, 633, 211, 463, 463, 208, 463, 463, + 208, 211, 768, 211, 725, 768, 463, 463, 208, 722, + 718, 211, 768, 211, 768, 632, 732, 631, 86, 86, + 312, 724, 768, 312, 768, 211, 739, 86, 86, 86, + 86, 86, 86, 86, 211, 86, 768, 211, 729, 738, - 576, 576, 576, 576, 576, 576, 576, 222, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 222, 204, - 225, 226, 226, 225, 225, 225, 576, 576, 576, 576, - 576, 576, 576, 225, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 630, 742, 736, 629, 628, 768, 211, 211, 768, 627, + 744, 463, 463, 208, 750, 626, 625, 768, 768, 748, + 624, 86, 86, 314, 754, 215, 314, 463, 463, 208, + 86, 86, 86, 86, 86, 86, 86, 760, 86, 619, + 745, 215, 211, 751, 463, 463, 208, 211, 463, 463, + 208, 613, 757, 768, 764, 762, 211, 764, 768, 612, + 766, 611, 610, 609, 86, 86, 316, 768, 765, 316, + 763, 608, 604, 86, 86, 86, 86, 86, 86, 86, + 234, 86, 463, 463, 208, 764, 767, 211, 764, 463, + 463, 208, 603, 599, 598, 597, 596, 595, 768, 765, - 576, 576, 576, 576, 225, 225, 233, 234, 234, 233, - 233, 233, 576, 576, 576, 576, 576, 576, 576, 233, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 233, 233, 83, 91, 576, 576, 576, 576, 576, 83, - 83, 83, 83, 251, 251, 251, 576, 83, 83, 83, - 83, 83, 93, 94, 95, 83, 83, 83, 96, 83, - 97, 98, 83, 99, 83, 83, 100, 101, 83, 83, + 592, 591, 590, 589, 467, 588, 587, 86, 86, 318, + 586, 426, 318, 585, 584, 583, 86, 86, 86, 86, + 86, 86, 86, 467, 86, 467, 215, 566, 215, 215, + 215, 565, 215, 215, 552, 551, 550, 545, 544, 543, + 540, 527, 526, 525, 522, 521, 520, 519, 518, 517, + 86, 86, 320, 514, 513, 320, 512, 511, 510, 86, + 86, 86, 86, 86, 86, 86, 509, 86, 508, 507, + 506, 503, 260, 460, 234, 234, 440, 234, 449, 215, + 215, 440, 215, 417, 417, 404, 403, 402, 401, 398, + 397, 390, 389, 86, 86, 322, 386, 377, 322, 374, - 83, 102, 103, 83, 104, 83, 105, 94, 96, 106, - 98, 83, 107, 83, 101, 108, 109, 83, 252, 576, - 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, - 83, 576, 83, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, - 256, 576, 576, 576, 576, 576, 83, 83, 83, 83, - 83, 83, 83, 576, 83, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 371, 370, 86, 86, 86, 86, 86, 86, 86, 369, + 86, 368, 367, 366, 365, 364, 363, 360, 359, 358, + 353, 346, 343, 342, 335, 334, 278, 89, 90, 206, + 152, 153, 136, 135, 90, 768, 86, 86, 324, 52, + 768, 324, 768, 768, 768, 86, 86, 86, 86, 86, + 86, 86, 768, 86, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 86, + 86, 326, 768, 768, 326, 768, 768, 768, 86, 86, + 86, 86, 86, 86, 86, 768, 86, 768, 768, 768, - 83, 83, 258, 576, 576, 576, 576, 576, 83, 83, - 83, 83, 83, 83, 83, 576, 83, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 83, 83, 260, 576, 576, 576, 576, 576, - 83, 83, 83, 83, 83, 83, 83, 576, 83, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 83, 83, 262, 576, 576, 576, - 576, 576, 83, 83, 83, 83, 83, 83, 83, 576, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 86, 86, 328, 768, 768, 328, 768, 768, + 768, 86, 86, 86, 86, 86, 86, 86, 768, 86, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 86, 208, 209, 209, 208, + 208, 208, 208, 768, 768, 768, 768, 768, 768, 768, + 208, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 83, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 83, 83, 264, 576, - 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, - 83, 576, 83, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, - 266, 576, 576, 576, 576, 576, 83, 83, 83, 83, - 83, 83, 83, 576, 83, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 208, 208, 229, 768, 768, 768, 211, 768, 768, 768, + 229, 229, 768, 229, 229, 229, 229, 768, 229, 423, + 424, 425, 426, 427, 426, 229, 229, 428, 229, 229, + 429, 426, 430, 229, 431, 432, 433, 434, 435, 436, + 426, 437, 438, 439, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 768, 768, 229, 768, 768, 229, 229, + 229, 768, 229, 229, 229, 229, 229, 229, 229, 229, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 83, 83, 268, 576, 576, 576, 576, 576, 83, 83, - 83, 83, 83, 83, 83, 576, 83, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 83, 83, 270, 576, 576, 576, 576, 576, - 83, 83, 83, 83, 83, 83, 83, 576, 83, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 83, 83, 272, 576, 576, 576, + 229, 229, 208, 209, 209, 249, 208, 208, 208, 768, + 768, 207, 768, 768, 768, 768, 208, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 208, 208, 463, 208, + 209, 209, 249, 208, 208, 208, 463, 463, 208, 463, + 463, 463, 463, 208, 463, 464, 465, 466, 467, 468, + 467, 463, 463, 469, 463, 463, 470, 467, 471, 463, + 472, 473, 474, 475, 476, 477, 467, 478, 479, 480, - 576, 576, 83, 83, 83, 83, 83, 83, 83, 576, - 83, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 83, 83, 274, 576, - 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, - 83, 576, 83, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, - 276, 576, 576, 576, 576, 576, 83, 83, 83, 83, - 83, 83, 83, 576, 83, 576, 576, 576, 576, 576, + 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, + 463, 463, 463, 208, 208, 257, 257, 257, 257, 257, + 257, 257, 768, 768, 768, 768, 768, 768, 768, 257, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 257, + 257, 257, 257, 257, 257, 257, 257, 484, 257, 257, + 257, 257, 768, 768, 768, 257, 257, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 83, 83, 278, 576, 576, 576, 576, 576, 83, 83, - 83, 83, 83, 83, 83, 576, 83, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 83, 83, 280, 576, 576, 576, 576, 576, - 83, 83, 83, 83, 83, 83, 83, 576, 83, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 257, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 257, 264, 265, 265, 264, + 264, 264, 264, 768, 768, 768, 768, 768, 768, 768, + 264, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 264, 208, 267, 268, 268, 267, 267, 267, 267, 768, + 768, 768, 768, 768, 768, 768, 267, 768, 768, 768, - 576, 576, 576, 576, 83, 83, 282, 576, 576, 576, - 576, 576, 83, 83, 83, 83, 83, 83, 83, 576, - 83, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 83, 83, 284, 576, - 576, 576, 576, 576, 83, 83, 83, 83, 83, 83, - 83, 576, 83, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 83, 83, - 252, 576, 576, 576, 576, 576, 83, 83, 83, 83, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 267, 267, 267, 267, + 268, 268, 267, 267, 267, 485, 267, 267, 267, 267, + 768, 768, 768, 267, 267, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 267, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 267, 267, 276, 277, 277, 276, 276, - 83, 83, 83, 576, 83, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 83, 14, 14, 14, 14, 14, 14, 60, 60, 60, - 60, 60, 60, 71, 71, 71, 71, 71, 71, 83, - 576, 576, 576, 83, 86, 86, 576, 86, 86, 86, - 203, 203, 203, 203, 203, 203, 215, 215, 215, 215, - 215, 216, 216, 216, 216, 216, 219, 219, 219, 219, - 219, 219, 221, 221, 221, 221, 221, 221, 224, 224, - 224, 224, 224, 224, 225, 225, 225, 225, 225, 225, + 276, 276, 768, 768, 768, 768, 768, 768, 768, 276, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 276, + 276, 86, 95, 768, 768, 95, 768, 768, 768, 86, + 86, 86, 86, 295, 295, 295, 768, 86, 86, 86, + 86, 86, 97, 98, 99, 86, 86, 86, 100, 86, + 101, 102, 86, 103, 86, 86, 104, 105, 86, 86, + 86, 106, 107, 86, 108, 109, 98, 100, 110, 102, - 229, 229, 229, 229, 229, 229, 232, 232, 232, 232, - 232, 232, 255, 255, 576, 576, 255, 257, 257, 576, - 576, 257, 259, 259, 576, 576, 259, 261, 261, 576, - 576, 261, 263, 263, 576, 576, 263, 265, 265, 576, - 576, 265, 267, 267, 576, 576, 267, 269, 269, 576, - 576, 269, 271, 271, 576, 576, 271, 273, 273, 576, - 576, 273, 275, 275, 576, 576, 275, 277, 277, 576, - 576, 277, 279, 279, 576, 576, 279, 281, 281, 576, - 576, 281, 283, 283, 576, 576, 283, 285, 285, 576, - 576, 285, 204, 204, 204, 204, 204, 204, 222, 222, + 86, 111, 86, 105, 112, 113, 86, 296, 768, 768, + 296, 768, 768, 768, 86, 86, 86, 86, 86, 86, + 86, 768, 86, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 86, 86, + 300, 768, 768, 300, 768, 768, 768, 86, 86, 86, + 86, 86, 86, 86, 768, 86, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 86, 86, 302, 768, 768, 302, 768, 768, 768, - 222, 222, 222, 222, 233, 233, 233, 233, 233, 233, - 382, 576, 576, 382, 383, 576, 576, 383, 384, 576, - 576, 384, 385, 576, 576, 385, 386, 576, 576, 386, - 387, 576, 576, 387, 388, 576, 576, 388, 389, 576, - 576, 389, 390, 576, 576, 390, 391, 576, 576, 391, - 392, 576, 576, 392, 393, 576, 576, 393, 394, 576, - 576, 394, 395, 576, 576, 395, 396, 576, 576, 396, - 397, 576, 576, 397, 255, 255, 576, 576, 255, 257, - 257, 576, 576, 257, 259, 259, 576, 576, 259, 261, - 261, 576, 576, 261, 263, 263, 576, 576, 263, 265, + 86, 86, 86, 86, 86, 86, 86, 768, 86, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 86, 86, 304, 768, 768, 304, + 768, 768, 768, 86, 86, 86, 86, 86, 86, 86, + 768, 86, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 86, 86, 306, + 768, 768, 306, 768, 768, 768, 86, 86, 86, 86, + 86, 86, 86, 768, 86, 768, 768, 768, 768, 768, - 265, 576, 576, 265, 267, 267, 576, 576, 267, 269, - 269, 576, 576, 269, 271, 271, 576, 576, 271, 273, - 273, 576, 576, 273, 275, 275, 576, 576, 275, 277, - 277, 576, 576, 277, 279, 279, 576, 576, 279, 281, - 281, 576, 576, 281, 283, 283, 576, 576, 283, 285, - 285, 576, 576, 285, 13, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 86, 86, 308, 768, 768, 308, 768, 768, 768, 86, + 86, 86, 86, 86, 86, 86, 768, 86, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 86, 86, 310, 768, 768, 310, 768, + 768, 768, 86, 86, 86, 86, 86, 86, 86, 768, + 86, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576 + 768, 768, 768, 768, 768, 768, 86, 86, 312, 768, + 768, 312, 768, 768, 768, 86, 86, 86, 86, 86, + 86, 86, 768, 86, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 86, + 86, 314, 768, 768, 314, 768, 768, 768, 86, 86, + 86, 86, 86, 86, 86, 768, 86, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 86, 86, 316, 768, 768, 316, 768, 768, + + 768, 86, 86, 86, 86, 86, 86, 86, 768, 86, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 86, 86, 318, 768, 768, + 318, 768, 768, 768, 86, 86, 86, 86, 86, 86, + 86, 768, 86, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 86, 86, + 320, 768, 768, 320, 768, 768, 768, 86, 86, 86, + 86, 86, 86, 86, 768, 86, 768, 768, 768, 768, + + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 86, 86, 322, 768, 768, 322, 768, 768, 768, + 86, 86, 86, 86, 86, 86, 86, 768, 86, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 86, 86, 324, 768, 768, 324, + 768, 768, 768, 86, 86, 86, 86, 86, 86, 86, + 768, 86, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + + 768, 768, 768, 768, 768, 768, 768, 86, 86, 326, + 768, 768, 326, 768, 768, 768, 86, 86, 86, 86, + 86, 86, 86, 768, 86, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 86, 86, 328, 768, 768, 328, 768, 768, 768, 86, + 86, 86, 86, 86, 86, 86, 768, 86, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 86, 208, 209, 209, 249, 208, 208, + + 208, 768, 768, 208, 768, 768, 768, 768, 208, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 208, 208, + 208, 209, 209, 249, 208, 208, 208, 768, 768, 208, + 768, 768, 467, 467, 571, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + + 768, 768, 768, 768, 208, 208, 86, 296, 768, 768, + 296, 768, 768, 768, 86, 86, 86, 86, 86, 86, + 86, 768, 86, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 86, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 86, + 768, 768, 768, 768, 86, 86, 768, 86, 89, 89, + + 768, 89, 89, 89, 89, 89, 89, 89, 91, 768, + 91, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 210, 768, 768, 768, 210, 210, 210, 768, 210, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 267, 267, 267, + + 267, 267, 267, 267, 267, 267, 267, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 299, 299, 768, + 768, 299, 299, 299, 768, 299, 301, 301, 768, 768, + 301, 301, 301, 768, 301, 303, 303, 768, 768, 303, + 303, 303, 768, 303, 305, 305, 768, 768, 305, 305, + 305, 768, 305, 307, 307, 768, 768, 307, 307, 307, + 768, 307, 309, 309, 768, 768, 309, 309, 309, 768, + 309, 311, 311, 768, 768, 311, 311, 311, 768, 311, + + 313, 313, 768, 768, 313, 313, 313, 768, 313, 315, + 315, 768, 768, 315, 315, 315, 768, 315, 317, 317, + 768, 768, 317, 317, 317, 768, 317, 319, 319, 768, + 768, 319, 319, 319, 768, 319, 321, 321, 768, 768, + 321, 321, 321, 768, 321, 323, 323, 768, 768, 323, + 323, 323, 768, 323, 325, 325, 768, 768, 325, 325, + 325, 768, 325, 327, 327, 768, 768, 327, 327, 327, + 768, 327, 329, 329, 768, 768, 329, 329, 329, 768, + 329, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 208, 208, 208, 208, 208, 208, 208, 208, 208, + + 208, 210, 768, 768, 768, 210, 210, 210, 768, 210, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 271, 271, 271, + + 271, 271, 271, 271, 271, 271, 271, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, + 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 486, 768, 768, + 486, 768, 768, 768, 486, 487, 768, 768, 487, 768, + 768, 768, 487, 488, 768, 768, 488, 768, 768, 768, + 488, 489, 768, 768, 489, 768, 768, 768, 489, 490, + 768, 768, 490, 768, 768, 768, 490, 491, 768, 768, + 491, 768, 768, 768, 491, 492, 768, 768, 492, 768, + + 768, 768, 492, 493, 768, 768, 493, 768, 768, 768, + 493, 494, 768, 768, 494, 768, 768, 768, 494, 495, + 768, 768, 495, 768, 768, 768, 495, 496, 768, 768, + 496, 768, 768, 768, 496, 497, 768, 768, 497, 768, + 768, 768, 497, 498, 768, 768, 498, 768, 768, 768, + 498, 499, 768, 768, 499, 768, 768, 768, 499, 500, + 768, 768, 500, 768, 768, 768, 500, 501, 768, 768, + 501, 768, 768, 768, 501, 299, 299, 768, 768, 299, + 299, 299, 768, 299, 301, 301, 768, 768, 301, 301, + 301, 768, 301, 303, 303, 768, 768, 303, 303, 303, + + 768, 303, 305, 305, 768, 768, 305, 305, 305, 768, + 305, 307, 307, 768, 768, 307, 307, 307, 768, 307, + 309, 309, 768, 768, 309, 309, 309, 768, 309, 311, + 311, 768, 768, 311, 311, 311, 768, 311, 313, 313, + 768, 768, 313, 313, 313, 768, 313, 315, 315, 768, + 768, 315, 315, 315, 768, 315, 317, 317, 768, 768, + 317, 317, 317, 768, 317, 319, 319, 768, 768, 319, + 319, 319, 768, 319, 321, 321, 768, 768, 321, 321, + 321, 768, 321, 323, 323, 768, 768, 323, 323, 323, + 768, 323, 325, 325, 768, 768, 325, 325, 325, 768, + + 325, 327, 327, 768, 768, 327, 327, 327, 768, 327, + 329, 329, 768, 768, 329, 329, 329, 768, 329, 229, + 768, 768, 768, 229, 768, 229, 229, 229, 463, 463, + 463, 463, 463, 463, 463, 463, 463, 463, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 486, 768, 768, + 486, 768, 768, 768, 486, 487, 768, 768, 487, 768, + 768, 768, 487, 488, 768, 768, 488, 768, 768, 768, + 488, 489, 768, 768, 489, 768, 768, 768, 489, 490, + 768, 768, 490, 768, 768, 768, 490, 491, 768, 768, + + 491, 768, 768, 768, 491, 492, 768, 768, 492, 768, + 768, 768, 492, 493, 768, 768, 493, 768, 768, 768, + 493, 494, 768, 768, 494, 768, 768, 768, 494, 495, + 768, 768, 495, 768, 768, 768, 495, 496, 768, 768, + 496, 768, 768, 768, 496, 497, 768, 768, 497, 768, + 768, 768, 497, 498, 768, 768, 498, 768, 768, 768, + 498, 499, 768, 768, 499, 768, 768, 768, 499, 500, + 768, 768, 500, 768, 768, 768, 500, 501, 768, 768, + 501, 768, 768, 768, 501, 299, 299, 768, 768, 299, + 299, 299, 768, 299, 208, 208, 208, 208, 208, 208, + + 208, 208, 208, 208, 13, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768 } ; -static yyconst flex_int16_t yy_chk[3013] = +static yyconst flex_int16_t yy_chk[4563] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1188,336 +1446,506 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 7, 7, 3, 7, 7, 7, + 7, 3, 8, 761, 8, 8, 8, 8, 15, 16, + 16, 15, 17, 17, 21, 21, 21, 21, 23, 23, + 23, 26, 53, 27, 26, 27, 30, 42, 53, 30, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, - 16, 16, 5, 31, 5, 5, 5, 5, 7, 7, - 571, 7, 7, 7, 7, 8, 31, 8, 8, 8, - 8, 17, 17, 21, 21, 21, 21, 23, 23, 23, - 27, 30, 27, 26, 30, 42, 56, 56, 56, 42, - 57, 57, 57, 57, 26, 26, 26, 570, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 28, 6, 29, - 6, 6, 6, 6, 26, 157, 35, 41, 36, 569, - 28, 28, 29, 157, 29, 39, 44, 110, 29, 35, + 129, 42, 129, 26, 26, 26, 59, 59, 59, 65, + 65, 3, 3, 4, 4, 4, 4, 4, 4, 4, + 4, 28, 4, 26, 28, 29, 31, 4, 29, 31, + 35, 66, 66, 35, 39, 28, 28, 39, 223, 29, + 31, 29, 223, 41, 35, 29, 41, 172, 39, 29, + 35, 28, 64, 172, 39, 64, 28, 41, 61, 61, + 61, 41, 60, 60, 60, 60, 755, 4, 4, 5, + 5, 5, 5, 5, 5, 5, 36, 124, 5, 36, + 5, 5, 5, 5, 43, 76, 76, 43, 77, 77, + 36, 44, 36, 124, 44, 161, 36, 753, 43, 43, - 41, 36, 29, 36, 41, 35, 28, 36, 39, 44, - 110, 28, 62, 62, 39, 44, 554, 36, 58, 58, - 58, 63, 63, 43, 6, 6, 9, 9, 9, 9, - 9, 9, 34, 554, 9, 47, 43, 43, 43, 9, - 568, 45, 43, 34, 34, 34, 43, 111, 47, 73, - 73, 34, 45, 45, 45, 34, 46, 64, 45, 64, - 111, 47, 34, 74, 74, 34, 112, 46, 46, 46, - 125, 47, 125, 46, 567, 46, 72, 72, 72, 112, - 9, 9, 10, 10, 10, 10, 10, 10, 10, 566, - 10, 59, 59, 59, 59, 10, 75, 75, 75, 76, + 43, 80, 80, 161, 43, 44, 36, 87, 43, 67, + 87, 44, 67, 75, 75, 75, 75, 78, 78, 47, + 78, 752, 47, 5, 5, 6, 6, 6, 6, 6, + 6, 6, 6, 47, 6, 749, 6, 6, 6, 6, + 45, 82, 82, 45, 83, 83, 47, 46, 84, 84, + 46, 210, 45, 45, 45, 426, 47, 210, 45, 46, + 46, 46, 219, 67, 219, 46, 426, 46, 62, 62, + 62, 62, 88, 88, 92, 92, 92, 747, 62, 6, + 6, 9, 9, 9, 9, 9, 9, 9, 208, 208, + 9, 94, 94, 94, 94, 9, 96, 96, 96, 96, - 76, 59, 60, 60, 60, 60, 60, 60, 77, 77, - 565, 64, 79, 79, 344, 60, 67, 67, 67, 67, - 67, 67, 80, 80, 344, 59, 81, 81, 120, 67, - 85, 85, 88, 88, 88, 564, 10, 10, 11, 11, - 11, 11, 11, 11, 120, 116, 11, 90, 90, 90, - 90, 11, 92, 92, 92, 92, 60, 105, 116, 117, - 105, 105, 105, 119, 122, 127, 128, 129, 127, 131, - 67, 133, 117, 134, 135, 140, 119, 122, 141, 128, - 129, 562, 131, 168, 133, 561, 134, 135, 140, 168, - 144, 141, 11, 11, 12, 12, 12, 12, 12, 12, + 109, 62, 746, 109, 109, 109, 114, 115, 116, 114, + 115, 116, 120, 121, 123, 120, 121, 123, 209, 209, + 114, 115, 116, 212, 212, 212, 120, 121, 123, 131, + 230, 126, 131, 230, 126, 9, 9, 10, 10, 10, + 10, 10, 10, 10, 10, 126, 10, 132, 743, 133, + 132, 10, 133, 135, 137, 138, 135, 137, 138, 139, + 221, 132, 139, 133, 214, 214, 221, 135, 137, 138, + 220, 144, 145, 139, 144, 145, 148, 388, 240, 148, + 214, 238, 220, 238, 240, 144, 145, 388, 220, 220, + 148, 10, 10, 11, 11, 11, 11, 11, 11, 11, - 12, 150, 12, 144, 159, 160, 163, 12, 164, 171, - 172, 173, 175, 178, 150, 165, 180, 159, 160, 163, - 184, 164, 171, 172, 173, 175, 178, 187, 165, 180, - 188, 189, 560, 184, 191, 204, 204, 205, 205, 559, - 187, 192, 193, 188, 189, 164, 164, 191, 12, 12, - 24, 24, 165, 165, 192, 193, 558, 24, 24, 24, - 24, 24, 24, 24, 557, 24, 24, 24, 24, 24, + 154, 163, 11, 154, 163, 164, 167, 11, 164, 167, + 225, 225, 225, 175, 154, 163, 175, 259, 259, 164, + 167, 168, 176, 169, 168, 176, 169, 175, 177, 179, + 182, 177, 179, 182, 242, 168, 176, 169, 242, 226, + 226, 226, 177, 179, 182, 226, 750, 11, 11, 12, + 12, 12, 12, 12, 12, 12, 12, 750, 12, 168, + 168, 169, 169, 12, 184, 188, 191, 184, 188, 191, + 192, 193, 195, 192, 193, 195, 228, 750, 184, 188, + 191, 231, 231, 231, 192, 193, 195, 196, 197, 228, + 196, 197, 258, 198, 200, 258, 198, 200, 741, 228, + + 740, 196, 197, 12, 12, 24, 24, 198, 200, 24, + 244, 244, 244, 24, 24, 24, 24, 24, 24, 24, + 737, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 34, 202, 204, 34, 202, 204, 712, 205, 265, 265, + 205, 735, 34, 34, 34, 202, 204, 218, 218, 218, + 34, 205, 204, 712, 34, 239, 222, 222, 222, 233, + 233, 34, 267, 267, 34, 38, 218, 239, 38, 218, - 24, 24, 24, 24, 24, 38, 194, 556, 196, 198, - 200, 551, 201, 206, 209, 209, 209, 550, 38, 194, - 38, 196, 198, 200, 38, 201, 206, 548, 38, 200, - 38, 38, 218, 218, 38, 286, 38, 38, 40, 210, - 210, 210, 214, 223, 223, 214, 214, 214, 286, 40, - 40, 40, 211, 211, 211, 211, 288, 40, 212, 212, - 212, 40, 211, 546, 213, 213, 213, 212, 219, 288, - 219, 40, 40, 213, 544, 40, 40, 52, 52, 52, - 52, 52, 52, 222, 222, 543, 211, 225, 225, 540, - 52, 212, 226, 226, 227, 227, 227, 213, 228, 228, + 227, 227, 227, 239, 239, 233, 227, 247, 451, 38, + 734, 38, 222, 222, 451, 38, 237, 237, 237, 38, + 247, 38, 38, 268, 268, 38, 730, 38, 38, 40, + 247, 728, 40, 270, 270, 237, 276, 276, 237, 264, + 264, 40, 40, 40, 250, 250, 250, 277, 277, 40, + 241, 241, 241, 40, 245, 245, 245, 251, 251, 251, + 245, 727, 260, 40, 40, 260, 726, 40, 40, 52, + 52, 52, 52, 52, 52, 52, 241, 241, 246, 246, + 246, 434, 723, 52, 246, 252, 252, 252, 252, 253, + 253, 253, 434, 264, 279, 252, 434, 279, 253, 254, - 229, 229, 229, 230, 230, 230, 231, 231, 231, 233, - 233, 234, 234, 253, 253, 253, 292, 294, 380, 380, - 380, 537, 219, 296, 536, 305, 307, 534, 533, 292, - 294, 52, 52, 54, 54, 531, 296, 222, 305, 307, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 70, 70, - 70, 70, 70, 70, 381, 381, 381, 530, 310, 312, + 254, 254, 255, 467, 467, 255, 255, 255, 254, 269, + 269, 269, 269, 721, 271, 271, 260, 271, 252, 272, + 272, 253, 272, 52, 52, 54, 273, 273, 54, 273, + 280, 254, 281, 280, 282, 281, 283, 282, 720, 283, + 719, 54, 54, 54, 54, 54, 54, 284, 285, 54, + 284, 285, 54, 54, 54, 716, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 55, 55, 286, 287, + 55, 286, 287, 288, 55, 55, 288, 55, 55, 55, + 55, 714, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 316, 70, 215, 215, 215, 215, 215, 215, 254, 254, - 254, 310, 312, 316, 317, 215, 326, 254, 330, 331, - 333, 334, 336, 337, 338, 340, 341, 317, 528, 326, - 527, 330, 331, 333, 334, 336, 337, 338, 340, 341, - 347, 254, 70, 70, 71, 71, 71, 71, 71, 71, - 349, 351, 354, 347, 355, 357, 215, 71, 524, 361, - 363, 365, 367, 349, 351, 369, 371, 355, 357, 374, - 377, 354, 361, 363, 365, 367, 400, 411, 369, 371, - 523, 414, 374, 377, 379, 379, 379, 522, 521, 400, - 411, 519, 422, 379, 414, 419, 424, 422, 71, 71, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 58, 58, 58, 58, 58, 58, 58, 289, 290, + 58, 289, 290, 291, 292, 58, 291, 292, 293, 294, + 296, 293, 294, 296, 297, 297, 297, 300, 302, 707, + 300, 302, 298, 298, 298, 304, 306, 308, 304, 306, + 308, 298, 310, 312, 314, 310, 312, 314, 316, 318, + 320, 316, 318, 320, 705, 58, 58, 63, 63, 63, + 63, 63, 63, 63, 298, 322, 324, 326, 322, 324, + 326, 63, 328, 330, 332, 328, 330, 332, 336, 338, - 78, 78, 78, 78, 78, 78, 422, 426, 419, 424, - 428, 430, 432, 78, 434, 438, 444, 379, 448, 459, - 426, 480, 438, 428, 430, 432, 573, 434, 438, 444, - 574, 448, 459, 518, 480, 517, 515, 513, 511, 573, - 510, 509, 507, 574, 506, 505, 504, 503, 501, 500, - 498, 497, 496, 495, 78, 78, 82, 82, 82, 82, - 82, 82, 494, 493, 492, 491, 488, 487, 486, 82, - 485, 484, 482, 479, 478, 477, 475, 474, 473, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, - 461, 458, 457, 456, 455, 454, 453, 452, 450, 449, + 340, 336, 338, 340, 398, 704, 349, 330, 332, 349, + 702, 430, 336, 338, 340, 351, 354, 423, 351, 354, + 349, 700, 430, 398, 430, 698, 423, 423, 423, 351, + 354, 63, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 485, 485, 356, 68, 68, 356, + 360, 361, 370, 360, 361, 370, 374, 695, 375, 374, + 356, 375, 428, 693, 360, 361, 370, 690, 377, 687, + 374, 377, 375, 428, 68, 686, 470, 486, 428, 470, + 486, 378, 377, 380, 378, 684, 380, 68, 70, 70, + 70, 70, 70, 70, 70, 378, 381, 380, 382, 381, - 447, 446, 443, 441, 440, 439, 437, 436, 421, 418, - 82, 82, 91, 417, 416, 415, 413, 409, 408, 407, - 406, 405, 404, 403, 402, 399, 397, 396, 395, 394, - 393, 91, 91, 91, 392, 391, 390, 91, 389, 91, - 91, 388, 91, 387, 386, 91, 91, 385, 384, 383, - 91, 91, 382, 91, 376, 360, 91, 91, 91, 91, - 358, 91, 353, 91, 91, 91, 93, 93, 346, 345, - 343, 329, 328, 93, 93, 93, 93, 93, 93, 93, - 327, 93, 324, 323, 322, 321, 320, 319, 315, 314, - 304, 302, 301, 300, 299, 298, 297, 291, 284, 282, + 384, 382, 70, 384, 385, 391, 393, 385, 391, 393, + 381, 683, 382, 395, 384, 447, 395, 432, 385, 391, + 393, 399, 401, 405, 399, 401, 405, 395, 432, 471, + 471, 571, 571, 471, 432, 399, 401, 405, 407, 447, + 447, 407, 70, 73, 73, 73, 73, 73, 73, 73, + 409, 411, 407, 409, 411, 413, 415, 73, 413, 415, + 418, 424, 427, 418, 409, 411, 425, 681, 421, 413, + 415, 421, 424, 427, 418, 433, 436, 425, 425, 482, + 482, 482, 421, 452, 433, 433, 433, 436, 436, 436, + 424, 427, 680, 425, 452, 452, 431, 73, 73, 74, - 280, 278, 276, 274, 272, 270, 268, 93, 94, 94, - 266, 264, 262, 260, 258, 94, 94, 94, 94, 94, - 94, 94, 256, 94, 252, 250, 249, 248, 247, 246, - 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, - 235, 220, 217, 202, 197, 186, 183, 182, 181, 94, - 95, 95, 177, 176, 170, 169, 167, 95, 95, 95, - 95, 95, 95, 95, 162, 95, 158, 156, 155, 154, - 153, 152, 149, 147, 146, 143, 139, 138, 137, 132, - 126, 124, 121, 115, 114, 87, 86, 84, 61, 49, - 48, 95, 96, 96, 37, 33, 32, 18, 15, 96, + 74, 74, 74, 74, 74, 74, 429, 431, 448, 435, + 433, 433, 437, 74, 677, 429, 429, 429, 453, 431, + 435, 437, 437, 437, 454, 431, 431, 437, 674, 453, + 673, 438, 448, 448, 429, 454, 569, 429, 670, 435, + 438, 438, 438, 469, 469, 469, 438, 569, 453, 454, + 469, 669, 668, 74, 74, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 439, 455, 456, + 79, 79, 457, 458, 569, 460, 667, 462, 439, 455, + 456, 456, 461, 457, 458, 459, 460, 455, 462, 665, + 457, 439, 460, 461, 462, 487, 459, 79, 487, 473, - 96, 96, 96, 96, 96, 96, 13, 96, 4, 2, + 473, 439, 465, 465, 465, 664, 461, 473, 458, 458, + 79, 79, 81, 81, 81, 81, 81, 81, 81, 663, + 459, 459, 465, 661, 466, 466, 81, 466, 468, 468, + 468, 472, 472, 474, 474, 475, 475, 476, 476, 476, + 659, 475, 466, 477, 477, 472, 477, 477, 468, 526, + 488, 472, 472, 488, 526, 481, 481, 481, 476, 474, + 474, 480, 480, 526, 481, 657, 81, 81, 85, 85, + 85, 85, 85, 85, 85, 656, 480, 483, 483, 483, + 489, 490, 85, 489, 490, 491, 480, 481, 491, 492, + 493, 494, 492, 493, 494, 495, 496, 497, 495, 496, + + 497, 498, 499, 500, 498, 499, 500, 501, 655, 652, + 501, 504, 515, 649, 504, 515, 518, 523, 528, 518, + 523, 528, 85, 85, 95, 504, 515, 95, 724, 648, + 518, 523, 528, 530, 532, 534, 530, 532, 534, 724, + 536, 647, 646, 536, 95, 95, 95, 530, 532, 534, + 95, 645, 95, 95, 536, 95, 643, 724, 95, 95, + 642, 640, 639, 95, 95, 638, 95, 542, 95, 95, + 95, 95, 555, 95, 542, 95, 95, 95, 97, 97, + 542, 538, 97, 555, 538, 637, 97, 97, 97, 97, + 97, 97, 97, 548, 97, 538, 548, 552, 554, 636, + + 552, 556, 555, 617, 557, 558, 635, 548, 560, 554, + 554, 552, 556, 561, 617, 557, 558, 558, 634, 560, + 97, 98, 98, 557, 561, 98, 556, 559, 563, 98, + 98, 98, 98, 98, 98, 98, 562, 98, 559, 563, + 564, 617, 633, 560, 560, 559, 630, 562, 561, 561, + 568, 564, 563, 562, 629, 570, 628, 564, 573, 573, + 573, 568, 627, 98, 99, 99, 570, 568, 99, 626, + 624, 619, 99, 99, 99, 99, 99, 99, 99, 573, + 99, 570, 572, 572, 572, 572, 574, 574, 574, 575, + 575, 575, 576, 576, 576, 576, 577, 577, 577, 575, + + 578, 578, 574, 579, 579, 577, 99, 100, 100, 613, + 593, 100, 612, 593, 696, 100, 100, 100, 100, 100, + 100, 100, 611, 100, 593, 696, 578, 578, 609, 579, + 579, 580, 580, 580, 614, 582, 582, 614, 608, 580, + 581, 581, 581, 582, 607, 606, 618, 605, 614, 100, + 101, 101, 696, 604, 101, 581, 616, 618, 101, 101, + 101, 101, 101, 101, 101, 620, 101, 616, 603, 621, + 621, 621, 618, 616, 651, 653, 620, 621, 623, 623, + 623, 620, 622, 622, 622, 651, 653, 676, 602, 706, + 651, 601, 101, 102, 102, 623, 653, 102, 676, 678, + + 706, 102, 102, 102, 102, 102, 102, 102, 676, 102, + 678, 622, 654, 654, 654, 708, 678, 694, 600, 654, + 679, 679, 679, 697, 697, 697, 708, 706, 694, 599, + 598, 697, 679, 708, 694, 102, 103, 103, 597, 596, + 103, 709, 709, 709, 103, 103, 103, 103, 103, 103, + 103, 715, 103, 595, 717, 718, 718, 718, 725, 725, + 725, 731, 715, 736, 718, 717, 732, 732, 732, 715, + 709, 722, 731, 729, 736, 592, 725, 591, 103, 104, + 104, 717, 722, 104, 729, 738, 732, 104, 104, 104, + 104, 104, 104, 104, 742, 104, 738, 744, 722, 731, + + 590, 736, 729, 589, 588, 742, 754, 748, 744, 587, + 738, 739, 739, 739, 744, 586, 584, 754, 748, 742, + 583, 104, 105, 105, 748, 567, 105, 745, 745, 745, + 105, 105, 105, 105, 105, 105, 105, 754, 105, 566, + 739, 565, 756, 745, 751, 751, 751, 760, 757, 757, + 757, 551, 751, 756, 759, 756, 762, 759, 760, 550, + 760, 547, 545, 544, 105, 106, 106, 762, 759, 106, + 757, 543, 541, 106, 106, 106, 106, 106, 106, 106, + 762, 106, 763, 763, 763, 764, 763, 766, 764, 767, + 767, 767, 540, 525, 522, 521, 520, 519, 766, 764, + + 517, 513, 512, 511, 767, 510, 509, 106, 107, 107, + 508, 766, 107, 507, 506, 503, 107, 107, 107, 107, + 107, 107, 107, 479, 107, 478, 450, 449, 446, 445, + 444, 443, 442, 441, 420, 404, 402, 397, 390, 389, + 387, 373, 372, 371, 368, 367, 366, 365, 364, 363, + 107, 108, 108, 359, 358, 108, 348, 346, 345, 108, + 108, 108, 108, 108, 108, 108, 344, 108, 343, 342, + 341, 335, 261, 243, 236, 235, 234, 232, 224, 217, + 216, 215, 213, 206, 201, 190, 187, 186, 185, 181, + 180, 174, 173, 108, 110, 110, 171, 166, 110, 162, + + 160, 159, 110, 110, 110, 110, 110, 110, 110, 158, + 110, 157, 156, 153, 151, 150, 147, 143, 142, 141, + 136, 130, 128, 125, 119, 118, 91, 90, 89, 49, + 48, 37, 33, 32, 18, 13, 110, 111, 111, 2, + 0, 111, 0, 0, 0, 111, 111, 111, 111, 111, + 111, 111, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 112, 112, 0, 0, 112, 0, 0, 0, 112, 112, + 112, 112, 112, 112, 112, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 96, 97, 97, 0, 0, 0, 0, - 0, 97, 97, 97, 97, 97, 97, 97, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 112, 113, 113, 0, 0, 113, 0, 0, + 0, 113, 113, 113, 113, 113, 113, 113, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 97, 98, 98, 0, 0, - 0, 0, 0, 98, 98, 98, 98, 98, 98, 98, - 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 113, 207, 207, 207, 207, + 207, 207, 207, 0, 0, 0, 0, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 98, 99, 99, - 0, 0, 0, 0, 0, 99, 99, 99, 99, 99, - 99, 99, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, - 100, 100, 0, 0, 0, 0, 0, 100, 100, 100, - 100, 100, 100, 100, 0, 100, 0, 0, 0, 0, + 207, 207, 211, 0, 0, 0, 211, 0, 0, 0, + 211, 211, 0, 211, 211, 211, 211, 0, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 229, 229, 229, + 229, 229, 229, 0, 0, 229, 0, 0, 229, 229, + 229, 0, 229, 229, 229, 229, 229, 229, 229, 229, + + 229, 229, 248, 248, 248, 248, 248, 248, 248, 0, + 0, 248, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 248, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 0, 100, 101, 101, 0, 0, 0, 0, 0, 101, - 101, 101, 101, 101, 101, 101, 0, 101, 0, 0, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 256, 256, 256, 256, 256, + 256, 256, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 101, 102, 102, 0, 0, 0, 0, - 0, 102, 102, 102, 102, 102, 102, 102, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 0, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 103, 0, 0, - 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, - 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 104, 104, - 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, - 104, 104, 0, 104, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 262, 263, 263, 263, 263, + 263, 263, 263, 0, 0, 0, 0, 0, 0, 0, + 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 106, 106, 0, 0, 0, 0, 0, 106, 106, 106, - 106, 106, 106, 106, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 266, 266, 266, 266, 266, 266, 266, 0, + 0, 0, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 106, 107, 107, 0, 0, 0, 0, 0, 107, - 107, 107, 107, 107, 107, 107, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 108, 108, 0, 0, 0, 0, - 0, 108, 108, 108, 108, 108, 108, 108, 0, 108, + 0, 0, 0, 0, 0, 0, 266, 266, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 0, 0, 0, 274, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 109, 109, 0, 0, + 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 274, 274, 275, 275, 275, 275, 275, - 0, 0, 0, 109, 109, 109, 109, 109, 109, 109, - 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 275, 275, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 109, 203, 203, - 203, 203, 203, 203, 0, 0, 0, 0, 0, 0, - 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 203, 203, 221, 221, 221, 221, 221, 221, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, + 275, 295, 295, 0, 0, 295, 0, 0, 0, 295, + 295, 295, 295, 295, 295, 295, 0, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, + 295, 295, 295, 295, 295, 295, 299, 299, 0, 0, + 299, 0, 0, 0, 299, 299, 299, 299, 299, 299, + 299, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 301, + 301, 0, 0, 301, 0, 0, 0, 301, 301, 301, + 301, 301, 301, 301, 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 221, 221, - 224, 224, 224, 224, 224, 224, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, + 0, 301, 303, 303, 0, 0, 303, 0, 0, 0, + + 303, 303, 303, 303, 303, 303, 303, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 303, 305, 305, 0, 0, 305, + 0, 0, 0, 305, 305, 305, 305, 305, 305, 305, + 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 305, 307, 307, + 0, 0, 307, 0, 0, 0, 307, 307, 307, 307, + 307, 307, 307, 0, 307, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 224, 232, 232, 232, 232, - 232, 232, 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 307, 309, 309, 0, 0, 309, 0, 0, 0, 309, + 309, 309, 309, 309, 309, 309, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 232, 251, 251, 0, 0, 0, 0, 0, 251, - 251, 251, 251, 251, 251, 251, 0, 251, 251, 251, - 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, - 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, - - 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, - 251, 251, 251, 251, 251, 251, 251, 255, 255, 0, - 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, - 255, 0, 255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 309, 311, 311, 0, 0, 311, 0, + 0, 0, 311, 311, 311, 311, 311, 311, 311, 0, + 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 255, 257, - 257, 0, 0, 0, 0, 0, 257, 257, 257, 257, - 257, 257, 257, 0, 257, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 259, 259, 0, 0, 0, 0, 0, 259, 259, - 259, 259, 259, 259, 259, 0, 259, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 311, 313, 313, 0, + 0, 313, 0, 0, 0, 313, 313, 313, 313, 313, + 313, 313, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 315, 315, 0, 0, 315, 0, 0, 0, 315, 315, + 315, 315, 315, 315, 315, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 261, 261, 0, 0, 0, 0, 0, - 261, 261, 261, 261, 261, 261, 261, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 263, 263, 0, 0, 0, - 0, 0, 263, 263, 263, 263, 263, 263, 263, 0, + 0, 0, 315, 317, 317, 0, 0, 317, 0, 0, - 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 317, 317, 317, 317, 317, 317, 317, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 263, 265, 265, 0, - 0, 0, 0, 0, 265, 265, 265, 265, 265, 265, - 265, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 267, - 267, 0, 0, 0, 0, 0, 267, 267, 267, 267, - 267, 267, 267, 0, 267, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 317, 319, 319, 0, 0, + 319, 0, 0, 0, 319, 319, 319, 319, 319, 319, + 319, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 319, 321, + 321, 0, 0, 321, 0, 0, 0, 321, 321, 321, + 321, 321, 321, 321, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 267, 269, 269, 0, 0, 0, 0, 0, 269, 269, - 269, 269, 269, 269, 269, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 321, 323, 323, 0, 0, 323, 0, 0, 0, + 323, 323, 323, 323, 323, 323, 323, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 271, 271, 0, 0, 0, 0, 0, - 271, 271, 271, 271, 271, 271, 271, 0, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 323, 325, 325, 0, 0, 325, + 0, 0, 0, 325, 325, 325, 325, 325, 325, 325, + 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 271, 273, 273, 0, 0, 0, - 0, 0, 273, 273, 273, 273, 273, 273, 273, 0, - 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 325, 327, 327, + 0, 0, 327, 0, 0, 0, 327, 327, 327, 327, + 327, 327, 327, 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 273, 275, 275, 0, - 0, 0, 0, 0, 275, 275, 275, 275, 275, 275, - 275, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 277, - 277, 0, 0, 0, 0, 0, 277, 277, 277, 277, - 277, 277, 277, 0, 277, 0, 0, 0, 0, 0, - + 327, 329, 329, 0, 0, 329, 0, 0, 0, 329, + 329, 329, 329, 329, 329, 329, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 279, 279, 0, 0, 0, 0, 0, 279, 279, - 279, 279, 279, 279, 279, 0, 279, 0, 0, 0, + 0, 0, 0, 329, 463, 463, 463, 463, 463, 463, + + 463, 0, 0, 463, 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 279, 281, 281, 0, 0, 0, 0, 0, - 281, 281, 281, 281, 281, 281, 281, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 463, 463, + 464, 464, 464, 464, 464, 464, 464, 0, 0, 464, + 0, 0, 464, 464, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 281, 283, 283, 0, 0, 0, - 0, 0, 283, 283, 283, 283, 283, 283, 283, 0, - 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 283, 285, 285, 0, - 0, 0, 0, 0, 285, 285, 285, 285, 285, 285, - 285, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 398, - 398, 0, 0, 0, 0, 0, 398, 398, 398, 398, - 398, 398, 398, 0, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 464, 464, 502, 502, 0, 0, + 502, 0, 0, 0, 502, 502, 502, 502, 502, 502, + 502, 0, 502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 398, 577, 577, 577, 577, 577, 577, 578, 578, 578, - 578, 578, 578, 579, 579, 579, 579, 579, 579, 580, - 0, 0, 0, 580, 581, 581, 0, 581, 581, 581, - 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, - 583, 584, 584, 584, 584, 584, 585, 585, 585, 585, - 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, - 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, + 0, 0, 0, 0, 0, 0, 0, 0, 502, 769, + 769, 769, 769, 769, 769, 769, 769, 769, 769, 770, + 770, 770, 770, 770, 770, 770, 770, 770, 770, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 773, + 0, 0, 0, 0, 773, 773, 0, 773, 774, 774, - 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, - 590, 590, 591, 591, 0, 0, 591, 592, 592, 0, - 0, 592, 593, 593, 0, 0, 593, 594, 594, 0, - 0, 594, 595, 595, 0, 0, 595, 596, 596, 0, - 0, 596, 597, 597, 0, 0, 597, 598, 598, 0, - 0, 598, 599, 599, 0, 0, 599, 600, 600, 0, - 0, 600, 601, 601, 0, 0, 601, 602, 602, 0, - 0, 602, 603, 603, 0, 0, 603, 604, 604, 0, - 0, 604, 605, 605, 0, 0, 605, 606, 606, 0, - 0, 606, 607, 607, 607, 607, 607, 607, 608, 608, + 0, 774, 774, 774, 774, 774, 774, 774, 775, 0, + 775, 776, 776, 776, 776, 776, 776, 776, 776, 776, + 776, 777, 0, 0, 0, 777, 777, 777, 0, 777, + 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, + 779, 779, 779, 779, 779, 779, 779, 779, 779, 780, + 780, 780, 780, 780, 780, 780, 780, 780, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, 782, 782, + 782, 782, 782, 782, 782, 782, 782, 783, 783, 783, + 783, 783, 783, 783, 783, 783, 783, 784, 784, 784, + 784, 784, 784, 784, 784, 784, 784, 785, 785, 785, - 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, - 610, 0, 0, 610, 611, 0, 0, 611, 612, 0, - 0, 612, 613, 0, 0, 613, 614, 0, 0, 614, - 615, 0, 0, 615, 616, 0, 0, 616, 617, 0, - 0, 617, 618, 0, 0, 618, 619, 0, 0, 619, - 620, 0, 0, 620, 621, 0, 0, 621, 622, 0, - 0, 622, 623, 0, 0, 623, 624, 0, 0, 624, - 625, 0, 0, 625, 626, 626, 0, 0, 626, 627, - 627, 0, 0, 627, 628, 628, 0, 0, 628, 629, - 629, 0, 0, 629, 630, 630, 0, 0, 630, 631, + 785, 785, 785, 785, 785, 785, 785, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 787, 787, 787, + 787, 787, 787, 787, 787, 787, 787, 788, 788, 788, + 788, 788, 788, 788, 788, 788, 788, 789, 789, 0, + 0, 789, 789, 789, 0, 789, 790, 790, 0, 0, + 790, 790, 790, 0, 790, 791, 791, 0, 0, 791, + 791, 791, 0, 791, 792, 792, 0, 0, 792, 792, + 792, 0, 792, 793, 793, 0, 0, 793, 793, 793, + 0, 793, 794, 794, 0, 0, 794, 794, 794, 0, + 794, 795, 795, 0, 0, 795, 795, 795, 0, 795, - 631, 0, 0, 631, 632, 632, 0, 0, 632, 633, - 633, 0, 0, 633, 634, 634, 0, 0, 634, 635, - 635, 0, 0, 635, 636, 636, 0, 0, 636, 637, - 637, 0, 0, 637, 638, 638, 0, 0, 638, 639, - 639, 0, 0, 639, 640, 640, 0, 0, 640, 641, - 641, 0, 0, 641, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 796, 796, 0, 0, 796, 796, 796, 0, 796, 797, + 797, 0, 0, 797, 797, 797, 0, 797, 798, 798, + 0, 0, 798, 798, 798, 0, 798, 799, 799, 0, + 0, 799, 799, 799, 0, 799, 800, 800, 0, 0, + 800, 800, 800, 0, 800, 801, 801, 0, 0, 801, + 801, 801, 0, 801, 802, 802, 0, 0, 802, 802, + 802, 0, 802, 803, 803, 0, 0, 803, 803, 803, + 0, 803, 804, 804, 0, 0, 804, 804, 804, 0, + 804, 805, 805, 805, 805, 805, 805, 805, 805, 805, + 805, 806, 806, 806, 806, 806, 806, 806, 806, 806, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576 + 806, 807, 0, 0, 0, 807, 807, 807, 0, 807, + 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 810, + 810, 810, 810, 810, 810, 810, 810, 810, 811, 811, + 811, 811, 811, 811, 811, 811, 811, 811, 812, 812, + 812, 812, 812, 812, 812, 812, 812, 813, 813, 813, + 813, 813, 813, 813, 813, 813, 813, 814, 814, 814, + 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, + 815, 815, 815, 815, 815, 815, 815, 816, 816, 816, + 816, 816, 816, 816, 816, 816, 816, 817, 817, 817, + + 817, 817, 817, 817, 817, 817, 817, 818, 818, 818, + 818, 818, 818, 818, 818, 818, 818, 819, 819, 819, + 819, 819, 819, 819, 819, 819, 819, 820, 820, 820, + 820, 820, 820, 820, 820, 820, 820, 821, 821, 821, + 821, 821, 821, 821, 821, 821, 821, 822, 0, 0, + 822, 0, 0, 0, 822, 823, 0, 0, 823, 0, + 0, 0, 823, 824, 0, 0, 824, 0, 0, 0, + 824, 825, 0, 0, 825, 0, 0, 0, 825, 826, + 0, 0, 826, 0, 0, 0, 826, 827, 0, 0, + 827, 0, 0, 0, 827, 828, 0, 0, 828, 0, + + 0, 0, 828, 829, 0, 0, 829, 0, 0, 0, + 829, 830, 0, 0, 830, 0, 0, 0, 830, 831, + 0, 0, 831, 0, 0, 0, 831, 832, 0, 0, + 832, 0, 0, 0, 832, 833, 0, 0, 833, 0, + 0, 0, 833, 834, 0, 0, 834, 0, 0, 0, + 834, 835, 0, 0, 835, 0, 0, 0, 835, 836, + 0, 0, 836, 0, 0, 0, 836, 837, 0, 0, + 837, 0, 0, 0, 837, 838, 838, 0, 0, 838, + 838, 838, 0, 838, 839, 839, 0, 0, 839, 839, + 839, 0, 839, 840, 840, 0, 0, 840, 840, 840, + + 0, 840, 841, 841, 0, 0, 841, 841, 841, 0, + 841, 842, 842, 0, 0, 842, 842, 842, 0, 842, + 843, 843, 0, 0, 843, 843, 843, 0, 843, 844, + 844, 0, 0, 844, 844, 844, 0, 844, 845, 845, + 0, 0, 845, 845, 845, 0, 845, 846, 846, 0, + 0, 846, 846, 846, 0, 846, 847, 847, 0, 0, + 847, 847, 847, 0, 847, 848, 848, 0, 0, 848, + 848, 848, 0, 848, 849, 849, 0, 0, 849, 849, + 849, 0, 849, 850, 850, 0, 0, 850, 850, 850, + 0, 850, 851, 851, 0, 0, 851, 851, 851, 0, + + 851, 852, 852, 0, 0, 852, 852, 852, 0, 852, + 853, 853, 0, 0, 853, 853, 853, 0, 853, 854, + 0, 0, 0, 854, 0, 854, 854, 854, 855, 855, + 855, 855, 855, 855, 855, 855, 855, 855, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 857, 857, 857, + 857, 857, 857, 857, 857, 857, 857, 858, 0, 0, + 858, 0, 0, 0, 858, 859, 0, 0, 859, 0, + 0, 0, 859, 860, 0, 0, 860, 0, 0, 0, + 860, 861, 0, 0, 861, 0, 0, 0, 861, 862, + 0, 0, 862, 0, 0, 0, 862, 863, 0, 0, + + 863, 0, 0, 0, 863, 864, 0, 0, 864, 0, + 0, 0, 864, 865, 0, 0, 865, 0, 0, 0, + 865, 866, 0, 0, 866, 0, 0, 0, 866, 867, + 0, 0, 867, 0, 0, 0, 867, 868, 0, 0, + 868, 0, 0, 0, 868, 869, 0, 0, 869, 0, + 0, 0, 869, 870, 0, 0, 870, 0, 0, 0, + 870, 871, 0, 0, 871, 0, 0, 0, 871, 872, + 0, 0, 872, 0, 0, 0, 872, 873, 0, 0, + 873, 0, 0, 0, 873, 874, 874, 0, 0, 874, + 874, 874, 0, 874, 875, 875, 875, 875, 875, 875, + + 875, 875, 875, 875, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768 } ; /* Table of booleans, true if rule could match eol. */ -static yyconst flex_int32_t yy_rule_can_match_eol[138] = +static yyconst flex_int32_t yy_rule_can_match_eol[139] = { 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1525,28 +1953,28 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; extern int hyy_flex_debug; int hyy_flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[137] = +static yyconst flex_int16_t yy_rule_linenum[138] = { 0, - 125, 130, 137, 139, 141, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 143, 148, 155, 157, 159, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 253, 254, 255, 256, 257, 261, 262, 267, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 289, 294, 306, 311, 313, 315, - 318, 320, 322, 325, 342, 347 + 271, 272, 273, 274, 275, 279, 280, 285, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 307, 312, 327, 329, 350, 352, + 354, 357, 359, 361, 364, 381, 386 } ; static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; @@ -1595,6 +2023,9 @@ /* copy a string between quotes */ char *strunquote(const char *); +/* print error message */ +void hyyerror(const char *); + /* remember hyperlynx file section we're in */ int section = -1; @@ -1637,8 +2068,15 @@ * Strings */ /* an unquoted string */ +/* a sequence of characters, excluding whitespace and reserved characters. +* also allow strings such as "(Net0)" . +*/ /* a string enclosed in double quotes " */ -#line 1642 "hyp_l.c" +/* an unquoted string with spaces */ +/* all variables used in assignments */ +/* an unquoted string with spaces is terminated by the next assignment or the end of line */ +/* an empty string is terminated by the next assignment, a ')' or a '}' */ +#line 2080 "hyp_l.c" #define INITIAL 0 #define STATE_STRING 1 @@ -1934,11 +2372,11 @@ { /* %% [7.0] user's declarations go here */ -#line 121 "hyp_l.l" +#line 139 "hyp_l.l" /* When in STATE_COMMENT skip all comment until next right brace */ -#line 1942 "hyp_l.c" +#line 2380 "hyp_l.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -1967,7 +2405,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) + if ( yy_current_state >= 769 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1974,7 +2412,7 @@ *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 2955 ); + while ( yy_base[yy_current_state] != 4505 ); yy_find_action: /* %% [10.0] code to find the action number goes here */ @@ -2017,13 +2455,13 @@ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 137 ) + else if ( yy_act < 138 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], hyytext ); - else if ( yy_act == 137 ) + else if ( yy_act == 138 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", hyytext ); - else if ( yy_act == 138 ) + else if ( yy_act == 139 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2036,7 +2474,7 @@ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 125 "hyp_l.l" +#line 143 "hyp_l.l" { BEGIN INITIAL; /* skip all comment until next right brace */ } YY_BREAK @@ -2045,7 +2483,7 @@ case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 130 "hyp_l.l" +#line 148 "hyp_l.l" { BEGIN INITIAL; /* skip all comment until next end-of-line */ } YY_BREAK @@ -2054,18 +2492,18 @@ case 3: /* rule 3 can match eol */ YY_RULE_SETUP -#line 137 "hyp_l.l" +#line 155 "hyp_l.l" { /* skip comments */ } YY_BREAK case 4: YY_RULE_SETUP -#line 139 "hyp_l.l" +#line 157 "hyp_l.l" { /* skip whitespace */ } YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 141 "hyp_l.l" +#line 159 "hyp_l.l" { /* skip newlines */ } YY_BREAK @@ -2075,238 +2513,238 @@ /* Sections */ case 6: YY_RULE_SETUP -#line 151 "hyp_l.l" +#line 169 "hyp_l.l" {section = H_BOARD_FILE; return H_BOARD_FILE;} YY_BREAK case 7: YY_RULE_SETUP -#line 152 "hyp_l.l" +#line 170 "hyp_l.l" {section = H_VERSION; return H_VERSION;} YY_BREAK case 8: YY_RULE_SETUP -#line 153 "hyp_l.l" +#line 171 "hyp_l.l" {section = H_DATA_MODE; return H_DATA_MODE;} YY_BREAK case 9: YY_RULE_SETUP -#line 154 "hyp_l.l" +#line 172 "hyp_l.l" {section = H_UNITS; return H_UNITS;} YY_BREAK case 10: YY_RULE_SETUP -#line 155 "hyp_l.l" +#line 173 "hyp_l.l" {section = H_PLANE_SEP; return H_PLANE_SEP;} YY_BREAK case 11: YY_RULE_SETUP -#line 156 "hyp_l.l" +#line 174 "hyp_l.l" {section = H_BOARD; BEGIN STATE_COMMENT_EOL; return H_BOARD;} YY_BREAK case 12: YY_RULE_SETUP -#line 157 "hyp_l.l" +#line 175 "hyp_l.l" {section = H_STACKUP; BEGIN STATE_COMMENT_EOL; return H_STACKUP;} YY_BREAK case 13: YY_RULE_SETUP -#line 158 "hyp_l.l" +#line 176 "hyp_l.l" {section = H_DEVICES; BEGIN STATE_COMMENT_EOL; return H_DEVICES;} YY_BREAK case 14: YY_RULE_SETUP -#line 159 "hyp_l.l" +#line 177 "hyp_l.l" {section = H_SUPPLIES; BEGIN STATE_COMMENT_EOL; return H_SUPPLIES;} YY_BREAK case 15: YY_RULE_SETUP -#line 160 "hyp_l.l" +#line 178 "hyp_l.l" {section = H_PADSTACK; BEGIN STATE_STRING; return H_PADSTACK;} YY_BREAK case 16: YY_RULE_SETUP -#line 161 "hyp_l.l" +#line 179 "hyp_l.l" {section = H_NET; BEGIN STATE_STRING; return H_NET;} YY_BREAK case 17: YY_RULE_SETUP -#line 162 "hyp_l.l" +#line 180 "hyp_l.l" {section = H_NET_CLASS; return H_NET_CLASS;} YY_BREAK case 18: YY_RULE_SETUP -#line 163 "hyp_l.l" +#line 181 "hyp_l.l" {section = H_END; return H_END;} YY_BREAK case 19: YY_RULE_SETUP -#line 164 "hyp_l.l" +#line 182 "hyp_l.l" {section = H_KEY; return H_KEY;} YY_BREAK /* Keywords */ case 20: YY_RULE_SETUP -#line 168 "hyp_l.l" +#line 186 "hyp_l.l" {return H_A;} YY_BREAK case 21: YY_RULE_SETUP -#line 169 "hyp_l.l" +#line 187 "hyp_l.l" {return H_ARC;} YY_BREAK case 22: YY_RULE_SETUP -#line 170 "hyp_l.l" +#line 188 "hyp_l.l" {return H_COPPER;} YY_BREAK case 23: YY_RULE_SETUP -#line 171 "hyp_l.l" +#line 189 "hyp_l.l" {return H_CURVE;} YY_BREAK case 24: YY_RULE_SETUP -#line 172 "hyp_l.l" +#line 190 "hyp_l.l" {if (section == H_DATA_MODE) BEGIN STATE_COMMENT; return H_DETAILED;} YY_BREAK case 25: YY_RULE_SETUP -#line 173 "hyp_l.l" +#line 191 "hyp_l.l" {return H_DIELECTRIC;} YY_BREAK case 26: YY_RULE_SETUP -#line 174 "hyp_l.l" +#line 192 "hyp_l.l" {return H_ENGLISH;} YY_BREAK case 27: YY_RULE_SETUP -#line 175 "hyp_l.l" +#line 193 "hyp_l.l" {if (section == H_UNITS) BEGIN STATE_COMMENT; return H_LENGTH;} YY_BREAK case 28: YY_RULE_SETUP -#line 176 "hyp_l.l" +#line 194 "hyp_l.l" {return H_LINE;} YY_BREAK case 29: YY_RULE_SETUP -#line 177 "hyp_l.l" +#line 195 "hyp_l.l" {return H_METRIC;} YY_BREAK case 30: YY_RULE_SETUP -#line 178 "hyp_l.l" +#line 196 "hyp_l.l" {return H_M;} YY_BREAK case 31: YY_RULE_SETUP -#line 179 "hyp_l.l" +#line 197 "hyp_l.l" {return H_N;} YY_BREAK case 32: YY_RULE_SETUP -#line 180 "hyp_l.l" +#line 198 "hyp_l.l" {return H_OPTIONS;} YY_BREAK case 33: YY_RULE_SETUP -#line 181 "hyp_l.l" +#line 199 "hyp_l.l" {return H_PAD;} YY_BREAK case 34: YY_RULE_SETUP -#line 182 "hyp_l.l" +#line 200 "hyp_l.l" {return H_PERIMETER_ARC;} YY_BREAK case 35: YY_RULE_SETUP -#line 183 "hyp_l.l" +#line 201 "hyp_l.l" {return H_PERIMETER_SEGMENT;} YY_BREAK case 36: YY_RULE_SETUP -#line 184 "hyp_l.l" +#line 202 "hyp_l.l" {return H_PIN;} YY_BREAK case 37: YY_RULE_SETUP -#line 185 "hyp_l.l" +#line 203 "hyp_l.l" {return H_PLANE;} YY_BREAK case 38: YY_RULE_SETUP -#line 186 "hyp_l.l" +#line 204 "hyp_l.l" {return H_POLYGON;} YY_BREAK case 39: YY_RULE_SETUP -#line 187 "hyp_l.l" +#line 205 "hyp_l.l" {return H_POLYLINE;} YY_BREAK case 40: YY_RULE_SETUP -#line 188 "hyp_l.l" +#line 206 "hyp_l.l" {return H_POLYVOID;} YY_BREAK case 41: YY_RULE_SETUP -#line 189 "hyp_l.l" +#line 207 "hyp_l.l" {return H_POUR;} YY_BREAK case 42: YY_RULE_SETUP -#line 190 "hyp_l.l" +#line 208 "hyp_l.l" {return H_S;} YY_BREAK case 43: YY_RULE_SETUP -#line 191 "hyp_l.l" +#line 209 "hyp_l.l" {return H_T;} YY_BREAK case 44: YY_RULE_SETUP -#line 192 "hyp_l.l" +#line 210 "hyp_l.l" {return H_SEG;} YY_BREAK case 45: YY_RULE_SETUP -#line 193 "hyp_l.l" +#line 211 "hyp_l.l" {return H_SIGNAL;} YY_BREAK case 46: YY_RULE_SETUP -#line 194 "hyp_l.l" +#line 212 "hyp_l.l" {if (section == H_DATA_MODE) BEGIN STATE_COMMENT; return H_SIMPLIFIED; } YY_BREAK case 47: YY_RULE_SETUP -#line 195 "hyp_l.l" +#line 213 "hyp_l.l" {return H_SIM_BOTH;} YY_BREAK case 48: YY_RULE_SETUP -#line 196 "hyp_l.l" +#line 214 "hyp_l.l" {return H_SIM_IN;} YY_BREAK case 49: YY_RULE_SETUP -#line 197 "hyp_l.l" +#line 215 "hyp_l.l" {return H_SIM_OUT;} YY_BREAK case 50: YY_RULE_SETUP -#line 198 "hyp_l.l" +#line 216 "hyp_l.l" {return H_USEG;} YY_BREAK case 51: YY_RULE_SETUP -#line 199 "hyp_l.l" +#line 217 "hyp_l.l" {return H_VIA;} YY_BREAK case 52: YY_RULE_SETUP -#line 200 "hyp_l.l" +#line 218 "hyp_l.l" {if (section == H_UNITS) BEGIN STATE_COMMENT; return H_WEIGHT;} YY_BREAK /* Assignments */ @@ -2315,7 +2753,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 204 "hyp_l.l" +#line 222 "hyp_l.l" {return H_A;} YY_BREAK case 54: @@ -2323,7 +2761,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 205 "hyp_l.l" +#line 223 "hyp_l.l" {return H_A1;} YY_BREAK case 55: @@ -2331,7 +2769,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 206 "hyp_l.l" +#line 224 "hyp_l.l" {return H_A2;} YY_BREAK case 56: @@ -2339,7 +2777,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 207 "hyp_l.l" +#line 225 "hyp_l.l" {return H_BR;} YY_BREAK case 57: @@ -2347,7 +2785,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 208 "hyp_l.l" +#line 226 "hyp_l.l" {return H_C;} YY_BREAK case 58: @@ -2355,7 +2793,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 209 "hyp_l.l" +#line 227 "hyp_l.l" {return H_C_QM;} YY_BREAK case 59: @@ -2363,7 +2801,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 210 "hyp_l.l" +#line 228 "hyp_l.l" {return H_CO_QM;} YY_BREAK case 60: @@ -2371,7 +2809,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 211 "hyp_l.l" +#line 229 "hyp_l.l" {return H_D;} YY_BREAK case 61: @@ -2379,7 +2817,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 212 "hyp_l.l" +#line 230 "hyp_l.l" {return H_ER;} YY_BREAK case 62: @@ -2387,7 +2825,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 213 "hyp_l.l" +#line 231 "hyp_l.l" {return H_F;} YY_BREAK case 63: @@ -2395,7 +2833,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 214 "hyp_l.l" +#line 232 "hyp_l.l" {BEGIN STATE_POSINT; return H_ID;} YY_BREAK case 64: @@ -2403,7 +2841,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 215 "hyp_l.l" +#line 233 "hyp_l.l" {BEGIN STATE_STRING; return H_L;} YY_BREAK case 65: @@ -2411,7 +2849,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 216 "hyp_l.l" +#line 234 "hyp_l.l" {BEGIN STATE_STRING; return H_L1;} YY_BREAK case 66: @@ -2419,7 +2857,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 217 "hyp_l.l" +#line 235 "hyp_l.l" {BEGIN STATE_STRING; return H_L2;} YY_BREAK case 67: @@ -2427,7 +2865,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 218 "hyp_l.l" +#line 236 "hyp_l.l" {return H_LPS;} YY_BREAK case 68: @@ -2435,7 +2873,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 219 "hyp_l.l" +#line 237 "hyp_l.l" {return H_LT;} YY_BREAK case 69: @@ -2443,7 +2881,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 220 "hyp_l.l" +#line 238 "hyp_l.l" {BEGIN STATE_STRING; return H_M;} YY_BREAK case 70: @@ -2451,7 +2889,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 221 "hyp_l.l" +#line 239 "hyp_l.l" {BEGIN STATE_STRING; return H_N;} YY_BREAK case 71: @@ -2459,7 +2897,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 222 "hyp_l.l" +#line 240 "hyp_l.l" {BEGIN STATE_STRING; return H_NAME;} YY_BREAK /* P is used as "plating thickness" in "stackup/signal" and as "padstack" in "net/via" */ @@ -2468,7 +2906,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 224 "hyp_l.l" +#line 242 "hyp_l.l" {if (section == H_NET) BEGIN STATE_STRING; return H_P;} YY_BREAK case 73: @@ -2476,7 +2914,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 225 "hyp_l.l" +#line 243 "hyp_l.l" {BEGIN STATE_STRING; return H_PKG;} YY_BREAK case 74: @@ -2484,7 +2922,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 226 "hyp_l.l" +#line 244 "hyp_l.l" {return H_PR_QM;} YY_BREAK case 75: @@ -2492,7 +2930,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 227 "hyp_l.l" +#line 245 "hyp_l.l" {return H_PS;} YY_BREAK case 76: @@ -2500,7 +2938,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 228 "hyp_l.l" +#line 246 "hyp_l.l" {return H_R;} YY_BREAK case 77: @@ -2508,7 +2946,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 229 "hyp_l.l" +#line 247 "hyp_l.l" {BEGIN STATE_STRING; return H_REF;} YY_BREAK case 78: @@ -2516,7 +2954,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 230 "hyp_l.l" +#line 248 "hyp_l.l" {BEGIN STATE_STRING; return H_S;} YY_BREAK case 79: @@ -2524,7 +2962,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 231 "hyp_l.l" +#line 249 "hyp_l.l" {return H_SX;} YY_BREAK case 80: @@ -2532,7 +2970,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 232 "hyp_l.l" +#line 250 "hyp_l.l" {return H_SY;} YY_BREAK case 81: @@ -2540,7 +2978,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 233 "hyp_l.l" +#line 251 "hyp_l.l" {BEGIN STATE_STRING; return H_S1;} YY_BREAK case 82: @@ -2548,7 +2986,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 234 "hyp_l.l" +#line 252 "hyp_l.l" {return H_S1X;} YY_BREAK case 83: @@ -2556,7 +2994,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 235 "hyp_l.l" +#line 253 "hyp_l.l" {return H_S1Y;} YY_BREAK case 84: @@ -2564,7 +3002,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 236 "hyp_l.l" +#line 254 "hyp_l.l" {BEGIN STATE_STRING; return H_S2;} YY_BREAK case 85: @@ -2572,7 +3010,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 237 "hyp_l.l" +#line 255 "hyp_l.l" {return H_S2X;} YY_BREAK case 86: @@ -2580,7 +3018,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 238 "hyp_l.l" +#line 256 "hyp_l.l" {return H_S2Y;} YY_BREAK case 87: @@ -2588,7 +3026,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 239 "hyp_l.l" +#line 257 "hyp_l.l" {return H_T;} YY_BREAK case 88: @@ -2596,7 +3034,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 240 "hyp_l.l" +#line 258 "hyp_l.l" {return H_TC;} YY_BREAK case 89: @@ -2604,7 +3042,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 17; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 241 "hyp_l.l" +#line 259 "hyp_l.l" {return H_USE_DIE_FOR_METAL;} YY_BREAK case 90: @@ -2612,7 +3050,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 242 "hyp_l.l" +#line 260 "hyp_l.l" {BEGIN STATE_STRING; return H_V;} YY_BREAK case 91: @@ -2620,7 +3058,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 243 "hyp_l.l" +#line 261 "hyp_l.l" {return H_V_QM;} YY_BREAK case 92: @@ -2628,7 +3066,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 244 "hyp_l.l" +#line 262 "hyp_l.l" {return H_VAL;} YY_BREAK case 93: @@ -2636,7 +3074,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 245 "hyp_l.l" +#line 263 "hyp_l.l" {return H_W;} YY_BREAK case 94: @@ -2644,7 +3082,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 246 "hyp_l.l" +#line 264 "hyp_l.l" {return H_X;} YY_BREAK case 95: @@ -2652,7 +3090,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 247 "hyp_l.l" +#line 265 "hyp_l.l" {return H_X1;} YY_BREAK case 96: @@ -2660,7 +3098,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 248 "hyp_l.l" +#line 266 "hyp_l.l" {return H_X2;} YY_BREAK case 97: @@ -2668,7 +3106,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 249 "hyp_l.l" +#line 267 "hyp_l.l" {return H_XC;} YY_BREAK case 98: @@ -2676,7 +3114,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 250 "hyp_l.l" +#line 268 "hyp_l.l" {return H_Y;} YY_BREAK case 99: @@ -2684,7 +3122,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 251 "hyp_l.l" +#line 269 "hyp_l.l" {return H_Y1;} YY_BREAK case 100: @@ -2692,7 +3130,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 252 "hyp_l.l" +#line 270 "hyp_l.l" {return H_Y2;} YY_BREAK case 101: @@ -2700,7 +3138,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 253 "hyp_l.l" +#line 271 "hyp_l.l" {return H_YC;} YY_BREAK case 102: @@ -2708,7 +3146,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 254 "hyp_l.l" +#line 272 "hyp_l.l" {return H_Z;} YY_BREAK case 103: @@ -2716,7 +3154,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 255 "hyp_l.l" +#line 273 "hyp_l.l" {return H_ZL;} YY_BREAK case 104: @@ -2724,7 +3162,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 256 "hyp_l.l" +#line 274 "hyp_l.l" {return H_ZLEN;} YY_BREAK case 105: @@ -2732,18 +3170,18 @@ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up hyytext again */ YY_RULE_SETUP -#line 257 "hyp_l.l" +#line 275 "hyp_l.l" {return H_ZW;} YY_BREAK /* Booleans */ case 106: YY_RULE_SETUP -#line 261 "hyp_l.l" +#line 279 "hyp_l.l" {hyylval.boolval = 1; return H_BOOL; } YY_BREAK case 107: YY_RULE_SETUP -#line 262 "hyp_l.l" +#line 280 "hyp_l.l" {hyylval.boolval = 0; return H_BOOL; } YY_BREAK /* Floats */ @@ -2750,88 +3188,88 @@ /* ordinary floating point numbers */ case 108: YY_RULE_SETUP -#line 267 "hyp_l.l" +#line 285 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL); return H_FLOAT;} YY_BREAK /* floating point numbers with suffix, e,g. pF, nH */ case 109: YY_RULE_SETUP -#line 270 "hyp_l.l" +#line 288 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e24; return H_FLOAT;} YY_BREAK case 110: YY_RULE_SETUP -#line 271 "hyp_l.l" +#line 289 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e21; return H_FLOAT;} YY_BREAK case 111: YY_RULE_SETUP -#line 272 "hyp_l.l" +#line 290 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e18; return H_FLOAT;} YY_BREAK case 112: YY_RULE_SETUP -#line 273 "hyp_l.l" +#line 291 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e15; return H_FLOAT;} YY_BREAK case 113: YY_RULE_SETUP -#line 274 "hyp_l.l" +#line 292 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e12; return H_FLOAT;} YY_BREAK case 114: YY_RULE_SETUP -#line 275 "hyp_l.l" +#line 293 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e9; return H_FLOAT;} YY_BREAK case 115: YY_RULE_SETUP -#line 276 "hyp_l.l" +#line 294 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e6; return H_FLOAT;} YY_BREAK case 116: YY_RULE_SETUP -#line 277 "hyp_l.l" +#line 295 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e3; return H_FLOAT;} YY_BREAK case 117: YY_RULE_SETUP -#line 278 "hyp_l.l" +#line 296 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-3; return H_FLOAT;} YY_BREAK case 118: YY_RULE_SETUP -#line 279 "hyp_l.l" +#line 297 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-6; return H_FLOAT;} YY_BREAK case 119: YY_RULE_SETUP -#line 280 "hyp_l.l" +#line 298 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-9; return H_FLOAT;} YY_BREAK case 120: YY_RULE_SETUP -#line 281 "hyp_l.l" +#line 299 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-12; return H_FLOAT;} YY_BREAK case 121: YY_RULE_SETUP -#line 282 "hyp_l.l" +#line 300 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-15; return H_FLOAT;} YY_BREAK case 122: YY_RULE_SETUP -#line 283 "hyp_l.l" +#line 301 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-18; return H_FLOAT;} YY_BREAK case 123: YY_RULE_SETUP -#line 284 "hyp_l.l" +#line 302 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-21; return H_FLOAT;} YY_BREAK case 124: YY_RULE_SETUP -#line 285 "hyp_l.l" +#line 303 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL) * 1e-24; return H_FLOAT;} YY_BREAK /* floating point numbers in VERSION and PLANE_SEP have no suffix and are followed by optional comments */ @@ -2838,7 +3276,7 @@ case 125: YY_RULE_SETUP -#line 289 "hyp_l.l" +#line 307 "hyp_l.l" {hyylval.floatval = strtod(hyytext, NULL); BEGIN STATE_COMMENT; return H_FLOAT;} YY_BREAK @@ -2846,7 +3284,7 @@ case 126: YY_RULE_SETUP -#line 294 "hyp_l.l" +#line 312 "hyp_l.l" { BEGIN INITIAL; hyylval.intval = atoi(hyytext); return H_POSINT; } YY_BREAK @@ -2856,50 +3294,73 @@ * NAME= L1=somelayer * NAME= ) * NAME= } + * and we accept the following constructs as representing "a string with spaces" + * NAME=a string with spaces L1=somelayer */ case 127: YY_RULE_SETUP -#line 306 "hyp_l.l" +#line 327 "hyp_l.l" { yyless(0); BEGIN INITIAL; hyylval.strval = pcb_strdup(""); return H_STRING; } /* emit empty string and reprocess */ YY_BREAK +case 128: +YY_RULE_SETUP +#line 329 "hyp_l.l" +{ + char *s = pcb_strdup(hyytext); + BEGIN INITIAL; -case 128: + /* strip final ' VAR=' */ + if ((strlen(s) != 0) && (s[strlen(s)-1] == '=')) { + char* space = strrchr(s, ' '); + if (space != NULL) *space = '\0'; + yyless(strlen(s)); + if (strchr(s, ' ') != NULL) hyyerror("warning: unquoted string with space"); + } + + hyylval.strval = s; + + return H_STRING; + } + YY_BREAK + + +case 129: YY_RULE_SETUP -#line 311 "hyp_l.l" +#line 350 "hyp_l.l" {return '{';} YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 313 "hyp_l.l" +#line 352 "hyp_l.l" {BEGIN STATE_COMMENT_EOL; return '}';} YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 315 "hyp_l.l" +#line 354 "hyp_l.l" {if (section == H_PADSTACK) BEGIN STATE_STRING; return '(';} YY_BREAK /* allow for comment after the closing bracket ) */ -case 131: +case 132: YY_RULE_SETUP -#line 318 "hyp_l.l" +#line 357 "hyp_l.l" {BEGIN STATE_COMMENT_EOL; return ')';} YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 320 "hyp_l.l" +#line 359 "hyp_l.l" {return ',';} YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 322 "hyp_l.l" +#line 361 "hyp_l.l" {if ((section == H_VERSION) || (section == H_PLANE_SEP)) BEGIN STATE_FLOAT; return '=';} YY_BREAK /* string */ -case 134: +case 135: YY_RULE_SETUP -#line 325 "hyp_l.l" +#line 364 "hyp_l.l" { /* * Commas are not allowed in strings in the padstack section @@ -2917,9 +3378,9 @@ } YY_BREAK /* string in double quotes */ -case 135: +case 136: YY_RULE_SETUP -#line 342 "hyp_l.l" +#line 381 "hyp_l.l" {BEGIN INITIAL; hyylval.strval = strunquote(hyytext); return H_STRING;} YY_BREAK case YY_STATE_EOF(INITIAL): @@ -2928,22 +3389,22 @@ case YY_STATE_EOF(STATE_FLOAT): case YY_STATE_EOF(STATE_COMMENT): case YY_STATE_EOF(STATE_COMMENT_EOL): -#line 344 "hyp_l.l" +#line 383 "hyp_l.l" {yyterminate();} YY_BREAK /* have bison catch all unrecognized characters with parse errors */ -case 136: +case 137: YY_RULE_SETUP -#line 347 "hyp_l.l" +#line 386 "hyp_l.l" {return hyytext[0];} YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 351 "hyp_l.l" +#line 390 "hyp_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 2947 "hyp_l.c" +#line 3408 "hyp_l.c" case YY_END_OF_BUFFER: { @@ -3225,7 +3686,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) + if ( yy_current_state >= 769 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3253,11 +3714,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) + if ( yy_current_state >= 769 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 576); + yy_is_jam = (yy_current_state == 768); if ( ! yy_is_jam ) *(yy_state_ptr)++ = yy_current_state; @@ -4053,7 +4514,7 @@ /* %ok-for-header */ -#line 350 "hyp_l.l" +#line 389 "hyp_l.l" Index: src_plugins/io_hyp/hyp_l.h =================================================================== --- src_plugins/io_hyp/hyp_l.h (revision 8646) +++ src_plugins/io_hyp/hyp_l.h (revision 8647) @@ -444,7 +444,7 @@ #undef YY_DECL #endif -#line 350 "hyp_l.l" +#line 389 "hyp_l.l" #line 451 "hyp_l.h" Index: src_plugins/io_hyp/hyp_l.l =================================================================== --- src_plugins/io_hyp/hyp_l.l (revision 8646) +++ src_plugins/io_hyp/hyp_l.l (revision 8647) @@ -34,6 +34,9 @@ /* copy a string between quotes */ char *strunquote(const char *); +/* print error message */ +void hyyerror(const char *); + /* remember hyperlynx file section we're in */ int section = -1; @@ -113,11 +116,26 @@ */ /* an unquoted string */ -STRING [^ \t\v\f\r\n\{\}\(\)=\"]+ + /* a sequence of characters, excluding whitespace and reserved characters. + * also allow strings such as "(Net0)" . + */ +STRING [^ \t\v\f\r\n\{\}\(\)=\"]+|"("[[:alnum:]]+")" /* a string enclosed in double quotes " */ QUOTED_STRING \"([^\"\n]|\"\")*\" +/* an unquoted string with spaces */ +CHARS_AND_SPACES [^\t\v\f\r\n\{\}\(\)=\"\,]+ + +/* all variables used in assignments */ +VARIABLE ("A"|"A1"|"A2"|"BR"|"C"|"C\?"|"CO\?"|"D"|"ER"|"F"|"ID"|"L"|"L1"|"L2"|"LPS"|"LT"|"M"|"N"|"NAME"|"P"|"PKG"|"PR\?"|"PS"|"R"|"REF"|"S"|"SX"|"SY"|"S1"|"S1X"|"S1Y"|"S2"|"S2X"|"S2Y"|"T"|"TC"|"USE_DIE_FOR_METAL"|"V"|"V\?"|"VAL"|"W"|"X"|"X1"|"X2"|"XC"|"Y"|"Y1"|"Y2"|"YC"|"Z"|"ZL"|"ZLEN"|"ZW") + +/* an unquoted string with spaces is terminated by the next assignment or the end of line */ +STRING_W_SPACES {CHARS_AND_SPACES}(" "{VARIABLE}"=")? + +/* an empty string is terminated by the next assignment, a ')' or a '}' */ +EMPTY_STRING ({WS}{VARIABLE}"="|")"|"}") + %% /* When in STATE_COMMENT skip all comment until next right brace */ @@ -301,9 +319,30 @@ * NAME= L1=somelayer * NAME= ) * NAME= } + * and we accept the following constructs as representing "a string with spaces" + * NAME=a string with spaces L1=somelayer */ { -([A-Z][A-Z1-2_]*{WS}*"="|")"|"}") { yyless(0); BEGIN INITIAL; hyylval.strval = pcb_strdup(""); return H_STRING; } /* emit empty string and reprocess */ + +{EMPTY_STRING} { yyless(0); BEGIN INITIAL; hyylval.strval = pcb_strdup(""); return H_STRING; } /* emit empty string and reprocess */ + +{STRING_W_SPACES} { + char *s = pcb_strdup(hyytext); + + BEGIN INITIAL; + + /* strip final ' VAR=' */ + if ((strlen(s) != 0) && (s[strlen(s)-1] == '=')) { + char* space = strrchr(s, ' '); + if (space != NULL) *space = '\0'; + yyless(strlen(s)); + if (strchr(s, ' ') != NULL) hyyerror("warning: unquoted string with space"); + } + + hyylval.strval = s; + + return H_STRING; + } } <*>{ Index: src_plugins/io_hyp/hyp_y.y =================================================================== --- src_plugins/io_hyp/hyp_y.y (revision 8646) +++ src_plugins/io_hyp/hyp_y.y (revision 8647) @@ -624,7 +624,7 @@ line_or_curve : line | curve - | ')' { hyyerror("warning: skipping unexpected ')'"); } + | ')' { hyyerror("warning: unexpected ')'"); } | '(' error ')' ; Index: src_plugins/io_hyp/parser.c =================================================================== --- src_plugins/io_hyp/parser.c (revision 8646) +++ src_plugins/io_hyp/parser.c (revision 8647) @@ -397,7 +397,8 @@ } else { /* no device with this name exists, and no such device has been listed in a DEVICE record. Let's create the device anyhow so we can continue. Assume device is on component side. */ - pcb_printf("device \"%s\" not specified in DEVICE record. continuing.\n", element_name); + if (hyp_debug) + pcb_printf("device \"%s\" not specified in DEVICE record. continuing.\n", element_name); elem = pcb_element_new(hyp_dest, NULL, pcb_font(PCB, 0, 1), flags, element_name, element_name, NULL, x, y, text_direction, text_scale, flags, pcb_false);