1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345
|
This is a Lynx -dump of the Kermit Project web page:
http://kermitproject.org/ckupdates.html
Current directory is /net/u/1/f/fdc/web/
-rw-r--r-- 1 fdc kermit 0 Jun 2 2014 [1]#bronx24.txt#
-rw-r--r-- 1 fdc kermit 45 Jun 2 2014 [2]#bronx495.txt#
-rw-r--r-- 1 fdc kermit 19952 Feb 5 2016 [3]#change.html#
-rw-r----- 1 fdc kermit 15712 Mar 15 2019 [4]#ftpclient-es.html
#
-rw-r----- 1 fdc kermit 24562 Mar 12 2019 [5]#index-es.html#
-rw-r----- 1 fdc kermit 10717 Jun 26 10:51 [6]#kermit.css#
-rw-r----- 1 fdc kermit 53078 Jun 26 10:28 [7]#kermit.html#
-rw-r--r-- 1 fdc kermit 23253 May 3 2017 [8]#perf.html#
-rw-r--r-- 1 fdc kermit 11830 Nov 11 2016 [9]#sitemap.xml#
-rw-r--r-- 1 fdc kermit 62 Mar 2 2018 [10]0000.log
-rw-r--r-- 1 fdc kermit 45681 Feb 8 2002 [11]10847.PDF
-rw-r--r-- 1 fdc kermit 9152 Feb 11 2001 [12]1170.jpg
-rw-r--r-- 1 fdc kermit 488864 Sep 6 2017 [13]123.html
-rw-r--r-- 1 fdc kermit 0 May 26 1988 [14]19880526 00:00:00
-rw-r--r-- 1 fdc kermit 0 Aug 22 1996 [15]19960822 00:00:00
drwxr-xr-x 2 fdc kermit 17 Mar 10 2003 [16]206/
drwxr-xr-x 2 fdc kermit 18 Mar 23 2017 [17]208/
-rw-r--r-- 1 fdc kermit 243 Apr 14 2014 [18]412.txt
-rw-r--r-- 1 fdc kermit 223 Apr 14 2014 [19]412.txt.~1~
-rw-r--r-- 1 fdc kermit 185670 Jan 11 2003 [20]480.jpg
-rw-r--r-- 1 fdc kermit 779 Dec 11 2002 [21]5cows.gif
-rw-r--r-- 1 fdc kermit 1580 Jan 12 1996 [22]5rate.gif
-rw-r--r-- 1 fdc kermit 852 Dec 11 2002 [23]5ratelg.gif
-rw-r--r-- 1 fdc kermit 797 Dec 11 2002 [24]5ratesm.gif
-rw-r--r-- 1 fdc kermit 1621 Jun 29 1998 [25]5star.gif
-rw-r--r-- 1 fdc kermit 40145 Feb 1 2001 [26]AAVSYS.TXT
-rw-r--r-- 1 fdc kermit 6758 Feb 12 2000 [27]BOOK.HTM
lrwxrwxrwx 1 fdc kermit 16 Mar 27 2003 [28]COPYING.TXT -> ..
/f/COPYING.TXT
-rw-r--r-- 1 fdc kermit 437 Sep 23 2011 [29]ChangeEmail.sh
-rw-r--r-- 1 fdc kermit 454 Sep 27 2011 [30]ChangeSupport.sh
-rw-r--r-- 1 fdc kermit 466 Mar 30 2011 [31]ChangeURL.sh
-rw-r--r-- 1 fdc kermit 22409 Nov 20 2002 [32]Cincinnati-Flat-R
olls-vs-Kermit.pdf
-rw-r--r-- 1 fdc kermit 114 Sep 18 2013 [33]IMAGES
-rw-r--r-- 1 fdc kermit 27643 Oct 24 2005 [34]KermitComm.pdf
lrwxrwx--- 1 fdc kermit 14 Jul 24 14:23 [35]NOTES.html -> cku
pdates.html
-rw-r--r-- 1 fdc kermit 332176 Sep 21 2004 [36]TRCFrances245_N5.
jpg
-rw-r--r-- 1 fdc kermit 40598 Apr 11 2004 [37]aavsys.txt
-rw-r--r-- 1 fdc kermit 8975 Aug 25 2019 [38]aaxcom.html
-rw-r--r-- 1 fdc kermit 1847 Sep 23 2011 [39]aaxfly.html
-rw-r--r-- 1 fdc kermit 13866 Jan 1 2003 [40]aaxfly.txt
-rw-r--r-- 1 fdc kermit 1051133 Dec 24 2019 [41]about-da.pdf
lrwxrwx--- 1 fdc kermit 11 Jan 15 2017 [42]about.html -> ker
mit.html
-rw-r--r-- 1 fdc kermit 2687 Dec 6 1994 [43]ac2_i.gif
-rw-r--r-- 1 fdc kermit 2255 Dec 7 1994 [44]ac2_i2.gif
-rw-r--r-- 1 fdc kermit 3548 Dec 6 1994 [45]ac5_i.gif
-rw-r--r-- 1 fdc kermit 3846 Dec 7 1994 [46]ac5_i2.gif
-rw-r--r-- 1 fdc kermit 13110 Sep 23 2011 [47]academic.html
-rw-r--r-- 1 fdc kermit 72486 Sep 13 08:12 [48]accents.html
-rw-r--r-- 1 fdc kermit 71446 Sep 27 2011 [49]accents.html.~1~
-rw-r--r-- 1 fdc kermit 68691 Jun 25 2003 [50]accents.save
-rw-r--r-- 1 fdc kermit 1021 Sep 23 2011 [51]addme.html
-rw-r--r-- 1 fdc kermit 1719 Sep 23 2011 [52]advanced.html
-rw-r--r-- 1 fdc kermit 4663 Jun 20 2002 [53]aleph-sm.gif
-rw-r--r-- 1 fdc kermit 22308 Jun 20 2002 [54]aleph.gif
-rw-r--r-- 1 fdc kermit 4413 Jun 20 2002 [55]aleph_sm.gif
-rw-r--r-- 1 fdc kermit 1287 Sep 23 2011 [56]amazon.html
-rw-r--r-- 1 fdc kermit 22359 Apr 1 1995 [57]annex-a-75.gif
-rw-r--r-- 1 fdc kermit 20709 Sep 25 2014 [58]anniversary.html
-rw-r--r-- 1 fdc kermit 4391 Jul 11 2011 [59]announce.html
-rw-r--r-- 1 fdc kermit 5123 Mar 10 2011 [60]announce01.html
-rw-r--r-- 1 fdc kermit 1286 Apr 22 1999 [61]any.gif
-rw-r--r-- 1 fdc kermit 3313 Sep 23 2011 [62]api.html
-rw-r--r-- 1 fdc kermit 4498 Sep 25 2014 [63]appleii.html
-rw-r--r-- 1 fdc kermit 4291 Mar 4 2003 [64]arabic.html
-rw-r--r-- 1 fdc kermit 157209 Sep 5 13:44 [65]archive.html
-rw-r--r-- 1 fdc kermit 157202 Apr 23 16:24 [66]archive.html.~10~
-rw-r--r-- 1 fdc kermit 154824 Sep 25 2014 [67]archive.html.~1~
-rw-r--r-- 1 fdc kermit 156472 Feb 10 2016 [68]archive.html.~2~
-rw-r--r-- 1 fdc kermit 156816 Apr 9 11:07 [69]archive.html.~9~
-rw-r--r-- 1 fdc kermit 4615 Sep 23 2011 [70]arrowkeys.html
-rw-r--r-- 1 fdc kermit 4693 Feb 21 2000 [71]asap.html
-rw-r--r-- 1 fdc kermit 8378 Sep 23 2011 [72]ascii.html
-rw-r--r-- 1 fdc kermit 80 Nov 9 2001 [73]authnet.cfg
-rw-r--r-- 1 fdc kermit 7716 Nov 9 2001 [74]authnet.cgi
-rw-r--r-- 1 fdc kermit 13 Oct 15 2010 [75]b
-rw-r--r-- 1 fdc kermit 138477 Sep 25 2014 [76]b.html
-rw-r--r-- 1 fdc kermit 41463 Nov 19 2013 [77]backspace-100.jpg
-rw-r--r-- 1 fdc kermit 66581 Nov 19 2013 [78]backspace-140.jpg
-rw-r--r-- 1 fdc kermit 31034 Nov 24 2013 [79]backspace.html
-rw-r--r-- 1 fdc kermit 30129 Nov 2 2013 [80]backspace.html.~1
~
-rw-r--r-- 1 fdc kermit 31049 Nov 19 2013 [81]backspace.html.~2
~
-rw-r--r-- 1 fdc kermit 1776 Mar 3 2018 [82]backup.ksc
-rw-r--r-- 1 fdc kermit 1260 Mar 2 2018 [83]backup.ksc.~1~
-rw-r--r-- 1 fdc kermit 1306 Mar 2 2018 [84]backup.ksc.~2~
-rw-r--r-- 1 fdc kermit 1652 Mar 2 2018 [85]backup.ksc.~5~
-rw-r--r-- 1 fdc kermit 1787 Mar 2 2018 [86]backup.ksc.~6~
-rw-r--r-- 1 fdc kermit 12326 Dec 9 1994 [87]bacteria.gif
-rw-r--r-- 1 fdc kermit 76423 Jun 18 2009 [88]banner-748.jpg
-rw-r--r-- 1 fdc kermit 29468 Jun 18 2009 [89]banner-xxx.jpg
-rw-r--r-- 1 fdc kermit 28614 Oct 26 2002 [90]banner.gif
-rw-r--r-- 1 fdc kermit 27 Oct 15 2010 [91]be.txt
-rw-r--r-- 1 fdc kermit 4206 Sep 16 2010 [92]benchmarks-160.jp
g
-rw-r--r-- 1 fdc kermit 12775 Sep 16 2010 [93]benchmarks-280.jp
g
-rw-r--r-- 1 fdc kermit 63875 Sep 16 2010 [94]benchmarks-740.jp
g
-rw-r--r-- 1 fdc kermit 194390 Sep 18 2013 [95]benchmarks-r.jpg
-rw-r--r-- 1 fdc kermit 11763 Sep 18 2013 [96]benchmarks-t.jpg
-rw-r--r-- 1 fdc kermit 1309 Sep 18 2013 [97]benchmarks.html
-rw-r--r-- 1 fdc kermit 377318 Sep 16 2010 [98]benchmarks.jpg
-rw-r--r-- 1 fdc kermit 20353 Mar 21 2010 [99]bggray-8.jpg
-rw-r--r-- 1 fdc kermit 15062 Mar 21 2010 [100]bggray.jpg
-rw-r--r-- 1 fdc kermit 12168 Nov 19 2009 [101]bglblue.jpg
-rw-r--r-- 1 fdc kermit 15 Mar 22 2003 [102]bh
-rw-r--r-- 1 fdc kermit 17171 Feb 28 2020 [103]biblio.html
-rw-r--r-- 1 fdc kermit 15741 Oct 29 2013 [104]biblio.html.~1~
-rw-r--r-- 1 fdc kermit 16636 Feb 10 2016 [105]biblio.html.~2~
-rw-r--r-- 1 fdc kermit 17159 Feb 15 2016 [106]biblio.html.~3~
-rw-r--r-- 1 fdc kermit 17170 Aug 25 2019 [107]biblio.html.~4~
-rw-r--r-- 1 fdc kermit 6281 Apr 30 2002 [108]biblio.save-me
-rw-r--r-- 1 fdc kermit 35554 Dec 31 1995 [109]bigfinish.gif
drwxr-xr-x 2 fdc kermit 2 Jan 11 2015 [110]bin/
-rw-r--r-- 1 fdc kermit 25425 Dec 6 1994 [111]biplane.gif
-rw-r--r-- 1 fdc kermit 5074 Dec 6 1994 [112]biplane_icon.gif
-rw-r--r-- 1 fdc kermit 1677442 Apr 22 2007 [113]black.html
-rw-r--r-- 1 fdc kermit 2921 Mar 22 2013 [114]boeing787-100.jp
g
-rw-r--r-- 1 fdc kermit 63802 Mar 22 2013 [115]boeing787-1024.j
pg
-rw-r--r-- 1 fdc kermit 4785 Mar 22 2013 [116]boeing787-150.jp
g
-rw-r--r-- 1 fdc kermit 6904 Mar 22 2013 [117]boeing787-200.jp
g
-rw-r--r-- 1 fdc kermit 10603 Mar 22 2013 [118]boeing787-280.jp
g
-rw-r--r-- 1 fdc kermit 13684 Mar 22 2013 [119]boeing787-400.jp
g
-rw-r--r-- 1 fdc kermit 177199 Mar 22 2013 [120]boeing787-740.jp
g
-rw-r--r-- 1 fdc kermit 191354 Sep 18 2013 [121]boeing787-r.jpg
-rw-r--r-- 1 fdc kermit 12377 Sep 18 2013 [122]boeing787-t.jpg
-rw-r--r-- 1 fdc kermit 1162 Sep 18 2013 [123]boeing787.html
lrwxrwxrwx 1 fdc kermit 17 Sep 18 2013 [124]boeing787.jpg ->
boeing787-740.jpg
-rw-r--r-- 1 fdc kermit 3784 Sep 27 2011 [125]book-gallery.htm
l
-rw-r--r-- 1 fdc kermit 16373 Mar 11 2011 [126]book-strip-1-080
.jpg
-rw-r--r-- 1 fdc kermit 24419 Mar 11 2011 [127]book-strip-1-100
.jpg
-rw-r--r-- 1 fdc kermit 46617 Mar 11 2011 [128]book-strip-1-150
.jpg
-rw-r--r-- 1 fdc kermit 74756 Mar 11 2011 [129]book-strip-1-200
.jpg
-rw-r--r-- 1 fdc kermit 133642 Mar 11 2011 [130]book-strip-1-280
.jpg
lrwxrwx--- 1 fdc kermit 12 Nov 11 2016 [131]books.html -> ma
nuals.html
-rw-r--r-- 1 fdc kermit 19466 Jul 28 2019 [132]booksonline.html
-rw-r--r-- 1 fdc kermit 19121 Jul 14 2017 [133]booksonline.html
.~10~
-rw-r--r-- 1 fdc kermit 19141 Jul 27 2019 [134]booksonline.html
.~11~
-rw-r--r-- 1 fdc kermit 15808 Feb 9 2016 [135]booksonline.html
.~1~
-rw-r--r-- 1 fdc kermit 15999 Feb 10 2016 [136]booksonline.html
.~2~
-rw-r--r-- 1 fdc kermit 11012 Dec 6 1994 [137]boxes.gif
-rw-r--r-- 1 fdc kermit 643 Dec 6 1994 [138]boxes_icon.gif
-rw-r--r-- 1 fdc kermit 15699 Aug 24 2019 [139]brake.html
drwxr-xr-x 11 fdc kermit 3518 Sep 15 14:33 [140]bronx/
-rw-rw-r-- 1 fdc kermit 249154 May 21 2014 [141]bronx1.jpg
-rw-rw-r-- 1 fdc kermit 327753 Sep 4 2013 [142]bronx10.jpg
-rw-r--r-- 1 fdc kermit 38 Sep 26 2013 [143]bronx100.html
-rw-rw-r-- 1 fdc kermit 357236 Sep 26 2013 [144]bronx100.jpg
-rw-rw-r-- 1 fdc kermit 477700 May 11 2019 [145]bronx1000.jpg
-rw-r--r-- 1 fdc kermit 230210 Sep 13 19:54 [146]bronx1001.jpg
-rw-r--r-- 1 fdc kermit 61748 Sep 13 19:56 [147]bronx1002.jpg
-rw-r--r-- 1 fdc kermit 66872 Sep 13 19:59 [148]bronx1003.jpg
-rw-r--r-- 1 fdc kermit 58755 Sep 13 20:01 [149]bronx1004.jpg
-rw-r--r-- 1 fdc kermit 28632 Sep 13 20:02 [150]bronx1005.jpg
-rw-r--r-- 1 fdc kermit 290716 Sep 13 20:04 [151]bronx1006.jpg
-rw-r--r-- 1 fdc kermit 109907 Sep 13 20:06 [152]bronx1007.jpg
-rw-r--r-- 1 fdc kermit 243481 Sep 13 20:09 [153]bronx1008.jpg
-rw-r--r-- 1 fdc kermit 269545 Sep 13 20:12 [154]bronx1009.jpg
-rw-rw-r-- 1 fdc kermit 211082 Sep 26 2013 [155]bronx101.jpg
-rw-r--r-- 1 fdc kermit 140790 Sep 13 20:19 [156]bronx1010.jpg
-rw-r--r-- 1 fdc kermit 242483 Sep 13 20:21 [157]bronx1011.jpg
-rw-r--r-- 1 fdc kermit 163232 Sep 13 20:22 [158]bronx1012.jpg
-rw-r--r-- 1 fdc kermit 184350 Sep 13 20:23 [159]bronx1013.jpg
-rw-r--r-- 1 fdc kermit 174881 Sep 13 20:40 [160]bronx1014.jpg
-rw-r--r-- 1 fdc kermit 311893 Sep 13 20:42 [161]bronx1015.jpg
-rw-r--r-- 1 fdc kermit 207170 Sep 13 20:44 [162]bronx1016.jpg
-rw-r--r-- 1 fdc kermit 355280 Sep 13 20:44 [163]bronx1017.jpg
-rw-r--r-- 1 fdc kermit 200364 Sep 13 20:46 [164]bronx1018.jpg
-rw-r--r-- 1 fdc kermit 315050 Sep 15 13:48 [165]bronx1019.jpg
-rw-rw-r-- 1 fdc kermit 392988 Sep 26 2013 [166]bronx102.jpg
-rw-r--r-- 1 fdc kermit 251452 Sep 13 20:48 [167]bronx1020.jpg
-rw-r--r-- 1 fdc kermit 250829 Sep 13 20:49 [168]bronx1021.jpg
-rw-r--r-- 1 fdc kermit 218760 Sep 13 20:50 [169]bronx1022.jpg
-rw-r--r-- 1 fdc kermit 73605 Sep 13 20:51 [170]bronx1023.jpg
-rw-r--r-- 1 fdc kermit 207434 Sep 13 20:53 [171]bronx1024.jpg
-rw-r--r-- 1 fdc kermit 278485 Sep 13 20:54 [172]bronx1025.jpg
-rw-r--r-- 1 fdc kermit 153563 Sep 13 20:55 [173]bronx1026.jpg
-rw-r--r-- 1 fdc kermit 158616 Sep 13 20:56 [174]bronx1027.jpg
-rw-r--r-- 1 fdc kermit 413011 Sep 14 08:54 [175]bronx1028.jpg
-rw-r--r-- 1 fdc kermit 361658 Sep 14 08:55 [176]bronx1029.jpg
-rw-rw-r-- 1 fdc kermit 321483 Sep 26 2013 [177]bronx103.jpg
-rw-r--r-- 1 fdc kermit 336561 Sep 14 08:55 [178]bronx1030.jpg
-rw-r--r-- 1 fdc kermit 375971 Sep 14 08:56 [179]bronx1031.jpg
-rw-r--r-- 1 fdc kermit 308456 Sep 14 08:58 [180]bronx1032.jpg
-rw-r--r-- 1 fdc kermit 197403 Sep 15 13:45 [181]bronx1033.jpg
-rw-r--r-- 1 fdc kermit 151858 Sep 14 09:02 [182]bronx1034.jpg
-rw-r--r-- 1 fdc kermit 54406 Sep 14 09:05 [183]bronx1035.jpg
-rw-r--r-- 1 fdc kermit 156902 Sep 14 09:07 [184]bronx1036.jpg
-rw-r--r-- 1 fdc kermit 257580 Sep 14 10:47 [185]bronx1037.jpg
-rw-r--r-- 1 fdc kermit 264818 Sep 14 10:48 [186]bronx1038.jpg
-rw-r--r-- 1 fdc kermit 220956 Sep 14 10:50 [187]bronx1039.jpg
-rw-rw-r-- 1 fdc kermit 300284 Sep 26 2013 [188]bronx104.jpg
-rw-r--r-- 1 fdc kermit 174580 Sep 14 10:50 [189]bronx1040.jpg
-rw-r--r-- 1 fdc kermit 207966 Sep 14 10:51 [190]bronx1041.jpg
-rw-r--r-- 1 fdc kermit 199352 Sep 14 10:52 [191]bronx1042.jpg
-rw-r--r-- 1 fdc kermit 292032 Sep 14 10:54 [192]bronx1043.jpg
-rw-r--r-- 1 fdc kermit 344180 Sep 14 10:55 [193]bronx1044.jpg
-rw-r--r-- 1 fdc kermit 352395 Sep 14 10:56 [194]bronx1045.jpg
-rw-r--r-- 1 fdc kermit 191628 Sep 14 11:17 [195]bronx1046.jpg
-rw-r--r-- 1 fdc kermit 334433 Sep 14 10:57 [196]bronx1047.jpg
-rw-r--r-- 1 fdc kermit 205003 Sep 14 11:02 [197]bronx1048.jpg
-rw-r--r-- 1 fdc kermit 309814 Sep 14 11:04 [198]bronx1049.jpg
-rw-rw-r-- 1 fdc kermit 199766 Sep 26 2013 [199]bronx105.jpg
-rw-r--r-- 1 fdc kermit 333060 Sep 14 09:08 [200]bronx1050.jpg
-rw-r--r-- 1 fdc kermit 291409 Sep 14 09:11 [201]bronx1051.jpg
-rw-r--r-- 1 fdc kermit 345362 Sep 14 09:13 [202]bronx1052.jpg
-rw-r--r-- 1 fdc kermit 230990 Sep 14 09:14 [203]bronx1053.jpg
-rw-r--r-- 1 fdc kermit 295557 Sep 14 09:15 [204]bronx1054.jpg
-rw-r--r-- 1 fdc kermit 355048 Sep 14 09:16 [205]bronx1055.jpg
-rw-r--r-- 1 fdc kermit 311899 Sep 14 10:01 [206]bronx1056.jpg
-rw-r--r-- 1 fdc kermit 223809 Sep 14 10:03 [207]bronx1057.jpg
-rw-r--r-- 1 fdc kermit 170912 Sep 14 10:05 [208]bronx1058.jpg
-rw-r--r-- 1 fdc kermit 85293 Sep 14 10:09 [209]bronx1059.jpg
-rw-rw-r-- 1 fdc kermit 346302 Sep 26 2013 [210]bronx106.jpg
-rw-r--r-- 1 fdc kermit 239978 Sep 14 10:12 [211]bronx1060.jpg
-rw-r--r-- 1 fdc kermit 400925 Sep 14 10:13 [212]bronx1061.jpg
-rw-r--r-- 1 fdc kermit 422951 Sep 14 10:14 [213]bronx1062.jpg
-rw-r--r-- 1 fdc kermit 12395806 Aug 5 11:29 [214]bronx1063.gif
-rw-r--r-- 1 fdc kermit 126987 Sep 14 10:16 [215]bronx1064.jpg
-rw-r--r-- 1 fdc kermit 276545 Sep 14 10:17 [216]bronx1065.jpg
-rw-rw-r-- 1 fdc kermit 261843 Sep 26 2013 [217]bronx107.jpg
-rw-rw-r-- 1 fdc kermit 216792 Sep 26 2013 [218]bronx108.jpg
-rw-rw-r-- 1 fdc kermit 327998 Sep 26 2013 [219]bronx109.jpg
-rw-rw-r-- 1 fdc kermit 323094 Sep 4 2013 [220]bronx11.jpg
-rw-rw-r-- 1 fdc kermit 386652 Sep 26 2013 [221]bronx110.jpg
-rw-rw-r-- 1 fdc kermit 286433 Sep 26 2013 [222]bronx111.jpg
-rw-rw-r-- 1 fdc kermit 243024 Sep 26 2013 [223]bronx112.jpg
-rw-rw-r-- 1 fdc kermit 350870 Sep 26 2013 [224]bronx113.jpg
-rw-rw-r-- 1 fdc kermit 360963 Sep 26 2013 [225]bronx114.jpg
-rw-rw-r-- 1 fdc kermit 328830 Sep 26 2013 [226]bronx115.jpg
-rw-rw-r-- 1 fdc kermit 359106 Sep 26 2013 [227]bronx116.jpg
-rw-rw-r-- 1 fdc kermit 311197 Sep 26 2013 [228]bronx117.jpg
-rw-rw-r-- 1 fdc kermit 339278 Sep 26 2013 [229]bronx118.jpg
-rw-rw-r-- 1 fdc kermit 385296 Sep 26 2013 [230]bronx119.jpg
-rw-rw-r-- 1 fdc kermit 320932 Sep 4 2013 [231]bronx12.jpg
-rw-rw-r-- 1 fdc kermit 351389 Sep 26 2013 [232]bronx120.jpg
-rw-rw-r-- 1 fdc kermit 248810 Sep 26 2013 [233]bronx121.jpg
-rw-rw-r-- 1 fdc kermit 300552 Sep 26 2013 [234]bronx122.jpg
-rw-rw-r-- 1 fdc kermit 264466 Sep 26 2013 [235]bronx123.jpg
-rw-rw-r-- 1 fdc kermit 379845 Sep 26 2013 [236]bronx124.jpg
-rw-rw-r-- 1 fdc kermit 325089 Sep 26 2013 [237]bronx125.jpg
-rw-rw-r-- 1 fdc kermit 432430 Sep 26 2013 [238]bronx126.jpg
-rw-rw-r-- 1 fdc kermit 165622 Sep 26 2013 [239]bronx127.jpg
-rw-rw-r-- 1 fdc kermit 212785 Sep 26 2013 [240]bronx128.jpg
-rw-rw-r-- 1 fdc kermit 248679 Sep 27 2013 [241]bronx129.jpg
-rw-rw-r-- 1 fdc kermit 199041 Sep 4 2013 [242]bronx13.jpg
-rw-rw-r-- 1 fdc kermit 125167 Sep 27 2013 [243]bronx130.jpg
-rw-rw-r-- 1 fdc kermit 147606 Sep 27 2013 [244]bronx131.jpg
-rw-rw-r-- 1 fdc kermit 385738 Jun 2 2014 [245]bronx132.jpg
-rw-rw-r-- 1 fdc kermit 370022 Jun 2 2014 [246]bronx133.jpg
-rw-rw-r-- 1 fdc kermit 298350 Sep 27 2013 [247]bronx134.jpg
-rw-rw-r-- 1 fdc kermit 256683 Sep 27 2013 [248]bronx135.jpg
-rw-rw-r-- 1 fdc kermit 269994 Sep 27 2013 [249]bronx136.jpg
-rw-rw-r-- 1 fdc kermit 116912 Sep 27 2013 [250]bronx137.jpg
-rw-rw-r-- 1 fdc kermit 274621 Sep 27 2013 [251]bronx138.jpg
-rw-rw-r-- 1 fdc kermit 269187 Sep 27 2013 [252]bronx139.jpg
-rw-rw-r-- 1 fdc kermit 293611 Sep 4 2013 [253]bronx14.jpg
-rw-rw-r-- 1 fdc kermit 305463 Sep 27 2013 [254]bronx140.jpg
-rw-rw-r-- 1 fdc kermit 327953 Sep 27 2013 [255]bronx141.jpg
-rw-rw-r-- 1 fdc kermit 296757 Sep 27 2013 [256]bronx142.jpg
-rw-rw-r-- 1 fdc kermit 356332 Sep 27 2013 [257]bronx143.jpg
-rw-rw-r-- 1 fdc kermit 265843 Sep 27 2013 [258]bronx144.jpg
-rw-rw-r-- 1 fdc kermit 220932 Sep 27 2013 [259]bronx145.jpg
-rw-rw-r-- 1 fdc kermit 256683 Sep 27 2013 [260]bronx146.jpg
-rw-rw-r-- 1 fdc kermit 247781 Oct 5 2013 [261]bronx147.jpg
-rw-rw-r-- 1 fdc kermit 253456 Oct 5 2013 [262]bronx148.jpg
-rw-rw-r-- 1 fdc kermit 347875 Oct 5 2013 [263]bronx149.jpg
-rw-rw-r-- 1 fdc kermit 379139 Sep 25 2013 [264]bronx15.jpg
-rw-rw-r-- 1 fdc kermit 240242 Oct 5 2013 [265]bronx150.jpg
-rw-rw-r-- 1 fdc kermit 223226 Oct 5 2013 [266]bronx151.jpg
-rw-rw-r-- 1 fdc kermit 66061 Oct 5 2013 [267]bronx152.jpg
-rw-rw-r-- 1 fdc kermit 58200 Oct 8 2013 [268]bronx153.jpg
-rw-rw-r-- 1 fdc kermit 147592 Oct 14 2013 [269]bronx154.jpg
-rw-rw-r-- 1 fdc kermit 286324 Oct 14 2013 [270]bronx155.jpg
-rw-rw-r-- 1 fdc kermit 269414 Oct 14 2013 [271]bronx156.jpg
-rw-rw-r-- 1 fdc kermit 146440 Oct 14 2013 [272]bronx157.jpg
-rw-rw-r-- 1 fdc kermit 306994 Oct 14 2013 [273]bronx158.jpg
-rw-rw-r-- 1 fdc kermit 181972 Oct 14 2013 [274]bronx159.jpg
-rw-rw-r-- 1 fdc kermit 298656 Sep 4 2013 [275]bronx16.jpg
-rw-rw-r-- 1 fdc kermit 286169 Oct 14 2013 [276]bronx160.jpg
-rw-rw-r-- 1 fdc kermit 272485 Oct 14 2013 [277]bronx161.jpg
-rw-rw-r-- 1 fdc kermit 327774 Oct 14 2013 [278]bronx162.jpg
-rw-rw-r-- 1 fdc kermit 135396 Oct 14 2013 [279]bronx163.jpg
-rw-rw-r-- 1 fdc kermit 278258 Oct 14 2013 [280]bronx164.jpg
-rw-rw-r-- 1 fdc kermit 321922 Oct 14 2013 [281]bronx165.jpg
-rw-rw-r-- 1 fdc kermit 359608 Oct 14 2013 [282]bronx166.jpg
-rw-rw-r-- 1 fdc kermit 268130 Oct 14 2013 [283]bronx167.jpg
-rw-rw-r-- 1 fdc kermit 256593 Oct 14 2013 [284]bronx168.jpg
-rw-rw-r-- 1 fdc kermit 315869 Oct 14 2013 [285]bronx169.jpg
-rw-rw-r-- 1 fdc kermit 226716 Sep 4 2013 [286]bronx17.jpg
-rw-rw-r-- 1 fdc kermit 411443 Oct 14 2013 [287]bronx170.jpg
-rw-rw-r-- 1 fdc kermit 251179 Oct 14 2013 [288]bronx171.jpg
-rw-rw-r-- 1 fdc kermit 350043 Oct 14 2013 [289]bronx172.jpg
-rw-rw-r-- 1 fdc kermit 313576 Oct 14 2013 [290]bronx173.jpg
-rw-rw-r-- 1 fdc kermit 337530 Oct 14 2013 [291]bronx174.jpg
-rw-rw-r-- 1 fdc kermit 340702 Oct 14 2013 [292]bronx175.jpg
-rw-rw-r-- 1 fdc kermit 203620 Oct 14 2013 [293]bronx176.jpg
-rw-rw-r-- 1 fdc kermit 115821 Oct 15 2013 [294]bronx177.jpg
-rw-rw-r-- 1 fdc kermit 313194 Oct 15 2013 [295]bronx178.jpg
-rw-rw-r-- 1 fdc kermit 350468 Oct 15 2013 [296]bronx179.jpg
-rw-rw-r-- 1 fdc kermit 266152 Sep 4 2013 [297]bronx18.jpg
-rw-rw-r-- 1 fdc kermit 312532 Oct 15 2013 [298]bronx180.jpg
-rw-rw-r-- 1 fdc kermit 272849 Oct 15 2013 [299]bronx181.jpg
-rw-rw-r-- 1 fdc kermit 354403 Oct 15 2013 [300]bronx182.jpg
-rw-rw-r-- 1 fdc kermit 249458 Oct 15 2013 [301]bronx183.jpg
-rw-rw-r-- 1 fdc kermit 294908 Oct 15 2013 [302]bronx184.jpg
-rw-rw-r-- 1 fdc kermit 265118 Oct 15 2013 [303]bronx185.jpg
-rw-rw-r-- 1 fdc kermit 283230 Oct 15 2013 [304]bronx186.jpg
-rw-rw-r-- 1 fdc kermit 256445 Oct 15 2013 [305]bronx187.jpg
-rw-rw-r-- 1 fdc kermit 353889 Oct 30 2013 [306]bronx188.jpg
-rw-rw-r-- 1 fdc kermit 319421 Oct 30 2013 [307]bronx189.jpg
-rw-rw-r-- 1 fdc kermit 291643 Sep 4 2013 [308]bronx19.jpg
-rw-rw-r-- 1 fdc kermit 417417 Oct 30 2013 [309]bronx190.jpg
-rw-rw-r-- 1 fdc kermit 321830 Oct 30 2013 [310]bronx191.jpg
-rw-rw-r-- 1 fdc kermit 265362 Oct 30 2013 [311]bronx192.jpg
-rw-rw-r-- 1 fdc kermit 224580 Oct 30 2013 [312]bronx193.jpg
-rw-rw-r-- 1 fdc kermit 251909 Oct 30 2013 [313]bronx194.jpg
-rw-rw-r-- 1 fdc kermit 288822 Oct 30 2013 [314]bronx195.jpg
-rw-rw-r-- 1 fdc kermit 166040 Oct 30 2013 [315]bronx196.jpg
-rw-rw-r-- 1 fdc kermit 397865 Oct 30 2013 [316]bronx197.jpg
-rw-rw-r-- 1 fdc kermit 318862 Nov 3 2013 [317]bronx198.jpg
-rw-rw-r-- 1 fdc kermit 345919 Nov 3 2013 [318]bronx199.jpg
-rw-rw-r-- 1 fdc kermit 302080 Sep 4 2013 [319]bronx2.jpg
-rw-rw-r-- 1 fdc kermit 336726 Sep 25 2013 [320]bronx20.jpg
-rw-rw-r-- 1 fdc kermit 94505 Nov 3 2013 [321]bronx200.jpg
-rw-rw-r-- 1 fdc kermit 173718 Nov 3 2013 [322]bronx201.jpg
-rw-rw-r-- 1 fdc kermit 267307 Nov 3 2013 [323]bronx202.jpg
-rw-rw-r-- 1 fdc kermit 330537 Nov 3 2013 [324]bronx203.jpg
-rw-rw-r-- 1 fdc kermit 371165 Nov 3 2013 [325]bronx204.jpg
-rw-rw-r-- 1 fdc kermit 359075 Nov 3 2013 [326]bronx205.jpg
-rw-rw-r-- 1 fdc kermit 387798 Nov 3 2013 [327]bronx206.jpg
-rw-rw-r-- 1 fdc kermit 370508 Nov 3 2013 [328]bronx207.jpg
-rw-rw-r-- 1 fdc kermit 243946 Nov 3 2013 [329]bronx208.jpg
-rw-rw-r-- 1 fdc kermit 348153 Nov 11 2013 [330]bronx209.jpg
-rw-rw-r-- 1 fdc kermit 203891 Sep 4 2013 [331]bronx21.jpg
-rw-rw-r-- 1 fdc kermit 341286 Nov 11 2013 [332]bronx210.jpg
-rw-rw-r-- 1 fdc kermit 230906 Nov 11 2013 [333]bronx211.jpg
-rw-rw-r-- 1 fdc kermit 390120 Nov 11 2013 [334]bronx212.jpg
-rw-rw-r-- 1 fdc kermit 225185 Nov 16 2013 [335]bronx213.jpg
-rw-rw-r-- 1 fdc kermit 192715 Nov 16 2013 [336]bronx214.jpg
-rw-rw-r-- 1 fdc kermit 137646 Nov 16 2013 [337]bronx215.jpg
-rw-rw-r-- 1 fdc kermit 412955 Nov 16 2013 [338]bronx216.jpg
-rw-rw-r-- 1 fdc kermit 411911 Nov 16 2013 [339]bronx217.jpg
-rw-rw-r-- 1 fdc kermit 326782 Nov 16 2013 [340]bronx218.jpg
-rw-rw-r-- 1 fdc kermit 358085 Nov 16 2013 [341]bronx219.jpg
-rw-rw-r-- 1 fdc kermit 223388 Sep 4 2013 [342]bronx22.jpg
-rw-rw-r-- 1 fdc kermit 248930 Nov 29 2013 [343]bronx220.jpg
-rw-rw-r-- 1 fdc kermit 411885 Nov 19 2013 [344]bronx221.jpg
-rw-rw-r-- 1 fdc kermit 477560 Nov 19 2013 [345]bronx222.jpg
-rw-rw-r-- 1 fdc kermit 364611 Nov 24 2013 [346]bronx223.jpg
-rw-rw-r-- 1 fdc kermit 235598 Nov 24 2013 [347]bronx224.jpg
-rw-rw-r-- 1 fdc kermit 313244 Nov 24 2013 [348]bronx225.jpg
-rw-rw-r-- 1 fdc kermit 43936 Nov 29 2013 [349]bronx226.jpg
-rw-rw-r-- 1 fdc kermit 169280 Nov 29 2013 [350]bronx227.jpg
-rw-rw-r-- 1 fdc kermit 395268 Dec 14 2013 [351]bronx228.jpg
-rw-rw-r-- 1 fdc kermit 306933 Dec 14 2013 [352]bronx229.jpg
-rw-rw-r-- 1 fdc kermit 220710 Sep 4 2013 [353]bronx23.jpg
-rw-rw-r-- 1 fdc kermit 372346 Dec 14 2013 [354]bronx230.jpg
-rw-rw-r-- 1 fdc kermit 88682 Dec 14 2013 [355]bronx231.jpg
-rw-rw-r-- 1 fdc kermit 68703 Dec 14 2013 [356]bronx232.jpg
-rw-rw-r-- 1 fdc kermit 253056 Dec 14 2013 [357]bronx233.jpg
-rw-rw-r-- 1 fdc kermit 283327 Dec 14 2013 [358]bronx234.jpg
-rw-rw-r-- 1 fdc kermit 135123 Dec 14 2013 [359]bronx235.jpg
-rw-rw-r-- 1 fdc kermit 86701 Dec 14 2013 [360]bronx236.jpg
-rw-rw-r-- 1 fdc kermit 151369 Dec 14 2013 [361]bronx237.jpg
-rw-rw-r-- 1 fdc kermit 473329 Dec 14 2013 [362]bronx238.jpg
-rw-rw-r-- 1 fdc kermit 429753 Dec 14 2013 [363]bronx239.jpg
-rw-rw-r-- 1 fdc kermit 195998 Sep 4 2013 [364]bronx24.jpg
-rw-rw-r-- 1 fdc kermit 253233 Dec 14 2013 [365]bronx240.jpg
-rw-rw-r-- 1 fdc kermit 246917 Dec 14 2013 [366]bronx241.jpg
-rw-rw-r-- 1 fdc kermit 204845 Dec 14 2013 [367]bronx242.jpg
-rw-rw-r-- 1 fdc kermit 160246 Dec 14 2013 [368]bronx243.jpg
-rw-rw-r-- 1 fdc kermit 231842 Dec 14 2013 [369]bronx244.jpg
-rw-rw-r-- 1 fdc kermit 250671 Dec 21 2013 [370]bronx245.jpg
-rw-rw-r-- 1 fdc kermit 108482 Dec 21 2013 [371]bronx246.jpg
-rw-rw-r-- 1 fdc kermit 262667 Dec 28 2013 [372]bronx247.jpg
-rw-rw-r-- 1 fdc kermit 321698 Dec 28 2013 [373]bronx248.jpg
-rw-rw-r-- 1 fdc kermit 129188 Dec 28 2013 [374]bronx249.jpg
-rw-rw-r-- 1 fdc kermit 235597 Sep 4 2013 [375]bronx25.jpg
-rw-rw-r-- 1 fdc kermit 164782 Dec 28 2013 [376]bronx250.jpg
-rw-rw-r-- 1 fdc kermit 160268 Dec 28 2013 [377]bronx251.jpg
-rw-rw-r-- 1 fdc kermit 269810 Dec 28 2013 [378]bronx252.jpg
-rw-rw-r-- 1 fdc kermit 159871 Dec 28 2013 [379]bronx253.jpg
-rw-rw-r-- 1 fdc kermit 312336 Dec 28 2013 [380]bronx254.jpg
-rw-rw-r-- 1 fdc kermit 270451 Dec 28 2013 [381]bronx255.jpg
-rw-rw-r-- 1 fdc kermit 212286 Jan 4 2014 [382]bronx256.jpg
-rw-rw-r-- 1 fdc kermit 209529 Dec 28 2013 [383]bronx257.jpg
-rw-rw-r-- 1 fdc kermit 139238 Jan 4 2014 [384]bronx258.jpg
-rw-rw-r-- 1 fdc kermit 295152 Jan 23 2014 [385]bronx259.jpg
-rw-rw-r-- 1 fdc kermit 182492 Sep 4 2013 [386]bronx26.jpg
-rw-rw-r-- 1 fdc kermit 313881 Jan 23 2014 [387]bronx260.jpg
-rw-rw-r-- 1 fdc kermit 227034 Jan 23 2014 [388]bronx261.jpg
-rw-rw-r-- 1 fdc kermit 193903 Jan 23 2014 [389]bronx262.jpg
-rw-rw-r-- 1 fdc kermit 180822 Jan 23 2014 [390]bronx263.jpg
-rw-rw-r-- 1 fdc kermit 89960 Jan 23 2014 [391]bronx264.jpg
-rw-rw-r-- 1 fdc kermit 138012 Jan 23 2014 [392]bronx265.jpg
-rw-rw-r-- 1 fdc kermit 193378 Jan 23 2014 [393]bronx266.jpg
-rw-rw-r-- 1 fdc kermit 201003 Jan 23 2014 [394]bronx267.jpg
-rw-rw-r-- 1 fdc kermit 123640 Feb 7 2014 [395]bronx268.jpg
-rw-rw-r-- 1 fdc kermit 284138 Feb 7 2014 [396]bronx269.jpg
-rw-rw-r-- 1 fdc kermit 182215 Sep 4 2013 [397]bronx27.jpg
-rw-rw-r-- 1 fdc kermit 127214 Jan 23 2014 [398]bronx270.jpg
-rw-rw-r-- 1 fdc kermit 227317 Jan 23 2014 [399]bronx271.jpg
-rw-rw-r-- 1 fdc kermit 325934 Feb 7 2014 [400]bronx272.jpg
-rw-rw-r-- 1 fdc kermit 82447 Jan 30 2014 [401]bronx273.jpg
-rw-rw-r-- 1 fdc kermit 308660 Feb 1 2014 [402]bronx274.jpg
-rw-rw-r-- 1 fdc kermit 189195 Feb 4 2014 [403]bronx275.jpg
-rw-rw-r-- 1 fdc kermit 287030 Feb 4 2014 [404]bronx276.jpg
-rw-rw-r-- 1 fdc kermit 236393 Feb 4 2014 [405]bronx277.jpg
-rw-rw-r-- 1 fdc kermit 285307 Feb 4 2014 [406]bronx278.jpg
-rw-rw-r-- 1 fdc kermit 339855 Feb 4 2014 [407]bronx279.jpg
-rw-rw-r-- 1 fdc kermit 187245 Sep 4 2013 [408]bronx28.jpg
-rw-rw-r-- 1 fdc kermit 283892 Feb 4 2014 [409]bronx280.jpg
-rw-rw-r-- 1 fdc kermit 129282 Feb 4 2014 [410]bronx281.jpg
-rw-rw-r-- 1 fdc kermit 222884 Feb 4 2014 [411]bronx282.jpg
-rw-rw-r-- 1 fdc kermit 345898 Feb 7 2014 [412]bronx283.jpg
-rw-rw-r-- 1 fdc kermit 70079 Feb 7 2014 [413]bronx284.jpg
-rw-rw-r-- 1 fdc kermit 246807 Feb 7 2014 [414]bronx285.jpg
-rw-rw-r-- 1 fdc kermit 49717 Feb 15 2014 [415]bronx286.jpg
-rw-rw-r-- 1 fdc kermit 256017 Feb 15 2014 [416]bronx287.jpg
-rw-rw-r-- 1 fdc kermit 103474 Feb 15 2014 [417]bronx288.jpg
-rw-rw-r-- 1 fdc kermit 422294 Feb 15 2014 [418]bronx289.jpg
-rw-rw-r-- 1 fdc kermit 56696 Sep 11 2013 [419]bronx29.jpg
-rw-rw-r-- 1 fdc kermit 149813 Feb 22 2014 [420]bronx290.jpg
-rw-rw-r-- 1 fdc kermit 406910 Feb 22 2014 [421]bronx291.jpg
-rw-rw-r-- 1 fdc kermit 292614 Feb 22 2014 [422]bronx292.jpg
-rw-rw-r-- 1 fdc kermit 264437 Feb 22 2014 [423]bronx293.jpg
-rw-rw-r-- 1 fdc kermit 353100 Feb 22 2014 [424]bronx294.jpg
-rw-rw-r-- 1 fdc kermit 285619 Feb 22 2014 [425]bronx295.jpg
-rw-rw-r-- 1 fdc kermit 319862 Feb 22 2014 [426]bronx296.jpg
-rw-rw-r-- 1 fdc kermit 190451 Feb 22 2014 [427]bronx297.jpg
-rw-rw-r-- 1 fdc kermit 300387 Feb 22 2014 [428]bronx298.jpg
-rw-rw-r-- 1 fdc kermit 285288 Feb 22 2014 [429]bronx299.jpg
-rw-rw-r-- 1 fdc kermit 345504 Sep 4 2013 [430]bronx3.jpg
-rw-rw-r-- 1 fdc kermit 36978 Sep 11 2013 [431]bronx30.jpg
-rw-rw-r-- 1 fdc kermit 288611 Feb 22 2014 [432]bronx300.jpg
-rw-r--r-- 1 fdc kermit 288611 Feb 22 2014 [433]bronx300.jpg.~1~
-rw-rw-r-- 1 fdc kermit 304659 Apr 4 2014 [434]bronx301.jpg
-rw-rw-r-- 1 fdc kermit 284901 Apr 4 2014 [435]bronx302.jpg
-rw-rw-r-- 1 fdc kermit 406093 Apr 4 2014 [436]bronx303.jpg
-rw-rw-r-- 1 fdc kermit 384201 Apr 4 2014 [437]bronx304.jpg
-rw-rw-r-- 1 fdc kermit 314485 Apr 4 2014 [438]bronx305.jpg
-rw-rw-r-- 1 fdc kermit 240793 Apr 4 2014 [439]bronx306.jpg
-rw-rw-r-- 1 fdc kermit 183966 Apr 4 2014 [440]bronx307.jpg
-rw-rw-r-- 1 fdc kermit 220230 Apr 4 2014 [441]bronx308.jpg
-rw-rw-r-- 1 fdc kermit 324158 Apr 4 2014 [442]bronx309.jpg
-rw-rw-r-- 1 fdc kermit 183918 Sep 13 2013 [443]bronx31.jpg
-rw-rw-r-- 1 fdc kermit 239634 Apr 4 2014 [444]bronx310.jpg
-rw-rw-r-- 1 fdc kermit 183539 Apr 4 2014 [445]bronx311.jpg
-rw-rw-r-- 1 fdc kermit 218992 Apr 4 2014 [446]bronx312.jpg
-rw-rw-r-- 1 fdc kermit 241701 Apr 4 2014 [447]bronx313.jpg
-rw-rw-r-- 1 fdc kermit 191971 Apr 4 2014 [448]bronx314.jpg
-rw-rw-r-- 1 fdc kermit 212001 Apr 4 2014 [449]bronx315.jpg
-rw-rw-r-- 1 fdc kermit 167889 Apr 4 2014 [450]bronx316.jpg
-rw-rw-r-- 1 fdc kermit 304507 Apr 4 2014 [451]bronx317.jpg
-rw-rw-r-- 1 fdc kermit 260101 Apr 4 2014 [452]bronx318.jpg
-rw-rw-r-- 1 fdc kermit 233103 Apr 4 2014 [453]bronx319.jpg
-rw-rw-r-- 1 fdc kermit 157513 Sep 13 2013 [454]bronx32.jpg
-rw-rw-r-- 1 fdc kermit 286325 Apr 4 2014 [455]bronx320.jpg
-rw-rw-r-- 1 fdc kermit 386160 Apr 4 2014 [456]bronx321.jpg
-rw-rw-r-- 1 fdc kermit 289758 Apr 4 2014 [457]bronx322.jpg
-rw-rw-r-- 1 fdc kermit 218376 Apr 4 2014 [458]bronx323.jpg
-rw-rw-r-- 1 fdc kermit 375770 Apr 4 2014 [459]bronx324.jpg
-rw-rw-r-- 1 fdc kermit 336864 Apr 4 2014 [460]bronx325.jpg
-rw-rw-r-- 1 fdc kermit 157408 Apr 4 2014 [461]bronx326.jpg
-rw-rw-r-- 1 fdc kermit 167722 Apr 4 2014 [462]bronx327.jpg
-rw-rw-r-- 1 fdc kermit 188628 Apr 4 2014 [463]bronx328.jpg
-rw-rw-r-- 1 fdc kermit 212083 Apr 4 2014 [464]bronx329.jpg
-rw-rw-r-- 1 fdc kermit 261113 Sep 13 2013 [465]bronx33.jpg
-rw-rw-r-- 1 fdc kermit 130658 Apr 4 2014 [466]bronx330.jpg
-rw-rw-r-- 1 fdc kermit 264841 Apr 4 2014 [467]bronx331.jpg
-rw-rw-r-- 1 fdc kermit 254345 Apr 4 2014 [468]bronx332.jpg
-rw-rw-r-- 1 fdc kermit 132829 Apr 4 2014 [469]bronx333.jpg
-rw-rw-r-- 1 fdc kermit 210211 Apr 4 2014 [470]bronx334.jpg
-rw-rw-r-- 1 fdc kermit 167555 Apr 4 2014 [471]bronx335.jpg
-rw-rw-r-- 1 fdc kermit 268889 Apr 4 2014 [472]bronx336.jpg
-rw-rw-r-- 1 fdc kermit 291735 Apr 4 2014 [473]bronx337.jpg
-rw-rw-r-- 1 fdc kermit 96443 Apr 4 2014 [474]bronx338.jpg
-rw-rw-r-- 1 fdc kermit 471578 Apr 4 2014 [475]bronx339.jpg
-rw-rw-r-- 1 fdc kermit 240256 Sep 13 2013 [476]bronx34.jpg
-rw-rw-r-- 1 fdc kermit 490406 May 21 2014 [477]bronx340.jpg
-rw-rw-r-- 1 fdc kermit 274969 May 21 2014 [478]bronx341.jpg
-rw-rw-r-- 1 fdc kermit 198326 Apr 4 2014 [479]bronx342.jpg
-rw-rw-r-- 1 fdc kermit 183854 Apr 4 2014 [480]bronx343.jpg
-rw-rw-r-- 1 fdc kermit 218411 Apr 4 2014 [481]bronx344.jpg
-rw-rw-r-- 1 fdc kermit 117440 Apr 4 2014 [482]bronx345.jpg
-rw-rw-r-- 1 fdc kermit 137552 Apr 4 2014 [483]bronx346.jpg
-rw-rw-r-- 1 fdc kermit 278847 Aug 31 2015 [484]bronx347.jpg
-rw-rw-r-- 1 fdc kermit 244416 Apr 4 2014 [485]bronx348.jpg
-rw-rw-r-- 1 fdc kermit 173731 Apr 4 2014 [486]bronx349.jpg
-rw-rw-r-- 1 fdc kermit 215645 Sep 13 2013 [487]bronx35.jpg
-rw-rw-r-- 1 fdc kermit 216272 Apr 4 2014 [488]bronx350.jpg
-rw-rw-r-- 1 fdc kermit 229661 Apr 4 2014 [489]bronx351.jpg
-rw-rw-r-- 1 fdc kermit 221300 Apr 4 2014 [490]bronx352.jpg
-rw-rw-r-- 1 fdc kermit 226484 Apr 4 2014 [491]bronx353.jpg
-rw-rw-r-- 1 fdc kermit 251517 Apr 4 2014 [492]bronx354.jpg
-rw-rw-r-- 1 fdc kermit 174356 Apr 4 2014 [493]bronx355.jpg
-rw-rw-r-- 1 fdc kermit 254152 Apr 4 2014 [494]bronx356.jpg
-rw-rw-r-- 1 fdc kermit 334016 Apr 5 2014 [495]bronx357.jpg
-rw-rw-r-- 1 fdc kermit 238773 Apr 4 2014 [496]bronx358.jpg
-rw-rw-r-- 1 fdc kermit 259461 Apr 4 2014 [497]bronx359.jpg
-rw-rw-r-- 1 fdc kermit 307463 Sep 13 2013 [498]bronx36.jpg
-rw-rw-r-- 1 fdc kermit 257100 May 20 2014 [499]bronx360.jpg
-rw-rw-r-- 1 fdc kermit 236922 Apr 13 2014 [500]bronx361.jpg
-rw-rw-r-- 1 fdc kermit 205623 Apr 13 2014 [501]bronx362.jpg
-rw-rw-r-- 1 fdc kermit 207863 Apr 13 2014 [502]bronx363.jpg
-rw-rw-r-- 1 fdc kermit 316660 Apr 13 2014 [503]bronx364.jpg
-rw-rw-r-- 1 fdc kermit 200083 Apr 13 2014 [504]bronx365.jpg
-rw-rw-r-- 1 fdc kermit 218696 Apr 13 2014 [505]bronx366.jpg
-rw-rw-r-- 1 fdc kermit 260887 Apr 13 2014 [506]bronx367.jpg
-rw-rw-r-- 1 fdc kermit 331487 Apr 13 2014 [507]bronx368.jpg
-rw-rw-r-- 1 fdc kermit 235256 Apr 13 2014 [508]bronx369.jpg
-rw-rw-r-- 1 fdc kermit 270939 Sep 13 2013 [509]bronx37.jpg
-rw-rw-r-- 1 fdc kermit 386219 Apr 13 2014 [510]bronx370.jpg
-rw-rw-r-- 1 fdc kermit 264574 Apr 13 2014 [511]bronx371.jpg
-rw-rw-r-- 1 fdc kermit 261962 Apr 13 2014 [512]bronx372.jpg
-rw-rw-r-- 1 fdc kermit 317582 Apr 13 2014 [513]bronx373.jpg
-rw-rw-r-- 1 fdc kermit 263835 Apr 13 2014 [514]bronx374.jpg
-rw-rw-r-- 1 fdc kermit 310276 Jun 2 2014 [515]bronx375.jpg
-rw-rw-r-- 1 fdc kermit 367563 Apr 13 2014 [516]bronx376.jpg
-rw-rw-r-- 1 fdc kermit 380523 Apr 13 2014 [517]bronx377.jpg
-rw-rw-r-- 1 fdc kermit 415046 Apr 13 2014 [518]bronx378.jpg
-rw-rw-r-- 1 fdc kermit 330555 Apr 13 2014 [519]bronx379.jpg
-rw-rw-r-- 1 fdc kermit 202637 Sep 13 2013 [520]bronx38.jpg
-rw-rw-r-- 1 fdc kermit 204742 Apr 13 2014 [521]bronx380.jpg
-rw-rw-r-- 1 fdc kermit 316524 Apr 13 2014 [522]bronx381.jpg
-rw-rw-r-- 1 fdc kermit 282030 Apr 14 2014 [523]bronx382.jpg
-rw-rw-r-- 1 fdc kermit 375684 Apr 13 2014 [524]bronx383.jpg
-rw-rw-r-- 1 fdc kermit 277908 Apr 13 2014 [525]bronx384.jpg
-rw-rw-r-- 1 fdc kermit 320289 Apr 13 2014 [526]bronx385.jpg
-rw-rw-r-- 1 fdc kermit 342132 Apr 13 2014 [527]bronx386.jpg
-rw-rw-r-- 1 fdc kermit 366994 Apr 13 2014 [528]bronx387.jpg
-rw-rw-r-- 1 fdc kermit 303843 Apr 13 2014 [529]bronx388.jpg
-rw-rw-r-- 1 fdc kermit 302758 Apr 13 2014 [530]bronx389.jpg
-rw-rw-r-- 1 fdc kermit 262358 Sep 13 2013 [531]bronx39.jpg
-rw-rw-r-- 1 fdc kermit 401431 Apr 13 2014 [532]bronx390.jpg
-rw-rw-r-- 1 fdc kermit 322680 Apr 13 2014 [533]bronx391.jpg
-rw-rw-r-- 1 fdc kermit 305889 Apr 13 2014 [534]bronx392.jpg
-rw-rw-r-- 1 fdc kermit 322339 Apr 13 2014 [535]bronx393.jpg
-rw-rw-r-- 1 fdc kermit 300731 Apr 14 2014 [536]bronx394.jpg
-rw-rw-r-- 1 fdc kermit 273098 Apr 14 2014 [537]bronx395.jpg
-rw-rw-r-- 1 fdc kermit 315825 Apr 14 2014 [538]bronx396.jpg
-rw-rw-r-- 1 fdc kermit 360444 Apr 14 2014 [539]bronx397.jpg
-rw-rw-r-- 1 fdc kermit 445707 Apr 14 2014 [540]bronx398.jpg
-rw-rw-r-- 1 fdc kermit 213563 Apr 14 2014 [541]bronx399.jpg
-rw-rw-r-- 1 fdc kermit 370820 Sep 4 2013 [542]bronx4.jpg
-rw-rw-r-- 1 fdc kermit 229662 Sep 13 2013 [543]bronx40.jpg
-rw-rw-r-- 1 fdc kermit 231688 Apr 14 2014 [544]bronx400.jpg
-rw-rw-r-- 1 fdc kermit 245174 Apr 14 2014 [545]bronx401.jpg
-rw-rw-r-- 1 fdc kermit 266866 Apr 14 2014 [546]bronx402.jpg
-rw-rw-r-- 1 fdc kermit 428203 Jun 10 2014 [547]bronx403.jpg
-rw-r--r-- 1 fdc kermit 406043 Apr 14 2014 [548]bronx403.jpg.~1~
-rw-rw-r-- 1 fdc kermit 296171 Apr 14 2014 [549]bronx404.jpg
-rw-rw-r-- 1 fdc kermit 345968 Apr 14 2014 [550]bronx405.jpg
-rw-rw-r-- 1 fdc kermit 293070 Apr 14 2014 [551]bronx406.jpg
-rw-rw-r-- 1 fdc kermit 324274 Apr 14 2014 [552]bronx407.jpg
-rw-rw-r-- 1 fdc kermit 270259 Jun 10 2014 [553]bronx408.jpg
-rw-r--r-- 1 fdc kermit 294696 Apr 14 2014 [554]bronx408.jpg.~1~
-rw-r--r-- 1 fdc kermit 92 Apr 14 2014 [555]bronx408.txt.~1~
-rw-rw-r-- 1 fdc kermit 238850 Apr 14 2014 [556]bronx409.jpg
-rw-rw-r-- 1 fdc kermit 173755 Sep 13 2013 [557]bronx41.jpg
-rw-rw-r-- 1 fdc kermit 170434 Apr 14 2014 [558]bronx410.jpg
-rw-r--r-- 1 fdc kermit 238 Apr 14 2014 [559]bronx410.txt.~1~
-rw-rw-r-- 1 fdc kermit 339786 Apr 14 2014 [560]bronx411.jpg
-rw-rw-r-- 1 fdc kermit 316651 Apr 14 2014 [561]bronx412.jpg
-rw-rw-r-- 1 fdc kermit 370492 Apr 14 2014 [562]bronx413.jpg
-rw-rw-r-- 1 fdc kermit 301575 Apr 14 2014 [563]bronx414.jpg
-rw-rw-r-- 1 fdc kermit 343305 Apr 14 2014 [564]bronx415.jpg
-rw-r--r-- 1 fdc kermit 167 Apr 14 2014 [565]bronx415.txt.~1~
-rw-rw-r-- 1 fdc kermit 178166 Apr 14 2014 [566]bronx416.jpg
-rw-rw-r-- 1 fdc kermit 343601 Apr 14 2014 [567]bronx417.jpg
-rw-rw-r-- 1 fdc kermit 302015 Apr 14 2014 [568]bronx418.jpg
-rw-rw-r-- 1 fdc kermit 358241 Apr 14 2014 [569]bronx419.jpg
-rw-rw-r-- 1 fdc kermit 200983 Sep 13 2013 [570]bronx42.jpg
-rw-rw-r-- 1 fdc kermit 133962 May 17 2014 [571]bronx420.jpg
-rw-rw-r-- 1 fdc kermit 358004 May 17 2014 [572]bronx421.jpg
-rw-rw-r-- 1 fdc kermit 173562 May 17 2014 [573]bronx422.jpg
-rw-rw-r-- 1 fdc kermit 436657 May 17 2014 [574]bronx423.jpg
-rw-r--r-- 1 fdc kermit 436728 May 17 2014 [575]bronx423.jpg.~1~
-rw-rw-r-- 1 fdc kermit 147949 May 17 2014 [576]bronx424.jpg
-rw-rw-r-- 1 fdc kermit 356131 May 17 2014 [577]bronx425.jpg
-rw-rw-r-- 1 fdc kermit 358355 May 17 2014 [578]bronx426.jpg
-rw-rw-r-- 1 fdc kermit 266492 May 17 2014 [579]bronx427.jpg
-rw-rw-r-- 1 fdc kermit 407913 May 17 2014 [580]bronx428.jpg
-rw-rw-r-- 1 fdc kermit 210909 May 17 2014 [581]bronx429.jpg
-rw-rw-r-- 1 fdc kermit 174994 Sep 14 2013 [582]bronx43.jpg
-rw-rw-r-- 1 fdc kermit 324232 May 17 2014 [583]bronx430.jpg
-rw-rw-r-- 1 fdc kermit 320777 May 17 2014 [584]bronx431.jpg
-rw-rw-r-- 1 fdc kermit 316233 May 17 2014 [585]bronx432.jpg
-rw-rw-r-- 1 fdc kermit 216102 May 17 2014 [586]bronx433.jpg
-rw-rw-r-- 1 fdc kermit 247443 May 17 2014 [587]bronx434.jpg
-rw-rw-r-- 1 fdc kermit 245334 May 17 2014 [588]bronx435.jpg
-rw-rw-r-- 1 fdc kermit 342102 May 17 2014 [589]bronx436.jpg
-rw-rw-r-- 1 fdc kermit 228763 May 17 2014 [590]bronx437.jpg
-rw-rw-r-- 1 fdc kermit 240511 May 20 2014 [591]bronx438.jpg
-rw-rw-r-- 1 fdc kermit 298502 May 20 2014 [592]bronx439.jpg
-rw-rw-r-- 1 fdc kermit 51240 Sep 16 2013 [593]bronx44.jpg
-rw-rw-r-- 1 fdc kermit 336069 May 20 2014 [594]bronx440.jpg
-rw-rw-r-- 1 fdc kermit 385465 May 20 2014 [595]bronx441.jpg
-rw-rw-r-- 1 fdc kermit 235410 May 20 2014 [596]bronx442.jpg
-rw-rw-r-- 1 fdc kermit 181529 May 20 2014 [597]bronx443.jpg
-rw-rw-r-- 1 fdc kermit 250476 May 20 2014 [598]bronx444.jpg
-rw-rw-r-- 1 fdc kermit 209350 May 20 2014 [599]bronx445.jpg
-rw-rw-r-- 1 fdc kermit 228258 May 20 2014 [600]bronx446.jpg
-rw-rw-r-- 1 fdc kermit 173577 May 20 2014 [601]bronx447.jpg
-rw-rw-r-- 1 fdc kermit 298165 May 20 2014 [602]bronx448.jpg
-rw-rw-r-- 1 fdc kermit 184188 May 20 2014 [603]bronx449.jpg
-rw-rw-r-- 1 fdc kermit 53871 Sep 16 2013 [604]bronx45.jpg
-rw-rw-r-- 1 fdc kermit 246029 May 20 2014 [605]bronx450.jpg
-rw-rw-r-- 1 fdc kermit 321514 May 20 2014 [606]bronx451.jpg
-rw-rw-r-- 1 fdc kermit 282191 May 20 2014 [607]bronx452.jpg
-rw-rw-r-- 1 fdc kermit 267494 May 20 2014 [608]bronx453.jpg
-rw-rw-r-- 1 fdc kermit 233590 May 20 2014 [609]bronx454.jpg
-rw-rw-r-- 1 fdc kermit 250622 May 20 2014 [610]bronx455.jpg
-rw-rw-r-- 1 fdc kermit 269694 May 20 2014 [611]bronx456.jpg
-rw-rw-r-- 1 fdc kermit 171476 May 20 2014 [612]bronx457.jpg
-rw-rw-r-- 1 fdc kermit 95763 May 25 2014 [613]bronx458.jpg
-rw-rw-r-- 1 fdc kermit 242555 May 25 2014 [614]bronx459.jpg
-rw-rw-r-- 1 fdc kermit 306097 Sep 23 2013 [615]bronx46.jpg
-rw-rw-r-- 1 fdc kermit 52532 May 25 2014 [616]bronx460.jpg
-rw-rw-r-- 1 fdc kermit 222284 May 25 2014 [617]bronx461.jpg
-rw-r--r-- 1 fdc kermit 298956 Sep 14 20:33 [618]bronx462.jpg
-rw-rw-r-- 1 fdc kermit 283643 Jun 2 2014 [619]bronx463.jpg
-rw-rw-r-- 1 fdc kermit 296502 Jun 2 2014 [620]bronx464.jpg
-rw-rw-r-- 1 fdc kermit 357209 Jun 2 2014 [621]bronx465.jpg
-rw-rw-r-- 1 fdc kermit 193246 Jun 2 2014 [622]bronx466.jpg
-rw-rw-r-- 1 fdc kermit 182799 Jun 2 2014 [623]bronx467.jpg
-rw-rw-r-- 1 fdc kermit 186912 Jun 2 2014 [624]bronx468.jpg
-rw-rw-r-- 1 fdc kermit 313337 Jun 2 2014 [625]bronx469.jpg
-rw-rw-r-- 1 fdc kermit 253225 Sep 23 2013 [626]bronx47.jpg
-rw-rw-r-- 1 fdc kermit 214705 Jun 2 2014 [627]bronx470.jpg
-rw-rw-r-- 1 fdc kermit 280624 Jun 2 2014 [628]bronx471.jpg
-rw-rw-r-- 1 fdc kermit 245883 Jun 2 2014 [629]bronx472.jpg
-rw-rw-r-- 1 fdc kermit 199081 Jun 2 2014 [630]bronx473.jpg
-rw-rw-r-- 1 fdc kermit 301406 Jun 2 2014 [631]bronx474.jpg
-rw-rw-r-- 1 fdc kermit 334876 Jun 2 2014 [632]bronx475.jpg
-rw-rw-r-- 1 fdc kermit 331133 Jun 2 2014 [633]bronx476.jpg
-rw-rw-r-- 1 fdc kermit 242529 Jun 2 2014 [634]bronx477.jpg
-rw-rw-r-- 1 fdc kermit 359345 Jun 2 2014 [635]bronx478.jpg
-rw-rw-r-- 1 fdc kermit 110764 Jun 2 2014 [636]bronx479.jpg
-rw-rw-r-- 1 fdc kermit 66982 Sep 23 2013 [637]bronx48.jpg
-rw-rw-r-- 1 fdc kermit 231511 Jun 2 2014 [638]bronx480.jpg
-rw-r--r-- 1 fdc kermit 55 Jun 2 2014 [639]bronx480.txt.~1~
-rw-rw-r-- 1 fdc kermit 260525 Jun 2 2014 [640]bronx481.jpg
-rw-rw-r-- 1 fdc kermit 335117 Jun 2 2014 [641]bronx482.jpg
-rw-rw-r-- 1 fdc kermit 317245 Jun 2 2014 [642]bronx483.jpg
-rw-rw-r-- 1 fdc kermit 381733 Jun 2 2014 [643]bronx484.jpg
-rw-rw-r-- 1 fdc kermit 255371 Jun 2 2014 [644]bronx485.jpg
-rw-rw-r-- 1 fdc kermit 314989 Jun 2 2014 [645]bronx486.jpg
-rw-r--r-- 1 fdc kermit 35 Jun 2 2014 [646]bronx486.txt.~1~
-rw-rw-r-- 1 fdc kermit 307758 Jun 2 2014 [647]bronx487.jpg
-rw-rw-r-- 1 fdc kermit 363480 Jun 2 2014 [648]bronx488.jpg
-rw-r--r-- 1 fdc kermit 54 Jun 2 2014 [649]bronx488.txt.~1~
-rw-rw-r-- 1 fdc kermit 344887 Jun 2 2014 [650]bronx489.jpg
-rw-r--r-- 1 fdc kermit 67 Jun 2 2014 [651]bronx489.txt.~1~
-rw-rw-r-- 1 fdc kermit 239594 Sep 25 2013 [652]bronx49.jpg
-rw-rw-r-- 1 fdc kermit 260181 Jun 2 2014 [653]bronx490.jpg
-rw-rw-r-- 1 fdc kermit 217284 Jun 2 2014 [654]bronx491.jpg
-rw-rw-r-- 1 fdc kermit 256056 Jun 2 2014 [655]bronx492.jpg
-rw-r--r-- 1 fdc kermit 81 Jun 2 2014 [656]bronx492.txt.~1~
-rw-rw-r-- 1 fdc kermit 371848 Jun 2 2014 [657]bronx493.jpg
-rw-r--r-- 1 fdc kermit 63 Jun 2 2014 [658]bronx493.txt.~1~
-rw-rw-r-- 1 fdc kermit 316664 Jun 2 2014 [659]bronx494.jpg
-rw-r--r-- 1 fdc kermit 40 Jun 2 2014 [660]bronx494.txt.~1~
-rw-r--r-- 1 fdc kermit 113 Jun 2 2014 [661]bronx494.txt.~2~
-rw-rw-r-- 1 fdc kermit 239818 Jun 2 2014 [662]bronx495.jpg
-rw-rw-r-- 1 fdc kermit 345367 Jun 2 2014 [663]bronx496.jpg
-rw-r--r-- 1 fdc kermit 51 Jun 2 2014 [664]bronx496.txt.~1~
-rw-rw-r-- 1 fdc kermit 384261 Jun 2 2014 [665]bronx497.jpg
-rw-r--r-- 1 fdc kermit 195815 Jun 5 2014 [666]bronx498.jpg
-rw-r--r-- 1 fdc kermit 261798 Jun 5 2014 [667]bronx499.jpg
-rw-rw-r-- 1 fdc kermit 374726 Sep 4 2013 [668]bronx5.jpg
-rw-rw-r-- 1 fdc kermit 284974 Sep 25 2013 [669]bronx50.jpg
-rw-rw-r-- 1 fdc kermit 208448 Jun 6 2014 [670]bronx500.jpg
-rw-rw-r-- 1 fdc kermit 241986 Jun 10 2014 [671]bronx501.jpg
-rw-rw-r-- 1 fdc kermit 326980 Jun 10 2014 [672]bronx502.jpg
-rw-rw-r-- 1 fdc kermit 286275 Jun 10 2014 [673]bronx503.jpg
-rw-rw-r-- 1 fdc kermit 378981 Jun 10 2014 [674]bronx504.jpg
-rw-rw-r-- 1 fdc kermit 238799 Jun 10 2014 [675]bronx505.jpg
-rw-rw-r-- 1 fdc kermit 369884 Jun 10 2014 [676]bronx506.jpg
-rw-rw-r-- 1 fdc kermit 298625 Jun 10 2014 [677]bronx507.jpg
-rw-rw-r-- 1 fdc kermit 317456 Jun 10 2014 [678]bronx508.jpg
-rw-rw-r-- 1 fdc kermit 403253 Jun 10 2014 [679]bronx509.jpg
-rw-rw-r-- 1 fdc kermit 246105 Sep 25 2013 [680]bronx51.jpg
-rw-rw-r-- 1 fdc kermit 291201 Jun 10 2014 [681]bronx510.jpg
-rw-rw-r-- 1 fdc kermit 268378 Jun 10 2014 [682]bronx511.jpg
-rw-rw-r-- 1 fdc kermit 248760 Jun 10 2014 [683]bronx512.jpg
-rw-rw-r-- 1 fdc kermit 177809 Jun 10 2014 [684]bronx513.jpg
-rw-rw-r-- 1 fdc kermit 244740 Jun 10 2014 [685]bronx514.jpg
-rw-rw-r-- 1 fdc kermit 262429 Jun 10 2014 [686]bronx515.jpg
-rw-rw-r-- 1 fdc kermit 189869 Jun 10 2014 [687]bronx516.jpg
-rw-rw-r-- 1 fdc kermit 175268 Jun 10 2014 [688]bronx517.jpg
-rw-rw-r-- 1 fdc kermit 356749 Jun 10 2014 [689]bronx518.jpg
-rw-rw-r-- 1 fdc kermit 125452 Jun 10 2014 [690]bronx519.jpg
-rw-rw-r-- 1 fdc kermit 339675 Sep 25 2013 [691]bronx52.jpg
-rw-rw-r-- 1 fdc kermit 334068 Jun 10 2014 [692]bronx520.jpg
-rw-rw-r-- 1 fdc kermit 242053 Jun 10 2014 [693]bronx521.jpg
-rw-rw-r-- 1 fdc kermit 247751 Jun 10 2014 [694]bronx522.jpg
-rw-rw-r-- 1 fdc kermit 95777 Sep 9 2014 [695]bronx523.jpg
-rw-rw-r-- 1 fdc kermit 249863 Oct 26 2014 [696]bronx524.jpg
-rw-rw-r-- 1 fdc kermit 234991 Oct 26 2014 [697]bronx525.jpg
-rw-rw-r-- 1 fdc kermit 236092 Oct 26 2014 [698]bronx526.jpg
-rw-rw-r-- 1 fdc kermit 295164 Oct 26 2014 [699]bronx527.jpg
-rw-rw-r-- 1 fdc kermit 293202 Oct 26 2014 [700]bronx528.jpg
-rw-rw-r-- 1 fdc kermit 353695 Oct 26 2014 [701]bronx529.jpg
-rw-rw-r-- 1 fdc kermit 256534 Sep 25 2013 [702]bronx53.jpg
-rw-rw-r-- 1 fdc kermit 242755 Oct 26 2014 [703]bronx530.jpg
-rw-rw-r-- 1 fdc kermit 358296 Oct 26 2014 [704]bronx531.jpg
-rw-rw-r-- 1 fdc kermit 306816 Oct 26 2014 [705]bronx532.jpg
-rw-rw-r-- 1 fdc kermit 149818 Oct 26 2014 [706]bronx533.jpg
-rw-rw-r-- 1 fdc kermit 215081 Oct 26 2014 [707]bronx534.jpg
-rw-rw-r-- 1 fdc kermit 194140 Oct 26 2014 [708]bronx535.jpg
-rw-rw-r-- 1 fdc kermit 275835 Oct 26 2014 [709]bronx536.jpg
-rw-rw-r-- 1 fdc kermit 80273 Oct 26 2014 [710]bronx537.jpg
-rw-rw-r-- 1 fdc kermit 52561 Oct 26 2014 [711]bronx538.jpg
-rw-rw-r-- 1 fdc kermit 363200 Oct 26 2014 [712]bronx539.jpg
-rw-rw-r-- 1 fdc kermit 346000 Sep 25 2013 [713]bronx54.jpg
-rw-rw-r-- 1 fdc kermit 293362 Oct 26 2014 [714]bronx540.jpg
-rw-rw-r-- 1 fdc kermit 189039 Oct 26 2014 [715]bronx541.jpg
-rw-rw-r-- 1 fdc kermit 213811 Oct 26 2014 [716]bronx542.jpg
-rw-rw-r-- 1 fdc kermit 191084 Oct 26 2014 [717]bronx543.jpg
-rw-rw-r-- 1 fdc kermit 220294 Oct 26 2014 [718]bronx544.jpg
-rw-rw-r-- 1 fdc kermit 191745 Oct 26 2014 [719]bronx545.jpg
-rw-r--r-- 1 fdc kermit 86142 Oct 27 2014 [720]bronx546.jpg
-rw-rw-r-- 1 fdc kermit 197970 Oct 26 2014 [721]bronx547.jpg
-rw-rw-r-- 1 fdc kermit 130663 Oct 26 2014 [722]bronx548.jpg
-rw-rw-r-- 1 fdc kermit 226219 Oct 26 2014 [723]bronx549.jpg
-rw-rw-r-- 1 fdc kermit 268418 Oct 30 2013 [724]bronx55.jpg
-rw-rw-r-- 1 fdc kermit 204139 Oct 26 2014 [725]bronx550.jpg
-rw-rw-r-- 1 fdc kermit 252751 Oct 26 2014 [726]bronx551.jpg
-rw-rw-r-- 1 fdc kermit 167354 Oct 26 2014 [727]bronx552.jpg
-rw-rw-r-- 1 fdc kermit 292621 Oct 26 2014 [728]bronx553.jpg
-rw-rw-r-- 1 fdc kermit 237197 Oct 26 2014 [729]bronx554.jpg
-rw-rw-r-- 1 fdc kermit 218640 Oct 26 2014 [730]bronx555.jpg
-rw-rw-r-- 1 fdc kermit 235395 Oct 26 2014 [731]bronx556.jpg
-rw-rw-r-- 1 fdc kermit 202475 Oct 26 2014 [732]bronx557.jpg
-rw-rw-r-- 1 fdc kermit 165203 Oct 26 2014 [733]bronx558.jpg
-rw-rw-r-- 1 fdc kermit 94194 Oct 26 2014 [734]bronx559.jpg
-rw-rw-r-- 1 fdc kermit 370639 Sep 25 2013 [735]bronx56.jpg
-rw-rw-r-- 1 fdc kermit 194956 Oct 26 2014 [736]bronx560.jpg
-rw-rw-r-- 1 fdc kermit 207435 Oct 26 2014 [737]bronx561.jpg
-rw-rw-r-- 1 fdc kermit 321830 Oct 26 2014 [738]bronx562.jpg
-rw-rw-r-- 1 fdc kermit 78749 Oct 26 2014 [739]bronx563.jpg
-rw-rw-r-- 1 fdc kermit 88961 Oct 27 2014 [740]bronx564.jpg
-rw-rw-r-- 1 fdc kermit 59380 Oct 26 2014 [741]bronx565.jpg
-rw-rw-r-- 1 fdc kermit 303151 Oct 26 2014 [742]bronx566.jpg
-rw-rw-r-- 1 fdc kermit 275096 Oct 26 2014 [743]bronx567.jpg
-rw-rw-r-- 1 fdc kermit 255080 Oct 26 2014 [744]bronx568.jpg
-rw-rw-r-- 1 fdc kermit 300024 Oct 27 2014 [745]bronx569.jpg
-rw-rw-r-- 1 fdc kermit 304021 Sep 25 2013 [746]bronx57.jpg
-rw-rw-r-- 1 fdc kermit 151787 Apr 5 2015 [747]bronx570.jpg
-rw-rw-r-- 1 fdc kermit 119374 Apr 4 2015 [748]bronx571.jpg
-rw-rw-r-- 1 fdc kermit 191656 Apr 4 2015 [749]bronx572.jpg
-rw-rw-r-- 1 fdc kermit 355718 Apr 4 2015 [750]bronx573.jpg
-rw-rw-r-- 1 fdc kermit 148867 Apr 4 2015 [751]bronx574.jpg
-rw-rw-r-- 1 fdc kermit 212367 Apr 4 2015 [752]bronx575.jpg
-rw-rw-r-- 1 fdc kermit 147893 Apr 4 2015 [753]bronx576.jpg
-rw-rw-r-- 1 fdc kermit 280505 Apr 4 2015 [754]bronx577.jpg
-rw-rw-r-- 1 fdc kermit 59500 Apr 4 2015 [755]bronx578.jpg
-rw-rw-r-- 1 fdc kermit 142988 Apr 4 2015 [756]bronx579.jpg
-rw-rw-r-- 1 fdc kermit 258045 Sep 25 2013 [757]bronx58.jpg
-rw-rw-r-- 1 fdc kermit 131990 Apr 4 2015 [758]bronx580.jpg
-rw-rw-r-- 1 fdc kermit 161364 Apr 4 2015 [759]bronx581.jpg
-rw-rw-r-- 1 fdc kermit 94819 Apr 4 2015 [760]bronx582.jpg
-rw-rw-r-- 1 fdc kermit 339922 Apr 4 2015 [761]bronx583.jpg
-rw-rw-r-- 1 fdc kermit 108375 Apr 4 2015 [762]bronx584.jpg
-rw-rw-r-- 1 fdc kermit 100227 Apr 5 2015 [763]bronx585.jpg
-rw-rw-r-- 1 fdc kermit 59567 Apr 4 2015 [764]bronx586.jpg
-rw-rw-r-- 1 fdc kermit 188193 Apr 4 2015 [765]bronx587.jpg
-rw-rw-r-- 1 fdc kermit 84730 Apr 4 2015 [766]bronx588.jpg
-rw-rw-r-- 1 fdc kermit 162959 Apr 4 2015 [767]bronx589.jpg
-rw-rw-r-- 1 fdc kermit 375006 Sep 25 2013 [768]bronx59.jpg
-rw-rw-r-- 1 fdc kermit 37619 Apr 4 2015 [769]bronx590.jpg
-rw-rw-r-- 1 fdc kermit 197032 Apr 4 2015 [770]bronx591.jpg
-rw-rw-r-- 1 fdc kermit 365964 Apr 4 2015 [771]bronx592.jpg
-rw-rw-r-- 1 fdc kermit 249053 Apr 4 2015 [772]bronx593.jpg
-rw-rw-r-- 1 fdc kermit 140632 Apr 4 2015 [773]bronx594.jpg
-rw-rw-r-- 1 fdc kermit 168790 Apr 4 2015 [774]bronx595.jpg
-rw-rw-r-- 1 fdc kermit 214976 Apr 4 2015 [775]bronx596.jpg
-rw-rw-r-- 1 fdc kermit 152755 Apr 4 2015 [776]bronx597.jpg
-rw-rw-r-- 1 fdc kermit 229011 Apr 4 2015 [777]bronx598.jpg
-rw-rw-r-- 1 fdc kermit 167279 Apr 4 2015 [778]bronx599.jpg
-rw-rw-r-- 1 fdc kermit 69259 Sep 4 2013 [779]bronx6.jpg
-rw-rw-r-- 1 fdc kermit 286907 Sep 25 2013 [780]bronx60.jpg
-rw-rw-r-- 1 fdc kermit 152586 Apr 4 2015 [781]bronx600.jpg
-rw-rw-r-- 1 fdc kermit 78062 Apr 4 2015 [782]bronx601.jpg
-rw-r--r-- 1 fdc kermit 151787 Oct 27 2014 [783]bronx601.jpg.~1~
-rw-rw-r-- 1 fdc kermit 104655 Apr 22 2015 [784]bronx602.jpg
-rw-rw-r-- 1 fdc kermit 283058 Apr 22 2015 [785]bronx603.jpg
-rw-rw-r-- 1 fdc kermit 262220 Apr 22 2015 [786]bronx604.jpg
-rw-rw-r-- 1 fdc kermit 301661 Apr 22 2015 [787]bronx605.jpg
-rw-rw-r-- 1 fdc kermit 217659 Apr 22 2015 [788]bronx606.jpg
-rw-rw-r-- 1 fdc kermit 347108 Apr 22 2015 [789]bronx607.jpg
-rw-rw-r-- 1 fdc kermit 384066 Apr 22 2015 [790]bronx608.jpg
-rw-rw-r-- 1 fdc kermit 391858 Apr 22 2015 [791]bronx609.jpg
-rw-rw-r-- 1 fdc kermit 288964 Sep 25 2013 [792]bronx61.jpg
-rw-rw-r-- 1 fdc kermit 332984 Apr 22 2015 [793]bronx610.jpg
-rw-rw-r-- 1 fdc kermit 364927 Apr 22 2015 [794]bronx611.jpg
-rw-rw-r-- 1 fdc kermit 277747 Apr 22 2015 [795]bronx612.jpg
-rw-rw-r-- 1 fdc kermit 197292 Apr 22 2015 [796]bronx613.jpg
-rw-rw-r-- 1 fdc kermit 203443 Apr 22 2015 [797]bronx614.jpg
-rw-rw-r-- 1 fdc kermit 339169 Apr 22 2015 [798]bronx615.jpg
-rw-rw-r-- 1 fdc kermit 307641 Apr 22 2015 [799]bronx616.jpg
-rw-rw-r-- 1 fdc kermit 391437 Apr 22 2015 [800]bronx617.jpg
-rw-rw-r-- 1 fdc kermit 265282 Apr 22 2015 [801]bronx618.jpg
-rw-rw-r-- 1 fdc kermit 450761 Apr 22 2015 [802]bronx619.jpg
-rw-rw-r-- 1 fdc kermit 338782 Sep 25 2013 [803]bronx62.jpg
-rw-rw-r-- 1 fdc kermit 394847 Apr 22 2015 [804]bronx620.jpg
-rw-rw-r-- 1 fdc kermit 346958 Apr 22 2015 [805]bronx621.jpg
-rw-rw-r-- 1 fdc kermit 248089 Apr 22 2015 [806]bronx622.jpg
-rw-rw-r-- 1 fdc kermit 333071 Apr 22 2015 [807]bronx623.jpg
-rw-rw-r-- 1 fdc kermit 249350 Apr 22 2015 [808]bronx624.jpg
-rw-rw-r-- 1 fdc kermit 380907 Apr 22 2015 [809]bronx625.jpg
-rw-rw-r-- 1 fdc kermit 258877 Apr 22 2015 [810]bronx626.jpg
-rw-rw-r-- 1 fdc kermit 137995 Apr 22 2015 [811]bronx627.jpg
-rw-rw-r-- 1 fdc kermit 238627 Apr 22 2015 [812]bronx628.jpg
-rw-rw-r-- 1 fdc kermit 283389 Apr 22 2015 [813]bronx629.jpg
-rw-rw-r-- 1 fdc kermit 336317 Sep 25 2013 [814]bronx63.jpg
-rw-rw-r-- 1 fdc kermit 369395 Apr 22 2015 [815]bronx630.jpg
-rw-rw-r-- 1 fdc kermit 370534 Apr 22 2015 [816]bronx631.jpg
-rw-rw-r-- 1 fdc kermit 376487 Apr 22 2015 [817]bronx632.jpg
-rw-rw-r-- 1 fdc kermit 394658 Apr 22 2015 [818]bronx633.jpg
-rw-rw-r-- 1 fdc kermit 283522 Apr 22 2015 [819]bronx634.jpg
-rw-rw-r-- 1 fdc kermit 341757 Apr 22 2015 [820]bronx635.jpg
-rw-rw-r-- 1 fdc kermit 315907 Apr 22 2015 [821]bronx636.jpg
-rw-rw-r-- 1 fdc kermit 400984 Apr 22 2015 [822]bronx637.jpg
-rw-rw-r-- 1 fdc kermit 312874 Apr 22 2015 [823]bronx638.jpg
-rw-rw-r-- 1 fdc kermit 270913 Apr 22 2015 [824]bronx639.jpg
-rw-rw-r-- 1 fdc kermit 326745 Sep 25 2013 [825]bronx64.jpg
-rw-rw-r-- 1 fdc kermit 316341 Apr 22 2015 [826]bronx640.jpg
-rw-rw-r-- 1 fdc kermit 286092 Apr 22 2015 [827]bronx641.jpg
-rw-rw-r-- 1 fdc kermit 332461 Apr 22 2015 [828]bronx642.jpg
-rw-rw-r-- 1 fdc kermit 177703 Apr 22 2015 [829]bronx643.jpg
-rw-rw-r-- 1 fdc kermit 207282 Apr 22 2015 [830]bronx644.jpg
-rw-rw-r-- 1 fdc kermit 427312 Apr 22 2015 [831]bronx645.jpg
-rw-rw-r-- 1 fdc kermit 387900 Apr 22 2015 [832]bronx646.jpg
-rw-rw-r-- 1 fdc kermit 305270 Apr 22 2015 [833]bronx647.jpg
-rw-rw-r-- 1 fdc kermit 191595 Apr 22 2015 [834]bronx648.jpg
-rw-rw-r-- 1 fdc kermit 78796 Apr 22 2015 [835]bronx649.jpg
-rw-rw-r-- 1 fdc kermit 346401 Sep 25 2013 [836]bronx65.jpg
-rw-rw-r-- 1 fdc kermit 285405 Apr 23 2015 [837]bronx650.jpg
-rw-r--r-- 1 fdc kermit 285405 Apr 23 2015 [838]bronx650.jpg.~1~
-rw-rw-r-- 1 fdc kermit 374588 Apr 23 2015 [839]bronx651.jpg
-rw-r--r-- 1 fdc kermit 374588 Apr 23 2015 [840]bronx651.jpg.~1~
-rw-rw-r-- 1 fdc kermit 352896 Apr 23 2015 [841]bronx652.jpg
-rw-r--r-- 1 fdc kermit 352896 Apr 23 2015 [842]bronx652.jpg.~1~
-rw-rw-r-- 1 fdc kermit 207192 Apr 23 2015 [843]bronx653.jpg
-rw-r--r-- 1 fdc kermit 207192 Apr 23 2015 [844]bronx653.jpg.~1~
-rw-rw-r-- 1 fdc kermit 146516 Apr 23 2015 [845]bronx654.jpg
-rw-r--r-- 1 fdc kermit 146516 Apr 23 2015 [846]bronx654.jpg.~1~
-rw-rw-r-- 1 fdc kermit 228315 Apr 23 2015 [847]bronx655.jpg
-rw-r--r-- 1 fdc kermit 228315 Apr 23 2015 [848]bronx655.jpg.~1~
-rw-rw-r-- 1 fdc kermit 291725 Apr 23 2015 [849]bronx656.jpg
-rw-r--r-- 1 fdc kermit 291725 Apr 23 2015 [850]bronx656.jpg.~1~
-rw-rw-r-- 1 fdc kermit 352864 Apr 23 2015 [851]bronx657.jpg
-rw-r--r-- 1 fdc kermit 352864 Apr 23 2015 [852]bronx657.jpg.~1~
-rw-rw-r-- 1 fdc kermit 314921 Apr 23 2015 [853]bronx658.jpg
-rw-r--r-- 1 fdc kermit 314921 Apr 23 2015 [854]bronx658.jpg.~1~
-rw-rw-r-- 1 fdc kermit 344631 Apr 23 2015 [855]bronx659.jpg
-rw-r--r-- 1 fdc kermit 344631 Apr 23 2015 [856]bronx659.jpg.~1~
-rw-rw-r-- 1 fdc kermit 304245 Sep 25 2013 [857]bronx66.jpg
-rw-rw-r-- 1 fdc kermit 264144 Apr 23 2015 [858]bronx660.jpg
-rw-r--r-- 1 fdc kermit 264144 Apr 23 2015 [859]bronx660.jpg.~1~
-rw-rw-r-- 1 fdc kermit 417479 Apr 23 2015 [860]bronx661.jpg
-rw-rw-r-- 1 fdc kermit 300875 Apr 23 2015 [861]bronx662.jpg
-rw-rw-r-- 1 fdc kermit 323592 Apr 23 2015 [862]bronx663.jpg
-rw-rw-r-- 1 fdc kermit 384636 Apr 23 2015 [863]bronx664.jpg
-rw-rw-r-- 1 fdc kermit 391452 Apr 23 2015 [864]bronx665.jpg
-rw-rw-r-- 1 fdc kermit 435095 May 19 2015 [865]bronx666.jpg
-rw-rw-r-- 1 fdc kermit 119499 May 19 2015 [866]bronx667.jpg
-rw-rw-r-- 1 fdc kermit 191471 May 19 2015 [867]bronx668.jpg
-rw-rw-r-- 1 fdc kermit 316952 May 19 2015 [868]bronx669.jpg
-rw-rw-r-- 1 fdc kermit 297564 Sep 25 2013 [869]bronx67.jpg
-rw-rw-r-- 1 fdc kermit 213659 May 19 2015 [870]bronx670.jpg
-rw-rw-r-- 1 fdc kermit 285291 May 19 2015 [871]bronx671.jpg
-rw-rw-r-- 1 fdc kermit 249374 May 19 2015 [872]bronx672.jpg
-rw-rw-r-- 1 fdc kermit 185320 May 19 2015 [873]bronx673.jpg
-rw-rw-r-- 1 fdc kermit 364010 May 19 2015 [874]bronx674.jpg
-rw-rw-r-- 1 fdc kermit 152292 May 19 2015 [875]bronx675.jpg
-rw-rw-r-- 1 fdc kermit 167862 May 19 2015 [876]bronx676.jpg
-rw-rw-r-- 1 fdc kermit 117434 May 19 2015 [877]bronx677.jpg
-rw-rw-r-- 1 fdc kermit 197315 May 19 2015 [878]bronx678.jpg
-rw-rw-r-- 1 fdc kermit 203587 May 19 2015 [879]bronx679.jpg
-rw-rw-r-- 1 fdc kermit 191574 Sep 25 2013 [880]bronx68.jpg
-rw-rw-r-- 1 fdc kermit 183446 May 19 2015 [881]bronx680.jpg
-rw-rw-r-- 1 fdc kermit 253389 May 19 2015 [882]bronx681.jpg
-rw-rw-r-- 1 fdc kermit 363948 May 19 2015 [883]bronx682.jpg
-rw-rw-r-- 1 fdc kermit 279080 May 19 2015 [884]bronx683.jpg
-rw-rw-r-- 1 fdc kermit 338876 May 31 2015 [885]bronx684.jpg
-rw-rw-r-- 1 fdc kermit 368711 May 31 2015 [886]bronx685.jpg
-rw-rw-r-- 1 fdc kermit 330774 May 31 2015 [887]bronx686.jpg
-rw-rw-r-- 1 fdc kermit 347005 May 31 2015 [888]bronx687.jpg
-rw-rw-r-- 1 fdc kermit 401010 May 31 2015 [889]bronx688.jpg
-rw-rw-r-- 1 fdc kermit 175876 May 31 2015 [890]bronx689.jpg
-rw-rw-r-- 1 fdc kermit 204528 Sep 25 2013 [891]bronx69.jpg
-rw-rw-r-- 1 fdc kermit 191482 May 31 2015 [892]bronx690.jpg
-rw-rw-r-- 1 fdc kermit 329656 May 31 2015 [893]bronx691.jpg
-rw-rw-r-- 1 fdc kermit 89587 Jun 6 2015 [894]bronx692.jpg
-rw-rw-r-- 1 fdc kermit 294779 Jun 6 2015 [895]bronx693.jpg
-rw-rw-r-- 1 fdc kermit 302432 Jun 9 2015 [896]bronx694.jpg
-rw-rw-r-- 1 fdc kermit 185842 Jun 9 2015 [897]bronx695.jpg
-rw-rw-r-- 1 fdc kermit 537736 Jun 9 2015 [898]bronx696.jpg
-rw-rw-r-- 1 fdc kermit 271734 Jun 9 2015 [899]bronx697.jpg
-rw-rw-r-- 1 fdc kermit 280329 Jun 9 2015 [900]bronx698.jpg
-rw-rw-r-- 1 fdc kermit 357314 Jun 9 2015 [901]bronx699.jpg
-rw-rw-r-- 1 fdc kermit 244961 Sep 4 2013 [902]bronx7.jpg
-rw-rw-r-- 1 fdc kermit 267681 Sep 25 2013 [903]bronx70.jpg
-rw-rw-r-- 1 fdc kermit 243396 Jun 9 2015 [904]bronx700.jpg
-rw-rw-r-- 1 fdc kermit 304437 Jun 9 2015 [905]bronx701.jpg
-rw-rw-r-- 1 fdc kermit 227391 Jun 9 2015 [906]bronx702.jpg
-rw-rw-r-- 1 fdc kermit 423853 Jun 9 2015 [907]bronx703.jpg
-rw-rw-r-- 1 fdc kermit 468869 Jun 9 2015 [908]bronx704.jpg
-rw-rw-r-- 1 fdc kermit 411658 Jun 9 2015 [909]bronx705.jpg
-rw-rw-r-- 1 fdc kermit 435141 Jun 9 2015 [910]bronx706.jpg
-rw-rw-r-- 1 fdc kermit 231102 Jun 9 2015 [911]bronx707.jpg
-rw-rw-r-- 1 fdc kermit 283341 Jun 9 2015 [912]bronx708.jpg
-rw-rw-r-- 1 fdc kermit 176171 Jun 9 2015 [913]bronx709.jpg
-rw-rw-r-- 1 fdc kermit 248708 Sep 25 2013 [914]bronx71.jpg
-rw-rw-r-- 1 fdc kermit 432326 Jun 9 2015 [915]bronx710.jpg
-rw-rw-r-- 1 fdc kermit 374080 Jun 9 2015 [916]bronx711.jpg
-rw-rw-r-- 1 fdc kermit 324293 Jun 9 2015 [917]bronx712.jpg
-rw-rw-r-- 1 fdc kermit 200457 Jun 9 2015 [918]bronx713.jpg
-rw-rw-r-- 1 fdc kermit 283024 Jun 9 2015 [919]bronx714.jpg
-rw-rw-r-- 1 fdc kermit 278156 Jun 9 2015 [920]bronx715.jpg
-rw-rw-r-- 1 fdc kermit 332587 Jun 9 2015 [921]bronx716.jpg
-rw-rw-r-- 1 fdc kermit 341201 Jun 9 2015 [922]bronx717.jpg
-rw-rw-r-- 1 fdc kermit 240975 Jun 9 2015 [923]bronx718.jpg
-rw-rw-r-- 1 fdc kermit 410001 Jun 9 2015 [924]bronx719.jpg
-rw-rw-r-- 1 fdc kermit 296009 Sep 25 2013 [925]bronx72.jpg
-rw-rw-r-- 1 fdc kermit 202142 Jun 9 2015 [926]bronx720.jpg
-rw-rw-r-- 1 fdc kermit 165272 Jun 9 2015 [927]bronx721.jpg
-rw-rw-r-- 1 fdc kermit 337709 Jun 9 2015 [928]bronx722.jpg
-rw-rw-r-- 1 fdc kermit 312109 Jun 21 2015 [929]bronx723.jpg
-rw-rw-r-- 1 fdc kermit 183012 Jun 21 2015 [930]bronx724.jpg
-rw-rw-r-- 1 fdc kermit 246796 Jun 21 2015 [931]bronx725.jpg
-rw-rw-r-- 1 fdc kermit 182008 Jun 21 2015 [932]bronx726.jpg
-rw-rw-r-- 1 fdc kermit 269780 Jun 21 2015 [933]bronx727.jpg
-rw-rw-r-- 1 fdc kermit 67298 Jun 21 2015 [934]bronx728.jpg
-rw-rw-r-- 1 fdc kermit 194461 Jun 21 2015 [935]bronx729.jpg
-rw-rw-r-- 1 fdc kermit 209888 Sep 25 2013 [936]bronx73.jpg
-rw-rw-r-- 1 fdc kermit 254885 Jun 21 2015 [937]bronx730.jpg
-rw-rw-r-- 1 fdc kermit 342492 Jun 21 2015 [938]bronx731.jpg
-rw-rw-r-- 1 fdc kermit 346890 Jun 21 2015 [939]bronx732.jpg
-rw-rw-r-- 1 fdc kermit 250429 Jun 21 2015 [940]bronx733.jpg
-rw-rw-r-- 1 fdc kermit 230024 Jun 21 2015 [941]bronx734.jpg
-rw-rw-r-- 1 fdc kermit 330434 Jun 21 2015 [942]bronx735.jpg
-rw-rw-r-- 1 fdc kermit 361234 Jun 21 2015 [943]bronx736.jpg
-rw-rw-r-- 1 fdc kermit 323662 Jun 21 2015 [944]bronx737.jpg
-rw-rw-r-- 1 fdc kermit 416479 Jun 21 2015 [945]bronx738.jpg
-rw-rw-r-- 1 fdc kermit 306430 Jun 21 2015 [946]bronx739.jpg
-rw-rw-r-- 1 fdc kermit 327375 Sep 25 2013 [947]bronx74.jpg
-rw-rw-r-- 1 fdc kermit 275824 Jun 21 2015 [948]bronx740.jpg
-rw-rw-r-- 1 fdc kermit 367076 Jun 21 2015 [949]bronx741.jpg
-rw-rw-r-- 1 fdc kermit 361883 Jun 21 2015 [950]bronx742.jpg
-rw-rw-r-- 1 fdc kermit 251692 Jun 26 2015 [951]bronx743.jpg
-rw-rw-r-- 1 fdc kermit 389883 Jun 26 2015 [952]bronx744.jpg
-rw-rw-r-- 1 fdc kermit 207489 Jun 26 2015 [953]bronx745.jpg
-rw-rw-r-- 1 fdc kermit 311515 Jun 26 2015 [954]bronx746.jpg
-rw-rw-r-- 1 fdc kermit 265466 Jun 26 2015 [955]bronx747.jpg
-rw-r--r-- 1 fdc kermit 1334 Jun 26 2015 [956]bronx748.html
-rw-rw-r-- 1 fdc kermit 297373 Jun 26 2015 [957]bronx748.jpg
-rw-rw-r-- 1 fdc kermit 256426 Jul 22 2015 [958]bronx749.jpg
-rw-rw-r-- 1 fdc kermit 264860 Sep 25 2013 [959]bronx75.jpg
-rw-rw-r-- 1 fdc kermit 188517 Aug 31 2015 [960]bronx750.jpg
-rw-rw-r-- 1 fdc kermit 251182 Aug 31 2015 [961]bronx751.jpg
-rw-rw-r-- 1 fdc kermit 204928 Aug 31 2015 [962]bronx752.jpg
-rw-rw-r-- 1 fdc kermit 386322 Aug 31 2015 [963]bronx753.jpg
-rw-rw-r-- 1 fdc kermit 266906 Aug 31 2015 [964]bronx754.jpg
-rw-rw-r-- 1 fdc kermit 246862 Aug 31 2015 [965]bronx755.jpg
-rw-rw-r-- 1 fdc kermit 74748 Aug 31 2015 [966]bronx756.jpg
-rw-rw-r-- 1 fdc kermit 319279 Aug 31 2015 [967]bronx757.jpg
-rw-rw-r-- 1 fdc kermit 215887 Aug 31 2015 [968]bronx758.jpg
-rw-rw-r-- 1 fdc kermit 300725 Aug 31 2015 [969]bronx759.jpg
-rw-rw-r-- 1 fdc kermit 141169 Sep 25 2013 [970]bronx76.jpg
-rw-rw-r-- 1 fdc kermit 311194 Aug 31 2015 [971]bronx760.jpg
-rw-rw-r-- 1 fdc kermit 285566 Aug 31 2015 [972]bronx761.jpg
-rw-rw-r-- 1 fdc kermit 69863 Aug 31 2015 [973]bronx762.jpg
-rw-rw-r-- 1 fdc kermit 334684 Aug 31 2015 [974]bronx763.jpg
-rw-rw-r-- 1 fdc kermit 242439 Aug 31 2015 [975]bronx764.jpg
-rw-rw-r-- 1 fdc kermit 253022 Aug 31 2015 [976]bronx765.jpg
-rw-rw-r-- 1 fdc kermit 291390 Aug 31 2015 [977]bronx766.jpg
-rw-rw-r-- 1 fdc kermit 283660 Aug 31 2015 [978]bronx767.jpg
-rw-rw-r-- 1 fdc kermit 222117 Aug 31 2015 [979]bronx768.jpg
-rw-rw-r-- 1 fdc kermit 134808 Aug 31 2015 [980]bronx769.jpg
-rw-rw-r-- 1 fdc kermit 169869 Sep 26 2013 [981]bronx77.jpg
-rw-rw-r-- 1 fdc kermit 253774 Aug 31 2015 [982]bronx770.jpg
-rw-rw-r-- 1 fdc kermit 238920 Aug 31 2015 [983]bronx771.jpg
-rw-rw-r-- 1 fdc kermit 301852 Aug 31 2015 [984]bronx772.jpg
-rw-rw-r-- 1 fdc kermit 165006 Aug 31 2015 [985]bronx773.jpg
-rw-rw-r-- 1 fdc kermit 489160 Aug 31 2015 [986]bronx774.jpg
-rw-rw-r-- 1 fdc kermit 185655 Aug 31 2015 [987]bronx775.jpg
-rw-rw-r-- 1 fdc kermit 214489 Aug 31 2015 [988]bronx776.jpg
-rw-rw-r-- 1 fdc kermit 326169 Aug 31 2015 [989]bronx777.jpg
-rw-rw-r-- 1 fdc kermit 210837 Sep 1 2015 [990]bronx778.jpg
-rw-rw-r-- 1 fdc kermit 286606 Sep 1 2015 [991]bronx779.jpg
-rw-rw-r-- 1 fdc kermit 69733 Sep 26 2013 [992]bronx78.jpg
-rw-rw-r-- 1 fdc kermit 279921 Sep 1 2015 [993]bronx780.jpg
-rw-rw-r-- 1 fdc kermit 282303 Sep 1 2015 [994]bronx781.jpg
-rw-rw-r-- 1 fdc kermit 139021 Sep 1 2015 [995]bronx782.jpg
-rw-rw-r-- 1 fdc kermit 198922 Sep 1 2015 [996]bronx783.jpg
-rw-rw-r-- 1 fdc kermit 58262 Sep 27 2015 [997]bronx784.jpg
-rw-rw-r-- 1 fdc kermit 372524 Sep 27 2015 [998]bronx785.jpg
-rw-rw-r-- 1 fdc kermit 289246 Sep 27 2015 [999]bronx786.jpg
-rw-rw-r-- 1 fdc kermit 351833 Sep 27 2015 [1000]bronx787.jpg
-rw-rw-r-- 1 fdc kermit 177202 Sep 27 2015 [1001]bronx788.jpg
-rw-rw-r-- 1 fdc kermit 271954 Sep 27 2015 [1002]bronx789.jpg
-rw-rw-r-- 1 fdc kermit 244353 Sep 26 2013 [1003]bronx79.jpg
-rw-rw-r-- 1 fdc kermit 276667 Sep 27 2015 [1004]bronx790.jpg
-rw-rw-r-- 1 fdc kermit 186038 Sep 27 2015 [1005]bronx791.jpg
-rw-rw-r-- 1 fdc kermit 476905 Sep 27 2015 [1006]bronx792.jpg
-rw-rw-r-- 1 fdc kermit 243239 Sep 27 2015 [1007]bronx793.jpg
-rw-rw-r-- 1 fdc kermit 250251 Sep 27 2015 [1008]bronx794.jpg
-rw-rw-r-- 1 fdc kermit 272946 Sep 27 2015 [1009]bronx795.jpg
-rw-rw-r-- 1 fdc kermit 290889 Sep 27 2015 [1010]bronx796.jpg
-rw-rw-r-- 1 fdc kermit 362123 Sep 27 2015 [1011]bronx797.jpg
-rw-rw-r-- 1 fdc kermit 256573 Sep 27 2015 [1012]bronx798.jpg
-rw-rw-r-- 1 fdc kermit 233973 Sep 27 2015 [1013]bronx799.jpg
-rw-rw-r-- 1 fdc kermit 123846 Sep 4 2013 [1014]bronx8.jpg
-rw-rw-r-- 1 fdc kermit 261222 Sep 27 2013 [1015]bronx80.jpg
-rw-rw-r-- 1 fdc kermit 257561 Sep 27 2015 [1016]bronx800.jpg
-rw-rw-r-- 1 fdc kermit 642320 Jul 2 2017 [1017]bronx801.jpg
-rw-rw-r-- 1 fdc kermit 1523794 Jul 2 2017 [1018]bronx802.jpg
-rw-rw-r-- 1 fdc kermit 1662148 Jul 2 2017 [1019]bronx803.jpg
-rw-rw-r-- 1 fdc kermit 1523238 Jul 2 2017 [1020]bronx804.jpg
-rw-rw-r-- 1 fdc kermit 1144429 Jul 2 2017 [1021]bronx805.jpg
-rw-rw-r-- 1 fdc kermit 1014648 Jul 2 2017 [1022]bronx806.jpg
-rw-rw-r-- 1 fdc kermit 1069510 Jul 2 2017 [1023]bronx807.jpg
-rw-rw-r-- 1 fdc kermit 973978 Jul 2 2017 [1024]bronx808.jpg
-rw-rw-r-- 1 fdc kermit 1379369 Jul 2 2017 [1025]bronx809.jpg
-rw-rw-r-- 1 fdc kermit 69895 Sep 26 2013 [1026]bronx81.jpg
-rw-rw-r-- 1 fdc kermit 1443702 Jul 2 2017 [1027]bronx810.jpg
-rw-rw-r-- 1 fdc kermit 1047775 Jul 2 2017 [1028]bronx811.jpg
-rw-rw-r-- 1 fdc kermit 1080801 Jul 2 2017 [1029]bronx812.jpg
-rw-rw-r-- 1 fdc kermit 500447 Jul 2 2017 [1030]bronx813.jpg
-rw-rw-r-- 1 fdc kermit 1200981 Jul 2 2017 [1031]bronx814.jpg
-rw-rw-r-- 1 fdc kermit 2000683 Jul 2 2017 [1032]bronx815.jpg
-rw-rw-r-- 1 fdc kermit 1696699 Jul 2 2017 [1033]bronx816.jpg
-rw-rw-r-- 1 fdc kermit 910789 Jul 2 2017 [1034]bronx817.jpg
-rw-rw-r-- 1 fdc kermit 1200274 Jul 2 2017 [1035]bronx818.jpg
-rw-rw-r-- 1 fdc kermit 1178301 Jul 2 2017 [1036]bronx819.jpg
-rw-rw-r-- 1 fdc kermit 73645 Sep 26 2013 [1037]bronx82.jpg
-rw-rw-r-- 1 fdc kermit 1086989 Jul 2 2017 [1038]bronx820.jpg
-rw-rw-r-- 1 fdc kermit 1041271 Jul 2 2017 [1039]bronx821.jpg
-rw-rw-r-- 1 fdc kermit 1783854 Jul 2 2017 [1040]bronx822.jpg
-rw-rw-r-- 1 fdc kermit 1868789 Jul 2 2017 [1041]bronx823.jpg
-rw-rw-r-- 1 fdc kermit 1705773 Jul 2 2017 [1042]bronx824.jpg
-rw-rw-r-- 1 fdc kermit 1535057 Jul 2 2017 [1043]bronx825.jpg
-rw-rw-r-- 1 fdc kermit 962434 Jul 2 2017 [1044]bronx826.jpg
-rw-rw-r-- 1 fdc kermit 1442461 Jul 2 2017 [1045]bronx827.jpg
-rw-rw-r-- 1 fdc kermit 978343 Jul 2 2017 [1046]bronx828.jpg
-rw-rw-r-- 1 fdc kermit 929815 Jul 2 2017 [1047]bronx829.jpg
-rw-rw-r-- 1 fdc kermit 210852 Sep 26 2013 [1048]bronx83.jpg
-rw-rw-r-- 1 fdc kermit 972582 Jul 2 2017 [1049]bronx830.jpg
-rw-rw-r-- 1 fdc kermit 1388460 Jul 2 2017 [1050]bronx831.jpg
-rw-rw-r-- 1 fdc kermit 1285707 Jul 2 2017 [1051]bronx832.jpg
-rw-rw-r-- 1 fdc kermit 1015434 Jul 2 2017 [1052]bronx833.jpg
-rw-rw-r-- 1 fdc kermit 1297304 Jul 2 2017 [1053]bronx834.jpg
-rw-rw-r-- 1 fdc kermit 1346721 Jul 2 2017 [1054]bronx835.jpg
-rw-rw-r-- 1 fdc kermit 1839491 Jul 2 2017 [1055]bronx836.jpg
-rw-rw-r-- 1 fdc kermit 1801865 Jul 2 2017 [1056]bronx837.jpg
-rw-rw-r-- 1 fdc kermit 1586900 Jul 2 2017 [1057]bronx838.jpg
-rw-rw-r-- 1 fdc kermit 1731179 Jul 2 2017 [1058]bronx839.jpg
-rw-rw-r-- 1 fdc kermit 59803 Sep 26 2013 [1059]bronx84.jpg
-rw-rw-r-- 1 fdc kermit 1828148 Jul 2 2017 [1060]bronx840.jpg
-rw-rw-r-- 1 fdc kermit 1423501 Jul 2 2017 [1061]bronx841.jpg
-rw-rw-r-- 1 fdc kermit 1066756 Jul 2 2017 [1062]bronx842.jpg
-rw-rw-r-- 1 fdc kermit 1557651 Jul 2 2017 [1063]bronx843.jpg
-rw-rw-r-- 1 fdc kermit 832145 Jul 2 2017 [1064]bronx844.jpg
-rw-rw-r-- 1 fdc kermit 1334116 Jul 2 2017 [1065]bronx845.jpg
-rw-rw-r-- 1 fdc kermit 1607946 Jul 2 2017 [1066]bronx846.jpg
-rw-rw-r-- 1 fdc kermit 1148493 Jul 2 2017 [1067]bronx847.jpg
-rw-rw-r-- 1 fdc kermit 682915 Jul 2 2017 [1068]bronx848.jpg
-rw-rw-r-- 1 fdc kermit 1328098 Jul 2 2017 [1069]bronx849.jpg
-rw-rw-r-- 1 fdc kermit 148579 Sep 26 2013 [1070]bronx85.jpg
-rw-rw-r-- 1 fdc kermit 1250706 Jul 2 2017 [1071]bronx850.jpg
-rw-rw-r-- 1 fdc kermit 1240352 Jul 2 2017 [1072]bronx851.jpg
-rw-rw-r-- 1 fdc kermit 669464 Jul 2 2017 [1073]bronx852.jpg
-rw-rw-r-- 1 fdc kermit 1236566 Jul 2 2017 [1074]bronx853.jpg
-rw-rw-r-- 1 fdc kermit 640820 Jul 2 2017 [1075]bronx854.jpg
-rw-rw-r-- 1 fdc kermit 1358595 Jul 2 2017 [1076]bronx855.jpg
-rw-rw-r-- 1 fdc kermit 1709023 Jul 2 2017 [1077]bronx856.jpg
-rw-rw-r-- 1 fdc kermit 1251342 Jul 2 2017 [1078]bronx857.jpg
-rw-rw-r-- 1 fdc kermit 886431 Jul 2 2017 [1079]bronx858.jpg
-rw-rw-r-- 1 fdc kermit 774109 Jul 2 2017 [1080]bronx859.jpg
-rw-rw-r-- 1 fdc kermit 114832 Sep 26 2013 [1081]bronx86.jpg
-rw-rw-r-- 1 fdc kermit 995358 Jul 2 2017 [1082]bronx860.jpg
-rw-rw-r-- 1 fdc kermit 1192660 Jul 2 2017 [1083]bronx861.jpg
-rw-rw-r-- 1 fdc kermit 1376616 Jul 2 2017 [1084]bronx862.jpg
-rw-rw-r-- 1 fdc kermit 1279206 Jul 2 2017 [1085]bronx863.jpg
-rw-rw-r-- 1 fdc kermit 1323116 Jul 2 2017 [1086]bronx864.jpg
-rw-rw-r-- 1 fdc kermit 803014 Jul 2 2017 [1087]bronx865.jpg
-rw-rw-r-- 1 fdc kermit 1578811 Jul 2 2017 [1088]bronx866.jpg
-rw-rw-r-- 1 fdc kermit 1522577 Jul 2 2017 [1089]bronx867.jpg
-rw-rw-r-- 1 fdc kermit 1237122 Jul 2 2017 [1090]bronx868.jpg
-rw-rw-r-- 1 fdc kermit 823984 Jul 3 2017 [1091]bronx869.jpg
-rw-rw-r-- 1 fdc kermit 293267 Sep 26 2013 [1092]bronx87.jpg
-rw-rw-r-- 1 fdc kermit 1016806 Jul 3 2017 [1093]bronx870.jpg
-rw-rw-r-- 1 fdc kermit 1310989 Jul 3 2017 [1094]bronx871.jpg
-rw-rw-r-- 1 fdc kermit 1457611 Jul 3 2017 [1095]bronx872.jpg
-rw-rw-r-- 1 fdc kermit 1580163 Jul 3 2017 [1096]bronx873.jpg
-rw-rw-r-- 1 fdc kermit 1569760 Jul 3 2017 [1097]bronx874.jpg
-rw-rw-r-- 1 fdc kermit 1571763 Jul 3 2017 [1098]bronx875.jpg
-rw-rw-r-- 1 fdc kermit 1500635 Jul 3 2017 [1099]bronx876.jpg
-rw-rw-r-- 1 fdc kermit 1551287 Jul 3 2017 [1100]bronx877.jpg
-rw-rw-r-- 1 fdc kermit 1400550 Jul 3 2017 [1101]bronx878.jpg
-rw-rw-r-- 1 fdc kermit 1698311 Jul 3 2017 [1102]bronx879.jpg
-rw-rw-r-- 1 fdc kermit 203374 Sep 26 2013 [1103]bronx88.jpg
-rw-rw-r-- 1 fdc kermit 1667972 Jul 3 2017 [1104]bronx880.jpg
-rw-rw-r-- 1 fdc kermit 1243537 Jul 3 2017 [1105]bronx881.jpg
-rw-r--r-- 1 fdc kermit 1082435 Jul 3 2017 [1106]bronx882.jpg
-rw-rw-r-- 1 fdc kermit 546406 Jul 3 2017 [1107]bronx883.jpg
-rw-rw-r-- 1 fdc kermit 1109431 Jul 3 2017 [1108]bronx884.jpg
-rw-rw-r-- 1 fdc kermit 1379440 Jul 3 2017 [1109]bronx885.jpg
-rw-rw-r-- 1 fdc kermit 700405 Jul 3 2017 [1110]bronx886.jpg
-rw-rw-r-- 1 fdc kermit 1337783 Jul 3 2017 [1111]bronx887.jpg
-rw-rw-r-- 1 fdc kermit 1347324 Jul 3 2017 [1112]bronx888.jpg
-rw-rw-r-- 1 fdc kermit 775094 Jul 8 2016 [1113]bronx889.jpg
-rw-rw-r-- 1 fdc kermit 168034 Sep 26 2013 [1114]bronx89.jpg
-rw-rw-r-- 1 fdc kermit 882185 Jul 3 2017 [1115]bronx890.jpg
-rw-rw-r-- 1 fdc kermit 1149077 Jul 4 2017 [1116]bronx891.jpg
-rw-rw-r-- 1 fdc kermit 1388183 Jul 4 2017 [1117]bronx892.jpg
-rw-rw-r-- 1 fdc kermit 1118692 Jul 4 2017 [1118]bronx893.jpg
-rw-rw-r-- 1 fdc kermit 1239719 Jul 4 2017 [1119]bronx894.jpg
-rw-rw-r-- 1 fdc kermit 1048357 Jul 4 2017 [1120]bronx895.jpg
-rw-rw-r-- 1 fdc kermit 897179 Jul 4 2017 [1121]bronx896.jpg
-rw-rw-r-- 1 fdc kermit 1305285 Jul 4 2017 [1122]bronx897.jpg
-rw-rw-r-- 1 fdc kermit 1152005 Jul 4 2017 [1123]bronx898.jpg
-rw-rw-r-- 1 fdc kermit 985096 Jul 4 2017 [1124]bronx899.jpg
-rw-rw-r-- 1 fdc kermit 97101 May 18 2014 [1125]bronx9.jpg
-rw-rw-r-- 1 fdc kermit 195270 Sep 26 2013 [1126]bronx90.jpg
-rw-rw-r-- 1 fdc kermit 798716 Jul 4 2017 [1127]bronx900.jpg
-rw-rw-r-- 1 fdc kermit 563411 May 11 2019 [1128]bronx901.jpg
-rw-rw-r-- 1 fdc kermit 242150 May 10 2019 [1129]bronx902.jpg
-rw-rw-r-- 1 fdc kermit 693225 May 10 2019 [1130]bronx903.jpg
-rw-rw-r-- 1 fdc kermit 620753 May 11 2019 [1131]bronx904.jpg
-rw-rw-r-- 1 fdc kermit 447470 May 11 2019 [1132]bronx905.jpg
-rw-rw-r-- 1 fdc kermit 404937 May 11 2019 [1133]bronx906.jpg
-rw-rw-r-- 1 fdc kermit 737101 May 11 2019 [1134]bronx907.jpg
-rw-rw-r-- 1 fdc kermit 702718 May 11 2019 [1135]bronx908.jpg
-rw-rw-r-- 1 fdc kermit 368284 May 11 2019 [1136]bronx909.jpg
-rw-rw-r-- 1 fdc kermit 82195 Sep 26 2013 [1137]bronx91.jpg
-rw-rw-r-- 1 fdc kermit 578467 May 11 2019 [1138]bronx910.jpg
-rw-rw-r-- 1 fdc kermit 515401 May 11 2019 [1139]bronx911.jpg
-rw-rw-r-- 1 fdc kermit 573383 May 11 2019 [1140]bronx912.jpg
-rw-rw-r-- 1 fdc kermit 343586 May 11 2019 [1141]bronx913.jpg
-rw-rw-r-- 1 fdc kermit 381645 May 11 2019 [1142]bronx914.jpg
-rw-rw-r-- 1 fdc kermit 423096 May 11 2019 [1143]bronx915.jpg
-rw-rw-r-- 1 fdc kermit 284356 May 11 2019 [1144]bronx916.jpg
-rw-rw-r-- 1 fdc kermit 394558 May 11 2019 [1145]bronx917.jpg
-rw-rw-r-- 1 fdc kermit 710884 May 11 2019 [1146]bronx918.jpg
-rw-rw-r-- 1 fdc kermit 668628 May 11 2019 [1147]bronx919.jpg
-rw-rw-r-- 1 fdc kermit 225021 Sep 26 2013 [1148]bronx92.jpg
-rw-rw-r-- 1 fdc kermit 951191 May 11 2019 [1149]bronx920.jpg
-rw-rw-r-- 1 fdc kermit 640593 May 11 2019 [1150]bronx921.jpg
-rw-rw-r-- 1 fdc kermit 839318 May 11 2019 [1151]bronx922.jpg
-rw-rw-r-- 1 fdc kermit 782395 May 11 2019 [1152]bronx923.jpg
-rw-rw-r-- 1 fdc kermit 712912 May 11 2019 [1153]bronx924.jpg
-rw-rw-r-- 1 fdc kermit 511359 May 11 2019 [1154]bronx925.jpg
-rw-rw-r-- 1 fdc kermit 188530 May 11 2019 [1155]bronx926.jpg
-rw-rw-r-- 1 fdc kermit 546951 May 11 2019 [1156]bronx927.jpg
-rw-rw-r-- 1 fdc kermit 523441 May 11 2019 [1157]bronx928.jpg
-rw-rw-r-- 1 fdc kermit 543050 May 11 2019 [1158]bronx929.jpg
-rw-rw-r-- 1 fdc kermit 127325 Sep 26 2013 [1159]bronx93.jpg
-rw-rw-r-- 1 fdc kermit 530805 May 11 2019 [1160]bronx930.jpg
-rw-rw-r-- 1 fdc kermit 431230 May 11 2019 [1161]bronx931.jpg
-rw-rw-r-- 1 fdc kermit 496006 May 11 2019 [1162]bronx932.jpg
-rw-rw-r-- 1 fdc kermit 435093 May 11 2019 [1163]bronx933.jpg
-rw-rw-r-- 1 fdc kermit 840513 May 11 2019 [1164]bronx934.jpg
-rw-rw-r-- 1 fdc kermit 799752 May 11 2019 [1165]bronx935.jpg
-rw-rw-r-- 1 fdc kermit 468668 May 11 2019 [1166]bronx936.jpg
-rw-rw-r-- 1 fdc kermit 420329 May 11 2019 [1167]bronx937.jpg
-rw-rw-r-- 1 fdc kermit 892402 May 11 2019 [1168]bronx938.jpg
-rw-rw-r-- 1 fdc kermit 802573 May 11 2019 [1169]bronx939.jpg
-rw-rw-r-- 1 fdc kermit 188958 Sep 26 2013 [1170]bronx94.jpg
-rw-rw-r-- 1 fdc kermit 536976 May 11 2019 [1171]bronx940.jpg
-rw-rw-r-- 1 fdc kermit 396624 May 11 2019 [1172]bronx941.jpg
-rw-rw-r-- 1 fdc kermit 422139 May 11 2019 [1173]bronx942.jpg
-rw-rw-r-- 1 fdc kermit 791262 May 11 2019 [1174]bronx943.jpg
-rw-rw-r-- 1 fdc kermit 675804 May 11 2019 [1175]bronx944.jpg
-rw-rw-r-- 1 fdc kermit 695320 May 11 2019 [1176]bronx945.jpg
-rw-rw-r-- 1 fdc kermit 492921 May 11 2019 [1177]bronx946.jpg
-rw-rw-r-- 1 fdc kermit 688158 May 11 2019 [1178]bronx947.jpg
-rw-rw-r-- 1 fdc kermit 358353 May 11 2019 [1179]bronx948.jpg
-rw-rw-r-- 1 fdc kermit 149593 May 11 2019 [1180]bronx949.jpg
-rw-rw-r-- 1 fdc kermit 336370 Sep 26 2013 [1181]bronx95.jpg
-rw-rw-r-- 1 fdc kermit 568473 May 11 2019 [1182]bronx950.jpg
-rw-rw-r-- 1 fdc kermit 700205 May 11 2019 [1183]bronx951.jpg
-rw-rw-r-- 1 fdc kermit 239440 May 11 2019 [1184]bronx952.jpg
-rw-rw-r-- 1 fdc kermit 321890 May 11 2019 [1185]bronx953.jpg
-rw-rw-r-- 1 fdc kermit 311237 May 11 2019 [1186]bronx954.jpg
-rw-rw-r-- 1 fdc kermit 309402 May 11 2019 [1187]bronx955.jpg
-rw-rw-r-- 1 fdc kermit 321149 May 11 2019 [1188]bronx956.jpg
-rw-rw-r-- 1 fdc kermit 437740 May 11 2019 [1189]bronx957.jpg
-rw-rw-r-- 1 fdc kermit 384354 May 11 2019 [1190]bronx958.jpg
-rw-rw-r-- 1 fdc kermit 494048 May 11 2019 [1191]bronx959.jpg
-rw-rw-r-- 1 fdc kermit 46107 Sep 26 2013 [1192]bronx96.jpg
-rw-rw-r-- 1 fdc kermit 526197 May 11 2019 [1193]bronx960.jpg
-rw-rw-r-- 1 fdc kermit 429310 May 11 2019 [1194]bronx961.jpg
-rw-rw-r-- 1 fdc kermit 652937 May 11 2019 [1195]bronx962.jpg
-rw-rw-r-- 1 fdc kermit 380469 May 11 2019 [1196]bronx963.jpg
-rw-rw-r-- 1 fdc kermit 443654 May 11 2019 [1197]bronx964.jpg
-rw-rw-r-- 1 fdc kermit 394969 May 11 2019 [1198]bronx965.jpg
-rw-rw-r-- 1 fdc kermit 515713 May 11 2019 [1199]bronx966.jpg
-rw-rw-r-- 1 fdc kermit 386950 May 11 2019 [1200]bronx967.jpg
-rw-rw-r-- 1 fdc kermit 362514 May 11 2019 [1201]bronx968.jpg
-rw-rw-r-- 1 fdc kermit 379148 May 11 2019 [1202]bronx969.jpg
-rw-rw-r-- 1 fdc kermit 345099 Sep 26 2013 [1203]bronx97.jpg
-rw-rw-r-- 1 fdc kermit 510717 May 11 2019 [1204]bronx970.jpg
-rw-rw-r-- 1 fdc kermit 443870 May 11 2019 [1205]bronx971.jpg
-rw-rw-r-- 1 fdc kermit 413812 May 11 2019 [1206]bronx972.jpg
-rw-rw-r-- 1 fdc kermit 669096 May 11 2019 [1207]bronx973.jpg
-rw-rw-r-- 1 fdc kermit 662712 May 11 2019 [1208]bronx974.jpg
-rw-rw-r-- 1 fdc kermit 211763 May 11 2019 [1209]bronx975.jpg
-rw-rw-r-- 1 fdc kermit 467580 May 11 2019 [1210]bronx976.jpg
-rw-rw-r-- 1 fdc kermit 490698 May 11 2019 [1211]bronx977.jpg
-rw-rw-r-- 1 fdc kermit 699235 May 11 2019 [1212]bronx978.jpg
-rw-rw-r-- 1 fdc kermit 896056 May 11 2019 [1213]bronx979.jpg
-rw-rw-r-- 1 fdc kermit 193489 Sep 26 2013 [1214]bronx98.jpg
-rw-rw-r-- 1 fdc kermit 718722 May 11 2019 [1215]bronx980.jpg
-rw-rw-r-- 1 fdc kermit 451755 May 11 2019 [1216]bronx981.jpg
-rw-rw-r-- 1 fdc kermit 187530 May 10 2019 [1217]bronx982.jpg
-rw-rw-r-- 1 fdc kermit 691513 May 11 2019 [1218]bronx983.jpg
-rw-rw-r-- 1 fdc kermit 819706 May 11 2019 [1219]bronx984.jpg
-rw-rw-r-- 1 fdc kermit 590423 May 11 2019 [1220]bronx985.jpg
-rw-rw-r-- 1 fdc kermit 420780 May 10 2019 [1221]bronx986.jpg
-rw-rw-r-- 1 fdc kermit 294076 May 10 2019 [1222]bronx987.jpg
-rw-rw-r-- 1 fdc kermit 426531 May 11 2019 [1223]bronx988.jpg
-rw-rw-r-- 1 fdc kermit 553649 May 10 2019 [1224]bronx989.jpg
-rw-rw-r-- 1 fdc kermit 34406 Sep 26 2013 [1225]bronx99.jpg
-rw-rw-r-- 1 fdc kermit 627031 May 10 2019 [1226]bronx990.jpg
-rw-rw-r-- 1 fdc kermit 434422 May 10 2019 [1227]bronx991.jpg
-rw-rw-r-- 1 fdc kermit 803055 May 11 2019 [1228]bronx992.jpg
-rw-rw-r-- 1 fdc kermit 613986 May 11 2019 [1229]bronx993.jpg
-rw-rw-r-- 1 fdc kermit 537619 May 11 2019 [1230]bronx994.jpg
-rw-rw-r-- 1 fdc kermit 675494 May 10 2019 [1231]bronx995.jpg
-rw-rw-r-- 1 fdc kermit 724857 May 11 2019 [1232]bronx996.jpg
-rw-rw-r-- 1 fdc kermit 551979 May 11 2019 [1233]bronx997.jpg
-rw-rw-r-- 1 fdc kermit 765077 May 11 2019 [1234]bronx998.jpg
-rw-rw-r-- 1 fdc kermit 552341 May 11 2019 [1235]bronx999.jpg
-rw-r--r-- 1 fdc kermit 14177 Sep 18 2013 [1236]bronxgallery-22
0.jpg
-rw-r--r-- 1 fdc kermit 75326 Sep 18 2013 [1237]bronxgallery.jp
g
-rw-r--r-- 1 fdc kermit 36175 Jul 23 2014 [1238]bronxgallery0-7
00.jpg
-rw-r--r-- 1 fdc kermit 40388 Jul 23 2014 [1239]bronxgallery0-7
40.jpg
-rw-r--r-- 1 fdc kermit 118443 Sep 18 2013 [1240]bronxgallery0.j
pg
-rw-r--r-- 1 fdc kermit 69596 Jun 19 1998 [1241]brooklyn.gif
-rw-r--r-- 1 fdc kermit 20217 Jun 20 2000 [1242]bugs01.jpg
-rw-r--r-- 1 fdc kermit 10389 Jun 20 2000 [1243]bugs02.jpg
-rw-r--r-- 1 fdc kermit 560 Dec 26 2015 [1244]burmese.utf8
-rw-r--r-- 1 fdc kermit 23923 Aug 4 2019 [1245]buttons1968-str
ip-100.jpg
-rw-r--r-- 1 fdc kermit 16758 Aug 4 2019 [1246]buttons1968-str
ip-80.jpg
-rw-r--r-- 1 fdc kermit 34357 Feb 21 2002 [1247]bwaylocal.jpg
drwxr-xr-x 2 fdc kermit 7 Aug 7 2013 [1248]bxday/
-rw-rw-r-- 1 fdc kermit 3420 Sep 16 2018 [1249]bxphotos.html
-rw-rw-r-- 1 fdc kermit 32948 Sep 16 2018 [1250]bxphotos.html.~
1~
-rw-r--r-- 1 fdc kermit 2116 Sep 25 2014 [1251]c64.html
-rw-r--r-- 1 fdc kermit 16750 Aug 25 2019 [1252]cable.html
-rw-r--r-- 1 fdc kermit 16575 Sep 27 2011 [1253]cable.html.~1~
-rw-r--r-- 1 fdc kermit 16805 Jun 24 14:44 [1254]cables.html
-rw-r--r-- 1 fdc kermit 16750 Aug 25 2019 [1255]cables.html.1
-rw-r--r-- 1 fdc kermit 16750 Aug 25 2019 [1256]cables.html.~1~
-rw-r--r-- 1 fdc kermit 17329 Jun 24 11:44 [1257]cables.html.~2~
-rw-r--r-- 1 fdc kermit 416741 Jul 14 2002 [1258]campus.jpg
-rw-r--r-- 1 fdc kermit 69142 Jul 14 2002 [1259]campus2.jpg
-rw-r--r-- 1 fdc kermit 88752 Jul 14 2002 [1260]campus3.jpg
-rw-r--r-- 1 fdc kermit 89150 Jul 14 2002 [1261]campus4.jpg
-rw-r--r-- 1 fdc kermit 4391 Jul 11 2011 [1262]cancelation.htm
l
-rw-r--r-- 1 fdc kermit 4391 Jul 11 2011 [1263]cancellation.ht
ml
-rw-r--r-- 1 fdc kermit 1372 Mar 10 2011 [1264]card2-40.jpg
-rw-r--r-- 1 fdc kermit 4514 Mar 10 2011 [1265]card2-80.jpg
-rw-r--r-- 1 fdc kermit 7036 Sep 23 2011 [1266]case01.html
-rw-r--r-- 1 fdc kermit 7831 Sep 23 2011 [1267]case02.html
-rw-r--r-- 1 fdc kermit 9062 Sep 25 2014 [1268]case03.html
-rw-r--r-- 1 fdc kermit 5675 Sep 25 2014 [1269]case04.html
-rw-r--r-- 1 fdc kermit 7926 Sep 23 2011 [1270]case05.html
-rw-r--r-- 1 fdc kermit 4592 Sep 25 2014 [1271]case06.html
-rw-r--r-- 1 fdc kermit 6659 Sep 23 2011 [1272]case07.html
-rw-r--r-- 1 fdc kermit 8217 Nov 27 2015 [1273]case08.html
-rw-r--r-- 1 fdc kermit 8056 Sep 23 2011 [1274]case08.html.~1~
-rw-r--r-- 1 fdc kermit 8421 Feb 26 2018 [1275]case09.html
-rw-r--r-- 1 fdc kermit 7907 Sep 25 2014 [1276]case09.html.~1~
-rw-r--r-- 1 fdc kermit 8198 Mar 5 2016 [1277]case09.html.~2~
-rw-r--r-- 1 fdc kermit 28139 Sep 25 2014 [1278]case10.html
-rw-r--r-- 1 fdc kermit 6436 Sep 23 2011 [1279]case11.html
-rw-r--r-- 1 fdc kermit 7310 Sep 25 2014 [1280]case12.html
-rw-r--r-- 1 fdc kermit 5929 Sep 23 2011 [1281]case13.html
-rw-r--r-- 1 fdc kermit 9951 Sep 25 2014 [1282]case14.html
-rw-r--r-- 1 fdc kermit 7469 Sep 23 2011 [1283]case15.html
-rw-r--r-- 1 fdc kermit 7397 Sep 25 2014 [1284]case16.html
-rw-r--r-- 1 fdc kermit 8771 Sep 23 2011 [1285]case17.html
-rw-r--r-- 1 fdc kermit 3916 Sep 23 2011 [1286]case18.html
-rw-r--r-- 1 fdc kermit 3736 Sep 25 2014 [1287]case19.html
-rw-r--r-- 1 fdc kermit 16883 Sep 23 2011 [1288]case20.html
-rw-r--r-- 1 fdc kermit 33685 Sep 25 2014 [1289]case21.html
-rw-r--r-- 1 fdc kermit 31695 Sep 25 2014 [1290]case21x.html
-rw-r--r-- 1 fdc kermit 3470 Sep 23 2011 [1291]case22.html
-rw-r--r-- 1 fdc kermit 15990 Sep 25 2014 [1292]case23.html
-rw-r--r-- 1 fdc kermit 14683 Sep 23 2011 [1293]case24.html
-rw-r--r-- 1 fdc kermit 6618 Sep 25 2014 [1294]case25.html
-rw-r--r-- 1 fdc kermit 4142 Sep 23 2011 [1295]case26.html
-rw-r--r-- 1 fdc kermit 4498 Sep 25 2014 [1296]case27.html
-rw-r--r-- 1 fdc kermit 2793 Sep 25 2014 [1297]case28.html
-rw-r--r-- 1 fdc kermit 6198 Dec 11 2015 [1298]case29.html
-rw-r--r-- 1 fdc kermit 6210 Sep 23 2011 [1299]case29.html.~1~
-rw-r--r-- 1 fdc kermit 16257 Mar 27 2002 [1300]castle.gif
-rw-r--r-- 1 fdc kermit 3894 Mar 27 2002 [1301]castlesm.gif
-rw-r--r-- 1 fdc kermit 1847 Sep 23 2011 [1302]catalog.html
-rw-r--r-- 1 fdc kermit 379 Nov 9 2001 [1303]ccfoo.html
-rw-r--r-- 1 fdc kermit 16186 Mar 22 1995 [1304]cd4.gif
-rw-r--r-- 1 fdc kermit 73 Mar 22 1995 [1305]cd4.html
-rw-r--r-- 1 fdc kermit 6401 Mar 22 1995 [1306]cd4x.gif
-rw-r--r-- 1 fdc kermit 302 Jul 8 2011 [1307]change
-rw-r--r-- 1 fdc kermit 19759 Aug 25 2019 [1308]change.html
-rw-r--r-- 1 fdc kermit 9727 Jan 29 2016 [1309]change.html.~1~
-rw-r--r-- 1 fdc kermit 16035 Jan 30 2016 [1310]change.html.~2~
-rw-r--r-- 1 fdc kermit 18427 Feb 1 2016 [1311]change.html.~4~
-rw-r--r-- 1 fdc kermit 19953 Feb 2 2016 [1312]change.html.~5~
-rw-r--r-- 1 fdc kermit 4644 Sep 23 2011 [1313]charsets.html
-rw-r--r-- 1 fdc kermit 35508 Apr 21 2019 [1314]chbw-strip1-100
.jpg
-rw-r--r-- 1 fdc kermit 120234 Oct 9 2019 [1315]chm-joe-doupnik
.pdf
-rw-r--r-- 1 fdc kermit 284755 Jun 13 2019 [1316]chm-oral-histor
y.pdf
-rw-r--r-- 1 fdc kermit 111 Mar 22 2002 [1317]cis_tiny.gif
-rw-r--r-- 1 fdc kermit 34025 Sep 2 1995 [1318]city3.gif
-rw-r--r-- 1 fdc kermit 40749 Aug 25 2019 [1319]ck300.html
-rw-r--r-- 1 fdc kermit 40626 Sep 25 2014 [1320]ck60-save.html
-rw-r--r-- 1 fdc kermit 136716 Sep 25 2014 [1321]ck60.html
-rw-r--r-- 1 fdc kermit 1662 Sep 23 2011 [1322]ck60ftpic.html
-rw-r--r-- 1 fdc kermit 10021 Aug 25 2019 [1323]ck60manual.html
-rw-r--r-- 1 fdc kermit 7318 Sep 23 2011 [1324]ck60specs.html
-rw-r--r-- 1 fdc kermit 3630 Sep 25 2014 [1325]ck60src.html
-rw-r--r-- 1 fdc kermit 4981 Sep 25 2014 [1326]ck60text.html
-rw-r--r-- 1 fdc kermit 5857 Sep 23 2011 [1327]ck60unixes.html
-rw-r--r-- 1 fdc kermit 9302 Sep 25 2014 [1328]ck60vbin.html
-rw-r--r-- 1 fdc kermit 136716 Sep 25 2014 [1329]ck61.html
-rw-r--r-- 1 fdc kermit 99596 Sep 25 2014 [1330]ck70-final.html
-rw-r--r-- 1 fdc kermit 7257 Jan 20 1999 [1331]ck70.gif
-rw-r--r-- 1 fdc kermit 136648 Apr 1 2017 [1332]ck70.html
-rw-r--r-- 1 fdc kermit 136716 Sep 25 2014 [1333]ck70.html.~1~
-rw-r--r-- 1 fdc kermit 74980 Sep 25 2014 [1334]ck70b07.html
-rw-r--r-- 1 fdc kermit 85703 Sep 25 2014 [1335]ck70b10.html
-rw-r--r-- 1 fdc kermit 18940 Sep 25 2014 [1336]ck70bugs.html
-rw-r--r-- 1 fdc kermit 156464 Sep 18 2013 [1337]ck70cd-r.jpg
-rw-r--r-- 1 fdc kermit 15612 Sep 18 2013 [1338]ck70cd-t.jpg
-rw-r--r-- 1 fdc kermit 1299 Sep 18 2013 [1339]ck70cd.html
-rw-r--r-- 1 fdc kermit 89737 Apr 7 2000 [1340]ck70cd.jpg
-rw-r--r-- 1 fdc kermit 3041 Sep 23 2011 [1341]ck70cdorder.htm
l
-rw-r--r-- 1 fdc kermit 3691 Sep 25 2014 [1342]ck70news.html
-rw-r--r-- 1 fdc kermit 11498 Apr 15 2000 [1343]ck70sm.jpg
-rw-r--r-- 1 fdc kermit 8371 Sep 23 2011 [1344]ck70specs.html
-rw-r--r-- 1 fdc kermit 29742 Sep 25 2014 [1345]ck71a04.html
-rw-r--r-- 1 fdc kermit 4973 Sep 27 2011 [1346]ck80208ann.html
-rw-r--r-- 1 fdc kermit 7235 Sep 27 2011 [1347]ck80ann.html
-rw-r--r-- 1 fdc kermit 8218 Sep 25 2014 [1348]ck80b04.html
-rw-r--r-- 1 fdc kermit 19126 Sep 25 2014 [1349]ck80bugs.html
-rw-r--r-- 1 fdc kermit 192666 Dec 31 2002 [1350]ck80cd-450.jpg
-rw-r--r-- 1 fdc kermit 3212 Sep 23 2011 [1351]ck80cd.html
-rw-r--r-- 1 fdc kermit 11942 Sep 23 2011 [1352]ck80specs.html
-rw-r--r-- 1 fdc kermit 42797 Aug 7 14:27 [1353]ck90.html
-rw-r--r-- 1 fdc kermit 42730 Jul 20 15:07 [1354]ck90.html.~19~
-rw-r--r-- 1 fdc kermit 40663 Oct 20 2013 [1355]ck90.html.~1~
-rw-r--r-- 1 fdc kermit 42732 Jul 27 12:16 [1356]ck90.html.~20~
-rw-r--r-- 1 fdc kermit 40585 Feb 28 2014 [1357]ck90.html.~2~
-rw-r--r-- 1 fdc kermit 35324 Aug 25 2019 [1358]ck90a02.html
-rw-r--r-- 1 fdc kermit 26412 Aug 25 2019 [1359]ck90a02tables.h
tml
-rw-r--r-- 1 fdc kermit 42285 Aug 25 2019 [1360]ck90a03.html
-rw-r--r-- 1 fdc kermit 23460 Aug 25 2019 [1361]ck90a03tables.h
tml
-rw-r--r-- 1 fdc kermit 79228 Aug 25 2019 [1362]ck90notes.html
-rw-r--r-- 1 fdc kermit 50482 Aug 25 2019 [1363]ck90save.html
-rw-r--r-- 1 fdc kermit 16333 Apr 9 2013 [1364]ck90specs.html
-rw-r--r-- 1 fdc kermit 44601 Jul 27 15:44 [1365]ck90tables.html
-rw-r--r-- 1 fdc kermit 43192 Sep 25 2014 [1366]ck90tables.html
.~1~
-rw-r--r-- 1 fdc kermit 43300 Dec 23 2015 [1367]ck90tables.html
.~2~
-rw-r--r-- 1 fdc kermit 44208 Dec 23 2015 [1368]ck90tables.html
.~4~
-rw-r--r-- 1 fdc kermit 44599 Aug 25 2019 [1369]ck90tables.html
.~5~
-rw-r--r-- 1 fdc kermit 87959 Aug 25 2019 [1370]ck90updates.htm
l
-rw-r--r-- 1 fdc kermit 1241 Jul 11 2011 [1371]ck_64bit.html
-rw-r--r-- 1 fdc kermit 5022 Nov 30 1996 [1372]ck_i.gif
-rw-r--r-- 1 fdc kermit 3397 Mar 11 2011 [1373]ckb-100.jpg
-rw-r--r-- 1 fdc kermit 6797 Mar 11 2011 [1374]ckb-150.jpg
-rw-r--r-- 1 fdc kermit 16046 Aug 28 2007 [1375]ckb-180.jpg
-rw-r--r-- 1 fdc kermit 18518 Aug 28 2007 [1376]ckb-200.jpg
-rw-r--r-- 1 fdc kermit 67338 Jan 8 2011 [1377]ckb-280.jpg
-rw-r--r-- 1 fdc kermit 166234 Jan 8 2011 [1378]ckb-600.jpg
-rw-r--r-- 1 fdc kermit 2361 Mar 10 2011 [1379]ckb-80.jpg
-rw-r--r-- 1 fdc kermit 265624 Sep 18 2013 [1380]ckb-r.jpg
-rw-r--r-- 1 fdc kermit 16441 Sep 18 2013 [1381]ckb-t.jpg
-rw-r--r-- 1 fdc kermit 1298 Sep 18 2013 [1382]ckb.html
-rw-r--r-- 1 fdc kermit 828790 Jan 8 2011 [1383]ckb.jpg
-rw-r--r-- 1 fdc kermit 4102 Mar 11 2011 [1384]ckb1e-150.jpg
-rw-r--r-- 1 fdc kermit 11415 Mar 11 2011 [1385]ckb1e-280.jpg
-rw-r--r-- 1 fdc kermit 33276 Mar 11 2011 [1386]ckb1e-600.jpg
-rw-r--r-- 1 fdc kermit 46385 Nov 30 1996 [1387]ckb2.gif
lrwxrwxrwx 1 fdc kermit 17 Sep 27 2011 [1388]ckb2.html -> us
ingckermit.html
-rw-r--r-- 1 fdc kermit 46385 Nov 30 1996 [1389]ckb2en_i.gif
-rw-r--r-- 1 fdc kermit 2919 Mar 11 2011 [1390]ckbde-100.jpg
-rw-r--r-- 1 fdc kermit 5432 Mar 11 2011 [1391]ckbde-150.jpg
-rw-r--r-- 1 fdc kermit 14959 Mar 11 2011 [1392]ckbde-280.jpg
-rw-r--r-- 1 fdc kermit 52396 Mar 11 2011 [1393]ckbde-600.jpg
-rw-r--r-- 1 fdc kermit 25480 Jan 25 1995 [1394]ckbde_i.gif
-rw-r--r-- 1 fdc kermit 15891 Dec 6 1994 [1395]ckbde_i.gif.cu
-rw-r--r-- 1 fdc kermit 13319 Dec 6 1994 [1396]ckben_i.gif
-rw-r--r-- 1 fdc kermit 139466 Jun 24 2015 [1397]ckbinaries.html
-rw-r--r-- 1 fdc kermit 138477 Sep 25 2014 [1398]ckbinaries.html
.~1~
-rw-r--r-- 1 fdc kermit 138921 Sep 25 2014 [1399]ckbinaries.html
.~2~
-rw-r--r-- 1 fdc kermit 139442 Dec 26 2014 [1400]ckbinaries.html
.~3~
-rw-r--r-- 1 fdc kermit 139461 May 29 2015 [1401]ckbinaries.html
.~4~
lrwxrwx--- 1 fdc kermit 13 Jul 29 2019 [1402]ckbindex.html -
> uckindex.html
-rw-r--r-- 1 fdc kermit 5441 Sep 23 2011 [1403]ckborder.html
-rw-r--r-- 1 fdc kermit 4568 Sep 23 2011 [1404]ckbreviews.html
-rw-r--r-- 1 fdc kermit 1254 Sep 27 2004 [1405]ckbupdates.html
-rw-r--r-- 1 fdc kermit 5897 Jan 15 1999 [1406]ckbw.gif
-rw-r--r-- 1 fdc kermit 7830 Sep 23 2011 [1407]ckc206.html
-rw-r--r-- 1 fdc kermit 4499 Sep 23 2011 [1408]ckc208.html
-rw-r--r-- 1 fdc kermit 2405 Sep 25 2014 [1409]ckc209.html
-rw-r--r-- 1 fdc kermit 10752 Sep 25 2014 [1410]ckc211.html
-rw-r--r-- 1 fdc kermit 8824 Jul 11 2011 [1411]ckc212-dev28.ht
ml
-rw-r--r-- 1 fdc kermit 11736 Sep 25 2014 [1412]ckc212.html
-rw-r--r-- 1 fdc kermit 6824 Feb 8 2006 [1413]ckc212.sav
-rw-r--r-- 1 fdc kermit 40881 Aug 25 2019 [1414]ckc300.html
-rw-r--r-- 1 fdc kermit 40881 Aug 25 2019 [1415]ckc301.html
-rw-r--r-- 1 fdc kermit 40881 Aug 25 2019 [1416]ckc302.html
-rw-r--r-- 1 fdc kermit 75819 Jul 30 2019 [1417]ckcbwr.html
-rw-r--r-- 1 fdc kermit 75754 Apr 12 2013 [1418]ckcbwr.html.~1~
-rw-r--r-- 1 fdc kermit 84811 Sep 28 2011 [1419]ckccfg.html
-rw-r--r-- 1 fdc kermit 2884 Sep 25 2014 [1420]ckcdinfo.html
-rw-r--r-- 1 fdc kermit 81080 Nov 30 1996 [1421]ckcker.txt
-rw-r--r-- 1 fdc kermit 143140 Aug 25 2019 [1422]ckcplm.html
-rw-r--r-- 1 fdc kermit 143224 Sep 27 2011 [1423]ckcplm.html.~1~
-rw-r--r-- 1 fdc kermit 4845 Jan 7 2001 [1424]ckcsets.html
-rw-r--r-- 1 fdc kermit 68089 Sep 16 13:55 [1425]ckdaily.html
-rw-r--r-- 1 fdc kermit 54863 Sep 3 2013 [1426]ckdaily.html.~1
~
-rw-r--r-- 1 fdc kermit 55307 Nov 24 2013 [1427]ckdaily.html.~2
~
-rw-r--r-- 1 fdc kermit 68149 Jul 30 09:14 [1428]ckdaily.html.~3
3~
-rw-r--r-- 1 fdc kermit 68068 Aug 2 12:35 [1429]ckdaily.html.~3
4~
-rw-r--r-- 1 fdc kermit 766596 Aug 25 2019 [1430]ckermi7.html
lrwxrwx--- 1 fdc kermit 14 Feb 25 2018 [1431]ckermi8.html ->
ckermit80.html
-rw-rw---- 1 fdc kermit 472023 Aug 25 2019 [1432]ckermi8.html__n
ew
lrwxrwx--- 1 fdc kermit 14 Feb 25 2018 [1433]ckermi80.html -
> ckermit80.html
-rw-r--r-- 1 fdc kermit 136361 Sep 25 2014 [1434]ckermit-np.html
-rw-r--r-- 1 fdc kermit 4018 Dec 6 1994 [1435]ckermit.gif
lrwxrwxrwx 1 fdc kermit 9 Jul 12 2011 [1436]ckermit.html ->
ck90.html
-rw-r--r-- 1 fdc kermit 100319 Dec 5 2002 [1437]ckermit.jpg
drwxr-xr-x 2 fdc kermit 24 Mar 12 2013 [1438]ckermit/
-rw-r--r-- 1 fdc kermit 463522 Sep 25 2014 [1439]ckermit209.html
-rw-r--r-- 1 fdc kermit 466914 Sep 25 2014 [1440]ckermit211.html
-rw-r--r-- 1 fdc kermit 9275 Apr 25 12:00 [1441]ckermit40.html
-rw-r--r-- 1 fdc kermit 9753 Feb 3 2016 [1442]ckermit40.html.
~1~
-rw-r--r-- 1 fdc kermit 7983 Apr 23 16:42 [1443]ckermit40.html.
~2~
-rw-r--r-- 1 fdc kermit 7981 Apr 24 13:43 [1444]ckermit40.html.
~3~
-rw-r--r-- 1 fdc kermit 9753 Feb 3 2016 [1445]ckermit42.html
-rw-r--r-- 1 fdc kermit 4961 Jan 28 2016 [1446]ckermit42.html.
~1~
-rw-r--r-- 1 fdc kermit 9747 Jan 28 2016 [1447]ckermit42.html.
~2~
-rw-r--r-- 1 fdc kermit 9727 Jan 29 2016 [1448]ckermit42.html.
~3~
-rw-r--r-- 1 fdc kermit 766616 Apr 25 20:26 [1449]ckermit70.html
-rw-r--r-- 1 fdc kermit 763974 Sep 25 2014 [1450]ckermit70.html.
~1~
-rw-r--r-- 1 fdc kermit 764015 Jan 30 2016 [1451]ckermit70.html.
~2~
-rw-r--r-- 1 fdc kermit 767451 Aug 2 2019 [1452]ckermit70.html.
~6~
-rw-r--r-- 1 fdc kermit 766596 Aug 25 2019 [1453]ckermit70.html.
~7~
-rw-r--r-- 1 fdc kermit 142228 Apr 2 2002 [1454]ckermit8.pdf
-rw-r--r-- 1 fdc kermit 472207 Aug 25 2019 [1455]ckermit80.html
-rw-r--r-- 1 fdc kermit 472162 Sep 27 2011 [1456]ckermit80.html.
~1~
-rw-r--r-- 1 fdc kermit 472302 Jan 20 2014 [1457]ckermit80.html.
~2~
-rw-r--r-- 1 fdc kermit 472355 Apr 26 2016 [1458]ckermit80.html.
~4~
-rw-r--r-- 1 fdc kermit 472343 Jul 29 2019 [1459]ckermit80.html.
~5~
-rw-r--r-- 1 fdc kermit 123706 Jul 29 11:15 [1460]ckermit90.html
-rw-r--r-- 1 fdc kermit 123496 Aug 3 2019 [1461]ckermit90.html.
~13~
-rw-r--r-- 1 fdc kermit 123452 Aug 25 2019 [1462]ckermit90.html.
~14~
-rw-r--r-- 1 fdc kermit 116351 Sep 25 2014 [1463]ckermit90.html.
~1~
-rw-r--r-- 1 fdc kermit 116355 Oct 16 2015 [1464]ckermit90.html.
~2~
-rw-r--r-- 1 fdc kermit 45536 Aug 7 15:07 [1465]ckfaq.html
-rw-r--r-- 1 fdc kermit 42591 Apr 12 2013 [1466]ckfaq.html.~1~
-rw-r--r-- 1 fdc kermit 44743 Sep 27 2015 [1467]ckfaq.html.~2~
-rw-r--r-- 1 fdc kermit 44766 Oct 3 2015 [1468]ckfaq.html.~3~
-rw-rw-r-- 1 fdc kermit 24918 Feb 18 2020 [1469]ckfunctions.htm
l
-rw-r--r-- 1 fdc kermit 4646 Jul 29 2019 [1470]ckfunctions.htm
l.~1~
-rw-rw-r-- 1 fdc kermit 17247 Jul 30 2019 [1471]ckfunctions.htm
l.~2~
-rw-rw-r-- 1 fdc kermit 24877 Jan 26 2020 [1472]ckfunctions.htm
l.~8~
-rw-rw-r-- 1 fdc kermit 24887 Jan 27 2020 [1473]ckfunctions.htm
l.~9~
-rw-r--r-- 1 fdc kermit 1918 Jul 24 14:51 [1474]ckglibc228.diff
-rw-r--r-- 1 fdc kermit 7584 Aug 25 2019 [1475]cklicense.html
-rw-r--r-- 1 fdc kermit 18695 Jul 27 2019 [1476]ckmanual-cz.htm
l
-rw-r--r-- 1 fdc kermit 18471 Jan 13 2014 [1477]ckmanual-cz.htm
l.~1~
lrwxrwxrwx 1 fdc kermit 17 Sep 27 2011 [1478]ckmanual.html -
> usingckermit.html
-rw-r--r-- 1 fdc kermit 55321 Jul 10 2017 [1479]ckmker.pdf
-rw-r--r-- 1 fdc kermit 92609 Aug 16 1994 [1480]ckmker.ps
-rw-r--r-- 1 fdc kermit 50840 May 26 1988 [1481]ckmkerdoc.txt
-rw-r--r-- 1 fdc kermit 458864 Apr 22 2017 [1482]cknotes.html
-rw-r--r-- 1 fdc kermit 16554 Sep 25 2014 [1483]cko191.html
-rw-r--r-- 1 fdc kermit 16667 Sep 28 2011 [1484]ckpackages.html
-rw-r--r-- 1 fdc kermit 20509 Aug 19 2019 [1485]ckrename.html
-rw-r--r-- 1 fdc kermit 20466 Sep 27 2011 [1486]ckrename.html.~
1~
-rw-r--r-- 1 fdc kermit 18756 Sep 27 2011 [1487]ckreviews.html
-rw-r--r-- 1 fdc kermit 75166 Apr 26 16:05 [1488]ckscripts.html
-rw-r--r-- 1 fdc kermit 63930 Oct 4 2013 [1489]ckscripts.html.
~1~
-rw-r--r-- 1 fdc kermit 73631 Feb 15 2020 [1490]ckscripts.html.
~21~
-rw-r--r-- 1 fdc kermit 75124 Feb 28 2020 [1491]ckscripts.html.
~22~
-rw-r--r-- 1 fdc kermit 65706 Jan 12 2014 [1492]ckscripts.html.
~2~
-rw-r--r-- 1 fdc kermit 14098 Sep 25 2014 [1493]cksendbin.html
-rw-r--r-- 1 fdc kermit 4620 Sep 6 19:45 [1494]cksettransmit.h
tml
-rw-r--r-- 1 fdc kermit 1448 Aug 25 2019 [1495]cksorder.html
-rw-r--r-- 1 fdc kermit 11944 Sep 23 2011 [1496]ckspecs.html
-rw-r--r-- 1 fdc kermit 2015183 Jan 11 2015 [1497]cku301.qnx32-4.
25
-rw-r--r-- 1 fdc kermit 249561 Aug 25 2019 [1498]ckubwr.html
-rw-r--r-- 1 fdc kermit 245397 Sep 27 2011 [1499]ckubwr.html.~1~
-rw-r--r-- 1 fdc kermit 245337 Apr 3 2016 [1500]ckubwr.html.~2~
-rw-r--r-- 1 fdc kermit 245340 Apr 3 2016 [1501]ckubwr.html.~3~
-rw-r--r-- 1 fdc kermit 245501 Feb 1 2018 [1502]ckubwr.html.~4~
-rw-r--r-- 1 fdc kermit 174964 Sep 28 2011 [1503]ckuins.html
-rw-r--r-- 1 fdc kermit 122910 Nov 6 2001 [1504]ckuins.html.unt
rimmed
-rw-r--r-- 1 fdc kermit 172583 Aug 15 2011 [1505]ckuins.txt
-rw-r--r-- 1 fdc kermit 488853 Sep 6 2017 [1506]ckupdates-90304
-dev22.html
-rw-r--r-- 1 fdc kermit 488253 Jul 24 15:08 [1507]ckupdates-90305
-alpha1.html
-rw-r--r-- 1 fdc kermit 497157 Sep 19 18:47 [1508]ckupdates.html
-rw-r--r-- 1 fdc kermit 491723 Aug 2 13:23 [1509]ckupdates.html.
a1
-rw-rw-r-- 1 fdc kermit 486730 Jan 31 2020 [1510]ckupdates.html.
~1~
-rw-r--r-- 1 fdc kermit 487931 May 7 09:13 [1511]ckupdates.html.
~2~
-rw-r--r-- 1 fdc kermit 491730 Jul 30 08:01 [1512]ckupdates.html.
~8~
-rw-r--r-- 1 fdc kermit 496964 Sep 19 18:30 [1513]ckupdates.html.
~9~
-rw-r--r-- 1 fdc kermit 101836 Aug 25 2019 [1514]ckututor.html
-rw-r--r-- 1 fdc kermit 101621 May 23 2013 [1515]ckututor.html.~
1~
-rw-r--r-- 1 fdc kermit 626495 Jun 28 2011 [1516]ckututor.pdf
-rw-r--r-- 1 fdc kermit 100285 Nov 22 2001 [1517]ckututor80.pdf
-rw-rw-r-- 1 fdc kermit 27316 Aug 17 2019 [1518]ckvariables.htm
l
-rw-rw-r-- 1 fdc kermit 13446 Jul 31 2019 [1519]ckvariables.htm
l.~1~
-rw-rw-r-- 1 fdc kermit 22627 Jul 31 2019 [1520]ckvariables.htm
l.~2~
-rw-rw-r-- 1 fdc kermit 27191 Aug 1 2019 [1521]ckvariables.htm
l.~4~
-rw-rw-r-- 1 fdc kermit 27316 Aug 2 2019 [1522]ckvariables.htm
l.~5~
-rw-r--r-- 1 fdc kermit 65808 Sep 27 2011 [1523]ckvbwr.html
-rw-r--r-- 1 fdc kermit 83676 Sep 7 15:20 [1524]ckvins.html
-rw-r--r-- 1 fdc kermit 77952 Sep 27 2011 [1525]ckvins.html.~1~
-rw-r--r-- 1 fdc kermit 83470 Sep 6 20:18 [1526]ckvins.html.~2~
-rw-r--r-- 1 fdc kermit 5377 Nov 24 2013 [1527]ckwindows.html
-rw-r--r-- 1 fdc kermit 2999 Nov 24 2013 [1528]ckwindows.html.
~1~
-rw-r--r-- 1 fdc kermit 3128 Sep 23 2011 [1529]claims.html
-rw-r--r-- 1 fdc kermit 1234 Sep 23 2011 [1530]client.html
-rw-r--r-- 1 fdc kermit 10356 Feb 7 1996 [1531]clubwin.gif
-rw-r--r-- 1 fdc kermit 38872 Jun 2 2002 [1532]colors.gif
-rw-r--r-- 1 fdc kermit 8336 Jun 2 2002 [1533]colorssm.gif
-rw-r--r-- 1 fdc kermit 8776 Sep 23 2011 [1534]commercial.html
-rw-r--r-- 1 fdc kermit 774 Sep 14 15:23 [1535]common.js
-rw-r--r-- 1 fdc kermit 294 May 11 2019 [1536]common.js.1
-rw-r--r-- 1 fdc kermit 110 Jan 4 2014 [1537]common.js.~1~
-rw-r--r-- 1 fdc kermit 110 Jan 11 2014 [1538]common.js.~2~
-rw-r--r-- 1 fdc kermit 294 May 11 2019 [1539]common.js.~40~
-rw-r--r-- 1 fdc kermit 774 May 27 2019 [1540]common.js.~41~
-rw-r--r-- 1 fdc kermit 6322 Nov 10 2013 [1541]compact-substri
ng-notation.html
-rw-r--r-- 1 fdc kermit 4176 Nov 10 2013 [1542]compact-substri
ng-notation.html.~1~
-rw-r--r-- 1 fdc kermit 11729 Aug 5 1998 [1543]coney.gif
-rw-r--r-- 1 fdc kermit 4864 Aug 10 1999 [1544]coney4.gif
-rw-r--r-- 1 fdc kermit 13527 Aug 10 1999 [1545]coney4.jpg
-rw-r--r-- 1 fdc kermit 13534 Aug 10 1999 [1546]coney5.jpg
-rw-r--r-- 1 fdc kermit 13522 Aug 10 1999 [1547]coney6.jpg
-rw-r--r-- 1 fdc kermit 21268 Nov 28 2006 [1548]connectors-340.
jpg
-rw-r--r-- 1 fdc kermit 54247 Nov 28 2006 [1549]connectors-680.
jpg
-rw-r--r-- 1 fdc kermit 75965 Sep 18 2013 [1550]connectors-r.jp
g
-rw-r--r-- 1 fdc kermit 13108 Sep 18 2013 [1551]connectors-t.jp
g
-rw-r--r-- 1 fdc kermit 1312 Sep 18 2013 [1552]connectors.html
lrwxrwxrwx 1 fdc kermit 18 Sep 18 2013 [1553]connectors.jpg
-> connectors-680.jpg
-rw-r--r-- 1 fdc kermit 2175 Jun 29 1998 [1554]cool.gif
-rw-r--r-- 1 fdc kermit 34138 Jul 5 2002 [1555]courier.gif
-rw-r--r-- 1 fdc kermit 7489 Mar 4 2003 [1556]cp1250.html
-rw-r--r-- 1 fdc kermit 7348 Mar 4 2003 [1557]cp1251.html
-rw-r--r-- 1 fdc kermit 7303 Mar 4 2003 [1558]cp1252.html
-rw-r--r-- 1 fdc kermit 7237 Aug 24 2004 [1559]cp1254.html
-rw-r--r-- 1 fdc kermit 6560 Mar 4 2003 [1560]cp437.html
-rw-r--r-- 1 fdc kermit 5994 Mar 4 2003 [1561]cp850.html
-rw-r--r-- 1 fdc kermit 5905 Mar 4 2003 [1562]cp852.html
-rw-r--r-- 1 fdc kermit 6300 Mar 4 2003 [1563]cp856.html
-rw-r--r-- 1 fdc kermit 6545 Mar 4 2003 [1564]cp861.html
-rw-r--r-- 1 fdc kermit 6799 Mar 4 2003 [1565]cp862.html
-rw-r--r-- 1 fdc kermit 6579 Mar 4 2003 [1566]cp866.html
-rw-r--r-- 1 fdc kermit 5822 Oct 2 1991 [1567]cp866.txt
-rw-r--r-- 1 fdc kermit 7578 Sep 25 2014 [1568]cpm.html
lrwxrwxrwx 1 fdc kermit 12 Sep 28 2011 [1569]crown70.gif ->
xcrown70.gif
lrwxrwxrwx 1 fdc kermit 15 Sep 28 2011 [1570]crown74-lb.gif
-> xcrown74-lb.gif
lrwxrwxrwx 1 fdc kermit 16 Sep 28 2011 [1571]crownico-lb.gif
-> xcrownico-lb.gif
lrwxrwxrwx 1 fdc kermit 13 Sep 28 2011 [1572]crownico.gif ->
xcrownico.gif
-rw-r--r-- 1 fdc kermit 16772 Aug 25 2019 [1573]csetnames.html
-rw-r--r-- 1 fdc kermit 15244 Apr 2 2010 [1574]csetnames.html.
untrimmed
-rw-r--r-- 1 fdc kermit 16148 Mar 25 2002 [1575]csets1.gif
-rw-r--r-- 1 fdc kermit 16200 Mar 25 2002 [1576]csets2.gif
-rw-r--r-- 1 fdc kermit 15401 Mar 25 2002 [1577]csets3.gif
-rw-r--r-- 1 fdc kermit 10574 Apr 22 2017 [1578]csettables.html
-rw-r--r-- 1 fdc kermit 10595 Sep 27 2011 [1579]csettables.html
.~1~
-rw-r--r-- 1 fdc kermit 10582 Sep 25 2014 [1580]csettables.html
.~2~
-rw-r--r-- 1 fdc kermit 28493 Aug 25 2019 [1581]csv.html
-rw-r--r-- 1 fdc kermit 25232 Sep 27 2011 [1582]csv.html.~1~
-rw-r--r-- 1 fdc kermit 26525 Jan 31 2014 [1583]csv.html.~2~
-rw-r--r-- 1 fdc kermit 28477 Mar 23 2017 [1584]csv.html.~3~
-rw-r--r-- 1 fdc kermit 28507 Sep 5 2017 [1585]csv.html.~4~
-rw-r--r-- 1 fdc kermit 13679 Mar 10 2011 [1586]ctv.jpg
-rw-r--r-- 1 fdc kermit 2073 Mar 30 2011 [1587]cu-bsd-license.
html
-rw-r--r-- 1 fdc kermit 116782 Nov 20 2003 [1588]cu-home-kermit.
jpg
-rw-r--r-- 1 fdc kermit 6139 Aug 19 2011 [1589]cu.htaccess
-rw-r--r-- 1 fdc kermit 55619 Sep 7 2004 [1590]cu_home_subway_
crown.jpg
-rw-r--r-- 1 fdc kermit 3270 Oct 20 2005 [1591]cu_logo.gif
drwxr-xr-x 2 fdc kermit 28 Sep 23 2013 [1592]cudocs/
-rw-r--r-- 1 fdc kermit 21571 Sep 25 2014 [1593]cuiksd.html
-rw-r--r-- 1 fdc kermit 1847 Feb 18 2010 [1594]cunix.jpg
-rw-r--r-- 1 fdc kermit 8206 Mar 13 2018 [1595]current.html
-rw-r--r-- 1 fdc kermit 7991 Sep 4 2013 [1596]current.html.~1
~
-rw-r--r-- 1 fdc kermit 7991 Nov 10 2013 [1597]current.html.~2
~
-rw-r--r-- 1 fdc kermit 59024 Sep 15 2016 [1598]cuutf8.html
-rw-r--r-- 1 fdc kermit 59060 Mar 10 2016 [1599]cuutf8.html.~1~
-rw-r--r-- 1 fdc kermit 1922 Mar 20 1996 [1600]cwsa.gif
-rw-r--r-- 1 fdc kermit 4652 Mar 4 2003 [1601]cyrillic.html
-rw-rw---- 1 fdc kermit 2542 Sep 9 2018 [1602]d
-rw-r--r-- 1 fdc kermit 21850 Feb 10 2016 [1603]dcbook-99.jpg
-rw-r--r-- 1 fdc kermit 28876 Feb 10 2016 [1604]dcbook.jpg
drwxr-xr-x 2 fdc kermit 13 Mar 23 2017 [1605]debian/
-rw-r--r-- 1 fdc kermit 31621 Mar 27 2002 [1606]debug.gif
-rw-rw---- 1 fdc kermit 84427 Jul 31 2019 [1607]debug.log
-rw-r--r-- 1 fdc kermit 7442 Mar 27 2002 [1608]debug_sm.gif
-rw-r--r-- 1 fdc kermit 7549 Oct 11 2003 [1609]dec-mcs.html
-rw-r--r-- 1 fdc kermit 118749 Feb 9 2019 [1610]dec20-content.h
tml
-rw-r--r-- 1 fdc kermit 110509 Jan 31 2019 [1611]dec20.html
-rw-r--r-- 1 fdc kermit 108475 Sep 25 2014 [1612]dec20.html.~1~
-rw-r--r-- 1 fdc kermit 109034 Mar 23 2017 [1613]dec20.html.~2~
-rw-r--r-- 1 fdc kermit 110509 Jan 31 2019 [1614]dec20.html.~3~
drwxr-xr-x 2 fdc kermit 7 Jan 31 2019 [1615]dec20/
-rw-r--r-- 1 fdc kermit 29837 Dec 4 2001 [1616]dec20_3.jpg
-rw-r--r-- 1 fdc kermit 46471 Mar 15 2011 [1617]dec20_3a.jpg
-rw-r--r-- 1 fdc kermit 91012 Sep 25 2014 [1618]dec20x.html
-rw-r--r-- 1 fdc kermit 11499 Feb 11 2001 [1619]dec20z.jpg
-rw-r--r-- 1 fdc kermit 31392 Apr 1 2002 [1620]decibm2.jpg
-rw-r--r-- 1 fdc kermit 117710 Mar 19 2003 [1621]decmate-1.jpg
-rw-r--r-- 1 fdc kermit 4613 Mar 19 2003 [1622]decmate.jpg
drwxr-xr-x 2 fdc kermit 291 Jul 3 2019 [1623]demo/
drwxr-xr-x 2 fdc kermit 293 Sep 15 15:20 [1624]demo2/
drwxr-xr-x 2 fdc kermit 2 Sep 6 2017 [1625]desktop/
-rw-r--r-- 1 fdc kermit 4869 Mar 25 2002 [1626]dg2_05.jpg
-rw-r--r-- 1 fdc kermit 50940 Mar 25 2002 [1627]dg3.jpg
-rw-r--r-- 1 fdc kermit 11720 Dec 6 1994 [1628]dg470.gif
-rw-r--r-- 1 fdc kermit 4071 Mar 25 2002 [1629]dg_05.jpg
-rw-r--r-- 1 fdc kermit 2968 Jun 5 2015 [1630]diagram-100.jpg
-rw-r--r-- 1 fdc kermit 7615 Jun 5 2015 [1631]diagram-200.jpg
-rw-r--r-- 1 fdc kermit 1540 Jun 17 2017 [1632]diagram.html
-rw-r--r-- 1 fdc kermit 1456 Jun 5 2015 [1633]diagram.html.~1
~
-rw-r--r-- 1 fdc kermit 1518 Jun 5 2015 [1634]diagram.html.~2
~
-rw-r--r-- 1 fdc kermit 67522 Jun 5 2015 [1635]diagram.jpg
-rw-r--r-- 1 fdc kermit 17994 May 31 2002 [1636]dial.jpg
-rw-r--r-- 1 fdc kermit 4488 May 31 2002 [1637]dial_ico.gif
-rw-r--r-- 1 fdc kermit 3272 May 31 2002 [1638]dial_sm.jpg
-rw-r--r-- 1 fdc kermit 1828 Sep 23 2011 [1639]dialscript.html
-rw-r--r-- 1 fdc kermit 1157 Sep 25 2014 [1640]digest.html
-rw-r--r-- 1 fdc kermit 742 Sep 23 2011 [1641]directory.html
-rw-r--r-- 1 fdc kermit 3313 Sep 23 2011 [1642]dll.html
-rw-r--r-- 1 fdc kermit 2518 Sep 25 2014 [1643]dn.html
lrwxrwxrwx 1 fdc kermit 12 Sep 27 2011 [1644]documentation.h
tml -> manuals.html
-rw-r--r-- 1 fdc kermit 8968 Sep 10 15:41 [1645]donations.html
-rw-r--r-- 1 fdc kermit 3574 Jul 30 14:22 [1646]donations.html.
~1~
-rw-r--r-- 1 fdc kermit 6213 Jul 30 17:08 [1647]donations.html.
~2~
-rw-r--r-- 1 fdc kermit 8968 Aug 2 09:20 [1648]donations.html.
~4~
-rw-r--r-- 1 fdc kermit 8968 Sep 6 20:18 [1649]donations.html.
~5~
-rw-r--r-- 1 fdc kermit 5711 Apr 10 1996 [1650]dylan95.gif
-rw-r--r-- 1 fdc kermit 1798 Jun 11 2002 [1651]e-a-sm.jpg
-rw-r--r-- 1 fdc kermit 1841 Oct 19 2010 [1652]e-academy.html
-rw-r--r-- 1 fdc kermit 3610 Jun 11 2002 [1653]e-academy.jpg
-rw-r--r-- 1 fdc kermit 2697 Sep 23 2011 [1654]ear.html
-rw-r--r-- 1 fdc kermit 2275 Mar 10 2011 [1655]ek-40.jpg
-rw-r--r-- 1 fdc kermit 6964 Mar 10 2011 [1656]ek-80.jpg
-rw-r--r-- 1 fdc kermit 2255 Sep 23 2011 [1657]ek-announce.htm
l
-rw-r--r-- 1 fdc kermit 19882 Sep 8 2014 [1658]ek-head.jpg
-rw-r--r-- 1 fdc kermit 20847 Sep 8 2014 [1659]ek-head2.jpg
-rw-r--r-- 1 fdc kermit 20980 Sep 8 2014 [1660]ek-head3.jpg
-rw-r--r-- 1 fdc kermit 36877 Jun 4 11:15 [1661]ek.html
-rw-r--r-- 1 fdc kermit 36113 Mar 27 2019 [1662]ek.html.~10~
-rw-r--r-- 1 fdc kermit 36488 Apr 9 2019 [1663]ek.html.~11~
-rw-r--r-- 1 fdc kermit 33436 Oct 28 2013 [1664]ek.html.~1~
-rw-r--r-- 1 fdc kermit 33799 Sep 8 2014 [1665]ek.html.~2~
-rw-r--r-- 1 fdc kermit 21340 Mar 10 2011 [1666]ek.jpg
-rw-r--r-- 1 fdc kermit 4498 Sep 23 2011 [1667]em-apex-1.html
-rw-r--r-- 1 fdc kermit 23336 Sep 6 2017 [1668]em-apex-160.jpg
-rw-r--r-- 1 fdc kermit 36801 Sep 21 2004 [1669]em-apex-chute.j
pg
-rw-r--r-- 1 fdc kermit 30371 Sep 21 2004 [1670]em-apex-drop.jp
g
-rw-r--r-- 1 fdc kermit 11108 Jun 19 15:50 [1671]em-apex.html
-rw-r--r-- 1 fdc kermit 10185 Mar 19 2013 [1672]em-apex.html.1
-rw-r--r-- 1 fdc kermit 11313 Jun 19 15:13 [1673]em-apex.html.2
-rw-r--r-- 1 fdc kermit 10872 Jun 19 12:26 [1674]em-apex.html.~2
~
-rw-r--r-- 1 fdc kermit 23277 Sep 20 2004 [1675]em-apex.jpg
-rw-r--r-- 1 fdc kermit 10268 Jun 19 12:02 [1676]em-apex2.html
-rw-r--r-- 1 fdc kermit 3582 Sep 23 2011 [1677]embed.html
-rw-r--r-- 1 fdc kermit 3313 Sep 23 2011 [1678]embedding.html
-rw-r--r-- 1 fdc kermit 10169 Jul 1 2000 [1679]euflag1.jpg
-rw-r--r-- 1 fdc kermit 10607 Jul 1 2000 [1680]euflag2.jpg
-rw-r--r-- 1 fdc kermit 485 Dec 6 1994 [1681]euro-construct.
gif
-rw-r--r-- 1 fdc kermit 83 Dec 30 1998 [1682]euro.gif
-rw-r--r-- 1 fdc kermit 4803 Sep 23 2011 [1683]euro.html
-rw-r--r-- 1 fdc kermit 38309 Jul 5 2002 [1684]evermont.gif
-rw-r--r-- 1 fdc kermit 9233 Sep 18 2013 [1685]example-160.jpg
-rw-r--r-- 1 fdc kermit 1918 Sep 18 2013 [1686]example.html
-rw-r--r-- 1 fdc kermit 93737 Sep 18 2013 [1687]example.jpg
-rw-r--r-- 1 fdc kermit 2550 Sep 24 2010 [1688]export.html
-rw-r--r-- 1 fdc kermit 1493 Sep 25 2014 [1689]faithful.html
-rw-r--r-- 1 fdc kermit 3730 Sep 13 2005 [1690]fall.css
-rw-r--r-- 1 fdc kermit 6520 Aug 17 2013 [1691]fanfest2013-120
.jpg
-rw-r--r-- 1 fdc kermit 56167 Aug 17 2013 [1692]fanfest2013-400
.jpg
-rw-r--r-- 1 fdc kermit 174180 Aug 17 2013 [1693]fanfest2013.jpg
-rw-r--r-- 1 fdc kermit 3841 Aug 17 2013 [1694]fanfest2013tail
-120.jpg
-rw-r--r-- 1 fdc kermit 4615 Sep 23 2011 [1695]faq-c-arr.html
-rw-r--r-- 1 fdc kermit 1143 Sep 23 2011 [1696]faq-c-bin.html
-rw-r--r-- 1 fdc kermit 3031 Sep 23 2011 [1697]faq-c-bix.html
-rw-r--r-- 1 fdc kermit 7313 Sep 23 2011 [1698]faq-c-bsk.html
-rw-r--r-- 1 fdc kermit 1599 Sep 23 2011 [1699]faq-c-c34.html
-rw-r--r-- 1 fdc kermit 2709 Sep 23 2011 [1700]faq-c-dbk.html
-rw-r--r-- 1 fdc kermit 1461 Sep 25 2014 [1701]faq-c-dir.html
-rw-r--r-- 1 fdc kermit 3527 Sep 23 2011 [1702]faq-c-dll.html
-rw-r--r-- 1 fdc kermit 1234 Sep 23 2011 [1703]faq-c-dvo.html
-rw-r--r-- 1 fdc kermit 3964 Sep 23 2011 [1704]faq-c-ecm.html
-rw-r--r-- 1 fdc kermit 3327 Sep 23 2011 [1705]faq-c-exit.html
-rw-r--r-- 1 fdc kermit 3631 Sep 23 2011 [1706]faq-c-ext.html
-rw-r--r-- 1 fdc kermit 4422 Sep 23 2011 [1707]faq-c-fke.html
-rw-r--r-- 1 fdc kermit 1863 Sep 23 2011 [1708]faq-c-h48.html
-rw-r--r-- 1 fdc kermit 2970 Sep 23 2011 [1709]faq-c-hng.html
-rw-r--r-- 1 fdc kermit 1665 Sep 23 2011 [1710]faq-c-idt.html
-rw-r--r-- 1 fdc kermit 2816 Sep 23 2011 [1711]faq-c-key.html
-rw-r--r-- 1 fdc kermit 5888 Sep 23 2011 [1712]faq-c-man.html
-rw-r--r-- 1 fdc kermit 1676 Sep 23 2011 [1713]faq-c-mfk.html
-rw-r--r-- 1 fdc kermit 9777 Sep 23 2011 [1714]faq-c-mfx.html
-rw-r--r-- 1 fdc kermit 4430 Sep 23 2011 [1715]faq-c-nkp.html
-rw-r--r-- 1 fdc kermit 4518 Sep 25 2014 [1716]faq-c-npg.html
-rw-r--r-- 1 fdc kermit 1587 Sep 23 2011 [1717]faq-c-pch.html
-rw-r--r-- 1 fdc kermit 3683 Sep 23 2011 [1718]faq-c-pin.html
-rw-r--r-- 1 fdc kermit 1446 Sep 23 2011 [1719]faq-c-rdi.html
-rw-r--r-- 1 fdc kermit 9789 Sep 23 2011 [1720]faq-c-rpi.html
-rw-r--r-- 1 fdc kermit 1607 Sep 23 2011 [1721]faq-c-ses.html
-rw-r--r-- 1 fdc kermit 2082 Sep 23 2011 [1722]faq-c-sup.html
-rw-r--r-- 1 fdc kermit 2679 Sep 23 2011 [1723]faq-c-swx.html
-rw-r--r-- 1 fdc kermit 1806 Sep 23 2011 [1724]faq-c-sxw.html
-rw-r--r-- 1 fdc kermit 1480 Sep 23 2011 [1725]faq-c-tdp.html
-rw-r--r-- 1 fdc kermit 2374 Sep 23 2011 [1726]faq-c-tep.html
-rw-r--r-- 1 fdc kermit 3205 Sep 23 2011 [1727]faq-c-v34.html
lrwxrwxrwx 1 fdc kermit 12 Mar 27 2003 [1728]faq-c-ver.html
-> current.html
-rw-r--r-- 1 fdc kermit 1840 Sep 23 2011 [1729]faq-c-wds.html
-rw-r--r-- 1 fdc kermit 5229 Sep 23 2011 [1730]faq-c-wha.html
-rw-r--r-- 1 fdc kermit 3124 Sep 23 2011 [1731]faq-c-win.html
-rw-r--r-- 1 fdc kermit 5751 Sep 23 2011 [1732]faq-c-wns.html
-rw-r--r-- 1 fdc kermit 3152 Sep 25 2014 [1733]faq-c-wpx.html
-rw-r--r-- 1 fdc kermit 6636 Sep 23 2011 [1734]faq-c-ytt.html
-rw-r--r-- 1 fdc kermit 9048 Sep 25 2014 [1735]faq-c-zmo.html
-rw-r--r-- 1 fdc kermit 2361 Sep 25 2014 [1736]faq-x-ver.html
-rw-r--r-- 1 fdc kermit 18734 Mar 16 2019 [1737]faq.html
-rw-r--r-- 1 fdc kermit 18489 Sep 28 2011 [1738]faq.html.~1~
-rw-r--r-- 1 fdc kermit 18730 Feb 8 2018 [1739]faq.html.~2~
-rw-r--r-- 1 fdc kermit 1148 Jun 3 1995 [1740]fast-left-icon-
dim.gif
-rw-r--r-- 1 fdc kermit 1149 Jun 3 1995 [1741]fast-left-icon.
gif
-rw-r--r-- 1 fdc kermit 948 Jun 3 1995 [1742]fast-right-icon
-dim.gif
-rw-r--r-- 1 fdc kermit 1167 Jun 3 1995 [1743]fast-right-icon
.gif
-rw-r--r-- 1 fdc kermit 894 Sep 27 2011 [1744]favicon.ico
lrwxrwx--- 1 fdc kermit 11 Oct 24 2017 [1745]fdc/
-rw-r--r-- 1 fdc kermit 18362 Jan 26 1995 [1746]fdcen_i.gif
-rw-r--r-- 1 fdc kermit 11425 Sep 23 2011 [1747]fdcreviews.html
-rw-r--r-- 1 fdc kermit 1258 Sep 23 2011 [1748]fees.html
-rw-r--r-- 1 fdc kermit 46430 Aug 19 2004 [1749]fh1.jpg
-rw-r--r-- 1 fdc kermit 38151 Aug 19 2004 [1750]fh2.jpg
-rw-r--r-- 1 fdc kermit 40813 Aug 19 2004 [1751]fh3.jpg
-rw-r--r-- 1 fdc kermit 2427 Jan 1 2020 [1752]filelist
-rw-r--r-- 1 fdc kermit 846 Sep 28 2013 [1753]filelist.~1~
-rw-r--r-- 1 fdc kermit 1860 May 21 2014 [1754]filelist.~2~
-rw-r--r-- 1 fdc kermit 2374 Jul 31 2019 [1755]filelist.~34~
-rw-r--r-- 1 fdc kermit 2405 Aug 1 2019 [1756]filelist.~35~
-rw-r--r-- 1 fdc kermit 5632 Sep 23 2011 [1757]firsthealth.htm
l
-rw-r--r-- 1 fdc kermit 8383 Jun 17 2017 [1758]firstxfer.html
-rw-r--r-- 1 fdc kermit 7911 Jun 17 2017 [1759]firstxfer.html.
1
-rw-r--r-- 1 fdc kermit 3495 Jun 17 2017 [1760]firstxfer.html.
~1~
-rw-r--r-- 1 fdc kermit 68204 Jun 17 2017 [1761]firstxfer9.jpg
-rw-r--r-- 1 fdc kermit 81 Jan 23 2014 [1762]fix
-rw-rw---- 1 fdc kermit 234 Sep 9 2018 [1763]fixdirperms.ksc
-rw-rw---- 1 fdc kermit 186 Sep 9 2018 [1764]fixdirs.ksc.~1~
-rw-rw---- 1 fdc kermit 233 Sep 9 2018 [1765]fixdirs.ksc.~2~
-rwxrwx--- 1 fdc kermit 67 Sep 9 2018 [1766]fixdirs.sh
-rwxrwx--- 1 fdc kermit 52 Sep 9 2018 [1767]fixdirs.sh.~1~
-rw-r--r-- 1 fdc kermit 1592 Apr 21 2000 [1768]fl_australia.gi
f
-rw-r--r-- 1 fdc kermit 972 Apr 21 2000 [1769]fl_austria.gif
-rw-r--r-- 1 fdc kermit 1032 Apr 21 2000 [1770]fl_belgium.gif
-rw-r--r-- 1 fdc kermit 1338 Apr 21 2000 [1771]fl_brazil.gif
-rw-r--r-- 1 fdc kermit 1555 Apr 21 2000 [1772]fl_canada.gif
-rw-r--r-- 1 fdc kermit 1007 Apr 21 2000 [1773]fl_china.gif
-rw-r--r-- 1 fdc kermit 1361 Apr 21 2000 [1774]fl_cuba.gif
-rw-r--r-- 1 fdc kermit 3534 Sep 24 2004 [1775]fl_dr.jpg
-rw-r--r-- 1 fdc kermit 1054 Apr 21 2000 [1776]fl_finland.gif
-rw-r--r-- 1 fdc kermit 1051 Apr 21 2000 [1777]fl_france.gif
-rw-r--r-- 1 fdc kermit 1129 Apr 21 2000 [1778]fl_germany.gif
-rw-r--r-- 1 fdc kermit 1502 Apr 21 2000 [1779]fl_india.gif
-rw-r--r-- 1 fdc kermit 1120 Apr 21 2000 [1780]fl_ireland.gif
-rw-r--r-- 1 fdc kermit 1053 Apr 21 2000 [1781]fl_italy.gif
-rw-r--r-- 1 fdc kermit 1069 Apr 21 2000 [1782]fl_luxembourg.g
if
-rw-r--r-- 1 fdc kermit 1342 Apr 21 2000 [1783]fl_mexico.gif
-rw-r--r-- 1 fdc kermit 1030 Apr 21 2000 [1784]fl_netherlands.
gif
-rw-r--r-- 1 fdc kermit 1425 Apr 21 2000 [1785]fl_newzealand.g
if
-rw-r--r-- 1 fdc kermit 1159 Apr 21 2000 [1786]fl_norway.gif
-rw-r--r-- 1 fdc kermit 1312 Apr 21 2000 [1787]fl_portugal.gif
-rw-r--r-- 1 fdc kermit 1003 Apr 21 2000 [1788]fl_scotland.gif
-rw-r--r-- 1 fdc kermit 1249 Apr 21 2000 [1789]fl_spain.gif
-rw-r--r-- 1 fdc kermit 1560 Apr 21 2000 [1790]fl_uk.gif
-rw-r--r-- 1 fdc kermit 1231 Jul 9 2002 [1791]fl_uk2.gif
-rw-r--r-- 1 fdc kermit 1311 Apr 21 2000 [1792]fl_wales.gif
-rw-r--r-- 1 fdc kermit 2768 Jul 5 2013 [1793]flag-ba-100.jpg
-rw-r--r-- 1 fdc kermit 8934 Jul 5 2013 [1794]flag-ba-280.jpg
-rw-r--r-- 1 fdc kermit 1654 Jul 5 2013 [1795]flag-ba-60.jpg
-rw-r--r-- 1 fdc kermit 106933 Jul 5 2013 [1796]flag-ba.jpg
-rw-r--r-- 1 fdc kermit 3185 Jul 5 2013 [1797]flag-br-100.jpg
-rw-r--r-- 1 fdc kermit 9511 Jul 5 2013 [1798]flag-br-280.jpg
-rw-r--r-- 1 fdc kermit 1848 Jul 5 2013 [1799]flag-br-60.jpg
-rw-r--r-- 1 fdc kermit 35729 Jul 5 2013 [1800]flag-br.jpg
-rw-r--r-- 1 fdc kermit 848 May 8 2013 [1801]flag-bz-20.jpg
-rw-r--r-- 1 fdc kermit 1450 May 8 2013 [1802]flag-bz-40.jpg
-rw-r--r-- 1 fdc kermit 35044 Apr 23 2019 [1803]flag-strip1-20.
jpg
-rw-r--r-- 1 fdc kermit 407 Apr 7 2003 [1804]flag.html
-rw-r--r-- 1 fdc kermit 23449 Jul 1 2000 [1805]flags2.jpg
-rw-r--r-- 1 fdc kermit 3706 Sep 27 2011 [1806]fontsize.html
-rw-r--r-- 1 fdc kermit 140 Jul 29 2003 [1807]foo
-rw-r--r-- 1 fdc kermit 41791 Sep 21 2004 [1808]frances.jpg
-rw-r--r-- 1 fdc kermit 2425 Sep 25 2014 [1809]ftp.html
drwxr-xr-x 5 fdc kermit 6 Mar 2 2018 [1810]ftp/
-rw-r--r-- 1 fdc kermit 15380 Sep 25 2014 [1811]ftpclient-es-is
o-8848-1.html
-rw-r--r-- 1 fdc kermit 15712 Mar 13 2019 [1812]ftpclient-es.ht
ml
-rw-r--r-- 1 fdc kermit 15380 Sep 25 2014 [1813]ftpclient-es.ht
ml.~1~
-rw-r--r-- 1 fdc kermit 15943 Mar 12 2019 [1814]ftpclient-es.ht
ml.~2~
-rw-r--r-- 1 fdc kermit 15703 Mar 12 2019 [1815]ftpclient-es.ht
ml.~3~
-rw-r--r-- 1 fdc kermit 15702 Mar 12 2019 [1816]ftpclient-es.ht
ml.~4~
-rw-r--r-- 1 fdc kermit 14461 Aug 3 2019 [1817]ftpclient.html
-rw-r--r-- 1 fdc kermit 12766 Sep 25 2014 [1818]ftpclient.html.
~1~
-rw-r--r-- 1 fdc kermit 13189 Jan 13 2015 [1819]ftpclient.html.
~2~
-rw-r--r-- 1 fdc kermit 14455 Mar 27 2019 [1820]ftpclient.html.
~4~
-rw-r--r-- 1 fdc kermit 14460 Jul 31 2019 [1821]ftpclient.html.
~5~
-rw-r--r-- 1 fdc kermit 3482 Sep 23 2011 [1822]ftpd.html
-rw-r--r-- 1 fdc kermit 578 Sep 23 2011 [1823]ftpdoc.html
-rw-r--r-- 1 fdc kermit 106610 Dec 22 2000 [1824]ftpdoc.old
-rw-r--r-- 1 fdc kermit 27227 Sep 27 2011 [1825]ftpfaq.html
-rw-r--r-- 1 fdc kermit 18813 Sep 25 2014 [1826]ftphlp.html
-rw-r--r-- 1 fdc kermit 42232 Jan 18 2016 [1827]ftpscripts.html
-rw-r--r-- 1 fdc kermit 41312 Jul 12 2013 [1828]ftpscripts.html
.~1~
-rw-r--r-- 1 fdc kermit 42231 Jan 20 2014 [1829]ftpscripts.html
.~2~
-rw-r--r-- 1 fdc kermit 15943 Mar 12 2019 [1830]ftputf8.html
-rw-r--r-- 1 fdc kermit 18456 Jun 30 2000 [1831]gears.gif
-rw-r--r-- 1 fdc kermit 25256 Jun 30 2000 [1832]gears.jpg
-rw-r--r-- 1 fdc kermit 20232 Jun 30 2000 [1833]gears2.jpg
-rw-r--r-- 1 fdc kermit 21391 Jul 7 2002 [1834]george-35.gif
-rw-r--r-- 1 fdc kermit 32438 Jul 7 2002 [1835]george-44.gif
-rw-r--r-- 1 fdc kermit 56324 Jul 7 2002 [1836]george-60.gif
-rw-r--r-- 1 fdc kermit 62524 Jul 7 2002 [1837]george-62.gif
-rw-r--r-- 1 fdc kermit 128550 Jul 7 2002 [1838]george.gif
-rw-r--r-- 1 fdc kermit 1765 Sep 23 2011 [1839]george.html
-rw-r--r-- 1 fdc kermit 9156 Feb 25 2014 [1840]getkermitscript
.html
-rw-r--r-- 1 fdc kermit 5219 Jan 12 2014 [1841]getkermitscript
.html.~1~
-rw-r--r-- 1 fdc kermit 9077 Jan 12 2014 [1842]getkermitscript
.html.~2~
-rw-r--r-- 1 fdc kermit 1520 Sep 23 2011 [1843]gkermit-de.html
-rw-r--r-- 1 fdc kermit 103227 Jan 17 2016 [1844]gkermit.html
-rw-r--r-- 1 fdc kermit 102835 Jan 17 2016 [1845]gkermit.html.~1
~
-rw-r--r-- 1 fdc kermit 19374 Oct 26 2002 [1846]glass.gif
-rw-r--r-- 1 fdc kermit 8001 Sep 27 2011 [1847]glass.html
-rw-r--r-- 1 fdc kermit 31976 Oct 26 2002 [1848]glass2.gif
-rw-r--r-- 1 fdc kermit 6524 Oct 26 2002 [1849]glass2sm.gif
-rw-r--r-- 1 fdc kermit 4410 Oct 26 2002 [1850]glass_sm.gif
-rw-r--r-- 1 fdc kermit 21839 Jul 11 2011 [1851]gloss.html
-rw-r--r-- 1 fdc kermit 1704 Jun 4 2002 [1852]gold.gif
-rw-r--r-- 1 fdc kermit 1704 Jun 4 2002 [1853]gold2.gif
-rw-r--r-- 1 fdc kermit 53 Dec 8 2012 [1854]googlea2b1562c2
37018db.html
-rw-r--r-- 1 fdc kermit 1646 Mar 21 2003 [1855]gothic.html
-rw-r--r-- 1 fdc kermit 4449 Mar 5 2003 [1856]greek.html
drwxr-xr-x 2 fdc kermit 16 May 31 2002 [1857]gui/
-rw-r--r-- 1 fdc kermit 19022 Oct 26 2002 [1858]guiopen.gif
-rw-r--r-- 1 fdc kermit 18266 Oct 20 2002 [1859]guipage.gif
-rw-r--r-- 1 fdc kermit 15212 May 31 2002 [1860]guipopup.gif
-rw-r--r-- 1 fdc kermit 19950 Oct 26 2002 [1861]guiscrn.gif
-rw-r--r-- 1 fdc kermit 4829 Oct 26 2002 [1862]guiscrsm.gif
-rw-r--r-- 1 fdc kermit 2950 May 31 2002 [1863]guistat.gif
-rw-r--r-- 1 fdc kermit 2964 May 31 2002 [1864]guitools.gif
-rw-r--r-- 1 fdc kermit 3321 Feb 19 2014 [1865]head-2014.html
lrwxrwxrwx 1 fdc kermit 9 May 27 2015 [1866]head-en.html ->
head.html
-rw-r--r-- 1 fdc kermit 4032 May 27 2015 [1867]head-es.html
-rw-r--r-- 1 fdc kermit 3754 May 8 2017 [1868]head.html
-rw-r--r-- 1 fdc kermit 2955 Sep 14 2013 [1869]head.html.~1~
-rw-r--r-- 1 fdc kermit 3321 Feb 19 2014 [1870]head.html.~2~
-rw-r--r-- 1 fdc kermit 3548 Apr 23 2015 [1871]head.html.~4~
-rw-r--r-- 1 fdc kermit 3758 May 27 2015 [1872]head.html.~5~
-rw-r--r-- 1 fdc kermit 4841 Mar 4 2003 [1873]hebrew.html
-rw-r--r-- 1 fdc kermit 17 Mar 8 2017 [1874]hebrew.utf8.txt
-rw-r--r-- 1 fdc kermit 31772 Jun 20 2002 [1875]hebrew1.gif
-rw-r--r-- 1 fdc kermit 23974 Jun 20 2002 [1876]hebrew2.gif
-rw-r--r-- 1 fdc kermit 155 Jun 3 2004 [1877]hello.ksc
-rw-r--r-- 1 fdc kermit 155 Aug 16 2002 [1878]helper.ksc
-rw-r--r-- 1 fdc kermit 465 Mar 10 2011 [1879]historical.html
-rw-r--r-- 1 fdc kermit 12374 Sep 25 2014 [1880]home-es.html
lrwxrwxrwx 1 fdc kermit 10 Jul 13 2011 [1881]home.html -> in
dex.html
-rw-r--r-- 1 fdc kermit 20370 Jul 11 2011 [1882]home.html.save
-rw-r--r-- 1 fdc kermit 33256 Oct 1 2001 [1883]hostmode.txt
lrwxrwxrwx 1 fdc kermit 15 Mar 27 2003 [1884]hostuser.txt ->
k95hostuser.txt
-rw-r--r-- 1 fdc kermit 9610 Sep 25 2014 [1885]hp.html
-rw-r--r-- 1 fdc kermit 30767 Jul 22 2011 [1886]hp48-160.jpg
-rw-r--r-- 1 fdc kermit 111552 Jul 22 2011 [1887]hp48-740.jpg
-rw-r--r-- 1 fdc kermit 139749 Sep 18 2013 [1888]hp48-r.jpg
-rw-r--r-- 1 fdc kermit 12857 Sep 18 2013 [1889]hp48-t.jpg
-rw-r--r-- 1 fdc kermit 1308 Sep 18 2013 [1890]hp48.html
-rw-r--r-- 1 fdc kermit 699142 Jul 22 2011 [1891]hp48.jpg
-rw-r--r-- 1 fdc kermit 920245 Jul 13 2011 [1892]hp500.pdf
-rw-r--r-- 1 fdc kermit 2198 Sep 9 2018 [1893]htaccess
-rw-r--r-- 1 fdc kermit 18353 Jun 4 2019 [1894]html.html
-rw-r--r-- 1 fdc kermit 18280 May 24 2019 [1895]html.html.~10~
-rw-r--r-- 1 fdc kermit 4737 Apr 30 2017 [1896]html.html.~1~
-rw-r--r-- 1 fdc kermit 14132 Apr 30 2017 [1897]html.html.~2~
-rw-r--r-- 1 fdc kermit 18237 Oct 6 2017 [1898]html.html.~9~
drwxr-xr-x 2 fdc kermit 4 Sep 14 00:34 [1899]httpd_logs/
-rw-r--r-- 1 fdc kermit 17632 Sep 22 2011 [1900]hudson.jpg
-rw-r--r-- 1 fdc kermit 16663 Dec 9 1994 [1901]i40.gif
-rw-r--r-- 1 fdc kermit 2195 Dec 9 1994 [1902]i40_i.gif
-rw-r--r-- 1 fdc kermit 6000 Sep 25 2014 [1903]ibm370.html
-rw-r--r-- 1 fdc kermit 3209 Mar 25 2002 [1904]ibm_05.jpg
-rw-r--r-- 1 fdc kermit 41301 Sep 25 2014 [1905]ibm_ie.html
-rw-r--r-- 1 fdc kermit 32126 Jul 23 2002 [1906]ibm_ie.old
-rw-r--r-- 1 fdc kermit 2388 Sep 27 2011 [1907]icon-120.jpg
-rw-r--r-- 1 fdc kermit 458 Sep 27 2011 [1908]icon-16.jpg
-rw-r--r-- 1 fdc kermit 24320 Sep 27 2011 [1909]icon-64.jpg
-rw-r--r-- 1 fdc kermit 63708 Sep 27 2011 [1910]icon.jpg
-rw-r--r-- 1 fdc kermit 3401 Jul 14 2000 [1911]ietf01.html
-rw-r--r-- 1 fdc kermit 3378 Jul 14 2000 [1912]ietf01.txt
-rw-r--r-- 1 fdc kermit 5868 Sep 25 2014 [1913]ik0431.html
-rw-r--r-- 1 fdc kermit 2737 Sep 25 2014 [1914]ik0431_beta.htm
l
-rw-r--r-- 1 fdc kermit 7017 Sep 25 2014 [1915]iksd.html
-rw-r--r-- 1 fdc kermit 9893 Sep 25 2014 [1916]iksuser.html
-rw-r--r-- 1 fdc kermit 26643 Apr 2 2015 [1917]imagesloaded.pk
gd.js
-rw-r--r-- 1 fdc kermit 3234 Jan 15 1996 [1918]imall.gif
-rw-r--r-- 1 fdc kermit 26869 Dec 20 2017 [1919]index-20171220.
html
-rw-r--r-- 1 fdc kermit 35997 Mar 27 2019 [1920]index-20190419.
html
-rw-rw-r-- 1 fdc kermit 40298 Dec 30 2019 [1921]index-20200120:
07:10:43.html
-rw-r--r-- 1 fdc kermit 12580 Sep 14 2013 [1922]index-before-js
.html
-rw-r--r-- 1 fdc kermit 20781 Sep 25 2014 [1923]index-de-201108
19.html
-rw-r--r-- 1 fdc kermit 6286 Aug 22 2011 [1924]index-de.diff
-rw-r--r-- 1 fdc kermit 20973 Sep 25 2014 [1925]index-de.html
-rw-r--r-- 1 fdc kermit 22314 Sep 25 2014 [1926]index-en.html
-rw-r--r-- 1 fdc kermit 24611 Jun 8 2017 [1927]index-es.html
-rw-r--r-- 1 fdc kermit 13381 Nov 3 2013 [1928]index-es.html.~
1~
-rw-r--r-- 1 fdc kermit 13381 Nov 11 2013 [1929]index-es.html.~
2~
-rw-r--r-- 1 fdc kermit 21128 Jan 14 2017 [1930]index-es.html.~
57~
-rw-r--r-- 1 fdc kermit 21738 Mar 8 2017 [1931]index-es.html.~
58~
-rw-r--r-- 1 fdc kermit 11049 Jul 25 2011 [1932]index-es.txt
-rw-r--r-- 1 fdc kermit 12941 Sep 25 2014 [1933]index-ftp-probl
em.html
-rw-r--r-- 1 fdc kermit 23699 Mar 15 2017 [1934]index-latin1.ht
ml
-rw-r--r-- 1 fdc kermit 4477 Sep 23 2011 [1935]index-notables.
html
-rw-r--r-- 1 fdc kermit 29306 Sep 25 2014 [1936]index-ru.html
-rw-r--r-- 1 fdc kermit 23880 Mar 15 2017 [1937]index-utf8-back
up.html
-rw-r--r-- 1 fdc kermit 25562 May 28 2017 [1938]index-utf8.html
-rw-rw-r-- 1 fdc kermit 41673 Sep 15 10:54 [1939]index.html
-rw-rw-r-- 1 fdc kermit 40298 Dec 30 2019 [1940]index.html.1
-rw-rw-r-- 1 fdc kermit 41384 Jul 27 16:20 [1941]index.html.2
-rw-rw-r-- 1 fdc kermit 41616 Jul 31 12:41 [1942]index.html.~147
~
-rw-rw-r-- 1 fdc kermit 41616 Sep 14 15:25 [1943]index.html.~148
~
-rw-r--r-- 1 fdc kermit 13962 Nov 3 2013 [1944]index.html.~1~
-rw-r--r-- 1 fdc kermit 13962 Nov 11 2013 [1945]index.html.~2~
-rw-r--r-- 1 fdc kermit 12880 Sep 16 2013 [1946]index.save
-rw-rw---- 1 fdc kermit 156 Jul 28 2019 [1947]index.txt
-rw-r--r-- 1 fdc kermit 4123 Sep 23 2011 [1948]index_before_aw
ard.html
-rw-r--r-- 1 fdc kermit 7460 Sep 25 2014 [1949]infokermit.html
-rw-r--r-- 1 fdc kermit 36536 Jul 11 2011 [1950]infwinston222a.
html
-rw-r--r-- 1 fdc kermit 4237 Sep 23 2011 [1951]input_nowrap.ht
ml
-rw-r--r-- 1 fdc kermit 11192 Dec 9 1994 [1952]invest.gif
-rw-r--r-- 1 fdc kermit 2238 Dec 9 1994 [1953]invest_i.gif
-rw-r--r-- 1 fdc kermit 1053 Apr 21 2000 [1954]italy1.gif
drwxr-xr-x 2 fdc kermit 6 Jan 14 2017 [1955]its/
-rw-r--r-- 1 fdc kermit 8742 Oct 7 2002 [1956]j01.jpg
-rw-r--r-- 1 fdc kermit 8971 Oct 7 2002 [1957]j02.jpg
-rw-r--r-- 1 fdc kermit 9804 Oct 7 2002 [1958]j03.jpg
-rw-r--r-- 1 fdc kermit 12093 Oct 7 2002 [1959]j04.jpg
-rw-r--r-- 1 fdc kermit 11416 Oct 7 2002 [1960]j05.jpg
-rw-r--r-- 1 fdc kermit 11856 Oct 7 2002 [1961]j06.jpg
-rw-r--r-- 1 fdc kermit 10582 Oct 7 2002 [1962]j07.jpg
-rw-r--r-- 1 fdc kermit 2587 Oct 7 2002 [1963]j08.jpg
-rw-r--r-- 1 fdc kermit 3007 Oct 7 2002 [1964]j09.jpg
-rw-r--r-- 1 fdc kermit 10773 Oct 7 2002 [1965]j10.jpg
-rw-r--r-- 1 fdc kermit 3137 Oct 7 2002 [1966]j11.jpg
-rw-r--r-- 1 fdc kermit 3098 Oct 7 2002 [1967]j12.jpg
-rw-r--r-- 1 fdc kermit 3357 Oct 7 2002 [1968]j13.jpg
-rw-r--r-- 1 fdc kermit 5220 Oct 7 2002 [1969]j14.jpg
-rw-r--r-- 1 fdc kermit 22 Aug 23 2011 [1970]k
-rw-r--r-- 1 fdc kermit 5261 Sep 25 2014 [1971]k12doc.html
-rw-r--r-- 1 fdc kermit 8679 Sep 25 2014 [1972]k370.html
-rw-r--r-- 1 fdc kermit 26626 Feb 21 2010 [1973]k95-21-160.jpg
-rw-r--r-- 1 fdc kermit 76596 Feb 21 2010 [1974]k95-21-400.jpg
-rw-r--r-- 1 fdc kermit 137666 Feb 21 2010 [1975]k95-21-600.jpg
-rw-r--r-- 1 fdc kermit 1936 Mar 10 2011 [1976]k95-21-80.jpg
-rw-r--r-- 1 fdc kermit 203408 Sep 18 2013 [1977]k95-21-r.jpg
-rw-r--r-- 1 fdc kermit 11318 Sep 18 2013 [1978]k95-21-t.jpg
-rw-r--r-- 1 fdc kermit 1309 Sep 18 2013 [1979]k95-21.html
-rw-r--r-- 1 fdc kermit 704970 Feb 21 2010 [1980]k95-21.jpg
-rw-r--r-- 1 fdc kermit 8186 Dec 15 2005 [1981]k95-fixes-since
-213.txt
-rw-r--r-- 1 fdc kermit 75440 Sep 1 2011 [1982]k95-options.pdf
-rw-r--r-- 1 fdc kermit 40801 Jul 24 07:29 [1983]k95.html
-rw-r--r-- 1 fdc kermit 39814 Jun 14 09:09 [1984]k95.html.~10~
-rw-r--r-- 1 fdc kermit 39160 Sep 28 2011 [1985]k95.html.~1~
-rw-r--r-- 1 fdc kermit 39164 Sep 25 2014 [1986]k95.html.~2~
-rw-r--r-- 1 fdc kermit 39821 Aug 25 2019 [1987]k95.html.~9~
-rw-r--r-- 1 fdc kermit 28515 Sep 19 2001 [1988]k95.orig
-rw-r--r-- 1 fdc kermit 131908 Oct 8 2002 [1989]k95.vt220.klone
.test.jpg
-rw-r--r-- 1 fdc kermit 128506 Oct 16 2002 [1990]k95.vt220.klone
.test.off.jpg
-rw-r--r-- 1 fdc kermit 129574 Oct 16 2002 [1991]k95.vt220.klone
.test.on.jpg
drwxr-xr-x 3 fdc kermit 5 Jan 28 2017 [1992]k95/
-rw-r--r-- 1 fdc kermit 11655 Sep 23 2011 [1993]k95112.html
-rw-r--r-- 1 fdc kermit 4495 Dec 6 2006 [1994]k95_1120.html
-rw-r--r-- 1 fdc kermit 25351 Sep 25 2014 [1995]k95_1120_patch.
html
-rw-r--r-- 1 fdc kermit 3643 Jul 18 2011 [1996]k95_1121.html
drw-r--r-- 2 fdc kermit 23 Mar 23 2017 [1997]k95_20/
-rw-r--r-- 1 fdc kermit 13257 Sep 27 2011 [1998]k95_20_ann.html
-rw-r--r-- 1 fdc kermit 3533 Jul 11 2011 [1999]k95_213_ann.htm
l
-rw-r--r-- 1 fdc kermit 10953665 Jul 11 2005 [2000]k95_213_crypto
_bulk_dlo.exe
-rw-r--r-- 1 fdc kermit 3798 Oct 15 2010 [2001]k95_21_ann.html
-rw-r--r-- 1 fdc kermit 8031 Sep 25 2014 [2002]k95_21_beta.htm
l
-rw-r--r-- 1 fdc kermit 6940 Oct 23 2009 [2003]k95amazon.html
-rw-r--r-- 1 fdc kermit 4558 Feb 16 2003 [2004]k95asl.html
-rw-r--r-- 1 fdc kermit 13824 Oct 22 2013 [2005]k95beta.html
-rw-r--r-- 1 fdc kermit 3512 Mar 11 2011 [2006]k95book-100.jpg
-rw-r--r-- 1 fdc kermit 6510 Mar 11 2011 [2007]k95book-150.jpg
-rw-r--r-- 1 fdc kermit 17313 Mar 11 2011 [2008]k95book-280.jpg
-rw-r--r-- 1 fdc kermit 61078 Mar 11 2011 [2009]k95book-600.jpg
-rw-r--r-- 1 fdc kermit 98828 Mar 26 2002 [2010]k95box.jpg
-rw-r--r-- 1 fdc kermit 115128 Dec 31 2002 [2011]k95box2.jpg
-rw-r--r-- 1 fdc kermit 36100 Mar 25 2002 [2012]k95boxes.gif
-rw-r--r-- 1 fdc kermit 43759 Dec 31 2002 [2013]k95boxes2.jpg
-rw-r--r-- 1 fdc kermit 319302 Sep 25 2014 [2014]k95bugs.html
-rw-r--r-- 1 fdc kermit 4701 Dec 14 2003 [2015]k95bulk-2003010
1.html
-rw-r--r-- 1 fdc kermit 7638 Mar 10 2011 [2016]k95bulk.html
-rw-r--r-- 1 fdc kermit 7737 Jun 22 2002 [2017]k95charsets.htm
l
-rw-r--r-- 1 fdc kermit 9050 Sep 25 2014 [2018]k95compare.html
-rw-r--r-- 1 fdc kermit 54956 Oct 23 1995 [2019]k95cover.gif
-rw-r--r-- 1 fdc kermit 141 Oct 23 1995 [2020]k95cover.html
-rw-r--r-- 1 fdc kermit 1336780 Oct 15 2009 [2021]k95cover2.jpg
-rw-r--r-- 1 fdc kermit 1518883 Oct 15 2009 [2022]k95cover3.jpg
-rw-r--r-- 1 fdc kermit 1386211 Oct 15 2009 [2023]k95cover4.jpg
-rw-r--r-- 1 fdc kermit 1557697 Oct 15 2009 [2024]k95cover5.jpg
-rw-r--r-- 1 fdc kermit 1638230 Oct 15 2009 [2025]k95cover6.jpg
-rw-r--r-- 1 fdc kermit 1616 Sep 23 2011 [2026]k95da.html
-rw-r--r-- 1 fdc kermit 963 Sep 23 2011 [2027]k95dc.html
-rw-r--r-- 1 fdc kermit 8618 Sep 25 2014 [2028]k95demo.html
-rw-r--r-- 1 fdc kermit 8133 Jan 18 2002 [2029]k95demo.save
-rw-r--r-- 1 fdc kermit 4498 Sep 27 2011 [2030]k95democ.html
-rw-r--r-- 1 fdc kermit 27771 Mar 24 2002 [2031]k95dial.gif
-rw-r--r-- 1 fdc kermit 1062 Sep 23 2011 [2032]k95dial.html
-rw-r--r-- 1 fdc kermit 9270 Nov 26 2001 [2033]k95dll_c.txt
-rw-r--r-- 1 fdc kermit 381 Sep 23 2011 [2034]k95download.htm
l
-rw-r--r-- 1 fdc kermit 1473 Sep 12 1995 [2035]k95faithful
-rw-r--r-- 1 fdc kermit 1586 Sep 23 2011 [2036]k95faithful.htm
l
-rw-r--r-- 1 fdc kermit 211788 Jul 24 07:31 [2037]k95faq.html
-rw-r--r-- 1 fdc kermit 209757 Aug 25 2019 [2038]k95faq.html.~12
~
-rw-r--r-- 1 fdc kermit 211802 Jun 14 13:24 [2039]k95faq.html.~13
~
-rw-r--r-- 1 fdc kermit 202018 Sep 25 2014 [2040]k95faq.html.~1~
-rw-r--r-- 1 fdc kermit 201933 Oct 8 2015 [2041]k95faq.html.~2~
-rw-r--r-- 1 fdc kermit 40641 Sep 4 1995 [2042]k95features.gif
-rw-r--r-- 1 fdc kermit 119837 Sep 23 2011 [2043]k95fixes.html
-rw-r--r-- 1 fdc kermit 4200 Jul 11 2011 [2044]k95gallery.html
-rw-r--r-- 1 fdc kermit 282 Mar 22 2002 [2045]k95green.gif
-rw-r--r-- 1 fdc kermit 60778 Sep 27 2011 [2046]k95gui.html
-rw-r--r-- 1 fdc kermit 27859 Sep 4 1995 [2047]k95help.gif
-rw-r--r-- 1 fdc kermit 534 Sep 23 2011 [2048]k95hints.html
-rw-r--r-- 1 fdc kermit 5413 Sep 23 2011 [2049]k95host.html
-rw-r--r-- 1 fdc kermit 20050 May 4 1997 [2050]k95hostuser.txt
-rw-r--r-- 1 fdc kermit 5479 Sep 23 2011 [2051]k95hyper.html
-rw-r--r-- 1 fdc kermit 4895 Sep 27 2011 [2052]k95iksd.html
-rw-r--r-- 1 fdc kermit 22710 Sep 23 2011 [2053]k95ins.html
-rw-r--r-- 1 fdc kermit 4846 Jul 29 2016 [2054]k95jeff.html
-rw-r--r-- 1 fdc kermit 4837 Sep 23 2011 [2055]k95jeff.html.~1
~
-rw-r--r-- 1 fdc kermit 12655 Sep 23 2011 [2056]k95k2pricing.ht
ml
-rw-r--r-- 1 fdc kermit 27939 Mar 24 2002 [2057]k95kbpage.gif
-rw-r--r-- 1 fdc kermit 23382 Sep 23 2011 [2058]k95keycodes.htm
l
drwxr-xr-x 2 fdc kermit 12 Sep 12 2007 [2059]k95keymaps/
-rw-r--r-- 1 fdc kermit 7930 Jul 24 12:10 [2060]k95license.html
-rw-rw---- 1 fdc kermit 5847 Jul 24 09:46 [2061]k95license.html
.~1~
-rw-r--r-- 1 fdc kermit 25063 Feb 10 2016 [2062]k95manual-99.jp
g
-rw-r--r-- 1 fdc kermit 139430 Feb 10 2016 [2063]k95manual.jpg
drwxr-xr-x 2 fdc kermit 210 Aug 25 2019 [2064]k95manual/
-rw-r--r-- 1 fdc kermit 601 Sep 23 2011 [2065]k95migrate.html
-rw-r--r-- 1 fdc kermit 382 Sep 25 2014 [2066]k95newbugs.html
-rw-r--r-- 1 fdc kermit 15555 Sep 25 2014 [2067]k95news.html
-rw-r--r-- 1 fdc kermit 10934 Sep 23 2011 [2068]k95next.html
-rw-r--r-- 1 fdc kermit 690 Aug 5 1997 [2069]k95oack.xxx
-rw-r--r-- 1 fdc kermit 1044 Sep 23 2011 [2070]k95ofront.html
-rw-r--r-- 1 fdc kermit 2718 Nov 27 2001 [2071]k95ofront.orig
-rw-r--r-- 1 fdc kermit 2332 Aug 25 2019 [2072]k95order.html
-rw-r--r-- 1 fdc kermit 16429 Sep 25 2014 [2073]k95patch.html
-rw-r--r-- 1 fdc kermit 16429 Sep 25 2014 [2074]k95patches.html
-rw-r--r-- 1 fdc kermit 35396 Sep 1 1995 [2075]k95pic1.gif
-rw-r--r-- 1 fdc kermit 1794 Sep 23 2011 [2076]k95portable.htm
l
-rw-r--r-- 1 fdc kermit 11380 Sep 23 2011 [2077]k95qmodem.html
-rw-r--r-- 1 fdc kermit 57455 Sep 25 2014 [2078]k95readme.html
-rw-r--r-- 1 fdc kermit 1108 Mar 22 2002 [2079]k95red.gif
-rw-r--r-- 1 fdc kermit 40804 Sep 27 2011 [2080]k95reviews.html
-rw-r--r-- 1 fdc kermit 35396 Sep 2 1995 [2081]k95s2.gif
-rw-r--r-- 1 fdc kermit 37659 Sep 2 1995 [2082]k95screen.gif
-rw-r--r-- 1 fdc kermit 59700 Mar 27 2002 [2083]k95screens.gif
-rw-r--r-- 1 fdc kermit 1295 Sep 23 2011 [2084]k95screens.html
-rw-r--r-- 1 fdc kermit 64004 Sep 23 2011 [2085]k95scripts.html
-rw-r--r-- 1 fdc kermit 8009 Sep 23 2011 [2086]k95shots.html
-rw-r--r-- 1 fdc kermit 20109 Oct 19 1995 [2087]k95side.gif
-rw-r--r-- 1 fdc kermit 13005 Oct 19 1995 [2088]k95side2.gif
-rw-r--r-- 1 fdc kermit 36692 Oct 23 1995 [2089]k95sky.gif
-rw-r--r-- 1 fdc kermit 33409 Sep 2 1995 [2090]k95small.gif
-rw-r--r-- 1 fdc kermit 18635 Oct 16 2015 [2091]k95sourcecode-o
rig.html
-rw-r--r-- 1 fdc kermit 18802 Apr 9 2014 [2092]k95sourcecode-o
rig.html.~1~
-rw-r--r-- 1 fdc kermit 11935 May 14 2019 [2093]k95sourcecode.h
tml
-rw-r--r-- 1 fdc kermit 11888 Feb 25 2018 [2094]k95sourcecode.h
tml.~13~
-rw-r--r-- 1 fdc kermit 11890 Aug 31 2018 [2095]k95sourcecode.h
tml.~14~
-rw-r--r-- 1 fdc kermit 17770 Sep 29 2011 [2096]k95sourcecode.h
tml.~1~
-rw-r--r-- 1 fdc kermit 18596 Nov 22 2013 [2097]k95sourcecode.h
tml.~2~
-rw-r--r-- 1 fdc kermit 16652 Oct 23 1995 [2098]k95spine.gif
-rw-r--r-- 1 fdc kermit 32823 Mar 27 2002 [2099]k95sscreen.gif
-rw-r--r-- 1 fdc kermit 432446 Feb 14 2015 [2100]k95sshclient-po
lski.html
lrwxrwxrwx 1 fdc kermit 14 Feb 14 2015 [2101]k95sshclient.ht
ml -> sshclient.html
-rw-r--r-- 1 fdc kermit 43162 Mar 27 2002 [2102]k95stshot.jpg
lrwxrwxrwx 1 fdc kermit 11 Jul 21 2011 [2103]k95support.html
-> k95faq.html
-rw-r--r-- 1 fdc kermit 13600 Sep 23 2011 [2104]k95survey.html
-rw-r--r-- 1 fdc kermit 64589 Mar 28 2002 [2105]k95t2.gif
-rw-r--r-- 1 fdc kermit 15202 Mar 24 2002 [2106]k95telnet.gif
-rw-r--r-- 1 fdc kermit 2909 Sep 23 2011 [2107]k95telnet.html
-rw-r--r-- 1 fdc kermit 27343 Feb 13 1997 [2108]k95term.gif
-rw-r--r-- 1 fdc kermit 2303 Sep 23 2011 [2109]k95tohere.html
-rw-r--r-- 1 fdc kermit 166665 Mar 27 2002 [2110]k95tshots.jpg
-rw-r--r-- 1 fdc kermit 27037 Jun 14 2017 [2111]k95tutor.html
-rw-r--r-- 1 fdc kermit 27095 Sep 27 2011 [2112]k95tutor.html.~
1~
-rw-r--r-- 1 fdc kermit 1419 Sep 23 2011 [2113]k95uniform.html
-rw-r--r-- 1 fdc kermit 8012 Sep 27 2011 [2114]k95uninstall.ht
ml
-rw-r--r-- 1 fdc kermit 49030 Apr 5 2000 [2115]k95updates.txt
-rw-r--r-- 1 fdc kermit 14670 Sep 25 2014 [2116]k95upgrade.html
-rw-r--r-- 1 fdc kermit 4031 Sep 23 2011 [2117]k95users.html
-rw-r--r-- 1 fdc kermit 1356 Sep 25 2014 [2118]k95utils.html
-rw-r--r-- 1 fdc kermit 2630 Jun 22 2011 [2119]k95v1package-10
0.jpg
-rw-r--r-- 1 fdc kermit 3477 Jun 22 2011 [2120]k95v1package-12
0.jpg
-rw-r--r-- 1 fdc kermit 5462 Jun 22 2011 [2121]k95v1package-16
0.jpg
-rw-r--r-- 1 fdc kermit 13100 Jun 22 2011 [2122]k95v1package-28
0.jpg
-rw-r--r-- 1 fdc kermit 77750 Jun 22 2011 [2123]k95v1package-74
0.jpg
-rw-r--r-- 1 fdc kermit 6876 Sep 23 2011 [2124]k95vt95tn.html
-rw-r--r-- 1 fdc kermit 6723 Sep 23 2011 [2125]k95vtcrt.html
-rw-r--r-- 1 fdc kermit 6725 Sep 23 2011 [2126]k95vtewan.html
-rw-r--r-- 1 fdc kermit 10081 Sep 23 2011 [2127]k95vtfk.html
-rw-r--r-- 1 fdc kermit 6904 Sep 23 2011 [2128]k95vtk95.html
-rw-r--r-- 1 fdc kermit 6743 Sep 23 2011 [2129]k95vtnterm.html
-rw-r--r-- 1 fdc kermit 6802 Sep 23 2011 [2130]k95vtnterm27.ht
ml
-rw-r--r-- 1 fdc kermit 6821 Sep 23 2011 [2131]k95vtnterm280.h
tml
-rw-r--r-- 1 fdc kermit 6876 Sep 23 2011 [2132]k95vtnttn.html
-rw-r--r-- 1 fdc kermit 6807 Sep 23 2011 [2133]k95vtqmpro.html
-rw-r--r-- 1 fdc kermit 6733 Sep 23 2011 [2134]k95vtsimp.html
-rw-r--r-- 1 fdc kermit 6799 Sep 23 2011 [2135]k95vtwqvt.html
-rw-r--r-- 1 fdc kermit 2631 Sep 23 2011 [2136]kanji.html
-rw-r--r-- 1 fdc kermit 2626 Feb 9 1999 [2137]kanji.http
-rw-r--r-- 1 fdc kermit 10772 Dec 6 1994 [2138]kanji1.gif
-rw-r--r-- 1 fdc kermit 18757 Dec 6 1994 [2139]kanji2.gif
-rw-r--r-- 1 fdc kermit 2477 Dec 6 1994 [2140]kanji_icon.gif
-rw-r--r-- 1 fdc kermit 51068 Mar 10 2011 [2141]kb-latin-cyrill
ic.txt
-rw-r--r-- 1 fdc kermit 92495 Aug 25 2019 [2142]kb-ru-utf8.html
-rw-r--r-- 1 fdc kermit 92495 Mar 17 2011 [2143]kb-ru-utf8.html
.~1~
-rw-r--r-- 1 fdc kermit 92384 Aug 25 2019 [2144]kb-utf8.html
-rw-r--r-- 1 fdc kermit 6898 May 2 2011 [2145]kermit-calendar
-160.jpg
-rw-r--r-- 1 fdc kermit 17654 May 2 2011 [2146]kermit-calendar
-280.jpg
-rw-r--r-- 1 fdc kermit 124225 May 2 2011 [2147]kermit-calendar
-740.jpg
-rw-r--r-- 1 fdc kermit 950753 May 2 2011 [2148]kermit-calendar
.jpg
-rw-r--r-- 1 fdc kermit 53940 May 8 2016 [2149]kermit-el.txt
-rw-r--r-- 1 fdc kermit 41059 Mar 12 2019 [2150]kermit-es.html
-rw-r--r-- 1 fdc kermit 37856 Sep 25 2014 [2151]kermit-es.html.
~1~
-rw-r--r-- 1 fdc kermit 38799 Dec 15 2016 [2152]kermit-es.html.
~2~
-rw-r--r-- 1 fdc kermit 41051 Jun 8 2017 [2153]kermit-es.html.
~4~
-rw-r--r-- 1 fdc kermit 41059 Feb 25 2018 [2154]kermit-es.html.
~5~
-rw-r--r-- 1 fdc kermit 29239 Jun 8 2016 [2155]kermit-sk.txt
-rw-r--r-- 1 fdc kermit 38413 Jul 1 2011 [2156]kermit-strip-10
0.jpg
-rw-r--r-- 1 fdc kermit 51125 Jul 1 2011 [2157]kermit-strip-12
0.jpg
-rw-r--r-- 1 fdc kermit 82024 Jul 1 2011 [2158]kermit-strip-16
0.jpg
-rw-r--r-- 1 fdc kermit 204532 Jul 1 2011 [2159]kermit-strip-28
0.jpg
-rw-r--r-- 1 fdc kermit 38033 Jul 1 2011 [2160]kermit-strip2-1
00.jpg
-rw-r--r-- 1 fdc kermit 50564 Jul 1 2011 [2161]kermit-strip2-1
20.jpg
-rw-r--r-- 1 fdc kermit 81028 Jul 1 2011 [2162]kermit-strip2-1
60.jpg
-rw-r--r-- 1 fdc kermit 171455 Jul 1 2011 [2163]kermit-strip2-2
80.jpg
-rw-r--r-- 1 fdc kermit 10753 Jul 27 15:01 [2164]kermit.css
-rw-r--r-- 1 fdc kermit 5588 Nov 2 2013 [2165]kermit.css.~1~
-rw-r--r-- 1 fdc kermit 10716 Jun 19 15:16 [2166]kermit.css.~22~
-rw-r--r-- 1 fdc kermit 10716 Jun 24 11:29 [2167]kermit.css.~23~
-rw-r--r-- 1 fdc kermit 5634 Dec 26 2014 [2168]kermit.css.~2~
-rw-r--r-- 1 fdc kermit 884 Apr 22 1999 [2169]kermit.gif
-rw-r--r-- 1 fdc kermit 53077 Apr 20 12:22 [2170]kermit.html
-rw-r--r-- 1 fdc kermit 46339 Feb 25 2018 [2171]kermit.html.1
-rw-r--r-- 1 fdc kermit 42187 Sep 25 2014 [2172]kermit.html.~1~
-rw-r--r-- 1 fdc kermit 42823 Apr 21 2015 [2173]kermit.html.~2~
-rw-r--r-- 1 fdc kermit 52910 Jan 27 2020 [2174]kermit.html.~43
~
-rw-r--r-- 1 fdc kermit 52910 Feb 28 2020 [2175]kermit.html.~44
~
-rw-r--r-- 1 fdc kermit 274 Jul 1 2011 [2176]kermit95.html
-rw-r--r-- 1 fdc kermit 3095 Mar 11 2011 [2177]kermitbook-100.
jpg
-rw-r--r-- 1 fdc kermit 6144 Sep 9 2007 [2178]kermitbook-115.
jpg
-rw-r--r-- 1 fdc kermit 3920 Mar 11 2011 [2179]kermitbook-150.
jpg
-rw-r--r-- 1 fdc kermit 9478 Sep 9 2007 [2180]kermitbook-200.
jpg
-rw-r--r-- 1 fdc kermit 9167 Mar 11 2011 [2181]kermitbook-280.
jpg
-rw-r--r-- 1 fdc kermit 14201 Sep 9 2007 [2182]kermitbook-300.
jpg
-rw-r--r-- 1 fdc kermit 27650 Mar 11 2011 [2183]kermitbook-600.
jpg
-rw-r--r-- 1 fdc kermit 578120 Oct 29 2013 [2184]kermitbook-back
.jpg
-rw-r--r-- 1 fdc kermit 96118 Mar 12 2019 [2185]kermitbook-ch3-
ru-test.html
-rw-r--r-- 1 fdc kermit 55745 May 12 2017 [2186]kermitbook-ch3-
ru.html
-rw-r--r-- 1 fdc kermit 55686 Oct 30 2013 [2187]kermitbook-ch3-
ru.html.~1~
-rw-r--r-- 1 fdc kermit 55742 Nov 11 2013 [2188]kermitbook-ch3-
ru.html.~2~
lrwxrwxrwx 1 fdc kermit 14 Oct 29 2013 [2189]kermitbook-fron
t.jpg -> kermitbook.jpg
-rw-r--r-- 1 fdc kermit 149315 Sep 9 2007 [2190]kermitbook.jpg
-rw-r--r-- 1 fdc kermit 76786 Apr 30 2017 [2191]kermitmanpage.h
tml
-rw-r--r-- 1 fdc kermit 41120 Sep 23 2011 [2192]keycodes.html
-rw-r--r-- 1 fdc kermit 39559 Dec 18 2003 [2193]keycodes.html.u
ntrimmed
-rw-r--r-- 1 fdc kermit 63653 Feb 11 2001 [2194]kl10.jpg
-rw-r--r-- 1 fdc kermit 6762 Feb 11 2001 [2195]kl10s.jpg
-rw-r--r-- 1 fdc kermit 351327 Mar 11 2011 [2196]kn1-1000.jpg
-rw-r--r-- 1 fdc kermit 16477 Mar 11 2011 [2197]kn1-280.jpg
-rw-r--r-- 1 fdc kermit 47208 Mar 11 2011 [2198]kn2-1000.jpg
-rw-r--r-- 1 fdc kermit 5228 Mar 11 2011 [2199]kn2-280.jpg
-rw-r--r-- 1 fdc kermit 47730 Mar 11 2011 [2200]kn3-1000.jpg
-rw-r--r-- 1 fdc kermit 5124 Mar 11 2011 [2201]kn3-280.jpg
-rw-r--r-- 1 fdc kermit 150760 Mar 11 2011 [2202]kn4-1000.jpg
-rw-r--r-- 1 fdc kermit 13259 Mar 11 2011 [2203]kn4-280.jpg
-rw-r--r-- 1 fdc kermit 127085 Jan 26 1995 [2204]kn4.gif
-rw-r--r-- 1 fdc kermit 137 Jan 26 1995 [2205]kn4_cover.html
-rw-r--r-- 1 fdc kermit 18519 Jan 26 1995 [2206]kn4_i.gif
-rw-r--r-- 1 fdc kermit 88066 Mar 11 2011 [2207]kn5-1000.jpg
-rw-r--r-- 1 fdc kermit 11634 Mar 11 2011 [2208]kn5-280.jpg
-rw-r--r-- 1 fdc kermit 92667 Jan 26 1995 [2209]kn5.gif
-rw-r--r-- 1 fdc kermit 137 Jan 26 1995 [2210]kn5_cover.html
-rw-r--r-- 1 fdc kermit 10520 Jan 26 1995 [2211]kn5_i.gif
-rw-r--r-- 1 fdc kermit 123341 Mar 11 2011 [2212]kn6-1000.jpg
-rw-r--r-- 1 fdc kermit 14040 Mar 11 2011 [2213]kn6-280.jpg
-rw-r--r-- 1 fdc kermit 252150 May 3 1995 [2214]kn6.gif
-rw-r--r-- 1 fdc kermit 137 May 3 1995 [2215]kn6_cover.html
-rw-r--r-- 1 fdc kermit 20478 May 3 1995 [2216]kn6_i.gif
-rw-r--r-- 1 fdc kermit 6457 Sep 23 2011 [2217]koi7.html
-rw-r--r-- 1 fdc kermit 5346 Oct 16 2019 [2218]koikeys
-rw-r--r-- 1 fdc kermit 3845 Oct 17 2019 [2219]koikeys.html
-rw-r--r-- 1 fdc kermit 3211 Oct 16 2019 [2220]koikeys.html.1
-rw-r--r-- 1 fdc kermit 2487 Oct 16 2019 [2221]koikeys.html.~1
~
-rw-r--r-- 1 fdc kermit 3211 Oct 16 2019 [2222]koikeys.html.~2
~
-rw-r--r-- 1 fdc kermit 2487 Oct 16 2019 [2223]koikeys.txt
-rw-rw---- 1 fdc kermit 5346 Oct 16 2019 [2224]koikeys.txt.~1~
-rw-r--r-- 1 fdc kermit 5191 Oct 16 2019 [2225]koikeys.~1~
-rw-r--r-- 1 fdc kermit 21570 Dec 30 2019 [2226]kp-insecure-ff.
jpg
-rw-r--r-- 1 fdc kermit 20868 Dec 30 2019 [2227]kp-insecure-gc.
jpg
-rw-r--r-- 1 fdc kermit 166478 Aug 17 2011 [2228]kproto.pdf
-rw-r--r-- 1 fdc kermit 21588 Feb 28 2018 [2229]ksitemap.html
-rw-r--r-- 1 fdc kermit 21589 Aug 3 2013 [2230]ksitemap.html.~
1~
-rw-r--r-- 1 fdc kermit 44174 Jun 20 2002 [2231]kucs2.gif
-rw-r--r-- 1 fdc kermit 15532 Feb 20 1997 [2232]kui1.gif
-rw-r--r-- 1 fdc kermit 35351 Feb 20 1997 [2233]kui2.gif
-rw-r--r-- 1 fdc kermit 23335 Feb 20 1997 [2234]kui3.gif
-rw-r--r-- 1 fdc kermit 12644 Feb 20 1997 [2235]kui4.gif
-rw-r--r-- 1 fdc kermit 17373 Feb 20 1997 [2236]kui5.gif
-rw-r--r-- 1 fdc kermit 17604 Feb 20 1997 [2237]kui6.gif
-rw-r--r-- 1 fdc kermit 25459 Feb 20 1997 [2238]kui7.gif
-rw-r--r-- 1 fdc kermit 20063 Feb 20 1997 [2239]kui8.gif
-rw-r--r-- 1 fdc kermit 24208 Feb 20 1997 [2240]kui9.gif
-rw-r--r-- 1 fdc kermit 7332 Sep 23 2011 [2241]kuishots.html
-rw-r--r-- 1 fdc kermit 812560 Apr 11 2011 [2242]kurier.pdf
-rw-r--r-- 1 fdc kermit 267 Aug 16 1988 [2243]kuser.hlp
-rw-r--r-- 1 fdc kermit 11222 Aug 16 1988 [2244]kuser.hyp
-rw-r--r-- 1 fdc kermit 119340 Nov 8 1988 [2245]kuser.mss
-rw-r--r-- 1 fdc kermit 910638 Aug 17 2011 [2246]kuser.pdf
-rw-r--r-- 1 fdc kermit 1682985 Nov 8 1988 [2247]kuser.ps
-rw-r--r-- 1 fdc kermit 1103872 Aug 16 1988 [2248]kuser.txt
-rw-r--r-- 1 fdc kermit 29151 Sep 23 2011 [2249]kverbs.html
-rw-r--r-- 1 fdc kermit 157093 Aug 16 2011 [2250]l1-postal.html
-rw-r--r-- 1 fdc kermit 4478 Dec 20 2017 [2251]langbuttons
-rw-r--r-- 1 fdc kermit 4610 Dec 20 2017 [2252]langbuttons.~1~
-rw-r--r-- 1 fdc kermit 4541 Dec 20 2017 [2253]langbuttons2
-rw-r--r-- 1 fdc kermit 2262 Dec 20 2017 [2254]langbuttons3
-rw-r--r-- 1 fdc kermit 2292 Dec 20 2017 [2255]langbuttons4
-rw-r--r-- 1 fdc kermit 2768 Dec 20 2017 [2256]langbuttons5
-rw-r--r-- 1 fdc kermit 2772 Dec 20 2017 [2257]langbuttons5.~1
~
-rw-r--r-- 1 fdc kermit 9819 Feb 7 2019 [2258]languages.html
-rw-r--r-- 1 fdc kermit 5918 Mar 4 2003 [2259]latin1.html
-rw-r--r-- 1 fdc kermit 4433 Mar 4 2003 [2260]latin2.html
-rw-r--r-- 1 fdc kermit 6285 Mar 4 2003 [2261]latin3.html
-rw-r--r-- 1 fdc kermit 6080 Mar 4 2003 [2262]latin4.html
-rw-r--r-- 1 fdc kermit 5996 Mar 4 2003 [2263]latin9.html
-rw-r--r-- 1 fdc kermit 313258 Nov 19 2009 [2264]lb2.jpg
-rw-r--r-- 1 fdc kermit 12541 Nov 19 2009 [2265]lb3.jpg
-rw-r--r-- 1 fdc kermit 12669 Mar 6 2010 [2266]lb3r.jpg
-rw-r--r-- 1 fdc kermit 12025 Mar 6 2010 [2267]lb4.jpg
-rw-r--r-- 1 fdc kermit 777 Jun 3 1995 [2268]left-icon-dim.g
if
-rw-r--r-- 1 fdc kermit 798 Jun 3 1995 [2269]left-icon.gif
-rw-r--r-- 1 fdc kermit 8858 Aug 25 2019 [2270]licensing.html
-rw-r--r-- 1 fdc kermit 5161 Sep 23 2011 [2271]links.html
-rw-r--r-- 1 fdc kermit 4364 Jul 9 2000 [2272]links2go.gif
-rw-r--r-- 1 fdc kermit 11858 Apr 17 2002 [2273]lion.jpg
-rw-r--r-- 1 fdc kermit 19532 Aug 25 2019 [2274]locale.html
-rw-r--r-- 1 fdc kermit 17814 Oct 15 2013 [2275]locale.html.~1~
-rw-r--r-- 1 fdc kermit 17823 Nov 24 2013 [2276]locale.html.~2~
-rw-r--r-- 1 fdc kermit 17826 Oct 26 2014 [2277]locale.html.~3~
-rw-r--r-- 1 fdc kermit 7621 Aug 25 2019 [2278]logserial.html
-rw-r--r-- 1 fdc kermit 27346 Apr 17 2002 [2279]low.jpg
-rw-r--r-- 1 fdc kermit 28285 Jun 1 2002 [2280]lynx.gif
-rw-r--r-- 1 fdc kermit 5607 Jun 4 2002 [2281]lynxsm.gif
-rw-r--r-- 1 fdc kermit 1825 Mar 22 2002 [2282]m3d.gif
-rw-r--r-- 1 fdc kermit 7043 Jul 10 2017 [2283]mac.html
-rw-r--r-- 1 fdc kermit 5894 Sep 25 2014 [2284]mac.html.~1~
-rw-r--r-- 1 fdc kermit 37494 Jul 10 2017 [2285]mackermit-160.j
pg
-rw-r--r-- 1 fdc kermit 2160085 Jul 10 2017 [2286]mackermit-1600.
jpg
-rw-r--r-- 1 fdc kermit 703604 Jul 10 2017 [2287]mackermit.hqx
lrwxrwx--- 1 fdc kermit 13 Jul 10 2017 [2288]mackermithqx.tx
t -> mackermit.hqx
-rw-r--r-- 1 fdc kermit 4374 Sep 25 2014 [2289]maclatin.html
-rw-r--r-- 1 fdc kermit 1057 Feb 28 1996 [2290]manning_logo.gi
f
-rw-rw-r-- 1 fdc kermit 15893 Jun 26 11:12 [2291]manuals.html
-rw-rw-r-- 1 fdc kermit 14199 Aug 25 2019 [2292]manuals.html.~1
0~
-rw-r--r-- 1 fdc kermit 13018 Oct 30 2013 [2293]manuals.html.~1
~
-rw-r--r-- 1 fdc kermit 12975 Jun 5 2015 [2294]manuals.html.~2
~
-rw-rw-r-- 1 fdc kermit 14194 Aug 24 2019 [2295]manuals.html.~9
~
-rw-r--r-- 1 fdc kermit 6213 Apr 22 2017 [2296]maritimecollege
.html
-rw-r--r-- 1 fdc kermit 14114 May 13 2000 [2297]markus-utf8.htm
l
-rw-rw-r-- 1 fdc kermit 24167 Sep 12 2018 [2298]masonry.pkgd.mi
n.js
-rw-r--r-- 1 fdc kermit 26179 Mar 16 2015 [2299]masonry.pkgd.mi
n.js_3.2.2
-rw-r--r-- 1 fdc kermit 1850 Jan 9 1996 [2300]mastercard.gif
-rw-r--r-- 1 fdc kermit 5953 Nov 12 1998 [2301]mazovia.html
-rw-r--r-- 1 fdc kermit 5953 Nov 12 1998 [2302]mazovia2.html
-rw-r--r-- 1 fdc kermit 24873 Mar 25 2002 [2303]mdms.gif
-rw-r--r-- 1 fdc kermit 19569 Mar 25 2002 [2304]mdms2.gif
-rw-r--r-- 1 fdc kermit 1209 Dec 30 2019 [2305]menu-en.html
-rw-r--r-- 1 fdc kermit 1310 Mar 10 2011 [2306]menu-en.html.1
-rw-r--r-- 1 fdc kermit 1310 Mar 10 2011 [2307]menu-en.html.~1
~
-rw-r--r-- 1 fdc kermit 1448 Mar 10 2011 [2308]menu-es.html
-rw-r--r-- 1 fdc kermit 1448 Mar 10 2011 [2309]menu-es.html.1
-rw-r--r-- 1 fdc kermit 12192 Mar 27 2002 [2310]menu.gif
lrwxrwx--- 1 fdc kermit 12 Dec 30 2019 [2311]menu.html -> me
nu-en.html
-rw-r--r-- 1 fdc kermit 2930 Mar 27 2002 [2312]menu_sm.gif
-rw-r--r-- 1 fdc kermit 5391 Mar 27 2002 [2313]menubar.gif
-rw-r--r-- 1 fdc kermit 30245 Jul 1 2000 [2314]metal.jpg
-rw-r--r-- 1 fdc kermit 19839 Mar 27 2002 [2315]metro.gif
-rw-r--r-- 1 fdc kermit 4651 Mar 27 2002 [2316]metro_sm.gif
-rw-r--r-- 1 fdc kermit 32448 Jul 5 2013 [2317]misconceptions.
html
-rw-r--r-- 1 fdc kermit 5895 Sep 23 2011 [2318]mltbl.html
lrwxrwx--- 1 fdc kermit 13 Feb 25 2018 [2319]mm.html -> mm/i
ndex.html
drwxr-xr-x 3 fdc kermit 15 Mar 14 2016 [2320]mm/
-rw-r--r-- 1 fdc kermit 5350 Sep 23 2011 [2321]mobile.html
-rw-r--r-- 1 fdc kermit 20512 Nov 28 2006 [2322]modemcable.jpg
-rw-r--r-- 1 fdc kermit 1740 Sep 23 2011 [2323]moreinfo.html
-rw-r--r-- 1 fdc kermit 1638 May 27 2019 [2324]moreorless.html
-rw-r--r-- 1 fdc kermit 1639 May 27 2019 [2325]moreorless.html
.~1~
-rw-r--r-- 1 fdc kermit 21463 Jul 5 2013 [2326]mrzip.jpg
-rw-r--r-- 1 fdc kermit 66856 Dec 6 1994 [2327]msbde.gif
-rw-r--r-- 1 fdc kermit 11779 Dec 6 1994 [2328]msbde_.gif.cu
-rw-r--r-- 1 fdc kermit 13778 Jan 25 1995 [2329]msbde_i.gif
-rw-r--r-- 1 fdc kermit 12262 Dec 6 1994 [2330]msben_i.gif
-rw-r--r-- 1 fdc kermit 14028 Dec 6 1994 [2331]msbfr_i.gif
-rw-r--r-- 1 fdc kermit 2307169 Apr 29 2002 [2332]msbjp.jpg
-rw-r--r-- 1 fdc kermit 33726 Apr 29 2002 [2333]msbjp_2.jpg
-rw-r--r-- 1 fdc kermit 76614 Apr 29 2002 [2334]msbjp_3.jpg
-rw-r--r-- 1 fdc kermit 10019 Dec 6 1994 [2335]msbjp_i.gif
-rw-r--r-- 1 fdc kermit 9092 Mar 11 2011 [2336]msbook-strip-1-
080.jpg
-rw-r--r-- 1 fdc kermit 13438 Mar 11 2011 [2337]msbook-strip-1-
100.jpg
-rw-r--r-- 1 fdc kermit 25950 Mar 11 2011 [2338]msbook-strip-1-
150.jpg
-rw-r--r-- 1 fdc kermit 40160 Mar 11 2011 [2339]msbook-strip-1-
200.jpg
-rw-r--r-- 1 fdc kermit 71967 Mar 11 2011 [2340]msbook-strip-1-
280.jpg
-rw-r--r-- 1 fdc kermit 252306 Dec 31 1995 [2341]msk1.gif
-rw-r--r-- 1 fdc kermit 138644 Dec 31 1995 [2342]msk2.gif
-rw-r--r-- 1 fdc kermit 14852 Aug 25 2019 [2343]msk30.html
-rw-r--r-- 1 fdc kermit 11482 Sep 25 2014 [2344]msk314.html
-rw-r--r-- 1 fdc kermit 15449 Sep 25 2014 [2345]msk315.html
-rw-r--r-- 1 fdc kermit 5089 Sep 25 2014 [2346]msk316.html
-rw-r--r-- 1 fdc kermit 4536 Jun 17 2017 [2347]msk95.html
-rw-r--r-- 1 fdc kermit 3928 Sep 23 2011 [2348]msk95.html.~1~
-rw-r--r-- 1 fdc kermit 116 Jul 27 2011 [2349]mskermit
-rw-r--r-- 1 fdc kermit 16437 Sep 10 10:12 [2350]mskermit.html
-rw-r--r-- 1 fdc kermit 15364 Sep 25 2014 [2351]mskermit.html.~
1~
-rw-r--r-- 1 fdc kermit 15348 Sep 25 2014 [2352]mskermit.html.~
2~
-rw-r--r-- 1 fdc kermit 15674 Aug 25 2019 [2353]mskermit.html.~
5~
-rw-r--r-- 1 fdc kermit 16078 Sep 9 14:38 [2354]mskermit.html.~
6~
-rw-r--r-- 1 fdc kermit 3079 Mar 11 2011 [2355]mskermit1e-100.
jpg
-rw-r--r-- 1 fdc kermit 6077 Mar 11 2011 [2356]mskermit1e-150.
jpg
-rw-r--r-- 1 fdc kermit 19147 Mar 11 2011 [2357]mskermit1e-280.
jpg
-rw-r--r-- 1 fdc kermit 70108 Mar 11 2011 [2358]mskermit1e-600.
jpg
-rw-r--r-- 1 fdc kermit 2488 Mar 11 2011 [2359]mskermit2e-100.
jpg
-rw-r--r-- 1 fdc kermit 4354 Mar 11 2011 [2360]mskermit2e-150.
jpg
-rw-r--r-- 1 fdc kermit 11137 Mar 11 2011 [2361]mskermit2e-280.
jpg
-rw-r--r-- 1 fdc kermit 33462 Mar 11 2011 [2362]mskermit2e-600.
jpg
-rw-r--r-- 1 fdc kermit 6760 Sep 9 2007 [2363]mskermitbook-11
5.jpg
-rw-r--r-- 1 fdc kermit 11236 Sep 9 2007 [2364]mskermitbook-20
0.jpg
-rw-r--r-- 1 fdc kermit 16617 Sep 9 2007 [2365]mskermitbook-30
0.jpg
-rw-r--r-- 1 fdc kermit 39424 Sep 9 2007 [2366]mskermitbook-60
0.jpg
-rw-r--r-- 1 fdc kermit 1719 Mar 10 2011 [2367]mskermitbook-80
.jpg
-rw-r--r-- 1 fdc kermit 192837 Sep 9 2007 [2368]mskermitbook.jp
g
-rw-r--r-- 1 fdc kermit 2393 Mar 11 2011 [2369]mskermitde-100.
jpg
-rw-r--r-- 1 fdc kermit 4128 Mar 11 2011 [2370]mskermitde-150.
jpg
-rw-r--r-- 1 fdc kermit 9933 Mar 11 2011 [2371]mskermitde-280.
jpg
-rw-r--r-- 1 fdc kermit 29962 Mar 11 2011 [2372]mskermitde-600.
jpg
-rw-r--r-- 1 fdc kermit 2439 Mar 11 2011 [2373]mskermitfr-100.
jpg
-rw-r--r-- 1 fdc kermit 4572 Mar 11 2011 [2374]mskermitfr-150.
jpg
-rw-r--r-- 1 fdc kermit 11692 Mar 11 2011 [2375]mskermitfr-280.
jpg
-rw-r--r-- 1 fdc kermit 35931 Mar 11 2011 [2376]mskermitfr-600.
jpg
-rw-r--r-- 1 fdc kermit 2056 Mar 11 2011 [2377]mskermitjp-100.
jpg
-rw-r--r-- 1 fdc kermit 3415 Mar 11 2011 [2378]mskermitjp-150.
jpg
-rw-r--r-- 1 fdc kermit 8542 Mar 11 2011 [2379]mskermitjp-280.
jpg
-rw-r--r-- 1 fdc kermit 27626 Mar 11 2011 [2380]mskermitjp-600.
jpg
-rw-r--r-- 1 fdc kermit 1120 Apr 16 1996 [2381]mskgraphics.htm
l
-rw-r--r-- 1 fdc kermit 4797 Sep 25 2014 [2382]mskorder.html
-rw-r--r-- 1 fdc kermit 3753 Jul 11 2011 [2383]mskoverview.htm
l
-rw-r--r-- 1 fdc kermit 20116 Sep 27 2011 [2384]mskreviews.html
-rw-r--r-- 1 fdc kermit 1136 Sep 23 2011 [2385]msksas.html
-rw-r--r-- 1 fdc kermit 5307 Sep 25 2014 [2386]mskscripts.html
-rw-r--r-- 1 fdc kermit 297 Sep 23 2011 [2387]mskwitten.html
-rw-r--r-- 1 fdc kermit 10243 Feb 25 1996 [2388]mslogo3.gif
-rw-r--r-- 1 fdc kermit 5553 Feb 25 1996 [2389]mslogo4.gif
-rw-r--r-- 1 fdc kermit 7885 Sep 18 2013 [2390]museum-160.jpg
-rw-r--r-- 1 fdc kermit 137918 Sep 10 2013 [2391]museum.jpg
-rw-r--r-- 1 fdc kermit 206 Jan 12 1996 [2392]musthave.gif
-rw-r--r-- 1 fdc kermit 9268 Dec 6 1994 [2393]nadc.gif
-rw-r--r-- 1 fdc kermit 10805 Sep 25 2014 [2394]nasa.html
-rw-r--r-- 1 fdc kermit 56069 Apr 21 2019 [2395]ndbw-strip1-140
.jpg
-rw-r--r-- 1 fdc kermit 34350 Apr 21 2019 [2396]ndbw-strip1-80.
jpg
-rw-r--r-- 1 fdc kermit 2657 Sep 25 2014 [2397]netnews.html
-rw-r--r-- 1 fdc kermit 487792 Jul 27 14:04 [2398]new.html.~1~
drwxr-xr-x 2 fdc kermit 26 Aug 24 2019 [2399]new/
-rw-r--r-- 1 fdc kermit 57348 Nov 28 2010 [2400]newbugs.txt
-rw-r--r-- 1 fdc kermit 63041 Apr 19 2017 [2401]newdaily.html.~
1~
-rw-r--r-- 1 fdc kermit 63658 Apr 19 2017 [2402]newdaily.html.~
2~
-rw-r--r-- 1 fdc kermit 299311 Jul 23 2014 [2403]newdeal.jpg
lrwxrwxrwx 1 fdc kermit 14 Nov 24 2014 [2404]newdeal/
-rw-r--r-- 1 fdc kermit 57877 Jan 13 2015 [2405]newdealgallery-
560.jpg
-rw-r--r-- 1 fdc kermit 73116 Jan 13 2015 [2406]newdealgallery-
620.jpg
-rw-r--r-- 1 fdc kermit 64003 Aug 14 2014 [2407]newdealgallery-
700.jpg
-rw-r--r-- 1 fdc kermit 7386 Sep 23 2011 [2408]newdialer.html
-rw-r--r-- 1 fdc kermit 23532 Sep 25 2014 [2409]newfaq.html
-rw-r--r-- 1 fdc kermit 33386 Sep 27 2011 [2410]newftp.html
-rw-r--r-- 1 fdc kermit 15703 Mar 12 2019 [2411]newftpclient-es
.html
-rw-r--r-- 1 fdc kermit 15380 Sep 25 2014 [2412]newftpclient-es
.html.~1~
-rw-rw-r-- 1 fdc kermit 36216 Apr 19 2019 [2413]newindex.html
-rw-rw-r-- 1 fdc kermit 36111 Apr 19 2019 [2414]newindex.html.1
-rw-rw-r-- 1 fdc kermit 36216 Apr 19 2019 [2415]newindex.html.2
-rw-rw-r-- 1 fdc kermit 36285 Apr 20 2019 [2416]newindex.html.3
-rw-rw-r-- 1 fdc kermit 36297 Apr 19 2019 [2417]newindex.html.3
.~1~
-rw-rw-r-- 1 fdc kermit 36285 Apr 19 2019 [2418]newindex.html.3
.~2~
-rw-rw-r-- 1 fdc kermit 37158 Apr 20 2019 [2419]newindex.html.4
-rw-rw-r-- 1 fdc kermit 36818 Apr 20 2019 [2420]newindex.html.4
.~1~
-rw-rw-r-- 1 fdc kermit 37195 Apr 20 2019 [2421]newindex.html.4
.~2~
-rw-rw-r-- 1 fdc kermit 37758 Apr 20 2019 [2422]newindex.html.5
-rw-rw-r-- 1 fdc kermit 38121 Apr 20 2019 [2423]newindex.html.5
.~1~
-rw-rw-r-- 1 fdc kermit 38388 Apr 21 2019 [2424]newindex.html.6
-rw-rw-r-- 1 fdc kermit 37758 Apr 21 2019 [2425]newindex.html.6
.~1~
-rw-rw-r-- 1 fdc kermit 38312 Apr 21 2019 [2426]newindex.html.6
.~2~
-rw-rw-r-- 1 fdc kermit 31856 Dec 20 2017 [2427]newindex.html.~
1~
-rw-rw-r-- 1 fdc kermit 35997 Mar 27 2019 [2428]newindex.html.~
2~
-rw-rw-r-- 1 fdc kermit 36092 Apr 19 2019 [2429]newindex.html.~
5~
-rw-rw-r-- 1 fdc kermit 36096 Apr 19 2019 [2430]newindex.html.~
6~
-rw-r--r-- 1 fdc kermit 19412 Oct 6 2014 [2431]newk95.html.~1~
-rw-r--r-- 1 fdc kermit 7683 Oct 6 2014 [2432]newk95.html.~2~
-rw-r--r-- 1 fdc kermit 8468 Oct 7 2014 [2433]newk95.html.~3~
drwxr-xr-x 2 fdc kermit 10 Oct 21 2015 [2434]newk95/
-rw-r--r-- 1 fdc kermit 488743 Sep 6 2017 [2435]newnotes.html
-rw-r--r-- 1 fdc kermit 95859 Jan 29 2020 [2436]newphotogallery
.html.~11~
-rw-r--r-- 1 fdc kermit 96250 Jan 30 2020 [2437]newphotogallery
.html.~12~
-rw-r--r-- 1 fdc kermit 103632 Jan 10 2020 [2438]newphotogallery
.html.~1~
-rw-r--r-- 1 fdc kermit 104053 Jan 18 2020 [2439]newphotogallery
.html.~2~
-rw-r--r-- 1 fdc kermit 3362 Sep 27 2011 [2440]news-gallery.ht
ml
-rw-r--r-- 1 fdc kermit 10564 Mar 11 2011 [2441]news-strip-1-10
0.jpg
-rw-r--r-- 1 fdc kermit 21187 Mar 11 2011 [2442]news-strip-1-15
0.jpg
-rw-r--r-- 1 fdc kermit 36095 Mar 11 2011 [2443]news-strip-1-20
0.jpg
-rw-r--r-- 1 fdc kermit 64455 Mar 11 2011 [2444]news-strip-1-28
0.jpg
-rw-r--r-- 1 fdc kermit 6189 Sep 25 2014 [2445]news.html
-rw-r--r-- 1 fdc kermit 537903 Oct 19 2010 [2446]newsn1.pdf
-rw-r--r-- 1 fdc kermit 1070959 Mar 11 2011 [2447]newsn2.pdf
-rw-r--r-- 1 fdc kermit 76256 Mar 11 2011 [2448]newsn2.ps
-rw-r--r-- 1 fdc kermit 37965 Mar 24 1995 [2449]newsn2.txt
-rw-r--r-- 1 fdc kermit 40593 Sep 15 2010 [2450]newsn3.html
-rw-r--r-- 1 fdc kermit 1047852 Mar 11 2011 [2451]newsn3.pdf
-rw-r--r-- 1 fdc kermit 85867 Mar 11 2011 [2452]newsn3.ps
-rw-r--r-- 1 fdc kermit 37381 Mar 24 1995 [2453]newsn3.txt
-rw-r--r-- 1 fdc kermit 129292 Sep 23 2011 [2454]newsn4.html
-rw-r--r-- 1 fdc kermit 229555 Oct 19 2010 [2455]newsn4.pdf
-rw-r--r-- 1 fdc kermit 309014 Jan 26 1995 [2456]newsn4.ps
-rw-r--r-- 1 fdc kermit 109098 Sep 23 2011 [2457]newsn5.html
-rw-r--r-- 1 fdc kermit 227674 Oct 19 2010 [2458]newsn5.pdf
-rw-r--r-- 1 fdc kermit 125956 Sep 25 2014 [2459]newsn6.html
-rw-r--r-- 1 fdc kermit 237638 Oct 19 2010 [2460]newsn6.pdf
-rw-r--r-- 1 fdc kermit 25798 Apr 21 2019 [2461]newtranslations
.html
-rw-r--r-- 1 fdc kermit 25113 Apr 18 2019 [2462]newtranslations
.html.~1~
-rw-r--r-- 1 fdc kermit 492706 Sep 18 14:05 [2463]newupdates.html
.~1~
-rw-r--r-- 1 fdc kermit 492699 Sep 18 14:08 [2464]newupdates.html
.~2~
-rw-r--r-- 1 fdc kermit 496551 Sep 19 16:45 [2465]newupdates.html
.~6~
-rw-r--r-- 1 fdc kermit 496785 Sep 19 16:48 [2466]newupdates.html
.~7~
-rw-r--r-- 1 fdc kermit 381902 Oct 2 2017 [2467]noconvertset=1
-rw-r--r-- 1 fdc kermit 1664 Jul 24 2002 [2468]noexport.html
-rw-r--r-- 1 fdc kermit 1613 Sep 21 2001 [2469]noexport.orig
-rw-r--r-- 1 fdc kermit 4260 Sep 23 2011 [2470]nonusa.html
-rw-r--r-- 1 fdc kermit 1159 Apr 21 2000 [2471]norway.gif
-rw-r--r-- 1 fdc kermit 28399 Nov 28 2006 [2472]nullmodem-480.j
pg
-rw-r--r-- 1 fdc kermit 43461 Nov 28 2006 [2473]nullmodem.jpg
-rw-r--r-- 1 fdc kermit 21710 Sep 18 2001 [2474]nyc.jpg
-rw-r--r-- 1 fdc kermit 31438 Apr 21 2000 [2475]nyc005c.jpg
-rw-r--r-- 1 fdc kermit 27819 Apr 21 2000 [2476]nyc008c.jpg
-rw-r--r-- 1 fdc kermit 49364 Apr 21 2000 [2477]nyc010c.jpg
-rw-r--r-- 1 fdc kermit 43842 Apr 21 2000 [2478]nyc010s.jpg
-rw-r--r-- 1 fdc kermit 49364 Apr 21 2000 [2479]nyc010x.jpg
-rw-r--r-- 1 fdc kermit 27086 Apr 21 2000 [2480]nyc020c.jpg
-rw-r--r-- 1 fdc kermit 23361 Apr 21 2000 [2481]nyc022b.jpg
-rw-r--r-- 1 fdc kermit 23361 Apr 21 2000 [2482]nyc022c.jpg
-rw-r--r-- 1 fdc kermit 28873 Jun 13 2000 [2483]nyc024c.jpg
-rw-r--r-- 1 fdc kermit 22459 Jun 3 2002 [2484]nyc025a.jpg
-rw-r--r-- 1 fdc kermit 43117 Jun 21 2000 [2485]nyc037c.jpg
-rw-r--r-- 1 fdc kermit 21710 Mar 22 2002 [2486]nyc051b.jpg
-rw-r--r-- 1 fdc kermit 21789 Apr 20 2000 [2487]nyc051c.jpg
-rw-r--r-- 1 fdc kermit 26626 Apr 21 2000 [2488]nyc053b.jpg
-rw-r--r-- 1 fdc kermit 26615 Apr 21 2000 [2489]nyc053c.jpg
-rw-r--r-- 1 fdc kermit 7095 Apr 20 2000 [2490]nyc055c.gif
-rw-r--r-- 1 fdc kermit 25628 Apr 21 2000 [2491]nyc056b.jpg
-rw-r--r-- 1 fdc kermit 25627 Apr 20 2000 [2492]nyc056c.jpg
-rw-r--r-- 1 fdc kermit 23861 Apr 21 2000 [2493]nyc057c.jpg
-rw-r--r-- 1 fdc kermit 26150 Apr 21 2000 [2494]nyc064b.jpg
-rw-r--r-- 1 fdc kermit 26151 Apr 19 2000 [2495]nyc064c.jpg
-rw-r--r-- 1 fdc kermit 13518 Jun 30 2000 [2496]nyc077c.jpg
-rw-r--r-- 1 fdc kermit 18965 Jun 30 2000 [2497]nyc077x.jpg
-rw-r--r-- 1 fdc kermit 41787 Apr 21 2000 [2498]nyc080c.jpg
-rw-r--r-- 1 fdc kermit 13215 Apr 21 2000 [2499]nyc081x.jpg
-rw-r--r-- 1 fdc kermit 29623 Jun 30 2000 [2500]nyc082c.jpg
-rw-r--r-- 1 fdc kermit 25883 Jun 21 2000 [2501]nyc083c.jpg
-rw-r--r-- 1 fdc kermit 16548 Jun 30 2000 [2502]nyc089c.jpg
-rw-r--r-- 1 fdc kermit 23815 Apr 21 2000 [2503]nyc092c.jpg
-rw-r--r-- 1 fdc kermit 11206 Jul 3 2000 [2504]nyc093c.jpg
-rw-r--r-- 1 fdc kermit 20495 Jul 3 2000 [2505]nyc2000.jpg
-rw-r--r-- 1 fdc kermit 25459 Jun 4 2002 [2506]ocolors.gif
-rw-r--r-- 1 fdc kermit 5526 Jun 4 2002 [2507]ocolorssm.gif
-rw-r--r-- 1 fdc kermit 2454 Sep 30 1996 [2508]oe-pgs.gif
-rw-r--r-- 1 fdc kermit 14358 Mar 9 2006 [2509]oechtringen-sm.
jpg
-rw-r--r-- 1 fdc kermit 14318 Sep 23 2011 [2510]old-manuals.htm
l
-rw-r--r-- 1 fdc kermit 16987 Sep 25 2014 [2511]old-support.htm
l
-rw-r--r-- 1 fdc kermit 5350 Sep 27 2011 [2512]old-vendor.html
drwxr-xr-x 3 fdc kermit 31 Sep 23 2011 [2513]old/
-rw-r--r-- 1 fdc kermit 5219 Sep 23 2011 [2514]oldfaq.html
-rw-r--r-- 1 fdc kermit 11367 Jul 11 2011 [2515]oldlinks.html
-rw-r--r-- 1 fdc kermit 21922 Sep 23 2011 [2516]oldperf.html
-rw-r--r-- 1 fdc kermit 14102 Sep 23 2011 [2517]omanuals.html
-rw-r--r-- 1 fdc kermit 5241 Jun 24 2010 [2518]omnibus.html
drwxr-xr-x 3 fdc kermit 13 Sep 9 14:12 [2519]onlinebooks/
-rw-r--r-- 1 fdc kermit 2063 Jan 7 2000 [2520]openssl_button.
gif
-rw-r--r-- 1 fdc kermit 239 Jul 1 2011 [2521]openssl_button.
html
-rw-r--r-- 1 fdc kermit 263711 Feb 10 2019 [2522]optimumad3.jpg
-rw-r--r-- 1 fdc kermit 2209 May 20 1999 [2523]original-search
.html
-rw-r--r-- 1 fdc kermit 4031 Sep 23 2011 [2524]os2.html
-rw-r--r-- 1 fdc kermit 4646 Sep 23 2011 [2525]os2beta.html
-rw-r--r-- 1 fdc kermit 1096 Sep 23 2011 [2526]os2bug.html
-rw-r--r-- 1 fdc kermit 2647 Mar 18 1997 [2527]os2computing.ht
ml
-rw-r--r-- 1 fdc kermit 162411 Feb 12 1997 [2528]os2k95-1.gif
-rw-r--r-- 1 fdc kermit 160628 Feb 12 1997 [2529]os2k95-2.gif
-rw-r--r-- 1 fdc kermit 4478 Sep 25 2014 [2530]os2new.html
-rw-r--r-- 1 fdc kermit 3016 Sep 25 2014 [2531]os2order.html
-rw-r--r-- 1 fdc kermit 4596 Sep 23 2011 [2532]os2reviews.html
-rw-r--r-- 1 fdc kermit 286 Sep 23 2011 [2533]os2shots.html
-rw-r--r-- 1 fdc kermit 3098 Sep 23 2011 [2534]os2specs.html
-rw-r--r-- 1 fdc kermit 2839 Sep 25 2014 [2535]other.html
drwxr-xr-x 2 fdc kermit 5 Aug 25 2019 [2536]other/
drwxr-xr-x 2 fdc kermit 117 Mar 3 2018 [2537]oval/
-rw-r--r-- 1 fdc kermit 269031 Sep 10 2017 [2538]oval80letter.jp
g
-rw-r--r-- 1 fdc kermit 29841 Mar 31 2003 [2539]pace-1.html
-rw-r--r-- 1 fdc kermit 36230 Apr 8 2003 [2540]pace-2.html
-rw-r--r-- 1 fdc kermit 42725 Mar 26 2003 [2541]pace.gif
-rw-r--r-- 1 fdc kermit 670 Apr 10 2003 [2542]pace.html
-rw-r--r-- 1 fdc kermit 86414 Apr 7 2003 [2543]pace2.gif
-rw-r--r-- 1 fdc kermit 8877 Mar 31 2003 [2544]pace_sm.gif
-rw-r--r-- 1 fdc kermit 7019 Sep 23 2011 [2545]pagers.html
-rw-r--r-- 1 fdc kermit 19365 Dec 24 1996 [2546]palace.jpg
-rw-r--r-- 1 fdc kermit 48102 Mar 25 2002 [2547]pan.gif
-rw-r--r-- 1 fdc kermit 69076 Mar 28 2002 [2548]pan2.gif
-rw-r--r-- 1 fdc kermit 27191 Mar 28 2002 [2549]pan2_s.gif
-rw-r--r-- 1 fdc kermit 93949 Jun 16 2005 [2550]pan3-sm.jpg
-rw-r--r-- 1 fdc kermit 96419 Jun 2 2002 [2551]pan3.gif
-rw-r--r-- 1 fdc kermit 37440 Jun 2 2002 [2552]pan3_sm.gif
-rw-r--r-- 1 fdc kermit 15682 Mar 25 2002 [2553]pan_7.gif
-rw-r--r-- 1 fdc kermit 20138 Mar 25 2002 [2554]pan_8.gif
-rw-r--r-- 1 fdc kermit 123837 Apr 16 2001 [2555]pano.gif
-rw-r--r-- 1 fdc kermit 85434 Apr 17 2001 [2556]pano2.jpg
-rw-r--r-- 1 fdc kermit 1857 Sep 23 2011 [2557]panorama.html
-rw-r--r-- 1 fdc kermit 2134 Sep 25 2014 [2558]papers.html
-rw-r--r-- 1 fdc kermit 994 Sep 26 2001 [2559]paradigms.html
drwxr-xr-x 2 fdc kermit 10 Jul 31 11:57 [2560]paypal/
drw-r--r-- 2 fdc kermit 2 Mar 23 2017 [2561]pcgi-bin/
-rw-r--r-- 1 fdc kermit 16640 Mar 9 1984 [2562]pckermit.exe
-rw-r--r-- 1 fdc kermit 7610 Sep 23 2011 [2563]pcunix.html
-rw-r--r-- 1 fdc kermit 32038 Nov 2 2013 [2564]pdc.ico
-rw-r--r-- 1 fdc kermit 15094 Sep 25 2014 [2565]pdp10-134.html
-rw-r--r-- 1 fdc kermit 42764 Mar 17 2011 [2566]pdp10-strip1-12
0.jpg
-rw-r--r-- 1 fdc kermit 68555 Mar 17 2011 [2567]pdp10-strip1-16
0.jpg
-rw-r--r-- 1 fdc kermit 20547 Jan 14 2017 [2568]pdp10.html
-rw-r--r-- 1 fdc kermit 18645 Sep 25 2014 [2569]pdp10.html.~1~
-rw-r--r-- 1 fdc kermit 19157 May 1 2015 [2570]pdp10.html.~2~
-rw-r--r-- 1 fdc kermit 19386 Jan 13 2017 [2571]pdp10.html.~3~
-rw-r--r-- 1 fdc kermit 53437 Mar 17 2011 [2572]pdp11-strip1-12
0.jpg
-rw-r--r-- 1 fdc kermit 84120 Mar 17 2011 [2573]pdp11-strip1-16
0.jpg
-rw-r--r-- 1 fdc kermit 22291 Sep 25 2014 [2574]pdp11.html
-rw-r--r-- 1 fdc kermit 488092 Dec 20 2006 [2575]pdp11.txt
drwxr-xr-x 2 fdc kermit 3 Mar 26 2001 [2576]pdp11/
-rw-r--r-- 1 fdc kermit 52912 Sep 18 2013 [2577]pdp1150-r.jpg
-rw-r--r-- 1 fdc kermit 9124 Sep 18 2013 [2578]pdp1150-t.jpg
-rw-r--r-- 1 fdc kermit 1196 Sep 18 2013 [2579]pdp1150.html
-rw-r--r-- 1 fdc kermit 75471 Feb 11 2001 [2580]pdp1150.jpg
-rw-r--r-- 1 fdc kermit 60074 Feb 11 2001 [2581]pdp1170.jpg
-rw-r--r-- 1 fdc kermit 258631 Mar 19 2003 [2582]pdp12-1.gif
-rw-r--r-- 1 fdc kermit 2321166 Mar 19 2003 [2583]pdp12-1.jpg
-rw-r--r-- 1 fdc kermit 263086 Mar 19 2003 [2584]pdp12-2.gif
-rw-r--r-- 1 fdc kermit 2337908 Mar 19 2003 [2585]pdp12-2.jpg
-rw-r--r-- 1 fdc kermit 8629 Sep 25 2014 [2586]pdp12.html
-rw-r--r-- 1 fdc kermit 29141 Jun 1 2003 [2587]pdp12.jpg
-rw-r--r-- 1 fdc kermit 7176 Mar 19 2003 [2588]pdp8-1.jpg
-rw-r--r-- 1 fdc kermit 5547 Mar 19 2003 [2589]pdp8-2.jpg
-rw-r--r-- 1 fdc kermit 6349 Mar 19 2003 [2590]pdp8-3.jpg
-rw-r--r-- 1 fdc kermit 32733 Jun 1 2003 [2591]pdp8-l.jpg
-rw-r--r-- 1 fdc kermit 30971 Mar 17 2011 [2592]pdp8-strip1-120
.jpg
-rw-r--r-- 1 fdc kermit 50493 Mar 17 2011 [2593]pdp8-strip1-160
.jpg
-rw-r--r-- 1 fdc kermit 151502 Mar 17 2011 [2594]pdp8-strip1-300
.jpg
-rw-r--r-- 1 fdc kermit 8629 Sep 25 2014 [2595]pdp8.html
-rw-r--r-- 1 fdc kermit 60881 Mar 19 2003 [2596]pdp8.jpg
-rw-r--r-- 1 fdc kermit 53490 Mar 21 2004 [2597]pdp8m1.jpg
-rw-r--r-- 1 fdc kermit 64581 Mar 21 2004 [2598]pdp8m2.jpg
-rw-r--r-- 1 fdc kermit 55392 Mar 21 2004 [2599]pdp8m3.jpg
-rw-r--r-- 1 fdc kermit 72847 Mar 21 2004 [2600]pdp8m4.jpg
-rw-r--r-- 1 fdc kermit 33936 Mar 21 2004 [2601]pdp8m5.gif
-rw-r--r-- 1 fdc kermit 44461 Mar 21 2004 [2602]pdp8m6.jpg
-rw-r--r-- 1 fdc kermit 30124 May 3 2017 [2603]perf.html
lrwxrwxrwx 1 fdc kermit 3 Nov 2 2013 [2604]peter -> pdc
-rw-r--r-- 1 fdc kermit 21502 Sep 25 2014 [2605]petere.html
-rw-rw---- 1 fdc kermit 94528512 Jul 13 15:10 [2606]pg300.tar
drwxr-xr-x 6 fdc kermit 132 Jul 13 15:37 [2607]pg300/
-rw-r--r-- 1 fdc kermit 97186 Sep 15 17:00 [2608]photogallery.ht
ml
-rw-r--r-- 1 fdc kermit 85889 May 27 2019 [2609]photogallery.ht
ml.1
-rw-r--r-- 1 fdc kermit 86322 May 27 2019 [2610]photogallery.ht
ml.2
-rw-r--r-- 1 fdc kermit 96754 Oct 8 2019 [2611]photogallery.ht
ml.3
-rw-r--r-- 1 fdc kermit 103632 Jan 10 2020 [2612]photogallery.ht
ml.4
-rw-r--r-- 1 fdc kermit 103646 Jan 23 2020 [2613]photogallery.ht
ml.5
-rw-r--r-- 1 fdc kermit 66104 Oct 20 2013 [2614]photogallery.ht
ml.~1~
-rw-r--r-- 1 fdc kermit 66107 Jan 5 2014 [2615]photogallery.ht
ml.~2~
-rw-r--r-- 1 fdc kermit 96785 Jul 13 15:05 [2616]photogallery.ht
ml.~60~
-rw-r--r-- 1 fdc kermit 96787 Sep 4 14:27 [2617]photogallery.ht
ml.~61~
-rw-r--r-- 1 fdc kermit 40365 Sep 4 2013 [2618]photogallery100
.html
drwxr-xr-x 2 fdc kermit 19 Jul 21 2017 [2619]picinfo/
-rw-r--r-- 1 fdc kermit 2803 Nov 12 1998 [2620]plchars.html
drwxr-xr-x 2 fdc kermit 3 Feb 14 2015 [2621]polski/
-rw-r--r-- 1 fdc kermit 1048 Sep 23 2011 [2622]portable.html
-rw-r--r-- 1 fdc kermit 1312 Apr 21 2000 [2623]portugal.gif
-rw-rw-r-- 1 fdc kermit 42091 Jul 30 13:47 [2624]ppindex.html.~1
~
-rw-rw-r-- 1 fdc kermit 41644 Jul 30 16:07 [2625]ppindex.html.~2
~
-rw-r--r-- 1 fdc kermit 1615 Jun 5 2002 [2626]pre-enc-noexpor
t.html
-rw-r--r-- 1 fdc kermit 6182 Aug 25 2019 [2627]proof.html
-rw-r--r-- 1 fdc kermit 384400 Oct 18 2010 [2628]proof.pdf
-rw-r--r-- 1 fdc kermit 3302 May 13 2004 [2629]r.html
-rw-r--r-- 1 fdc kermit 8946 Apr 22 2017 [2630]redhook.html
lrwxrwxrwx 1 fdc kermit 16 Mar 27 2003 [2631]register.html -
> k95download.html
-rw-r--r-- 1 fdc kermit 6746 Sep 25 2014 [2632]register_nokits
.html
-rw-r--r-- 1 fdc kermit 13058 Jan 11 2020 [2633]remind.html
-rw-r--r-- 1 fdc kermit 9156 Feb 25 2014 [2634]remind.html.~1~
-rw-r--r-- 1 fdc kermit 12260 Jan 17 2016 [2635]remind.html.~2~
-rw-r--r-- 1 fdc kermit 12683 Feb 6 2016 [2636]remind.html.~3~
-rw-r--r-- 1 fdc kermit 11492 Jan 17 2016 [2637]remind1.html
-rw-r--r-- 1 fdc kermit 14846 Apr 27 2017 [2638]replacetextbloc
k.html
-rw-r--r-- 1 fdc kermit 9156 Feb 25 2014 [2639]replacetextbloc
k.html.~1~
-rw-r--r-- 1 fdc kermit 12835 Feb 27 2014 [2640]replacetextbloc
k.html.~2~
-rw-r--r-- 1 fdc kermit 14845 Feb 28 2014 [2641]replacetextbloc
k.html.~3~
-rw-r--r-- 1 fdc kermit 14845 Jun 30 2015 [2642]replacetextbloc
k.html.~4~
-rw-r--r-- 1 fdc kermit 2954 Jul 11 2011 [2643]rfc2839a.html
-rw-r--r-- 1 fdc kermit 2281 Jul 14 2000 [2644]rfc2840a.html
-rw-r--r-- 1 fdc kermit 106299 Apr 11 1988 [2645]rfc822.txt
-rw-r--r-- 1 fdc kermit 795 Jun 3 1995 [2646]right-icon-dim.
gif
-rw-r--r-- 1 fdc kermit 1028 Jun 3 1995 [2647]right-icon.gif
-rw-r--r-- 1 fdc kermit 44566 Dec 7 2002 [2648]river.jpg
-rw-r--r-- 1 fdc kermit 6430 Aug 17 1997 [2649]rms.html
-rw-r--r-- 1 fdc kermit 121 Feb 25 2018 [2650]robots.txt
-rw-r--r-- 1 fdc kermit 121 Mar 23 2017 [2651]robots.txt.~1~
-rw-r--r-- 1 fdc kermit 2302 Sep 23 2011 [2652]rpm.html
-rw-r--r-- 1 fdc kermit 969370 Apr 29 2002 [2653]russian.jpg
-rw-r--r-- 1 fdc kermit 7624 Sep 23 2011 [2654]s2.html
-rw-r--r-- 1 fdc kermit 56275 Sep 25 2014 [2655]safe.html
drwxr-xr-x 2 fdc kermit 16 Sep 23 2011 [2656]sanskrit/
drwxr-xr-x 2 fdc kermit 179 Aug 25 2019 [2657]save/
-rw-r--r-- 1 fdc kermit 3335 Sep 27 2011 [2658]scriptlib.html
-rw-r--r-- 1 fdc kermit 2381 Feb 17 2016 [2659]scriptlicense.h
tml
-rw-r--r-- 1 fdc kermit 2367 Aug 17 2013 [2660]scriptlicense.h
tml.~1~
-rw-r--r-- 1 fdc kermit 31993 Sep 23 2011 [2661]scriptref.html
lrwxrwxrwx 1 fdc kermit 14 Sep 27 2011 [2662]scripts.html ->
ckscripts.html
-rw-r--r-- 1 fdc kermit 17191 Jul 11 2011 [2663]scroll.html
-rw-r--r-- 1 fdc kermit 3313 Sep 23 2011 [2664]sdk.html
-rw-r--r-- 1 fdc kermit 2039 Oct 20 2005 [2665]search.html
-rw-r--r-- 1 fdc kermit 14925 Jan 26 2020 [2666]secure.html
-rw-r--r-- 1 fdc kermit 12487 Dec 30 2019 [2667]secure.html.bac
kup
-rw-r--r-- 1 fdc kermit 300936 May 12 2017 [2668]security.html
-rw-r--r-- 1 fdc kermit 300546 Sep 25 2014 [2669]security.html.~
1~
-rw-r--r-- 1 fdc kermit 300907 Apr 27 2017 [2670]security.html.~
2~
-rw-r--r-- 1 fdc kermit 1015 Dec 6 1994 [2671]shield.gif
-rw-r--r-- 1 fdc kermit 3029 Sep 23 2011 [2672]shipping.html
-rw-r--r-- 1 fdc kermit 9032 Apr 17 2000 [2673]shippinghtml.ol
d
-rw-r--r-- 1 fdc kermit 426 Apr 16 1996 [2674]shots.html
-rw-r--r-- 1 fdc kermit 1422 Jul 23 1999 [2675]siia.gif
-rw-r--r-- 1 fdc kermit 2160 Jul 23 1999 [2676]siia2.gif
-rw-r--r-- 1 fdc kermit 1093 Jul 23 1999 [2677]siia3.gif
-rw-r--r-- 1 fdc kermit 2529 Feb 17 2000 [2678]siia4.gif
-rw-r--r-- 1 fdc kermit 2338 Jul 23 1999 [2679]siiatext.gif
-rw-r--r-- 1 fdc kermit 4605 Jan 15 1996 [2680]site.idx
-rw-r--r-- 1 fdc kermit 13300 Sep 17 01:24 [2681]sitemap.ante
-rw-r--r-- 1 fdc kermit 13300 Sep 18 07:23 [2682]sitemap.ayer
-rw-r--r-- 1 fdc kermit 12653 Apr 1 2019 [2683]sitemap.save
-rw-r--r-- 1 fdc kermit 13300 Sep 19 07:31 [2684]sitemap.xml
-rw-r--r-- 1 fdc kermit 26257 Sep 23 2011 [2685]skermit.html
-rw-r--r-- 1 fdc kermit 641750 Mar 25 2002 [2686]sni02.jpg
-rw-r--r-- 1 fdc kermit 63552 Apr 1 2002 [2687]sni03.jpg
-rw-r--r-- 1 fdc kermit 2832 Mar 25 2002 [2688]sni2_05.jpg
-rw-r--r-- 1 fdc kermit 3148 Mar 25 2002 [2689]sni_05.jpg
-rw-r--r-- 1 fdc kermit 2377 Feb 28 2003 [2690]softchoice.gif
-rw-r--r-- 1 fdc kermit 16877 Mar 20 2016 [2691]sorttable.js
-rw-r--r-- 1 fdc kermit 5269 Dec 30 1995 [2692]spa.gif
-rw-r--r-- 1 fdc kermit 2928 Jan 2 1996 [2693]spa_sml.gif
-rw-r--r-- 1 fdc kermit 1930 Sep 23 2011 [2694]ssh.html
lrwxrwx--- 1 fdc kermit 14 Feb 25 2018 [2695]sshclien.html -
> sshclient.html
-rw-r--r-- 1 fdc kermit 65233 Oct 15 2010 [2696]sshclient-be.ht
m
-rw-r--r-- 1 fdc kermit 65382 Sep 23 2011 [2697]sshclient-be.ht
ml
-rw-r--r-- 1 fdc kermit 44129 Mar 27 2019 [2698]sshclient.html
-rw-r--r-- 1 fdc kermit 42505 Sep 27 2011 [2699]sshclient.html.
~1~
-rw-r--r-- 1 fdc kermit 43733 Apr 11 2014 [2700]sshclient.html.
~2~
-rw-r--r-- 1 fdc kermit 43838 Feb 14 2015 [2701]sshclient.html.
~3~
-rw-r--r-- 1 fdc kermit 44128 Feb 15 2019 [2702]sshclient.html.
~4~
-rw-r--r-- 1 fdc kermit 42449 Oct 15 2010 [2703]sshclient.utf8
-rw-r--r-- 1 fdc kermit 10710 Aug 12 2002 [2704]st-erkenwald.gi
f
-rw-r--r-- 1 fdc kermit 9272 Sep 25 2014 [2705]st-erkenwald.ht
ml
-rw-r--r-- 1 fdc kermit 8120 Sep 25 2014 [2706]standards.html
drwxr-xr-x 2 fdc kermit 5 Feb 25 2020 [2707]stats/
-rw-r--r-- 1 fdc kermit 1060 Jul 9 2002 [2708]stgeorge.gif
-rw-r--r-- 1 fdc kermit 114122 Sep 22 2003 [2709]sts.jpg
-rw-r--r-- 1 fdc kermit 2611 Sep 23 2011 [2710]studies.html
-rw-r--r-- 1 fdc kermit 53514 Apr 29 2011 [2711]superbrain-2011
-280.jpg
-rw-r--r-- 1 fdc kermit 128282 Apr 29 2011 [2712]superbrain-2011
-740.jpg
-rw-r--r-- 1 fdc kermit 950 Apr 29 2011 [2713]superbrain-2011
.html
-rw-r--r-- 1 fdc kermit 906858 Apr 29 2011 [2714]superbrain-2011
.jpg
-rw-r--r-- 1 fdc kermit 36157 Jun 17 2017 [2715]superbrain03-28
0.jpg
-rw-r--r-- 1 fdc kermit 63100 Jul 15 2011 [2716]superbrain03-74
0.jpg
-rw-r--r-- 1 fdc kermit 25592 Sep 25 2014 [2717]support.html
-rw-r--r-- 1 fdc kermit 17088 Dec 9 1994 [2718]surface.gif
-rw-r--r-- 1 fdc kermit 2191 Dec 9 1994 [2719]surface_i.gif
drwxr-xr-x 2 fdc kermit 3 Sep 23 2011 [2720]survey/
-rw-r--r-- 1 fdc kermit 1286 Apr 30 2017 [2721]t2.html
-rw-r--r-- 1 fdc kermit 237 Sep 8 2013 [2722]tail.html
-rw-r--r-- 1 fdc kermit 230 Sep 8 2013 [2723]tail2.html
-rw-r--r-- 1 fdc kermit 63095 Aug 1 2019 [2724]telnet.html
-rw-r--r-- 1 fdc kermit 63082 Sep 27 2011 [2725]telnet.html.~1~
lrwxrwxrwx 1 fdc kermit 11 Sep 27 2011 [2726]telnet70.html -
> telnet.html
lrwxrwxrwx 1 fdc kermit 11 Sep 27 2011 [2727]telnet80.html -
> telnet.html
-rw-r--r-- 1 fdc kermit 3482 Sep 23 2011 [2728]telnetd.html
-rw-r--r-- 1 fdc kermit 4671 Jul 31 2019 [2729]template.html
-rw-r--r-- 1 fdc kermit 4080 Jul 27 2019 [2730]template.html.~
1~
-rw-r--r-- 1 fdc kermit 4348 Jul 27 2019 [2731]template.html.~
2~
-rw-r--r-- 1 fdc kermit 4330 Jul 27 2019 [2732]template.html.~
3~
-rw-r--r-- 1 fdc kermit 4646 Jul 29 2019 [2733]template.html.~
4~
-rw-r--r-- 1 fdc kermit 36987 Mar 15 2011 [2734]terminal-strip-
100.jpg
-rw-r--r-- 1 fdc kermit 49486 Mar 15 2011 [2735]terminal-strip-
120.jpg
-rw-r--r-- 1 fdc kermit 25446 Mar 15 2011 [2736]terminal-strip-
80.jpg
-rw-r--r-- 1 fdc kermit 23515 Mar 15 2011 [2737]terminal-strip2
-120.jpg
-rw-r--r-- 1 fdc kermit 42469 Mar 15 2011 [2738]terminal-strip3
-120.jpg
-rw-r--r-- 1 fdc kermit 9652 Jan 3 2020 [2739]terminals.html
-rw-r--r-- 1 fdc kermit 9534 Sep 23 2011 [2740]terminals.html.
~1~
-rw-r--r-- 1 fdc kermit 9387 Feb 21 2014 [2741]terminals.html.
~2~
-rw-r--r-- 1 fdc kermit 14354 Mar 25 2002 [2742]terminals.jpg
-rw-r--r-- 1 fdc kermit 13972 Mar 25 2002 [2743]terms2.jpg
-rw-r--r-- 1 fdc kermit 15647 Mar 25 2002 [2744]terms3.jpg
-rw-r--r-- 1 fdc kermit 12901 Jul 11 2011 [2745]termtype.html
-rw-r--r-- 1 fdc kermit 9505 Nov 19 2009 [2746]test.gif
-rw-r--r-- 1 fdc kermit 142 Mar 20 2002 [2747]test.html
drwxr-xr-x 2 fdc kermit 2 Sep 23 2011 [2748]test/
-rw-r--r-- 1 fdc kermit 25029 Jul 3 2000 [2749]test1.jpg
-rw-r--r-- 1 fdc kermit 9534 Nov 19 2009 [2750]test2.gif
-rw-r--r-- 1 fdc kermit 9355 Nov 19 2009 [2751]test3.gif
-rw-r--r-- 1 fdc kermit 9346 Nov 19 2009 [2752]test4.gif
-rw-r--r-- 1 fdc kermit 9340 Nov 19 2009 [2753]test5.gif
-rw-r--r-- 1 fdc kermit 9307 Nov 19 2009 [2754]test6.gif
-rw-r--r-- 1 fdc kermit 3154 Feb 23 2009 [2755]testing.html
drwxr-xr-x 2 fdc kermit 2 Mar 2 2018 [2756]testing/
-rw-r--r-- 1 fdc kermit 10407 Dec 12 1994 [2757]texmap.gif
-rw-r--r-- 1 fdc kermit 1486 Dec 12 1994 [2758]texmap_i.gif
-rw-r--r-- 1 fdc kermit 33414 Apr 20 12:37 [2759]timeline.html
-rw-r--r-- 1 fdc kermit 32897 Aug 25 2019 [2760]timeline.html.~
1~
drwxr-xr-x 2 fdc kermit 18 Jan 16 2020 [2761]tmp/
drwxr-xr-x 3 fdc kermit 87 Jan 28 2020 [2762]tmp2/
drwxr-xr-x 3 fdc kermit 19 Feb 1 2020 [2763]tmp3/
drwxr-xr-x 2 fdc kermit 3 Oct 20 2013 [2764]tmp4/
drwxr-xr-x 2 fdc kermit 950 Jan 31 2020 [2765]tmp5/
drwxr-xr-x 2 fdc kermit 2 Jul 19 2011 [2766]tmp9/
-rw-r--r-- 1 fdc kermit 62219 Sep 14 2010 [2767]toys.jpg
-rw-rw-r-- 1 fdc kermit 9466 Feb 7 2019 [2768]tr.html.~1~
-rw-r--r-- 1 fdc kermit 22060 Jun 21 2000 [2769]train02.jpg
-rw-r--r-- 1 fdc kermit 40081 Jul 25 12:54 [2770]translations.ht
ml
-rw-r--r-- 1 fdc kermit 9140 Feb 6 2019 [2771]translations.ht
ml-backup
-rw-r--r-- 1 fdc kermit 8656 Feb 6 2019 [2772]translations.ht
ml.1
-rw-r--r-- 1 fdc kermit 25113 Apr 18 2019 [2773]translations.ht
ml.2
-rw-r--r-- 1 fdc kermit 32158 Aug 4 2019 [2774]translations.ht
ml.3
-rw-rw---- 1 fdc kermit 1551 Jan 31 2019 [2775]translations.ht
ml.~1~
-rw-r--r-- 1 fdc kermit 6616 Jan 31 2019 [2776]translations.ht
ml.~2~
-rw-r--r-- 1 fdc kermit 39813 Jul 14 12:18 [2777]translations.ht
ml.~92~
-rw-r--r-- 1 fdc kermit 39892 Jul 22 16:35 [2778]translations.ht
ml.~93~
-rwxrwx--- 1 fdc kermit 809 Dec 24 2019 [2779]translations.ks
c
-rw-rw---- 1 fdc kermit 474 Aug 21 2019 [2780]translations.ks
c.~1~
-rwxrwx--- 1 fdc kermit 777 Aug 21 2019 [2781]translations.ks
c.~2~
-rw-r--r-- 1 fdc kermit 71982 Dec 7 2002 [2782]ts1.jpg
-rw-r--r-- 1 fdc kermit 79036 Dec 7 2002 [2783]ts3.jpg
-rw-r--r-- 1 fdc kermit 67007 Dec 7 2002 [2784]ts4.jpg
-rw-r--r-- 1 fdc kermit 27557 Sep 27 2011 [2785]tsreviews.html
-rw-rw-r-- 1 fdc kermit 41616 Sep 14 15:25 [2786]tt.html.~1~
-rw-r--r-- 1 fdc kermit 10309 Feb 20 2006 [2787]ttype.jpg
-rw-r--r-- 1 fdc kermit 18997 Feb 25 1996 [2788]tu_cows.gif
-rw-r--r-- 1 fdc kermit 6241 Jan 15 1996 [2789]tu_cows.old.gif
-rw-r--r-- 1 fdc kermit 1666 Jan 12 1996 [2790]tucows.gif
-rw-r--r-- 1 fdc kermit 77160 Jan 15 1996 [2791]tucowsreview.gi
f
-rw-rw---- 1 fdc kermit 24557 Mar 27 2019 [2792]tx.html
-rw-r--r-- 1 fdc kermit 41650 Jan 31 2020 [2793]uckindex.html
-rw-r--r-- 1 fdc kermit 28491 Jul 27 2019 [2794]uckindex.html.1
-rw-r--r-- 1 fdc kermit 30590 Jul 27 2019 [2795]uckindex.html.2
-rw-r--r-- 1 fdc kermit 41318 Aug 17 2019 [2796]uckindex.html.~
10~
-rw-r--r-- 1 fdc kermit 41332 Aug 19 2019 [2797]uckindex.html.~
11~
-rw-r--r-- 1 fdc kermit 5567 Jul 27 2019 [2798]uckindex.html.~
1~
-rw-r--r-- 1 fdc kermit 30695 Jul 27 2019 [2799]uckindex.html.~
2~
-rw-r--r-- 1 fdc kermit 19998 Jan 6 2002 [2800]ucompose.gif
-rw-r--r-- 1 fdc kermit 1677446 Mar 3 2002 [2801]ucs2.html
-rw-r--r-- 1 fdc kermit 18259 May 14 2000 [2802]ucsterm.html
-rw-r--r-- 1 fdc kermit 2382 Jul 11 2011 [2803]ugui.html
-rw-r--r-- 1 fdc kermit 73719 Sep 25 2014 [2804]uiksd.html
-rw-r--r-- 1 fdc kermit 5438 Apr 9 2003 [2805]uk-postcodes.tx
t
-rw-r--r-- 1 fdc kermit 11871 Jul 8 2011 [2806]ukcounties.html
-rw-r--r-- 1 fdc kermit 12675 Mar 9 2016 [2807]ulinks.html
-rw-r--r-- 1 fdc kermit 12535 Jan 6 2012 [2808]ulinks.html.~1~
-rw-r--r-- 1 fdc kermit 2042 Jan 15 2000 [2809]unicode.gif
lrwxrwxrwx 1 fdc kermit 11 Mar 27 2003 [2810]unicode.html ->
case08.html
-rw-r--r-- 1 fdc kermit 1437 Sep 23 2011 [2811]uniform.html
drwxr-xr-x 2 fdc kermit 2 Mar 26 2001 [2812]unigroup/
-rw-r--r-- 1 fdc kermit 12458 Jan 29 2016 [2813]unix.html
-rw-r--r-- 1 fdc kermit 12368 Sep 8 2013 [2814]unix.html.~1~
-rw-r--r-- 1 fdc kermit 12458 Jan 28 2016 [2815]unix.html.~2~
-rw-r--r-- 1 fdc kermit 23478 Mar 27 2002 [2816]url.gif
-rw-r--r-- 1 fdc kermit 5609 Mar 27 2002 [2817]url_sm.gif
-rw-r--r-- 1 fdc kermit 414 Dec 6 1994 [2818]usa-construct.g
if
-rw-r--r-- 1 fdc kermit 5026 Feb 28 1996 [2819]ushield50.gif
-rw-r--r-- 1 fdc kermit 12782 May 4 10:55 [2820]usingckermit.ht
ml
-rw-r--r-- 1 fdc kermit 12608 Nov 29 2019 [2821]usingckermit.ht
ml.~10~
-rw-r--r-- 1 fdc kermit 11113 Sep 27 2011 [2822]usingckermit.ht
ml.~1~
-rw-r--r-- 1 fdc kermit 11270 Dec 24 2013 [2823]usingckermit.ht
ml.~2~
-rw-r--r-- 1 fdc kermit 12600 Aug 25 2019 [2824]usingckermit.ht
ml.~9~
-rw-r--r-- 1 fdc kermit 30599 Feb 10 2016 [2825]usingmackermit-
99.jpg
-rw-r--r-- 1 fdc kermit 75383 Feb 10 2016 [2826]usingmackermit.
jpg
-rw-r--r-- 1 fdc kermit 7885182 Apr 5 2011 [2827]usingmackermit.
pdf
-rw-r--r-- 1 fdc kermit 873017 Nov 29 2008 [2828]ussr.gif
-rw-r--r-- 1 fdc kermit 401780 Sep 25 2014 [2829]utf8-t0.html
-rw-r--r-- 1 fdc kermit 424385 Sep 25 2014 [2830]utf8-t1-hexonly
.html
-rw-r--r-- 1 fdc kermit 582629 Sep 25 2014 [2831]utf8-t1.html
-rw-r--r-- 1 fdc kermit 1678007 Mar 21 2003 [2832]utf8-table.html
-rw-r--r-- 1 fdc kermit 60115 Feb 15 2019 [2833]utf8.html
-rw-r--r-- 1 fdc kermit 60224 Jan 31 2017 [2834]utf8.html.backu
p
-rw-r--r-- 1 fdc kermit 60551 Apr 12 2017 [2835]utf8.html.~11~
-rw-r--r-- 1 fdc kermit 60628 Mar 9 2018 [2836]utf8.html.~12~
-rw-r--r-- 1 fdc kermit 57982 Sep 23 2011 [2837]utf8.html.~1~
-rw-r--r-- 1 fdc kermit 58940 Dec 26 2015 [2838]utf8.html.~2~
-rw-r--r-- 1 fdc kermit 19330 Sep 23 2011 [2839]utf8_unnumbered
.html
-rw-r--r-- 1 fdc kermit 2839 Sep 25 2014 [2840]utils.html
-rw-r--r-- 1 fdc kermit 9107 Sep 23 2011 [2841]uucp.html
-rw-r--r-- 1 fdc kermit 488942 Sep 6 2017 [2842]uuu
-rw-r--r-- 1 fdc kermit 119 Jan 16 2017 [2843]uzbek.utf8.txt
-rw-r--r-- 1 fdc kermit 101888 Jul 1 2011 [2844]vax_11-750.jpg
-rw-r--r-- 1 fdc kermit 9184 Apr 4 1996 [2845]vcheck.gif
-rw-r--r-- 1 fdc kermit 2716 Sep 23 2011 [2846]vendor.html
-rw-r--r-- 1 fdc kermit 2716 Sep 23 2011 [2847]vinfo.html
-rw-r--r-- 1 fdc kermit 1490 Jan 9 1996 [2848]visa.gif
-rw-r--r-- 1 fdc kermit 13086 Mar 27 2002 [2849]vm3270.gif
-rw-r--r-- 1 fdc kermit 3247 Mar 27 2002 [2850]vm3270sm.gif
-rw-r--r-- 1 fdc kermit 1263 Sep 23 2011 [2851]vms_old.html
-rw-r--r-- 1 fdc kermit 104207 Dec 18 2003 [2852]vt100-keyboard-
700.jpg
-rw-r--r-- 1 fdc kermit 636 Sep 23 2011 [2853]vt100-keyboard.
html
-rw-r--r-- 1 fdc kermit 239204 Dec 18 2003 [2854]vt100-keyboard.
jpg
-rw-r--r-- 1 fdc kermit 44465 Dec 18 2003 [2855]vt320-fkeys-300
.jpg
-rw-r--r-- 1 fdc kermit 150432 Dec 18 2003 [2856]vt320-fkeys-700
.jpg
-rw-r--r-- 1 fdc kermit 501603 Dec 18 2003 [2857]vt320-fkeys.jpg
-rw-r--r-- 1 fdc kermit 153126 Dec 18 2003 [2858]vt320-keyboard-
700.jpg
-rw-r--r-- 1 fdc kermit 298 Nov 27 2006 [2859]vt320-keyboard.
html
-rw-r--r-- 1 fdc kermit 579589 Dec 18 2003 [2860]vt320-keyboard.
jpg
-rw-r--r-- 1 fdc kermit 33510 Dec 18 2003 [2861]vt320-keypads-3
00.jpg
-rw-r--r-- 1 fdc kermit 110540 Dec 18 2003 [2862]vt320-keypads-7
00.jpg
-rw-r--r-- 1 fdc kermit 251609 Dec 18 2003 [2863]vt320-keypads.j
pg
-rw-r--r-- 1 fdc kermit 646987 Mar 24 2002 [2864]vt520_02.jpg
-rw-r--r-- 1 fdc kermit 45964 Apr 1 2002 [2865]vt520_03.jpg
-rw-r--r-- 1 fdc kermit 3275 Mar 25 2002 [2866]vt520_05.jpg
-rw-r--r-- 1 fdc kermit 5917 Sep 23 2011 [2867]vtscore.html
-rw-r--r-- 1 fdc kermit 7373 Sep 25 2014 [2868]vttest.html
-rw-r--r-- 1 fdc kermit 221887 Feb 13 2018 [2869]wavesgallery.jp
g
-rw-r--r-- 1 fdc kermit 55837 Jun 17 2017 [2870]wbc3-280.jpg
-rw-r--r-- 1 fdc kermit 52944 Jan 27 2001 [2871]wbc3.jpg
-rw-r--r-- 1 fdc kermit 17616 Aug 25 2019 [2872]weblog.html
-rw-r--r-- 1 fdc kermit 17609 Sep 3 2013 [2873]weblog.html.~1~
-rw-r--r-- 1 fdc kermit 532 Jan 14 1996 [2874]welcome.gif
-rw-r--r-- 1 fdc kermit 27609 Mar 2 2010 [2875]whatfor.html
lrwxrwx--- 1 fdc kermit 13 Apr 21 2019 [2876]whatsnew.html -
> timeline.html
-rw-r--r-- 1 fdc kermit 25822 Oct 30 2013 [2877]whatsnew.html.~
1~
-rw-r--r-- 1 fdc kermit 25906 Nov 24 2013 [2878]whatsnew.html.~
2~
-rw-r--r-- 1 fdc kermit 32922 Mar 13 2018 [2879]whatsnew.html.~
34~
-rw-r--r-- 1 fdc kermit 32926 Mar 16 2019 [2880]whatsnew.html.~
35~
-rw-r--r-- 1 fdc kermit 13657 Mar 27 2002 [2881]white.gif
-rw-r--r-- 1 fdc kermit 3216 Mar 27 2002 [2882]white_sm.gif
-rw-r--r-- 1 fdc kermit 4278 Jul 11 2011 [2883]wiksd.html
-rw-r--r-- 1 fdc kermit 86651 Sep 27 2011 [2884]wiksdadm.html
-rw-r--r-- 1 fdc kermit 51112 Jul 11 2011 [2885]wiksduser.html
-rw-r--r-- 1 fdc kermit 5400 Sep 25 2014 [2886]winmodem.html
lrwxrwxrwx 1 fdc kermit 13 Mar 27 2003 [2887]winmodems.html
-> winmodem.html
-rw-r--r-- 1 fdc kermit 20555 Apr 28 2010 [2888]winsshclients.h
tml
-rw-r--r-- 1 fdc kermit 79676 Jun 6 2014 [2889]wpa.jpg
-rw-r--r-- 1 fdc kermit 4119 Jun 7 2014 [2890]wpa2-100.jpg
-rw-r--r-- 1 fdc kermit 140228 Jun 7 2014 [2891]wpa2.jpg
-rw-r--r-- 1 fdc kermit 3408 Mar 25 2002 [2892]wyse_05.jpg
-rw-r--r-- 1 fdc kermit 88704 Jan 12 2003 [2893]x.gif
-rw-r--r-- 1 fdc kermit 2198 Jun 20 2017 [2894]x.htaccess
-rw-r--r-- 1 fdc kermit 0 Sep 6 2017 [2895]x.html
-rw-r--r-- 1 fdc kermit 16508 Feb 18 2015 [2896]x.html.~1~
-rw-r--r-- 1 fdc kermit 16 Sep 6 2017 [2897]x.~1~
-rw-r--r-- 1 fdc kermit 37067 Sep 4 1995 [2898]x1.gif
-rw-r--r-- 1 fdc kermit 45725 Sep 5 1995 [2899]x10.gif
-rw-r--r-- 1 fdc kermit 44912 Sep 5 1995 [2900]x11.gif
-rw-r--r-- 1 fdc kermit 43756 Sep 5 1995 [2901]x12.gif
-rw-r--r-- 1 fdc kermit 41413 Sep 5 1995 [2902]x13.gif
-rw-r--r-- 1 fdc kermit 45911 Sep 5 1995 [2903]x14.gif
-rw-r--r-- 1 fdc kermit 41930 Sep 5 1995 [2904]x15.gif
-rw-r--r-- 1 fdc kermit 42463 Sep 4 1995 [2905]x2.gif
-rw-r--r-- 1 fdc kermit 43164 Sep 5 1995 [2906]x20.gif
-rw-r--r-- 1 fdc kermit 43164 Sep 5 1995 [2907]x21.gif
-rw-r--r-- 1 fdc kermit 41524 Sep 5 1995 [2908]x22.gif
-rw-r--r-- 1 fdc kermit 42834 Sep 5 1995 [2909]x23.gif
-rw-r--r-- 1 fdc kermit 42306 Sep 5 1995 [2910]x24.gif
-rw-r--r-- 1 fdc kermit 42903 Sep 5 1995 [2911]x25.gif
-rw-r--r-- 1 fdc kermit 40641 Sep 4 1995 [2912]x3.gif
-rw-r--r-- 1 fdc kermit 41129 Sep 4 1995 [2913]x4.gif
-rw-r--r-- 1 fdc kermit 42116 Sep 4 1995 [2914]x5.gif
-rw-r--r-- 1 fdc kermit 41065 Sep 4 1995 [2915]x6.gif
-rw-r--r-- 1 fdc kermit 45095 Sep 5 1995 [2916]x7.gif
-rw-r--r-- 1 fdc kermit 41001 Sep 5 1995 [2917]x8.gif
-rw-r--r-- 1 fdc kermit 44177 Sep 5 1995 [2918]x9.gif
-rw-r--r-- 1 fdc kermit 259 Apr 19 2019 [2919]xbg
-rw-r--r-- 1 fdc kermit 124 Apr 19 2019 [2920]xbg.~1~
-rw-r--r-- 1 fdc kermit 406043 Apr 14 2014 [2921]xbronx403.jpg
-rw-r--r-- 1 fdc kermit 294696 Apr 14 2014 [2922]xbronx408.jpg
-rw-r--r-- 1 fdc kermit 228746 Sep 25 2013 [2923]xbronx55.jpg
-rw-r--r-- 1 fdc kermit 5210 Jun 3 2002 [2924]xcrown70.gif
-rw-r--r-- 1 fdc kermit 5229 Nov 19 2009 [2925]xcrown74-lb.gif
-rw-r--r-- 1 fdc kermit 9305 Nov 19 2009 [2926]xcrownico-lb.gi
f
-rw-r--r-- 1 fdc kermit 9379 May 31 2002 [2927]xcrownico.gif
-rw-r--r-- 1 fdc kermit 837 Sep 23 2011 [2928]xiksd.html
-rw-r--r-- 1 fdc kermit 11061 Sep 25 2014 [2929]xphotoalbum.htm
l
-rw-r--r-- 1 fdc kermit 1504 Oct 20 2005 [2930]xsearch.html
-rw-r--r-- 1 fdc kermit 51935 Sep 23 2011 [2931]xutf8.html
-rw-r--r-- 1 fdc kermit 8730 Sep 23 2011 [2932]xx.html
-rw-r--r-- 1 fdc kermit 1605 Oct 20 2005 [2933]xxsearch.html
-rw-r--r-- 1 fdc kermit 24576 Oct 20 2000 [2934]xxu
-rw-r--r-- 1 fdc kermit 6042 Oct 20 2000 [2935]xxu.c
-rw-r--r-- 1 fdc kermit 46301 May 28 2017 [2936]xxx.html
-rw-r--r-- 1 fdc kermit 17551 Mar 26 2002 [2937]xyzcorp.gif
-rw-r--r-- 1 fdc kermit 99 Nov 18 2016 [2938]y
-rw-r--r-- 1 fdc kermit 1160 May 1 2017 [2939]y.html
-rw-r--r-- 1 fdc kermit 38615 Sep 4 1995 [2940]y1.gif
-rw-r--r-- 1 fdc kermit 43867 Sep 4 1995 [2941]y2.gif
-rw-r--r-- 1 fdc kermit 1232 Apr 30 2017 [2942]y2.html
-rw-r--r-- 1 fdc kermit 41680 Sep 4 1995 [2943]y3.gif
-rw-r--r-- 1 fdc kermit 6624 Sep 23 2011 [2944]year2000.html
-rw-r--r-- 1 fdc kermit 32 May 1 2000 [2945]yoruba.txt
-rw-rw-r-- 1 fdc kermit 0 Aug 24 2019 [2946]yyy
References
1. file:///net/u/1/f/fdc/web/%23bronx24.txt%23
2. file:///net/u/1/f/fdc/web/%23bronx495.txt%23
3. file:///net/u/1/f/fdc/web/%23change.html%23
4. file:///net/u/1/f/fdc/web/%23ftpclient-es.html%23
5. file:///net/u/1/f/fdc/web/%23index-es.html%23
6. file:///net/u/1/f/fdc/web/%23kermit.css%23
7. file:///net/u/1/f/fdc/web/%23kermit.html%23
8. file:///net/u/1/f/fdc/web/%23perf.html%23
9. file:///net/u/1/f/fdc/web/%23sitemap.xml%23
10. file:///net/u/1/f/fdc/web/0000.log
11. file:///net/u/1/f/fdc/web/10847.PDF
12. file:///net/u/1/f/fdc/web/1170.jpg
13. file:///net/u/1/f/fdc/web/123.html
14. file:///net/u/1/f/fdc/web/19880526%2000%3A00%3A00
15. file:///net/u/1/f/fdc/web/19960822%2000%3A00%3A00
16. file:///net/u/1/f/fdc/web/206
17. file:///net/u/1/f/fdc/web/208
18. file:///net/u/1/f/fdc/web/412.txt
19. file:///net/u/1/f/fdc/web/412.txt.%7E1%7E
20. file:///net/u/1/f/fdc/web/480.jpg
21. file:///net/u/1/f/fdc/web/5cows.gif
22. file:///net/u/1/f/fdc/web/5rate.gif
23. file:///net/u/1/f/fdc/web/5ratelg.gif
24. file:///net/u/1/f/fdc/web/5ratesm.gif
25. file:///net/u/1/f/fdc/web/5star.gif
26. file:///net/u/1/f/fdc/web/AAVSYS.TXT
27. file:///net/u/1/f/fdc/web/BOOK.HTM
28. file:///net/u/1/f/fdc/web/COPYING.TXT
29. file:///net/u/1/f/fdc/web/ChangeEmail.sh
30. file:///net/u/1/f/fdc/web/ChangeSupport.sh
31. file:///net/u/1/f/fdc/web/ChangeURL.sh
32. file:///net/u/1/f/fdc/web/Cincinnati-Flat-Rolls-vs-Kermit.pdf
33. file:///net/u/1/f/fdc/web/IMAGES
34. file:///net/u/1/f/fdc/web/KermitComm.pdf
35. file:///net/u/1/f/fdc/web/NOTES.html
36. file:///net/u/1/f/fdc/web/TRCFrances245_N5.jpg
37. file:///net/u/1/f/fdc/web/aavsys.txt
38. file:///net/u/1/f/fdc/web/aaxcom.html
39. file:///net/u/1/f/fdc/web/aaxfly.html
40. file:///net/u/1/f/fdc/web/aaxfly.txt
41. file:///net/u/1/f/fdc/web/about-da.pdf
42. file:///net/u/1/f/fdc/web/about.html
43. file:///net/u/1/f/fdc/web/ac2_i.gif
44. file:///net/u/1/f/fdc/web/ac2_i2.gif
45. file:///net/u/1/f/fdc/web/ac5_i.gif
46. file:///net/u/1/f/fdc/web/ac5_i2.gif
47. file:///net/u/1/f/fdc/web/academic.html
48. file:///net/u/1/f/fdc/web/accents.html
49. file:///net/u/1/f/fdc/web/accents.html.%7E1%7E
50. file:///net/u/1/f/fdc/web/accents.save
51. file:///net/u/1/f/fdc/web/addme.html
52. file:///net/u/1/f/fdc/web/advanced.html
53. file:///net/u/1/f/fdc/web/aleph-sm.gif
54. file:///net/u/1/f/fdc/web/aleph.gif
55. file:///net/u/1/f/fdc/web/aleph_sm.gif
56. file:///net/u/1/f/fdc/web/amazon.html
57. file:///net/u/1/f/fdc/web/annex-a-75.gif
58. file:///net/u/1/f/fdc/web/anniversary.html
59. file:///net/u/1/f/fdc/web/announce.html
60. file:///net/u/1/f/fdc/web/announce01.html
61. file:///net/u/1/f/fdc/web/any.gif
62. file:///net/u/1/f/fdc/web/api.html
63. file:///net/u/1/f/fdc/web/appleii.html
64. file:///net/u/1/f/fdc/web/arabic.html
65. file:///net/u/1/f/fdc/web/archive.html
66. file:///net/u/1/f/fdc/web/archive.html.%7E10%7E
67. file:///net/u/1/f/fdc/web/archive.html.%7E1%7E
68. file:///net/u/1/f/fdc/web/archive.html.%7E2%7E
69. file:///net/u/1/f/fdc/web/archive.html.%7E9%7E
70. file:///net/u/1/f/fdc/web/arrowkeys.html
71. file:///net/u/1/f/fdc/web/asap.html
72. file:///net/u/1/f/fdc/web/ascii.html
73. file:///net/u/1/f/fdc/web/authnet.cfg
74. file:///net/u/1/f/fdc/web/authnet.cgi
75. file:///net/u/1/f/fdc/web/b
76. file:///net/u/1/f/fdc/web/b.html
77. file:///net/u/1/f/fdc/web/backspace-100.jpg
78. file:///net/u/1/f/fdc/web/backspace-140.jpg
79. file:///net/u/1/f/fdc/web/backspace.html
80. file:///net/u/1/f/fdc/web/backspace.html.%7E1%7E
81. file:///net/u/1/f/fdc/web/backspace.html.%7E2%7E
82. file:///net/u/1/f/fdc/web/backup.ksc
83. file:///net/u/1/f/fdc/web/backup.ksc.%7E1%7E
84. file:///net/u/1/f/fdc/web/backup.ksc.%7E2%7E
85. file:///net/u/1/f/fdc/web/backup.ksc.%7E5%7E
86. file:///net/u/1/f/fdc/web/backup.ksc.%7E6%7E
87. file:///net/u/1/f/fdc/web/bacteria.gif
88. file:///net/u/1/f/fdc/web/banner-748.jpg
89. file:///net/u/1/f/fdc/web/banner-xxx.jpg
90. file:///net/u/1/f/fdc/web/banner.gif
91. file:///net/u/1/f/fdc/web/be.txt
92. file:///net/u/1/f/fdc/web/benchmarks-160.jpg
93. file:///net/u/1/f/fdc/web/benchmarks-280.jpg
94. file:///net/u/1/f/fdc/web/benchmarks-740.jpg
95. file:///net/u/1/f/fdc/web/benchmarks-r.jpg
96. file:///net/u/1/f/fdc/web/benchmarks-t.jpg
97. file:///net/u/1/f/fdc/web/benchmarks.html
98. file:///net/u/1/f/fdc/web/benchmarks.jpg
99. file:///net/u/1/f/fdc/web/bggray-8.jpg
100. file:///net/u/1/f/fdc/web/bggray.jpg
101. file:///net/u/1/f/fdc/web/bglblue.jpg
102. file:///net/u/1/f/fdc/web/bh
103. file:///net/u/1/f/fdc/web/biblio.html
104. file:///net/u/1/f/fdc/web/biblio.html.%7E1%7E
105. file:///net/u/1/f/fdc/web/biblio.html.%7E2%7E
106. file:///net/u/1/f/fdc/web/biblio.html.%7E3%7E
107. file:///net/u/1/f/fdc/web/biblio.html.%7E4%7E
108. file:///net/u/1/f/fdc/web/biblio.save-me
109. file:///net/u/1/f/fdc/web/bigfinish.gif
110. file:///net/u/1/f/fdc/web/bin
111. file:///net/u/1/f/fdc/web/biplane.gif
112. file:///net/u/1/f/fdc/web/biplane_icon.gif
113. file:///net/u/1/f/fdc/web/black.html
114. file:///net/u/1/f/fdc/web/boeing787-100.jpg
115. file:///net/u/1/f/fdc/web/boeing787-1024.jpg
116. file:///net/u/1/f/fdc/web/boeing787-150.jpg
117. file:///net/u/1/f/fdc/web/boeing787-200.jpg
118. file:///net/u/1/f/fdc/web/boeing787-280.jpg
119. file:///net/u/1/f/fdc/web/boeing787-400.jpg
120. file:///net/u/1/f/fdc/web/boeing787-740.jpg
121. file:///net/u/1/f/fdc/web/boeing787-r.jpg
122. file:///net/u/1/f/fdc/web/boeing787-t.jpg
123. file:///net/u/1/f/fdc/web/boeing787.html
124. file:///net/u/1/f/fdc/web/boeing787.jpg
125. file:///net/u/1/f/fdc/web/book-gallery.html
126. file:///net/u/1/f/fdc/web/book-strip-1-080.jpg
127. file:///net/u/1/f/fdc/web/book-strip-1-100.jpg
128. file:///net/u/1/f/fdc/web/book-strip-1-150.jpg
129. file:///net/u/1/f/fdc/web/book-strip-1-200.jpg
130. file:///net/u/1/f/fdc/web/book-strip-1-280.jpg
131. file:///net/u/1/f/fdc/web/books.html
132. file:///net/u/1/f/fdc/web/booksonline.html
133. file:///net/u/1/f/fdc/web/booksonline.html.%7E10%7E
134. file:///net/u/1/f/fdc/web/booksonline.html.%7E11%7E
135. file:///net/u/1/f/fdc/web/booksonline.html.%7E1%7E
136. file:///net/u/1/f/fdc/web/booksonline.html.%7E2%7E
137. file:///net/u/1/f/fdc/web/boxes.gif
138. file:///net/u/1/f/fdc/web/boxes_icon.gif
139. file:///net/u/1/f/fdc/web/brake.html
140. file:///net/u/1/f/fdc/web/bronx
141. file:///net/u/1/f/fdc/web/bronx1.jpg
142. file:///net/u/1/f/fdc/web/bronx10.jpg
143. file:///net/u/1/f/fdc/web/bronx100.html
144. file:///net/u/1/f/fdc/web/bronx100.jpg
145. file:///net/u/1/f/fdc/web/bronx1000.jpg
146. file:///net/u/1/f/fdc/web/bronx1001.jpg
147. file:///net/u/1/f/fdc/web/bronx1002.jpg
148. file:///net/u/1/f/fdc/web/bronx1003.jpg
149. file:///net/u/1/f/fdc/web/bronx1004.jpg
150. file:///net/u/1/f/fdc/web/bronx1005.jpg
151. file:///net/u/1/f/fdc/web/bronx1006.jpg
152. file:///net/u/1/f/fdc/web/bronx1007.jpg
153. file:///net/u/1/f/fdc/web/bronx1008.jpg
154. file:///net/u/1/f/fdc/web/bronx1009.jpg
155. file:///net/u/1/f/fdc/web/bronx101.jpg
156. file:///net/u/1/f/fdc/web/bronx1010.jpg
157. file:///net/u/1/f/fdc/web/bronx1011.jpg
158. file:///net/u/1/f/fdc/web/bronx1012.jpg
159. file:///net/u/1/f/fdc/web/bronx1013.jpg
160. file:///net/u/1/f/fdc/web/bronx1014.jpg
161. file:///net/u/1/f/fdc/web/bronx1015.jpg
162. file:///net/u/1/f/fdc/web/bronx1016.jpg
163. file:///net/u/1/f/fdc/web/bronx1017.jpg
164. file:///net/u/1/f/fdc/web/bronx1018.jpg
165. file:///net/u/1/f/fdc/web/bronx1019.jpg
166. file:///net/u/1/f/fdc/web/bronx102.jpg
167. file:///net/u/1/f/fdc/web/bronx1020.jpg
168. file:///net/u/1/f/fdc/web/bronx1021.jpg
169. file:///net/u/1/f/fdc/web/bronx1022.jpg
170. file:///net/u/1/f/fdc/web/bronx1023.jpg
171. file:///net/u/1/f/fdc/web/bronx1024.jpg
172. file:///net/u/1/f/fdc/web/bronx1025.jpg
173. file:///net/u/1/f/fdc/web/bronx1026.jpg
174. file:///net/u/1/f/fdc/web/bronx1027.jpg
175. file:///net/u/1/f/fdc/web/bronx1028.jpg
176. file:///net/u/1/f/fdc/web/bronx1029.jpg
177. file:///net/u/1/f/fdc/web/bronx103.jpg
178. file:///net/u/1/f/fdc/web/bronx1030.jpg
179. file:///net/u/1/f/fdc/web/bronx1031.jpg
180. file:///net/u/1/f/fdc/web/bronx1032.jpg
181. file:///net/u/1/f/fdc/web/bronx1033.jpg
182. file:///net/u/1/f/fdc/web/bronx1034.jpg
183. file:///net/u/1/f/fdc/web/bronx1035.jpg
184. file:///net/u/1/f/fdc/web/bronx1036.jpg
185. file:///net/u/1/f/fdc/web/bronx1037.jpg
186. file:///net/u/1/f/fdc/web/bronx1038.jpg
187. file:///net/u/1/f/fdc/web/bronx1039.jpg
188. file:///net/u/1/f/fdc/web/bronx104.jpg
189. file:///net/u/1/f/fdc/web/bronx1040.jpg
190. file:///net/u/1/f/fdc/web/bronx1041.jpg
191. file:///net/u/1/f/fdc/web/bronx1042.jpg
192. file:///net/u/1/f/fdc/web/bronx1043.jpg
193. file:///net/u/1/f/fdc/web/bronx1044.jpg
194. file:///net/u/1/f/fdc/web/bronx1045.jpg
195. file:///net/u/1/f/fdc/web/bronx1046.jpg
196. file:///net/u/1/f/fdc/web/bronx1047.jpg
197. file:///net/u/1/f/fdc/web/bronx1048.jpg
198. file:///net/u/1/f/fdc/web/bronx1049.jpg
199. file:///net/u/1/f/fdc/web/bronx105.jpg
200. file:///net/u/1/f/fdc/web/bronx1050.jpg
201. file:///net/u/1/f/fdc/web/bronx1051.jpg
202. file:///net/u/1/f/fdc/web/bronx1052.jpg
203. file:///net/u/1/f/fdc/web/bronx1053.jpg
204. file:///net/u/1/f/fdc/web/bronx1054.jpg
205. file:///net/u/1/f/fdc/web/bronx1055.jpg
206. file:///net/u/1/f/fdc/web/bronx1056.jpg
207. file:///net/u/1/f/fdc/web/bronx1057.jpg
208. file:///net/u/1/f/fdc/web/bronx1058.jpg
209. file:///net/u/1/f/fdc/web/bronx1059.jpg
210. file:///net/u/1/f/fdc/web/bronx106.jpg
211. file:///net/u/1/f/fdc/web/bronx1060.jpg
212. file:///net/u/1/f/fdc/web/bronx1061.jpg
213. file:///net/u/1/f/fdc/web/bronx1062.jpg
214. file:///net/u/1/f/fdc/web/bronx1063.gif
215. file:///net/u/1/f/fdc/web/bronx1064.jpg
216. file:///net/u/1/f/fdc/web/bronx1065.jpg
217. file:///net/u/1/f/fdc/web/bronx107.jpg
218. file:///net/u/1/f/fdc/web/bronx108.jpg
219. file:///net/u/1/f/fdc/web/bronx109.jpg
220. file:///net/u/1/f/fdc/web/bronx11.jpg
221. file:///net/u/1/f/fdc/web/bronx110.jpg
222. file:///net/u/1/f/fdc/web/bronx111.jpg
223. file:///net/u/1/f/fdc/web/bronx112.jpg
224. file:///net/u/1/f/fdc/web/bronx113.jpg
225. file:///net/u/1/f/fdc/web/bronx114.jpg
226. file:///net/u/1/f/fdc/web/bronx115.jpg
227. file:///net/u/1/f/fdc/web/bronx116.jpg
228. file:///net/u/1/f/fdc/web/bronx117.jpg
229. file:///net/u/1/f/fdc/web/bronx118.jpg
230. file:///net/u/1/f/fdc/web/bronx119.jpg
231. file:///net/u/1/f/fdc/web/bronx12.jpg
232. file:///net/u/1/f/fdc/web/bronx120.jpg
233. file:///net/u/1/f/fdc/web/bronx121.jpg
234. file:///net/u/1/f/fdc/web/bronx122.jpg
235. file:///net/u/1/f/fdc/web/bronx123.jpg
236. file:///net/u/1/f/fdc/web/bronx124.jpg
237. file:///net/u/1/f/fdc/web/bronx125.jpg
238. file:///net/u/1/f/fdc/web/bronx126.jpg
239. file:///net/u/1/f/fdc/web/bronx127.jpg
240. file:///net/u/1/f/fdc/web/bronx128.jpg
241. file:///net/u/1/f/fdc/web/bronx129.jpg
242. file:///net/u/1/f/fdc/web/bronx13.jpg
243. file:///net/u/1/f/fdc/web/bronx130.jpg
244. file:///net/u/1/f/fdc/web/bronx131.jpg
245. file:///net/u/1/f/fdc/web/bronx132.jpg
246. file:///net/u/1/f/fdc/web/bronx133.jpg
247. file:///net/u/1/f/fdc/web/bronx134.jpg
248. file:///net/u/1/f/fdc/web/bronx135.jpg
249. file:///net/u/1/f/fdc/web/bronx136.jpg
250. file:///net/u/1/f/fdc/web/bronx137.jpg
251. file:///net/u/1/f/fdc/web/bronx138.jpg
252. file:///net/u/1/f/fdc/web/bronx139.jpg
253. file:///net/u/1/f/fdc/web/bronx14.jpg
254. file:///net/u/1/f/fdc/web/bronx140.jpg
255. file:///net/u/1/f/fdc/web/bronx141.jpg
256. file:///net/u/1/f/fdc/web/bronx142.jpg
257. file:///net/u/1/f/fdc/web/bronx143.jpg
258. file:///net/u/1/f/fdc/web/bronx144.jpg
259. file:///net/u/1/f/fdc/web/bronx145.jpg
260. file:///net/u/1/f/fdc/web/bronx146.jpg
261. file:///net/u/1/f/fdc/web/bronx147.jpg
262. file:///net/u/1/f/fdc/web/bronx148.jpg
263. file:///net/u/1/f/fdc/web/bronx149.jpg
264. file:///net/u/1/f/fdc/web/bronx15.jpg
265. file:///net/u/1/f/fdc/web/bronx150.jpg
266. file:///net/u/1/f/fdc/web/bronx151.jpg
267. file:///net/u/1/f/fdc/web/bronx152.jpg
268. file:///net/u/1/f/fdc/web/bronx153.jpg
269. file:///net/u/1/f/fdc/web/bronx154.jpg
270. file:///net/u/1/f/fdc/web/bronx155.jpg
271. file:///net/u/1/f/fdc/web/bronx156.jpg
272. file:///net/u/1/f/fdc/web/bronx157.jpg
273. file:///net/u/1/f/fdc/web/bronx158.jpg
274. file:///net/u/1/f/fdc/web/bronx159.jpg
275. file:///net/u/1/f/fdc/web/bronx16.jpg
276. file:///net/u/1/f/fdc/web/bronx160.jpg
277. file:///net/u/1/f/fdc/web/bronx161.jpg
278. file:///net/u/1/f/fdc/web/bronx162.jpg
279. file:///net/u/1/f/fdc/web/bronx163.jpg
280. file:///net/u/1/f/fdc/web/bronx164.jpg
281. file:///net/u/1/f/fdc/web/bronx165.jpg
282. file:///net/u/1/f/fdc/web/bronx166.jpg
283. file:///net/u/1/f/fdc/web/bronx167.jpg
284. file:///net/u/1/f/fdc/web/bronx168.jpg
285. file:///net/u/1/f/fdc/web/bronx169.jpg
286. file:///net/u/1/f/fdc/web/bronx17.jpg
287. file:///net/u/1/f/fdc/web/bronx170.jpg
288. file:///net/u/1/f/fdc/web/bronx171.jpg
289. file:///net/u/1/f/fdc/web/bronx172.jpg
290. file:///net/u/1/f/fdc/web/bronx173.jpg
291. file:///net/u/1/f/fdc/web/bronx174.jpg
292. file:///net/u/1/f/fdc/web/bronx175.jpg
293. file:///net/u/1/f/fdc/web/bronx176.jpg
294. file:///net/u/1/f/fdc/web/bronx177.jpg
295. file:///net/u/1/f/fdc/web/bronx178.jpg
296. file:///net/u/1/f/fdc/web/bronx179.jpg
297. file:///net/u/1/f/fdc/web/bronx18.jpg
298. file:///net/u/1/f/fdc/web/bronx180.jpg
299. file:///net/u/1/f/fdc/web/bronx181.jpg
300. file:///net/u/1/f/fdc/web/bronx182.jpg
301. file:///net/u/1/f/fdc/web/bronx183.jpg
302. file:///net/u/1/f/fdc/web/bronx184.jpg
303. file:///net/u/1/f/fdc/web/bronx185.jpg
304. file:///net/u/1/f/fdc/web/bronx186.jpg
305. file:///net/u/1/f/fdc/web/bronx187.jpg
306. file:///net/u/1/f/fdc/web/bronx188.jpg
307. file:///net/u/1/f/fdc/web/bronx189.jpg
308. file:///net/u/1/f/fdc/web/bronx19.jpg
309. file:///net/u/1/f/fdc/web/bronx190.jpg
310. file:///net/u/1/f/fdc/web/bronx191.jpg
311. file:///net/u/1/f/fdc/web/bronx192.jpg
312. file:///net/u/1/f/fdc/web/bronx193.jpg
313. file:///net/u/1/f/fdc/web/bronx194.jpg
314. file:///net/u/1/f/fdc/web/bronx195.jpg
315. file:///net/u/1/f/fdc/web/bronx196.jpg
316. file:///net/u/1/f/fdc/web/bronx197.jpg
317. file:///net/u/1/f/fdc/web/bronx198.jpg
318. file:///net/u/1/f/fdc/web/bronx199.jpg
319. file:///net/u/1/f/fdc/web/bronx2.jpg
320. file:///net/u/1/f/fdc/web/bronx20.jpg
321. file:///net/u/1/f/fdc/web/bronx200.jpg
322. file:///net/u/1/f/fdc/web/bronx201.jpg
323. file:///net/u/1/f/fdc/web/bronx202.jpg
324. file:///net/u/1/f/fdc/web/bronx203.jpg
325. file:///net/u/1/f/fdc/web/bronx204.jpg
326. file:///net/u/1/f/fdc/web/bronx205.jpg
327. file:///net/u/1/f/fdc/web/bronx206.jpg
328. file:///net/u/1/f/fdc/web/bronx207.jpg
329. file:///net/u/1/f/fdc/web/bronx208.jpg
330. file:///net/u/1/f/fdc/web/bronx209.jpg
331. file:///net/u/1/f/fdc/web/bronx21.jpg
332. file:///net/u/1/f/fdc/web/bronx210.jpg
333. file:///net/u/1/f/fdc/web/bronx211.jpg
334. file:///net/u/1/f/fdc/web/bronx212.jpg
335. file:///net/u/1/f/fdc/web/bronx213.jpg
336. file:///net/u/1/f/fdc/web/bronx214.jpg
337. file:///net/u/1/f/fdc/web/bronx215.jpg
338. file:///net/u/1/f/fdc/web/bronx216.jpg
339. file:///net/u/1/f/fdc/web/bronx217.jpg
340. file:///net/u/1/f/fdc/web/bronx218.jpg
341. file:///net/u/1/f/fdc/web/bronx219.jpg
342. file:///net/u/1/f/fdc/web/bronx22.jpg
343. file:///net/u/1/f/fdc/web/bronx220.jpg
344. file:///net/u/1/f/fdc/web/bronx221.jpg
345. file:///net/u/1/f/fdc/web/bronx222.jpg
346. file:///net/u/1/f/fdc/web/bronx223.jpg
347. file:///net/u/1/f/fdc/web/bronx224.jpg
348. file:///net/u/1/f/fdc/web/bronx225.jpg
349. file:///net/u/1/f/fdc/web/bronx226.jpg
350. file:///net/u/1/f/fdc/web/bronx227.jpg
351. file:///net/u/1/f/fdc/web/bronx228.jpg
352. file:///net/u/1/f/fdc/web/bronx229.jpg
353. file:///net/u/1/f/fdc/web/bronx23.jpg
354. file:///net/u/1/f/fdc/web/bronx230.jpg
355. file:///net/u/1/f/fdc/web/bronx231.jpg
356. file:///net/u/1/f/fdc/web/bronx232.jpg
357. file:///net/u/1/f/fdc/web/bronx233.jpg
358. file:///net/u/1/f/fdc/web/bronx234.jpg
359. file:///net/u/1/f/fdc/web/bronx235.jpg
360. file:///net/u/1/f/fdc/web/bronx236.jpg
361. file:///net/u/1/f/fdc/web/bronx237.jpg
362. file:///net/u/1/f/fdc/web/bronx238.jpg
363. file:///net/u/1/f/fdc/web/bronx239.jpg
364. file:///net/u/1/f/fdc/web/bronx24.jpg
365. file:///net/u/1/f/fdc/web/bronx240.jpg
366. file:///net/u/1/f/fdc/web/bronx241.jpg
367. file:///net/u/1/f/fdc/web/bronx242.jpg
368. file:///net/u/1/f/fdc/web/bronx243.jpg
369. file:///net/u/1/f/fdc/web/bronx244.jpg
370. file:///net/u/1/f/fdc/web/bronx245.jpg
371. file:///net/u/1/f/fdc/web/bronx246.jpg
372. file:///net/u/1/f/fdc/web/bronx247.jpg
373. file:///net/u/1/f/fdc/web/bronx248.jpg
374. file:///net/u/1/f/fdc/web/bronx249.jpg
375. file:///net/u/1/f/fdc/web/bronx25.jpg
376. file:///net/u/1/f/fdc/web/bronx250.jpg
377. file:///net/u/1/f/fdc/web/bronx251.jpg
378. file:///net/u/1/f/fdc/web/bronx252.jpg
379. file:///net/u/1/f/fdc/web/bronx253.jpg
380. file:///net/u/1/f/fdc/web/bronx254.jpg
381. file:///net/u/1/f/fdc/web/bronx255.jpg
382. file:///net/u/1/f/fdc/web/bronx256.jpg
383. file:///net/u/1/f/fdc/web/bronx257.jpg
384. file:///net/u/1/f/fdc/web/bronx258.jpg
385. file:///net/u/1/f/fdc/web/bronx259.jpg
386. file:///net/u/1/f/fdc/web/bronx26.jpg
387. file:///net/u/1/f/fdc/web/bronx260.jpg
388. file:///net/u/1/f/fdc/web/bronx261.jpg
389. file:///net/u/1/f/fdc/web/bronx262.jpg
390. file:///net/u/1/f/fdc/web/bronx263.jpg
391. file:///net/u/1/f/fdc/web/bronx264.jpg
392. file:///net/u/1/f/fdc/web/bronx265.jpg
393. file:///net/u/1/f/fdc/web/bronx266.jpg
394. file:///net/u/1/f/fdc/web/bronx267.jpg
395. file:///net/u/1/f/fdc/web/bronx268.jpg
396. file:///net/u/1/f/fdc/web/bronx269.jpg
397. file:///net/u/1/f/fdc/web/bronx27.jpg
398. file:///net/u/1/f/fdc/web/bronx270.jpg
399. file:///net/u/1/f/fdc/web/bronx271.jpg
400. file:///net/u/1/f/fdc/web/bronx272.jpg
401. file:///net/u/1/f/fdc/web/bronx273.jpg
402. file:///net/u/1/f/fdc/web/bronx274.jpg
403. file:///net/u/1/f/fdc/web/bronx275.jpg
404. file:///net/u/1/f/fdc/web/bronx276.jpg
405. file:///net/u/1/f/fdc/web/bronx277.jpg
406. file:///net/u/1/f/fdc/web/bronx278.jpg
407. file:///net/u/1/f/fdc/web/bronx279.jpg
408. file:///net/u/1/f/fdc/web/bronx28.jpg
409. file:///net/u/1/f/fdc/web/bronx280.jpg
410. file:///net/u/1/f/fdc/web/bronx281.jpg
411. file:///net/u/1/f/fdc/web/bronx282.jpg
412. file:///net/u/1/f/fdc/web/bronx283.jpg
413. file:///net/u/1/f/fdc/web/bronx284.jpg
414. file:///net/u/1/f/fdc/web/bronx285.jpg
415. file:///net/u/1/f/fdc/web/bronx286.jpg
416. file:///net/u/1/f/fdc/web/bronx287.jpg
417. file:///net/u/1/f/fdc/web/bronx288.jpg
418. file:///net/u/1/f/fdc/web/bronx289.jpg
419. file:///net/u/1/f/fdc/web/bronx29.jpg
420. file:///net/u/1/f/fdc/web/bronx290.jpg
421. file:///net/u/1/f/fdc/web/bronx291.jpg
422. file:///net/u/1/f/fdc/web/bronx292.jpg
423. file:///net/u/1/f/fdc/web/bronx293.jpg
424. file:///net/u/1/f/fdc/web/bronx294.jpg
425. file:///net/u/1/f/fdc/web/bronx295.jpg
426. file:///net/u/1/f/fdc/web/bronx296.jpg
427. file:///net/u/1/f/fdc/web/bronx297.jpg
428. file:///net/u/1/f/fdc/web/bronx298.jpg
429. file:///net/u/1/f/fdc/web/bronx299.jpg
430. file:///net/u/1/f/fdc/web/bronx3.jpg
431. file:///net/u/1/f/fdc/web/bronx30.jpg
432. file:///net/u/1/f/fdc/web/bronx300.jpg
433. file:///net/u/1/f/fdc/web/bronx300.jpg.%7E1%7E
434. file:///net/u/1/f/fdc/web/bronx301.jpg
435. file:///net/u/1/f/fdc/web/bronx302.jpg
436. file:///net/u/1/f/fdc/web/bronx303.jpg
437. file:///net/u/1/f/fdc/web/bronx304.jpg
438. file:///net/u/1/f/fdc/web/bronx305.jpg
439. file:///net/u/1/f/fdc/web/bronx306.jpg
440. file:///net/u/1/f/fdc/web/bronx307.jpg
441. file:///net/u/1/f/fdc/web/bronx308.jpg
442. file:///net/u/1/f/fdc/web/bronx309.jpg
443. file:///net/u/1/f/fdc/web/bronx31.jpg
444. file:///net/u/1/f/fdc/web/bronx310.jpg
445. file:///net/u/1/f/fdc/web/bronx311.jpg
446. file:///net/u/1/f/fdc/web/bronx312.jpg
447. file:///net/u/1/f/fdc/web/bronx313.jpg
448. file:///net/u/1/f/fdc/web/bronx314.jpg
449. file:///net/u/1/f/fdc/web/bronx315.jpg
450. file:///net/u/1/f/fdc/web/bronx316.jpg
451. file:///net/u/1/f/fdc/web/bronx317.jpg
452. file:///net/u/1/f/fdc/web/bronx318.jpg
453. file:///net/u/1/f/fdc/web/bronx319.jpg
454. file:///net/u/1/f/fdc/web/bronx32.jpg
455. file:///net/u/1/f/fdc/web/bronx320.jpg
456. file:///net/u/1/f/fdc/web/bronx321.jpg
457. file:///net/u/1/f/fdc/web/bronx322.jpg
458. file:///net/u/1/f/fdc/web/bronx323.jpg
459. file:///net/u/1/f/fdc/web/bronx324.jpg
460. file:///net/u/1/f/fdc/web/bronx325.jpg
461. file:///net/u/1/f/fdc/web/bronx326.jpg
462. file:///net/u/1/f/fdc/web/bronx327.jpg
463. file:///net/u/1/f/fdc/web/bronx328.jpg
464. file:///net/u/1/f/fdc/web/bronx329.jpg
465. file:///net/u/1/f/fdc/web/bronx33.jpg
466. file:///net/u/1/f/fdc/web/bronx330.jpg
467. file:///net/u/1/f/fdc/web/bronx331.jpg
468. file:///net/u/1/f/fdc/web/bronx332.jpg
469. file:///net/u/1/f/fdc/web/bronx333.jpg
470. file:///net/u/1/f/fdc/web/bronx334.jpg
471. file:///net/u/1/f/fdc/web/bronx335.jpg
472. file:///net/u/1/f/fdc/web/bronx336.jpg
473. file:///net/u/1/f/fdc/web/bronx337.jpg
474. file:///net/u/1/f/fdc/web/bronx338.jpg
475. file:///net/u/1/f/fdc/web/bronx339.jpg
476. file:///net/u/1/f/fdc/web/bronx34.jpg
477. file:///net/u/1/f/fdc/web/bronx340.jpg
478. file:///net/u/1/f/fdc/web/bronx341.jpg
479. file:///net/u/1/f/fdc/web/bronx342.jpg
480. file:///net/u/1/f/fdc/web/bronx343.jpg
481. file:///net/u/1/f/fdc/web/bronx344.jpg
482. file:///net/u/1/f/fdc/web/bronx345.jpg
483. file:///net/u/1/f/fdc/web/bronx346.jpg
484. file:///net/u/1/f/fdc/web/bronx347.jpg
485. file:///net/u/1/f/fdc/web/bronx348.jpg
486. file:///net/u/1/f/fdc/web/bronx349.jpg
487. file:///net/u/1/f/fdc/web/bronx35.jpg
488. file:///net/u/1/f/fdc/web/bronx350.jpg
489. file:///net/u/1/f/fdc/web/bronx351.jpg
490. file:///net/u/1/f/fdc/web/bronx352.jpg
491. file:///net/u/1/f/fdc/web/bronx353.jpg
492. file:///net/u/1/f/fdc/web/bronx354.jpg
493. file:///net/u/1/f/fdc/web/bronx355.jpg
494. file:///net/u/1/f/fdc/web/bronx356.jpg
495. file:///net/u/1/f/fdc/web/bronx357.jpg
496. file:///net/u/1/f/fdc/web/bronx358.jpg
497. file:///net/u/1/f/fdc/web/bronx359.jpg
498. file:///net/u/1/f/fdc/web/bronx36.jpg
499. file:///net/u/1/f/fdc/web/bronx360.jpg
500. file:///net/u/1/f/fdc/web/bronx361.jpg
501. file:///net/u/1/f/fdc/web/bronx362.jpg
502. file:///net/u/1/f/fdc/web/bronx363.jpg
503. file:///net/u/1/f/fdc/web/bronx364.jpg
504. file:///net/u/1/f/fdc/web/bronx365.jpg
505. file:///net/u/1/f/fdc/web/bronx366.jpg
506. file:///net/u/1/f/fdc/web/bronx367.jpg
507. file:///net/u/1/f/fdc/web/bronx368.jpg
508. file:///net/u/1/f/fdc/web/bronx369.jpg
509. file:///net/u/1/f/fdc/web/bronx37.jpg
510. file:///net/u/1/f/fdc/web/bronx370.jpg
511. file:///net/u/1/f/fdc/web/bronx371.jpg
512. file:///net/u/1/f/fdc/web/bronx372.jpg
513. file:///net/u/1/f/fdc/web/bronx373.jpg
514. file:///net/u/1/f/fdc/web/bronx374.jpg
515. file:///net/u/1/f/fdc/web/bronx375.jpg
516. file:///net/u/1/f/fdc/web/bronx376.jpg
517. file:///net/u/1/f/fdc/web/bronx377.jpg
518. file:///net/u/1/f/fdc/web/bronx378.jpg
519. file:///net/u/1/f/fdc/web/bronx379.jpg
520. file:///net/u/1/f/fdc/web/bronx38.jpg
521. file:///net/u/1/f/fdc/web/bronx380.jpg
522. file:///net/u/1/f/fdc/web/bronx381.jpg
523. file:///net/u/1/f/fdc/web/bronx382.jpg
524. file:///net/u/1/f/fdc/web/bronx383.jpg
525. file:///net/u/1/f/fdc/web/bronx384.jpg
526. file:///net/u/1/f/fdc/web/bronx385.jpg
527. file:///net/u/1/f/fdc/web/bronx386.jpg
528. file:///net/u/1/f/fdc/web/bronx387.jpg
529. file:///net/u/1/f/fdc/web/bronx388.jpg
530. file:///net/u/1/f/fdc/web/bronx389.jpg
531. file:///net/u/1/f/fdc/web/bronx39.jpg
532. file:///net/u/1/f/fdc/web/bronx390.jpg
533. file:///net/u/1/f/fdc/web/bronx391.jpg
534. file:///net/u/1/f/fdc/web/bronx392.jpg
535. file:///net/u/1/f/fdc/web/bronx393.jpg
536. file:///net/u/1/f/fdc/web/bronx394.jpg
537. file:///net/u/1/f/fdc/web/bronx395.jpg
538. file:///net/u/1/f/fdc/web/bronx396.jpg
539. file:///net/u/1/f/fdc/web/bronx397.jpg
540. file:///net/u/1/f/fdc/web/bronx398.jpg
541. file:///net/u/1/f/fdc/web/bronx399.jpg
542. file:///net/u/1/f/fdc/web/bronx4.jpg
543. file:///net/u/1/f/fdc/web/bronx40.jpg
544. file:///net/u/1/f/fdc/web/bronx400.jpg
545. file:///net/u/1/f/fdc/web/bronx401.jpg
546. file:///net/u/1/f/fdc/web/bronx402.jpg
547. file:///net/u/1/f/fdc/web/bronx403.jpg
548. file:///net/u/1/f/fdc/web/bronx403.jpg.%7E1%7E
549. file:///net/u/1/f/fdc/web/bronx404.jpg
550. file:///net/u/1/f/fdc/web/bronx405.jpg
551. file:///net/u/1/f/fdc/web/bronx406.jpg
552. file:///net/u/1/f/fdc/web/bronx407.jpg
553. file:///net/u/1/f/fdc/web/bronx408.jpg
554. file:///net/u/1/f/fdc/web/bronx408.jpg.%7E1%7E
555. file:///net/u/1/f/fdc/web/bronx408.txt.%7E1%7E
556. file:///net/u/1/f/fdc/web/bronx409.jpg
557. file:///net/u/1/f/fdc/web/bronx41.jpg
558. file:///net/u/1/f/fdc/web/bronx410.jpg
559. file:///net/u/1/f/fdc/web/bronx410.txt.%7E1%7E
560. file:///net/u/1/f/fdc/web/bronx411.jpg
561. file:///net/u/1/f/fdc/web/bronx412.jpg
562. file:///net/u/1/f/fdc/web/bronx413.jpg
563. file:///net/u/1/f/fdc/web/bronx414.jpg
564. file:///net/u/1/f/fdc/web/bronx415.jpg
565. file:///net/u/1/f/fdc/web/bronx415.txt.%7E1%7E
566. file:///net/u/1/f/fdc/web/bronx416.jpg
567. file:///net/u/1/f/fdc/web/bronx417.jpg
568. file:///net/u/1/f/fdc/web/bronx418.jpg
569. file:///net/u/1/f/fdc/web/bronx419.jpg
570. file:///net/u/1/f/fdc/web/bronx42.jpg
571. file:///net/u/1/f/fdc/web/bronx420.jpg
572. file:///net/u/1/f/fdc/web/bronx421.jpg
573. file:///net/u/1/f/fdc/web/bronx422.jpg
574. file:///net/u/1/f/fdc/web/bronx423.jpg
575. file:///net/u/1/f/fdc/web/bronx423.jpg.%7E1%7E
576. file:///net/u/1/f/fdc/web/bronx424.jpg
577. file:///net/u/1/f/fdc/web/bronx425.jpg
578. file:///net/u/1/f/fdc/web/bronx426.jpg
579. file:///net/u/1/f/fdc/web/bronx427.jpg
580. file:///net/u/1/f/fdc/web/bronx428.jpg
581. file:///net/u/1/f/fdc/web/bronx429.jpg
582. file:///net/u/1/f/fdc/web/bronx43.jpg
583. file:///net/u/1/f/fdc/web/bronx430.jpg
584. file:///net/u/1/f/fdc/web/bronx431.jpg
585. file:///net/u/1/f/fdc/web/bronx432.jpg
586. file:///net/u/1/f/fdc/web/bronx433.jpg
587. file:///net/u/1/f/fdc/web/bronx434.jpg
588. file:///net/u/1/f/fdc/web/bronx435.jpg
589. file:///net/u/1/f/fdc/web/bronx436.jpg
590. file:///net/u/1/f/fdc/web/bronx437.jpg
591. file:///net/u/1/f/fdc/web/bronx438.jpg
592. file:///net/u/1/f/fdc/web/bronx439.jpg
593. file:///net/u/1/f/fdc/web/bronx44.jpg
594. file:///net/u/1/f/fdc/web/bronx440.jpg
595. file:///net/u/1/f/fdc/web/bronx441.jpg
596. file:///net/u/1/f/fdc/web/bronx442.jpg
597. file:///net/u/1/f/fdc/web/bronx443.jpg
598. file:///net/u/1/f/fdc/web/bronx444.jpg
599. file:///net/u/1/f/fdc/web/bronx445.jpg
600. file:///net/u/1/f/fdc/web/bronx446.jpg
601. file:///net/u/1/f/fdc/web/bronx447.jpg
602. file:///net/u/1/f/fdc/web/bronx448.jpg
603. file:///net/u/1/f/fdc/web/bronx449.jpg
604. file:///net/u/1/f/fdc/web/bronx45.jpg
605. file:///net/u/1/f/fdc/web/bronx450.jpg
606. file:///net/u/1/f/fdc/web/bronx451.jpg
607. file:///net/u/1/f/fdc/web/bronx452.jpg
608. file:///net/u/1/f/fdc/web/bronx453.jpg
609. file:///net/u/1/f/fdc/web/bronx454.jpg
610. file:///net/u/1/f/fdc/web/bronx455.jpg
611. file:///net/u/1/f/fdc/web/bronx456.jpg
612. file:///net/u/1/f/fdc/web/bronx457.jpg
613. file:///net/u/1/f/fdc/web/bronx458.jpg
614. file:///net/u/1/f/fdc/web/bronx459.jpg
615. file:///net/u/1/f/fdc/web/bronx46.jpg
616. file:///net/u/1/f/fdc/web/bronx460.jpg
617. file:///net/u/1/f/fdc/web/bronx461.jpg
618. file:///net/u/1/f/fdc/web/bronx462.jpg
619. file:///net/u/1/f/fdc/web/bronx463.jpg
620. file:///net/u/1/f/fdc/web/bronx464.jpg
621. file:///net/u/1/f/fdc/web/bronx465.jpg
622. file:///net/u/1/f/fdc/web/bronx466.jpg
623. file:///net/u/1/f/fdc/web/bronx467.jpg
624. file:///net/u/1/f/fdc/web/bronx468.jpg
625. file:///net/u/1/f/fdc/web/bronx469.jpg
626. file:///net/u/1/f/fdc/web/bronx47.jpg
627. file:///net/u/1/f/fdc/web/bronx470.jpg
628. file:///net/u/1/f/fdc/web/bronx471.jpg
629. file:///net/u/1/f/fdc/web/bronx472.jpg
630. file:///net/u/1/f/fdc/web/bronx473.jpg
631. file:///net/u/1/f/fdc/web/bronx474.jpg
632. file:///net/u/1/f/fdc/web/bronx475.jpg
633. file:///net/u/1/f/fdc/web/bronx476.jpg
634. file:///net/u/1/f/fdc/web/bronx477.jpg
635. file:///net/u/1/f/fdc/web/bronx478.jpg
636. file:///net/u/1/f/fdc/web/bronx479.jpg
637. file:///net/u/1/f/fdc/web/bronx48.jpg
638. file:///net/u/1/f/fdc/web/bronx480.jpg
639. file:///net/u/1/f/fdc/web/bronx480.txt.%7E1%7E
640. file:///net/u/1/f/fdc/web/bronx481.jpg
641. file:///net/u/1/f/fdc/web/bronx482.jpg
642. file:///net/u/1/f/fdc/web/bronx483.jpg
643. file:///net/u/1/f/fdc/web/bronx484.jpg
644. file:///net/u/1/f/fdc/web/bronx485.jpg
645. file:///net/u/1/f/fdc/web/bronx486.jpg
646. file:///net/u/1/f/fdc/web/bronx486.txt.%7E1%7E
647. file:///net/u/1/f/fdc/web/bronx487.jpg
648. file:///net/u/1/f/fdc/web/bronx488.jpg
649. file:///net/u/1/f/fdc/web/bronx488.txt.%7E1%7E
650. file:///net/u/1/f/fdc/web/bronx489.jpg
651. file:///net/u/1/f/fdc/web/bronx489.txt.%7E1%7E
652. file:///net/u/1/f/fdc/web/bronx49.jpg
653. file:///net/u/1/f/fdc/web/bronx490.jpg
654. file:///net/u/1/f/fdc/web/bronx491.jpg
655. file:///net/u/1/f/fdc/web/bronx492.jpg
656. file:///net/u/1/f/fdc/web/bronx492.txt.%7E1%7E
657. file:///net/u/1/f/fdc/web/bronx493.jpg
658. file:///net/u/1/f/fdc/web/bronx493.txt.%7E1%7E
659. file:///net/u/1/f/fdc/web/bronx494.jpg
660. file:///net/u/1/f/fdc/web/bronx494.txt.%7E1%7E
661. file:///net/u/1/f/fdc/web/bronx494.txt.%7E2%7E
662. file:///net/u/1/f/fdc/web/bronx495.jpg
663. file:///net/u/1/f/fdc/web/bronx496.jpg
664. file:///net/u/1/f/fdc/web/bronx496.txt.%7E1%7E
665. file:///net/u/1/f/fdc/web/bronx497.jpg
666. file:///net/u/1/f/fdc/web/bronx498.jpg
667. file:///net/u/1/f/fdc/web/bronx499.jpg
668. file:///net/u/1/f/fdc/web/bronx5.jpg
669. file:///net/u/1/f/fdc/web/bronx50.jpg
670. file:///net/u/1/f/fdc/web/bronx500.jpg
671. file:///net/u/1/f/fdc/web/bronx501.jpg
672. file:///net/u/1/f/fdc/web/bronx502.jpg
673. file:///net/u/1/f/fdc/web/bronx503.jpg
674. file:///net/u/1/f/fdc/web/bronx504.jpg
675. file:///net/u/1/f/fdc/web/bronx505.jpg
676. file:///net/u/1/f/fdc/web/bronx506.jpg
677. file:///net/u/1/f/fdc/web/bronx507.jpg
678. file:///net/u/1/f/fdc/web/bronx508.jpg
679. file:///net/u/1/f/fdc/web/bronx509.jpg
680. file:///net/u/1/f/fdc/web/bronx51.jpg
681. file:///net/u/1/f/fdc/web/bronx510.jpg
682. file:///net/u/1/f/fdc/web/bronx511.jpg
683. file:///net/u/1/f/fdc/web/bronx512.jpg
684. file:///net/u/1/f/fdc/web/bronx513.jpg
685. file:///net/u/1/f/fdc/web/bronx514.jpg
686. file:///net/u/1/f/fdc/web/bronx515.jpg
687. file:///net/u/1/f/fdc/web/bronx516.jpg
688. file:///net/u/1/f/fdc/web/bronx517.jpg
689. file:///net/u/1/f/fdc/web/bronx518.jpg
690. file:///net/u/1/f/fdc/web/bronx519.jpg
691. file:///net/u/1/f/fdc/web/bronx52.jpg
692. file:///net/u/1/f/fdc/web/bronx520.jpg
693. file:///net/u/1/f/fdc/web/bronx521.jpg
694. file:///net/u/1/f/fdc/web/bronx522.jpg
695. file:///net/u/1/f/fdc/web/bronx523.jpg
696. file:///net/u/1/f/fdc/web/bronx524.jpg
697. file:///net/u/1/f/fdc/web/bronx525.jpg
698. file:///net/u/1/f/fdc/web/bronx526.jpg
699. file:///net/u/1/f/fdc/web/bronx527.jpg
700. file:///net/u/1/f/fdc/web/bronx528.jpg
701. file:///net/u/1/f/fdc/web/bronx529.jpg
702. file:///net/u/1/f/fdc/web/bronx53.jpg
703. file:///net/u/1/f/fdc/web/bronx530.jpg
704. file:///net/u/1/f/fdc/web/bronx531.jpg
705. file:///net/u/1/f/fdc/web/bronx532.jpg
706. file:///net/u/1/f/fdc/web/bronx533.jpg
707. file:///net/u/1/f/fdc/web/bronx534.jpg
708. file:///net/u/1/f/fdc/web/bronx535.jpg
709. file:///net/u/1/f/fdc/web/bronx536.jpg
710. file:///net/u/1/f/fdc/web/bronx537.jpg
711. file:///net/u/1/f/fdc/web/bronx538.jpg
712. file:///net/u/1/f/fdc/web/bronx539.jpg
713. file:///net/u/1/f/fdc/web/bronx54.jpg
714. file:///net/u/1/f/fdc/web/bronx540.jpg
715. file:///net/u/1/f/fdc/web/bronx541.jpg
716. file:///net/u/1/f/fdc/web/bronx542.jpg
717. file:///net/u/1/f/fdc/web/bronx543.jpg
718. file:///net/u/1/f/fdc/web/bronx544.jpg
719. file:///net/u/1/f/fdc/web/bronx545.jpg
720. file:///net/u/1/f/fdc/web/bronx546.jpg
721. file:///net/u/1/f/fdc/web/bronx547.jpg
722. file:///net/u/1/f/fdc/web/bronx548.jpg
723. file:///net/u/1/f/fdc/web/bronx549.jpg
724. file:///net/u/1/f/fdc/web/bronx55.jpg
725. file:///net/u/1/f/fdc/web/bronx550.jpg
726. file:///net/u/1/f/fdc/web/bronx551.jpg
727. file:///net/u/1/f/fdc/web/bronx552.jpg
728. file:///net/u/1/f/fdc/web/bronx553.jpg
729. file:///net/u/1/f/fdc/web/bronx554.jpg
730. file:///net/u/1/f/fdc/web/bronx555.jpg
731. file:///net/u/1/f/fdc/web/bronx556.jpg
732. file:///net/u/1/f/fdc/web/bronx557.jpg
733. file:///net/u/1/f/fdc/web/bronx558.jpg
734. file:///net/u/1/f/fdc/web/bronx559.jpg
735. file:///net/u/1/f/fdc/web/bronx56.jpg
736. file:///net/u/1/f/fdc/web/bronx560.jpg
737. file:///net/u/1/f/fdc/web/bronx561.jpg
738. file:///net/u/1/f/fdc/web/bronx562.jpg
739. file:///net/u/1/f/fdc/web/bronx563.jpg
740. file:///net/u/1/f/fdc/web/bronx564.jpg
741. file:///net/u/1/f/fdc/web/bronx565.jpg
742. file:///net/u/1/f/fdc/web/bronx566.jpg
743. file:///net/u/1/f/fdc/web/bronx567.jpg
744. file:///net/u/1/f/fdc/web/bronx568.jpg
745. file:///net/u/1/f/fdc/web/bronx569.jpg
746. file:///net/u/1/f/fdc/web/bronx57.jpg
747. file:///net/u/1/f/fdc/web/bronx570.jpg
748. file:///net/u/1/f/fdc/web/bronx571.jpg
749. file:///net/u/1/f/fdc/web/bronx572.jpg
750. file:///net/u/1/f/fdc/web/bronx573.jpg
751. file:///net/u/1/f/fdc/web/bronx574.jpg
752. file:///net/u/1/f/fdc/web/bronx575.jpg
753. file:///net/u/1/f/fdc/web/bronx576.jpg
754. file:///net/u/1/f/fdc/web/bronx577.jpg
755. file:///net/u/1/f/fdc/web/bronx578.jpg
756. file:///net/u/1/f/fdc/web/bronx579.jpg
757. file:///net/u/1/f/fdc/web/bronx58.jpg
758. file:///net/u/1/f/fdc/web/bronx580.jpg
759. file:///net/u/1/f/fdc/web/bronx581.jpg
760. file:///net/u/1/f/fdc/web/bronx582.jpg
761. file:///net/u/1/f/fdc/web/bronx583.jpg
762. file:///net/u/1/f/fdc/web/bronx584.jpg
763. file:///net/u/1/f/fdc/web/bronx585.jpg
764. file:///net/u/1/f/fdc/web/bronx586.jpg
765. file:///net/u/1/f/fdc/web/bronx587.jpg
766. file:///net/u/1/f/fdc/web/bronx588.jpg
767. file:///net/u/1/f/fdc/web/bronx589.jpg
768. file:///net/u/1/f/fdc/web/bronx59.jpg
769. file:///net/u/1/f/fdc/web/bronx590.jpg
770. file:///net/u/1/f/fdc/web/bronx591.jpg
771. file:///net/u/1/f/fdc/web/bronx592.jpg
772. file:///net/u/1/f/fdc/web/bronx593.jpg
773. file:///net/u/1/f/fdc/web/bronx594.jpg
774. file:///net/u/1/f/fdc/web/bronx595.jpg
775. file:///net/u/1/f/fdc/web/bronx596.jpg
776. file:///net/u/1/f/fdc/web/bronx597.jpg
777. file:///net/u/1/f/fdc/web/bronx598.jpg
778. file:///net/u/1/f/fdc/web/bronx599.jpg
779. file:///net/u/1/f/fdc/web/bronx6.jpg
780. file:///net/u/1/f/fdc/web/bronx60.jpg
781. file:///net/u/1/f/fdc/web/bronx600.jpg
782. file:///net/u/1/f/fdc/web/bronx601.jpg
783. file:///net/u/1/f/fdc/web/bronx601.jpg.%7E1%7E
784. file:///net/u/1/f/fdc/web/bronx602.jpg
785. file:///net/u/1/f/fdc/web/bronx603.jpg
786. file:///net/u/1/f/fdc/web/bronx604.jpg
787. file:///net/u/1/f/fdc/web/bronx605.jpg
788. file:///net/u/1/f/fdc/web/bronx606.jpg
789. file:///net/u/1/f/fdc/web/bronx607.jpg
790. file:///net/u/1/f/fdc/web/bronx608.jpg
791. file:///net/u/1/f/fdc/web/bronx609.jpg
792. file:///net/u/1/f/fdc/web/bronx61.jpg
793. file:///net/u/1/f/fdc/web/bronx610.jpg
794. file:///net/u/1/f/fdc/web/bronx611.jpg
795. file:///net/u/1/f/fdc/web/bronx612.jpg
796. file:///net/u/1/f/fdc/web/bronx613.jpg
797. file:///net/u/1/f/fdc/web/bronx614.jpg
798. file:///net/u/1/f/fdc/web/bronx615.jpg
799. file:///net/u/1/f/fdc/web/bronx616.jpg
800. file:///net/u/1/f/fdc/web/bronx617.jpg
801. file:///net/u/1/f/fdc/web/bronx618.jpg
802. file:///net/u/1/f/fdc/web/bronx619.jpg
803. file:///net/u/1/f/fdc/web/bronx62.jpg
804. file:///net/u/1/f/fdc/web/bronx620.jpg
805. file:///net/u/1/f/fdc/web/bronx621.jpg
806. file:///net/u/1/f/fdc/web/bronx622.jpg
807. file:///net/u/1/f/fdc/web/bronx623.jpg
808. file:///net/u/1/f/fdc/web/bronx624.jpg
809. file:///net/u/1/f/fdc/web/bronx625.jpg
810. file:///net/u/1/f/fdc/web/bronx626.jpg
811. file:///net/u/1/f/fdc/web/bronx627.jpg
812. file:///net/u/1/f/fdc/web/bronx628.jpg
813. file:///net/u/1/f/fdc/web/bronx629.jpg
814. file:///net/u/1/f/fdc/web/bronx63.jpg
815. file:///net/u/1/f/fdc/web/bronx630.jpg
816. file:///net/u/1/f/fdc/web/bronx631.jpg
817. file:///net/u/1/f/fdc/web/bronx632.jpg
818. file:///net/u/1/f/fdc/web/bronx633.jpg
819. file:///net/u/1/f/fdc/web/bronx634.jpg
820. file:///net/u/1/f/fdc/web/bronx635.jpg
821. file:///net/u/1/f/fdc/web/bronx636.jpg
822. file:///net/u/1/f/fdc/web/bronx637.jpg
823. file:///net/u/1/f/fdc/web/bronx638.jpg
824. file:///net/u/1/f/fdc/web/bronx639.jpg
825. file:///net/u/1/f/fdc/web/bronx64.jpg
826. file:///net/u/1/f/fdc/web/bronx640.jpg
827. file:///net/u/1/f/fdc/web/bronx641.jpg
828. file:///net/u/1/f/fdc/web/bronx642.jpg
829. file:///net/u/1/f/fdc/web/bronx643.jpg
830. file:///net/u/1/f/fdc/web/bronx644.jpg
831. file:///net/u/1/f/fdc/web/bronx645.jpg
832. file:///net/u/1/f/fdc/web/bronx646.jpg
833. file:///net/u/1/f/fdc/web/bronx647.jpg
834. file:///net/u/1/f/fdc/web/bronx648.jpg
835. file:///net/u/1/f/fdc/web/bronx649.jpg
836. file:///net/u/1/f/fdc/web/bronx65.jpg
837. file:///net/u/1/f/fdc/web/bronx650.jpg
838. file:///net/u/1/f/fdc/web/bronx650.jpg.%7E1%7E
839. file:///net/u/1/f/fdc/web/bronx651.jpg
840. file:///net/u/1/f/fdc/web/bronx651.jpg.%7E1%7E
841. file:///net/u/1/f/fdc/web/bronx652.jpg
842. file:///net/u/1/f/fdc/web/bronx652.jpg.%7E1%7E
843. file:///net/u/1/f/fdc/web/bronx653.jpg
844. file:///net/u/1/f/fdc/web/bronx653.jpg.%7E1%7E
845. file:///net/u/1/f/fdc/web/bronx654.jpg
846. file:///net/u/1/f/fdc/web/bronx654.jpg.%7E1%7E
847. file:///net/u/1/f/fdc/web/bronx655.jpg
848. file:///net/u/1/f/fdc/web/bronx655.jpg.%7E1%7E
849. file:///net/u/1/f/fdc/web/bronx656.jpg
850. file:///net/u/1/f/fdc/web/bronx656.jpg.%7E1%7E
851. file:///net/u/1/f/fdc/web/bronx657.jpg
852. file:///net/u/1/f/fdc/web/bronx657.jpg.%7E1%7E
853. file:///net/u/1/f/fdc/web/bronx658.jpg
854. file:///net/u/1/f/fdc/web/bronx658.jpg.%7E1%7E
855. file:///net/u/1/f/fdc/web/bronx659.jpg
856. file:///net/u/1/f/fdc/web/bronx659.jpg.%7E1%7E
857. file:///net/u/1/f/fdc/web/bronx66.jpg
858. file:///net/u/1/f/fdc/web/bronx660.jpg
859. file:///net/u/1/f/fdc/web/bronx660.jpg.%7E1%7E
860. file:///net/u/1/f/fdc/web/bronx661.jpg
861. file:///net/u/1/f/fdc/web/bronx662.jpg
862. file:///net/u/1/f/fdc/web/bronx663.jpg
863. file:///net/u/1/f/fdc/web/bronx664.jpg
864. file:///net/u/1/f/fdc/web/bronx665.jpg
865. file:///net/u/1/f/fdc/web/bronx666.jpg
866. file:///net/u/1/f/fdc/web/bronx667.jpg
867. file:///net/u/1/f/fdc/web/bronx668.jpg
868. file:///net/u/1/f/fdc/web/bronx669.jpg
869. file:///net/u/1/f/fdc/web/bronx67.jpg
870. file:///net/u/1/f/fdc/web/bronx670.jpg
871. file:///net/u/1/f/fdc/web/bronx671.jpg
872. file:///net/u/1/f/fdc/web/bronx672.jpg
873. file:///net/u/1/f/fdc/web/bronx673.jpg
874. file:///net/u/1/f/fdc/web/bronx674.jpg
875. file:///net/u/1/f/fdc/web/bronx675.jpg
876. file:///net/u/1/f/fdc/web/bronx676.jpg
877. file:///net/u/1/f/fdc/web/bronx677.jpg
878. file:///net/u/1/f/fdc/web/bronx678.jpg
879. file:///net/u/1/f/fdc/web/bronx679.jpg
880. file:///net/u/1/f/fdc/web/bronx68.jpg
881. file:///net/u/1/f/fdc/web/bronx680.jpg
882. file:///net/u/1/f/fdc/web/bronx681.jpg
883. file:///net/u/1/f/fdc/web/bronx682.jpg
884. file:///net/u/1/f/fdc/web/bronx683.jpg
885. file:///net/u/1/f/fdc/web/bronx684.jpg
886. file:///net/u/1/f/fdc/web/bronx685.jpg
887. file:///net/u/1/f/fdc/web/bronx686.jpg
888. file:///net/u/1/f/fdc/web/bronx687.jpg
889. file:///net/u/1/f/fdc/web/bronx688.jpg
890. file:///net/u/1/f/fdc/web/bronx689.jpg
891. file:///net/u/1/f/fdc/web/bronx69.jpg
892. file:///net/u/1/f/fdc/web/bronx690.jpg
893. file:///net/u/1/f/fdc/web/bronx691.jpg
894. file:///net/u/1/f/fdc/web/bronx692.jpg
895. file:///net/u/1/f/fdc/web/bronx693.jpg
896. file:///net/u/1/f/fdc/web/bronx694.jpg
897. file:///net/u/1/f/fdc/web/bronx695.jpg
898. file:///net/u/1/f/fdc/web/bronx696.jpg
899. file:///net/u/1/f/fdc/web/bronx697.jpg
900. file:///net/u/1/f/fdc/web/bronx698.jpg
901. file:///net/u/1/f/fdc/web/bronx699.jpg
902. file:///net/u/1/f/fdc/web/bronx7.jpg
903. file:///net/u/1/f/fdc/web/bronx70.jpg
904. file:///net/u/1/f/fdc/web/bronx700.jpg
905. file:///net/u/1/f/fdc/web/bronx701.jpg
906. file:///net/u/1/f/fdc/web/bronx702.jpg
907. file:///net/u/1/f/fdc/web/bronx703.jpg
908. file:///net/u/1/f/fdc/web/bronx704.jpg
909. file:///net/u/1/f/fdc/web/bronx705.jpg
910. file:///net/u/1/f/fdc/web/bronx706.jpg
911. file:///net/u/1/f/fdc/web/bronx707.jpg
912. file:///net/u/1/f/fdc/web/bronx708.jpg
913. file:///net/u/1/f/fdc/web/bronx709.jpg
914. file:///net/u/1/f/fdc/web/bronx71.jpg
915. file:///net/u/1/f/fdc/web/bronx710.jpg
916. file:///net/u/1/f/fdc/web/bronx711.jpg
917. file:///net/u/1/f/fdc/web/bronx712.jpg
918. file:///net/u/1/f/fdc/web/bronx713.jpg
919. file:///net/u/1/f/fdc/web/bronx714.jpg
920. file:///net/u/1/f/fdc/web/bronx715.jpg
921. file:///net/u/1/f/fdc/web/bronx716.jpg
922. file:///net/u/1/f/fdc/web/bronx717.jpg
923. file:///net/u/1/f/fdc/web/bronx718.jpg
924. file:///net/u/1/f/fdc/web/bronx719.jpg
925. file:///net/u/1/f/fdc/web/bronx72.jpg
926. file:///net/u/1/f/fdc/web/bronx720.jpg
927. file:///net/u/1/f/fdc/web/bronx721.jpg
928. file:///net/u/1/f/fdc/web/bronx722.jpg
929. file:///net/u/1/f/fdc/web/bronx723.jpg
930. file:///net/u/1/f/fdc/web/bronx724.jpg
931. file:///net/u/1/f/fdc/web/bronx725.jpg
932. file:///net/u/1/f/fdc/web/bronx726.jpg
933. file:///net/u/1/f/fdc/web/bronx727.jpg
934. file:///net/u/1/f/fdc/web/bronx728.jpg
935. file:///net/u/1/f/fdc/web/bronx729.jpg
936. file:///net/u/1/f/fdc/web/bronx73.jpg
937. file:///net/u/1/f/fdc/web/bronx730.jpg
938. file:///net/u/1/f/fdc/web/bronx731.jpg
939. file:///net/u/1/f/fdc/web/bronx732.jpg
940. file:///net/u/1/f/fdc/web/bronx733.jpg
941. file:///net/u/1/f/fdc/web/bronx734.jpg
942. file:///net/u/1/f/fdc/web/bronx735.jpg
943. file:///net/u/1/f/fdc/web/bronx736.jpg
944. file:///net/u/1/f/fdc/web/bronx737.jpg
945. file:///net/u/1/f/fdc/web/bronx738.jpg
946. file:///net/u/1/f/fdc/web/bronx739.jpg
947. file:///net/u/1/f/fdc/web/bronx74.jpg
948. file:///net/u/1/f/fdc/web/bronx740.jpg
949. file:///net/u/1/f/fdc/web/bronx741.jpg
950. file:///net/u/1/f/fdc/web/bronx742.jpg
951. file:///net/u/1/f/fdc/web/bronx743.jpg
952. file:///net/u/1/f/fdc/web/bronx744.jpg
953. file:///net/u/1/f/fdc/web/bronx745.jpg
954. file:///net/u/1/f/fdc/web/bronx746.jpg
955. file:///net/u/1/f/fdc/web/bronx747.jpg
956. file:///net/u/1/f/fdc/web/bronx748.html
957. file:///net/u/1/f/fdc/web/bronx748.jpg
958. file:///net/u/1/f/fdc/web/bronx749.jpg
959. file:///net/u/1/f/fdc/web/bronx75.jpg
960. file:///net/u/1/f/fdc/web/bronx750.jpg
961. file:///net/u/1/f/fdc/web/bronx751.jpg
962. file:///net/u/1/f/fdc/web/bronx752.jpg
963. file:///net/u/1/f/fdc/web/bronx753.jpg
964. file:///net/u/1/f/fdc/web/bronx754.jpg
965. file:///net/u/1/f/fdc/web/bronx755.jpg
966. file:///net/u/1/f/fdc/web/bronx756.jpg
967. file:///net/u/1/f/fdc/web/bronx757.jpg
968. file:///net/u/1/f/fdc/web/bronx758.jpg
969. file:///net/u/1/f/fdc/web/bronx759.jpg
970. file:///net/u/1/f/fdc/web/bronx76.jpg
971. file:///net/u/1/f/fdc/web/bronx760.jpg
972. file:///net/u/1/f/fdc/web/bronx761.jpg
973. file:///net/u/1/f/fdc/web/bronx762.jpg
974. file:///net/u/1/f/fdc/web/bronx763.jpg
975. file:///net/u/1/f/fdc/web/bronx764.jpg
976. file:///net/u/1/f/fdc/web/bronx765.jpg
977. file:///net/u/1/f/fdc/web/bronx766.jpg
978. file:///net/u/1/f/fdc/web/bronx767.jpg
979. file:///net/u/1/f/fdc/web/bronx768.jpg
980. file:///net/u/1/f/fdc/web/bronx769.jpg
981. file:///net/u/1/f/fdc/web/bronx77.jpg
982. file:///net/u/1/f/fdc/web/bronx770.jpg
983. file:///net/u/1/f/fdc/web/bronx771.jpg
984. file:///net/u/1/f/fdc/web/bronx772.jpg
985. file:///net/u/1/f/fdc/web/bronx773.jpg
986. file:///net/u/1/f/fdc/web/bronx774.jpg
987. file:///net/u/1/f/fdc/web/bronx775.jpg
988. file:///net/u/1/f/fdc/web/bronx776.jpg
989. file:///net/u/1/f/fdc/web/bronx777.jpg
990. file:///net/u/1/f/fdc/web/bronx778.jpg
991. file:///net/u/1/f/fdc/web/bronx779.jpg
992. file:///net/u/1/f/fdc/web/bronx78.jpg
993. file:///net/u/1/f/fdc/web/bronx780.jpg
994. file:///net/u/1/f/fdc/web/bronx781.jpg
995. file:///net/u/1/f/fdc/web/bronx782.jpg
996. file:///net/u/1/f/fdc/web/bronx783.jpg
997. file:///net/u/1/f/fdc/web/bronx784.jpg
998. file:///net/u/1/f/fdc/web/bronx785.jpg
999. file:///net/u/1/f/fdc/web/bronx786.jpg
1000. file:///net/u/1/f/fdc/web/bronx787.jpg
1001. file:///net/u/1/f/fdc/web/bronx788.jpg
1002. file:///net/u/1/f/fdc/web/bronx789.jpg
1003. file:///net/u/1/f/fdc/web/bronx79.jpg
1004. file:///net/u/1/f/fdc/web/bronx790.jpg
1005. file:///net/u/1/f/fdc/web/bronx791.jpg
1006. file:///net/u/1/f/fdc/web/bronx792.jpg
1007. file:///net/u/1/f/fdc/web/bronx793.jpg
1008. file:///net/u/1/f/fdc/web/bronx794.jpg
1009. file:///net/u/1/f/fdc/web/bronx795.jpg
1010. file:///net/u/1/f/fdc/web/bronx796.jpg
1011. file:///net/u/1/f/fdc/web/bronx797.jpg
1012. file:///net/u/1/f/fdc/web/bronx798.jpg
1013. file:///net/u/1/f/fdc/web/bronx799.jpg
1014. file:///net/u/1/f/fdc/web/bronx8.jpg
1015. file:///net/u/1/f/fdc/web/bronx80.jpg
1016. file:///net/u/1/f/fdc/web/bronx800.jpg
1017. file:///net/u/1/f/fdc/web/bronx801.jpg
1018. file:///net/u/1/f/fdc/web/bronx802.jpg
1019. file:///net/u/1/f/fdc/web/bronx803.jpg
1020. file:///net/u/1/f/fdc/web/bronx804.jpg
1021. file:///net/u/1/f/fdc/web/bronx805.jpg
1022. file:///net/u/1/f/fdc/web/bronx806.jpg
1023. file:///net/u/1/f/fdc/web/bronx807.jpg
1024. file:///net/u/1/f/fdc/web/bronx808.jpg
1025. file:///net/u/1/f/fdc/web/bronx809.jpg
1026. file:///net/u/1/f/fdc/web/bronx81.jpg
1027. file:///net/u/1/f/fdc/web/bronx810.jpg
1028. file:///net/u/1/f/fdc/web/bronx811.jpg
1029. file:///net/u/1/f/fdc/web/bronx812.jpg
1030. file:///net/u/1/f/fdc/web/bronx813.jpg
1031. file:///net/u/1/f/fdc/web/bronx814.jpg
1032. file:///net/u/1/f/fdc/web/bronx815.jpg
1033. file:///net/u/1/f/fdc/web/bronx816.jpg
1034. file:///net/u/1/f/fdc/web/bronx817.jpg
1035. file:///net/u/1/f/fdc/web/bronx818.jpg
1036. file:///net/u/1/f/fdc/web/bronx819.jpg
1037. file:///net/u/1/f/fdc/web/bronx82.jpg
1038. file:///net/u/1/f/fdc/web/bronx820.jpg
1039. file:///net/u/1/f/fdc/web/bronx821.jpg
1040. file:///net/u/1/f/fdc/web/bronx822.jpg
1041. file:///net/u/1/f/fdc/web/bronx823.jpg
1042. file:///net/u/1/f/fdc/web/bronx824.jpg
1043. file:///net/u/1/f/fdc/web/bronx825.jpg
1044. file:///net/u/1/f/fdc/web/bronx826.jpg
1045. file:///net/u/1/f/fdc/web/bronx827.jpg
1046. file:///net/u/1/f/fdc/web/bronx828.jpg
1047. file:///net/u/1/f/fdc/web/bronx829.jpg
1048. file:///net/u/1/f/fdc/web/bronx83.jpg
1049. file:///net/u/1/f/fdc/web/bronx830.jpg
1050. file:///net/u/1/f/fdc/web/bronx831.jpg
1051. file:///net/u/1/f/fdc/web/bronx832.jpg
1052. file:///net/u/1/f/fdc/web/bronx833.jpg
1053. file:///net/u/1/f/fdc/web/bronx834.jpg
1054. file:///net/u/1/f/fdc/web/bronx835.jpg
1055. file:///net/u/1/f/fdc/web/bronx836.jpg
1056. file:///net/u/1/f/fdc/web/bronx837.jpg
1057. file:///net/u/1/f/fdc/web/bronx838.jpg
1058. file:///net/u/1/f/fdc/web/bronx839.jpg
1059. file:///net/u/1/f/fdc/web/bronx84.jpg
1060. file:///net/u/1/f/fdc/web/bronx840.jpg
1061. file:///net/u/1/f/fdc/web/bronx841.jpg
1062. file:///net/u/1/f/fdc/web/bronx842.jpg
1063. file:///net/u/1/f/fdc/web/bronx843.jpg
1064. file:///net/u/1/f/fdc/web/bronx844.jpg
1065. file:///net/u/1/f/fdc/web/bronx845.jpg
1066. file:///net/u/1/f/fdc/web/bronx846.jpg
1067. file:///net/u/1/f/fdc/web/bronx847.jpg
1068. file:///net/u/1/f/fdc/web/bronx848.jpg
1069. file:///net/u/1/f/fdc/web/bronx849.jpg
1070. file:///net/u/1/f/fdc/web/bronx85.jpg
1071. file:///net/u/1/f/fdc/web/bronx850.jpg
1072. file:///net/u/1/f/fdc/web/bronx851.jpg
1073. file:///net/u/1/f/fdc/web/bronx852.jpg
1074. file:///net/u/1/f/fdc/web/bronx853.jpg
1075. file:///net/u/1/f/fdc/web/bronx854.jpg
1076. file:///net/u/1/f/fdc/web/bronx855.jpg
1077. file:///net/u/1/f/fdc/web/bronx856.jpg
1078. file:///net/u/1/f/fdc/web/bronx857.jpg
1079. file:///net/u/1/f/fdc/web/bronx858.jpg
1080. file:///net/u/1/f/fdc/web/bronx859.jpg
1081. file:///net/u/1/f/fdc/web/bronx86.jpg
1082. file:///net/u/1/f/fdc/web/bronx860.jpg
1083. file:///net/u/1/f/fdc/web/bronx861.jpg
1084. file:///net/u/1/f/fdc/web/bronx862.jpg
1085. file:///net/u/1/f/fdc/web/bronx863.jpg
1086. file:///net/u/1/f/fdc/web/bronx864.jpg
1087. file:///net/u/1/f/fdc/web/bronx865.jpg
1088. file:///net/u/1/f/fdc/web/bronx866.jpg
1089. file:///net/u/1/f/fdc/web/bronx867.jpg
1090. file:///net/u/1/f/fdc/web/bronx868.jpg
1091. file:///net/u/1/f/fdc/web/bronx869.jpg
1092. file:///net/u/1/f/fdc/web/bronx87.jpg
1093. file:///net/u/1/f/fdc/web/bronx870.jpg
1094. file:///net/u/1/f/fdc/web/bronx871.jpg
1095. file:///net/u/1/f/fdc/web/bronx872.jpg
1096. file:///net/u/1/f/fdc/web/bronx873.jpg
1097. file:///net/u/1/f/fdc/web/bronx874.jpg
1098. file:///net/u/1/f/fdc/web/bronx875.jpg
1099. file:///net/u/1/f/fdc/web/bronx876.jpg
1100. file:///net/u/1/f/fdc/web/bronx877.jpg
1101. file:///net/u/1/f/fdc/web/bronx878.jpg
1102. file:///net/u/1/f/fdc/web/bronx879.jpg
1103. file:///net/u/1/f/fdc/web/bronx88.jpg
1104. file:///net/u/1/f/fdc/web/bronx880.jpg
1105. file:///net/u/1/f/fdc/web/bronx881.jpg
1106. file:///net/u/1/f/fdc/web/bronx882.jpg
1107. file:///net/u/1/f/fdc/web/bronx883.jpg
1108. file:///net/u/1/f/fdc/web/bronx884.jpg
1109. file:///net/u/1/f/fdc/web/bronx885.jpg
1110. file:///net/u/1/f/fdc/web/bronx886.jpg
1111. file:///net/u/1/f/fdc/web/bronx887.jpg
1112. file:///net/u/1/f/fdc/web/bronx888.jpg
1113. file:///net/u/1/f/fdc/web/bronx889.jpg
1114. file:///net/u/1/f/fdc/web/bronx89.jpg
1115. file:///net/u/1/f/fdc/web/bronx890.jpg
1116. file:///net/u/1/f/fdc/web/bronx891.jpg
1117. file:///net/u/1/f/fdc/web/bronx892.jpg
1118. file:///net/u/1/f/fdc/web/bronx893.jpg
1119. file:///net/u/1/f/fdc/web/bronx894.jpg
1120. file:///net/u/1/f/fdc/web/bronx895.jpg
1121. file:///net/u/1/f/fdc/web/bronx896.jpg
1122. file:///net/u/1/f/fdc/web/bronx897.jpg
1123. file:///net/u/1/f/fdc/web/bronx898.jpg
1124. file:///net/u/1/f/fdc/web/bronx899.jpg
1125. file:///net/u/1/f/fdc/web/bronx9.jpg
1126. file:///net/u/1/f/fdc/web/bronx90.jpg
1127. file:///net/u/1/f/fdc/web/bronx900.jpg
1128. file:///net/u/1/f/fdc/web/bronx901.jpg
1129. file:///net/u/1/f/fdc/web/bronx902.jpg
1130. file:///net/u/1/f/fdc/web/bronx903.jpg
1131. file:///net/u/1/f/fdc/web/bronx904.jpg
1132. file:///net/u/1/f/fdc/web/bronx905.jpg
1133. file:///net/u/1/f/fdc/web/bronx906.jpg
1134. file:///net/u/1/f/fdc/web/bronx907.jpg
1135. file:///net/u/1/f/fdc/web/bronx908.jpg
1136. file:///net/u/1/f/fdc/web/bronx909.jpg
1137. file:///net/u/1/f/fdc/web/bronx91.jpg
1138. file:///net/u/1/f/fdc/web/bronx910.jpg
1139. file:///net/u/1/f/fdc/web/bronx911.jpg
1140. file:///net/u/1/f/fdc/web/bronx912.jpg
1141. file:///net/u/1/f/fdc/web/bronx913.jpg
1142. file:///net/u/1/f/fdc/web/bronx914.jpg
1143. file:///net/u/1/f/fdc/web/bronx915.jpg
1144. file:///net/u/1/f/fdc/web/bronx916.jpg
1145. file:///net/u/1/f/fdc/web/bronx917.jpg
1146. file:///net/u/1/f/fdc/web/bronx918.jpg
1147. file:///net/u/1/f/fdc/web/bronx919.jpg
1148. file:///net/u/1/f/fdc/web/bronx92.jpg
1149. file:///net/u/1/f/fdc/web/bronx920.jpg
1150. file:///net/u/1/f/fdc/web/bronx921.jpg
1151. file:///net/u/1/f/fdc/web/bronx922.jpg
1152. file:///net/u/1/f/fdc/web/bronx923.jpg
1153. file:///net/u/1/f/fdc/web/bronx924.jpg
1154. file:///net/u/1/f/fdc/web/bronx925.jpg
1155. file:///net/u/1/f/fdc/web/bronx926.jpg
1156. file:///net/u/1/f/fdc/web/bronx927.jpg
1157. file:///net/u/1/f/fdc/web/bronx928.jpg
1158. file:///net/u/1/f/fdc/web/bronx929.jpg
1159. file:///net/u/1/f/fdc/web/bronx93.jpg
1160. file:///net/u/1/f/fdc/web/bronx930.jpg
1161. file:///net/u/1/f/fdc/web/bronx931.jpg
1162. file:///net/u/1/f/fdc/web/bronx932.jpg
1163. file:///net/u/1/f/fdc/web/bronx933.jpg
1164. file:///net/u/1/f/fdc/web/bronx934.jpg
1165. file:///net/u/1/f/fdc/web/bronx935.jpg
1166. file:///net/u/1/f/fdc/web/bronx936.jpg
1167. file:///net/u/1/f/fdc/web/bronx937.jpg
1168. file:///net/u/1/f/fdc/web/bronx938.jpg
1169. file:///net/u/1/f/fdc/web/bronx939.jpg
1170. file:///net/u/1/f/fdc/web/bronx94.jpg
1171. file:///net/u/1/f/fdc/web/bronx940.jpg
1172. file:///net/u/1/f/fdc/web/bronx941.jpg
1173. file:///net/u/1/f/fdc/web/bronx942.jpg
1174. file:///net/u/1/f/fdc/web/bronx943.jpg
1175. file:///net/u/1/f/fdc/web/bronx944.jpg
1176. file:///net/u/1/f/fdc/web/bronx945.jpg
1177. file:///net/u/1/f/fdc/web/bronx946.jpg
1178. file:///net/u/1/f/fdc/web/bronx947.jpg
1179. file:///net/u/1/f/fdc/web/bronx948.jpg
1180. file:///net/u/1/f/fdc/web/bronx949.jpg
1181. file:///net/u/1/f/fdc/web/bronx95.jpg
1182. file:///net/u/1/f/fdc/web/bronx950.jpg
1183. file:///net/u/1/f/fdc/web/bronx951.jpg
1184. file:///net/u/1/f/fdc/web/bronx952.jpg
1185. file:///net/u/1/f/fdc/web/bronx953.jpg
1186. file:///net/u/1/f/fdc/web/bronx954.jpg
1187. file:///net/u/1/f/fdc/web/bronx955.jpg
1188. file:///net/u/1/f/fdc/web/bronx956.jpg
1189. file:///net/u/1/f/fdc/web/bronx957.jpg
1190. file:///net/u/1/f/fdc/web/bronx958.jpg
1191. file:///net/u/1/f/fdc/web/bronx959.jpg
1192. file:///net/u/1/f/fdc/web/bronx96.jpg
1193. file:///net/u/1/f/fdc/web/bronx960.jpg
1194. file:///net/u/1/f/fdc/web/bronx961.jpg
1195. file:///net/u/1/f/fdc/web/bronx962.jpg
1196. file:///net/u/1/f/fdc/web/bronx963.jpg
1197. file:///net/u/1/f/fdc/web/bronx964.jpg
1198. file:///net/u/1/f/fdc/web/bronx965.jpg
1199. file:///net/u/1/f/fdc/web/bronx966.jpg
1200. file:///net/u/1/f/fdc/web/bronx967.jpg
1201. file:///net/u/1/f/fdc/web/bronx968.jpg
1202. file:///net/u/1/f/fdc/web/bronx969.jpg
1203. file:///net/u/1/f/fdc/web/bronx97.jpg
1204. file:///net/u/1/f/fdc/web/bronx970.jpg
1205. file:///net/u/1/f/fdc/web/bronx971.jpg
1206. file:///net/u/1/f/fdc/web/bronx972.jpg
1207. file:///net/u/1/f/fdc/web/bronx973.jpg
1208. file:///net/u/1/f/fdc/web/bronx974.jpg
1209. file:///net/u/1/f/fdc/web/bronx975.jpg
1210. file:///net/u/1/f/fdc/web/bronx976.jpg
1211. file:///net/u/1/f/fdc/web/bronx977.jpg
1212. file:///net/u/1/f/fdc/web/bronx978.jpg
1213. file:///net/u/1/f/fdc/web/bronx979.jpg
1214. file:///net/u/1/f/fdc/web/bronx98.jpg
1215. file:///net/u/1/f/fdc/web/bronx980.jpg
1216. file:///net/u/1/f/fdc/web/bronx981.jpg
1217. file:///net/u/1/f/fdc/web/bronx982.jpg
1218. file:///net/u/1/f/fdc/web/bronx983.jpg
1219. file:///net/u/1/f/fdc/web/bronx984.jpg
1220. file:///net/u/1/f/fdc/web/bronx985.jpg
1221. file:///net/u/1/f/fdc/web/bronx986.jpg
1222. file:///net/u/1/f/fdc/web/bronx987.jpg
1223. file:///net/u/1/f/fdc/web/bronx988.jpg
1224. file:///net/u/1/f/fdc/web/bronx989.jpg
1225. file:///net/u/1/f/fdc/web/bronx99.jpg
1226. file:///net/u/1/f/fdc/web/bronx990.jpg
1227. file:///net/u/1/f/fdc/web/bronx991.jpg
1228. file:///net/u/1/f/fdc/web/bronx992.jpg
1229. file:///net/u/1/f/fdc/web/bronx993.jpg
1230. file:///net/u/1/f/fdc/web/bronx994.jpg
1231. file:///net/u/1/f/fdc/web/bronx995.jpg
1232. file:///net/u/1/f/fdc/web/bronx996.jpg
1233. file:///net/u/1/f/fdc/web/bronx997.jpg
1234. file:///net/u/1/f/fdc/web/bronx998.jpg
1235. file:///net/u/1/f/fdc/web/bronx999.jpg
1236. file:///net/u/1/f/fdc/web/bronxgallery-220.jpg
1237. file:///net/u/1/f/fdc/web/bronxgallery.jpg
1238. file:///net/u/1/f/fdc/web/bronxgallery0-700.jpg
1239. file:///net/u/1/f/fdc/web/bronxgallery0-740.jpg
1240. file:///net/u/1/f/fdc/web/bronxgallery0.jpg
1241. file:///net/u/1/f/fdc/web/brooklyn.gif
1242. file:///net/u/1/f/fdc/web/bugs01.jpg
1243. file:///net/u/1/f/fdc/web/bugs02.jpg
1244. file:///net/u/1/f/fdc/web/burmese.utf8
1245. file:///net/u/1/f/fdc/web/buttons1968-strip-100.jpg
1246. file:///net/u/1/f/fdc/web/buttons1968-strip-80.jpg
1247. file:///net/u/1/f/fdc/web/bwaylocal.jpg
1248. file:///net/u/1/f/fdc/web/bxday
1249. file:///net/u/1/f/fdc/web/bxphotos.html
1250. file:///net/u/1/f/fdc/web/bxphotos.html.%7E1%7E
1251. file:///net/u/1/f/fdc/web/c64.html
1252. file:///net/u/1/f/fdc/web/cable.html
1253. file:///net/u/1/f/fdc/web/cable.html.%7E1%7E
1254. file:///net/u/1/f/fdc/web/cables.html
1255. file:///net/u/1/f/fdc/web/cables.html.1
1256. file:///net/u/1/f/fdc/web/cables.html.%7E1%7E
1257. file:///net/u/1/f/fdc/web/cables.html.%7E2%7E
1258. file:///net/u/1/f/fdc/web/campus.jpg
1259. file:///net/u/1/f/fdc/web/campus2.jpg
1260. file:///net/u/1/f/fdc/web/campus3.jpg
1261. file:///net/u/1/f/fdc/web/campus4.jpg
1262. file:///net/u/1/f/fdc/web/cancelation.html
1263. file:///net/u/1/f/fdc/web/cancellation.html
1264. file:///net/u/1/f/fdc/web/card2-40.jpg
1265. file:///net/u/1/f/fdc/web/card2-80.jpg
1266. file:///net/u/1/f/fdc/web/case01.html
1267. file:///net/u/1/f/fdc/web/case02.html
1268. file:///net/u/1/f/fdc/web/case03.html
1269. file:///net/u/1/f/fdc/web/case04.html
1270. file:///net/u/1/f/fdc/web/case05.html
1271. file:///net/u/1/f/fdc/web/case06.html
1272. file:///net/u/1/f/fdc/web/case07.html
1273. file:///net/u/1/f/fdc/web/case08.html
1274. file:///net/u/1/f/fdc/web/case08.html.%7E1%7E
1275. file:///net/u/1/f/fdc/web/case09.html
1276. file:///net/u/1/f/fdc/web/case09.html.%7E1%7E
1277. file:///net/u/1/f/fdc/web/case09.html.%7E2%7E
1278. file:///net/u/1/f/fdc/web/case10.html
1279. file:///net/u/1/f/fdc/web/case11.html
1280. file:///net/u/1/f/fdc/web/case12.html
1281. file:///net/u/1/f/fdc/web/case13.html
1282. file:///net/u/1/f/fdc/web/case14.html
1283. file:///net/u/1/f/fdc/web/case15.html
1284. file:///net/u/1/f/fdc/web/case16.html
1285. file:///net/u/1/f/fdc/web/case17.html
1286. file:///net/u/1/f/fdc/web/case18.html
1287. file:///net/u/1/f/fdc/web/case19.html
1288. file:///net/u/1/f/fdc/web/case20.html
1289. file:///net/u/1/f/fdc/web/case21.html
1290. file:///net/u/1/f/fdc/web/case21x.html
1291. file:///net/u/1/f/fdc/web/case22.html
1292. file:///net/u/1/f/fdc/web/case23.html
1293. file:///net/u/1/f/fdc/web/case24.html
1294. file:///net/u/1/f/fdc/web/case25.html
1295. file:///net/u/1/f/fdc/web/case26.html
1296. file:///net/u/1/f/fdc/web/case27.html
1297. file:///net/u/1/f/fdc/web/case28.html
1298. file:///net/u/1/f/fdc/web/case29.html
1299. file:///net/u/1/f/fdc/web/case29.html.%7E1%7E
1300. file:///net/u/1/f/fdc/web/castle.gif
1301. file:///net/u/1/f/fdc/web/castlesm.gif
1302. file:///net/u/1/f/fdc/web/catalog.html
1303. file:///net/u/1/f/fdc/web/ccfoo.html
1304. file:///net/u/1/f/fdc/web/cd4.gif
1305. file:///net/u/1/f/fdc/web/cd4.html
1306. file:///net/u/1/f/fdc/web/cd4x.gif
1307. file:///net/u/1/f/fdc/web/change
1308. file:///net/u/1/f/fdc/web/change.html
1309. file:///net/u/1/f/fdc/web/change.html.%7E1%7E
1310. file:///net/u/1/f/fdc/web/change.html.%7E2%7E
1311. file:///net/u/1/f/fdc/web/change.html.%7E4%7E
1312. file:///net/u/1/f/fdc/web/change.html.%7E5%7E
1313. file:///net/u/1/f/fdc/web/charsets.html
1314. file:///net/u/1/f/fdc/web/chbw-strip1-100.jpg
1315. file:///net/u/1/f/fdc/web/chm-joe-doupnik.pdf
1316. file:///net/u/1/f/fdc/web/chm-oral-history.pdf
1317. file:///net/u/1/f/fdc/web/cis_tiny.gif
1318. file:///net/u/1/f/fdc/web/city3.gif
1319. file:///net/u/1/f/fdc/web/ck300.html
1320. file:///net/u/1/f/fdc/web/ck60-save.html
1321. file:///net/u/1/f/fdc/web/ck60.html
1322. file:///net/u/1/f/fdc/web/ck60ftpic.html
1323. file:///net/u/1/f/fdc/web/ck60manual.html
1324. file:///net/u/1/f/fdc/web/ck60specs.html
1325. file:///net/u/1/f/fdc/web/ck60src.html
1326. file:///net/u/1/f/fdc/web/ck60text.html
1327. file:///net/u/1/f/fdc/web/ck60unixes.html
1328. file:///net/u/1/f/fdc/web/ck60vbin.html
1329. file:///net/u/1/f/fdc/web/ck61.html
1330. file:///net/u/1/f/fdc/web/ck70-final.html
1331. file:///net/u/1/f/fdc/web/ck70.gif
1332. file:///net/u/1/f/fdc/web/ck70.html
1333. file:///net/u/1/f/fdc/web/ck70.html.%7E1%7E
1334. file:///net/u/1/f/fdc/web/ck70b07.html
1335. file:///net/u/1/f/fdc/web/ck70b10.html
1336. file:///net/u/1/f/fdc/web/ck70bugs.html
1337. file:///net/u/1/f/fdc/web/ck70cd-r.jpg
1338. file:///net/u/1/f/fdc/web/ck70cd-t.jpg
1339. file:///net/u/1/f/fdc/web/ck70cd.html
1340. file:///net/u/1/f/fdc/web/ck70cd.jpg
1341. file:///net/u/1/f/fdc/web/ck70cdorder.html
1342. file:///net/u/1/f/fdc/web/ck70news.html
1343. file:///net/u/1/f/fdc/web/ck70sm.jpg
1344. file:///net/u/1/f/fdc/web/ck70specs.html
1345. file:///net/u/1/f/fdc/web/ck71a04.html
1346. file:///net/u/1/f/fdc/web/ck80208ann.html
1347. file:///net/u/1/f/fdc/web/ck80ann.html
1348. file:///net/u/1/f/fdc/web/ck80b04.html
1349. file:///net/u/1/f/fdc/web/ck80bugs.html
1350. file:///net/u/1/f/fdc/web/ck80cd-450.jpg
1351. file:///net/u/1/f/fdc/web/ck80cd.html
1352. file:///net/u/1/f/fdc/web/ck80specs.html
1353. file:///net/u/1/f/fdc/web/ck90.html
1354. file:///net/u/1/f/fdc/web/ck90.html.%7E19%7E
1355. file:///net/u/1/f/fdc/web/ck90.html.%7E1%7E
1356. file:///net/u/1/f/fdc/web/ck90.html.%7E20%7E
1357. file:///net/u/1/f/fdc/web/ck90.html.%7E2%7E
1358. file:///net/u/1/f/fdc/web/ck90a02.html
1359. file:///net/u/1/f/fdc/web/ck90a02tables.html
1360. file:///net/u/1/f/fdc/web/ck90a03.html
1361. file:///net/u/1/f/fdc/web/ck90a03tables.html
1362. file:///net/u/1/f/fdc/web/ck90notes.html
1363. file:///net/u/1/f/fdc/web/ck90save.html
1364. file:///net/u/1/f/fdc/web/ck90specs.html
1365. file:///net/u/1/f/fdc/web/ck90tables.html
1366. file:///net/u/1/f/fdc/web/ck90tables.html.%7E1%7E
1367. file:///net/u/1/f/fdc/web/ck90tables.html.%7E2%7E
1368. file:///net/u/1/f/fdc/web/ck90tables.html.%7E4%7E
1369. file:///net/u/1/f/fdc/web/ck90tables.html.%7E5%7E
1370. file:///net/u/1/f/fdc/web/ck90updates.html
1371. file:///net/u/1/f/fdc/web/ck_64bit.html
1372. file:///net/u/1/f/fdc/web/ck_i.gif
1373. file:///net/u/1/f/fdc/web/ckb-100.jpg
1374. file:///net/u/1/f/fdc/web/ckb-150.jpg
1375. file:///net/u/1/f/fdc/web/ckb-180.jpg
1376. file:///net/u/1/f/fdc/web/ckb-200.jpg
1377. file:///net/u/1/f/fdc/web/ckb-280.jpg
1378. file:///net/u/1/f/fdc/web/ckb-600.jpg
1379. file:///net/u/1/f/fdc/web/ckb-80.jpg
1380. file:///net/u/1/f/fdc/web/ckb-r.jpg
1381. file:///net/u/1/f/fdc/web/ckb-t.jpg
1382. file:///net/u/1/f/fdc/web/ckb.html
1383. file:///net/u/1/f/fdc/web/ckb.jpg
1384. file:///net/u/1/f/fdc/web/ckb1e-150.jpg
1385. file:///net/u/1/f/fdc/web/ckb1e-280.jpg
1386. file:///net/u/1/f/fdc/web/ckb1e-600.jpg
1387. file:///net/u/1/f/fdc/web/ckb2.gif
1388. file:///net/u/1/f/fdc/web/ckb2.html
1389. file:///net/u/1/f/fdc/web/ckb2en_i.gif
1390. file:///net/u/1/f/fdc/web/ckbde-100.jpg
1391. file:///net/u/1/f/fdc/web/ckbde-150.jpg
1392. file:///net/u/1/f/fdc/web/ckbde-280.jpg
1393. file:///net/u/1/f/fdc/web/ckbde-600.jpg
1394. file:///net/u/1/f/fdc/web/ckbde_i.gif
1395. file:///net/u/1/f/fdc/web/ckbde_i.gif.cu
1396. file:///net/u/1/f/fdc/web/ckben_i.gif
1397. file:///net/u/1/f/fdc/web/ckbinaries.html
1398. file:///net/u/1/f/fdc/web/ckbinaries.html.%7E1%7E
1399. file:///net/u/1/f/fdc/web/ckbinaries.html.%7E2%7E
1400. file:///net/u/1/f/fdc/web/ckbinaries.html.%7E3%7E
1401. file:///net/u/1/f/fdc/web/ckbinaries.html.%7E4%7E
1402. file:///net/u/1/f/fdc/web/ckbindex.html
1403. file:///net/u/1/f/fdc/web/ckborder.html
1404. file:///net/u/1/f/fdc/web/ckbreviews.html
1405. file:///net/u/1/f/fdc/web/ckbupdates.html
1406. file:///net/u/1/f/fdc/web/ckbw.gif
1407. file:///net/u/1/f/fdc/web/ckc206.html
1408. file:///net/u/1/f/fdc/web/ckc208.html
1409. file:///net/u/1/f/fdc/web/ckc209.html
1410. file:///net/u/1/f/fdc/web/ckc211.html
1411. file:///net/u/1/f/fdc/web/ckc212-dev28.html
1412. file:///net/u/1/f/fdc/web/ckc212.html
1413. file:///net/u/1/f/fdc/web/ckc212.sav
1414. file:///net/u/1/f/fdc/web/ckc300.html
1415. file:///net/u/1/f/fdc/web/ckc301.html
1416. file:///net/u/1/f/fdc/web/ckc302.html
1417. file:///net/u/1/f/fdc/web/ckcbwr.html
1418. file:///net/u/1/f/fdc/web/ckcbwr.html.%7E1%7E
1419. file:///net/u/1/f/fdc/web/ckccfg.html
1420. file:///net/u/1/f/fdc/web/ckcdinfo.html
1421. file:///net/u/1/f/fdc/web/ckcker.txt
1422. file:///net/u/1/f/fdc/web/ckcplm.html
1423. file:///net/u/1/f/fdc/web/ckcplm.html.%7E1%7E
1424. file:///net/u/1/f/fdc/web/ckcsets.html
1425. file:///net/u/1/f/fdc/web/ckdaily.html
1426. file:///net/u/1/f/fdc/web/ckdaily.html.%7E1%7E
1427. file:///net/u/1/f/fdc/web/ckdaily.html.%7E2%7E
1428. file:///net/u/1/f/fdc/web/ckdaily.html.%7E33%7E
1429. file:///net/u/1/f/fdc/web/ckdaily.html.%7E34%7E
1430. file:///net/u/1/f/fdc/web/ckermi7.html
1431. file:///net/u/1/f/fdc/web/ckermi8.html
1432. file:///net/u/1/f/fdc/web/ckermi8.html__new
1433. file:///net/u/1/f/fdc/web/ckermi80.html
1434. file:///net/u/1/f/fdc/web/ckermit-np.html
1435. file:///net/u/1/f/fdc/web/ckermit.gif
1436. file:///net/u/1/f/fdc/web/ckermit.html
1437. file:///net/u/1/f/fdc/web/ckermit.jpg
1438. file:///net/u/1/f/fdc/web/ckermit
1439. file:///net/u/1/f/fdc/web/ckermit209.html
1440. file:///net/u/1/f/fdc/web/ckermit211.html
1441. file:///net/u/1/f/fdc/web/ckermit40.html
1442. file:///net/u/1/f/fdc/web/ckermit40.html.%7E1%7E
1443. file:///net/u/1/f/fdc/web/ckermit40.html.%7E2%7E
1444. file:///net/u/1/f/fdc/web/ckermit40.html.%7E3%7E
1445. file:///net/u/1/f/fdc/web/ckermit42.html
1446. file:///net/u/1/f/fdc/web/ckermit42.html.%7E1%7E
1447. file:///net/u/1/f/fdc/web/ckermit42.html.%7E2%7E
1448. file:///net/u/1/f/fdc/web/ckermit42.html.%7E3%7E
1449. file:///net/u/1/f/fdc/web/ckermit70.html
1450. file:///net/u/1/f/fdc/web/ckermit70.html.%7E1%7E
1451. file:///net/u/1/f/fdc/web/ckermit70.html.%7E2%7E
1452. file:///net/u/1/f/fdc/web/ckermit70.html.%7E6%7E
1453. file:///net/u/1/f/fdc/web/ckermit70.html.%7E7%7E
1454. file:///net/u/1/f/fdc/web/ckermit8.pdf
1455. file:///net/u/1/f/fdc/web/ckermit80.html
1456. file:///net/u/1/f/fdc/web/ckermit80.html.%7E1%7E
1457. file:///net/u/1/f/fdc/web/ckermit80.html.%7E2%7E
1458. file:///net/u/1/f/fdc/web/ckermit80.html.%7E4%7E
1459. file:///net/u/1/f/fdc/web/ckermit80.html.%7E5%7E
1460. file:///net/u/1/f/fdc/web/ckermit90.html
1461. file:///net/u/1/f/fdc/web/ckermit90.html.%7E13%7E
1462. file:///net/u/1/f/fdc/web/ckermit90.html.%7E14%7E
1463. file:///net/u/1/f/fdc/web/ckermit90.html.%7E1%7E
1464. file:///net/u/1/f/fdc/web/ckermit90.html.%7E2%7E
1465. file:///net/u/1/f/fdc/web/ckfaq.html
1466. file:///net/u/1/f/fdc/web/ckfaq.html.%7E1%7E
1467. file:///net/u/1/f/fdc/web/ckfaq.html.%7E2%7E
1468. file:///net/u/1/f/fdc/web/ckfaq.html.%7E3%7E
1469. file:///net/u/1/f/fdc/web/ckfunctions.html
1470. file:///net/u/1/f/fdc/web/ckfunctions.html.%7E1%7E
1471. file:///net/u/1/f/fdc/web/ckfunctions.html.%7E2%7E
1472. file:///net/u/1/f/fdc/web/ckfunctions.html.%7E8%7E
1473. file:///net/u/1/f/fdc/web/ckfunctions.html.%7E9%7E
1474. file:///net/u/1/f/fdc/web/ckglibc228.diff
1475. file:///net/u/1/f/fdc/web/cklicense.html
1476. file:///net/u/1/f/fdc/web/ckmanual-cz.html
1477. file:///net/u/1/f/fdc/web/ckmanual-cz.html.%7E1%7E
1478. file:///net/u/1/f/fdc/web/ckmanual.html
1479. file:///net/u/1/f/fdc/web/ckmker.pdf
1480. file:///net/u/1/f/fdc/web/ckmker.ps
1481. file:///net/u/1/f/fdc/web/ckmkerdoc.txt
1482. file:///net/u/1/f/fdc/web/cknotes.html
1483. file:///net/u/1/f/fdc/web/cko191.html
1484. file:///net/u/1/f/fdc/web/ckpackages.html
1485. file:///net/u/1/f/fdc/web/ckrename.html
1486. file:///net/u/1/f/fdc/web/ckrename.html.%7E1%7E
1487. file:///net/u/1/f/fdc/web/ckreviews.html
1488. file:///net/u/1/f/fdc/web/ckscripts.html
1489. file:///net/u/1/f/fdc/web/ckscripts.html.%7E1%7E
1490. file:///net/u/1/f/fdc/web/ckscripts.html.%7E21%7E
1491. file:///net/u/1/f/fdc/web/ckscripts.html.%7E22%7E
1492. file:///net/u/1/f/fdc/web/ckscripts.html.%7E2%7E
1493. file:///net/u/1/f/fdc/web/cksendbin.html
1494. file:///net/u/1/f/fdc/web/cksettransmit.html
1495. file:///net/u/1/f/fdc/web/cksorder.html
1496. file:///net/u/1/f/fdc/web/ckspecs.html
1497. file:///net/u/1/f/fdc/web/cku301.qnx32-4.25
1498. file:///net/u/1/f/fdc/web/ckubwr.html
1499. file:///net/u/1/f/fdc/web/ckubwr.html.%7E1%7E
1500. file:///net/u/1/f/fdc/web/ckubwr.html.%7E2%7E
1501. file:///net/u/1/f/fdc/web/ckubwr.html.%7E3%7E
1502. file:///net/u/1/f/fdc/web/ckubwr.html.%7E4%7E
1503. file:///net/u/1/f/fdc/web/ckuins.html
1504. file:///net/u/1/f/fdc/web/ckuins.html.untrimmed
1505. file:///net/u/1/f/fdc/web/ckuins.txt
1506. file:///net/u/1/f/fdc/web/ckupdates-90304-dev22.html
1507. file:///net/u/1/f/fdc/web/ckupdates-90305-alpha1.html
1508. file:///net/u/1/f/fdc/web/ckupdates.html
1509. file:///net/u/1/f/fdc/web/ckupdates.html.a1
1510. file:///net/u/1/f/fdc/web/ckupdates.html.%7E1%7E
1511. file:///net/u/1/f/fdc/web/ckupdates.html.%7E2%7E
1512. file:///net/u/1/f/fdc/web/ckupdates.html.%7E8%7E
1513. file:///net/u/1/f/fdc/web/ckupdates.html.%7E9%7E
1514. file:///net/u/1/f/fdc/web/ckututor.html
1515. file:///net/u/1/f/fdc/web/ckututor.html.%7E1%7E
1516. file:///net/u/1/f/fdc/web/ckututor.pdf
1517. file:///net/u/1/f/fdc/web/ckututor80.pdf
1518. file:///net/u/1/f/fdc/web/ckvariables.html
1519. file:///net/u/1/f/fdc/web/ckvariables.html.%7E1%7E
1520. file:///net/u/1/f/fdc/web/ckvariables.html.%7E2%7E
1521. file:///net/u/1/f/fdc/web/ckvariables.html.%7E4%7E
1522. file:///net/u/1/f/fdc/web/ckvariables.html.%7E5%7E
1523. file:///net/u/1/f/fdc/web/ckvbwr.html
1524. file:///net/u/1/f/fdc/web/ckvins.html
1525. file:///net/u/1/f/fdc/web/ckvins.html.%7E1%7E
1526. file:///net/u/1/f/fdc/web/ckvins.html.%7E2%7E
1527. file:///net/u/1/f/fdc/web/ckwindows.html
1528. file:///net/u/1/f/fdc/web/ckwindows.html.%7E1%7E
1529. file:///net/u/1/f/fdc/web/claims.html
1530. file:///net/u/1/f/fdc/web/client.html
1531. file:///net/u/1/f/fdc/web/clubwin.gif
1532. file:///net/u/1/f/fdc/web/colors.gif
1533. file:///net/u/1/f/fdc/web/colorssm.gif
1534. file:///net/u/1/f/fdc/web/commercial.html
1535. file:///net/u/1/f/fdc/web/common.js
1536. file:///net/u/1/f/fdc/web/common.js.1
1537. file:///net/u/1/f/fdc/web/common.js.%7E1%7E
1538. file:///net/u/1/f/fdc/web/common.js.%7E2%7E
1539. file:///net/u/1/f/fdc/web/common.js.%7E40%7E
1540. file:///net/u/1/f/fdc/web/common.js.%7E41%7E
1541. file:///net/u/1/f/fdc/web/compact-substring-notation.html
1542. file:///net/u/1/f/fdc/web/compact-substring-notation.html.%7E1%7E
1543. file:///net/u/1/f/fdc/web/coney.gif
1544. file:///net/u/1/f/fdc/web/coney4.gif
1545. file:///net/u/1/f/fdc/web/coney4.jpg
1546. file:///net/u/1/f/fdc/web/coney5.jpg
1547. file:///net/u/1/f/fdc/web/coney6.jpg
1548. file:///net/u/1/f/fdc/web/connectors-340.jpg
1549. file:///net/u/1/f/fdc/web/connectors-680.jpg
1550. file:///net/u/1/f/fdc/web/connectors-r.jpg
1551. file:///net/u/1/f/fdc/web/connectors-t.jpg
1552. file:///net/u/1/f/fdc/web/connectors.html
1553. file:///net/u/1/f/fdc/web/connectors.jpg
1554. file:///net/u/1/f/fdc/web/cool.gif
1555. file:///net/u/1/f/fdc/web/courier.gif
1556. file:///net/u/1/f/fdc/web/cp1250.html
1557. file:///net/u/1/f/fdc/web/cp1251.html
1558. file:///net/u/1/f/fdc/web/cp1252.html
1559. file:///net/u/1/f/fdc/web/cp1254.html
1560. file:///net/u/1/f/fdc/web/cp437.html
1561. file:///net/u/1/f/fdc/web/cp850.html
1562. file:///net/u/1/f/fdc/web/cp852.html
1563. file:///net/u/1/f/fdc/web/cp856.html
1564. file:///net/u/1/f/fdc/web/cp861.html
1565. file:///net/u/1/f/fdc/web/cp862.html
1566. file:///net/u/1/f/fdc/web/cp866.html
1567. file:///net/u/1/f/fdc/web/cp866.txt
1568. file:///net/u/1/f/fdc/web/cpm.html
1569. file:///net/u/1/f/fdc/web/crown70.gif
1570. file:///net/u/1/f/fdc/web/crown74-lb.gif
1571. file:///net/u/1/f/fdc/web/crownico-lb.gif
1572. file:///net/u/1/f/fdc/web/crownico.gif
1573. file:///net/u/1/f/fdc/web/csetnames.html
1574. file:///net/u/1/f/fdc/web/csetnames.html.untrimmed
1575. file:///net/u/1/f/fdc/web/csets1.gif
1576. file:///net/u/1/f/fdc/web/csets2.gif
1577. file:///net/u/1/f/fdc/web/csets3.gif
1578. file:///net/u/1/f/fdc/web/csettables.html
1579. file:///net/u/1/f/fdc/web/csettables.html.%7E1%7E
1580. file:///net/u/1/f/fdc/web/csettables.html.%7E2%7E
1581. file:///net/u/1/f/fdc/web/csv.html
1582. file:///net/u/1/f/fdc/web/csv.html.%7E1%7E
1583. file:///net/u/1/f/fdc/web/csv.html.%7E2%7E
1584. file:///net/u/1/f/fdc/web/csv.html.%7E3%7E
1585. file:///net/u/1/f/fdc/web/csv.html.%7E4%7E
1586. file:///net/u/1/f/fdc/web/ctv.jpg
1587. file:///net/u/1/f/fdc/web/cu-bsd-license.html
1588. file:///net/u/1/f/fdc/web/cu-home-kermit.jpg
1589. file:///net/u/1/f/fdc/web/cu.htaccess
1590. file:///net/u/1/f/fdc/web/cu_home_subway_crown.jpg
1591. file:///net/u/1/f/fdc/web/cu_logo.gif
1592. file:///net/u/1/f/fdc/web/cudocs
1593. file:///net/u/1/f/fdc/web/cuiksd.html
1594. file:///net/u/1/f/fdc/web/cunix.jpg
1595. file:///net/u/1/f/fdc/web/current.html
1596. file:///net/u/1/f/fdc/web/current.html.%7E1%7E
1597. file:///net/u/1/f/fdc/web/current.html.%7E2%7E
1598. file:///net/u/1/f/fdc/web/cuutf8.html
1599. file:///net/u/1/f/fdc/web/cuutf8.html.%7E1%7E
1600. file:///net/u/1/f/fdc/web/cwsa.gif
1601. file:///net/u/1/f/fdc/web/cyrillic.html
1602. file:///net/u/1/f/fdc/web/d
1603. file:///net/u/1/f/fdc/web/dcbook-99.jpg
1604. file:///net/u/1/f/fdc/web/dcbook.jpg
1605. file:///net/u/1/f/fdc/web/debian
1606. file:///net/u/1/f/fdc/web/debug.gif
1607. file:///net/u/1/f/fdc/web/debug.log
1608. file:///net/u/1/f/fdc/web/debug_sm.gif
1609. file:///net/u/1/f/fdc/web/dec-mcs.html
1610. file:///net/u/1/f/fdc/web/dec20-content.html
1611. file:///net/u/1/f/fdc/web/dec20.html
1612. file:///net/u/1/f/fdc/web/dec20.html.%7E1%7E
1613. file:///net/u/1/f/fdc/web/dec20.html.%7E2%7E
1614. file:///net/u/1/f/fdc/web/dec20.html.%7E3%7E
1615. file:///net/u/1/f/fdc/web/dec20
1616. file:///net/u/1/f/fdc/web/dec20_3.jpg
1617. file:///net/u/1/f/fdc/web/dec20_3a.jpg
1618. file:///net/u/1/f/fdc/web/dec20x.html
1619. file:///net/u/1/f/fdc/web/dec20z.jpg
1620. file:///net/u/1/f/fdc/web/decibm2.jpg
1621. file:///net/u/1/f/fdc/web/decmate-1.jpg
1622. file:///net/u/1/f/fdc/web/decmate.jpg
1623. file:///net/u/1/f/fdc/web/demo
1624. file:///net/u/1/f/fdc/web/demo2
1625. file:///net/u/1/f/fdc/web/desktop
1626. file:///net/u/1/f/fdc/web/dg2_05.jpg
1627. file:///net/u/1/f/fdc/web/dg3.jpg
1628. file:///net/u/1/f/fdc/web/dg470.gif
1629. file:///net/u/1/f/fdc/web/dg_05.jpg
1630. file:///net/u/1/f/fdc/web/diagram-100.jpg
1631. file:///net/u/1/f/fdc/web/diagram-200.jpg
1632. file:///net/u/1/f/fdc/web/diagram.html
1633. file:///net/u/1/f/fdc/web/diagram.html.%7E1%7E
1634. file:///net/u/1/f/fdc/web/diagram.html.%7E2%7E
1635. file:///net/u/1/f/fdc/web/diagram.jpg
1636. file:///net/u/1/f/fdc/web/dial.jpg
1637. file:///net/u/1/f/fdc/web/dial_ico.gif
1638. file:///net/u/1/f/fdc/web/dial_sm.jpg
1639. file:///net/u/1/f/fdc/web/dialscript.html
1640. file:///net/u/1/f/fdc/web/digest.html
1641. file:///net/u/1/f/fdc/web/directory.html
1642. file:///net/u/1/f/fdc/web/dll.html
1643. file:///net/u/1/f/fdc/web/dn.html
1644. file:///net/u/1/f/fdc/web/documentation.html
1645. file:///net/u/1/f/fdc/web/donations.html
1646. file:///net/u/1/f/fdc/web/donations.html.%7E1%7E
1647. file:///net/u/1/f/fdc/web/donations.html.%7E2%7E
1648. file:///net/u/1/f/fdc/web/donations.html.%7E4%7E
1649. file:///net/u/1/f/fdc/web/donations.html.%7E5%7E
1650. file:///net/u/1/f/fdc/web/dylan95.gif
1651. file:///net/u/1/f/fdc/web/e-a-sm.jpg
1652. file:///net/u/1/f/fdc/web/e-academy.html
1653. file:///net/u/1/f/fdc/web/e-academy.jpg
1654. file:///net/u/1/f/fdc/web/ear.html
1655. file:///net/u/1/f/fdc/web/ek-40.jpg
1656. file:///net/u/1/f/fdc/web/ek-80.jpg
1657. file:///net/u/1/f/fdc/web/ek-announce.html
1658. file:///net/u/1/f/fdc/web/ek-head.jpg
1659. file:///net/u/1/f/fdc/web/ek-head2.jpg
1660. file:///net/u/1/f/fdc/web/ek-head3.jpg
1661. file:///net/u/1/f/fdc/web/ek.html
1662. file:///net/u/1/f/fdc/web/ek.html.%7E10%7E
1663. file:///net/u/1/f/fdc/web/ek.html.%7E11%7E
1664. file:///net/u/1/f/fdc/web/ek.html.%7E1%7E
1665. file:///net/u/1/f/fdc/web/ek.html.%7E2%7E
1666. file:///net/u/1/f/fdc/web/ek.jpg
1667. file:///net/u/1/f/fdc/web/em-apex-1.html
1668. file:///net/u/1/f/fdc/web/em-apex-160.jpg
1669. file:///net/u/1/f/fdc/web/em-apex-chute.jpg
1670. file:///net/u/1/f/fdc/web/em-apex-drop.jpg
1671. file:///net/u/1/f/fdc/web/em-apex.html
1672. file:///net/u/1/f/fdc/web/em-apex.html.1
1673. file:///net/u/1/f/fdc/web/em-apex.html.2
1674. file:///net/u/1/f/fdc/web/em-apex.html.%7E2%7E
1675. file:///net/u/1/f/fdc/web/em-apex.jpg
1676. file:///net/u/1/f/fdc/web/em-apex2.html
1677. file:///net/u/1/f/fdc/web/embed.html
1678. file:///net/u/1/f/fdc/web/embedding.html
1679. file:///net/u/1/f/fdc/web/euflag1.jpg
1680. file:///net/u/1/f/fdc/web/euflag2.jpg
1681. file:///net/u/1/f/fdc/web/euro-construct.gif
1682. file:///net/u/1/f/fdc/web/euro.gif
1683. file:///net/u/1/f/fdc/web/euro.html
1684. file:///net/u/1/f/fdc/web/evermont.gif
1685. file:///net/u/1/f/fdc/web/example-160.jpg
1686. file:///net/u/1/f/fdc/web/example.html
1687. file:///net/u/1/f/fdc/web/example.jpg
1688. file:///net/u/1/f/fdc/web/export.html
1689. file:///net/u/1/f/fdc/web/faithful.html
1690. file:///net/u/1/f/fdc/web/fall.css
1691. file:///net/u/1/f/fdc/web/fanfest2013-120.jpg
1692. file:///net/u/1/f/fdc/web/fanfest2013-400.jpg
1693. file:///net/u/1/f/fdc/web/fanfest2013.jpg
1694. file:///net/u/1/f/fdc/web/fanfest2013tail-120.jpg
1695. file:///net/u/1/f/fdc/web/faq-c-arr.html
1696. file:///net/u/1/f/fdc/web/faq-c-bin.html
1697. file:///net/u/1/f/fdc/web/faq-c-bix.html
1698. file:///net/u/1/f/fdc/web/faq-c-bsk.html
1699. file:///net/u/1/f/fdc/web/faq-c-c34.html
1700. file:///net/u/1/f/fdc/web/faq-c-dbk.html
1701. file:///net/u/1/f/fdc/web/faq-c-dir.html
1702. file:///net/u/1/f/fdc/web/faq-c-dll.html
1703. file:///net/u/1/f/fdc/web/faq-c-dvo.html
1704. file:///net/u/1/f/fdc/web/faq-c-ecm.html
1705. file:///net/u/1/f/fdc/web/faq-c-exit.html
1706. file:///net/u/1/f/fdc/web/faq-c-ext.html
1707. file:///net/u/1/f/fdc/web/faq-c-fke.html
1708. file:///net/u/1/f/fdc/web/faq-c-h48.html
1709. file:///net/u/1/f/fdc/web/faq-c-hng.html
1710. file:///net/u/1/f/fdc/web/faq-c-idt.html
1711. file:///net/u/1/f/fdc/web/faq-c-key.html
1712. file:///net/u/1/f/fdc/web/faq-c-man.html
1713. file:///net/u/1/f/fdc/web/faq-c-mfk.html
1714. file:///net/u/1/f/fdc/web/faq-c-mfx.html
1715. file:///net/u/1/f/fdc/web/faq-c-nkp.html
1716. file:///net/u/1/f/fdc/web/faq-c-npg.html
1717. file:///net/u/1/f/fdc/web/faq-c-pch.html
1718. file:///net/u/1/f/fdc/web/faq-c-pin.html
1719. file:///net/u/1/f/fdc/web/faq-c-rdi.html
1720. file:///net/u/1/f/fdc/web/faq-c-rpi.html
1721. file:///net/u/1/f/fdc/web/faq-c-ses.html
1722. file:///net/u/1/f/fdc/web/faq-c-sup.html
1723. file:///net/u/1/f/fdc/web/faq-c-swx.html
1724. file:///net/u/1/f/fdc/web/faq-c-sxw.html
1725. file:///net/u/1/f/fdc/web/faq-c-tdp.html
1726. file:///net/u/1/f/fdc/web/faq-c-tep.html
1727. file:///net/u/1/f/fdc/web/faq-c-v34.html
1728. file:///net/u/1/f/fdc/web/faq-c-ver.html
1729. file:///net/u/1/f/fdc/web/faq-c-wds.html
1730. file:///net/u/1/f/fdc/web/faq-c-wha.html
1731. file:///net/u/1/f/fdc/web/faq-c-win.html
1732. file:///net/u/1/f/fdc/web/faq-c-wns.html
1733. file:///net/u/1/f/fdc/web/faq-c-wpx.html
1734. file:///net/u/1/f/fdc/web/faq-c-ytt.html
1735. file:///net/u/1/f/fdc/web/faq-c-zmo.html
1736. file:///net/u/1/f/fdc/web/faq-x-ver.html
1737. file:///net/u/1/f/fdc/web/faq.html
1738. file:///net/u/1/f/fdc/web/faq.html.%7E1%7E
1739. file:///net/u/1/f/fdc/web/faq.html.%7E2%7E
1740. file:///net/u/1/f/fdc/web/fast-left-icon-dim.gif
1741. file:///net/u/1/f/fdc/web/fast-left-icon.gif
1742. file:///net/u/1/f/fdc/web/fast-right-icon-dim.gif
1743. file:///net/u/1/f/fdc/web/fast-right-icon.gif
1744. file:///net/u/1/f/fdc/web/favicon.ico
1745. file:///net/u/1/f/fdc/web/fdc
1746. file:///net/u/1/f/fdc/web/fdcen_i.gif
1747. file:///net/u/1/f/fdc/web/fdcreviews.html
1748. file:///net/u/1/f/fdc/web/fees.html
1749. file:///net/u/1/f/fdc/web/fh1.jpg
1750. file:///net/u/1/f/fdc/web/fh2.jpg
1751. file:///net/u/1/f/fdc/web/fh3.jpg
1752. file:///net/u/1/f/fdc/web/filelist
1753. file:///net/u/1/f/fdc/web/filelist.%7E1%7E
1754. file:///net/u/1/f/fdc/web/filelist.%7E2%7E
1755. file:///net/u/1/f/fdc/web/filelist.%7E34%7E
1756. file:///net/u/1/f/fdc/web/filelist.%7E35%7E
1757. file:///net/u/1/f/fdc/web/firsthealth.html
1758. file:///net/u/1/f/fdc/web/firstxfer.html
1759. file:///net/u/1/f/fdc/web/firstxfer.html.1
1760. file:///net/u/1/f/fdc/web/firstxfer.html.%7E1%7E
1761. file:///net/u/1/f/fdc/web/firstxfer9.jpg
1762. file:///net/u/1/f/fdc/web/fix
1763. file:///net/u/1/f/fdc/web/fixdirperms.ksc
1764. file:///net/u/1/f/fdc/web/fixdirs.ksc.%7E1%7E
1765. file:///net/u/1/f/fdc/web/fixdirs.ksc.%7E2%7E
1766. file:///net/u/1/f/fdc/web/fixdirs.sh
1767. file:///net/u/1/f/fdc/web/fixdirs.sh.%7E1%7E
1768. file:///net/u/1/f/fdc/web/fl_australia.gif
1769. file:///net/u/1/f/fdc/web/fl_austria.gif
1770. file:///net/u/1/f/fdc/web/fl_belgium.gif
1771. file:///net/u/1/f/fdc/web/fl_brazil.gif
1772. file:///net/u/1/f/fdc/web/fl_canada.gif
1773. file:///net/u/1/f/fdc/web/fl_china.gif
1774. file:///net/u/1/f/fdc/web/fl_cuba.gif
1775. file:///net/u/1/f/fdc/web/fl_dr.jpg
1776. file:///net/u/1/f/fdc/web/fl_finland.gif
1777. file:///net/u/1/f/fdc/web/fl_france.gif
1778. file:///net/u/1/f/fdc/web/fl_germany.gif
1779. file:///net/u/1/f/fdc/web/fl_india.gif
1780. file:///net/u/1/f/fdc/web/fl_ireland.gif
1781. file:///net/u/1/f/fdc/web/fl_italy.gif
1782. file:///net/u/1/f/fdc/web/fl_luxembourg.gif
1783. file:///net/u/1/f/fdc/web/fl_mexico.gif
1784. file:///net/u/1/f/fdc/web/fl_netherlands.gif
1785. file:///net/u/1/f/fdc/web/fl_newzealand.gif
1786. file:///net/u/1/f/fdc/web/fl_norway.gif
1787. file:///net/u/1/f/fdc/web/fl_portugal.gif
1788. file:///net/u/1/f/fdc/web/fl_scotland.gif
1789. file:///net/u/1/f/fdc/web/fl_spain.gif
1790. file:///net/u/1/f/fdc/web/fl_uk.gif
1791. file:///net/u/1/f/fdc/web/fl_uk2.gif
1792. file:///net/u/1/f/fdc/web/fl_wales.gif
1793. file:///net/u/1/f/fdc/web/flag-ba-100.jpg
1794. file:///net/u/1/f/fdc/web/flag-ba-280.jpg
1795. file:///net/u/1/f/fdc/web/flag-ba-60.jpg
1796. file:///net/u/1/f/fdc/web/flag-ba.jpg
1797. file:///net/u/1/f/fdc/web/flag-br-100.jpg
1798. file:///net/u/1/f/fdc/web/flag-br-280.jpg
1799. file:///net/u/1/f/fdc/web/flag-br-60.jpg
1800. file:///net/u/1/f/fdc/web/flag-br.jpg
1801. file:///net/u/1/f/fdc/web/flag-bz-20.jpg
1802. file:///net/u/1/f/fdc/web/flag-bz-40.jpg
1803. file:///net/u/1/f/fdc/web/flag-strip1-20.jpg
1804. file:///net/u/1/f/fdc/web/flag.html
1805. file:///net/u/1/f/fdc/web/flags2.jpg
1806. file:///net/u/1/f/fdc/web/fontsize.html
1807. file:///net/u/1/f/fdc/web/foo
1808. file:///net/u/1/f/fdc/web/frances.jpg
1809. file:///net/u/1/f/fdc/web/ftp.html
1810. file:///net/u/1/f/fdc/web/ftp
1811. file:///net/u/1/f/fdc/web/ftpclient-es-iso-8848-1.html
1812. file:///net/u/1/f/fdc/web/ftpclient-es.html
1813. file:///net/u/1/f/fdc/web/ftpclient-es.html.%7E1%7E
1814. file:///net/u/1/f/fdc/web/ftpclient-es.html.%7E2%7E
1815. file:///net/u/1/f/fdc/web/ftpclient-es.html.%7E3%7E
1816. file:///net/u/1/f/fdc/web/ftpclient-es.html.%7E4%7E
1817. file:///net/u/1/f/fdc/web/ftpclient.html
1818. file:///net/u/1/f/fdc/web/ftpclient.html.%7E1%7E
1819. file:///net/u/1/f/fdc/web/ftpclient.html.%7E2%7E
1820. file:///net/u/1/f/fdc/web/ftpclient.html.%7E4%7E
1821. file:///net/u/1/f/fdc/web/ftpclient.html.%7E5%7E
1822. file:///net/u/1/f/fdc/web/ftpd.html
1823. file:///net/u/1/f/fdc/web/ftpdoc.html
1824. file:///net/u/1/f/fdc/web/ftpdoc.old
1825. file:///net/u/1/f/fdc/web/ftpfaq.html
1826. file:///net/u/1/f/fdc/web/ftphlp.html
1827. file:///net/u/1/f/fdc/web/ftpscripts.html
1828. file:///net/u/1/f/fdc/web/ftpscripts.html.%7E1%7E
1829. file:///net/u/1/f/fdc/web/ftpscripts.html.%7E2%7E
1830. file:///net/u/1/f/fdc/web/ftputf8.html
1831. file:///net/u/1/f/fdc/web/gears.gif
1832. file:///net/u/1/f/fdc/web/gears.jpg
1833. file:///net/u/1/f/fdc/web/gears2.jpg
1834. file:///net/u/1/f/fdc/web/george-35.gif
1835. file:///net/u/1/f/fdc/web/george-44.gif
1836. file:///net/u/1/f/fdc/web/george-60.gif
1837. file:///net/u/1/f/fdc/web/george-62.gif
1838. file:///net/u/1/f/fdc/web/george.gif
1839. file:///net/u/1/f/fdc/web/george.html
1840. file:///net/u/1/f/fdc/web/getkermitscript.html
1841. file:///net/u/1/f/fdc/web/getkermitscript.html.%7E1%7E
1842. file:///net/u/1/f/fdc/web/getkermitscript.html.%7E2%7E
1843. file:///net/u/1/f/fdc/web/gkermit-de.html
1844. file:///net/u/1/f/fdc/web/gkermit.html
1845. file:///net/u/1/f/fdc/web/gkermit.html.%7E1%7E
1846. file:///net/u/1/f/fdc/web/glass.gif
1847. file:///net/u/1/f/fdc/web/glass.html
1848. file:///net/u/1/f/fdc/web/glass2.gif
1849. file:///net/u/1/f/fdc/web/glass2sm.gif
1850. file:///net/u/1/f/fdc/web/glass_sm.gif
1851. file:///net/u/1/f/fdc/web/gloss.html
1852. file:///net/u/1/f/fdc/web/gold.gif
1853. file:///net/u/1/f/fdc/web/gold2.gif
1854. file:///net/u/1/f/fdc/web/googlea2b1562c237018db.html
1855. file:///net/u/1/f/fdc/web/gothic.html
1856. file:///net/u/1/f/fdc/web/greek.html
1857. file:///net/u/1/f/fdc/web/gui
1858. file:///net/u/1/f/fdc/web/guiopen.gif
1859. file:///net/u/1/f/fdc/web/guipage.gif
1860. file:///net/u/1/f/fdc/web/guipopup.gif
1861. file:///net/u/1/f/fdc/web/guiscrn.gif
1862. file:///net/u/1/f/fdc/web/guiscrsm.gif
1863. file:///net/u/1/f/fdc/web/guistat.gif
1864. file:///net/u/1/f/fdc/web/guitools.gif
1865. file:///net/u/1/f/fdc/web/head-2014.html
1866. file:///net/u/1/f/fdc/web/head-en.html
1867. file:///net/u/1/f/fdc/web/head-es.html
1868. file:///net/u/1/f/fdc/web/head.html
1869. file:///net/u/1/f/fdc/web/head.html.%7E1%7E
1870. file:///net/u/1/f/fdc/web/head.html.%7E2%7E
1871. file:///net/u/1/f/fdc/web/head.html.%7E4%7E
1872. file:///net/u/1/f/fdc/web/head.html.%7E5%7E
1873. file:///net/u/1/f/fdc/web/hebrew.html
1874. file:///net/u/1/f/fdc/web/hebrew.utf8.txt
1875. file:///net/u/1/f/fdc/web/hebrew1.gif
1876. file:///net/u/1/f/fdc/web/hebrew2.gif
1877. file:///net/u/1/f/fdc/web/hello.ksc
1878. file:///net/u/1/f/fdc/web/helper.ksc
1879. file:///net/u/1/f/fdc/web/historical.html
1880. file:///net/u/1/f/fdc/web/home-es.html
1881. file:///net/u/1/f/fdc/web/home.html
1882. file:///net/u/1/f/fdc/web/home.html.save
1883. file:///net/u/1/f/fdc/web/hostmode.txt
1884. file:///net/u/1/f/fdc/web/hostuser.txt
1885. file:///net/u/1/f/fdc/web/hp.html
1886. file:///net/u/1/f/fdc/web/hp48-160.jpg
1887. file:///net/u/1/f/fdc/web/hp48-740.jpg
1888. file:///net/u/1/f/fdc/web/hp48-r.jpg
1889. file:///net/u/1/f/fdc/web/hp48-t.jpg
1890. file:///net/u/1/f/fdc/web/hp48.html
1891. file:///net/u/1/f/fdc/web/hp48.jpg
1892. file:///net/u/1/f/fdc/web/hp500.pdf
1893. file:///net/u/1/f/fdc/web/htaccess
1894. file:///net/u/1/f/fdc/web/html.html
1895. file:///net/u/1/f/fdc/web/html.html.%7E10%7E
1896. file:///net/u/1/f/fdc/web/html.html.%7E1%7E
1897. file:///net/u/1/f/fdc/web/html.html.%7E2%7E
1898. file:///net/u/1/f/fdc/web/html.html.%7E9%7E
1899. file:///net/u/1/f/fdc/web/httpd_logs
1900. file:///net/u/1/f/fdc/web/hudson.jpg
1901. file:///net/u/1/f/fdc/web/i40.gif
1902. file:///net/u/1/f/fdc/web/i40_i.gif
1903. file:///net/u/1/f/fdc/web/ibm370.html
1904. file:///net/u/1/f/fdc/web/ibm_05.jpg
1905. file:///net/u/1/f/fdc/web/ibm_ie.html
1906. file:///net/u/1/f/fdc/web/ibm_ie.old
1907. file:///net/u/1/f/fdc/web/icon-120.jpg
1908. file:///net/u/1/f/fdc/web/icon-16.jpg
1909. file:///net/u/1/f/fdc/web/icon-64.jpg
1910. file:///net/u/1/f/fdc/web/icon.jpg
1911. file:///net/u/1/f/fdc/web/ietf01.html
1912. file:///net/u/1/f/fdc/web/ietf01.txt
1913. file:///net/u/1/f/fdc/web/ik0431.html
1914. file:///net/u/1/f/fdc/web/ik0431_beta.html
1915. file:///net/u/1/f/fdc/web/iksd.html
1916. file:///net/u/1/f/fdc/web/iksuser.html
1917. file:///net/u/1/f/fdc/web/imagesloaded.pkgd.js
1918. file:///net/u/1/f/fdc/web/imall.gif
1919. file:///net/u/1/f/fdc/web/index-20171220.html
1920. file:///net/u/1/f/fdc/web/index-20190419.html
1921. file:///net/u/1/f/fdc/web/index-20200120%3A07%3A10%3A43.html
1922. file:///net/u/1/f/fdc/web/index-before-js.html
1923. file:///net/u/1/f/fdc/web/index-de-20110819.html
1924. file:///net/u/1/f/fdc/web/index-de.diff
1925. file:///net/u/1/f/fdc/web/index-de.html
1926. file:///net/u/1/f/fdc/web/index-en.html
1927. file:///net/u/1/f/fdc/web/index-es.html
1928. file:///net/u/1/f/fdc/web/index-es.html.%7E1%7E
1929. file:///net/u/1/f/fdc/web/index-es.html.%7E2%7E
1930. file:///net/u/1/f/fdc/web/index-es.html.%7E57%7E
1931. file:///net/u/1/f/fdc/web/index-es.html.%7E58%7E
1932. file:///net/u/1/f/fdc/web/index-es.txt
1933. file:///net/u/1/f/fdc/web/index-ftp-problem.html
1934. file:///net/u/1/f/fdc/web/index-latin1.html
1935. file:///net/u/1/f/fdc/web/index-notables.html
1936. file:///net/u/1/f/fdc/web/index-ru.html
1937. file:///net/u/1/f/fdc/web/index-utf8-backup.html
1938. file:///net/u/1/f/fdc/web/index-utf8.html
1939. file:///net/u/1/f/fdc/web/index.html
1940. file:///net/u/1/f/fdc/web/index.html.1
1941. file:///net/u/1/f/fdc/web/index.html.2
1942. file:///net/u/1/f/fdc/web/index.html.%7E147%7E
1943. file:///net/u/1/f/fdc/web/index.html.%7E148%7E
1944. file:///net/u/1/f/fdc/web/index.html.%7E1%7E
1945. file:///net/u/1/f/fdc/web/index.html.%7E2%7E
1946. file:///net/u/1/f/fdc/web/index.save
1947. file:///net/u/1/f/fdc/web/index.txt
1948. file:///net/u/1/f/fdc/web/index_before_award.html
1949. file:///net/u/1/f/fdc/web/infokermit.html
1950. file:///net/u/1/f/fdc/web/infwinston222a.html
1951. file:///net/u/1/f/fdc/web/input_nowrap.html
1952. file:///net/u/1/f/fdc/web/invest.gif
1953. file:///net/u/1/f/fdc/web/invest_i.gif
1954. file:///net/u/1/f/fdc/web/italy1.gif
1955. file:///net/u/1/f/fdc/web/its
1956. file:///net/u/1/f/fdc/web/j01.jpg
1957. file:///net/u/1/f/fdc/web/j02.jpg
1958. file:///net/u/1/f/fdc/web/j03.jpg
1959. file:///net/u/1/f/fdc/web/j04.jpg
1960. file:///net/u/1/f/fdc/web/j05.jpg
1961. file:///net/u/1/f/fdc/web/j06.jpg
1962. file:///net/u/1/f/fdc/web/j07.jpg
1963. file:///net/u/1/f/fdc/web/j08.jpg
1964. file:///net/u/1/f/fdc/web/j09.jpg
1965. file:///net/u/1/f/fdc/web/j10.jpg
1966. file:///net/u/1/f/fdc/web/j11.jpg
1967. file:///net/u/1/f/fdc/web/j12.jpg
1968. file:///net/u/1/f/fdc/web/j13.jpg
1969. file:///net/u/1/f/fdc/web/j14.jpg
1970. file:///net/u/1/f/fdc/web/k
1971. file:///net/u/1/f/fdc/web/k12doc.html
1972. file:///net/u/1/f/fdc/web/k370.html
1973. file:///net/u/1/f/fdc/web/k95-21-160.jpg
1974. file:///net/u/1/f/fdc/web/k95-21-400.jpg
1975. file:///net/u/1/f/fdc/web/k95-21-600.jpg
1976. file:///net/u/1/f/fdc/web/k95-21-80.jpg
1977. file:///net/u/1/f/fdc/web/k95-21-r.jpg
1978. file:///net/u/1/f/fdc/web/k95-21-t.jpg
1979. file:///net/u/1/f/fdc/web/k95-21.html
1980. file:///net/u/1/f/fdc/web/k95-21.jpg
1981. file:///net/u/1/f/fdc/web/k95-fixes-since-213.txt
1982. file:///net/u/1/f/fdc/web/k95-options.pdf
1983. file:///net/u/1/f/fdc/web/k95.html
1984. file:///net/u/1/f/fdc/web/k95.html.%7E10%7E
1985. file:///net/u/1/f/fdc/web/k95.html.%7E1%7E
1986. file:///net/u/1/f/fdc/web/k95.html.%7E2%7E
1987. file:///net/u/1/f/fdc/web/k95.html.%7E9%7E
1988. file:///net/u/1/f/fdc/web/k95.orig
1989. file:///net/u/1/f/fdc/web/k95.vt220.klone.test.jpg
1990. file:///net/u/1/f/fdc/web/k95.vt220.klone.test.off.jpg
1991. file:///net/u/1/f/fdc/web/k95.vt220.klone.test.on.jpg
1992. file:///net/u/1/f/fdc/web/k95
1993. file:///net/u/1/f/fdc/web/k95112.html
1994. file:///net/u/1/f/fdc/web/k95_1120.html
1995. file:///net/u/1/f/fdc/web/k95_1120_patch.html
1996. file:///net/u/1/f/fdc/web/k95_1121.html
1997. file:///net/u/1/f/fdc/web/k95_20
1998. file:///net/u/1/f/fdc/web/k95_20_ann.html
1999. file:///net/u/1/f/fdc/web/k95_213_ann.html
2000. file:///net/u/1/f/fdc/web/k95_213_crypto_bulk_dlo.exe
2001. file:///net/u/1/f/fdc/web/k95_21_ann.html
2002. file:///net/u/1/f/fdc/web/k95_21_beta.html
2003. file:///net/u/1/f/fdc/web/k95amazon.html
2004. file:///net/u/1/f/fdc/web/k95asl.html
2005. file:///net/u/1/f/fdc/web/k95beta.html
2006. file:///net/u/1/f/fdc/web/k95book-100.jpg
2007. file:///net/u/1/f/fdc/web/k95book-150.jpg
2008. file:///net/u/1/f/fdc/web/k95book-280.jpg
2009. file:///net/u/1/f/fdc/web/k95book-600.jpg
2010. file:///net/u/1/f/fdc/web/k95box.jpg
2011. file:///net/u/1/f/fdc/web/k95box2.jpg
2012. file:///net/u/1/f/fdc/web/k95boxes.gif
2013. file:///net/u/1/f/fdc/web/k95boxes2.jpg
2014. file:///net/u/1/f/fdc/web/k95bugs.html
2015. file:///net/u/1/f/fdc/web/k95bulk-20030101.html
2016. file:///net/u/1/f/fdc/web/k95bulk.html
2017. file:///net/u/1/f/fdc/web/k95charsets.html
2018. file:///net/u/1/f/fdc/web/k95compare.html
2019. file:///net/u/1/f/fdc/web/k95cover.gif
2020. file:///net/u/1/f/fdc/web/k95cover.html
2021. file:///net/u/1/f/fdc/web/k95cover2.jpg
2022. file:///net/u/1/f/fdc/web/k95cover3.jpg
2023. file:///net/u/1/f/fdc/web/k95cover4.jpg
2024. file:///net/u/1/f/fdc/web/k95cover5.jpg
2025. file:///net/u/1/f/fdc/web/k95cover6.jpg
2026. file:///net/u/1/f/fdc/web/k95da.html
2027. file:///net/u/1/f/fdc/web/k95dc.html
2028. file:///net/u/1/f/fdc/web/k95demo.html
2029. file:///net/u/1/f/fdc/web/k95demo.save
2030. file:///net/u/1/f/fdc/web/k95democ.html
2031. file:///net/u/1/f/fdc/web/k95dial.gif
2032. file:///net/u/1/f/fdc/web/k95dial.html
2033. file:///net/u/1/f/fdc/web/k95dll_c.txt
2034. file:///net/u/1/f/fdc/web/k95download.html
2035. file:///net/u/1/f/fdc/web/k95faithful
2036. file:///net/u/1/f/fdc/web/k95faithful.html
2037. file:///net/u/1/f/fdc/web/k95faq.html
2038. file:///net/u/1/f/fdc/web/k95faq.html.%7E12%7E
2039. file:///net/u/1/f/fdc/web/k95faq.html.%7E13%7E
2040. file:///net/u/1/f/fdc/web/k95faq.html.%7E1%7E
2041. file:///net/u/1/f/fdc/web/k95faq.html.%7E2%7E
2042. file:///net/u/1/f/fdc/web/k95features.gif
2043. file:///net/u/1/f/fdc/web/k95fixes.html
2044. file:///net/u/1/f/fdc/web/k95gallery.html
2045. file:///net/u/1/f/fdc/web/k95green.gif
2046. file:///net/u/1/f/fdc/web/k95gui.html
2047. file:///net/u/1/f/fdc/web/k95help.gif
2048. file:///net/u/1/f/fdc/web/k95hints.html
2049. file:///net/u/1/f/fdc/web/k95host.html
2050. file:///net/u/1/f/fdc/web/k95hostuser.txt
2051. file:///net/u/1/f/fdc/web/k95hyper.html
2052. file:///net/u/1/f/fdc/web/k95iksd.html
2053. file:///net/u/1/f/fdc/web/k95ins.html
2054. file:///net/u/1/f/fdc/web/k95jeff.html
2055. file:///net/u/1/f/fdc/web/k95jeff.html.%7E1%7E
2056. file:///net/u/1/f/fdc/web/k95k2pricing.html
2057. file:///net/u/1/f/fdc/web/k95kbpage.gif
2058. file:///net/u/1/f/fdc/web/k95keycodes.html
2059. file:///net/u/1/f/fdc/web/k95keymaps
2060. file:///net/u/1/f/fdc/web/k95license.html
2061. file:///net/u/1/f/fdc/web/k95license.html.%7E1%7E
2062. file:///net/u/1/f/fdc/web/k95manual-99.jpg
2063. file:///net/u/1/f/fdc/web/k95manual.jpg
2064. file:///net/u/1/f/fdc/web/k95manual
2065. file:///net/u/1/f/fdc/web/k95migrate.html
2066. file:///net/u/1/f/fdc/web/k95newbugs.html
2067. file:///net/u/1/f/fdc/web/k95news.html
2068. file:///net/u/1/f/fdc/web/k95next.html
2069. file:///net/u/1/f/fdc/web/k95oack.xxx
2070. file:///net/u/1/f/fdc/web/k95ofront.html
2071. file:///net/u/1/f/fdc/web/k95ofront.orig
2072. file:///net/u/1/f/fdc/web/k95order.html
2073. file:///net/u/1/f/fdc/web/k95patch.html
2074. file:///net/u/1/f/fdc/web/k95patches.html
2075. file:///net/u/1/f/fdc/web/k95pic1.gif
2076. file:///net/u/1/f/fdc/web/k95portable.html
2077. file:///net/u/1/f/fdc/web/k95qmodem.html
2078. file:///net/u/1/f/fdc/web/k95readme.html
2079. file:///net/u/1/f/fdc/web/k95red.gif
2080. file:///net/u/1/f/fdc/web/k95reviews.html
2081. file:///net/u/1/f/fdc/web/k95s2.gif
2082. file:///net/u/1/f/fdc/web/k95screen.gif
2083. file:///net/u/1/f/fdc/web/k95screens.gif
2084. file:///net/u/1/f/fdc/web/k95screens.html
2085. file:///net/u/1/f/fdc/web/k95scripts.html
2086. file:///net/u/1/f/fdc/web/k95shots.html
2087. file:///net/u/1/f/fdc/web/k95side.gif
2088. file:///net/u/1/f/fdc/web/k95side2.gif
2089. file:///net/u/1/f/fdc/web/k95sky.gif
2090. file:///net/u/1/f/fdc/web/k95small.gif
2091. file:///net/u/1/f/fdc/web/k95sourcecode-orig.html
2092. file:///net/u/1/f/fdc/web/k95sourcecode-orig.html.%7E1%7E
2093. file:///net/u/1/f/fdc/web/k95sourcecode.html
2094. file:///net/u/1/f/fdc/web/k95sourcecode.html.%7E13%7E
2095. file:///net/u/1/f/fdc/web/k95sourcecode.html.%7E14%7E
2096. file:///net/u/1/f/fdc/web/k95sourcecode.html.%7E1%7E
2097. file:///net/u/1/f/fdc/web/k95sourcecode.html.%7E2%7E
2098. file:///net/u/1/f/fdc/web/k95spine.gif
2099. file:///net/u/1/f/fdc/web/k95sscreen.gif
2100. file:///net/u/1/f/fdc/web/k95sshclient-polski.html
2101. file:///net/u/1/f/fdc/web/k95sshclient.html
2102. file:///net/u/1/f/fdc/web/k95stshot.jpg
2103. file:///net/u/1/f/fdc/web/k95support.html
2104. file:///net/u/1/f/fdc/web/k95survey.html
2105. file:///net/u/1/f/fdc/web/k95t2.gif
2106. file:///net/u/1/f/fdc/web/k95telnet.gif
2107. file:///net/u/1/f/fdc/web/k95telnet.html
2108. file:///net/u/1/f/fdc/web/k95term.gif
2109. file:///net/u/1/f/fdc/web/k95tohere.html
2110. file:///net/u/1/f/fdc/web/k95tshots.jpg
2111. file:///net/u/1/f/fdc/web/k95tutor.html
2112. file:///net/u/1/f/fdc/web/k95tutor.html.%7E1%7E
2113. file:///net/u/1/f/fdc/web/k95uniform.html
2114. file:///net/u/1/f/fdc/web/k95uninstall.html
2115. file:///net/u/1/f/fdc/web/k95updates.txt
2116. file:///net/u/1/f/fdc/web/k95upgrade.html
2117. file:///net/u/1/f/fdc/web/k95users.html
2118. file:///net/u/1/f/fdc/web/k95utils.html
2119. file:///net/u/1/f/fdc/web/k95v1package-100.jpg
2120. file:///net/u/1/f/fdc/web/k95v1package-120.jpg
2121. file:///net/u/1/f/fdc/web/k95v1package-160.jpg
2122. file:///net/u/1/f/fdc/web/k95v1package-280.jpg
2123. file:///net/u/1/f/fdc/web/k95v1package-740.jpg
2124. file:///net/u/1/f/fdc/web/k95vt95tn.html
2125. file:///net/u/1/f/fdc/web/k95vtcrt.html
2126. file:///net/u/1/f/fdc/web/k95vtewan.html
2127. file:///net/u/1/f/fdc/web/k95vtfk.html
2128. file:///net/u/1/f/fdc/web/k95vtk95.html
2129. file:///net/u/1/f/fdc/web/k95vtnterm.html
2130. file:///net/u/1/f/fdc/web/k95vtnterm27.html
2131. file:///net/u/1/f/fdc/web/k95vtnterm280.html
2132. file:///net/u/1/f/fdc/web/k95vtnttn.html
2133. file:///net/u/1/f/fdc/web/k95vtqmpro.html
2134. file:///net/u/1/f/fdc/web/k95vtsimp.html
2135. file:///net/u/1/f/fdc/web/k95vtwqvt.html
2136. file:///net/u/1/f/fdc/web/kanji.html
2137. file:///net/u/1/f/fdc/web/kanji.http
2138. file:///net/u/1/f/fdc/web/kanji1.gif
2139. file:///net/u/1/f/fdc/web/kanji2.gif
2140. file:///net/u/1/f/fdc/web/kanji_icon.gif
2141. file:///net/u/1/f/fdc/web/kb-latin-cyrillic.txt
2142. file:///net/u/1/f/fdc/web/kb-ru-utf8.html
2143. file:///net/u/1/f/fdc/web/kb-ru-utf8.html.%7E1%7E
2144. file:///net/u/1/f/fdc/web/kb-utf8.html
2145. file:///net/u/1/f/fdc/web/kermit-calendar-160.jpg
2146. file:///net/u/1/f/fdc/web/kermit-calendar-280.jpg
2147. file:///net/u/1/f/fdc/web/kermit-calendar-740.jpg
2148. file:///net/u/1/f/fdc/web/kermit-calendar.jpg
2149. file:///net/u/1/f/fdc/web/kermit-el.txt
2150. file:///net/u/1/f/fdc/web/kermit-es.html
2151. file:///net/u/1/f/fdc/web/kermit-es.html.%7E1%7E
2152. file:///net/u/1/f/fdc/web/kermit-es.html.%7E2%7E
2153. file:///net/u/1/f/fdc/web/kermit-es.html.%7E4%7E
2154. file:///net/u/1/f/fdc/web/kermit-es.html.%7E5%7E
2155. file:///net/u/1/f/fdc/web/kermit-sk.txt
2156. file:///net/u/1/f/fdc/web/kermit-strip-100.jpg
2157. file:///net/u/1/f/fdc/web/kermit-strip-120.jpg
2158. file:///net/u/1/f/fdc/web/kermit-strip-160.jpg
2159. file:///net/u/1/f/fdc/web/kermit-strip-280.jpg
2160. file:///net/u/1/f/fdc/web/kermit-strip2-100.jpg
2161. file:///net/u/1/f/fdc/web/kermit-strip2-120.jpg
2162. file:///net/u/1/f/fdc/web/kermit-strip2-160.jpg
2163. file:///net/u/1/f/fdc/web/kermit-strip2-280.jpg
2164. file:///net/u/1/f/fdc/web/kermit.css
2165. file:///net/u/1/f/fdc/web/kermit.css.%7E1%7E
2166. file:///net/u/1/f/fdc/web/kermit.css.%7E22%7E
2167. file:///net/u/1/f/fdc/web/kermit.css.%7E23%7E
2168. file:///net/u/1/f/fdc/web/kermit.css.%7E2%7E
2169. file:///net/u/1/f/fdc/web/kermit.gif
2170. file:///net/u/1/f/fdc/web/kermit.html
2171. file:///net/u/1/f/fdc/web/kermit.html.1
2172. file:///net/u/1/f/fdc/web/kermit.html.%7E1%7E
2173. file:///net/u/1/f/fdc/web/kermit.html.%7E2%7E
2174. file:///net/u/1/f/fdc/web/kermit.html.%7E43%7E
2175. file:///net/u/1/f/fdc/web/kermit.html.%7E44%7E
2176. file:///net/u/1/f/fdc/web/kermit95.html
2177. file:///net/u/1/f/fdc/web/kermitbook-100.jpg
2178. file:///net/u/1/f/fdc/web/kermitbook-115.jpg
2179. file:///net/u/1/f/fdc/web/kermitbook-150.jpg
2180. file:///net/u/1/f/fdc/web/kermitbook-200.jpg
2181. file:///net/u/1/f/fdc/web/kermitbook-280.jpg
2182. file:///net/u/1/f/fdc/web/kermitbook-300.jpg
2183. file:///net/u/1/f/fdc/web/kermitbook-600.jpg
2184. file:///net/u/1/f/fdc/web/kermitbook-back.jpg
2185. file:///net/u/1/f/fdc/web/kermitbook-ch3-ru-test.html
2186. file:///net/u/1/f/fdc/web/kermitbook-ch3-ru.html
2187. file:///net/u/1/f/fdc/web/kermitbook-ch3-ru.html.%7E1%7E
2188. file:///net/u/1/f/fdc/web/kermitbook-ch3-ru.html.%7E2%7E
2189. file:///net/u/1/f/fdc/web/kermitbook-front.jpg
2190. file:///net/u/1/f/fdc/web/kermitbook.jpg
2191. file:///net/u/1/f/fdc/web/kermitmanpage.html
2192. file:///net/u/1/f/fdc/web/keycodes.html
2193. file:///net/u/1/f/fdc/web/keycodes.html.untrimmed
2194. file:///net/u/1/f/fdc/web/kl10.jpg
2195. file:///net/u/1/f/fdc/web/kl10s.jpg
2196. file:///net/u/1/f/fdc/web/kn1-1000.jpg
2197. file:///net/u/1/f/fdc/web/kn1-280.jpg
2198. file:///net/u/1/f/fdc/web/kn2-1000.jpg
2199. file:///net/u/1/f/fdc/web/kn2-280.jpg
2200. file:///net/u/1/f/fdc/web/kn3-1000.jpg
2201. file:///net/u/1/f/fdc/web/kn3-280.jpg
2202. file:///net/u/1/f/fdc/web/kn4-1000.jpg
2203. file:///net/u/1/f/fdc/web/kn4-280.jpg
2204. file:///net/u/1/f/fdc/web/kn4.gif
2205. file:///net/u/1/f/fdc/web/kn4_cover.html
2206. file:///net/u/1/f/fdc/web/kn4_i.gif
2207. file:///net/u/1/f/fdc/web/kn5-1000.jpg
2208. file:///net/u/1/f/fdc/web/kn5-280.jpg
2209. file:///net/u/1/f/fdc/web/kn5.gif
2210. file:///net/u/1/f/fdc/web/kn5_cover.html
2211. file:///net/u/1/f/fdc/web/kn5_i.gif
2212. file:///net/u/1/f/fdc/web/kn6-1000.jpg
2213. file:///net/u/1/f/fdc/web/kn6-280.jpg
2214. file:///net/u/1/f/fdc/web/kn6.gif
2215. file:///net/u/1/f/fdc/web/kn6_cover.html
2216. file:///net/u/1/f/fdc/web/kn6_i.gif
2217. file:///net/u/1/f/fdc/web/koi7.html
2218. file:///net/u/1/f/fdc/web/koikeys
2219. file:///net/u/1/f/fdc/web/koikeys.html
2220. file:///net/u/1/f/fdc/web/koikeys.html.1
2221. file:///net/u/1/f/fdc/web/koikeys.html.%7E1%7E
2222. file:///net/u/1/f/fdc/web/koikeys.html.%7E2%7E
2223. file:///net/u/1/f/fdc/web/koikeys.txt
2224. file:///net/u/1/f/fdc/web/koikeys.txt.%7E1%7E
2225. file:///net/u/1/f/fdc/web/koikeys.%7E1%7E
2226. file:///net/u/1/f/fdc/web/kp-insecure-ff.jpg
2227. file:///net/u/1/f/fdc/web/kp-insecure-gc.jpg
2228. file:///net/u/1/f/fdc/web/kproto.pdf
2229. file:///net/u/1/f/fdc/web/ksitemap.html
2230. file:///net/u/1/f/fdc/web/ksitemap.html.%7E1%7E
2231. file:///net/u/1/f/fdc/web/kucs2.gif
2232. file:///net/u/1/f/fdc/web/kui1.gif
2233. file:///net/u/1/f/fdc/web/kui2.gif
2234. file:///net/u/1/f/fdc/web/kui3.gif
2235. file:///net/u/1/f/fdc/web/kui4.gif
2236. file:///net/u/1/f/fdc/web/kui5.gif
2237. file:///net/u/1/f/fdc/web/kui6.gif
2238. file:///net/u/1/f/fdc/web/kui7.gif
2239. file:///net/u/1/f/fdc/web/kui8.gif
2240. file:///net/u/1/f/fdc/web/kui9.gif
2241. file:///net/u/1/f/fdc/web/kuishots.html
2242. file:///net/u/1/f/fdc/web/kurier.pdf
2243. file:///net/u/1/f/fdc/web/kuser.hlp
2244. file:///net/u/1/f/fdc/web/kuser.hyp
2245. file:///net/u/1/f/fdc/web/kuser.mss
2246. file:///net/u/1/f/fdc/web/kuser.pdf
2247. file:///net/u/1/f/fdc/web/kuser.ps
2248. file:///net/u/1/f/fdc/web/kuser.txt
2249. file:///net/u/1/f/fdc/web/kverbs.html
2250. file:///net/u/1/f/fdc/web/l1-postal.html
2251. file:///net/u/1/f/fdc/web/langbuttons
2252. file:///net/u/1/f/fdc/web/langbuttons.%7E1%7E
2253. file:///net/u/1/f/fdc/web/langbuttons2
2254. file:///net/u/1/f/fdc/web/langbuttons3
2255. file:///net/u/1/f/fdc/web/langbuttons4
2256. file:///net/u/1/f/fdc/web/langbuttons5
2257. file:///net/u/1/f/fdc/web/langbuttons5.%7E1%7E
2258. file:///net/u/1/f/fdc/web/languages.html
2259. file:///net/u/1/f/fdc/web/latin1.html
2260. file:///net/u/1/f/fdc/web/latin2.html
2261. file:///net/u/1/f/fdc/web/latin3.html
2262. file:///net/u/1/f/fdc/web/latin4.html
2263. file:///net/u/1/f/fdc/web/latin9.html
2264. file:///net/u/1/f/fdc/web/lb2.jpg
2265. file:///net/u/1/f/fdc/web/lb3.jpg
2266. file:///net/u/1/f/fdc/web/lb3r.jpg
2267. file:///net/u/1/f/fdc/web/lb4.jpg
2268. file:///net/u/1/f/fdc/web/left-icon-dim.gif
2269. file:///net/u/1/f/fdc/web/left-icon.gif
2270. file:///net/u/1/f/fdc/web/licensing.html
2271. file:///net/u/1/f/fdc/web/links.html
2272. file:///net/u/1/f/fdc/web/links2go.gif
2273. file:///net/u/1/f/fdc/web/lion.jpg
2274. file:///net/u/1/f/fdc/web/locale.html
2275. file:///net/u/1/f/fdc/web/locale.html.%7E1%7E
2276. file:///net/u/1/f/fdc/web/locale.html.%7E2%7E
2277. file:///net/u/1/f/fdc/web/locale.html.%7E3%7E
2278. file:///net/u/1/f/fdc/web/logserial.html
2279. file:///net/u/1/f/fdc/web/low.jpg
2280. file:///net/u/1/f/fdc/web/lynx.gif
2281. file:///net/u/1/f/fdc/web/lynxsm.gif
2282. file:///net/u/1/f/fdc/web/m3d.gif
2283. file:///net/u/1/f/fdc/web/mac.html
2284. file:///net/u/1/f/fdc/web/mac.html.%7E1%7E
2285. file:///net/u/1/f/fdc/web/mackermit-160.jpg
2286. file:///net/u/1/f/fdc/web/mackermit-1600.jpg
2287. file:///net/u/1/f/fdc/web/mackermit.hqx
2288. file:///net/u/1/f/fdc/web/mackermithqx.txt
2289. file:///net/u/1/f/fdc/web/maclatin.html
2290. file:///net/u/1/f/fdc/web/manning_logo.gif
2291. file:///net/u/1/f/fdc/web/manuals.html
2292. file:///net/u/1/f/fdc/web/manuals.html.%7E10%7E
2293. file:///net/u/1/f/fdc/web/manuals.html.%7E1%7E
2294. file:///net/u/1/f/fdc/web/manuals.html.%7E2%7E
2295. file:///net/u/1/f/fdc/web/manuals.html.%7E9%7E
2296. file:///net/u/1/f/fdc/web/maritimecollege.html
2297. file:///net/u/1/f/fdc/web/markus-utf8.html
2298. file:///net/u/1/f/fdc/web/masonry.pkgd.min.js
2299. file:///net/u/1/f/fdc/web/masonry.pkgd.min.js_3.2.2
2300. file:///net/u/1/f/fdc/web/mastercard.gif
2301. file:///net/u/1/f/fdc/web/mazovia.html
2302. file:///net/u/1/f/fdc/web/mazovia2.html
2303. file:///net/u/1/f/fdc/web/mdms.gif
2304. file:///net/u/1/f/fdc/web/mdms2.gif
2305. file:///net/u/1/f/fdc/web/menu-en.html
2306. file:///net/u/1/f/fdc/web/menu-en.html.1
2307. file:///net/u/1/f/fdc/web/menu-en.html.%7E1%7E
2308. file:///net/u/1/f/fdc/web/menu-es.html
2309. file:///net/u/1/f/fdc/web/menu-es.html.1
2310. file:///net/u/1/f/fdc/web/menu.gif
2311. file:///net/u/1/f/fdc/web/menu.html
2312. file:///net/u/1/f/fdc/web/menu_sm.gif
2313. file:///net/u/1/f/fdc/web/menubar.gif
2314. file:///net/u/1/f/fdc/web/metal.jpg
2315. file:///net/u/1/f/fdc/web/metro.gif
2316. file:///net/u/1/f/fdc/web/metro_sm.gif
2317. file:///net/u/1/f/fdc/web/misconceptions.html
2318. file:///net/u/1/f/fdc/web/mltbl.html
2319. file:///net/u/1/f/fdc/web/mm.html
2320. file:///net/u/1/f/fdc/web/mm
2321. file:///net/u/1/f/fdc/web/mobile.html
2322. file:///net/u/1/f/fdc/web/modemcable.jpg
2323. file:///net/u/1/f/fdc/web/moreinfo.html
2324. file:///net/u/1/f/fdc/web/moreorless.html
2325. file:///net/u/1/f/fdc/web/moreorless.html.%7E1%7E
2326. file:///net/u/1/f/fdc/web/mrzip.jpg
2327. file:///net/u/1/f/fdc/web/msbde.gif
2328. file:///net/u/1/f/fdc/web/msbde_.gif.cu
2329. file:///net/u/1/f/fdc/web/msbde_i.gif
2330. file:///net/u/1/f/fdc/web/msben_i.gif
2331. file:///net/u/1/f/fdc/web/msbfr_i.gif
2332. file:///net/u/1/f/fdc/web/msbjp.jpg
2333. file:///net/u/1/f/fdc/web/msbjp_2.jpg
2334. file:///net/u/1/f/fdc/web/msbjp_3.jpg
2335. file:///net/u/1/f/fdc/web/msbjp_i.gif
2336. file:///net/u/1/f/fdc/web/msbook-strip-1-080.jpg
2337. file:///net/u/1/f/fdc/web/msbook-strip-1-100.jpg
2338. file:///net/u/1/f/fdc/web/msbook-strip-1-150.jpg
2339. file:///net/u/1/f/fdc/web/msbook-strip-1-200.jpg
2340. file:///net/u/1/f/fdc/web/msbook-strip-1-280.jpg
2341. file:///net/u/1/f/fdc/web/msk1.gif
2342. file:///net/u/1/f/fdc/web/msk2.gif
2343. file:///net/u/1/f/fdc/web/msk30.html
2344. file:///net/u/1/f/fdc/web/msk314.html
2345. file:///net/u/1/f/fdc/web/msk315.html
2346. file:///net/u/1/f/fdc/web/msk316.html
2347. file:///net/u/1/f/fdc/web/msk95.html
2348. file:///net/u/1/f/fdc/web/msk95.html.%7E1%7E
2349. file:///net/u/1/f/fdc/web/mskermit
2350. file:///net/u/1/f/fdc/web/mskermit.html
2351. file:///net/u/1/f/fdc/web/mskermit.html.%7E1%7E
2352. file:///net/u/1/f/fdc/web/mskermit.html.%7E2%7E
2353. file:///net/u/1/f/fdc/web/mskermit.html.%7E5%7E
2354. file:///net/u/1/f/fdc/web/mskermit.html.%7E6%7E
2355. file:///net/u/1/f/fdc/web/mskermit1e-100.jpg
2356. file:///net/u/1/f/fdc/web/mskermit1e-150.jpg
2357. file:///net/u/1/f/fdc/web/mskermit1e-280.jpg
2358. file:///net/u/1/f/fdc/web/mskermit1e-600.jpg
2359. file:///net/u/1/f/fdc/web/mskermit2e-100.jpg
2360. file:///net/u/1/f/fdc/web/mskermit2e-150.jpg
2361. file:///net/u/1/f/fdc/web/mskermit2e-280.jpg
2362. file:///net/u/1/f/fdc/web/mskermit2e-600.jpg
2363. file:///net/u/1/f/fdc/web/mskermitbook-115.jpg
2364. file:///net/u/1/f/fdc/web/mskermitbook-200.jpg
2365. file:///net/u/1/f/fdc/web/mskermitbook-300.jpg
2366. file:///net/u/1/f/fdc/web/mskermitbook-600.jpg
2367. file:///net/u/1/f/fdc/web/mskermitbook-80.jpg
2368. file:///net/u/1/f/fdc/web/mskermitbook.jpg
2369. file:///net/u/1/f/fdc/web/mskermitde-100.jpg
2370. file:///net/u/1/f/fdc/web/mskermitde-150.jpg
2371. file:///net/u/1/f/fdc/web/mskermitde-280.jpg
2372. file:///net/u/1/f/fdc/web/mskermitde-600.jpg
2373. file:///net/u/1/f/fdc/web/mskermitfr-100.jpg
2374. file:///net/u/1/f/fdc/web/mskermitfr-150.jpg
2375. file:///net/u/1/f/fdc/web/mskermitfr-280.jpg
2376. file:///net/u/1/f/fdc/web/mskermitfr-600.jpg
2377. file:///net/u/1/f/fdc/web/mskermitjp-100.jpg
2378. file:///net/u/1/f/fdc/web/mskermitjp-150.jpg
2379. file:///net/u/1/f/fdc/web/mskermitjp-280.jpg
2380. file:///net/u/1/f/fdc/web/mskermitjp-600.jpg
2381. file:///net/u/1/f/fdc/web/mskgraphics.html
2382. file:///net/u/1/f/fdc/web/mskorder.html
2383. file:///net/u/1/f/fdc/web/mskoverview.html
2384. file:///net/u/1/f/fdc/web/mskreviews.html
2385. file:///net/u/1/f/fdc/web/msksas.html
2386. file:///net/u/1/f/fdc/web/mskscripts.html
2387. file:///net/u/1/f/fdc/web/mskwitten.html
2388. file:///net/u/1/f/fdc/web/mslogo3.gif
2389. file:///net/u/1/f/fdc/web/mslogo4.gif
2390. file:///net/u/1/f/fdc/web/museum-160.jpg
2391. file:///net/u/1/f/fdc/web/museum.jpg
2392. file:///net/u/1/f/fdc/web/musthave.gif
2393. file:///net/u/1/f/fdc/web/nadc.gif
2394. file:///net/u/1/f/fdc/web/nasa.html
2395. file:///net/u/1/f/fdc/web/ndbw-strip1-140.jpg
2396. file:///net/u/1/f/fdc/web/ndbw-strip1-80.jpg
2397. file:///net/u/1/f/fdc/web/netnews.html
2398. file:///net/u/1/f/fdc/web/new.html.%7E1%7E
2399. file:///net/u/1/f/fdc/web/new
2400. file:///net/u/1/f/fdc/web/newbugs.txt
2401. file:///net/u/1/f/fdc/web/newdaily.html.%7E1%7E
2402. file:///net/u/1/f/fdc/web/newdaily.html.%7E2%7E
2403. file:///net/u/1/f/fdc/web/newdeal.jpg
2404. file:///net/u/1/f/fdc/web/newdeal
2405. file:///net/u/1/f/fdc/web/newdealgallery-560.jpg
2406. file:///net/u/1/f/fdc/web/newdealgallery-620.jpg
2407. file:///net/u/1/f/fdc/web/newdealgallery-700.jpg
2408. file:///net/u/1/f/fdc/web/newdialer.html
2409. file:///net/u/1/f/fdc/web/newfaq.html
2410. file:///net/u/1/f/fdc/web/newftp.html
2411. file:///net/u/1/f/fdc/web/newftpclient-es.html
2412. file:///net/u/1/f/fdc/web/newftpclient-es.html.%7E1%7E
2413. file:///net/u/1/f/fdc/web/newindex.html
2414. file:///net/u/1/f/fdc/web/newindex.html.1
2415. file:///net/u/1/f/fdc/web/newindex.html.2
2416. file:///net/u/1/f/fdc/web/newindex.html.3
2417. file:///net/u/1/f/fdc/web/newindex.html.3.%7E1%7E
2418. file:///net/u/1/f/fdc/web/newindex.html.3.%7E2%7E
2419. file:///net/u/1/f/fdc/web/newindex.html.4
2420. file:///net/u/1/f/fdc/web/newindex.html.4.%7E1%7E
2421. file:///net/u/1/f/fdc/web/newindex.html.4.%7E2%7E
2422. file:///net/u/1/f/fdc/web/newindex.html.5
2423. file:///net/u/1/f/fdc/web/newindex.html.5.%7E1%7E
2424. file:///net/u/1/f/fdc/web/newindex.html.6
2425. file:///net/u/1/f/fdc/web/newindex.html.6.%7E1%7E
2426. file:///net/u/1/f/fdc/web/newindex.html.6.%7E2%7E
2427. file:///net/u/1/f/fdc/web/newindex.html.%7E1%7E
2428. file:///net/u/1/f/fdc/web/newindex.html.%7E2%7E
2429. file:///net/u/1/f/fdc/web/newindex.html.%7E5%7E
2430. file:///net/u/1/f/fdc/web/newindex.html.%7E6%7E
2431. file:///net/u/1/f/fdc/web/newk95.html.%7E1%7E
2432. file:///net/u/1/f/fdc/web/newk95.html.%7E2%7E
2433. file:///net/u/1/f/fdc/web/newk95.html.%7E3%7E
2434. file:///net/u/1/f/fdc/web/newk95
2435. file:///net/u/1/f/fdc/web/newnotes.html
2436. file:///net/u/1/f/fdc/web/newphotogallery.html.%7E11%7E
2437. file:///net/u/1/f/fdc/web/newphotogallery.html.%7E12%7E
2438. file:///net/u/1/f/fdc/web/newphotogallery.html.%7E1%7E
2439. file:///net/u/1/f/fdc/web/newphotogallery.html.%7E2%7E
2440. file:///net/u/1/f/fdc/web/news-gallery.html
2441. file:///net/u/1/f/fdc/web/news-strip-1-100.jpg
2442. file:///net/u/1/f/fdc/web/news-strip-1-150.jpg
2443. file:///net/u/1/f/fdc/web/news-strip-1-200.jpg
2444. file:///net/u/1/f/fdc/web/news-strip-1-280.jpg
2445. file:///net/u/1/f/fdc/web/news.html
2446. file:///net/u/1/f/fdc/web/newsn1.pdf
2447. file:///net/u/1/f/fdc/web/newsn2.pdf
2448. file:///net/u/1/f/fdc/web/newsn2.ps
2449. file:///net/u/1/f/fdc/web/newsn2.txt
2450. file:///net/u/1/f/fdc/web/newsn3.html
2451. file:///net/u/1/f/fdc/web/newsn3.pdf
2452. file:///net/u/1/f/fdc/web/newsn3.ps
2453. file:///net/u/1/f/fdc/web/newsn3.txt
2454. file:///net/u/1/f/fdc/web/newsn4.html
2455. file:///net/u/1/f/fdc/web/newsn4.pdf
2456. file:///net/u/1/f/fdc/web/newsn4.ps
2457. file:///net/u/1/f/fdc/web/newsn5.html
2458. file:///net/u/1/f/fdc/web/newsn5.pdf
2459. file:///net/u/1/f/fdc/web/newsn6.html
2460. file:///net/u/1/f/fdc/web/newsn6.pdf
2461. file:///net/u/1/f/fdc/web/newtranslations.html
2462. file:///net/u/1/f/fdc/web/newtranslations.html.%7E1%7E
2463. file:///net/u/1/f/fdc/web/newupdates.html.%7E1%7E
2464. file:///net/u/1/f/fdc/web/newupdates.html.%7E2%7E
2465. file:///net/u/1/f/fdc/web/newupdates.html.%7E6%7E
2466. file:///net/u/1/f/fdc/web/newupdates.html.%7E7%7E
2467. file:///net/u/1/f/fdc/web/noconvertset%3D1
2468. file:///net/u/1/f/fdc/web/noexport.html
2469. file:///net/u/1/f/fdc/web/noexport.orig
2470. file:///net/u/1/f/fdc/web/nonusa.html
2471. file:///net/u/1/f/fdc/web/norway.gif
2472. file:///net/u/1/f/fdc/web/nullmodem-480.jpg
2473. file:///net/u/1/f/fdc/web/nullmodem.jpg
2474. file:///net/u/1/f/fdc/web/nyc.jpg
2475. file:///net/u/1/f/fdc/web/nyc005c.jpg
2476. file:///net/u/1/f/fdc/web/nyc008c.jpg
2477. file:///net/u/1/f/fdc/web/nyc010c.jpg
2478. file:///net/u/1/f/fdc/web/nyc010s.jpg
2479. file:///net/u/1/f/fdc/web/nyc010x.jpg
2480. file:///net/u/1/f/fdc/web/nyc020c.jpg
2481. file:///net/u/1/f/fdc/web/nyc022b.jpg
2482. file:///net/u/1/f/fdc/web/nyc022c.jpg
2483. file:///net/u/1/f/fdc/web/nyc024c.jpg
2484. file:///net/u/1/f/fdc/web/nyc025a.jpg
2485. file:///net/u/1/f/fdc/web/nyc037c.jpg
2486. file:///net/u/1/f/fdc/web/nyc051b.jpg
2487. file:///net/u/1/f/fdc/web/nyc051c.jpg
2488. file:///net/u/1/f/fdc/web/nyc053b.jpg
2489. file:///net/u/1/f/fdc/web/nyc053c.jpg
2490. file:///net/u/1/f/fdc/web/nyc055c.gif
2491. file:///net/u/1/f/fdc/web/nyc056b.jpg
2492. file:///net/u/1/f/fdc/web/nyc056c.jpg
2493. file:///net/u/1/f/fdc/web/nyc057c.jpg
2494. file:///net/u/1/f/fdc/web/nyc064b.jpg
2495. file:///net/u/1/f/fdc/web/nyc064c.jpg
2496. file:///net/u/1/f/fdc/web/nyc077c.jpg
2497. file:///net/u/1/f/fdc/web/nyc077x.jpg
2498. file:///net/u/1/f/fdc/web/nyc080c.jpg
2499. file:///net/u/1/f/fdc/web/nyc081x.jpg
2500. file:///net/u/1/f/fdc/web/nyc082c.jpg
2501. file:///net/u/1/f/fdc/web/nyc083c.jpg
2502. file:///net/u/1/f/fdc/web/nyc089c.jpg
2503. file:///net/u/1/f/fdc/web/nyc092c.jpg
2504. file:///net/u/1/f/fdc/web/nyc093c.jpg
2505. file:///net/u/1/f/fdc/web/nyc2000.jpg
2506. file:///net/u/1/f/fdc/web/ocolors.gif
2507. file:///net/u/1/f/fdc/web/ocolorssm.gif
2508. file:///net/u/1/f/fdc/web/oe-pgs.gif
2509. file:///net/u/1/f/fdc/web/oechtringen-sm.jpg
2510. file:///net/u/1/f/fdc/web/old-manuals.html
2511. file:///net/u/1/f/fdc/web/old-support.html
2512. file:///net/u/1/f/fdc/web/old-vendor.html
2513. file:///net/u/1/f/fdc/web/old
2514. file:///net/u/1/f/fdc/web/oldfaq.html
2515. file:///net/u/1/f/fdc/web/oldlinks.html
2516. file:///net/u/1/f/fdc/web/oldperf.html
2517. file:///net/u/1/f/fdc/web/omanuals.html
2518. file:///net/u/1/f/fdc/web/omnibus.html
2519. file:///net/u/1/f/fdc/web/onlinebooks
2520. file:///net/u/1/f/fdc/web/openssl_button.gif
2521. file:///net/u/1/f/fdc/web/openssl_button.html
2522. file:///net/u/1/f/fdc/web/optimumad3.jpg
2523. file:///net/u/1/f/fdc/web/original-search.html
2524. file:///net/u/1/f/fdc/web/os2.html
2525. file:///net/u/1/f/fdc/web/os2beta.html
2526. file:///net/u/1/f/fdc/web/os2bug.html
2527. file:///net/u/1/f/fdc/web/os2computing.html
2528. file:///net/u/1/f/fdc/web/os2k95-1.gif
2529. file:///net/u/1/f/fdc/web/os2k95-2.gif
2530. file:///net/u/1/f/fdc/web/os2new.html
2531. file:///net/u/1/f/fdc/web/os2order.html
2532. file:///net/u/1/f/fdc/web/os2reviews.html
2533. file:///net/u/1/f/fdc/web/os2shots.html
2534. file:///net/u/1/f/fdc/web/os2specs.html
2535. file:///net/u/1/f/fdc/web/other.html
2536. file:///net/u/1/f/fdc/web/other
2537. file:///net/u/1/f/fdc/web/oval
2538. file:///net/u/1/f/fdc/web/oval80letter.jpg
2539. file:///net/u/1/f/fdc/web/pace-1.html
2540. file:///net/u/1/f/fdc/web/pace-2.html
2541. file:///net/u/1/f/fdc/web/pace.gif
2542. file:///net/u/1/f/fdc/web/pace.html
2543. file:///net/u/1/f/fdc/web/pace2.gif
2544. file:///net/u/1/f/fdc/web/pace_sm.gif
2545. file:///net/u/1/f/fdc/web/pagers.html
2546. file:///net/u/1/f/fdc/web/palace.jpg
2547. file:///net/u/1/f/fdc/web/pan.gif
2548. file:///net/u/1/f/fdc/web/pan2.gif
2549. file:///net/u/1/f/fdc/web/pan2_s.gif
2550. file:///net/u/1/f/fdc/web/pan3-sm.jpg
2551. file:///net/u/1/f/fdc/web/pan3.gif
2552. file:///net/u/1/f/fdc/web/pan3_sm.gif
2553. file:///net/u/1/f/fdc/web/pan_7.gif
2554. file:///net/u/1/f/fdc/web/pan_8.gif
2555. file:///net/u/1/f/fdc/web/pano.gif
2556. file:///net/u/1/f/fdc/web/pano2.jpg
2557. file:///net/u/1/f/fdc/web/panorama.html
2558. file:///net/u/1/f/fdc/web/papers.html
2559. file:///net/u/1/f/fdc/web/paradigms.html
2560. file:///net/u/1/f/fdc/web/paypal
2561. file:///net/u/1/f/fdc/web/pcgi-bin
2562. file:///net/u/1/f/fdc/web/pckermit.exe
2563. file:///net/u/1/f/fdc/web/pcunix.html
2564. file:///net/u/1/f/fdc/web/pdc.ico
2565. file:///net/u/1/f/fdc/web/pdp10-134.html
2566. file:///net/u/1/f/fdc/web/pdp10-strip1-120.jpg
2567. file:///net/u/1/f/fdc/web/pdp10-strip1-160.jpg
2568. file:///net/u/1/f/fdc/web/pdp10.html
2569. file:///net/u/1/f/fdc/web/pdp10.html.%7E1%7E
2570. file:///net/u/1/f/fdc/web/pdp10.html.%7E2%7E
2571. file:///net/u/1/f/fdc/web/pdp10.html.%7E3%7E
2572. file:///net/u/1/f/fdc/web/pdp11-strip1-120.jpg
2573. file:///net/u/1/f/fdc/web/pdp11-strip1-160.jpg
2574. file:///net/u/1/f/fdc/web/pdp11.html
2575. file:///net/u/1/f/fdc/web/pdp11.txt
2576. file:///net/u/1/f/fdc/web/pdp11
2577. file:///net/u/1/f/fdc/web/pdp1150-r.jpg
2578. file:///net/u/1/f/fdc/web/pdp1150-t.jpg
2579. file:///net/u/1/f/fdc/web/pdp1150.html
2580. file:///net/u/1/f/fdc/web/pdp1150.jpg
2581. file:///net/u/1/f/fdc/web/pdp1170.jpg
2582. file:///net/u/1/f/fdc/web/pdp12-1.gif
2583. file:///net/u/1/f/fdc/web/pdp12-1.jpg
2584. file:///net/u/1/f/fdc/web/pdp12-2.gif
2585. file:///net/u/1/f/fdc/web/pdp12-2.jpg
2586. file:///net/u/1/f/fdc/web/pdp12.html
2587. file:///net/u/1/f/fdc/web/pdp12.jpg
2588. file:///net/u/1/f/fdc/web/pdp8-1.jpg
2589. file:///net/u/1/f/fdc/web/pdp8-2.jpg
2590. file:///net/u/1/f/fdc/web/pdp8-3.jpg
2591. file:///net/u/1/f/fdc/web/pdp8-l.jpg
2592. file:///net/u/1/f/fdc/web/pdp8-strip1-120.jpg
2593. file:///net/u/1/f/fdc/web/pdp8-strip1-160.jpg
2594. file:///net/u/1/f/fdc/web/pdp8-strip1-300.jpg
2595. file:///net/u/1/f/fdc/web/pdp8.html
2596. file:///net/u/1/f/fdc/web/pdp8.jpg
2597. file:///net/u/1/f/fdc/web/pdp8m1.jpg
2598. file:///net/u/1/f/fdc/web/pdp8m2.jpg
2599. file:///net/u/1/f/fdc/web/pdp8m3.jpg
2600. file:///net/u/1/f/fdc/web/pdp8m4.jpg
2601. file:///net/u/1/f/fdc/web/pdp8m5.gif
2602. file:///net/u/1/f/fdc/web/pdp8m6.jpg
2603. file:///net/u/1/f/fdc/web/perf.html
2604. file:///net/u/1/f/fdc/web/peter
2605. file:///net/u/1/f/fdc/web/petere.html
2606. file:///net/u/1/f/fdc/web/pg300.tar
2607. file:///net/u/1/f/fdc/web/pg300
2608. file:///net/u/1/f/fdc/web/photogallery.html
2609. file:///net/u/1/f/fdc/web/photogallery.html.1
2610. file:///net/u/1/f/fdc/web/photogallery.html.2
2611. file:///net/u/1/f/fdc/web/photogallery.html.3
2612. file:///net/u/1/f/fdc/web/photogallery.html.4
2613. file:///net/u/1/f/fdc/web/photogallery.html.5
2614. file:///net/u/1/f/fdc/web/photogallery.html.%7E1%7E
2615. file:///net/u/1/f/fdc/web/photogallery.html.%7E2%7E
2616. file:///net/u/1/f/fdc/web/photogallery.html.%7E60%7E
2617. file:///net/u/1/f/fdc/web/photogallery.html.%7E61%7E
2618. file:///net/u/1/f/fdc/web/photogallery100.html
2619. file:///net/u/1/f/fdc/web/picinfo
2620. file:///net/u/1/f/fdc/web/plchars.html
2621. file:///net/u/1/f/fdc/web/polski
2622. file:///net/u/1/f/fdc/web/portable.html
2623. file:///net/u/1/f/fdc/web/portugal.gif
2624. file:///net/u/1/f/fdc/web/ppindex.html.%7E1%7E
2625. file:///net/u/1/f/fdc/web/ppindex.html.%7E2%7E
2626. file:///net/u/1/f/fdc/web/pre-enc-noexport.html
2627. file:///net/u/1/f/fdc/web/proof.html
2628. file:///net/u/1/f/fdc/web/proof.pdf
2629. file:///net/u/1/f/fdc/web/r.html
2630. file:///net/u/1/f/fdc/web/redhook.html
2631. file:///net/u/1/f/fdc/web/register.html
2632. file:///net/u/1/f/fdc/web/register_nokits.html
2633. file:///net/u/1/f/fdc/web/remind.html
2634. file:///net/u/1/f/fdc/web/remind.html.%7E1%7E
2635. file:///net/u/1/f/fdc/web/remind.html.%7E2%7E
2636. file:///net/u/1/f/fdc/web/remind.html.%7E3%7E
2637. file:///net/u/1/f/fdc/web/remind1.html
2638. file:///net/u/1/f/fdc/web/replacetextblock.html
2639. file:///net/u/1/f/fdc/web/replacetextblock.html.%7E1%7E
2640. file:///net/u/1/f/fdc/web/replacetextblock.html.%7E2%7E
2641. file:///net/u/1/f/fdc/web/replacetextblock.html.%7E3%7E
2642. file:///net/u/1/f/fdc/web/replacetextblock.html.%7E4%7E
2643. file:///net/u/1/f/fdc/web/rfc2839a.html
2644. file:///net/u/1/f/fdc/web/rfc2840a.html
2645. file:///net/u/1/f/fdc/web/rfc822.txt
2646. file:///net/u/1/f/fdc/web/right-icon-dim.gif
2647. file:///net/u/1/f/fdc/web/right-icon.gif
2648. file:///net/u/1/f/fdc/web/river.jpg
2649. file:///net/u/1/f/fdc/web/rms.html
2650. file:///net/u/1/f/fdc/web/robots.txt
2651. file:///net/u/1/f/fdc/web/robots.txt.%7E1%7E
2652. file:///net/u/1/f/fdc/web/rpm.html
2653. file:///net/u/1/f/fdc/web/russian.jpg
2654. file:///net/u/1/f/fdc/web/s2.html
2655. file:///net/u/1/f/fdc/web/safe.html
2656. file:///net/u/1/f/fdc/web/sanskrit
2657. file:///net/u/1/f/fdc/web/save
2658. file:///net/u/1/f/fdc/web/scriptlib.html
2659. file:///net/u/1/f/fdc/web/scriptlicense.html
2660. file:///net/u/1/f/fdc/web/scriptlicense.html.%7E1%7E
2661. file:///net/u/1/f/fdc/web/scriptref.html
2662. file:///net/u/1/f/fdc/web/scripts.html
2663. file:///net/u/1/f/fdc/web/scroll.html
2664. file:///net/u/1/f/fdc/web/sdk.html
2665. file:///net/u/1/f/fdc/web/search.html
2666. file:///net/u/1/f/fdc/web/secure.html
2667. file:///net/u/1/f/fdc/web/secure.html.backup
2668. file:///net/u/1/f/fdc/web/security.html
2669. file:///net/u/1/f/fdc/web/security.html.%7E1%7E
2670. file:///net/u/1/f/fdc/web/security.html.%7E2%7E
2671. file:///net/u/1/f/fdc/web/shield.gif
2672. file:///net/u/1/f/fdc/web/shipping.html
2673. file:///net/u/1/f/fdc/web/shippinghtml.old
2674. file:///net/u/1/f/fdc/web/shots.html
2675. file:///net/u/1/f/fdc/web/siia.gif
2676. file:///net/u/1/f/fdc/web/siia2.gif
2677. file:///net/u/1/f/fdc/web/siia3.gif
2678. file:///net/u/1/f/fdc/web/siia4.gif
2679. file:///net/u/1/f/fdc/web/siiatext.gif
2680. file:///net/u/1/f/fdc/web/site.idx
2681. file:///net/u/1/f/fdc/web/sitemap.ante
2682. file:///net/u/1/f/fdc/web/sitemap.ayer
2683. file:///net/u/1/f/fdc/web/sitemap.save
2684. file:///net/u/1/f/fdc/web/sitemap.xml
2685. file:///net/u/1/f/fdc/web/skermit.html
2686. file:///net/u/1/f/fdc/web/sni02.jpg
2687. file:///net/u/1/f/fdc/web/sni03.jpg
2688. file:///net/u/1/f/fdc/web/sni2_05.jpg
2689. file:///net/u/1/f/fdc/web/sni_05.jpg
2690. file:///net/u/1/f/fdc/web/softchoice.gif
2691. file:///net/u/1/f/fdc/web/sorttable.js
2692. file:///net/u/1/f/fdc/web/spa.gif
2693. file:///net/u/1/f/fdc/web/spa_sml.gif
2694. file:///net/u/1/f/fdc/web/ssh.html
2695. file:///net/u/1/f/fdc/web/sshclien.html
2696. file:///net/u/1/f/fdc/web/sshclient-be.htm
2697. file:///net/u/1/f/fdc/web/sshclient-be.html
2698. file:///net/u/1/f/fdc/web/sshclient.html
2699. file:///net/u/1/f/fdc/web/sshclient.html.%7E1%7E
2700. file:///net/u/1/f/fdc/web/sshclient.html.%7E2%7E
2701. file:///net/u/1/f/fdc/web/sshclient.html.%7E3%7E
2702. file:///net/u/1/f/fdc/web/sshclient.html.%7E4%7E
2703. file:///net/u/1/f/fdc/web/sshclient.utf8
2704. file:///net/u/1/f/fdc/web/st-erkenwald.gif
2705. file:///net/u/1/f/fdc/web/st-erkenwald.html
2706. file:///net/u/1/f/fdc/web/standards.html
2707. file:///net/u/1/f/fdc/web/stats
2708. file:///net/u/1/f/fdc/web/stgeorge.gif
2709. file:///net/u/1/f/fdc/web/sts.jpg
2710. file:///net/u/1/f/fdc/web/studies.html
2711. file:///net/u/1/f/fdc/web/superbrain-2011-280.jpg
2712. file:///net/u/1/f/fdc/web/superbrain-2011-740.jpg
2713. file:///net/u/1/f/fdc/web/superbrain-2011.html
2714. file:///net/u/1/f/fdc/web/superbrain-2011.jpg
2715. file:///net/u/1/f/fdc/web/superbrain03-280.jpg
2716. file:///net/u/1/f/fdc/web/superbrain03-740.jpg
2717. file:///net/u/1/f/fdc/web/support.html
2718. file:///net/u/1/f/fdc/web/surface.gif
2719. file:///net/u/1/f/fdc/web/surface_i.gif
2720. file:///net/u/1/f/fdc/web/survey
2721. file:///net/u/1/f/fdc/web/t2.html
2722. file:///net/u/1/f/fdc/web/tail.html
2723. file:///net/u/1/f/fdc/web/tail2.html
2724. file:///net/u/1/f/fdc/web/telnet.html
2725. file:///net/u/1/f/fdc/web/telnet.html.%7E1%7E
2726. file:///net/u/1/f/fdc/web/telnet70.html
2727. file:///net/u/1/f/fdc/web/telnet80.html
2728. file:///net/u/1/f/fdc/web/telnetd.html
2729. file:///net/u/1/f/fdc/web/template.html
2730. file:///net/u/1/f/fdc/web/template.html.%7E1%7E
2731. file:///net/u/1/f/fdc/web/template.html.%7E2%7E
2732. file:///net/u/1/f/fdc/web/template.html.%7E3%7E
2733. file:///net/u/1/f/fdc/web/template.html.%7E4%7E
2734. file:///net/u/1/f/fdc/web/terminal-strip-100.jpg
2735. file:///net/u/1/f/fdc/web/terminal-strip-120.jpg
2736. file:///net/u/1/f/fdc/web/terminal-strip-80.jpg
2737. file:///net/u/1/f/fdc/web/terminal-strip2-120.jpg
2738. file:///net/u/1/f/fdc/web/terminal-strip3-120.jpg
2739. file:///net/u/1/f/fdc/web/terminals.html
2740. file:///net/u/1/f/fdc/web/terminals.html.%7E1%7E
2741. file:///net/u/1/f/fdc/web/terminals.html.%7E2%7E
2742. file:///net/u/1/f/fdc/web/terminals.jpg
2743. file:///net/u/1/f/fdc/web/terms2.jpg
2744. file:///net/u/1/f/fdc/web/terms3.jpg
2745. file:///net/u/1/f/fdc/web/termtype.html
2746. file:///net/u/1/f/fdc/web/test.gif
2747. file:///net/u/1/f/fdc/web/test.html
2748. file:///net/u/1/f/fdc/web/test
2749. file:///net/u/1/f/fdc/web/test1.jpg
2750. file:///net/u/1/f/fdc/web/test2.gif
2751. file:///net/u/1/f/fdc/web/test3.gif
2752. file:///net/u/1/f/fdc/web/test4.gif
2753. file:///net/u/1/f/fdc/web/test5.gif
2754. file:///net/u/1/f/fdc/web/test6.gif
2755. file:///net/u/1/f/fdc/web/testing.html
2756. file:///net/u/1/f/fdc/web/testing
2757. file:///net/u/1/f/fdc/web/texmap.gif
2758. file:///net/u/1/f/fdc/web/texmap_i.gif
2759. file:///net/u/1/f/fdc/web/timeline.html
2760. file:///net/u/1/f/fdc/web/timeline.html.%7E1%7E
2761. file:///net/u/1/f/fdc/web/tmp
2762. file:///net/u/1/f/fdc/web/tmp2
2763. file:///net/u/1/f/fdc/web/tmp3
2764. file:///net/u/1/f/fdc/web/tmp4
2765. file:///net/u/1/f/fdc/web/tmp5
2766. file:///net/u/1/f/fdc/web/tmp9
2767. file:///net/u/1/f/fdc/web/toys.jpg
2768. file:///net/u/1/f/fdc/web/tr.html.%7E1%7E
2769. file:///net/u/1/f/fdc/web/train02.jpg
2770. file:///net/u/1/f/fdc/web/translations.html
2771. file:///net/u/1/f/fdc/web/translations.html-backup
2772. file:///net/u/1/f/fdc/web/translations.html.1
2773. file:///net/u/1/f/fdc/web/translations.html.2
2774. file:///net/u/1/f/fdc/web/translations.html.3
2775. file:///net/u/1/f/fdc/web/translations.html.%7E1%7E
2776. file:///net/u/1/f/fdc/web/translations.html.%7E2%7E
2777. file:///net/u/1/f/fdc/web/translations.html.%7E92%7E
2778. file:///net/u/1/f/fdc/web/translations.html.%7E93%7E
2779. file:///net/u/1/f/fdc/web/translations.ksc
2780. file:///net/u/1/f/fdc/web/translations.ksc.%7E1%7E
2781. file:///net/u/1/f/fdc/web/translations.ksc.%7E2%7E
2782. file:///net/u/1/f/fdc/web/ts1.jpg
2783. file:///net/u/1/f/fdc/web/ts3.jpg
2784. file:///net/u/1/f/fdc/web/ts4.jpg
2785. file:///net/u/1/f/fdc/web/tsreviews.html
2786. file:///net/u/1/f/fdc/web/tt.html.%7E1%7E
2787. file:///net/u/1/f/fdc/web/ttype.jpg
2788. file:///net/u/1/f/fdc/web/tu_cows.gif
2789. file:///net/u/1/f/fdc/web/tu_cows.old.gif
2790. file:///net/u/1/f/fdc/web/tucows.gif
2791. file:///net/u/1/f/fdc/web/tucowsreview.gif
2792. file:///net/u/1/f/fdc/web/tx.html
2793. file:///net/u/1/f/fdc/web/uckindex.html
2794. file:///net/u/1/f/fdc/web/uckindex.html.1
2795. file:///net/u/1/f/fdc/web/uckindex.html.2
2796. file:///net/u/1/f/fdc/web/uckindex.html.%7E10%7E
2797. file:///net/u/1/f/fdc/web/uckindex.html.%7E11%7E
2798. file:///net/u/1/f/fdc/web/uckindex.html.%7E1%7E
2799. file:///net/u/1/f/fdc/web/uckindex.html.%7E2%7E
2800. file:///net/u/1/f/fdc/web/ucompose.gif
2801. file:///net/u/1/f/fdc/web/ucs2.html
2802. file:///net/u/1/f/fdc/web/ucsterm.html
2803. file:///net/u/1/f/fdc/web/ugui.html
2804. file:///net/u/1/f/fdc/web/uiksd.html
2805. file:///net/u/1/f/fdc/web/uk-postcodes.txt
2806. file:///net/u/1/f/fdc/web/ukcounties.html
2807. file:///net/u/1/f/fdc/web/ulinks.html
2808. file:///net/u/1/f/fdc/web/ulinks.html.%7E1%7E
2809. file:///net/u/1/f/fdc/web/unicode.gif
2810. file:///net/u/1/f/fdc/web/unicode.html
2811. file:///net/u/1/f/fdc/web/uniform.html
2812. file:///net/u/1/f/fdc/web/unigroup
2813. file:///net/u/1/f/fdc/web/unix.html
2814. file:///net/u/1/f/fdc/web/unix.html.%7E1%7E
2815. file:///net/u/1/f/fdc/web/unix.html.%7E2%7E
2816. file:///net/u/1/f/fdc/web/url.gif
2817. file:///net/u/1/f/fdc/web/url_sm.gif
2818. file:///net/u/1/f/fdc/web/usa-construct.gif
2819. file:///net/u/1/f/fdc/web/ushield50.gif
2820. file:///net/u/1/f/fdc/web/usingckermit.html
2821. file:///net/u/1/f/fdc/web/usingckermit.html.%7E10%7E
2822. file:///net/u/1/f/fdc/web/usingckermit.html.%7E1%7E
2823. file:///net/u/1/f/fdc/web/usingckermit.html.%7E2%7E
2824. file:///net/u/1/f/fdc/web/usingckermit.html.%7E9%7E
2825. file:///net/u/1/f/fdc/web/usingmackermit-99.jpg
2826. file:///net/u/1/f/fdc/web/usingmackermit.jpg
2827. file:///net/u/1/f/fdc/web/usingmackermit.pdf
2828. file:///net/u/1/f/fdc/web/ussr.gif
2829. file:///net/u/1/f/fdc/web/utf8-t0.html
2830. file:///net/u/1/f/fdc/web/utf8-t1-hexonly.html
2831. file:///net/u/1/f/fdc/web/utf8-t1.html
2832. file:///net/u/1/f/fdc/web/utf8-table.html
2833. file:///net/u/1/f/fdc/web/utf8.html
2834. file:///net/u/1/f/fdc/web/utf8.html.backup
2835. file:///net/u/1/f/fdc/web/utf8.html.%7E11%7E
2836. file:///net/u/1/f/fdc/web/utf8.html.%7E12%7E
2837. file:///net/u/1/f/fdc/web/utf8.html.%7E1%7E
2838. file:///net/u/1/f/fdc/web/utf8.html.%7E2%7E
2839. file:///net/u/1/f/fdc/web/utf8_unnumbered.html
2840. file:///net/u/1/f/fdc/web/utils.html
2841. file:///net/u/1/f/fdc/web/uucp.html
2842. file:///net/u/1/f/fdc/web/uuu
2843. file:///net/u/1/f/fdc/web/uzbek.utf8.txt
2844. file:///net/u/1/f/fdc/web/vax_11-750.jpg
2845. file:///net/u/1/f/fdc/web/vcheck.gif
2846. file:///net/u/1/f/fdc/web/vendor.html
2847. file:///net/u/1/f/fdc/web/vinfo.html
2848. file:///net/u/1/f/fdc/web/visa.gif
2849. file:///net/u/1/f/fdc/web/vm3270.gif
2850. file:///net/u/1/f/fdc/web/vm3270sm.gif
2851. file:///net/u/1/f/fdc/web/vms_old.html
2852. file:///net/u/1/f/fdc/web/vt100-keyboard-700.jpg
2853. file:///net/u/1/f/fdc/web/vt100-keyboard.html
2854. file:///net/u/1/f/fdc/web/vt100-keyboard.jpg
2855. file:///net/u/1/f/fdc/web/vt320-fkeys-300.jpg
2856. file:///net/u/1/f/fdc/web/vt320-fkeys-700.jpg
2857. file:///net/u/1/f/fdc/web/vt320-fkeys.jpg
2858. file:///net/u/1/f/fdc/web/vt320-keyboard-700.jpg
2859. file:///net/u/1/f/fdc/web/vt320-keyboard.html
2860. file:///net/u/1/f/fdc/web/vt320-keyboard.jpg
2861. file:///net/u/1/f/fdc/web/vt320-keypads-300.jpg
2862. file:///net/u/1/f/fdc/web/vt320-keypads-700.jpg
2863. file:///net/u/1/f/fdc/web/vt320-keypads.jpg
2864. file:///net/u/1/f/fdc/web/vt520_02.jpg
2865. file:///net/u/1/f/fdc/web/vt520_03.jpg
2866. file:///net/u/1/f/fdc/web/vt520_05.jpg
2867. file:///net/u/1/f/fdc/web/vtscore.html
2868. file:///net/u/1/f/fdc/web/vttest.html
2869. file:///net/u/1/f/fdc/web/wavesgallery.jpg
2870. file:///net/u/1/f/fdc/web/wbc3-280.jpg
2871. file:///net/u/1/f/fdc/web/wbc3.jpg
2872. file:///net/u/1/f/fdc/web/weblog.html
2873. file:///net/u/1/f/fdc/web/weblog.html.%7E1%7E
2874. file:///net/u/1/f/fdc/web/welcome.gif
2875. file:///net/u/1/f/fdc/web/whatfor.html
2876. file:///net/u/1/f/fdc/web/whatsnew.html
2877. file:///net/u/1/f/fdc/web/whatsnew.html.%7E1%7E
2878. file:///net/u/1/f/fdc/web/whatsnew.html.%7E2%7E
2879. file:///net/u/1/f/fdc/web/whatsnew.html.%7E34%7E
2880. file:///net/u/1/f/fdc/web/whatsnew.html.%7E35%7E
2881. file:///net/u/1/f/fdc/web/white.gif
2882. file:///net/u/1/f/fdc/web/white_sm.gif
2883. file:///net/u/1/f/fdc/web/wiksd.html
2884. file:///net/u/1/f/fdc/web/wiksdadm.html
2885. file:///net/u/1/f/fdc/web/wiksduser.html
2886. file:///net/u/1/f/fdc/web/winmodem.html
2887. file:///net/u/1/f/fdc/web/winmodems.html
2888. file:///net/u/1/f/fdc/web/winsshclients.html
2889. file:///net/u/1/f/fdc/web/wpa.jpg
2890. file:///net/u/1/f/fdc/web/wpa2-100.jpg
2891. file:///net/u/1/f/fdc/web/wpa2.jpg
2892. file:///net/u/1/f/fdc/web/wyse_05.jpg
2893. file:///net/u/1/f/fdc/web/x.gif
2894. file:///net/u/1/f/fdc/web/x.htaccess
2895. file:///net/u/1/f/fdc/web/x.html
2896. file:///net/u/1/f/fdc/web/x.html.%7E1%7E
2897. file:///net/u/1/f/fdc/web/x.%7E1%7E
2898. file:///net/u/1/f/fdc/web/x1.gif
2899. file:///net/u/1/f/fdc/web/x10.gif
2900. file:///net/u/1/f/fdc/web/x11.gif
2901. file:///net/u/1/f/fdc/web/x12.gif
2902. file:///net/u/1/f/fdc/web/x13.gif
2903. file:///net/u/1/f/fdc/web/x14.gif
2904. file:///net/u/1/f/fdc/web/x15.gif
2905. file:///net/u/1/f/fdc/web/x2.gif
2906. file:///net/u/1/f/fdc/web/x20.gif
2907. file:///net/u/1/f/fdc/web/x21.gif
2908. file:///net/u/1/f/fdc/web/x22.gif
2909. file:///net/u/1/f/fdc/web/x23.gif
2910. file:///net/u/1/f/fdc/web/x24.gif
2911. file:///net/u/1/f/fdc/web/x25.gif
2912. file:///net/u/1/f/fdc/web/x3.gif
2913. file:///net/u/1/f/fdc/web/x4.gif
2914. file:///net/u/1/f/fdc/web/x5.gif
2915. file:///net/u/1/f/fdc/web/x6.gif
2916. file:///net/u/1/f/fdc/web/x7.gif
2917. file:///net/u/1/f/fdc/web/x8.gif
2918. file:///net/u/1/f/fdc/web/x9.gif
2919. file:///net/u/1/f/fdc/web/xbg
2920. file:///net/u/1/f/fdc/web/xbg.%7E1%7E
2921. file:///net/u/1/f/fdc/web/xbronx403.jpg
2922. file:///net/u/1/f/fdc/web/xbronx408.jpg
2923. file:///net/u/1/f/fdc/web/xbronx55.jpg
2924. file:///net/u/1/f/fdc/web/xcrown70.gif
2925. file:///net/u/1/f/fdc/web/xcrown74-lb.gif
2926. file:///net/u/1/f/fdc/web/xcrownico-lb.gif
2927. file:///net/u/1/f/fdc/web/xcrownico.gif
2928. file:///net/u/1/f/fdc/web/xiksd.html
2929. file:///net/u/1/f/fdc/web/xphotoalbum.html
2930. file:///net/u/1/f/fdc/web/xsearch.html
2931. file:///net/u/1/f/fdc/web/xutf8.html
2932. file:///net/u/1/f/fdc/web/xx.html
2933. file:///net/u/1/f/fdc/web/xxsearch.html
2934. file:///net/u/1/f/fdc/web/xxu
2935. file:///net/u/1/f/fdc/web/xxu.c
2936. file:///net/u/1/f/fdc/web/xxx.html
2937. file:///net/u/1/f/fdc/web/xyzcorp.gif
2938. file:///net/u/1/f/fdc/web/y
2939. file:///net/u/1/f/fdc/web/y.html
2940. file:///net/u/1/f/fdc/web/y1.gif
2941. file:///net/u/1/f/fdc/web/y2.gif
2942. file:///net/u/1/f/fdc/web/y2.html
2943. file:///net/u/1/f/fdc/web/y3.gif
2944. file:///net/u/1/f/fdc/web/year2000.html
2945. file:///net/u/1/f/fdc/web/yoruba.txt
2946. file:///net/u/1/f/fdc/web/yyy
C-KERMIT 9.0 CHANGE LOG
[[1]Go to bottom]
C-KERMIT 9.0 CHANGE LOG
Changes since 8.0.207 / K95 2.1.3 January 2003
In chronological order.
Go to the bottom to find the newest edits.
Frank da Cruz, The Kermit Project, New York City.
Last update: 24 July 2020
These are the changes to C-Kermit since Kermit 95 was last released as
version 2.1.3 on January 1, 2003, and therefore also the changes that
would appear in any new release of Kermit 95.
.................................
:BEGIN: FTP USER, FTP ACCOUNT, plus the various prompts and switches
for FTP username, password, and account all neglected to strip quotes,
and in most cases quotes are necessary to specify a username that
contains spaces. ckcftp.c, 15 Jan 2003. ===
FTP MPUT f1 f2 f3... gets a parse error if any of the fn's do not match
an existing file. This is bad for scripts. In doftpput(), cmfdb() looks
for keywords (switches) or CMIFI. When it hits CMIFI, it exits from the
initial parse loop and then does additional cmifi()s in a loop until
done. The most obvious fix is to parse each field with
cmfdb(CMIFI,CMFLD), i.e. fall back to CMFLD if CMIFI doesn't match
anything. Then if CMFLD was used, we don't add the filespec to the
list. This is a rather big change but it seems to work. No error
messages or failures happen for non-matching fields, but an error
message is printed (and the MPUT command fails) if none of the fields
match any files. This fix got in too late for 2.1.3; workaround: use
C-Shell like wildcard list (ftp mput "{*.abc,foo.*}"). ckcftp.c, 16 Jan
2003. ===
GREP did not pass its pattern through the expander, thus variables
could not be used for patterns. This must have been an oversight -- I
can't find anything in my notes about it. Fixed in dogrep(): ckuus6.c,
24 Jan 2003. ===
New makefile target for HP-UX 11.xx with OpenSSL from Tapani Tarvainen.
makefile, 31 Jan 2003. ===
From Jeff:
. Avoid core dump when dereferencing tnc_get_signature(): ckuus4.c.
. Bump version numbers to 8.0.208, 2.1.4: ckcmai.c.
Added /NOLOGIN to FTP [OPEN]. ckcftp.c, 10 Feb 2003. ===
Don't dump core if FTP DEBUG is ON and FTP OPEN does not include a
service. openftp(): ckcftp.c, 10 Feb 2003. ===
HELP PATTERN text incorrectly identified commands and functions with
floating and anchored patterns. The corrected lists are: Floating:
GREP, TYPE /MATCH:, /EXCEPT: patterns, \farraylook(), Anchored: IF
MATCH, file-matching wildcards, \fsearch(), \frsearch() ckuus2.c, 10
Feb 2003. ===
INPUT n \fpattern(xxx) did not work for case-independent comparisons.
Fixed in doinput(): ckuus4.c, 10 Feb 2003. ===
It seems \fpattern() didn't work with MINPUT at all. There was no code
to handle \fpattern() in the MINPUT parse loop, so it never worked. The
code had to be totally rewritten to use cmfld() in a loop, rather than
cmtxt() and then cksplit(). Furthermore, whenever any of the fields was
an \fjoin(), this had to be split. ckuusr.c, 10 Feb 2003. ===
Macro replacement via \m() and \fdefinition() does not work as
advertised (i.e. case sensitively) for associative array elements; e.g.
\m(xxx<abc>) is treated the same as \m(xxx<ABC>), contrary to section
7.10.10 of the C-Kermit 7.0 update notes, and to the fact that the two
really do exist separately. Fixed by adding a static function
isaarray(s) which succeeds if s is an associative array reference and
fails otherwise, and then having \m() and \fdef() call mxxlook()
(case-sensitive lookup) if isaarray(), otherwise (as before) mxlook()).
ckuus4.c, 11 Feb 2003. ===
Fixed FTP OPEN to allow the /USER switch to override SET FTP AUTOLOGIN
OFF, just as /NOLOGIN overrides SET FTP AUTOLOGIN ON. ckcftp.c, 11 Feb
2003. ===
In K95, "set key \1234 \27H" (any SET KEY command in which the first
char of the definition was backslash, and the ONLY character after the
backslash quantity was an uppercase letter, that letter would be
lowercased). Diagnosis: xlookup() poking its argument (see notes from
July 2000). Jeff sent a fix. ckucmd.c, 15 Feb 2003. ===
Ran my S-Expression torture test to make sure Sexps still worked. They
do, except the bitwise & and | operators were broken, e.g. (& 7 2) and
(| 1 2 4) get "Invalid operand" errors. Jeff's code had added an early
failure return from the lookup loop when when a single-byte keyword
matched a keyword that started with the same byte but was more than one
byte long. So "&" would hit "&&" and fail instead of continuing its
search (xlookup tables aren't sorted so there can be no early return).
Fixed in xlookup(): ckucmd.c, 16 Feb 2003. ===
Got rid of "krbmit" target from makefile. It's still there, but we
don't use it any more. All secure targets now use "xermit", and produce
a binary called wermit, just like the regular ones do (except the old
ckucon.c ones). Non-secure targets, since they don't define any of the
security symbols, wind up compiling and linking to (mostly) empty
security modules. makefile, 15 Feb 2003. ===
Added \fcvtdate(xxx,3) to format its result in MDTM format
(yyyymmddhhmmss, all numeric, no spaces or punctuation). Of course
these numeric strings are too big to be 32-bit numbers and are useless
for arithmetic, but they're useful for lexical comparison, etc.
ckuus[24].c, 16 Feb 2003. ===
The following FTP commands did not set FAILURE when they failed: RMDIR,
CD, CDUP, Fixed in the corresponding doftpblah() routines. ckcftp.c, 16
Feb 2003. ===
RENAME would sometimes not print an error message when it failed, e.g.
in K95 when the destination file already existed. ckuus6.c, 17 Feb
2003. ===
Fixed COPY error messages, which did not come out in standard format
when /LIST was not included. ckuus6.c, 17 Feb 2003. ===
Fixed #ifdefs in ck_crp.c to allow nonsecure builds on old platforms
like System V/68 R3. 19 Feb 2003. ===
Similar treatment for ck_ssl.c. 20 Feb 2003. ===
From Jeff, 21 Feb 2003:
. AIX53 and AIX52 symbols for ckcdeb.h, makefile.
. New gcc targets for various AIX 4.x/5.x versions: makefile.
. Copyright date updates: ck_crp.c, ck_ssl.c.
. ENABLE/DISABLE QUERY broken because keyword table out of order: ckuusr.c.
. Fixed the use of HTTP proxies for HTTP [RE]OPEN for Unix: ckcnet.c.
Also for K95 only: Allow file transfer when K95 is invoked on the
remote end of a connection to a Pragma Systems Terminal Server
connection; automatically SET EXIT HANGUP OFF when invoked with open
port handle ("k95 -l nnnn").
"cd a*" failed even when "a*" matched only one directory. Fixed in
cmifi(): ckucmd.c, 21 Feb 2003. ===
In the Unix version, replace "extern int errno;" with "#include
<errno.h>" if __GLIBC__ is defined, since glibc now defines a
thread-specific errno. ckcdeb.h, 26 Feb 2003. ===
Added #ifdefs to skip compilation of ckuath.c in nonsecure builds.
Tested by building both secure and regular versions in Linux. ckuath.c,
26 Feb 2003. ===
Ran the build-in-84-different-configurations script on Linux to make
sure it still builds with all different combinations of feature
selection options. All OK. 26 Feb 2003. ===
Built on VMS. Needed to add a prototype for mxxlook*() to ckuusr.h;
built OK otherwise. 26 Feb 2003. ===
From Jeff: More #ifdef shuffling for nonsecure builds: ckuath.c,
ck_ssl.c, 27 Feb 2003. ===
Added code to ensure \v(download) ends in a directory separator in
Unix, Windows, and OS/2. ckuus7.c, 27 Feb 2003. ===
Added code to K95 zfnqfp() to tack on directory separator when
returning a directory name. ckofio.c, 27 Feb 2003. ===
Somehow an old copy of ckuath.c popped to replace the new one. Put the
new one back. 28 Feb 2003. ===
From Jeff: Fix typo in my K95 zfnqfp() code from yesterday; fixes for
handling UNCs uniformly, no matter which way their slashes are leaning.
ckofio.c, 28 Feb 2003. ===
At Jeff Mezei's suggestion, separate text and binary mode open
sequences for VMS session log. ckvfio.c, 28 Feb 2003. ===
Added freebsd48 target for FreeBSD 4.8. makefile, 1 Mar 2003. ===
Changed Mac OS X entries to include -DUSE_STRERROR. makefile, 2 Mar
2003. ===
Fixed GETOK /GUI to evaluate its text argument. ckuus6.c, 3 Mar 2003.
===
Jeff fixed the K95 Dialer QUICK dialog to (a) allow templates, and (b)
have a Save-As option. 3 Mar 2003. ===
Jeff fixed a problem with the Xmodem-CRC checksum being crunched
whenever there was a retransmission. 7 Mar 2003. ===
Added target/banner for Tru64 5.1B. makefile, ckuver.h, 5 Mar 2003. ===
In Unix, the zcopy() routine (used by the COPY command) reset the
user's umask to 0 for the remainder of the Kermit process lifetime. The
bug was in ckufio.c 8.0.194, 24 Oct 2002, and is fixed in ckufio.c
8.0.195, 6 Mar 2003. Of course this happened after building 155
C-Kermit 8.0.208 binaries. (But before officially releasing 8.0.208.)
===
In the VMS version, changed:
while ((n--) && xx_inc(2) > -1) ;
to:
while ((n--) && xx_inc(2) >= 0) ;
to suppress the "...is being compared with a relational operator to a
constant whose value is not greater than zero" warning. ckvtio.c, 7 Mar
2002. ===
Added a debug call to dologend in hopes of catching overzealous Locus
switching, which seems to happen only in K95. ckuus3.c, 7 Mar 2002. ===
Rebuilt binaries for some of the more current Unix releases: AIX
4.3.3-5.1, Solaris 7-9 , Red Hat 7.0-8.0, Slackware 8.1, Freebsd
4.7-4.8, NetBSD 1.6, OpenBSD 3.2, Unixware 7.1.3, Open Unix 8,
OSR5.0.6a, etc. A Unix binary with COPY umask fix shows a 6 Mar 2003
date for "UNIX File support" in SHOW VERSIONS; a binary without the fix
shows 24 Oct 2002. ===
C-Kermit 8.0.208 dated 14 March 2003 released on 10 March 2003. ===
---8.0.208--- ===
From Jeff 13 Mar 2003:
. Updated SSL module allows importation of tickets from host.
. freebsd50+openssl target: makefile.
. FTP PUT /PERMISSIONS error message for K95: ckcftp.c.
===
Fixed MINPUT to strip quotes or braces from around targets (this was
broken on Feb 10th). Thanks to Jason Heskett for discovering and
reporting this (killer) bug. ckuusr.c, 14 Mar 2003. ===
Changed version number to 209 Dev.00. ckcmai.c, 14 Mar 2003. ===
While debugging the alphapage script, I found that the command "minput
8 \6\13 \21\13 \13\27\4\13 \30\13" gets "?Not confirmed" in 8.0.208 and
8.0.209, but not in 206 and earlier. This problem too was introduced on
Feb 10th by changing MINPUT parsing from cmtxt() followed by cksplit()
to cmfld() in a loop. cmfld() uses setatm() to return its result and of
course setatm() breaks on \13. Changing setatm() not to do this would
break everything else. But cmfld() has no arguments that let us tell it
to do anything different in this case. Changing the API would be a
disaster. The only solution is to add an "MINPUT ACTIVE" (minputactive)
global variable that tells cmfld() to tell setatm() not to break on CR.
Now MINPUT with braced targets containing CR and/or LF works in 209,
206, and 201 (but not 208). ckucmd.c, ckuusr.c, ckuus5.c, 15 Mar 2003.
===
MINPUT n \fjoin(&a) works OK if all the members of \&a[] are text
strings, but if they are strings of control chars (as above), they
don't get separated by the spaces. For example in:
dcl \&a[] = "\4\5" "\6\7" xxx
minput 10 \fjoin(&a)
MINPUT gets two targets: "aaa" and "\4\5 \6\7 xxx". The bug was in the
cksplit() call in the \fjoin() case of MINPUT: it needed to specify an
include set consisting of all the control characters except NUL.
ckuusr.c, 16 Mar 2003. ===
But there's still a problem:
dcl \&a[] = "\4\5\13\10" "\6\7" "xxx"
creates an array whose first member is "^D^E (one doublequote
included). But if braces are used instead, there's no problem. Same
deal as MINPUT: cmfld() breaks on CR or LF, thus the end quote is lost.
If I set minputactive for DECLARE initializers too, that fixes it. Is
there any reason not to do this? Can't think of any (famous last
words)... ckuusr.c, 16 Mar 2003. ===
Since it has multiple applications, changed the flag's name from
minputactive to keepallchars. ckucmd.c, ckuus[r5].c, 16 Mar 2003. ===
\v(exedir) wasn't being set correctly (it included the program name as
well as the directory). Fixed in getexedir(): ckuus4.c, 16 Mar 2003.
===
SET CARRIER-WATCH <Esc> "auto matic" (spurious space in supplied
keyword). Cosmetic only; it still worked. Fixed in setdcd(): ckuus3.c,
16 Mar 2003.
"directory a b c" listed too many files -- all files whose names END
WITH a, b, or c, rather than the files whose names WERE a, b, or c.
Diagnosis: The filespec is changed into a pattern: {a,b,c}, which is
the correct form. It is passed to nzxpand(), which goes through the
directory getting filenames and sending each one to ckmatch() with the
given pattern. ckmatch() receives the correct pattern but then prepends
a "*" -- that's not right. It's not just in filename matching either.
The following succeeds when it shouldn't:
if match xxxxc {{a,b,c}} <command>
Changing ckmatch() to not prepend the "*" to each segment fixes the
command above but breaks lots of others. Running through the "match"
torture-test script shows the problem occurs only when the {a,b,c} list
is the entire pattern, and not embedded within a larger pattern.
Testing for this case fixed the problem. ckmatch(): ckclib.c, 16 Mar
2003. ===
Fixed FTP MODTIME to not print anything if QUIET ON. ckcftp.c, 16 Mar
2003. ===
Picked up a new ckuath.c from Jeff, not sure what the changes are. 16
Mar 2003.
Did a few regular and secure builds to make sure I didn't wreck
anything. Changed version number to 209 (final). ckcmai.c, 16 Mar 2003.
===
Jason Heskett found another bug: if you define a macro FOO inside the
definition of another macro BAR, and FOO's definition includes an odd
number of doublequotes (such as 1), FOO's definition absorbs the rest
of BAR's definition. Example:
def TEST {
.foo = {X"}
sho mac foo
}
do test
sho mac foo
Results in:
foo = {X"}, sho mac foo
Diagnosis: the TEST definition becomes:
def TEST .foo = {X"}, sho mac foo
and the macro reader is erroneously treating the doublequote as an open
quote, and then automatically closes the quote at the end of the
definition. The error is that a doublequote should be significant only
at the beginning of a field. But the macro reader isn't a command
parser; it doesn't know what a field is -- it's just looking for commas
and skipping over quoted ones. First we have to fix an oversight: SET
COMMAND DOUBLEQUOTING OFF should have worked here, but it wasn't tested
in this case. Fixed in getncm(): ckuus5.c, 17 Mar 2003. ===
There are only certain cases where it makes sense to treat doublequotes
as significant:
. An open quote must be at the beginning or preceded by a space.
. A close quote is only at the end or else followed by a space.
This too was fixed in getncm(): ckuus5.c, 17 Mar 2003. ===
A fix from Jeff SSL/TLS FTP data decoding. ckcftp.c, 18 Mar 2003. ===
Tried building C-Kermit on a Cray Y-MP with UNICOS 9.0. "int suspend",
declared in ckcmai.c and used in many modules, conflicts with:
unistd.h:extern int suspend __((int _Category, int _Id));
The "=Dsuspend=xsuspend" trick doesn't work for this; there is no way
around the conflict other than to rename the variable: ckcmai.c,
ckutio.c, ckuus[35xy].c. 26 Mar 2003. VMS and K95 not affected. ===
OK that gets us past ckcmai.c... Then in ckutio.c I had to add a new
#ifdef around the LFDEVNO setting, because the Cray didn't have
mkdev.h. Could not find a Cray-specific manifest symbol, so I made a
new makefile target (cray9) that sets this symbol. Having done this I
have no idea what kind of lockfile would be created, but I also doubt
if anybody dials out from a Cray. The binary should run a C90, J90, or
Y-MP. makefile, 26 Mar 2003. ===
Added a target for SCO OSR5.0.7. makefile, ckuver.h, 30 Mar 2003. ===
Changed since 208: makefile ckuver.h ckcmai.c ckclib.c ckcftp.c
ckucmd.c ckuus*.c ckutio.c. ===
---8.0.209--- ===
From Mark Sapiro, a fix for the March 17th doublequote fix, getncm():
ckuus5.c, 4 Apr 2003. ===
From Jeff, 29 Apr 2003:
. Corrected target for HP-UX 11.00 + OpenSSL: makefile,
. Do not allow WILL AUTH before WONT START_TLS: ckctel.h ckctel.c
. Add hooks for SFTP and SET/SHOW SFTP: ckcdeb.h ckuusr.h ckuusr.c ckuus3.c
. Add SKERMIT ckuusr.h ckuusr.c
. Add ADM-5 terminal emulation: ckuus7.c, ckuus5.c
. Uncomment and update HELP SET SSH V2 AUTO-REKEY: ckuus2.c
. Enable IF TERMINAL-MACRO and IF STARTED-FROM-DIALER for C-Kermit: ckuus6.c
. Fix conflicting NOSCROLL keyword definition: ckuusr.h
. Set ttname when I_AM_SSH: ckuusy.c
. Add extended arg parsing for SSH, Rlogin, Telnet: ckuusy.c, ckuus4.c
. Security updates: ckuath.c, ck_ssl.c
. Change K95 version number to 2.2.0: ckcmai.c
. Save K95 term i/o state before executing keyboard macro: ckuus4.c
. Add tests for SSH Subsystem active during INPUT/OUTPUT/CONNECT: ckuus[45].c
. Enable K95 SET SSH V2 AUTO-REKEY: ckuus3.c
SFTP and SET SFTP subcommands are implemented up to the case
statements.
Files of mine that Jeff hadn't picked up:
ckuver.h ckcftp.c ckutio.c ckuusx.c (just minor changes for last build-all)
On 4 Jan 2003, SET RECEIVE MOVE-TO was changed to convert its argument
to an absolute path, which made it impossible to specify a relative
path, then move to different directories and have it apply relatively
to each directory. Changed this as follows:
. Parser uses cmtxt() rather than cmdir() so it won't fail at parse time.
. If path is absolute, we fail at parse time if directory doesn't exist.
. In reof() we run the the path through xxstring (again, in case deferred
evaluation of variables is desired) and then, if not null, use it.
. If the directory doesn't exist, rename() fails and reof() returns -4,
resulting in a protocol error (this is not a change). We do NOT create
the directory on the fly.
I also fixed SET SEND/RECEIVE RENAME-TO to parse with cmtxt() rather
than cmdir(), since it's parsing a text template, not a directory name,
e.g. "set receive rename-to file-\v(time)-v(date)-\v(pid)". This was
totally broken, since when I don't know. We don't call xxstring() in
this parse, so evaluation is always deferred -- I'd better not change
this. ckuus7.c, ckcfns.c, 1 May 2003. ===
From Jeff, Sat May 3 14:15:23 2003:
. Pick up the right isascii definition for K95: ckctel.c
. malloc... ckuath.c (new safe malloc routines for K95)
. Add author listing: ckuus5.c
. SSH Heartbeat support (K95 only): ckuus[23].c
. Prescan --height and --width to avoid window resizing at startup: ckuusy.c
. Add checks for fatal() or doexit() called from sysinit(): ckuusx.c
. Move some K95-specific definitions to ckoker.h: ckcdeb.h
. Add support for ON_CD macro in zchdir(): ckufio.c
. Add a command to let FTP client authenticate with SSLv2: ckcftp.c
. Fix parsing of FTP file facts like "UNIX.mode": ckcftp.c
ON_CD will need some explaining (to be done). It's implemented for
Unix, VMS, WIndows, and OS/2.
The FTP file facts fix came from first exposure to the new OpenBSD FTP
server: [2]ftp://ftp7.usa.openbsd.org/pub/os/OpenBSD/3.3/i386/ The
period in "UNIX.mode" caused an erroneous word break, adding junk to
the filename.
About the malloc changes, Jeff says "K95 is not behaving well in low
memory environments. I'm not sure that C-Kermit does much better. The
program does not crash but it certainly does not behave the way the
user expects it to. I'm beginning to think that any malloc() error
should be treated as fatal."
Not visible in these changes because it's in K95-specific modules: Jeff
made SET ATTRIBUTES OFF and SET ATTRIBUTES DATE OFF apply to XYZMODEM
transfers. ===
From Jeff, 11 May 2003:
. Add support for SSH Keepalive to relevant SET command (K95): ckuus3.c
. Reduce max overlapped i/o requests from 30 to 7 (K95): ckuus7.c
. Don't call sysinit() in fatal(): ckuusx.c.
. Some new conditionalizations for SSL module: ck_ssl.c
===
The doublequote-parsing fixes from March and April broke the SWITCH
statement, which is implemented by internally defining, then executing,
a macro. If I drop back to the old dumb handling of doublequotes,
everything is fixed except the problem of March 17th. But can we really
expect getncm() to pre-guess what the parser is going to do? getncm()'s
only job is to find command boundaries, which are represented by
commas. Commas, however, is needed IN commands too. We take a comma
literally if it is quoted with \, or is inside a matched pair of
braces, parens, or doublequotes. It is not unreasonable to require a
doublequote in a macro definition to be prefixed by \ when it is to be
taken literally. The proper response to Jason Heskett's complaint of
March 17th should have been to leave the code alone and recommand an
appropriate form of quoting:
def TEST {
.foo = {X\"}
sho mac foo
}
And this is what I have done. Another reason for sticking with the old
method is that it's explainable. The "improved" method, even if it
worked, would be be impossible to explain. Btw, in testing this I
noticed that the switch-test script made 8.0.201 dump core. Today's
version is fine. The problem with quoted strings inside of IF {...}
clauses and FOR and WHILE loops is fixed too. Perhaps "unbroken" would
be a better word. ckuus5.c, 11 May 2003. ===
Vace discovered that FTP MGET /EXCEPT:{... (with an unterminated
/EXCEPT list) could crash Kermit. Fixed in ckcftp.c, 11 May 2003. ===
CONTINUE should not affect SUCCESS/FAILURE status. ckuusr.c, 11 May
2003. ===
Fixed an oversight that goes back 15 years. While \{123} is allowed for
decimal codes, \x{12} and \o{123} were never handled. ckucmd.c, 11 May
2003. ===
Added support for Red Hat <baudboy.h> and /usr/sbin/lockdev. Supposedly
this allows Kermit to be installed without setuid or setgid bits and
still be able to lock and use the serial device. Compiles and starts,
but not tested. ckcdeb.h, makefile, ckutio.c, ckuus5.c, 16 May 2003.
===
From Jeff: FTP ASCII send data to host when FTP /SSL was in use was
broken. ftp_dpl is set to Clear when FTP /SSL is in use. This was
causing the data to be written to the socket with send() instead of the
OpenSSL routines. ckcftp.c, ckuath.c, 21 May 2003. ===
From Jeff: Stuff for Kerberos 524: ckcdeb.h. Fixes for FTP; "FTP ASCII
send data did not properly compute the end of line translations. On
Unix (and similar platforms) the end of line was correct for no
character sets but incorrect when character sets were specified. On
Windows/OS2, the end of line was correct when character sets were
specified and incorrect when they were not. On MAC, both were broken.
Also, FTP Send Byte counts were incorrect when character sets were
specified." ckcftp.c. 17 Jun 2003. ===
From Jeff: fixes to HTTP /AGENT: and /USER: switch action: ckcnet.c
ckuus3.c ck_crp.c ckcftp.c ckuus2.c ckuusy.c ckuusr.c ckcnet.h, 21 Jun
2003. ===
From Jeff: Fix SET DIALER BACKSPACE so it can override a previous SET
KEY (e.g. from INI file): ckuus7.c. Some SSL/TLS updates: ck_ssl.c.
HTTP support for VMS and other VMS improvements (e.g. a way to not have
to hardwire the C-Kermit version number into the build script) from
Martin Vorlaender: ckcnet.h, ckuus[r3].c, ckcdeb.h, ckvtio.c, ckcnet.c,
ckvker.com. Built on Solaris (gcc/ansi) and SunOS (cc/k&r). The new VMS
script tests the VMS version and includes HTTP support only for VMS 6.2
or later. 2 Jul 2003. ===
Tried to build on our last VMS system but it seems to be dead. Looks
like a head crash (makes really loud noises, boot says DKA0 not
recognized) (fooey, I just paid good money to renew the VMS license).
Tried building at another site with:
Process Software MultiNet V4.3 Rev A-X,
Compaq AlphaServer ES40, OpenVMS AXP V7.3
Compaq C V6.4-008 on OpenVMS Alpha V7.3
Had to make a few corrections to ckvker.com. But still, compilation of
ckcnet.c bombs, indicating that the SELECT definition somehow got lost
somewhere since the 209 release (i.e. no SELECT type is defined so it
falls thru to "SELECT is required for this code"). But I don't see
anything in ckcdeb.h or ckcnet.[ch] that would explain this. Not
ckvker.com either (putting the old one back gives the same result). OK,
I give up, maybe it's just that I haven't tried building it on MultiNet
recently. What about UCX? Aha, builds fine there except for warnings
about mlook, dodo, and parser in ckvfio.c (because of ON_CD) -- I
suppose I have #include <ckucmd.h>... (done) Anyhow it builds OK and
the HTTP code is active and almost works (HTTP OPEN works; HTTP GET
seems to succeed but creates an empty file every time). Tried building
under MultiNet at another installation; same bad result.
OK so why won't it build for MultiNet? Comparing ckcnet.c with the 209
version, not a single #ifdef or #include is changed. Tried building
with p3="NOHTTP" -- builds OK, aha. Where's the problem? Not
ckcnet.h... Not ckcdeb.h... OK I give up, will revisit this next time I
get time to do anything with the code.
Later Jeff said "Martin did not implement VMS networking for the HTTP
code. All he did was activate the #define HTTP which happens to work
because his connections are using SSL/TLS connections. http_inc(),
http_tol(), etc have no support for VMS networking regardless of
whether it is UCX or MULTINET. The vast majority of HTTP connections
are not secured by SSL/TLS. It makes no sense to support HTTP on VMS
until someone is willing to either do the work or pay have the work
done to implement VMS networking in that code base." So the fix is to
not enable HTTP for VMS after all. Removed the CKHTTP definition for
VMS from ckcdeb.h, 6 Jul 2003. ===
Fixed ckvfio.c to #include <ckuusr.h> (instead of <ckucmd.h>) to pick
up missing prototypes. 6 Jul 2003. ===
From Arthur Marsh: solaris2xg+openssl+zlib+srp+pam+shadow and the
corresponding Solaris 7 target. makefile, 6 Jul 2003. ===
Remove duplicate #includes for <sys/stat.h>, <errno.h>, and <ctype.h>
from ckcftp.c. 6 Jul 2003. ===
Add -DUSE_MEMCPY to Motorola SV/68 targets because of shuffled
#includes in ckcftp.c. 8 Jul 2003. ===
From Jeff: Fix problems mixing SSL and SRP without Kerberos. Plus a few
minor #define comment changes and a reshuffling of #defines in ckcdeb.h
to allow me to build on X86 Windows without Kerberos. ckcdeb.h,
ck_crp.c, ckuath.c, 10 Jul 2003. ===
From Jeff: updated ckuat2.h and ckuath.c, 29 Jul 2003. ===
Mats Peterson noticed that a very small Latin-1 file would be
incorrectly identified as UCS-2 by scanfile(). Fixed in ckuusx.c, 29
Jul 2003. ===
Fixed ACCESS macro definition to account for the fact that FIND is now
a built-in command. ckermit.ini, 30 Jul 2003. ===
From Jeff: Fix for typo in urlparse() (svc/hos): ckuusy.c, 18 Aug 2003.
From Jeff: Redhat9 makefile targets (needed for for OpenSSL 0.9.7):
makefile, 19 Aug 2003. ===
GREP /NOLIST and /COUNT did too much magic, with some undesirable
fallout: "GREP /NOLIST /COUNT:x args" printed "file:count" for each
file. "GREP /COUNT:x /NOLIST args" did not print "file:count", but
neither did it set the count variable. Removed the magic. Also one of
the GREP switches, /LINENUMBERS, was out of order. Fixed in ckuus6.c,
20 Aug 2003. ===
From Jeff: "Reorganizing code to enable building with different subsets
of options; a few typos corrected as well." ckcdeb.h, ckuver.h (for
RH9), ckcnet.c, ckuus7.c, ckuus3.c: 24 Aug 2003. ===
Scanfile misidentified a big PDF file as text because the first 800K of
it *was* text (most other PDF files were correctly tagged as binary).
Fixed by adding a check for the PDF signature at the beginning of the
file. scanfile(): ckuusx.c, 25 Aug 2003. ===
Ditto for PostScript files, but conservatively. Signature at beginning
of file must begin with "%!PS-Ado". If it's just "%!" (or something
nonstandard like "%%Creator: Windows PSCRIPT") we do a regular scan.
Also added "*.ps" to all binary filename patterns. ckuusx.c, 4 Sep
2003. ===
Ditto (but within #ifndef NOPCLSCAN) for PCL (<ESC>E) and PJL (<ESC>%)
files, but no binpatterns (note: ".PCL" is the extension for TOPS-20
EXEC scripts). ckuusx.c, 4 Sep 2003. ===
Added comments about OpenSSL 0.9.7 to all linux+openssl targets.
makefile, 4 Sep 2003. ===
From Jeff: Added - #define ALLOW_KRB_3DES_ENCRYPT. When this symbol is
defined at compilation Kermit will allow non-DES session keys to be
used during Telnet Auth. These session keys can then be used for Telnet
Encrypt. The reason this is not compiled on by default is that the MIT
Kerberos Telnet does not follow the RFC for constructing keys for
ENCRYPT DES when the keys are longer than 8 bytes in length. ckuath.c,
ckuus5.c, 4 Sep 2003. ===
"ftp mget a b c" succeeded if one or more of the files did not exist,
even with "set ftp error-action proceed". This is because the server's
NLST file list does not include any files that don't exist, so the
client never even tries to get them. Fortunately, the way the code is
structured, this one was easy to fix. ckcftp.c, 14 Sep 2003. ===
From Jeff: Corrected code in ckcnet.c to ensure that Reverse DNS
Lookups are not performed if tcp_rdns is OFF. Fixed ck_krb5_getrealm()
to actually return the realm of the credentials cache and not the
default realm specified in the krb5.conf file. Previously
krb5_cc_get_principal() was not being called. Fixed
ck_krb5_is_tgt_valid() to test the TGT in the current ccache and not
the TGT constructed from the default realm. ckcnet.c, ckuath.c, 14 Sep
2003. ===
Marco Bernardi noticed that IF DIRECTORY could produce a false positive
if the argument directory had previously been referenced but then
removed. This is because of the clever isdir() cache that was added to
speed up recursion through big directory trees. Changed IF DIRECTORY to
make a second check (definitive but more expensive) if isdir()
succeeds, and changed the directory-deleting routine, ckmkdir(), to
flush the directory cache (UNIX only -- this also should be done in K95
but it's not critical). This was done by adding a routine,
clrdircache() to ckufio.c, which sets prevstat to -1 and prevpath[0] to
NUL. ckcfn3.c, ckuus6.c, ckufio.c, 18 Sep 2003.
Marco reported the second fix still didn't work for him (even though it
did for me). Rather than try to figure out why, I concluded that the
directory cache is just not safe: a directory found a second ago might
have been deleted or renamed not only by Kermit but by some other
process. Why did I add this in the first place? The log says:
Some debug logs showed that isdir() is often called twice in a row on the
same file. Rather than try to sort out clients, I added a 1-element cache
to Unix isdir(). ckufio.c, 24 Apr 2000.
Experimentation with DIR and DIR /RECURSIVE does not show this
happening at all. So I #ifdef'd out the directory cache (see #ifdef
ISDIRCACHE in ckufio.c; ISDIRCACHE is not defined) and backed off the
previous changes: ckufio.c, ckcfn3.c, ckuus6.c, 28 Sep 2003. ===
From Jeff: Replace the compile time ALLOW_KRB_3DES_ENCRYPT with a
run-time command SET TELNET BUG AUTH-KRB5-DES which defaults to ON:
ckctel.[ch], ckuus[234].c, ck_crp.c, ckuath.c. 4 Oct 2003. ===
Allow DIAL RETRIES to be any positive number, and catch negative ones.
Also added code to check for atoi() errors (e.g. truncation). At least
on some platforms (e.g. Solaris) atoi() is supposed to set errno, but
it doesn't. ckuus3.c, ckucmd.c, 4 Oct 2003. ===
Added /DEFAULT: to ASK-class commands (ASK, ASKQ, GETOK):
. For popups: no way to send defaults to popup_readtext() or popup_readpass().
. For GUI ASK[Q], pass default to gui_txt_dialog().
. For GUI GETOK, convert "yes" "ok" or "no" default to number for uq_ok().
. For Text GETOK, add default to cmkey().
. For Text ASK[Q], add default to cmtxt().
. For GETC, GETKEY, and READ: no changes.
GETOK, ASK, and ASKQ with /TIMEOUT: no longer fail when the timer goes
off if a /DEFAULT was supplied. The GUI functions (uq_blah) don't seem
to support timeouts. Only the text version has been tested.
ckuus[26].c, 4 Oct 2003. ===
From Jeff: add /DEFAULT: for popups. ckuus6.c. 6 Oct 2003. ===
Change SET DIAL INTERVAL to be like SET DIAL RETRIES. ckuus[34].c, 6
Oct 2003. ===
Added target for HP-UX 10/11 + OpenSSL built with gcc, from Chris
Cheney. Makefile, 12 Oct 2003. ===
From Jeff, 6 Nov 2003:
. #ifdef adjustments: ckcftp.c, ckcdeb.h
. Fix spurious consumption of first byte(s) on Telnet connection: ckctel.c
. Another HP PJL test for scanfile: ckuusx.c.
. K95: Recognize DG4xx protected fields in DG2xx emulation: ckuus7.c.
. Add SSLeay version display to SHOW AUTH command: ckuus7.c
. Improved SET MOUSE CLEAR help text: ckuus2.c.
. Improved Kverbs help text: ckuus2.c (+ new IBM-3151 Kverbs).
. Some changes to ck_ssl.c, ckuath.c.
===
From PeterE, 10 Nov 2003:
. Improved HP-UX 10/11 makefile targets for OpenSSL.
. #ifdef fix for OpenSSL on HP-UX: ck_ssl.c.
===
Another new makefile from PeterE with improved and integrated HP-UX
targets. 12 Nov 2003. ===
A couple fixes to the solaris9g+krb5+krb4+openssl+shadow+pam+zlib
target from Jeff. Added a solaris9g+openssl+shadow+pam+zlib target.
makefile, 21 Nov 2003. ===
From Jeff, 30 Nov 2003:
. Fix SEND /MOVE-TO: ckuusr.c.
. Fix K95 SET TITLE to allow quotes/braces around text: ckuus7.c.
. Improved "set term autodownload ?" response: ckuus5.c.
. Fix SHOW FEATURES to specify the protocol for encryption: ckuus5.c
. Make {SEND, RECEIVE} {MOVE-TO, RENAME-TO} work for XYZMODEM (K95 only).
===
From Jeff: 7 Jan 2004:
. At one point Frank started to add a timer parameter to the
uq_txt() function but he only did it for the non-ANSI
compilers. I added it for the ANSI compilers, fixed the
prototypes and provided a default value easily changed
DEFAULT_UQ_TIMEOUT: ckcker.h, ckuus[36].c, ck_ssl.c, ckcftp.c, ckuath.c.
. Fixed SET TERMINAL DEBUG ON (typo in variable name): ckuus7.c.
. Fixed BEEP INFORMATION; previously it made no sound, now uses
MB_ICONQUESTION. ckuusx.c.
===
From Ian Beckwith <ian@nessie.mcc.ac.uk> (Debianization), 7 Jan 2004:
. Search dir/ckermit for docs, as well as dir/kermit in cmdini(): ckuus5.c.
. New linux+krb5+krb4+openssl+shadow+pam target (kitchen sink minus SRP,
which Debian does not distribute): makefile.
? Mangles the DESTDIR support in makefile to install into a staging area:
makefile (I didn't take this one yet).
Updated copyright notices for 2004, all modules. 7 Jan 2004. ===
Added INPUT /NOMATCH, allowing INPUT to be used for a fixed amount of
time without attempting to match any text or patterns, so it's no
longer necessary to "input 600 STRING_THAT_WILL_NEVER_COME". If
/NOMATCH is included, INPUT succeeds if the timeout expires, with
\v(instatus) = 1 (meaning "timed out"); fails upon interruption or i/o
error. ckuusr.h, ckuus[r24].c, 7 Jan 2004. ===
Added SET INPUT SCALE-FACTOR <float>. This scales all INPUT timeouts by
the given factor, allowing time-sensitive scripts to be adjusted to
changing conditions such as congested networks or different-speed
modems without having to change each INPUT-class command. This affects
only those timeouts that are given in seconds, not as wall-clock times.
Although the scale factor can have a fractional part, the INPUT timeout
is still an integer. Added this to SHOW INPUT, and added a \v(inscale)
variable for it. ckuusr.h, ckuus[r257].c, 7 Jan 2004. ===
undef \%a, \fverify(abc,\%a) returns 0, which makes it look as if \%a
is a string composed of a's, b's, and/or c's, when in fact it contains
nothing. Changed \fverify() to return -1 in this case. ckuus4.c, 12 Jan
2004. ===
\fcode(xxx) returned an empty string if its argument string was empty.
This makes it unsafe to use in arithmetic or boolean expressions.
Changed it to return 0 if its argument was missing, null, or empty.
ckuus4.c, 12 Jan 2004. ===
Updated \verify() and \fcode() help text. ckuus2.c, 12 Jan 2004. ===
While setting up IKSD, Ian Beckwith noticed that including the
--initfile: option caused Kermit to start parsing its own Copyright
string as if it were the command line, and eventually crash. I couldn't
reproduce on Solaris / Sparc but I could in Linux / i386 (what Ian is
using) -- a change from Jeff on 28 Apr 2003 set the command-line arg
pointer to a literal empty string in prescan() about line 1740 of of
ckuus4.c; the pointer is incremented next time thru the loop, resulting
in random memory being referenced. Fixed by setting the pointer to NULL
instead of "". ckuus4.c, 12 Jan 2004. ===
declare \&a[999999999999999] would dump core on some platforms. atoi()
or whatever would truncate the dimension to maxint. When we add 1 to
the result, we get a negative number, which is used as an index, loop
test, etc. Fixed both dodcl() and dclarray() to check for (n+1 < 0).
ckuus[r5].c, 12 Jan 2004. ===
Unix zchki() would fail on /dev/tty, which is unreasonable. This
prevented FOPEN /READ from reading from the terminal. zchki() already
allowed for /dev/null, so I added /dev/tty to the list of specials.
Ditto for FOPEN /WRITE and zchko(). ckufio.c 13 Jan 2004. ===
Added untabify() routine to ckclib.[ch], 13 Jan 2004. Added FREAD /TRIM
and /UNTABIFY. ckuus[27].c, 13 Jan 2004. Added \funtabify(). ckuusr.h,
ckuus[24].c, 13 Jan 2004. ===
Dat Nguyen noticed that (setq u 'p') followed by (u) dumped core. This
was caused by an over-clever optimization that skipped mallocs for
short literals, but then went on later to try to free one that hadn't
been malloc'd. Fixed in dosexp(): ckuus3.c, 14 Jan 2004. ===
Catch another copyright date. ckuus5.c, 14 Jan 2004. ===
Fixed SWITCH to work even when SET COMMAND DOUBLEQUOTE OFF (from Mark
Sapiro). ckuus5.c, 15 Jan 2004. ===
Changed version to 8.0.211 so scripts can test for recently added
features. ckcmai.c, 15 Jan 2004. ===
Fixed a glitch in K95 "help set port". ckuus2.c, 20 Jan 2004. ===
Fix from Jeff: Connections to a TLS-aware protocol which require a
reconnect upon certificate verification failure could not reconnect if
the connection was initiated from the command line or via a URL.
ckctel.c ckcmai.c ckuusr.c ckuus7.c ckuusy.c, 20 Jan 2004. ===
From Alex Lewin: makefile target and #ifdef for Mac OS X 10.3
(Panther): makefile, ckcnet.c, 7 Feb 2004. ===
Added KFLAGS to sco32v507 targets to make PTY and SSH commands work.
The same flags could probably also be added to earlier OSR5 targets but
they have not been tested there. makefile, 7 Feb 2004. ===
Checked a complaint that "LOCAL &a" did not make array \&a[] local.
Indeed it did not, and can not. You have to use the full syntax in the
LOCAL command, "LOCAL \&a[]", or else it doesn't know it's not a macro
named &a. 7 Feb 2004. ===
Fixed some confusion in creating IKSD database file and temp-file
names. I was calling zfnqfp() without remembering that the path member
of the returned struct included the filename, so to get just the
directory name, I needed to strip the filename from the right.
ckuusy.c, 2 Mar 2004. ===
New ckuath.c, ck_ssl.c from Jeff. 2 Mar 2004. ===
Updated Jeff's affiliation in VERSION command text. ckuusr.c, 2 Mar
2004. ===
Designation changed from Dev.00 to Beta.01. ckcmai.c, 2 Mar 2004. ===
Fixed zrename() syslogging -- it had success and failure reversed.
Beta.02: ckufio.c, 4 Mar 2004. ===
Problem: when accessing IKSD via a kermit:// or iksd:// URL, and a user
ID is given but no password, doxarg() set the password to "" instead of
leaving it NULL, but all the tests in dourl() are for NULL. Fixed in
doxarg(): ckuusy.c, 5 Mar 2004. ===
The logic in dourl() about which macro to construct (login and connect,
login and get directory listing, or login and fetch a file) was a bit
off, so all three cases were not handled. ckcmai.c, 5 Mar 2004. ===
Trial Beta builds:
. HP-UX B.11.11 PA-RISC
. HP-UX B.11.23 IA64
. Tru64 4.0G Alpha
. Tru64 5.1B Alpha
. Debian 3.0 i386
. Red Hat ES 2.1 i386
. Slackware 9.1 i386
. VMS 7.3-1 Alpha + UCX 5.3
. VMS 7.3-1 Alpha no TCP/IP
. VMS 7.3 Alpha MultiNet 4.3 A-X
. SCO UnixWare 7.1.4 i386
. SCO OSR5.0.7 i386
. Solaris 9 Sparc
===
Fixed compiler warning in doxarg() caused by typo (NULL instead of NUL)
in the 5 March doxarg() edit. ckuusy.c, 9 Mar 2004. ===
IKSD (kermit://) command-line URLs did not work right if the client had
already preauthenticated with Kerberos or somesuch because they tried
to log in again with REMOTE LOGIN. The macros constructed in doxarg()
needed to check \v(authstate) before attempting REMOTE LOGIN. ckcmai.c,
10 Mar 2004. ===
Added ckuker.nr to x.sh (ckdaily upload) and updated ckuker.nr with
current version number and dates. 10 Mar 2004. ===
Replaced hardwired references to /usr/local in makefile with $(prefix)
(which defaults to /usr/local, but can be overridden on the command
line), suggested by Nelson Beebe for use with Configure. 10 Mar 2004.
===
From Nelson Beebe: In the Kermit makefile in the install target
commands, line 981 reads:
cp $(BINARY) $(DESTDIR)$(BINDIR)/kermit || exit 1;\
Could you please add this line before it:
rm -f $(DESTDIR)$(BINDIR)/kermit;\
Some sites (mine included) keep multiple versions of software around,
with hard links between $(prefix)/progname and
$(prefix)/progname-x.y.z. Failure to remove the $(prefix)/progname at
"make install" time then replaces the old $(prefix)/progname-x.y.z with
the new one, destroying an old version that the site wanted to be
preserved. makefile, 10 Mar 2004. ===
Minor syntax and typo fixes (mostly prototypes): ckcdeb.h, ckcfns.c,
ckclib.c, ckufio.c, ckuusr.h, ckuusx.c, 10 Mar 2004. (I still have a
few more to do.) ===
Added CC=$(CC) CC2=$(CC2) to many (but not all) makefile targets that
reference other makefile targets. On some platforms (notably AIX,
Solaris, SunOS) there are specific targets for different compilers, so
I skipped those. makefile, 10 Mar 2004. ===
Added error checking to kermit:// URL macros, so they don't plow ahead
after the connection is closed. ckcmai.c, 11 Mar 2004. ===
Added FreeBSD 4.9 and 5.1 targets (only the herald is affected).
makefile, ckuver.h, 11 Mar 2004.
=== Added "LIBS=-lcrypt" to bsd44 targets since nowadays crypt is
almost always unbundled from libc. Also added explanatory notes.
makefile, 11 Mar 2004. ===
Changed MANDIR to default to $(manroot)/man/man1, and manroot to
default to $(prefix). More adding of CC=$(CC) clauses:
{Free,Net,Open}BSD, 4.4BSD. makefile, 11 Mar 2004. ===
Miscellaneous cleanups: ckuusx.c, ckcnet.c, ckufio.c, 11 Mar 2004. ===
Corrected the check in the linux target to see if /usr/include/crypt.h
exists, and if so to define HAVE_CRYPT_H, which is used in ckcdeb.h to
#include <crypt.h> to get the prototype for crypt() and prevent bogus
conversions on its return type on 64-bit platforms (the previous test
wasn't quite right and the resulting symbol wasn't spelled right).
makefile, 12 Mar 2004. ===
From Jeff, 14 Mar 2004:
. Initialize localuidbuf[] in tn_snenv(): ckctel.c.
. Remove remote-mode checks in hupok() for K95G only (why?): ckuus3.c.
. Add help text for new K95-only TYPE /GUI switches: ckuus2.c.
. TYPE /GUI parsing, ...: ckuusr.c.
. TYPE /GUI action, dotype(): ckuus6.c
. Change Jeff's affiliation: most modules.
===
20 Mar 2004: Looked into adding long file support, i.e. handling files
more than 2GB (or 4GB) long. Discovered very quickly this would be a
major project. Each platform has a different API, or environment, or
transition plan, or whatever -- a nightmare to handle in portable code.
At the very least we'll need to convert a lot of Kermit variables from
long or unsigned long to some new Kermit type, which in turn is
#defined or typedef'd appropriately for each platform (to off_t or
size_t or whatever). Then we have to worry about the details of open()
vs fopen(); printf() formats (%lld vs %Ld vs %"PRId64"...), platforms
like HP-UX where you might have to use different APIs for different
file systems on the same computer, etc. We'll need to confront this
soon, but let's get a good stable 8.0.211 release out first! Meanwhile,
for future reference, here are a few articles:
General: [3]http://freshmeat.net/articles/view/709/
Linux: [4]http://www.ece.utexas.edu/~luo/linux_lfs.html
HP-UX: [5]http://devrsrc1.external.hp.com/STK/partner/lg_files.pdf
Solaris: [6]http://wwws.sun.com/software/whitepapers/wp-largefiles/largefiles.
pdf
===
Looked into FTP timeouts. It appears I can just call empty() (which is
nothing more than a front end for select()) with the desired timeout
before any kind of network read. If it returns <= 0, we have a timeout.
This is not quite the same as using alarm() / signal() around a recv()
(which could get stuck) but alarm() / signal() are not not used in the
FTP module and are not naturally portable to Windows, but select() is
already in use in the FTP module for both Unix and Windows. This form
of timeout could be used portably for both command response and data
reads. What about writes to the command or data socket? They can get
stuck for hours and hours without returning too, but the select()
approach won't help here -- we need the actual send() or recv() to time
out, or be wrapped in an alarm()/signal() kind of mechanism. But if we
can do that for sends, we can also do it for receives. Better check
with Jeff before I start programming anything. 20 Mar 2004.
Later: Decided to postpone the above two projects (ditto IPv6) until
after 8.0.211 is released because both will have major impacts on
portability. Grumble: all i/o APIs should have been designed from the
beginning with a timeout parameter. To this day, hardly any have this
feature. ===
3-4 Apr 2004: More 8.0.211 Beta.02+ test builds:
. FreeBSD 3.3
. FreeBSD 4.4
. Linux Debian 2.1
. Linux RH 6.1
. Linux RH 7.1
. Linux RH 7.2
. Linux RH 9 (with 84 different combinations of feature selection)
. Linux SuSE 6.4
. Linux SuSE 7.0
. NetBSD 1.4.1
. NetBSD 1.5.2
. OpenBSD 2.5
. OpenBSD 3.0
. QNX 4.25
. SCO UnixWare 2.1.3
. SCO UnixWare 7.1.4
. SCO OpenServer 5.0.7
. SCO XENIX 2.3.4 (no TCP)
Changes needed: None. ===
Problem: SCO XENIX 2.3.4 network build failed in the FTP module with
header-file syntax and conflicting-definitions trouble. I'm not going
to try to fix it; 8.0.209 built OK with FTP, so we'll just keep that
one available. ===
Got access to VMS 8.1 on IA64. Building the nonet version of C-Kermit
required minor modifications to ckvvms.h, ckv[ft]io.c, and ckvcon.c, to
account for a third architecture. Also to SHOW FEATURES in ckuus5.c.
Once that was done, the UCX 5.5 version built OK too. Starts OK, makes
Telnet connection OK, sends files. Has some obvious glitches though --
"stat" after a file transfer reports 0 elapsed time (in fact it was
00:09:48) and 1219174400 cps (when in fact it was 10364). This doesn't
happen on the Alpha. Btw, the IA64 binary is twice as big as the Alpha
one. Changed to Beta.03. 5 Apr 2004. ===
Fixed the ckdaily script to include the makefile and man page in the
Zip file (they were not included because the Zip file was intended
mainly for VMS users, but some Unix users prefer Zip to tar.gz). 6 Apr
2004. ===
Traced problems in VMS/IA64 statistics report to rftimer()/gftimer() in
ckvtio.c, which use sys$ and lib$ calls to figure elapsed time. These
work on VAX and Alpha but not IA64. Sent a report to the chief engineer
of the IA64 VMS port; he says it's probably a bug in VMS 8.1 (which is
not a real release); he'll make sure it's fixed in 8.2. As an
experiment, tried swapping in the Unix versions of these routines
(which call gettimeofday() etc). They seem work just fine (it hung a
couple times but I think that's because the underlying system hung too;
trying it later on a new connection, it was fine; however I noticed a
BIG discrepancy in throughput between sending and receiving). Moved
definitions for VMS64BIT and VMSI64 to ckcdeb.h so all modules can use
them and added them to the SHOW FEATURES display. Added VMSV80
definition to build procedure. Beta.03+. ckcdeb.h, ckcuus5.c,
ckcvvms.h, ckvtio.c, ckvker.com, 6 Apr 2004. ===
While doing the build-all, I noticed the VMS version did not build with
Multinet or older UCX versions, always with the same errors --
undeclared variables, undefined symbols, all TCP/IP related. This
didn't happen a couple weeks ago... Somehow the order of #includes was
messed up -- ckuusr.h depended on symbols that are defined in ckcnet.h,
but ckcnet.h was being included after ckuusr.h... this was compounded
by two missing commas in ckvker.com. 11 Apr 2004. ===
Removed Beta designation, released as 8.0.211, 10 Apr 2004.
I had somehow lost the edit to ckutio.c that changed the UUCP lockfile
for Mac OS X from /var/spool/uucp to /var/spool/lock. So I slipped it
in and re-uploaded version 8.0.211. You can tell the difference because
SHOW VERSIONS has 17 Apr 2004 for the Communications I/O module. Also
the 10.3 executable now has a designer banner: "Mac OS X 10.3".
makefile, ckuver.h, ckutio.c, ckuus[45].c, 17 Apr 2004. ===
---8.0.211--- ===
Removed "wermit" from "make clean" (how did it get there?). makefile.
===
From Jeff, applied 10 May 2004.
. Rearrange #ifdefs that define OS/2-only features. ckcdeb.h.
. Fix two strncat()s that should have been ckstrncat()s. ckuus7.c.
. Fix two strncat()s that should have been ckstrncat()s. ckuus4.c.
. Fix one strncat(). ckcfns.c.
. SET FTP CHAR ON used backwards byte order when output to screen. ckcfns.c.
. Fix two strncat()s. ckuus3.c.
. Add SET NETWORK TYPE NAMED-PIPE for K95. ckuus3.c.
. Add "No active connections" message to hupok(). ckuus3.c.
. Fix many strncat()s. ckcnet.c.
. Fix some strncat()s. ckcftp.c
. Make FTP port unsigned short for 16383 < port < 65536. ckcftp.c.
. Improvements to FTP USER command. ckcftp.c.
. Fix FEAT parsing to allow for various forms of whitespace. ckcftp.c.
===
S-Expression (AND FOO BAR) would not short-circuit if FOO's value was
0, even though short-circuiting code has been there since Day 1.
Similarly for (OR BAR FOO). Turns out the first operand was a special
case that bypassed the short-circuit check. Fixed in dosexp():
ckuus3.c, 10 May 2004. ===
Red Hat 7.3 (and maybe others) <baudboy.h> referenced open() without
first ensuring it was declared. The declaration is in <fcntl.h>, which
is after <baudboy.h> in ckutio.c series of #includes. Made a special
case for this. ckutio.c (see comments), 10 May 2004. ===
If the local Kermit's parity is set to SPACE and then a file arrives
via autodownload, automatic parity detection improperly switches it to
NONE. Fixed in rpack() by switching parity automatically only if
parchk() returns > 0 (rather than > -1), since NONE and SPACE are
indistinguishable. A bigger problem still remains: autodownload does
not work at all if the sender is using actual parity bits (even, odd,
or mark) and the receiver's parity is NONE. ckcfn2.c, 10 May 2004. ===
When a DIAL MACRO is defined and the phone number is comprised of more
than one "word" (i.e. contains spaces), the dial macro loses the second
and subsequent words after the first call. Fixed in xdial() by
inserting quotes around phone number before passing it to xdial().
ckuus6.c, 10 May 2004. ===
DIAL MACRO fix was not right; the quotes were kept as part of the phone
number and sent to the modem. dodo() pokes its argument to separate the
macro argument string into its component arguments. xdial() is called
repeatedly on the same string, so after the first time, a NUL has been
deposited after the first word of the telephone number. The fix is to
have xdial() create a pokeable copy of its argument string before
calling dodo(dial-macro,args...). It might seem odd that dodo pokes its
argument, but making copies would be would be prohibitive in space and
time. ckuus6.c, 23 May 2004. ===
FTP CD did not strip braces or quotes from around its argument. Fixed
in doftprmt(): ckcftp.c, 23 May 2004. ===
Added client side of REMOTE MESSAGE/RMESSAGE/RMSG: ckuus[r27].c, 23 May
2004. ===
Server side of REMOTE MESSAGE: ckcpro.w, 23 May 2004. ===
From Dave Sneddon: an updated CKVKER.COM containing a fix where the
COMPAQ_SSL symbol was not defined but later referenced which generated
an undefined symbol error. ckvker.com, 5 Jan 2005. ===
From Andy Tanenbaum (28 May 2005):
. Fix an errant prototype in ckcker.h and ckucmd.h - () instead of (void).
. Add support for MINIX 3.0. makefile, ckutio.c, ckufio.c, ckuver.h.
===
Fixed messed-up sndhlp() call which apparently had been jiggered to
compensate for the bad prototype which has now been fixed, ckcpro.w, 12
Jun 2005. ===
From Jeff (12 June 2005):
. Security updates. ck_ssl.c, ck_crp.c, ckuath.c.
. Fix bug in K95 SET PRINTER CHARACTER-SET. ckuus3.c.
. Add printer character-set to K95 SHOW PRINTER display. ckuus5,c
. Add SET MSKERMIT FILE-RENAMING to K95. ckuus7.c, ckuusr.h.
. Add help for K95 SET MSKERMIT. ckuus2.c.
. Add SET GUI CLOSE to K95. ckuusr.h, ckuus2.c, ckuus3.c
. Add help text for K95 SET GUI MENUBAR and TOOLBAR. ckuus2.c.
. Add --noclose command-line option for K95. ckuusy.c
. Add PAM support for Mac OS X. ckufio.c.
. Add GSSAPI support for Mac OS X. ckcftp.c.
. Pick up more URL options. ckcker.h, ckuusy.c.
. Fix bug in delta-time calculation across year boundary. ckucmd.c.
. Add Secure Endpoints to copyright notices. ckcmai.c.
. Fix FTP HELP to override unverbose setting. ckcftp.c.
. Fix assorted minor typos.
===
From Matthias Kurz: automatic herald generation for NetBSD 2.0 and
later, "make netbsd2". ckuver.h, makefile, 12 Jun 2005. ===
Added SET TERMINAL LF-DISPLAY, like CR-DISPLAY but for linefeed rather
than carriage return. ckuusr.h, ckuus[257x].c, 12 Jun 2005. ===
Made a command-line option --unbuffered to do what the -DNONOSETBUF
compile-time option does, i.e. force unbuffered console i/o. Unix only.
ckuusr.h, ckuusy.c, ckutio.c, 12 Jun 2005. ===
Fixed getiact() (which displays TERM IDLE-ACTION setting) to display
space as \{32}. ckuus7.c, 12 Jun 2005. ===
Added LMV as a synonym for LRENAME, which is itself a synonym for LOCAL
RENAME. ckuusr.c, 12 Jun 2005. ===
Put HELP SET TERMINAL DG-UNIX-MODE text where it belonged. ckuus2.c, 12
Jun 2005. ===
Added IF LINK (Unix only) to test if a filename is a symlink. Uses the
most simpleminded possible method, calls readlink() to see if it
succeeds or fails. No other method is dependable across different
Unixes. This code should be portable because I already use readlink()
elsewhere within exactly the same #ifdefs. ckufio.c, ckuus2.c,
ckuus6.c, 12 Jun 2005. ===
Fixed a bug in which \fdir() wouldn't work when its argument was the
nonwild name of a directory file. zxpand(): ckufio.c, 12 Jun 2005. ===
Made \fdirectory() a synonym for \fdirectories(). Made \fdir() an
acceptable abbreviation for these, even though it clashes with
\fdirname(), which still works as before. ckuus4.c, 12 Jun 2005. ===
Added the long-needed \flopx() function, to return rightmost pieces of
strings, such as file extensions. \fstripx() and \flopx() are the
orthogonal functions we need to pick filenames apart from the right:
\stripx(foo.tar.gz) = foo.tar; flopx(foo.tar.gz) = gz. ckuusr.h,
ckuusr.c, ckuus2.c, 12 Jun 2005. ===
Removed reference to defunct fax number, ckcmai.c, 12 Jun 2005. ===
Added -DHAVE_PTMX to linux+krb5+openssl+zlib+shadow+pam. From Timothy
Folks. makefile, 12 Jun 2005. ===
Built on Solaris 9 and NetBSD 2.0. ===
From Jeff: New build target for Mac OS X 10.3 with Kerberos 5 and SSL.
makefile, 14 Jun 2005. ===
Fixed error in ckuver.h NetBSD #ifdefs. 15 Jun 2005. ===
Fixed SET TERMINAL IDLE-ACTION OUTPUT to work as documented, namely if
the output string is empty, to send a NUL. Previously there was no way
to make it send a NUL. ckuus7.c, 15 Jun 2005. ===
Suppose (in Unix, for example) a filename contains wildcard characters,
such as {abc}.txt. When referring to such a file (e.g. in a SEND
command), these characters can be quoted, e.g. \{abc\}.txt. But if the
file list has been obtained programmatically, e.g. stored in an array,
there is no way, short of tedious, complicated, and error-prone string
processing, to reference the file. For this we need a way to disable
wildcard processing. I added { ON, OFF } choices for the SET WILD and
SHOW FILE commands: ckuusr.h, ckuus[234].c. { ON, OFF } turns
wildcarding off and on without affecting the { KERMIT, SHELL } agent
choice; it does this by setting a new and separate global variable,
wildena. Added semantics to ckufio.c. Crude but effective. It might
have been more Unixlike to add Yet Another form of quoting but we have
enough of that already (later maybe I'll add a \function() for this).
Needs to be propagated to Windows and VMS. 15 Jun 2005. ===
Improved and fixed typos in HELP WILDCARD and HELP PATTERN. ckuus2.c,
15 Jun 2005. ===
The GREP command, and probably anything else that uses ckmatch() for
pattern matching, failed on patterns like */[0-3]*.html. The [a-b]
handler, when failing to match at the current position, neglected to
back up the pattern and try again on the remainder of the string. I
also fixed another case, in which matching a literal string a*b?c
against the pattern a[*?]*[?*]c caused ckmatch() to recurse until it
blew up. ckclib.c, 16 Jun 2005. ===
Added builds and designer banner for Solaris 10. makefile, ckuver.h, 27
Jun 2005. ===
Defined CKHTTP for NetBSD, the HTTP code builds and works fine there.
ckcdeb.h, 2 Jul 2005. ===
Added #ifndef OSF40..#endif around definition of inet_aton() in
ck_ssl() to allow building in Tru64. Added tru64-51b+openssl to
makefile. 15 Jul 2005. ===
HTTP GET would fail if the URL contained any metacharacters, no matter
how much you quoted them. Although it uses cmfld() to parse the
(partial) URL, it then uses cmofi() to get the output filename, which
by default is the "filename" from the URL, which might be something
like "rankem.asp?id=1639". cmofi() refuses to accept unquoted
metacharacters in "filenames" and that's what happens in this case if
the output filename is not specified. Worked around this by disabling
wildcard processing around HTTP GET using the new "wildena" variable
from June 15th. ckuusr.c, 18 Jul 2005. ===
Fixed the June 16th fix to the pattern matcher. I fixed a real problem,
but I made an unrelated optimization that introduced new ones.
ckclib.c, 18 Jul 2005. ===
Added missing help text for \fb64encode() and \fb64decode(). ckuus2.c,
18 Jul 2005. ===
Changed SET WILD OFF help text to warn that this setting prevents the
creation of backup files (later I'll have to see if something more
useful can be done about this). ckuus2.c, 18 Jul 2005. ===
Built OK on Mac OS X 10.4.2 using macosx103 target (but with some
"signedness" warnings in ckcnet.c and ckcftp.c). Built on Unixware
7.1.4 with uw7 target. 27-28 Jul 2005. ===
Added -DCKHTTP to Mac OS X 10.3-.4 KFLAGS. Makefile, 4 Aug 2005. ===
Built on BSDI 4.3.1. Added -DCKHTTP. ===
Compact substring notation extended to accept not only start:length but
also start-end notation. Thus \s(foo[12:18]) means the substring of foo
starting at position 12 of length 18, and tne new \s(foo[12-18]) means
the substring of foo starting at position 12 and ending with position
18. Ditto for \:(\%a), etc. ckuus4.c, 9 Aug 2005. ===
See correspondence with Mark Sapiro, Nov 2003 and Sep 2004, about
certain variations on IF syntax having been broken by the introduction
of "immediate macros" circa 1999. It seems the problem -- variables not
being expanded -- always occurs in the ELSE part when (a) the IF
condition is false; (b) the ELSE command is "standalone", i.e.
expressed as a separate command after the IF command (original C-Kermit
5A syntax), and (c) its command list is a block. This would suggest the
problem is in the XXELS parser.
Going back to 1999, I find this:
Fixed a problem Jim Whitby noticed with quoting in ELSE statements. This
problem was introduced when I unified IF and XIF, and occurs only when
ELSE begins on a line, followed by a { command list } rather than a single
command. The solution (gross) was to make a special version of pushcmd()
(called pushqcmd()) for this situation, which doubles backslashes while
copying, BUT ONLY IF it's a command list (i.e. starts with "{"); otherwise
we break lots of other stuff. Result passes Jim's test and still passes
ckedemo.ksc and iftest.ksc. ckucmd.c, ckuus6.c, 27 Sep 99.
I undid this change and it made no difference to all the other IF
constructions (in fact, it fixed an unrelated one that was broken, so
now iftest scores 54 out of 54, instead of 53). However, it does not
fix the ELSE problem; in fact it pushes it all the way in the other
direction:
The opposite occurs any time you try to execute an immediate macro inside a
macro or any other { block }: not only is the variable evaluated, it is
evaluated into nothing. It looks like this happens only in immediate
macros, i.e. *commands* that start with '{'. So maybe we really have two
isolated problems, that can each be fixed.
The situation is illustrated by this simple script:
def xx {
if false { echo \%1, echo \%2 }
else { echo \%3, echo \%4 }
}
xx one two three four
With pushqcmd() it echoes the variable names literally; with pushcmd()
it echoes empty lines. Since ELSE, when its argument is a block,
dispatches to the immediate-macro handler, it seems we have unified the
two problems, so fixing one should fix the other.
The problem is that we define a new temporary macro and then call
dodo() to execute it. But if the definition contains macro arguments,
we have added a new level of macro invocation, thus wiping out the
current level of args. The cure is to expand the variables in the
immediate macro in the current context, before executing it. This means
simply changing the cmtxt() call that reads the immediate macro to
specify zzstring as its processing function, rather than NULL, which is
used for real macros to defer their argument evaluation until after the
macro entered. ckuusr.c, 11 Aug 2005. ===
Added a new makefile target, macosx10.4, for Mac OS X 10.4. This one
uses an undocumented trick to get the otherwise
unavailable-except-by-clicking Mac OS X version number (in this case
10.4.2) and stuff it into the HERALD string. makefile, 11 Aug 2005. ===
Built OK on Solaris 9, Solaris 10 (with a few implicit declaration
warnings in ckuusx.c), Mac OS X 10.4.2 (with some warnings in ckcnet.c
and ckcftp.c), Mac OS X 10.3.9 (also using the macos10.4 entry, which
gets the right version number, and gets no warnings at all), RH
Enterprise Linux AS4 on AMD x86_64, Tru64 Unix 4.0F, SCO UnixWare 7.1.4
===
For docs and/or scriptlib: Unix C-Kermit can be a stdin/out filter. The
trick is to use the ASK, ASKQ, or GETC command for input, specifying no
prompt, and ECHO or XECHO for output, e.g.:
while true {
ask line
if fail exit 0
echo \freverse(\m(line))
}
exit 0
FOPEN didn't do anything with the channel number if the open failed, so
any subsequent command that tried to reference it would get a parse
error it was undefined or non-numeric, not very helpful. Changed FOPEN
to set the channel number to -1 if the file can't be opened. Now
subsequent operations on the channel fail with "Channel -1: File not
open". I also added two magic channel numbers: -8 means that any FILE
command (besides OPEN and STATUS) on that channel is a noop that
succeeds silently; -9 is a noop that fails silently. So now it's
possible to simply set a channel number to one of these values to
disable i/o to certain file without getting lots of error messages.
dofile(): ckuus7.c, 12 Aug 2005. ===
Added automatic herald construction for UnixWare 7. makefile, 12 Aug
2005. ===
Unix isdir() never allowed for arguments that started with tilde, so
gave incorrect results for ~/tmp/ or ~fdc. The problem was mainly
invisible since most commands that parsed file or directory names used
cmifi(), cmdir(), etc, which did the conversions themselves. But IF
DIRECTORY was an exception, since its operand had to be treated as just
text, and then tested after it was parsed. ckufio.c, 13 Aug 2005.
Fixed the following: "ckuusx.c", line 8959: warning: implicit function
declaration: ckgetpeer "ckufio.c", line 1869: warning: implicit
function declaration: ttwait "ckufio.c", line 2941: warning: implicit
function declaration: mlook "ckufio.c", line 2943: warning: implicit
function declaration: dodo "ckufio.c", line 2944: warning: implicit
function declaration: parser "ckcftp.c", line 2625: warning: implicit
function declaration: delta2sec "ckcftp.c", line 4071: warning: no
explicit type given for parameter: prm "ckcftp.c", line 8389: warning:
no explicit type given for parameter: brief ckuusx.c, ckufio.c,
ckcftp.c, ckucmd.h. 13 Aug 2005. ===
Unbuffered stdout code has never worked because the setbuf(stdout,NULL)
call has to occur before the stdout has been used. The reason it's
needed is that some Kermit code writes to stderr (which is unbuffered)
and other code writes to stdout, and therefore typescripts can come out
jumbled. Robert Simmons <robertls@nortel.com> provided the needed clue
when he insisted it worked only when executed at the very beginning of
main(). So I moved the code to that spot. But since now we also want to
make unbuffered a runtime (command-line) option, I had to do a clunky
by-hand pre-prescan inline in main() to look thru argv[], even before
prescan() was called. ckcmai.c, ckutio.c, ckuusy.c, 13 Aug 2005. (Now
that this works, it might be a good idea to remove all use of stderr
from Kermit.) ===
Managed, after some finagling, to build a 64-bit version on Solaris 10
at Utah Math with Sun cc. (Can't make any gcc builds at all, 32- or
64-bit, they all blow up in <sys/siginfo.h>.) New target: solaris10_64.
makefile, 15 Aug 2005. ===
The 64-bit Solaris 10 version compiles and links OK and transfers files
in remote mode. It can make FTP connections and use them, but Telnet
connections always fail with "network unreachable". This is with all
default libs and include files. Nelson has a separate set in
/usr/local, which he references explicitly in all his 64-bit builds,
but using these makes no difference. Some data type is wrong in
ckcnet.c. But telnet works fine in 64-bit Linux and Tru64 builds. Debug
logs trace the difference to netopen() (of course), the spot where we
test the results of inet_addr(), which is already marked suspicious for
64-bit builds. It seems that inet_addr() is of type in_addr_t, which in
turn is u_int32, i.e. an unsigned 32-bit int. Yet the man page says
that failure is indicated by returning -1. I guess this doesn't matter
in 32-bit builds, but in the 64-bit world, the test for failure didn't
work right. I made a Solaris-specific workaround, and checked that it
works in both 32-bit and 64-builds. I really hate typedefs. ckcnet.c,
15 Aug 2005. ===
Changed the plain-text version (as opposed to the popup or GUI version
- the GUI version, at least, already does this) of ASKQ to echo
keystrokes asterisks rather than simply not echo anything, so it's
easier to see what you're doing, the effects of editing, etc.
Experimental; for now, there's no way to disable this. Not sure if
there needs to be. Anyway, to get this working required a fair amount
of cleaning up of gtword(), which was echoing different ways in
different places. ckuus6.c, ckucmd.c, 15 Aug 2005. ===
Added a solaris9_64 target for building a 64-bit version on Solaris 9
with Sun cc. Verified, using the DIR command and \fsize() function on a
4.4GB file, that the Solaris 64-bit version of Kermit gets the size
correctly, and that it can copy such a file (thus its
fopen/fread/fwrite/fclose interface works right). Initiated a
large-file transfer between here and Utah over SSH and verified that it
puts the correct file size in the A packet when sending; the right
quantities are shown on the file transfer display (file size CPS,
percent done, etc). But even at 5Mb/sec, it takes a good while to
transfer 4.4GB, more than 2 hours (not streaming; 30 window slots, 4K
packets, maybe it would go faster with streaming)... After an hour or
so, it filled up the partition and gave up (gracefully) before it
reached the 2GB frontier (drained its pending packets, closed the
partial file). Restarted at 12:54, this time with streaming and 8K
packets (the speed wasn't significantly different). This time it
transferred 95% of the file (4187660288 bytes) before failing because
the disk filled up. Went to Utah and started a transfer between two
Solaris 10/Sparc hosts; this goes about 8 times faster. The transfer
completed successfully after 17m41s. All fields in the f.t. display
looked right the whole time. Then I verified various other 64-bit
combinations transferring the same 4.4GB file:
To................
From Sol Amd i64 Tru
Sol OK OK OK OK Sol = Solaris 10 / Sparc
Amd OK Amd = AMD x86_64 RH Enterprise Linux AS4
i64 OK i64 = Intel IA64, RH 2.1AS
Tru Tru = Tru64 Unix 4.0F Alpha
(The other combinations are difficult to test for logistical reasons.)
Tried sending the same long file with Kermit's FTP client. It chugged
along for a while until I stopped it; it would have taken hours to
complete. There is no indication that it wouldn't have worked, assuming
the FTP server could also handle long files, which who knows. Anyway,
Kermit showed all the right data on the display screen. 17 Aug 2005.
===
On AMD x86_64 and IA64 native 64-bit Linux builds, the pty routines did
not work at all. ptsname() dumped core. If I commented out ptsname(),
then the next thing dumped core. The same code works on the other
64-bit builds. Poking around, I see that this version of Linux has an
openpty() function, which I could try using instead of the current API
-- grantpty(), etc. Then I see that openpty() is already coded into
Kermit's pty module, conditionalized under HAVE_OPENPTY, which has
never before been defined for any build. I added a test to the makefile
linux target (look for the openpty() prototype in <pty.h>, if found
define HAVE_OPENPTY as a CFLAG and also add -lutil to LNKFLAGS). Works
fine on the problem builds, and also on previously working 32-bit
builds. makefile, 17 Aug 2005. ===
Fixed a bug in the ASKQ echo asterisks code, which made the VMS version
of C-Kermit always echo asterisks. Turns out that some code in the main
parse loop to reset command-specific flags was in the wrong place,
which had other effects too, for example ASKQ temporarily turns off
debug logging as a security measure, but the code to turn it back on
was skipped in most cases. Some other side effects related to the
DIRECTORY and CD commands might have been possible but I haven't seen
them. ckuus[56].c, 23 Aug 2005. ===
Problem reported when sending a file to VMS when the name in the F
packet starts with a device specification and does not include a
directory field, and PATHNAMES are RELATIVE. Example: dsk:foo.bar
becomes f_oo.bar. The code assumes that if there is a device field, it
is followed by a directory field, and it inserts a dot after the '[',
which in this case is not there. Later the dot becomes '_' because of
the only-one-dot rule. Solution: only insert the dot if there really is
an opening bracket. nzrtol(): ckvfio.c, 23 Aug 2005. ===
A report on the newsgroup complains that C-Kermit and K95 servers were
sending REMOTE DIR listings with only #J line terminators, rather than
#M#J. Yet all the other REMOTE xxx responses arrived with #M#J.
snddir() was neglecting to switch to text mode. ckcfns.c, 26 Aug 2005.
===
Back to long files. What happens if 32-bit Kermit is sent a long file?
It gets an A-packet that looks like this:
^A_"A."U1""B8#120050815 18:28:03!'42920641*4395073536,#775-!7@ )CP
The 32-bit receiver reacts like so:
gattr length[4395073536]=100106240
the first number being the string from the A-packet, the second being
the value of the long int it was converted to by atol(). Clearly not
equal in this case. When this happens Kermit should reject the file
instead of accepting it and then getting a horrible error a long time
later. Added code to gattr() to convert the result of atol() back to a
string and compare it with the original string; if they're not equal,
reject the file on the assumption that the only reason this could
happen is overflow. Also some other code in case the sender sends the
only LENGTHK attribute. Now files whose lengths are too big for a long
int are rejected right away, provided the sender sends the length in an
A packet ahead of the file itself. If this new code should ever cause a
problem, it can be bypassed with SET ATTRIBUTE LENGTH OFF. ckcfn3.c, 26
Aug 2005. ===
As I recall from when I was testing this a few weeks ago, when the
too-big length is not caught at A-packet time, the transfer fails more
or less gracefully when the first attempt is made to write past the
limit. I went to doublecheck this by sending a big file from the 64-bit
Solaris10 version to a 32-bit Mac OS X version that does not have
today's code. The Mac thinks the incoming file is 2GB long when it's
really 4GB+. But in this case, something new happens! Although the
percent done and transfer rate go negative, the file keeps coming. It
would seem that Mac OS X lets us create long files without using any
special APIs. The transfer runs to completion. Mac OS X Kermit says
SUCCESS (but gets the byte count and cps wrong, of course). But then a
STATUS command says FAILURE. The file was, however, transferred
successfully; it is exactly the same length and compares byte for byte
with the original. This tells me that in the Mac OS X version -- and
how many others like it??? -- today's rejection code should not be
enabled. Meanwhile I put today's new code in #ifndef
NOCHECKOVERFLOW..#endif, and defined this symbol in the Mac OS X 10.4
target. Over time, I'll have to find out what other platforms have this
characteristic. And of course I'll also have to do something about
file-transfer display, statistics, and status. makefile, ckcfn3.c, 26
Aug 2005. ===
From now on I'm going to bump the Dev.xx number each time I upload a
new ckdaily. This one will be Dev.02. ckckmai.c, 26 Aug 2005. ===
Got rid of all the extraneous FreeBSD 4 and 5 build targets. Now
there's one (freebsd) for all FreeBSD 4.1 and later. makefile, 27 Aug
2005. ===
Mac OS X 10.4 (Tiger) is a 64-bit OS. Building C-Kermit 0n 10.4.2
without any special switches stilll gives a 32-bit executable. Ditto
building with -mpowerpc64. Further investigation turned up a tip sheet
on MySQL that says you have to include all of these: -mpowerpc64
-mcpu=G5 -mtune=G5 -arch ppc64. That did the trick. New makefile
target: macosx10.4_64. But the 10.4.2 system I tried did not have
64-bit [n]curses or resolv libs, so this build has no -DNOCURSES
-DNO_DNS_SRV. makefile, 27 Aug 2005. ===
Created a symbol CK_64BIT to indicate true 64-bit builds at compile
time. Added 64-bit announcement to the startup herald and the VERSION
text. ckcdeb.h, ckuus[r5].c, 27 Aug 2005. ===
Added a built-in variable \v(bits) to indicate the size of the build
(16, 32, 64, or whatever else sizeof() might report). ckuusr.h,
ckuus4.c, 27 Aug 2005. ===
Got rid of all the warnings in 64-bit Mac OS X about args to
getsockopt(), getsockname(), and getpeername(), and the comparisons on
the return value of inet_addr(). ckcnet.[ch], 27 Aug 2005. ===
Now to check the effects on other builds...
Linux on AMD64: ok.
Linux on IA64: ok.
Linux on i386: ok.
Mac OS X 10.3.9 32-bit: ok.
Solaris 10 64-bit: ok.
Solaris 9 32-bit: ok.
Tru64 4.0F: ok.
FreeBSD 4.11: ok.
FreeBSD 5.4 ia64 (64-bit): ok.
FreeBSD 5.4 i386 (32-bit): ok.
The Tru64 5.1B build totally blew up because they have their own unique
sockopt/etc length-argument data type (int!), so I had to roll back on
using socklen_t for this in all 64-bit builds. Checked to make sure it
still builds on Tru64 4.0F after this change (it does). ckcnet.h, 27
Aug 2005. ===
The HP-UX 11i/ia64 build comes out to be 32-bit but thinks it's 64-bit.
CK_64BIT is set because __ia64 is defined. So how do I actually make a
64-bit HP-UX build? I tried adding +DD64 to CFLAGS, and this generates
64-bit object files but linking fails to find the needed 64-bit libs
(e.g. -lm). For now I added an exception for HPUX to the CK_64BIT
definition section. ckcdeb.h, 27 Aug 2005. ===
Took the time to verify my recollection about the "graceful failure" on
a regular Pentium Linux system when receiving a too-big file... OK,
it's not exactly graceful. It gets a "File size limit exceeded" error;
the message is printed in the middle of the file-transfer display,
apparently not by Kermit, and Kermit exits immediately. Looks like a
trap... Yup. "File size limit exceeded" is SIGXFSZ (25). What happens
if we set it to SIG_IGN? Just the right thing: The receiver gets "Error
writing data" at 2147483647 bytes, sends E-packet to sender with this
message, and recovers with total grace (drains packet buffers, returns
to prompt). ckutio.c, 27 Aug 2005. ===
Backed off from rejecting a file because its announced size overflows a
long. Now instead, I set the file size to -2 (a negative size means the
size is unknown, but we have always used -1 for this; -2 means "unknown
and probably too big"). In this case, the f-t display says:
File Size: POSSIBLY EXCEEDS LOCAL FILE SIZE LIMIT
then the user can interrupt it with X or whatever, or can let it run
and see if maybe (as in the case of Mac OS X) it will be accepted
anyway. This way, we skip all the bogus calculations of percent done,
time remaining, etc. ckcfn3.c, ckuusx.c, 27 Aug 2005. ===
Discovered that VMS C-Kermit on Alpha and IA64 is a 32-bit application;
sizeof(long) == sizeof(char *) == 4. Tried adding /POINTER_SIZE=64 to
VMS DECC builds on Alpha and IA64, but the results aren't great. Tons
of warnings about pointer size mismatches between Kermit pointers and
RMS ones, and the executable doesn't run. It appears that access to
long files would require a lot of hacking, similar to what's needed for
32-bit Linux. ===
--- Dev.02: 27 Aug 2005 --- ===
From Jeff, 28 Aug 2005.
. Fix SSH GLOBAL-KNOWN-HOSTS-FILE / USER-KNOWN-HOSTS-FILE parsing, ckuus3.c.
. Pick up K95STARTFLAGS from environment, ckuus4.c.
. Fix some typos in command-line processing (-q), ckuus4.c.
. Be sure to suppress herald if started with -q, ckuus7.c.
. Fix ssh command-line switches, ckuusy.c.
===
Eric Smutz complained that HTTP POST was adding an extraneous blank
line, which prevented his application from successfully posting. RFC
2616 states (in Section 4.1):
In the interest of robustness, servers SHOULD ignore any empty
line(s) received where a Request-Line is expected. In other words, if
the server is reading the protocol stream at the beginning of a
message and receives a CRLF first, it should ignore the CRLF.
Certain buggy HTTP/1.0 client implementations generate extra CRLF's
after a POST request. To restate what is explicitly forbidden by the
BNF, an HTTP/1.1 client MUST NOT preface or follow a request with an
extra CRLF.
This seems pretty clear. One section of code in http_post() (just above
the postopen: label) was appending a CRLF to a buffer whose last
already was terminated by CRLF, and then appended a second CRLF; thus
two empty lines. I removed the second one. ckcnet.c, 28 Aug 2005. ===
I looked into the 64-bitness of NetBSD, it seems to be like Linux and
FreeBSD on 64-bit hardware, i.e. you just build it there and it works,
at least on Alpha and AMD64, going back to NetBSD 1.4 or 1.5. But I
don't have access to any of these for verification and documentation on
the Web is scanty. ===
Checked PeterE's complaint again of warnings in ckutio.c about
parameter list of get[ug]id() and gete[ug]id(). When I "make hpux1100o"
on HP-UX 11.11 (PA-RISC), there are definitely no warnings. He says the
same thing happens on 10.xx, but I don't have access to that any more.
I also did "make hpux1100o" on HP-UX 11.23 (11i v2) (PA-RISC), also no
warnings. (Except in both cases, a warning about a comment within a
comment in /usr/include/sys/ptyio.h). On HP-UX 11i v2 on Itanium,
however, there are TONS of warnings, mostly of the "variable set but
never used" kind. Also "dollar sign used in identifier". Tracking this
last one down, I see it's complaining about code that's in #ifdefs for
other platforms, such as Apollo Aegis. Is "aegis" defined in HP-UX 11i
v2/IA64? No! (It would show up in SHOW FEATURES if it was.) Some phase
of the compiler is complaining about code that it should be skipping
(and that, in fact, it *is* skipping it because the build is
successful). It's as if cc is running lint for me but not telling lint
which macros are defined and which are not. ===
Verified that 64-bit linking fails in the same way for HP-UX 11i v2 on
both IA64 and PA-RISC. Sent a query to HP. ===
Compiling ckcnet.c and ckcftp.c got the familiar sockopt-related
warnings on HP-UX 11i v2; turns out it is just like Tru64 Unix in using
an int for the length argument. Added another special case and the
warnings went away. ckcnet.h, 28 Aug 2005. ===
Added some stuff to SHOW FEATURES to see what kinds of macros are
exposed (e.g. INT_MAX, LONG_MAX, LLONG_MAX, etc) and also show
sizeof(long long) and sizeof(off_t). Building this code all over the
place will give me an idea of how widespread these data types are, and
to what extent I can tell whether they are available from clues in the
header files. (At first glance, it appears that I'm not picking up
<limits.h>, but adding an #include for it is just asking for trouble.)
No complaints about long long or off_t from Solaris 9 or recent
Linuxes. ckuus5.c, 28 Aug 2005. ===
Fixed a warning in HP-UX 10 and 11 stemming from some old-style
prototypes in ckutio.c for get[re][gu]id(). ckutio.c, 29 Aug 2005. ===
Updated minix3 target from Andy Tanenbaum. makefile, 29 Aug 2005. ===
PeterE confirms that "long long" and off_t are available in all HP-UX
10 and 11, and in HP-UX 9 on PA-RISC but not Motorola. 30 Aug 2005. ===
Got 64-bit builds to work on HP-UX. According to my notes, John Bigg of
HP said (in 1999) that HP-UX 10.30 and later require PA-RISC 1.1, and
do not work on PA-RISC 1.0. But is PA 1.0 64-bit or what? Today, Alex
McKale of HP said "The 64-bit binaries will work on all machines that
have the same or later release of HP-UX (excluding PA-RISC 1.1
machines)". Still need clarification... Maybe it's that all IA64 builds
can be 64-bit but I need dual builds for PA-RISC. Meanwhile I started
transfer of a 4GB+ file from Solaris to HP-UX 11i but it exceeded some
quota on the HP long before it approached the 2G point. It failed
cleanly and up until then it was working fine (numbers, stats, etc). 30
Aug 2005. ===
Support of large files in 32-bit builds began in 10.20. 64-bit
application support began in 11.00, but not all machines that run 11.00
support 64 bits. About long files, see HP /usr/share/doc/lg_files.txt.
===
PeterE found that certain patterns can still make Kermit loop; example:
if match T01011-00856-21-632-073 *[abc] { echo GOOD } else { echo BAD }
if match T01011-00856-21-632-073 *[a-z] { echo GOOD } else { echo BAD }
The minimum offending pattern is * followed immediately by an [xxx]
construction, followed by anything else, including nothing. Previous
versions of Kermit handled this one correctly, without looping (but
failed certain matches that should have succeeded). The new section of
code I added on 15 June, upon failure to match, advances the string
pointer and backs up the pattern to the previous pattern, and starts
again (recursively). However, there needed to be a corresponding check
at entry for an empty target string. ckmatch(): ckclib.c, 12 Sep 2005.
===
PeterE discovered that "kermit -y filethatdoesnotexit" gives an
erroneous error message that names the user's customization, rather
than the name given on the command line. doinit(): ckuus5.c, 12 Sep
2005. ===
FREAD does not get an error if it tries to read a record or file or
piece of file that is too big for its buffer. In particular, FREAD
/SIZE:xxx seems to succeed even if less than xxx was read. It should
fail unless, perhaps, it successfully read up to the end of the file.
Furthermore, if xxx is bigger than the file buffer size, it should
complain. The buffer is line[LINBUFSIZ], 32K. The lack of failure was
due to code in dofile() that adjusted the given size silently if it was
greater than the buffer size, which I removed, and also added a check
when parsing the /SIZE: switch. dofile(): ckuus7.c, 12 Sep 2005. ===
That still didn't help with FREAD /SIZE:n returning less than n bytes,
even when they were available. That's because the underlying routine,
z_in(), didn't check fread()'s return code, which is the number of
bytes read. If fread() has smaller buffers, it needs to be called in a
loop. z_in(): ckuus7.c, 12 Sep 2005. ===
Flen() fails on strings of length 8192 or more. The limitation is in
the callers of zzstring, which seem to be specifying an 8K buffer, in
this case fneval(). The operable symbols are FNVALL (max length of
value returned by a function) and MAXARGLEN (maximum length of an
argument to a function). I changed both of these for BIGBUFOK builds to
be CMDBL. Buffers can never be infinite, there has to be a limit. It's
important to make everything work consistently within that limit, and
to make something useful happen when the limit is exceeded. At this
point, I can probably also increase the limits for modern 32-bit
systems, and certainly for 64-bit ones. Also there's no point in
worrying about 16-bit platforms any more; earlier C-Kermit versions can
still be used on them if necessary. ckuusr.h, 12 Sep 2005. ===
Special #ifdefs for finding resolv.h and nameser.h in MINIX3 from Andy
Tanenbaum. ckcnet.c, 20 Sep 2005. ===
PeterE noticed that ckmatch(), even though it works pretty well now,
does a lot of extra and unnecessary recursion after determining the
string and pattern do not match, at least when the pattern is of the
form *[abc]. After several false starts I was able reduce this effect
to a minor level (but not eliminate it all together) by changing a
while loop into a do loop. ckmatch(): ckclib.c, 15 Oct 2005. ===
Added -DNOLONGLONG to HP-UX 8.00 and earlier builds, and to
Motorola-based HP-UX 9.00 builds. This is simply to inhibit the test
for whether "long long" is supported by the compiler, since when it
isn't, the module containing the test won't compile. makefile,
ckuus5.c, 16 Oct 2005. ===
Making ASKQ always echo asterisks is a bad idea, because when it
doesn't echo, it's the perfect way to read silently from stdin, e.g. in
a CGI script (INPUT can also be used for this but it's not as
straightforward). So I put the default for ASKQ back to no echoing,
then gave ASKQ its own switch table, which is the same as for ASK with
the addition of an /ECHO:x switch, which tells what character to echo.
ckucmd.c, ckuus[26].c, 17 Oct 2005. ===
Fixed a bug in FTP GET /COMMAND filename commandname; it always dumped
core dereferencing a null string (the nonexistent local asname).
ckcftp.c, 17 Oct 2005. ===
For docs: if you don't like the funny business that happens when you
type an IF command at the prompt, use XIF instead and it won't happen.
Also note that commands like "if xxx { echo blah } else { echo blah
blah }" don't work when typed at the prompt; you have to use XIF for
this. ===
Back to ckmatch()... Under certain conditions (e.g. patterns like
*[abc]) failure to match would not stop the recursion because the
string and pattern arguments are on the stack, as they must be, so
there was no way for level n-1 to know that level n had detected a
definitive nonmatch and that no further attempts at matching were
required. The right way to handle this is to recode the whole thing as
coroutines, the cheap way out is with a global static flag. Works
perfectly, in the sense that the match.ksc test results are identical
to what they were before and the extra backing up and recursion are
eliminated. (The Oct 15th fix wasn't really a fix, it broke a couple of
cases.) ckclib.c, 20 Oct 2005. ===
ckuus7.c(2987): warning #267: the format string requires additional
arguments (in PURGE command); fixed 20 Oct 2005. ===
From Andy Tanenbaum, final changes for MINIX3: #ifdef out the inline
definitions for gettimeofday() and readlink(). ckutio.c, 23 Oct 2005.
===
From Jeff: struct gss_trials initializers changed from gss_mech_krb5 to
ck_gss_mech_krb5. ckcftp.c, 23 Oct 2005. ===
From Jeff: some improvements to K95 GUI SHOW TERMINAL. ckuus5.c, 23 Oct
2005. ===
Found and corrected some misplaced #ifdefs in shofeat(), ckuus5.c, 23
Oct 2005. ===
--- Dev.03 --- ===
Fixed a compiler warning in a debug() statement in zzstring() by adding
parens. ckuus4.c, 24 Oct 2005. ===
Added -DNOLONGLONG to sv68r3v6 target, makefile, 25 Oct 2005. ===
New makefile targets for HP-UX from PeterE to handle the 'long long'
situation. 26 Oct 2005. ===
From Jeff: changes to support OpenSSL 0.9.8, ck_ssl.h. ckcasc.h has had
short names defined for ASCII control characters for 20-some years but
now they are causing conflicts, so EM becomes XEM (also for OpenSSL
0.9.8). Changed K95's default terminal type from VT320 to VT220 because
VT320 termcaps/terminfos are disappearing from Unix hosts: ckuus7.c.
Reorganize the data-types section of SHOW FEATURES to add more macro
tests for integral sizes and to provide for the proper printf
formatting in order to allow the sizes to be output ("You are going to
need to be careful because %llx is not supported on all platforms. On
Windows, it is the same as %lx, 32 bits"): ckuus5.c, 26 Oct 2005. ===
Defined NOLONGLONG ckcdeb.h for various old platforms where we know we
are never going to need 64-bit ints (even if they support a long long
datatype, chances are pretty slim they supported 64-bit file sizes).
ckcdeb.h, 26 Oct 2005. ===
PeterE noticed that GOTO targets can only be 50 characters long. This
was by design, a long time ago, on the assumption that nobody would
make longer labels. But in SWITCH statements, case labels can be
variables that expand to anything at all. If we chop them off at 50, we
might execute the wrong case. Changed the maximum label size to be 8K,
and added code to dogoto() to check when a label or target is too long
and fail, to prevent spurious GOTO or SWITCH results. ckuusr.h,
ckuus[r6].c, 26 Oct 2005. ===
Testing revealed there was still a problem with SWITCH case labels that
were variables that expanded into long strings. Turns out that I was
being too clever when I decided that, if the SWITCH macro was n1
characters long and the case-label search target was n2 characters
long, I only had to search the first n1-n2+1 characters of the macro
definition. That was true before I allowed case labels to be variables,
but not any more! Fixed in dogoto(): ckuus5.c, 26 Oct 2005. ===
--- Dev.04 --- ===
Dev.04 didn't actually contain Jeff's data-type changes to shofeat(), I
think I saved the wrong buffer in EMACS... Fixed now. 27 Oct 2005. ===
PeterE corrected a typo in the HP-UX 7.00 makefile target. 27 Oct 2005.
===
PeterE had been reporting problems stress-testing the new SWITCH code,
but only on HP-UX 9, primarily stack overrun. Turns out to be the HP-UX
9 optimizing compiler's fault. No optimization, no problems.
PeterE found that even when dogoto() detects a string that is too long
and fails, this does not stop SWITCH from producing a result, which can
not possibly be trusted. Changed the part of dogoto() that handles this
to not just fail, but also to exit the script immediately and return to
top level. ckuus6.c, 28 Oct 2005. ===
An idea popped into my head after having typed too many commands like
"dir ck[cuw]*.[cwh]" to check the list of matching files, and then
having to retype the same filespec in a SEND command: Why not unleash
some unused control character such as Ctrl-K to spit out the most
recently entered input filespec? It was easy, just a few lines in
cmifi2() and gtword(), plus a couple declarations. To see all the
changes, search for "lastfile" (all the new code is protected by
#ifndef NOLASTFILE). ckucmd.c, 28 Oct 2005. ===
I added a new variable \v(lastfilespec) that expands to the same last
filespec, for use in scripts. ckuusr.h, ckuus4.c, 28 Oct 2005. ===
The Unix version of C-Kermit failed to put anything in the session log
if SET TERMINAL DEBUG ON. Rearranged the pertinent clause so logging
happens independent of TERMINAL DEBUG. For now, since the user who
noticed this wanted debug format to go into the session log, that's
what I do. The alternative would be to just log the raw incoming stream
as usual, or to add Yet Another SET Command to choose. ckucns.c, 11 Nov
2005. ===
Fixed HELP INTRO text. ckuus2.c, 11 Nov 2005. ===
Added NOLONGLONG for SV68. ckcdeb.h, 11 Nov 2005. ===
--- Dev.05 --- ===
Added a debug() statement in FTP secure_getbyte() to see what's going
on with Muhamad Taufiq Tajuddin's 205-byte-per-second FTP/SSL
downloads. ===
--- Dev.06 --- ===
Result: nothing, SSL_get_error() does not report any errors. Suggested
testing SSL_read()'s return code, if 0 don't update the screen.
Created a new data type CK_OFF_T in ckcdeb.h that will eventually
resolve to whatever each platform uses for file sizes and offsets.
ckcdeb.h, 17 Nov 2005. ===
Made a new library routine ckfstoa() that converts a file size or
offset to a string. This is to solve the problem with having to use
different printf() formats for different representations of file size
(int, long, long long, off_t, signed, unsigned, etc). Replaced a few
printf("%l",size) with printf("%s",ckfstoa(size)) with the expected
results. This is just a start, the definitions will need adjustment for
many platforms, variables need to be redeclared, and all the offending
printf's (and printw's) will have to hunted down and converted.
ckclib.[ch], ckuus4.c, 17 Nov 2005. ===
Built a minimal version on Linux with: make linux "KFLAGS=-DNOLOCAL
-DNOICP -DNOCSETS -DNODEBUG" Worked fine, result was 260K on i686. 21
Nov 2005. ===
Discovered that Kermit's date parser, contrary to the documentation,
failed to handle strings like "Wed, 13 Feb 2002 17:43:02 -0800 (PST)",
which are commonly found in email. This was because of an overzealous
and misguided check in the code; once removed, all was well. ckucmd.c,
26 Nov 2005. ===
Added a new format code 4 to \fcvtdate() to emit asctime() format, used
in BSD-format email message envelopes (i.e. the "From " line).
shuffledate(), ckucmd.c, ckuus[24].c, 26 Nov 2005. ===
Added a new function \femailaddress(). Given a From: or Sender: header
line from an RFC2822-format email address, extracts and returns the
actual email address, such as kermit@columbia.edu. ckuusr.h,
ckuus[42].c, 26 Nov 2005. ===
Using the new functions, I wrote a script to fetch mail from a POP3
server over a TLS connection. But the line-at-a-time input (needed for
changing line terminators and byte-stuffing text lines that start with
"From ") is slow, 17 sec to read 29 messages totaling 175K. ===
Added INPUT /CLEAR so INPUT can be started with a clean buffer without
requiring a separate CLEAR INPUT command. ckuusr.h, ckuus[r24].c, 27
Nov 2005. ===
One thing that INPUT was never able to do well was read and save the
complete incoming data stream. That's because, while waiting for its
target, the buffer might overflow wrap around. Yet there was never a
way to tell it to stop when its buffer fills up and let me save it. I
added a /NOWRAP switch that does this. If the buffer fills up before
any other completion criterion is met, INPUT returns failure, but with
\v(instatus) set to 6 (the next available instatus value). Thus a
program that wants to read and save (say) an email message from a POP
server, which could be any length at all, and which terminates with
<CRLF>.<CRLF> could do this:
set flag off
while open connection {
input /nowrap 10 \13\10.\13\10 # Wait for <CRLF>.<CRLF>
if success {
frwrite /string \%o {\freplace(\v(input),\13\10.\13\10,\13\10)}
set flag on
break
} else if ( == \v(instatus) 6 || == \v(instatus) 1 ) {
frwrite /string \%o {\v(input)}
continue
}
break
}
if flag (handle success)
Note carefully the braces around the FWRITE text; without them,
trailing spaces would be lost. ===
Previously the only way to INPUT an entire data stream without losing
anything (assuming it was ordinary lines of text that were not "too
long"), was line-by-line:
while open connection {
input /clear 10 \13\10
if fail break
if eq "\v(input)" "$ \13\10" break
fwrite /string \%o {\freplace(\v(input),\13\10,\10)}
}
The new code is 3 times faster using the default INPUT buffer length of
4K. Raising it to 16K makes it 3.6 times faster (not worth it).
Changing the POP3 script to use INPUT /NOWRAP makes it about twice as
fast (it does more; it has to do all the byte-stuffing and unstuffing).
27 Nov 2005. ===
Changed ssl_display_xxx() to just return if SET QUIET ON. Otherwise
there is no way to suppress the messages. Also protected a previously
unprotected printf("[SSL - OK]\r\n"); by if ( ssl_verbose_flag ).
ck_ssl.c, 28 Nov 2005. ===
Discovered that FOPEN /APPEND doesn't work if the file doesn't exist.
It uses cmiofi() which is a super-hokey front end to cmifi2(). I had
code to call it but for some reason it was commented out, with a note
to the effect it didn't work. I uncommented it but that didn't help
much. So I wrote an entirely new cmiofi() that works exactly as it
should, using chained FDBs, _CMIFI to _CMOFI (I think the original
cmiofi() predated chained FDBs). ckuus7.c, ckucmd.c, 29 Nov 2005. ===
Getting rid of the awful hacks required to call cmiofi() meant I also
had to change the EDIT command, which is the only other place where
it's used. Unfortunately now it's no longer possible to give EDIT
without a filename (to just start an empty editor) but I doubt anyone
will notice. ckuusr.c, 29 Nov 2005. ===
IF KERBANG didn't always work right. If a kerbang script TAKEs another
kerbang script, the second one should have IF KERBANG false, but it
didn't. Added a check for \v(cmdlevel) == 1. Now you can write a
wrapper that runs a kerbang script in a loop, and the latter can use IF
KERBANG to know whether to EXIT (if called at top level) or END (if
called by another script, thus allowing -- in this case -- the loop to
continue). ckuus6.c, 29 Nov 2005. ===
Changed \flop() and flopx() functions to take a third argument, a
number signifying at which occurrence of the break character to lop,
so:
\flopx(sesame.cc.columbia.edu) = edu
\flopx(sesame.cc.columbia.edu,,2) = columbia.edu
ckuus[24].c, 1 Dec 2005. ===
Built OK on VMS 7.2-1 with MultiNet 4.4. Built with and without OpenSSL
on Linux OK, ditto Solaris 9. Built OK on RH Linux AS4 on X86_64
(64-bit); "show var fsize" (using new ckfstoa()) works OK there. Also
Mac OS X 10.3.9 (32-bit), Tru64 UNIX 4.0F (64-bit), HP-UX 11iv2
(64-bit) (picky new compiler spews out tons of useless warnings),
FreeBSD 6.0 on ia64 (64-bit). ===
--- Dev.07 --- ===
Changed "make netbsd" to be a synonym for "make netbsd2" because the
original netbsd target was ancient. Renamed it to netbsd-old. makefile,
3 Dec 2005. ===
Updated INPUT and MINPUT help text. ckuus2.c, 3 Dec 2005. ===
Discovered that on a SET PORT /SSL connection, Kermit treats incoming
0xff data bytes (e.g. sent from the POP server) as IACs and goes into
Telnet negotiations. Jeff says "You will need to implement NP_SSLRAW
and NP_TLSRAW that do the same as NP_TCPRAW but negotiate SSL or TLS as
appropriate." This was not as easy as it sounded, because apparently a
lot of the Telnet code is used by SSL and TLS even when Telnet protocol
is not being executed. I wound up doing this as follows: I added
/SSL-RAW and /TLS-RAW to the switch table. Rather than disable Telnet,
they do exactly what the /SSL and /TLS switches do, but also set a
special flag. This flag is checked in only two place: netclos() (to
prevent Kermit from sending TELNET LOGOUT when closing the connection),
and tn_doop() (to prevent Kermit from reacting to incoming IACs; it
makes tn_doop() return(3), which means "quoted IAC", which causes the
caller to keep the IAC as data). ckcnet.h, ckctel.h, ckctel.c,
ckuus7.c, 4 Dec 2005. ===
The INPUT command did not account for tn_doop() returning 3. Fixed in
doinput(), ckuus4.c, 4 Dec 2005. ===
Added another debug() statement in FTP secure_getbyte() to see what's
going on with Muhamad Taufiq Tajuddin's 205-byte-per-second FTP/SSL
downloads, plus new code to test SSL_read()'s return code (byte count);
if 0 don't update the screen. ckcftp.c, 4 Dec 2005. ===
--- Dev.08 --- ===
Fixed a typo in the non-ANSIC definition of ckfstoa(). ckclib.c, 7 Dec
2005. ===
Our Ctrl-C trap (the ON_CTRLC macro) wasn't working for kerbang files.
Rearranged some code to make it work. ckcmai.c, 8 Dec 2005. ===
Started converting code to use CK_OFF_T for file sizes and offsets, and
all [s]printf's to replace "%ld" or whatever with "%s", and the size
variable with a call to ckfstoa(). Since I haven't actually changed the
definition of CK_OFF_T from what all the size variables were to begin
with (i.e. long), it shouldn't do any harm. So far just ckcfn3.c 10 Dec
2005. ===
An updated HP-UX 9.xx makefile target from PeterE to fix a core dump
that happens on that platform due to insufficient resources. 14 Dec
2005. ===
Added debug() statements to http_blah() routines to tell whether the
connection is "chunked". There seems to be a bad performance problem.
ckcnet.c, 14 Dec 2005. ===
PeterE complained about ugly DIRECTORY error message, ?No files match -
"{blah}". The braces are used internally in case the user typed more
than one filespec. I changed the error message to remove them. Ditto
DELETE. ckuus6.c, 15 Dec 2005. ===
The problem with HTTP downloads is that Kermit always does
single-character read() or socket_read() calls (or the SSL equivalent);
see http_inc(). I added buffering code for non-SSL connections only but
it's gross because it has to swap ttyfd and httpfd before calling
nettchk(). I tried making a nettchk() clone that accepts a file
descriptor as an argument but it didn't work because too many other
routines that are invoked directly or implicitly by nettchk() (such as
in_chk()) are still hardwired to use ttyfd. HTTP GETs are now 20 times
faster on the local network (the improvement is less dramatic over a
clogged Internet). ckcnet.[ch], 15 Dec 2005. ===
--- Dev.09 --- ===
HTTP file-descriptor swapping is not thread safe. Doing it right, of
course, is a big deal, so for now I just don't define HTTP_BUFFERING
for Windows. ckcnet.c, 15 Dec 2005. ===
Noticed that HTTP not included in FreeBSD and OpenBSD builds. Fixed in
ckcdeb.h, 22 Dec 2005. ===
Fleshed out 32/64-bit data type definitions and changed struct zattr
(file attribute structure) members length and lengthk to have the new
CK_OFF_T type. Changed final arguments of debug() and tlog() to be the
new LONGLONG type. ckcdeb.h, 22 Dec 2005. ===
Changed ckfstoa() to return a signed number in string form, rather than
an unsigned one. That's because off_t is signed (thank goodness). Added
the inverse function, ckatofs() so we can convert file sizes and
offsets back and forth between binary number and string. ckclib.c, 22
Dec 2005. ===
Changed Attribute Packet reader to convert incoming file size attribute
with ckatofs() rather than atol(). ckcfn3.c, 22 Dec 2005. ===
Converted debug(), tlog(), ckscreen(), etc, to handle potentially "long
long" arguments by making their "n" argument CK_OFF_T. ckuusx.c,
ckcdeb.h, 22 Dec 2005. ===
Converted the rest of the source files to use CK_OFF_T for all file
size and offset and byte-count related variables, and converted all
references to these variables in printfs to go through ckfstoa(). Then
I built it on Linux/i386 with:
make linux "KFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
which makes off_t be 64 bits and magically makes all the regular file
APIs use 64-bit sizes and offsets without changing the API calls in the
source code. It's going to be a lot of work to get through all the
kinks but I was able to send a long file, do directory listings of long
files, do \fsize(longfile), etc. When it sends a file, the length is
shown correctly in the A packet. If the receiver does not support big
numbers, it receives the file OK anyway, without showing the size, the
thermometer, or percent done (and then will get an error when the file
keeps coming after the 2G mark). Kermit 95 actually refuses long files
for "Size", but only if the announced is less than 2^63 bytes. When
today's Linux version receives a file, it shows the length correctly in
the file-transfer display, as well as percent done, thermometer, etc.
Also built this version on true 64-bit Linux, and it worked fine. Many
files changed, 22 Dec 2005.
For the record, this API is specified in X/Open's Single UNIX
Specification Version 2, which is branded as UNIX 98. It is called
Large File Support, or LFS, and was developed at the Large File Summit.
===
It looks like the operative feature-test macro in glibc for
transitional large file support is __USE_LARGEFILE64. So if this is
defined, we can also supply _LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64
automatically for 32-bit Linux builds. But there's a Catch-22, you
don't know if this is defined until you read the header files, but you
have to define _LARGEFILE_SOURCE and _FILE_OFFSET_BITS before you read
the header files. Maybe it's good enough to grep through <features.h>
for __USE_LARGEFILE64. makefile, 23 Dec 2005. ===
Checked this on true 64-bit Linux. The same symbols are defined in
CFLAGS, but they do no harm; it builds without complaint and works
fine. 24 Dec 2005. ===
Built it on Red Hat Linux 6.1 from 1999. This picked up the long file
support too. Guess 6.1 isn't old enough to not have it! Kermit seems to
work OK on regular files but I don't have enough disk space to create a
long file, and my bigfile.c program (which creates a long file
containing only 1 byte) doesn't work ("fseeko: invalid argument"). It
looks like parts of this API were visible in Linux before they were
actually working. 24 Dec 2005. ===
Converted all fseek() and ftell() to macros that expand to fseek() and
ftell() or fseeko() and ftello() depending on whether _LARGEFILE_SOURCE
is defined. ckufio.c, ckuus7.c, ckuusx.c, 24 Dec 2005. ===
Made a CK_OFF_T version of cmnum(). It would be a very big deal to just
change cmnum() to return a new type, so another idea is to rename
cmnum() to something else, cmnumw(), change its result argument to
CK_OFF_T, and then make a stub cmnum() to call it to get an int, then
call cmnumw() explicitly any time we need a big number. ckucmd.c, 24
Dec 2005. ===
Calling cmnumw() directly requires changes to each routine that uses
it. The INCREMENT and DECREMENT commands, for example, required changes
to doincr(), varval(), and incvar(), and all references to them.
ckuusr.[ch], ckuus[56].c, 24 Dec 2005. ===
Calling cmnumw() in chained FDBs required defining a new function code,
_CMNUW, adding a new member to the OFDB struct for returning wide
results, and adding a new case to cmfdb(). ckucmd.[ch], 24 Dec 2005.
===
Changed FSEEK and FCOUNT to use the new chained FDB interface, now we
can seek and look past 2GB. ckuus7.c, 24 Dec 2005. ===
Next come switches, which store their results in a struct stringint.
This struct was defined in each module where it was used
(ckuus[r367].c, ckcftp.c). I moved the definition to ckuusr.h and added
a wval member, which can be referenced by any switch-parsing code that
calls cmnumw(). 24 Dec 2005. ===
Changed SEND /CALIBRATE:n to allow big values of n. This makes it
possible to test the protocol aspects of long-file transfer without
actually having a long file handy. ckuusr.c, 24 Dec 2005. ===
SEND /SMALLER-THAN:n, SEND /LARGER-THAN:n, and and SEND /START:n also
now allow large values of n. ckuusr.c, 24 Dec 2005. ===
Changed the algebraic expression evaluator to use wide values.
ckuus5.c, 24 Dec 2005. ===
Fixed ckfstoa() to handle the case when n is negative and (0 - n) is
also negative, which happens for numbers 2^(n-1) or greater, where n is
the number of bits in the word size we're dealing with, e.g. 64, in
which case 2^63 has its sign bit set so seems to be negative. In such
cases, ckfstoa() returns "OVERFLOW" instead of a numeric string. We'll
have to see how this plays out but I think it's better to cause a parse
error and stop things dead than to return a spurious number. ckclib.c,
24 Dec 2005. ===
Converted the S-Expression handler to use wide integers. ckuus3.c, 24
Dec 2005. ===
Took all the LONGLONG stuff out of ckcdeb.h, we don't need it.
All of these changes result in 64-bit arithmetic (more or less) on
32-bit Linux, as well as on true 64-bit platforms.
Rebuilt today's code on Solaris 9 in the 32-bit and 64-bit worlds, on
Red Hat 6.1, Red Hat AS4.2. I haven't bothered trying a 32/64 hybrid
build for Solaris, since I can build a pure 64-bit version there. Quick
tests show the large-number arithmetic works OK in all cases except, of
course, on pure 32-bit builds (unfortunately I can't find a running
Linux system old enough to verify this for Linux, but it's true for
other 32-bit platforms). 24 Dec 2005. ===
Tried building a hybrid version on Solaris 9 after all since the LFS
API is ostensibly the same as for Linux:
make solaris9 "KFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
It built smoothly and the resulting binary is 2.5MB compared to 3.4MB
for the 100% 64-bit version. Looks like a keeper. For now, added
solaris9lfs and solaris10lfs entries to the makefile but if these work
on PCs we can make these the regular entries for Solaris 9 and 10. 27
Dec 2005. ===
Built on Mac OS X 10.4 with the regular target. It seems that in that
case, off_t is 64 bits anyway. Noticed that a lot of stuff didn't work,
like exponentiation in S-Expressions. Tried building it as above, which
worked, and now CK_OFF_T is 64 bits instead of 32, but (^ 2 30) is
still 2.0. In fact 2-to-the-any-power is 2.0. It seems that the Mac OS
X version did not have FNFLOAT defined. It also seems that every test
in dosexp() like:
if (result != fpresult) fpflag++;
should have been protected by #ifdef FNFLOAT..#endif /* FNFLOAT */ -- a
double-ended break, as they say in the nuclear power industry.
ckuus3.c, 27 Dec 2005. ===
Added GREP /EXCEPT:pattern. ckuus[26].c, 27 Dec 2005. ===
Fixed a problem with uninitialized pv[].wval (switch-parsing
parameter-value) members that showed up on certain platforms or with
certain compilers. Now the Mac OS X 10.4 version works. ckuus[r367].c,
ckcftp.c, 28 Dec 2005. ===
Built on Unixware 7.1.1, a pure 32-bit build, seems fine. Rebuilt on
Red Hat AS 4.2 just to make sure I didn't break anything, it's OK. No
testing on HP-UX, etc, because HP testdrive file system is full, can't
upload anything. 29 Dec 2005. ===
Commented out the SHOW FEATURES section that displays constants like
INT_MAX, CHAR_MAX, etc, because printing each value in the appropriate
format is too tricky, and we don't need them anyway. ckuus5.c, 29 Dec
2005. ===
Updated ckvfio.c to use CK_OFF_T for the relevant variables. Built and
tested on VMS/Alpha 7.2: file transfer in remote mode; making a Telnet
connection and then local-mode file transfer; S-Expressions, all OK.
Also built a no-net version OK. 29 Dec 2005. ===
Built and tested on Red Hat AS4 AMD X86_64, used it to upload new
sources to FreeBSD 4.11. Built on FreeBSD 4.11/i386. Here's another one
where off_t is 64 bits, even though long is 32 bits. But it seems to
work ok, not sure why, when CK_OFF_T is 32 bits. There is no
_LARGEFILE_SOURCE stuff in the header files. 29 Dec 2005.
Built on Mac OS X 10.3.9 using the new macosx10.4 target to pick up
LFS. Works fine.
Built on Red Hat Linux 4WS on IA64 (64-bit). Now this one is odd,
stat() fails on big files. It happens also if I use the "linuxnolfs"
target, which does not define _USE_LARGEFILE or _FILE_OFFSET_BITS=64.
DIRECTORY BIGFILE shows the size as -1, but if "log debug", it says "no
files match", i.e. different behavior, observer effect. I hate when
that happens.
Let's see if that's an anomaly... Built on Tru64 Unix 4.0F (64-bit
Alpha). It sees long files just fine. Rebuilt and checked on x86_64
again... fine. OK, let's not worry about IA64 yet.
Another small fix to the HP-UX 9.0 target from PeterE. makefile, 29 Dec
2005. ===
---Dev.10--- ===
Code adjustments from Jeff, mainly to the SSL and TLS Raw mode code
from several weeks ago, plus changing some data types in the security
code to CK_OFF_T, plus a different data type for CK_OFF_T for K95
because Windows size_T isn't signed. This presumably will allow
large-number arithmetic but it will not give large file access because
that will require replacing all C library file i/o calls (esp. in
ckofio.c) with native Windows APIs. Build on Solaris 9 with and without
SSL and on Linux RH AS4.2 with and without SSL. ck_crp.c, ck_ssl.c,
ck_ssl.h, ckcdeb.h, ckcftp.c, ckcmai.c, ckcnet.c, ckcnet.h, ckctel.c,
ckuat2.h, ckuus4.c, ckuus7.c, ckuusr.c, 30 Dec 2005. ===
It was reported that WRITE SESSION always returned a failure status,
even when it succeeded. The problem was that Unix versions of zsout()
and zsoutl(), for the session log only, were using write() and
returning write()'s return code, which is different from what zsout()
and zsoutl() are documented to return. Also plugged a couple potential
holes in zsoutx() that I noticed while I was in the neighborhood.
ckufio.c, 30 Dec 2005. ===
Added FSEEK /FIND:pattern. This form of FSEEK accepts all the other
switches and arguments and performs the desired seek. Then, if the seek
was successful, it starts from that point and reads through the file,
line by line, searching for the first line that contains the given
string or matches the given (unanchored) pattern and, if found, sets
the file pointer to the beginning of that line. Useful, e.g., for very
long timestamped logs, where you want to start processing at a certain
date or time; searching for a particular string is much faster than
doing date comparisons on each line. ckuus[27].c, 30 Dec 2005. ===
It was annoying me that FILE STATUS (FSTATUS) required a channel number
to be given even if only one file was open, so I supplied the correct
default in that case. ckuus7.c, 30 Dec 2005. ===
INPUT /NOWRAP, added recently, is used for efficiently copying the
INPUT stream intact, but it's not good for matching because if the
INPUT target is broken between the end of the previous buffer and the
beginning of the next one, the context is lost and the match does not
occur. I thought of several ways around this, but they all involve
saving a huge amount of context -- old input buffers, the arrays of
target strings and corresponding match positions, etc. The alternative
is fairly simple but it's not transparent to the user. Here's what I
did in a POP script:
.eom := "\13\10.\13\10"
set flag off # FLAG ON = success
while ( open connection && not flag ) {
.oldinput := \fright(\v(input),8) # Save tail of previous INPUT buffer
input /clear /nowrap 4 \m(eom) # Get new INPUT buffer
if success { # INPUT matched - good
.s := {\freplace(\v(input),\m(eom),\13\10)}
set flag on
} else { # No match
.s := \v(input) # Check if target crossed the border
.oldinput := \m(oldinput)\fsubstr(\v(input),1,8)
if \findex(\m(eom),\m(oldinput)) set flag on
}
...
}
I think this will be easier to explain than any dangerous and grotesque
magic I might put into doinput() itself. For now, added a few words
about this to HELP INPUT. ckuus2.c, 30 Dec 2005. ===
Back to the pattern matcher. Noticed that "IF MATCH index.html
[a-hj-z]*" succeeded when it should have failed. In ckmatch(), the
clist section needed one more clause: it can't float the pattern if an
asterisk does not occur in the pattern before the clist. This change
fixes the problem without breaking any other cases that weren't already
broken, most of which involve slists, i.e. {string,string,string,...}.
ckclib.c, 30 Dec 2005. ===
Tried FSEEK /FIND: on a largish file (over 100,000 lines), using it to
seek to a line near the end. It took 0.756 seconds, compared with Unix
grep, which did the same thing in 0.151 sec. That's because C-Kermit is
using ckmatch(). But if the search target is not a pattern, it should
be a bit faster to use ckindex(). Yup, 0.554 sec, a 36% improvement.
Can't expect to compete with grep, though; it's highly tuned for its
single purpose. ckclib.[ch], ckuus7.c, 1 Jan 2006. ===
Updated visible copyright dates to 2006: ckcmai.c, ckuus2.c, ckuus5.c,
1 Jan 2006. ===
Noticed that NetBSD 2.0.3 has 64-bit off_t, and that _LARGEFILE_SOURCE
is mentioned in <stdio.h>. Tried building Kermit with _LARGEFILE_SOURCE
added to CFLAGS, it's good. Added it to the netbsd target. makefile, 1
Jan 2006. ===
Fixed typo, #ifdef CK_NOLONGLONG in ckuus5.c should have been #ifndef
CK_LONGLONG (which, it turns out, we don't use anyway). 2 Jan 2006. ===
Observed that FreeBSD 4.x has a 64-bit off_t, but does not use the
_LARGEFILE_SOURCE convention. Reasoning that all versions of FreeBSD
have off_t (I was able to check back to FreeBSD 3.3), I simply #define
CK_OFF_T to be off_t in ckcdeb.h within #ifdef __FreeBSD__ .. #endif.
Another one down. This can be done for any platform that is guaranteed
to have off_t. Turns out FreeBSD 3.3 has 64-bit off_t too. 2 Jan 2006.
===
OpenBSD, same as FreeBSD. Also, added OS-version-getting thing to
makefile target for the program herald, as in the other BSDs. Built on
OpenBSD 2.5 from 1998, it has 64-bit off_t too. ckcdeb.h, makefile, 2
Jan 2006. ===
Dumping the command stack every time there's an error is really too
much. I added SET COMMAND ERROR-DISPLAY {0,1,2,3} to set the verbosity
level of error messages. Only level 3 dumps the stack. ckuus[235].c, 2
Jan 2006. ===
Built on HP-UX 11.11 with _LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64.
The result works fine as far as I can tell. It sees big files, it can
open them, seek to positions past the 2^31 boundary. It can send large
files. It can do large-number arithmetic (^ 2 62). The only problem is
that during compilation, every single modules warns:
cc: "/usr/include/sys/socket.h", line 504: warning 562: Redeclaration of
"sendfile" with a different storage class specifier: "sendfile" will have
internal linkage.
cc: "/usr/include/sys/socket.h", line 505: warning 562: Redeclaration of
"sendpath" with a different storage class specifier: "sendpath" will have
internal linkage.
These warnings should be perfectly harmless since they are not coming
from C-Kermit code, nor does C-Kermit use either one of those
functions. These warnings don't come out in HP-UX 11i v2, but on that
one we get tons and tons of picky compiler warnings (variables set but
not used, defined but not referenced, etc). A couple, however, turned
out to be valid; one case of "expression has no effect", and two of
"string format incompatible with data type" (I missed a couple
file-size printfs).
There were also numerous warnings about signedness mismatch or sign
conversion of constants like IAC (0xff). Does the HP-UX Optimizing
Compiler have a compiler flag to make all chars unsigned? Yes, +uc, but
the man page says "Be careful when using this option. Your application
may have problems interfacing with HP-UX system libraries and other
libraries that do not use this option". Sigh, better not use it.
After reviewing "HP-UX Large Files White Paper Version 1.4" and HP's
"Writing Portable Code" documents, I added -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 to the hpux1000 target, which is the basis for
all HP-UX 10.00 and later builds. Large files are available in HP-UX
10.20 and later. 10.00 and 10.10 were not real releases, and anyway
these flags should be harmless there unless the large-file
implementation was only partly done. Built OK on both PA-RISC and IA64,
optimized and plain. makefile, 4 Jan 2006. ===
Built on FreeBSD 6.0 on IA64. All OK except I got a warning about the
argument passed to time() in logwtmp() in ckufio.c. This section had
already been partially fixed; thus I put the improved version into
#ifdef CK_64BIT, which is our newly available symbol that should be
automatically defined for any true 64-bit build. ckufio.c, 4 Jan 2006.
===
Finally got around to testing Jeff's changes to SSL/TLS RAW mode from
December 30th against our POP server. It didn't work, couldn't log in.
Tried backing off the ckctel.c changes first; that allowed login and
communication, but it did not suppress activation of Telnet protocol
whenever a 0xff byte arrived. Backed off the rest of the changes and
now all is OK again. ckctel.c, ckcnet.c, ckuus7.c, 9 Jan 2006. ===
Built on NetBSD 1.4.1 (1999), found that it did not like the large file
assumption -- fseeko() and ftello() do not exist; added a clause to the
netbsd target to check for fseeko and not define _LARGEFILE_SOURCE if
not found. Oddly enough, off_t is 64 bits anyway, but it doesn't look
like the APIs are half-done. For example, stat() uses off_t (64 bits)
for the file length, but fseek() uses long (32 bits) and there is no
64-bit analog. Anyway the new netbsd target works on both 1.4.1 and
1.5.2 (no large files) and on 2.0.3 (large files). makefile, 9 Jan
2006. ===
Built on QNX-32 4.25, which has no large file support. Got a few
strange compiler (WatCom) warnings, but it built and runs OK. Noticed
that file transfers into QNX over a Telnet connection can't use
streaming, but that's nothing new to this version; same thing happens
with C-Kermit 7.0. 9 Jan 2006. ===
Built on IRIX 6.5. I didn't bother with large files there because it
does not support the _LARGEFILE_SOURCE interface; you have to change
all the APIs at the source level from blah() to blah64(). Seems to work
fine as a 32-bit app even though its off_t is 64 bits. Tried a pure
64-bit IRIX 6.5 build but it dies in ckcnet.c when it hits SOCKOPT_T
and GSOCKNAME_T with "The identifier 'socklen_t' is undefined". ===
Looks like I no longer have access to SCO OSR5. ===
Made a pure 32-bit build on SCO UnixWare 7.1.4, all OK. Found that this
version also supports LFS, added it to the uw7 target. makefile, 9 Jan
2006. ===
--- Dev.11 --- ===
Evidently the HP-UX bundled (non-ANSI non-optimizing) compiler doesn't
like long integers in switch expressions. Changed three examples of
these in the S-expression code. ckuus3.c, 10 Jan 2006. ===
A section of tstats() where GFTIMER isn't defined (e.g. on Motorola
sv68r3v6) was garbled. Fixed in ckcfn2.c, 10 Jan 2006. ===
A fix for setting 921600 bps on Linux from Paul Fulghum, Microgate
Systems Ltd. ttgspd(): ckutio.c, 11 Jan 2006. ===
Noticed that when I changed the compact substring notation code back on
August 9th, I broke the ability to use arithmetic expressions within
the brackets, which explains some rather odd behavior I saw with some
of my scripts. Looking more deeply into this, I also see that all the
parsers I have been using up to now for this, as well as for array
bounds pairs, have been inadequate because they never allowed for
nested constructions, such as a member of a bounds pair that itself was
an array element, possibly with another array element as a subscript. I
wrote a new routine for this, called boundspair(), which is like
arraybounds() except it accepts an extra argument, an array of
characters that can serve as bounds-pair delimiters, and it returns the
pair separator that was encountered in another new argument. For the
alternative substring notation for [startpos-endpos] I had to change
the delimiter from '-' to '_' because '-' can be used in arithmetic but
'_' is not a recognized operator. This is so I can parse, e.g. [a:b] or
[a_b] in the same context, and then find out which form was used, e.g.
\s(line[9:12]) or \s(line[9_12]); the first string is 4 bytes long, the
second is 12. Everything seems to be OK now. \s(line[10]) gives
everything starting at 10, but \s(line[10:0]) gives the null string.
Bad syntax in the bounds pairs results in a null string; missing pieces
of the bounds pair result in defaults that should be compatible with
previous behavior. ckuus[45].c, ckuusr.h, 13 Jan 2006. ===
Changed arraybounds() to call boundspair(). This was a rather drastic
change, not strictly necessary, but I think I got all the kinks out.
ckuus5.c, 13 Jan 2006. ===
Changes from PeterE to the makefile for HP-UX 6 and 7, to accommodate
bigger symbol tables, etc. 19 Jan 2006. ===
Determined that SCO OSR5.0.6 (and earlier) do(es) not support large
files. Don't know about 5.0.7. 30 Jan 2006. ===
Created a new build target for SCO OSR6.0.0. Gets the exact 6.x.x
version dynamically. Supports large files and big-number arithmetic via
CK_OFF_T. The sockopt() family of functions changed the data types of
some of their arguments since OSR5. It was already possible to define
SOCKOPT_T and GSOCKNAME_T from the command line but I had to add code
to also allow this for GPEERNAME_T too. ckcnet.c, makefile, 30 Jan
2006. ===
Apparently, ever since C-Kermit 7.0 was released, it has never been
possible to use a variable for the as-name in a RECEIVE command in
Kermit 95. This is because evaluation of the as-name field was deferred
until after we could check whether it might be a directory name (which,
in Windows, could start with a backslash). This little bit of magic was
not a good idea, magic hardly ever is. I changed the code to evaluate
both as-name fields in the normal way. If they want to receive to a
directory called "\%1", they'll just have to spell it differently. The
workaround is to turn the whole command into a macro and evaluate it
before executing it, e.g.:
assign xx receive /as-name:\%1
do xx
ckuus6.c, 1 Feb 2006. ===
Built OK on FreeBSD 6.1 on AMD64. Adjusted some copyrights and date
stamps. ckcmai.c, makefile, 8 Feb 2006. ===
--- Dev.12 --- ===
Fixed a signed/unsigned char warning in the new boundspair() calling
code in the compact substring notation handler. ckuus4.c, 9 Feb 2006.
===
Removed a spurious extra linux+openssl label from the makefile, added
solaris10g_64 synonym. 9 Feb 2006. ===
Satisfied myself that LFS is OK on Solaris 10 i386, and I'm going to
assume it's also OK on Solaris 9. Made LFS standard for all Solaris 9
and 10 builds (including the secure ones) except the explicitly 64-bit
ones, and made the provisional solarisXXlfs targets into synonyms.
makefile, 9 Feb 2006. ===
--- Dev.13 --- ===
Further attempts at SSL/TLS message suppression when QUIET is ON.
ck_ssl.c, 16 Feb 2006. ===
From J.Scott Kasten: (quote...) I just uploaded a patch to
/kermit/incoming. The file name is "jsk-patch-for-cku211.diff". I have
also included the patch as ASCII text in this email below. This patch
may be applied to the cku211.tar.gz source code via:
cd cku211, patch -p1 <../jsk-patch-for-cku211.diff
The patch adds 4 new build targets:
netbsdwoc - a stripped no curses target for iksd used.
netbsdse - security enhanced target with srp, ssl, and zlib.
irix65gcc - build on SGI Irix 6.5 platform using gcc.
irix65se - security enhanced target with srp, ssl, and zlib.
The patch fixes one build target:
irix64gcc - The "-s" option is not supported by gcc under Irix.
I thank all of you in the Kermit Project for such a fine utility. I
recently had to get a 16 MB file overseas across a spotty
communications link to repair a computer remotely. Kermit was the only
thing that could do the job, so I wanted to contribute these patches
back to the mainstream to say thanks. This digitally signed email is a
binding contract that officially assigns the rights to the source code
patch (shown below) that I developed to the Kermit Project at Columbia
University. (...end quote) ck_ssl.c, makefile, 23 Feb 2006. ===
Changed the new NetBSD target names to be consistent with the
conventions used in most other targets:
netbsdwoc -> netbsdnc
netbsdse -> netbsd+ssl+srp+zlib
irix65se -> irix65+ssl+srp+zlib
and removed old, now superfluous, NetBSD targets (old-netbsd, netbst15,
netbst16), leaving synonym labels in their place. Also updated
(crudely) the Linux target variations (curses instead of nocurses, no
curses at all) to be (appropriately modified) copies of the current
linux target. It would be nicer to combine them, but this gets the job
done. makefile, 23 Feb 2006. ===
--- Dev.14 --- ===
Fixed the HELP command when used with tokens like @, ^, #, and ;. The
first two had been omitted from the table. The second two required a
new path into the guts of the parser, since comments are normally
stripped at a very low level. ckuus[r2].c, ckucmd.c, 24 Feb 2006. ===
Built on AIX 5.1 ("make aix51") without incident. Then I tried:
make aix51 "KFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
This had no effect. I found the relevant document ath the IBM website.
It says to use -D_LARGE_FILES instead. I added this to the AIX 4.2
target since (a) IBM says large files are supported by AIX 4.2 and
later, and (b) all Kermit AIX targets past 4.2 use the 4.2 one. Plus a
clause to make sure CK_OFF_T is defined appropriately. ckcdeb.h,
makefile, 6 Mar 2006. ===
Added a 32-bit aix51+openssl target. Builds OK, works fine (tested
against our SSL POP server). Tried I tried adding -D_LARGE_FILES. It
seems to work fine, so we'll keep it. Cleaned up the other aix5blah
entries a bit also. makefile, 6 Mar 2006. ===
Fixes from J. Scott Kasten to the IRIX 6.4 and 6.5 makefile targets.
They were badly wrong. makefile, 6 Mar 2006. ===
The reason Kermit was looping on directories in IRIX was a classic
"double-ended break". The makefile targets failed to define DIRENT so
Kermit was open/read on directories rather than opendir()/readdir().
But then it was also failing to account for the fact that read() would
return -1 on error. The makefile fix adds -DDIRENT, and the read() case
in traverse() now properly terminates its loop on error. ckufio.c, 6
Mar 2006. ===
--- Dev.14 --- ===
In response to a complaint that C-Kermit would not build on HP-UX 11
with OpenSSL, I tried it myself on both 11.11/PA-RISC and 11i
v2/Itanium. It built OK on both but I had to add a new target
(hpux1000o+openssl-nozlib) for no Zlib since these boxes did not have
it installed. makefile, 9 Mar 2006. ===
Added OpenSSL version number display to SHOW FEATURES. ckuus5.c, 9 Mar
2006. ===
Gavin Graham noticed that FTP [M]GET /DELETE /MOVE-TO: was rejected
with "?Sorry, /DELETE conflicts with /MOVE or /RENAME". This check
belongs in the PUT code but not in the GET code. Commented it out and
tested the result. The combination is now accepted but then Kermit
refuses the incoming file as if it had been given a /SMALLER-THAN: or
/LARGER-THAN: switch, which it didn't happen. Turns out there was one
more place where I wasn't initializing the new "wide int" member of the
switch-parsing pv[] struct. Once this was fixed, the /MOVE-TO part
still didn't work. Turned out the /DELETE case was part of a long
if-else-if-else- chain, which effectively made /DELETE and /MOVE-TO: or
/RENAME-TO: mutually exclusive. Fixed this, now it works fine.
ckcftp.c, 13 Mar 2006. ===
Got access to AIX 5.3, built there, all OK, including large files. 13
Mar 2006. ===
--- Dev.16 --- ===
Patches from Mark Sapiro to suppress getsockopt() and getsockname()
warnings in Mac OS X. ckcnet.[ch], 18 Mar 2006. ===
In response to a complaint from Clarence Dold, tried "make redhat9"
(which is the rather dated target that tried to include all forms of
security) on RH Linux AS4.3, it failed miserably. I made a new makefile
target, removing Kerberos IV and got a lot farther. But then in
ckcftp.c, the following struct definition:
struct {
CONST gss_OID_desc * CONST * mech_type;
char *service_name;
} gss_trials[] = {
{ &ck_gss_mech_krb5, "ftp" },
{ &ck_gss_mech_krb5, "host" },
};
refers to a variable, ck_gss_mech_krb5, that is not defined anywhere.
Up above, however, is a static definition for gss_mech_krb5, so I
changed the struct definition to match. Next, in ckuath.c, the compiler
could not find the com_err.h file. Turns out in Linux this is in a
subdirectory, et, so we have to add a -I clause to the makefile target
for this. Made a target for Linux+SSL only. Made a target for
Linux+Krb5 only; this required moving an #ifdef in ckuus7.c to prevent
an unguarded reference to SSLEAY_VERSION. New targets: linux+krb5+ssl,
linux+krb5, linux+krb5. ckcftp.c, ckuus7.c, makefile, 27 Mar 2006. ===
New targets of HP-UX 10/11 with OpenSSL from PeterE. makefile, 27 Mar
2006. ===
Added large file/integer support to SHOW FEATURES. ckuus5.c, 27 Mar
2006.
Built OK on Solaris 9 and 10 with gcc (someone was complaining that
this didn't work, but that was 8.0.211).
Started build on a Sun 3/80 mc68030 with NetBSD 2.0 and gcc 3.3.3. But
it died with an assembler error in ckcfn2.c (compiler bug). 27 Mar
2006. ===
--- Dev.17 --- ===
NebBSD 2.0 build completed by turning off optimization on ckcfn2.c
("KFLAGS=-O0"). Result supports 64-bit ints and, presumably, large
files. uname -p = "m68k", -m = "sun3". 29 Mar 2006. ===
Corrected an omission in applying PeterE's updates to the HP-UX
targets. makefile, 28 Mar 2006. ===
solaris2xg+krb5+krb4+openssl+shadow: ===
Tried resurrecting the solaris2xg+krb5+krb4+openssl+shadow target. It
asks to link with libdes but there is no libdes. Removed -ldes from the
target, now at least it builds and runs wart. The compilation blows up
in ckcftp.c for missing header files:
ckcftp.c:462: kerberosIV/krb.h: No such file or directory
ckcftp.c:500: gssapi/gssapi_generic.h: No such file or directory
ckcftp.c:501: gssapi/gssapi_krb5.h: No such file or directory
Got a bit farther by adding appropriate -I's and -L's to KFLAGS but it
still dies compiling (or linking?) ckcftp.c, but it doesn't say exactly
why. OK, deferred. ===
Added SET SEXPRESSION TRUNCATE-ALL-RESULTS { ON, OFF }. This can be
used for force integer arithmetic in any kind of calculation that
requires it, such as date calculations. This is a global setting, not
on any kind of stack. Also, updated SHOW SEXP and added HELP SET SEXP
which wasn't there before. ckuus[23].c, 30 Mar 2006. ===
To make the RENAME command a bit more useful, need to add some
switches. But it shares a switch table, qvswtab[], with some other
commands. Broke this off into its own switch table. ckuus6.c, 17 Apr
2006. ===
Added RENAME switch values that can be used in the same table with the
DELETE switch values, which are shared by many commands. ckuusr.h, 17
Apr 2006. ===
Discovered that the RENAME command could be entered without any
arguments and it would still succeed. Fixed in dorenam(): ckuus6.c, 17
Apr 2006. ===
Added parsing for RENAME /UPPER:option (to uppercase the file name(s)),
/LOWER:option (to lowercase), and /REPLACE:{{s1}{s2}} (to do string
replacement on the filename(s)), but not the semantics. When any of
these switches is given, the target ("to") name is not parsed; they act
on the source name. The /LOWER: switch takes keyword args to specify
whether it should act only only files that have all UPPER case latters,
or on ALL files (i.e., including files with mixed-case names);
similarly for the /UPPER: switch. There is some creative parsing
allowing these to be given with or without a colon and keyword
argument, which works fine except if you include the colon but no
argument, execute the command (which works fine), and then recall the
command. I haven't yet decided about the interaction among these
switches. Clearly if /UPPER is given after /LOWER, it overrides. But if
/UPPER (or /LOWER) is given with /REPLACE, what should happen?
ckuus6.c, 17 Apr 2006. ===
Filled in actions for RENAME /UPPER: and /LOWER: for the single file
case, and tested all combinations of switch values and filename
configurations. Once that was OK, moved the code out into a separate
routine, renameone(), and then called it from both the single-file case
and the multifile case. ckuus6.c, 19 Apr 2006. ===
Added RENAME /SIMULATE. Filled in the code for string replacement,
needs testing. ckuus6.c, 20 Apr 2006. ===
Changed /REPLACE options to allow a negative number to specify an
occurrence from the right, so -1 means the last occurrence, -2 means
the next-to-last, etc. ckuus6.c, 24 Apr 2006. ===
Added RENAME /COLLISION:{OVERWRITE,PROCEED,FAIL}. This is implemented
but not tested. ckuus6.c, 24 Apr 2006. ===
Worked on RENAME /COLLISION:FAIL. I decided it was less than useful to
...
Added SET RENAME { COLLISION, LIST } to let user change default
collision and listing actions. ckuusr.[ch], ckuus[36].c, 25 Apr 2006.
===
Experimented with parsing for /CONVERT:cset1:cset2. The problem here is
that there is no straightforward way for a switch to have multiple
arguments. Or is there...? If I parse cset1 with cmswi() rather than
cmkey(), it almost works; the only problem is that the character-set
keywords don't have CM_ARG set, so they don't know to stop on, and
ignore, a colon. If I make a copy of the table and set CM_ARG in the
flags field for each keyword, it works fine: if I Tab in the first
name, it fills itself out, supplies a colon, and waits for the second
name. So in the code, the first time that RENAME /CONVERT is invoked, I
put code to copy fcstab[] and set CM_ARG in each flags field. Works
fine, and now we know how to make a switch that takes multiple
arguments. ckuus6.c, 24 Apr 2006. ===
I thought I had a function to convert the character set of a string but
I don't, so actually implementing /CONVERT: will be difficult.
Actually the parsing wasn't that easy either. It works OK
interactively, but not in a TAKE file. To make a long story short, I
had to change gtword() and cmkey2() to not require "/" at the beginning
of a switch, and then to parse
arguments-that-are-followed-by-other-arguments as if they were
switches, so that they can end with colon rather than space. This might
seem dangerous, but switches always have "/" at the beginning, so the
check is superfluous. ckucmd.c, 26 Apr 2006. ===
Back to /CONVERT... Once I was able to get the code to call cvtstring()
I was able to debug it (at first it was skipping every second
character). And now we have a general-purpose string-translating
function we can call from anywhere. Requires that C-Kermit be built
with Unicode support. ckuus6.c, 26 Apr 2006. ===
Added SHOW RENAME. ckuusr.h, ckuus[r5].c, 26 Apr 2006. ===
Conditionalized some Unix/Windows assumptions in renameone() so the
code could work in VMS. ckuus6.c, 2 May 2006. ===
Added RENAME /FIXSPACES to change all spaces in the filename(s) to
underscore or any other character or string that is given. This is just
a special case of RENAME /REPLACE:{{ }{x}} with easier syntax.
ckuusr.h, ckuus6.c, 2 May 2006. ===
Added an "all-but" control to the /REPLACE options:
/REPLACE:{{.}{_}{~1}} means replace all but the first (this one works);
/REPLACE:{{.}{_}{~-1}} means replace all but the last (this one not
yet). ckuus6.c, 2 May 2006. ===
Filled in the second one ("all but" the given occurrence). The
algorithm is simply to reverse the three strings and then use the same
code as we use in the left-right-case, and then unreverse the result.
At first I used yystring() for this but yikes, what a bad design! So I
made a better string-reversal routine, gnirts(), for this (luckily
yystring() is only used in one place, for which its design is
appropriate). ckuus6.c, 3-4 May 2006. ===
Added code to handle the case where the file being renamed includes a
path specification. In this case we separate the path, apply the
renaming functions to the filename only, and then at the end rejoin the
original filename with the path, and join the new name with same path
or, if a destination directory was given, with that. ckuus6.c, 4 May
2006. ===
Added HELP SET RENAME and updated HELP RENAME. ckuus2.c, 4 May 2006.
===
"Tom Violin" (Tom Hansen) noticed that the first time you FOPEN a file,
Kermit's memory consumption goes way up. In fact there's a warning to
that effect in the code, where, upon first open, a potentially big
array of potentially big structs is allocated. I rewrote the code to
allocate each array member (struct ckz_file) as needed, i.e. when a
file is opened, and to free it when the file is closed (or the open
fails). This was actually quite a lot of work, which is why I didn't do
it the first time around: every single "." had to be changed to "->".
Every check for a valid channel first had to check if the channel's
struct was allocated and every other reference to z_file[i]->anything
had to be prechecked that z_file[i] was not a NULL pointer. Also I made
some improvements to FILE STATUS, and I fixed FILE CLOSE to default the
channel number if only one channel was open, as I did for FILE STATUS a
while back. ckuus7.c, Cinco de mayo 2006. ===
Ran my old BUILDS script that builds C-Kermit with about 100 different
combinations of feature-selection switches. Fixed a few small glitches
so now they all build OK (except can't do NOANSI builds any more on
recent Linuxes because of varargs()). ckuus3.c, ckuus5.c, ckuus6.c,
ckuus7.c, ckucmd.c, ckcfns.c, 6 May 2006. ===
Fixed RENAME /LOWER and /UPPER, when given with no colon or argument,
to default to ALL. ckuus6.c, 13 May 2006. ===
Built on VMS 7.2-1, tested new RENAME command there; seems to be OK. 13
May 2006. ===
--- Dev.18 --- ===
I wanted to test large files against RESEND but I don't have access to
any system that can run C-Kermit and that also has enough space for a
large file. I created a "fake" large file on Linux (3G hole plus 1
byte), and sent it over a localhost connection, and interrupted it
repeatedly and then initiated a RESEND at the sender. In each case, it
picked up where it left off. But before the 2G boundary was crossed the
disk filled up. Inconclusive. 14 May 2006. ===
PeterE got a warning in the new FILE OPEN code when building in HP-UX
9. I added a cast, built on HP-UX 11, no more complaint. However there
are warnings about internal vs external bindings of sendpath and
sendfile in every module. Too bad, these are not Kermit tokens, it's a
conflict in HP's header files. Marc Sapiro doesn't see them; probably
it's something on the HP testdrive site. ckuus7.c, 17 May 2006. ===
Fixed the tru64-51b+openssl target -- the terminating doublequote of
KFLAGS was missing -- and also the osf target, which failed to import
the LIBS definition from whatever other target invoked it. Now the SSL
build goes OK on Tru64 5.1B. Replaced x.tar.z in the download areas
without declaring a new Dev number. The new one has a makefile with
today's date. Software engineering at its best! makefile, 18 May 2006.
===
Scott Kasten noted that the estimated-time-remaining calculation would
go bonkers on LFS systems when RESENDing a large file. It looks like
the shocps() and shoetl() functions escaped the CK_OFF_T conversion. I
made what seemed to be the right adjustments, and then was lucky enough
to find a computer that had enough free disk space for me to send a
large file, interrupt it several times, resend it, all seems to be OK.
28 May 2006. Later Scott verified these changes independently for
Linux, but the problems in IRIX remain.
Patches from Scott Kasten for large files on IRIX 6.5: ckcdeb.h,
makefile, 12 Jun 2006. ===
--- Dev.19 --- ===
Added a new function for dealing with JPGs and GIFs:
\fpicture(filename,&a)
returns 0 if file not recognized or can't be opened;
returns 1 if landscape, 2 if portrait or square.
If array given, element 1 is width, element 2 is height.
ckuusr.h, ckuus4.c, 19 Jun 2006. ===
Scott Kasten reports that the FTP client can transfer large files OK,
at least in Linux, but has trouble with recovery:
. Kermit takes a very long time to start the transfer, sometimes over
30 minutes. Suspect the ftp server is counting the bytes in a long file?
Or maybe it's a text-mode transfer and it's counting the lines? Probably
in response to Kermit's SIZE command.
. The size shown in the FT display is wrong by a random amount. And of
course so are the progress bar, percent done, and time remaining.
. The file, however, is transferred correctly. REGET works correctly too.
I tried setting up a test scenario locally but our Solaris FTP server
does not support large files:
FTP SENT [SIZE BIGFILE]
FTP RCVD [550 BIGFILE: not a plain file.]
FTP SENT [PASV]
FTP RCVD [227 Entering Passive Mode (128,59,48,24,246,37)]
FTP SENT [RETR BIGFILE]
FTP RCVD [550 BIGFILE: Value too large for defined data type.]
Created the same 3GB on a Tru64 Unix system that allows FTP access.
Made the connection from C-Kermit on Solaris (32-bit with LFS):
16:46:12.908 FTP SENT [SIZE BIGFILE]
16:46:12.947 FTP RCVD [213 3000000001]
Note that it takes less than half a second to get the reply. Now I
start the download and then interrupt it at about 2%:
16:46:12.979 FTP SENT [TYPE I]
16:46:13.174 FTP RCVD [200 Type set to I.]
16:46:13.226 FTP SENT [PASV]
16:46:13.262 FTP RCVD [227 Entering Passive Mode (15,170,178,171,11,37)]
16:46:13.299 FTP SENT [RETR BIGFILE]
16:46:13.337 FTP RCVD [150 Opening BINARY mode data connection for BIGFILE..]
16:47:24.895 FTP RCVD [426 Transfer aborted. Data connection closed.]
16:47:24.934 FTP RCVD [226 Abort successful]
16:47:24.991 FTP SENT [MDTM BIGFILE]
16:47:25.028 FTP RCVD [213 20060706204458]
Now I do a REGET:
16:51:55.321 FTP SENT [PASV]
16:51:55.357 FTP RCVD [227 Entering Passive Mode (15,170,178,171,11,43)]
16:51:55.394 FTP SENT [REST 122736640]
16:51:55.430 FTP RCVD [350 Restarting at 122736640. Send STORE or RETRIEVE..]
16:51:55.431 FTP SENT [RETR BIGFILE]
16:51:55.469 FTP RCVD [150 Opening BINARY mode data connection for BIGFILE..]
This worked perfectly, as far as I can tell; the FT display picked up
in the right place; the thermometer, percent done, and estimated time
remaining were the same as when we left off last time. I did the same
thing several more times, everything was OK. It would have taken a
really long time to let this run to completion, but I think this
demonstrates that Scott's symptoms are server-dependent. No changes. 6
July 2006. ===
Checked current code on VMS 8.2-1 on IA64 / UCX 5.5, builds fine. No
changes. Updated listing at HP. 6 July 2006. ===
Checked FTP GET of large file in ASCII mode against Tru64 FTP server.
It was fine, and there was no delay in the server's response to our
SIZE command (as there would be if it were scanning the entire file to
count how many bytes would be required to send it in text mode). 7 Jul
2006. ===
Tested FTP PUT big file against Tru64, OK. Ditto FTP RESEND big file:
C-Kermit>resend BIGFILE
PUT BIGFILE (binary) (3000000001 bytes)---> PASV
227 Entering Passive Mode (15,170,178,171,13,186)
---> SIZE BIGFILE
213 343211280
---> MDTM BIGFILE
213 20060707141243
---> APPE BIGFILE
150 Opening BINARY mode data connection for BIGFILE (128.59.59.56,45470).
Made REPUT a synonym for RESEND. ckuusr.c, 7 Jul 2006. ===
Added FTP REPUT and FTP RESEND since previously there was no
FTP-prefixed command for recovering uploads, only the regular RESEND
command, which might not have been obvious to people. ckcftp.c, 7 Jul
2006. ===
Added help text for FTP RESEND and REPUT and amended RESEND help text.
ckcftp.c, ckuus2.c, 7 Jul 2006. ===
Changed name of \fpicture() to \fpictureinfo() and added help text. By
the way, ImageMagick can do this too: identify -format "%w %h"
dscf0520.jpg. The advantage of having it in Kermit is that not
everybody has ImageMagick. ckuus[24].c, 7 Jul 2006. ===
Changed the numeric comparisons = < > <= >= != to allow long integers
by changing the data type to CK_OFF_T, etc. ckuus6.c, 7 Jul 2006. ===
Noticed that \fkeywordvalue(foo=this is a string) only kept the first
word. Fixed it to keep the whole definition. Also added \fkwvalue() as
a briefer synonym. ckuus4.c, 7 Jul 2006 ===
Sometimes we want to check if a file's status before we've FOPEN'd it,
in which case the channel variable is likely to be empty and
\f_status(\%c) would get an error. Making the obvious change didn't fix
this, however. It turns out that the function evaluator failed to
adjust argn (argument count) when trailing arguments were empty, and
argn was being used in this case, and probably others, to test whether
an argument existed. I added code to adjust argn to reflect the number
of arguments up to and including the rightmost non-empty one. ckuus4.c,
7 Jul 2006. ===
Fixed \fstripb() to not dump core if second argument is missing.
ckuus4.c, 7 Jul 2006. ===
Discovered that it was not obvious what pattern to use to match strings
enclosed in square brackets. "if match [abc] \[*\]" didn't work.
Neither did various other tricks like NCRs for the brackets. However,
"if match [abc] \\[*\\]" does work. Trying to fix this would no doubt
break 100 other things, so let's call it a feature. 7 Jul 2006. ===
Added \fgetpidinfo(n) to return info about a process ID; for now it
simply returns 1 if the process is alive and 0 if not (or -1 if the
argument is bad or missing or on any kind of error). ckuusr.h,
ckuus[24].c, 7 Jul 2006. ===
The "where-did-my-file-go" message seemed to be ending with a LF rather
than CRLF, probably because the terminal modes had not yet been
restored, leaving the next prompt hanging below it, rather than on the
left margin, if C-Kermit exited immediately after the transfer. Fixed
by changing all \n's to \r\n's in wheremsg(): ckcpro.w, 8 Jul 2006. ===
Added \v(lastkwval) so we can retrieve programmatically the keyword
most recently processed by \fkeywordval(). ckuusr.h, ckuus4.c, 9 Jul
2006. ===
--- Dev.20 --- ===
Added #ifdef SV68, #include <unistd.h>, #endif because Unix System V/68
on Motorola choked on the SEEK_CUR reference without it. ckuus4.c, 10
Jul 2006. ===
Make \fkeywordval(xxx) undefine xxx (i.e. when a keyword is given with
no value). This way command-line keywords will always override
preexisting default definitions, whether they have a value or not,
which makes it easier to parse command lines like "foo=bar blah xx=yy".
ckuus[24].c, 12 Jul 2006. ===
On 29 Nov 2005 I changed IF KERBANG to solve a problem (see entry for
that date), but introduced a new one; namely that you can't have (e.g.)
a FATAL macro that uses IF KERBANG to decide whether to EXIT all the
way or STOP back to the prompt. Changed it again, this time to require
not that the command level be 1, but that the command *file* level be 0
(i.e. that we are in the top-level command file, irrespective of the
command or macro level, but not in a subfile). ckuus6.c, 12 Jul 2006.
===
It is unhelpful when Kermit gets a syntax error in the middle of a big
compound statement block (e.g. FOR or WHILE loop) and dumps out the
whole thing in an error message. I changed the two places where this
can happen to call a new routine that, instead of dumping out the
entire cmdbuf, checks its length first and if it's more than a line
long, truncates it and adds an ellipsis. ckuus6.c, 12 Jul 2006. ===
The new RENAME command didn't give very good error messages, e.g. if
the filespec didn't match any files. Fixed in dorenam(): ckuus6.c, 12
Jul 2006. ===
Fixed DIR /TOP to work if the /TOP:n argument was omitted, defaulting
to 10. domydir(): ckuus6.c, 12 Jul 2006. ===
Added DIR /COUNT:v to count the number of files that match the given
criteria and store result in the variable v. ckuusr.h, ckuus[r26].c, 24
Aug 2006. ===
Added HDIRECTORY as an invisible synonym for DIR /SORT:SIZE /REVERSE.
Can be used with other switches, of course, so (e.g.) HD /TOP shows the
ten biggest files. ckuusr.h, ckuus[r26].c, 24 Aug 2006. ===
DIR /FOLLOWLINKS and /NOFOLLOWLINKS always did the same thing; the
switch was ignored, a symlink is always followed. Fixed in ckuus6.c, 24
Aug 2006. ===
Added DIR /NOLINKS, which means don't show or count symlinks at all.
ckuusr.h, ckuus[r26].c, 24 Aug 2006. ===
Build on Solaris 9 and NetBSD 3.0, 24 Aug 2006. ===
Added a missing definition for LOCK_DIR in the Linux HAVE_BAUDBOY case,
suggested by Gerry Belanger. ckutio.c, 6 Oct 2006. ===
Suggested by Jim Crapuchettes: \v(dialmessage) is the text string
corresponding to \v(dialstatus). ckuusr.h, ckuus4.c, 6 Oct 2006. ===
Soewono Effendi sent code for exit sequence to leave DTR on; this
amounted to unsetting HPUCL in c_cflag. I did it a simpler way,
hopefully portable to all Unixes, but who knows at this late date. The
code is inside #ifndef CK_NOHUPCL..#endif in case it causes trouble. It
is executed if SET EXIT HANGUP is OFF and a serial port was open at the
time Kermit exits (or closes it explicitly). ttclos(): ckutio.c, 6 Oct
2006. ===
Built on Solaris9/Sparc; FreeBSD 6.2/AMD64; NetBSD 3.0/i386; HP-UX 11i
v2; SCO OSR6.00. ===
--- Dev.21 --- ===
Added netbsd+openssl target to makefile. Built OK (NetBSD 3.0, OpenSSL
0.9.7d) except with some warnings in ck_crp.c. Connects and logs in OK
to a secure site. 10 Oct 2006. ===
Added a debug statement to ftp_hookup() to record the TCP port that was
used. ckcftp.c, 11 Oct 2006. ===
Built with OpenSSL 0.9.7l on Solaris 9. Built with OpenSSL 0.9.8d on
Solaris 9; connects and logs in to a secure site. 11 Oct 2006. ===
The new RENAME command didn't work if both the source and destination
names included directory segments, e.g. "rename /tmp/foo ~/bar" (see
notes of 4 May 2006). This was fixed in renameone() by a special case
in which the second argument is given but it is a filename, not a
directory name. ckuus6.c, 11 Oct 2006. ===
Fixed unguarded reference to dialmsg[] for \fdialmessage(), noticed by
Gerry Belanger. ckuus4.c, 12 Oct 2006. ===
Added a TOUCH command that does what UNIX touch does: creates the file
if it does not exist, updates the timestamp if it does. If a wildcard
is given, it operates only on existing files. It shares the DIRECTORY
command parser, so all the same file selection switches can be given.
ckuusr.[ch], ckuus[26].c, 12 Oct 2006. ===
PeterE noticed that if you FOPEN a file, do some seeks or reads, then
FCLOSE it, then FOPEN it again (or open a different one), some of the
old information is still there (e.g. current line number). This is an
artifact of the changes of May 4th. Now the file closing and opening
routines are a bit more careful about scrubbing and initializing the
file info struct. ckuus7.c, 12 Oct 2006. ===
--- Dev.22 --- ===
Built OK on Red Hat Linux AS4 with both "make linux" and "make
linuxnc". 15 Oct 2006. ===
DIRECTORY /BRIEF ignored file selection switches and always listed all
files. This was because of how I cleverly called filhelp() (the routine
that lists matching files when ? is typed in a filename field) and, of
course, filhelp() doesn't know anything about the DIRECTORY command's
file selections. Changed filhelp() to accept all the args needed for
passing along to fileselect(), renamed it to xfilhelp(), and made a
filhelp() stub that chains to xfilhelp() with null selections.
ckcker.h, ckucmd.[ch], ckuus6.c, 29 Nov 2006. ===
SHOW CONNECTION for an SSH connection said the connection type was
"NET" rather than "SSH". Fixed in dolognet(): ckuus3.c, 29 Nov 2006.
===
SHOW CONNECTION didn't show the TCP port number. This command works by
parsing the current connection log entry string, which doesn't have a
field for this, but which sometimes shows the port number as part of
the hostname (but more often not). Added code to dolognet() to log the
TCP port number, if known. This involved adding a gettcpport() function
to ckcnet.c. ckcnet.[ch], ckuus3.c, 29 Nov 2006. ===
This was impossible: def \%1 upper, echo \f\%1(abc) -- i.e. to
"compose" a function name. Fixed in zzstring(). But note that it's
still not possible to do this: def \%1 \fupper, echo \%1(abc) --
because at the point where "\fupper" is encountered, which is
automatically fed to fneval(), the argument list hasn't been read yet.
ckuus4.c, 29 Nov 2006. ===
The meaningless Lisp command (=) would cause Kermit to hang. Due to
some idiosyncracy in the parser, it would see this as ((=) and would go
into "wait for the closing paren" mode. There was already a hack in the
code to compensate for this, but it didn't work. I fixed the hack but I
don't understand the real problem. Anyway, comparing Kermit with real
(Franz) Lisp I discovered that comparison operators do not require two
arguments, as Kermit has been doing, although they do require at least
one. I changed Kermit to not require two, so now all the comparison
predicates behave exactly like Franz Lisp, including getting an error
if there are no args). ckuus[r3].c, 29 Nov 2006. ===
From to-do list: Make a way to inhibit pattern matching in SWITCH
labels. It's already there; just quote the wildcard characters; the
only trick is that for some reason (such as that SWITCH is really an
internally defined macro), a double quote is needed:
switch \%1 {
:a\\*z, echo literally "a*z", break
:abcxyz, echo literally "abcxyz", break
:a*z, echo a...z, break
:default, echo NO MATCH
}
In first case, the asterisk is taken literally; in the third it's a
metacharacter and the label matches any string that starts with 'a' and
ends with 'z'.
Array initialization would quit early if any initializers were
undefined, e.g. "decl \&a[] = \%a \%b \%c" would stop at the first
element if \%b was not defined, even though \%c might be defined. Fixed
in dodcl(): ckuusr.c, 30 Nov 2006. ===
DIR /ARRAY:a filespec, when the filespec does not match any files,
terminates with the array undeclared. It would be better to return a
declared but empty array (\&a[0] = 0). The code is already there to do
that, but isn't working. And yet "declare \&a[0]" does indeed create a
0-element array ("show array" shows a dimension of 0). Turns out there
were two problems; one was the careless recycling of a local variable
("array"), resulting in failure to create \&a[] (but not any other
array). Fixed in domydir(): ckuus6.c, 30 Nov 2006. ===
The other problem was that dclarray(), when called with an array name
and a dimension of zero, does two different things depending on whether
the array already existed. There is still a fair amount of confusion
about whether a dimension of 0 indicates an array with 1 element (as it
should) or a nonexistent array. We call dclarray() with a size of 0 to
undeclare an array but we also need to able able to declare an array
with only element 0. I changed dclarray() to treat a negative dimension
as a command to destroy the array, and 0 or positive as a command to
create the array with the given dimension. ckuus[r56].c, 30 Nov 2006.
===
Next problem: when chkarray() returns 0, this should not be interpreted
to mean the array does not exist. Looks like the only place this
happened was in \fcontents(); fixed in ckuus4.c, 30 Nov 2006. ===
If we include file selectors with DIR /ARRAY:&a and some of the files
that match the given filespec but don't fit the selectors, the array's
dimension is bigger than its number of elements. Added code at the end
of domydir() to resize the array so \fdim() returns the number of
filenames in the array, and also made sure that element 0 contains that
number too. ckuus6.c, 30 Nov 2006. ===
This would be a nice elegant way to loop over a bunch of files, if it
worked:
for \%i 1 \ffiles(*) 1 { rename \fnextfile() xxx_\flpad(\%i,3,0) }
But in this loop, Kermit skips every other file (beginning with the
first) and then runs out of files halfway through the loop. Why?
Because in commands like RENAME and DELETE, the filename parser is in a
chained FDB with the switch parser. First the switch parser, cmswi(),
gets its hands on \fnextfile(), passing it through the evaluator and
thus getting the first filename, which it then sees is not a switch, so
now the field is parsed by the next parser in the chain, cmifi(), which
causes \fnextfile() to be executed again. In fact, the FOR loop has
nothing to do with it; the same thing happens like this:
void \ffiles(*)
delete \fnextfile()
This deletes not the first file, but the second one. Obviously users
can be told not to refer to \fnextfile() in chained-fdb fields:
for \%i 1 \ffiles(*) 1 { .f := \fnextfile(), delete \m(f) }
but this is hardly intuitive. I had some clever ideas of how to make
\fnextfile() work as expected in this context but it's way too much
magic. Better to simply document that \fnextfile() is "deprecated" and
the array format should be used:
for \%i 1 \ffiles(*,&a) 1 { delete \&a[\%i] }
The difference is, an array element doesn't change every time it's
referred to!
Added a /PRESERVE switch to the COPY command to preserve the timestamp
and permissions of the file. I did this using the Kermit APIs so it
should work for any version of C-Kermit or K95. ckuus[26].c, 30 Nov
2006. ===
Added COPY /OVERWRITE:{ALWAYS,NEVER,OLDER,NEWER} to control name
collisions when copying across directories. ckuus[26].c, 1 Dec 2006.
===
--- Dev.23 --- ===
Fixed a bug in SET TELNET PROMPT-FOR-USERID, SET AUTH KERBEROS[45]
PROMPT, and SET AUTH SRP PROMPT in which the user's string was compared
with a literal (s == ""), reported by Pavol Rusnak. Worse, empty
strings (if the test succeeded) were turned into null pointers, and
then fed to strlen(). Fixed in ckuus3.c, 5 Dec 2006. ===
Added an optional 4th argument to \findex(), \frindex(), \fsearch(),
and \frsearch(): the desired occurrence number of the searched-for
string. \frsearch() was a bit tricky. ckuus[24].c, 7 Dec 2006. ===
Added \fcount(s1,s2) to tell the number of occurrences of s1 in s2.
ckuus[24].c, 8 Dec 2006. ===
Added \ffunction(s1) to tell if a given built-in function is available.
ckuus[24].c, 8 Dec 2006. ===
Changed RENAME /COLLISION:PROCEED to be /COLLISION:SKIP, which is
clearer. ckuus[26].c, 8 Dec 2006. ===
For communication protocols: INPUT /COUNT:n to read exactly n
characters without any matching. Can be used, for example, with
CONTENT_LENGTH in CGI scripts; NUL characters are counted but not
collected. ckuusr.[ch], ckuus4.c, 8 Dec 2006. ===
There was a bad bug in the date-parsing routines; it's been there for
years. If a date string includes a timezone, e.g. "Sat, 9 Dec 2006
19:26:23 EST", and converting to GMT changes the date, the variables
for day, month, and year (which are used later) were not updated, and
the final result was a day off. Fixed in cmcvtdate(): ckucmd.c, 10 Dec
2006. ===
Built OK with SSL/TLS. Tested with the POP script, found that I broke
INPUT when adding the /COUNT feature; there was a path through the code
that could leave the "anychar" variable unset and therefore random.
Fixed in doinput(). The POP script, which does not use /COUNT, works
again and so does a new CGI script, which does use /COUNT. ckuus4.c, 10
Dec 2006. ===
Supplied a missing comma in the help-text array for HELP SET TERMINAL,
which resulted in bad formatting in K95 around SET
SNI-FIRMWARE-VERSIONS. ckuus2.c, 10 Dec 2006. ===
Made "help locus" a synonym for "help set locus". ckuusr.[ch],
ckuus2.c, 11 Dec 2006. ===
This morning the Columbia FTP server was malfunctioning in a perfect
way for me to implement and test an FTP timeout mechanism. The server
would close the data connection after sending the file, but the client
never saw the close and was stuck forever in a recv(). I added code to
do a select() on the data connection prior to entering the recv(), with
a timeout on the select() that the user can establish with SET FTP
TIMEOUT. Built and tested on Solaris 9, clear-text FTP. Also built
cleanly for FTPS and tested against a server that does not hang; I
don't have access to an FTPS server that would tickle the timeout code.
ckcftp.c, 11 Dec 2006. ===
--- Dev.24 --- ===
Fixed a bug in the INPUT /COUNT: parser: the array of search strings
was never initialized, which didn't matter before, but with /COUNT:, if
the first element was not a NULL pointer, we'd treat it as a search
string, and then if it happened to match something in the input stream,
the operation would stop before the count was exhausted. Fixed by (a)
initializing the array, and (b) ignoring any search strings if /COUNT:
was given. ckuusr.c, 13 Dec 2006. ===
Removed a debug() statement from zsattr() that suddenly started making
some version of gcc complain, reported by Gerry Belanger. ckufio.c, 13
Dec 2006. ===
--- Dev.25 --- ===
Some casts for the 3 interior args of the new select() call in ckcftp.c
for HP-UX 9. 14 Dec 2006. ===
Changed \fkeywordvalue() to accept a string rather than a single word
as its second argument, so that more than one separator could be
specified, and to return -1 on error, 0 if it found nothing, 1 if given
a keyword but no value, and 2 if there was a keyword and a value.
dokwval(): ckuus[24].c, 14 Dec 2006. ===
Checked FTP timeout on command channel with FTP DIRECTORY of a big
directory using a path into our ftp server that preserves the hanging
behavior. The timeout was actually working, but the failure condition
wasn't propagating back to the user, and there was no error message.
Fixed in doftprecv2() and failftprecv2(): ckcftp.c, 15 Dec 2006. ===
Added the obvious timeout checks for FTP uploads, but I have no way to
test the code since our misbehaving FTP server does not hang when
receiving files, only when sending them. But uploads work both with and
without a timeout set, so at least no harm is done. ckcftp.c, 17 Dec
2006. ===
When downloading with FILE DESTINATION NOWHERE (= /CALIBRATE), Kermit
still checked the size of the incoming file and refused it if there
wasn't enough free disk space, on platforms (such as VMS) where
zchkspa()) actually works; reported by Bob Gezelter. ckcfn3.c, 18 Dec
2006. ===
Built on Mac OS X 10.4.8 and NetBSD 3.1_RC3, all OK. 19 Dec 2006. ===
--- Dev.26 --- ===
Built on VMS 7.3-2/Alpha. Had to squelch a couple compiler warnings by
changing some ints in the new \fpictureinfo() code from unsigned to
signed, and fix a typo in the prototype for the new gettcpport()
function. ckcnet.h, ckuus4.c, 22 Dec 2006. ===
--- Dev.27 --- ===
Parameterized pty routines and all references to them for file
descriptor, rather than to use global ttyfd, thus allowing ptys to be
created for different purposes. Tested on Solaris 9 and Mac OS X
10.4.8, with "set host /connect /pty emacs" (fine in both cases), and
(more to the point) "set host /connect /pty kermit" -- here we make a
connection from one Kermit process to another and transfer a file;
works fine and wasn't especially slow either; a good sign. ckcdeb.h,
ckutio.c, ckupty.c, 22 Dec 2006. ===
Created a new version of ttruncmd() called ttyptycmd(), which works by
calling do_pty() to get a pty to run the command on, and then in a
loop, reads from the pty and writes to the net and reads from the net
and writes to the pty, using select() to which of those it should do on
each pass. First cut just uses single-byte reads and writes. Tested
using Kermit itself as an external protocol. Works but slowly: 6000cps.
Zmodem doesn't work at all. ckutio.c, 24 Dec 2006. ===
Changed single-character read() and write() to buffered reads and
writes, with ttxin() and ttol() used for network i/o. Using Kermit as
the external protocol, this gives 450Kcps (about 1/3 normal on this
connection).
But now there's a problem: the loop doesn't know when to stop. How does
it know when the process that is running on the pty has exited? With
single character read()'s that are executed unconditionally when
select() says the pty has data waiting, as in the first pass, I get EIO
if there actually isn't any, and can exit the loop. But now, to avoid
blocking, I call in_chk() to see how much data is waiting, and I don't
try to read anything if it says nothing is waiting. If the process
associated with the pty file descriptor has terminated, in_chk() would
presumably get some kind of error, but it doesn't. I changed do_pty to
return the pid of the fork where it execs its command so we can check
the pid with kill(pid,0) when in_chk() of the pty says 0, but this
doesn't help either; it seems like the process is not exiting, but of
course it is.
I could not find any legitimate way to test when the pty fork
terminated. Select() always says the pty file descriptor was ready, no
matter what. Select() never reports an exception on the pty file
descriptor; in_chk(ptyfd) returns 0 and not an error. read(ptyfd,...)
gets 0 but not an error. fcntl(ptyfd,...) doesn't get an error. Finally
I tried write(ptyfd,c,0) and this indeed gets EIO (i/o error). With
this, using Kermit as the external protocol works fine in Solaris but I
tend to think this trick will not be very portable (it isn't). 24 Dec
2006.
Made ttptycmd() use a more intelligent buffering scheme, fixed a few
things about how I was setting up the select() call that should address
some of yesterday's problems. Still doesn't work but it's progress. A:
25 Dec 2006. ===
Debugging yesterday's code... Still, the error conditions are never
set, we never detect when the pty closes. In Solaris, if select() says
ptyfd is ready to read but in_chk() says there are no characters there,
we can treat this as a loop-exit condition. But in NetBSD, in_chk()
always says 0 when used on a pty (but works OK on a serial or net
connection).
Realized I could not use in_chk() on the pty because there is too much
baggage with the communication path -- myread(), etc etc) -- so I
replaced this with a simple ioctl(ptyfd,FIONREAD,&n). This works fine
in Solaris but always returns 0 in NetBSD, despite what the man page
says (i.e. that this function can be used on any file descriptor).
OK, let's see.... select() does not return useful results. It says
characters are waiting on ptyfd when they are not, and it never detects
the closure of the pty..... Well of course not, because we are the ones
who have to close it. Just because the process has stopped doesn't mean
the pty is closed. So we're back to square one, how do we know when to
close it? ckupty.c seems to keep the process ID in a global variable,
pty_fork_pid (which is not the same as the pid now returned by
do_pty(), which is useless, but I don't understand why). But it doesn't
matter because when we kill(pty_fork_pid,0), we still get no error of
any kind, even after we know the process has exited. I am completely
flummoxed. select() lies, and even if it didn't, there is simply no
completion criterion. In the loop, select() always says that the pty is
ready to read. To be continued. 26 Dec 2006. ===
Back to Square One, single-byte reads and writes.
. This works for both ripple and Kermit.
. Doesn't work for Zmodem but we'll deal with that later.
. In this case FD_ISSET(ptyfd) is still true after pty closes.
But the ensuing read() gets EIO so we know the pty is gone. That means
the same thing should happen in the buffered version, no? Yes; I went
back to the buffered version and replaced all the other nonworking
tests by a blocking read of 1 byte on the pty and this detects the
termination. Now:
. ripple works perfectly (of course it's only one-way).
. Kermit fails
Let's call the remote, forked, redirected, external Kermit A and its
local partner B. A sends its S-packet, B receives it OK and Acks. A
apparently does not receive the ACK in time, so sends the S again, but
OK. followed immediately by the F. B Acks the F. A sends the A, B Acks
it. But now A sends a piece of the previous F packet and the the first
piece of a D packet.
Clearly the buffering is messed up. Sure enough, there was an
extraneous statement incrementing a read pointer in a write section.
Removing that cleared up the problems with Kermit, now we can send and
receive substantial files efficiently in remote mode. Zmodem seems to
work too, except that at the beginning a bunch of "**B0800000000022d"'s
are stuffed into Kermit's command buffer, so after the transfer we get
some error messages.
In local mode, over a Telnet connection, Kermit works fine. Zmodem
works OK too except it doesn't finish right, so at the very end rz on
the far end is still waiting for something; if I cancel out of it with
^X^X^X^X^X, it deletes the file. So there still is something wrong with
the termination test.
Also you don't see anything on your screen when running Kermit or
Zmodem this way. That's to be expected, since they are using stdio for
the transfer, so they can't also be displaying progress or other
messages.
Built this on NetBSD again... Seems to work this time, but has trouble
finishing, like Zmodem. Hmmm, on closer examination, it turns out that
since in_chk() always returns 0 on the ptyfd, we fall into our new
single-byte read code, so it's really slow, like 10K cps on a
connection where 1M is the norm. 27 Dec 2006. ===
Switched the pty from buffer peeking (FIONREAD) and blocking reads to
to nonblocking reads (O_NONBLOCK / O_NDELAY). Works just fine on NetBSD
except now we no longer get EIO at the end when trying to read from the
pty process that has exited. In fact, we're back to square one again.
not ioctl(), not fcntl(), not select(), not even read() gets an i/o
error after the pty process exits. But in NetBSD, we have to use
nonblocking reads because ... Hmmmm, maybe switch the fd between
blocking and nonblocking for the test... Nope, NetBSD seems to be
hopeless (later, Ed Ravin confirmed that similar problems have been
observed with other applications that try to do this).
Switching to Linux, I see that yesterday's Solaris code (blocking
reads) works exactly the same way on Linux.
Tried today's O_NDELAY method on Solaris. It works perfectly. And then
I moved this one to Linux and it works perfectly there too. Except in
both cases we have the weird thing with Zmodem at the end, but I think
that's because rz/sz don't use standard i/o. On NetBSD, it still hangs
at the end.
Turns out that testing the pid works in NetBSD, even though it didn't
in Solaris. Turns out read() gets an i/o error in Solaris and Linux but
not in NetBSD. So checking the read result first, and then checking the
pid if read() got zero bytes catches all three. 28 Dec 2006. ===
Now the question of return code. In the original ttruncmd() function,
we do a fork() and a wait(). When the external protocol program
finishes, wait() gives us its return code and we can pass it on through
\v(pexitstat) as well ttruncmd's own return code. But ttptycmd() has to
interact with the pty continuously, so it can't just sit back and
wait() for it. Instead we have to detect when the process has exited
and then call waitpid() on the fork pid, before shutting down the pty.
Tested on Solaris using Kermit as the external protocol and then
inducing failure, or letting it run to completion. FAILURE and SUCCESS
set appropriately in each case. Tested with Zmodem too, works OK except
for the aforementioned cosmetic glitch at the end. Tested on NetBSD,
all OK.
To make K5 connection to Panix from Spam:
set telnet debug on
authenticate K5 init /realm:PANIX.COM /password:xxxxx
set host shell.panix.com 23 /k5login
Good... Now I try to send a file from Spam to Panix over the K5
connection using Kermit itself as the external protocol. It fails.
Inspection of the debug log on the far side shows that the S-Packet was
received correctly, good! This means we are reading the clear-text
S-Packet from the external Kermit program, and that ttol() is
encrypting appropriately.
The remote Kermit sends the Ack and goes to read the next packet:
ttinl() calls myfillbuf() and:
SVORPOSIX myfillbuf calling read()
SVORPOSIX myfillbuf=0 <-- read returns 0
SVORPOSIX myfillbuf ttcarr=2
SVORPOSIX myfillbuf errno=0 <-- and reports no error
HEXDUMP: mygetbuf read (-3 bytes)
mygetbuf errno=0
ttinl myread failure, n=-3
ttinl myread errno=0
ttinl non-EINTR -3[closing]
This happens because myfillbuf() deliberately returns -3 when read()
gets 0 bytes. I don't understand why this happens but the real problem
is yet to come. The local Kermit (the one that has made the secure
connection and is running the external protocol through ttptycmd())
eventually figures out that the transfer failed and when we reconnect,
we get total garbage -- the encryption either stopped happening, or got
out of sync.
Looking at the local debug log, ttol() is doing its job, converting the
initial "kermit -r\13" from plaintext to cyphertext, as shown by the
hexdumps. Then it enters ttptycmd()... Hmmmm, wait, how can it send the
"kermit -r" before it starts the external protocol? Never mind, worry
about that later... Anyway, ttptycmd() says:
ttptycmd loop top have_pty=1
ttptycmd loop top have_net=1
ttptycmd FD_SET ptyfd in
ttptycmd FD_SET ttyfd in
ttptycmd nfds=5
ttptycmd select=1
ttptycmd FD_ISSET ttyfd in
...
ttptycmd in_chk(ttyfd) n=11
ttptycmd ttxin n=11
ttxin() asks for 11 bytes, myfillbuf() gets 11 bytes, and hexdump()
shows the cyphertext, there doesn't seem to be any decrypting going on.
Hmmm, it looks like the regular code calls ttinc() in a loop, rather
than ttxin(). Maybe ttxin() doesn't have decryption hooks. No, that's
not it, the code is there, but the Kermit packet reader does not use
ttxin(), it uses ttinl(). But of course we can't use that for external
protocols because it's designed only to read Kermit packets.
Substituting a loop of ttinc()s for the ttxin() call fixes things (and
strangely enough, it seems to be faster). And now we have our first
external protocol transfer over a secure connection (external Kermit
program, Linux over Kerberos 5 to NetBSD). Zmodem worked too for a
short file but "something happens" with longer ones. 29 Dec 2006. ===
New makefile target for Linux with Kerberos 5, linux+krb5, that doesn't
include anything extra from SSL or other security methods (but
apparently it is still necessary to include -DOPENSSL_097 in order to
get the right names for the DES routines?). Ditto netbsd+krb5 for
NetBSD, except in this case -DOPENSSL_097 is not necessary. makefile,
30 Dec 2006. ===
Note to myself: On Panix:
export LD_LIBRARY_PATH=/usr/local/kerblib
make netbsd+krb5 "K5LIB=-L/usr/local/kerblib" "K5INC=-I/usr/local/include"
Can't telnet-k5 from newly built Kermit on NetBSD; partway through the
negotiations, just after "TELNET RCVD SB ENCRYPTION SUPPORT DES_CFB64
DES_OFB64 IAC SE" it dumps core. The last two lines in debug.log after
this are:
tn_sb[len]=5
encrypt_support[cnt]=2
Rebuilding with -DOPENSSL_097 doesn't change anything. Ed Ravin said
they have two different Kerberos installations, Heimdal and MIT; maybe
some mixup between the two explains the problem (Jeff concurs). The
core dump occurs in ck_crp: encrypt_support():
debug(F100,"XXX ep not NULL","",0);
type = ep->start ? (*ep->start)(DIR_ENCRYPT, 0) : 0; <-- Here
debug(F101,"XXX new type","",type);
Anyway, I can log in with Kerberos 5 to Panix OK from Columbia (sesame)
using 8.0.201. So let's try to resurrect the Solaris version with
everything:
solaris9g+krb5+krb4+openssl+shadow+pam+zlib
I hunted around to find where the current library and header file
directories were... Last time I tried this (March 2006) it bombed, not
finding libdes. Instead we have /opt/kerberos5125/lib/libdes425.a. Made
a new cu-specific target that includes this; now we get farther; it
blows up in ckcftp.c with tons of errors and warnings, which we can
worry about later. Building again with -DNOFTP, it gets to ckuath.c
(the first security module) and:
ckuath.c:151:18: error: krb5.h: No such file or directory
ckuath.c:152:21: error: profile.h: No such file or directory
ckuath.c:153:21: error: com_err.h: No such file or directory
ckuath.c:176:28: error: kerberosIV/krb.h: No such file or directory
In file included from /opt/openssl-0.9.8d/include/openssl/des.h:101,
from ckuath.c:219:
Found krb5.h in /opt/kerberos5125/include/krb5.h, added a -I for this
directory ... Now we get lots of warnings in ckuath.c, but it completes
OK, then we wind up bombing out in ck_crp.c; I don't know why -- there
are all the same warnings (related to argument passing to DES
functions), but no errors. I have no clue.
Tried to resurrect the solaris2x+krb4 target; this required changing
-lkrb to -lkrb4 and -ldes to -ldes425. Lots of warnings in ckutio.c,
ckcnet.c, ckctel.c, then it bombs out in ckcftp.c because it can't find
krb.h. I found it, adjusted the -I flags, but now it bombs because
krb.h itself #includes <kerberosIV/des.h>, which of course it can't
find because the brackets mean it's looking in
/usr/include/kerberosIV/, which, of course, the sys folks have removed.
Giving up on Solaris again. Later, Jeff said "Solaris does not publicly
export the krb5 libraries. You need to build the MIT Kerberos libraries
separately and link to them." 30 December 2006. ===
Changed copyright date to 2007. ckcmai.c, 1 Jan 2007. ===
With Ed Ravin's help, successfully built C-Kermit with Kerberos 5 and
OpenSSL (netbsd+krb5+openssl+zlib), but it does not make K5
connections; it gets hung up in the Telnet negotiations. 3 Jan 2007.
===
Downloaded MIT Kerberos 5 v1.4.4 to Solaris 9, 54MB worth. This is just
so I can build a Kerberized C-Kermit for testing ttyptycmd(). Ran the
configure program, got a few warnings but it didn't fail (should it?)
Did "make install", specifying a private directory but it failed
immediately with "cannot stat libkrb5support.so.0.0: No such file or
directory". OK, I tried. 3 Jan 2007. ===
Made a new makefile target for Mac OS X, macosx10.4+krb5+ssl, ran it on
Mac OS X 10.4.8. It bombs out in ckcftp.c with: ckcftp.c:551: error:
static declaration of 'gss_mech_krb5' follows non-static declaration
/usr/include/gssapi/gssapi_krb5.h:76: error: previous declaration of
'gss_mech_krb5' was here". Ditto for gss_mech_krb5_old,
gss_nt_krb5_name, and gss_nt_krb5_principal. Tried again with -DNOFTP.
We get lots of warnings in the network modules, but they complete. But
ck_ssl.c bombed with a conflict between its own declarations of
encrypt_output and decrypt_input and the ones in ckuat2.h; removed the
prototypes from the latter (as Jeff advised) it built OK and it works
OK too. Built with FTP too, but with link-time warnings about the
aforementioned gss_* symbols. #ifdef'd them out (gss_mech_krb5,
gss_mech_krb5_old, gss_mech_name, and gss_mech_principal) for MACOSX,
where these symbols are exported by the library. Now it all compiles
and links OK, and runs OK too. 3 Jan 2007. ===
Spent a day hunting around for a version of Zmodem that would build and
execute on Mac OS X, finally found one. Now at last I could try a
Zmodem external-protocol transfer over a secure connection. But phooey,
C-Kermit's pty support didn't work on this box. Kermit finds master
/dev/ptypa OK, then in ptyint_void_association() tries to open /dev/tty
but gets ERRNO=6 "device not configured" (which is apparently OK,
because the same thing happens on other platforms where this works),
then tries to open slave /dev/ttypa and gets ERRNO=13 "permission
denied" because, indeed, I don't have r/w permission on the device.
Left a message. 4 Jan 2007. ===
Changed TRANSMIT /BINARY output buffer size from 252 to 508 to avoid
TCP fragmentation. Need to add a SET command for this later. ckuus4.c,
5 Jan 2007. ===
Found another Mac where the ptys weren't protected against me, make a
K5 connection and transferred a largish file with Zmodem with zero
glitches, except it was kind of slow, 84K cps. Well, we're doing
single-character reads on the net (ttinc()'s instead of ttxin()). Hmmm,
but then I did it again and got 2.2Mcps. Success was reported, but it
actually didn't work; it only sent the first quarter of the file.... Oh
well, at least now we have a testbed. 5 Jan 2007. ===
Tried again, saw that the file is actually transferred instantly but
then we're not picking up the protocol at the end. Theory: after the
transfer finishes, we come back to the prompt on the remote host, which
means we have something to read from the net and write to the pty, but
the pty has already exited. AFTER THE PTY IS GONE, WE DO NOT WANT TO
READ FROM THE NET ANY MORE. Adding this test makes Kermit succeed right
away when sending the same largish file, with a transfer rate of 4M
cps, that's better. But the rz program on the far end is evidently not
receiving the goodbye handshake from the receiver, because it sits
there foreever in its *B09002402009418 mode until I ^X^X^X^X^X out of
it, at which point it deletes the file it already received, not very
helpful. In the code, I read from the pty if the pty is open and there
is room in the buffer. This means that when we get to the end, either
there is no room in the buffer (unlikely) or the last bit sent by sz
before exiting was cut off when the fork closed. Why do we get in this
fix only with Zmodem and not with Kermit?
In Mac OS X, after sz exits, we get ERRNO=5 if we try to write to the
pty, but we still get no errors after that if we try to read from it.
Still, prior to this we did more than 20 unproductive nonblocking reads
from the pty (no error, no bytes) without incident; there did not seem
to be anything waiting. In fact, the last thing we read from the pty
were the text messages that are issued at the end of the transfer: "rz
3.73 1-30-03 finished." After which it pauses a second and spits out a
message about UNREGISTERED COPY.
Figured out how to build lrzsz, in hopes that the previous problems
were with rzsz and crzsz's fiddling with file descriptors, but I get
the same behavior. Which is good, I guess, because if I can fix one, I
fix them all. Or not... Testing lrz by itself (not under C-Kermit), I
see that it doesn't work at all with Kermit's own Zmodem
implementation.
OK, here's one problem: at the end of the transfer, the Omen Zmodems
print stuff like "Please read the license agreement", Kermit dutifully
reads this from the pty and sends it to the host, the host shell says
"Please: command not found", issues its prompt again, which Kermit
reads, feeds to the pty, and apparently the pty echoes it, so we send
it back to the host, and there ensues an infinite loop of getty babble
until the pty closes. Now, there ought to be a way to make the external
protocol shut up, like Kermit's -q(uiet) flag, but these are
unregistered versions so you can't shut up the messages. In fact, the
transfer works, but the getty babble at the end ruins the experience.
Now I'm beginning to wonder how any of these programs ever worked as
external protocols. Hmmm, now that I try it, I see the same thing
happens the old way, when using ttruncmd() rather than ttptycmd().
Reading the crzsz documentation I see it says that messages come out on
stderr. OK, that's progress. In ckupty.c I try redirecting 2 to
/dev/null. Well good, this filters out the messages from csz, but we
still get getty babble on the prompt. In the debug log, we read the
last bunch of stuff from net, 618 bytes of Zmodem stuff... Now what
happens?
Zmodem on the remote exits, the host prints its prompt. Kermit, of
course, reads the prompt from the net, now come to the bottom of the
loop and we have 7 bytes to write to the pty, and no error condition,
so we continue the loop. select() says that the pty is ready for
writing. We write the 7 bytes and and get no error. Loop again, this
time select() says the pty has data waiting. Sure enough we get the
prompt back, and send it to the net, and thus begins the getty babble.
There are two causes for this:
1. crzsz does not exit immediately; it sleeps for 10 seconds after
printing its nag message.
2. During this interval the pty seems to be echoing what is sent to it.
csz is not echoing; I checked. Anyway, removing the pause doesn't
seem to make a difference.
ttptycmd() needs to:
. TELL the pty module to redirect stderr to /dev/null
. SET PTY TO NOECHO (master or slave?)
Tried setting the pty to noecho:
termbuf.c_lflag &= ~(ECHO|ECHOE|ECHOK);
and this seemed to stop the getty babble. After the file transfer, I
read back the prompt from the host shell, I write the prompt bytes to
the pty; there is no error. And now select() simply hangs forever (or
times out if a timeout is set). The question here is: why didn't
writing to the pty produce an error? And, because we never detect the
pty has exited, we can't set a good return code. 5 Jan 2007. ===
Moved pty fork testing to a separate routine, pty_get_status(), and
added a call to it from the place where we time out, in case the fork
terminated; then we can get and return its status. 6 Jan 2007. ===
Added calls to pty_get_status() to every place where we suspect a pty
error, tried again with lrzsz, crzsz, and regular rzsz. All three work,
but in each case waitpid() indicates that the sz program gave exit code
1 (failure). ckutio.c, 7 Jan 2007. ===
Changing the subject... On my test system, every time I execute
ttptycmd(), I get "permission denied" on /dev/ttyp3. Then I run it
again and get to ttyp4 which is OK. I wanted to skip past any pty for
which I lack permission and try the next without raising an error.
Added debugging code:
16:25:23.524 pty_getpty() pty master open error[/dev/ptyp0]=5
16:25:23.524 pty_getpty() pty master open error[/dev/ptyp1]=5
16:25:23.524 pty_getpty() pty master open error[/dev/ptyp2]=5
16:25:23.524 pty_getpty() found pty master[/dev/ptyp3]
16:25:23.524 pty_getpty() slavebuf [2][/dev/ttyp3]
So it already was skipping past open errors; ttyp3 was opened
successfully. The problem is that ptyp3 is rw-rw-rw-, but the
corresponding master, ttyp3, is rw--r----. It seems the code assumes
that if the master can be opened, then so can the corresponding slave.
Unfortunately, the code is not structured to allow us to skip ahead to
the next master if the slave can't be opened. 7 Jan 2007. ===
Spent a couple hours trying to rearrange the code in the pty module to
skip past inaccessible slaves but it was a rabbit hole, not worth it,
backed off. 8 Jan 2008. ===
Tried an upload over a secure connection using lsz. Unexpectedly, this
time it worked; not only was the file (about 0.5MB) transferred
correctly, but Kermit detected the fork's termination and got the pid's
exit status, and, for the first time, correctly reported a successful
transfer. I have no idea why this works today and not yesterday. More
tests; it works most of the time. It works with csz and with regular sz
too. ===
(days later...)
ckucns.c seems to do the right thing; it recognize the ZSTART string,
activates the Zmodem-Receive APC, and returns. doconect() sees the APC
and begins to execute it. The RECEIVE command results in a call to the
GET command parser, doxget() (IS THAT RIGHT?), then comes a ttflui(),
which throws away a bunch of stuff. Finally we get to ttptycmd(), we
get a pty and run lrz in it, select() says stuff is waiting from the
pty, but read returns 0, errno 0. Skipping the ttflui() in doxget() if
the protocol was not Kermit didn't seem to make difference. ckuus6.c, 8
Jan 2007. ===
The problem is that in this case, reads from the pty never get anything
(no data, no error), write always gets an error. It's as if the pty was
not being set up right, or we're using the wrong file descriptor. And
if we skip the autodownload? Same thing.
OK, putting downloads aside for a moment, let's get uploads working as
well as possible. At this point we have the odd situation (at least in
this configuration) that the upload succeeds, but now for some reason
we are unable to read the exit status from the process, even though
this was working before, so ttptycmd() returns 0 (failure), yet Kermit
reports success.
Well, it turns out that kill(pty_fork_pid,0) was gumming up the works.
If we use only waitpid() all is well, I think. waitpid() with WNOHANG
returns -1 with status -1 errno 0 if the pid has not exited, and it
returns the pid and status > -1 if the process has exited. Fixed
pty_get_status() to do it this way. ckutio.c, 7 Jan 2007. ===
Let's move this from Mac OS to NetBSD and see how it works. Well, the
file transfer was just fine, but then I used some sexps to calculate
the elapsed time and transfer rate, and Kermit hung in dosexp(). Fine,
ignoring that... The debug log shows that ttptycmd() gets the pty OK,
master and slave, the i/o goes smoothly, and waitpid() does its job
perfectly. Solaris, same deal; ttruncmd() goes smoothly, but then the
sexps afterward get "Arithmetic exception". Turns out there was a BAD
bug in dosexp() that allowed an integer division by 0 to occur under
certain circumstances; it's always been there. Fixed in dosexp():
ckuus3.c, 8 Jan 2007. ===
After noticing a few problems running the pop.ksc script in production
over the past year, rewrote \femailaddress() to be more reliable and a
lot simpler. ckuus4.c, 9 Jan 2007. ===
Back to ttptycmd()... When we left off, we could send but not receive.
Set up a test case using Kermit as the external protocol for receiving
a short file. If I SET STREAMING OFF and use short packets, it actually
does work, so it's not a complete failure to function, but apparently a
lack of flow control for the pty. Began by completing the
parameterization of the pty module, so it can be called for interactive
use (fc 0) or for running protocols (1). Confirmed that everything
works at least as well as before (e.g. "set host /pty emacs" vs
external protocols). ckcdeb.h, ckutio.c, ckupty.c, 9 Jan 2007. ===
Found in HP-UX "man 7 pty" a description of ioctl(fd,TIOCTTY,fc) which
is exactly what we want: fc 0 turns off all termio processing and
guarantees an uninterrupted, unmolested, flow-controlled stream of
bytes in both directions. This function also exists in Linux, but not
in Solaris, NetBSD, or Mac OS X (TIOCNOTTY is not what we want, it does
something else entirely).
Another possibility is TIOCREMOTE, which "causes input to the
pseudoterminal to be flow controlled and not input edited, regardless
of the terminal mode". This one exists in at least HPUX, NetBSD,
Solaris, and Mac OS X.
Solaris: builds OK, but at runtime we get ENOTTY ("Inappropriate ioctl
for device"). By the time this happens, it's hard to tell from the code
whether the fd we're using is for the master or the slave; TIOCREMOTE
can be used only on the master. Close inspection shows that I am indeed
doing that; ptyfd as seen by ttptycmd() is truly the master, i.e. the
/dev/ptyXX device, not the /dev/ttyXX device (the slave fd can't be
seen at all, as it exists only in a separate fork). OK, so now we know
that TIOCREMOTE can't be used on Solaris.
NetBSD: Somehow, whether as a result of today's fiddling or the phase
of the moon, the code in pty_open_slave() that tries to open /dev/tty
started failing on NetBSD ("Device not configured"). Changing it to be
run only if fc == 0 (which doesn't seem to hurt anything), once again I
get ENOTTY on the TIOCREMOTE ioctl. Zmodem works but Kermit totally
fails (the fork exits immediately with an exit code of 0, even though
it didn't do anything).
Mac OS X: Exactly the same sequence and results as NetBSD.
Linux: It did not execute the new ioctl at all; apparently the TIOC
symbols are hidden or not exported or something.
Where we stand:
. Downloads don't work
. Uploads got slow again
. Kermit doesn't work at all as an external protocol
Actually if I take the debugging out it goes fast, but it doesn't
finish.
All today's work on ttptycmd() looks like a dead end. To roll back to
yesterday:
cp ckutio.c-20070108 ckutio.c
cp ckupty.c-20070108 ckupty.c
cp ckupty.h-20070108 ckupty.h
or to continue with today's:
cp ckutio.c-20070109 ckutio.c
cp ckupty.c-20070109 ckupty.c
cp ckupty.h-20070109 ckupty.h
Comparing Monday's and Tuesday's pty-related code, the differences are:
1. Passing of function code to and among pty modules.
2. Skipping the TIOCSCTTY ioctl and the open("/dev/tty") test.
3. Attempting to put pty in TIOCTTY or TIOCREMOTE mode.
Commenting out 2 and 3 should put us back where we were on Monday if
the parameterization was done right. And with this, on Solaris,
downloading with Kermit external protocol works but slowly, 8K cps,
with or without debugging. Debug log does not show any obvious
bottlenecks; select() takes anywhere between no time at all and 0.1
seconds to return. If I increase the pty-net buffer size from 1K to 4K,
the rate goes up to 55K cps. If I make it 8K I get 136K cps. With 16K I
get 346K cps. 32K: 395K cps -- this last one isn't worth the doubling.
But at 24K I get 490K cps, sometimes twice that. Let's stick with 24K
for now. Downloading with Zmodem (rzsz) works at the same rate, but now
we're back to seeing the getty babble (Several "**B0800000000022d") at
the end. 10 Jan 2007. ===
Moving to Mac OS X, everything works the same as on Solaris, except I
don't get the Zmodem getty babble there, not even with Omen rzsz.
Tested sends in both remote and local mode, the latter over a secure
Kerberos 5 Telnet connection, using C-Kermit, rzsz, lrzsz, and crzsz,
all good. 10 Jan 2007. ===
Now we're back where we were yesterday morning, but with better
throughput. The big issue then was receiving files. But yikes, now it
works! Not only that, I got a transfer rate of 2.1M cps. That's using
Kermit protocol, streaming, and big (4K) packets. Which didn't work
before. Not a fluke either, I uploaded bigger and bigger files up to
6MB, they all went smoothly, at rates between 1 and 2 MBps. 10 Jan
2007. ===
Not so great in Zmodem land, however. If I start the external-protocol
receiver on the far end, escape back and start a Zmodem send...
nothing. If I leave the remote C-Kermit at its prompt (where it
supposed to recognize the Zmodem start string), still nothing. On the
other hand, if I do it with a script instead of by hand:
def xx output take blah\13, send /proto:zmodem \%1
it works, at least intermittently. But that's in remote mode. We won't
be using this in remote mode. In local mode, where we have a secure
connection to another computer, it seems we can read from the pty and
write to the net, but we time out waiting to read from the net; nothing
arrives. Well, we know that i/o works both ways, so there is some kind
of screwup with the Zmodem protocol start itself. Increasing the (still
hardwired timeout) from 5 to 22sec and driving the whole process with a
script so as to avoid autodownload as well as manual dexterity
effects... It just sits there forever, way longer than 22 sec. ^C'ing
out, I see that sz was indeed started on the far end and the protocol
was executing. But it looks like the receiver (the one running under
ttptycmd()) is getting trashed packets, because (a) it seems to be
sending the same thing over and over again, and (b) sometimes it waits
as long as 10 seconds before anything arrives from the remote. Maybe I
was too impatient; I interrupted it after 4 minutes but it seems to
have been making some progress. Whenever there was data available to
read from the net, it was always 65 bytes, and it was not actually the
same data over and over. This is using lrz as the external protocol.
crz gets a bit farther. In this case we read up to 24K at a gulp, but
the amount varies a lot. It looks like we took in about 1.2MB of Zmodem
protocol data, but were only able to output the first 20K of the file.
Clearly there were lots of errors. In the end, the crz exits with
status 1 (failure).
Anyway it looks like we're back at needing to find a way to accomplish
something like TIOCREMOTE on the pty, which is where we came in. 10 Jan
2007. ===
Without any way to make the pty transparent and flow controlled, it
would seem to make sense to write to the pty in smaller chunks than we
do to the net. I left the read-from-pty-write-to-net buffer at 24K and
changed the read-from-net-write-to-pty buffer to 48 bytes.
Upload using lsz worked but took about 3 minutes. Actually it didn't
work. On the local end it seemed to work, but the file did not appear
on the remote end. Tried this several times, each time with different
results, adding more debugging each time. The problem this time was
that the pty read could get EWOULDBLOCK. Changed the code to not treat
this as an error, now Zmodem uploads are solid again except I never got
EWOULDBLOCK again either, even though I repeated the same upload about
1000 times (with throughput of over 2MBps even with debugging on), so
the test for it has not been exercised.
OK, uploads still work. Back to downloading... The very first pty read
gets 0 bytes, followed by the fork test that shows that it exited with
exit status 2.
Next we try starting sz with some different options on the far end:
-q: quiet (no messages):
for some reason this gets totally stuck.
it looks as if this option is misdocumented;
sz seems to be sending the letter C (as in Xmodem 1K or whatever)
-e: escape (all control chars):
first attempt to read pty finds the process gone with exit status 2.
-k: send 1k blocks:
this one didn't stop immediately. It reads 48 bytes from net, writes
48 to the pty with no error. Then reads 21 bytes from the pty, writes
them to the net OK. Then reads 48 bytes from net, writes them to pty OK,
reads 21 from pty, writes to net OK, etc etc... It appears to have
worked but (final read from pty returned 0, fork test showed lrz exited
with status 0), but only 754 bytes were received from the net when the
file is 420K...
Well this only goes to show that the faster we shove stuff into the
pty, the worse it gets. Zmodem downloads won't work unless we can make
the pty transparent and flow-controlled. So to summarize today's
developments:
. separated in/out buffer sizes
. handled EWOULDBLOCK
. found out that sz options don't help much
11 Jan 2007. ===
Next day. This has got to be the most delicate code ever, it's like
Whack-A-Mole, fix A and B pops up. Even without touching it, something
that worked perfectly a 2:00 doesn't work at all at 3:00. Maybe I could
have used pipes instead of ptys, but pipes have problems of their own.
There has to be a way to do this. The telnet server, the SSH server,
etc -- they all run on ptys, and we can upload files to them with
Kermit. Why? Because Kermit puts its terminal into all the right modes
using the time-honored methods of ttpkt() and ttvt(). Perhaps all we
need is a copy of ttpkt() that operates on the pty.
On that theory, let's go back to Kermit as the external protocol. It's
important to suppress all messages and displays. With that, uploads
work fine, no hitches.
Downloads: We fail right away. The debug log shows the Kermit program
that we are starting in the pty says:
"" - Invalid command-line option, type "kermit -h" for help.
But of course we are not giving it an invalid command-line option.
Switching to gkermit for the external protocol, now we see that no
matter command-line options we use, we read 0d 0d 0a from the pty and
then the next time we go to read from the pty we get 0 bytes and
waitpid() says the program has exited with status 1.
Why should downloading be different from uploading? ttptycmd has no
idea, it does everything the same. The only difference would seem to be
which side sends first, but even that tends to get washed out by each
program's startup messages.
Downloading with Kermit worked 2 days ago, what's different now? The
buffer sizes. Putting the net-to-pty back up to 24K (from 48 bytes)...
Now it works again.
Conclusion: Kermit conditions the pty correctly, Zmodem does not.
Therefore ttruncmd() must duplicate what ttpkt() does.
Or not. Because rz works fine on ssh/telnet ptys too. But not on our
pty. lrz exits immediately with status code 2 = 01000 but there are no
clues in the lrz.c source code, I don't even see this exit status set
anywhere. Unredirecting stderr, I see that the error is "lrz: garbage
on command line".
Why do both Kermit and Zmodem sometimes think they are receiving an
invalid command line? If I could capture the garbage...
Side trip #1: ("pty.log",O_WRONLY) gives "no such file or directory".
Changed this to ("pty.log",O_CREAT,0644) and now it doesn't get an
error, and it creates the file, but not with 0644 permissions, and with
nothing written in it. How come nothing works?
Fine, the debug log shows that ttptycmd() receives the correct string
(e.g. "lrz -v"). It passes it to do_pty() correctly, and do_pty()
passes it to exec_cmd(), which runs cksplit() on it, coming up (in this
case) with "lrz" and "-v", which is right, and then:
args = q->a_head + 1;
execvp(args[0],args);
execvp() wants the args array to have a null element at the end.
cksplit() does indeed do that, or at least the code is there. Added
code to exec_cmd() to verify the argument list and that it is
null-terminated. So far it is.
Anyway, we have traffic between the Zmodem partners, but no joy.
Commenting out the bit that redirects stderr, now I can see it on my
screen in real time:
lrz waiting to receive.Retry 0: Bad CRC
Retry 0: Got ERROR
Retry 0: TIMEOUT
Retry 0: TIMEOUT
Retry 0: TIMEOUT
Retry 0: TIMEOUT
etc etc, forever. Trying sz -e on the far end, I get:
Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
...
Retry 0: Got ERROR
Retry 0: Bad CRC
Retry 0: Got ERROR
Retry 0: Got ERROR
lrz: xxufio.c removed.
So apparently it's not a matter of escaping. Trying some other stuff, I
caught the command-line problem in the act:
lrz: garbage on commandline
Try `lrz --help' for more information.
Debug log shows:
cksplit result[lrz]=1
cksplit result[-v]=2
exec_cmd arg[lrz]=0
exec_cmd arg[-v]=1
exec_cmd arg[]=2
An empty string at the end instead of a null pointer. I really do not
see any way that could happen, but rather than dig into cksplit() again
after all these years I added a test for this in exec_cmd(), which, of
course after adding it, never encountered this behavior again.
Fiddled with pty buffer size again. Made it 512 bytes instead of 24K.
Zmodem downloads are the same (Rety 0: TIMEOUT, over and over). But I
don't see what the problem is -- every time we receive n bytes from the
net, we write n bytes successfully to the pty and there are no errors.
But it also looks like the remote sender is sending the file header
over and over because it's not receiving an acknowledgment. If we're
not losing data, then maybe it's a transparency problem.
Tried uncommenting the TIOCblah stuff I commented out before. Now
instead of only timeouts I get:
lrz waiting to receive.Retry 0: Bad CRC
Retry 0: Got ERROR
Retry 0: Bad CRC
Retry 0: Got ERROR
Retry 0: Bad CRC
Retry 0: Got ERROR
Retry 0: TIMEOUT
which is odd because the TIOCREMOTE ioctl failed with errno 14, EFAULT,
bad address, which should indicate it had no effect. We're still
receiving data from the remote in tiny chunks (from 12 to 65 bytes),
apparently the same stuff (file header), and writing them to the pty
successfully but nothing...
Looked at cloning ttpkt() for the pty, but these stupid routines use
global tty mode structs so it's not going to be easy.
Well, we got exactly nowhere today, but I think I'll leave stderr as it
is so users will see some feedback; no reason not to.
WHY DO KERMIT DOWNLOADS WORK AND ZMODEM NOT?
Is it 8-bit transparency? Up til now I've been testing with text files.
If I try to download a binary what happens? Fails after 99 seconds.
Packet log from the far end shows that as soon as the first packet
containing 8-bit data is sent, everything stops. At least I got one of
these:
17:23:56.475 exec_cmd arg[gkermit]=0
17:23:56.475 exec_cmd arg[-qr]=1
17:23:56.475 exec_cmd arg[]=2
17:23:56.475 exec_cmd SUBSTITUTING NULL=2 <-- the code I just added
Doing this again shows the same thing on the near end. All the
7-bit-only packets are sent and acknowledged OK. Three 8-bit data
packets arrive and nothing else happens after that. This is with
G-Kermit.
The same thing happens with C-Kermit receiving. But if I change
C-Kermit's .kermrc to turn off streaming and use a short packet length:
The transfer works, even though it's sending 8-bit bytes. So the
problem is not 8-bit data after all, per se. Facts:
. Kermit can receive streaming transfers of 7-bit files.
. Kermit can not receive streaming transfers of 8-bit files.
. Kermit can receive nonstreaming transfers of 8-bit files with short packets.
. Kermit can receive nonstreaming transfers of 8-bit files with 1K packets.
. Kermit can receive nonstreaming transfers of 8-bit files with 4K packets.
So it's the combination of streaming and 8-bit data? 12 Jan 2007. ====
As a test I made a new routine pty_make_raw() that does cfmakeraw() (a
nonportable "POSIX-like" function known to be used on ptys in
applications that do approximately what we're attempting). Results:
Solaris: errno 25 - inappropriate ioctl for device.
This happens even when we try to get the terminal modes with
tcgetattr(), which is completely nuts. We pass it the file descriptor
of the pty master, which is supposed to work. But in Mac OS X, there
are no errors. But downloads still don't work; lots of errors but the
pattern is different. Using a very small buffer:
Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Bad CRC
Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: TIMEOUT
Retry 0: Got ERROR
Retry 0: TIMEOUT
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Bad CRC
Using a bigger buffer:
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
(several screensful)
Various other combinations... Nothing seems to work.
Insight: telnetd does exactly what we want to do, sort of. But it uses
TIOCPKT, so every time it reads from pty, it receives one control byte
and then the data bytes, which would complicate our buffering scheme
considerably. Anyway the TIOCPKT ioctl() fails on Mac OS X with 14 "Bad
address".
Also see: snoopserver.c (found in Google). It seems to do things in a
slightly different way -- it sets stdout to raw and then dups it to the
slave side of the pty?
Maybe it's a mistake to use the ckupty.c routines. They are designed
for creating and accessing an interactive session. Maybe just copy one
of the other programs. ====
18 Jan 2007. Tried going back to blocking rather than nonblocking reads
to see if it would make a difference, after all the other changes.
Nope. OK, let's look at some of these other programs...
snoopserver.c. I don't know exactly what this is or where it's from or
what platform it runs on and there are no comments to speak of, but it
does approximately what ttptycmd() does. To get a pty it uses
openpty():
if (openpty(&pty, &tty, NULL, NULL, NULL) == -1)
then creates a fork. In the fork, it closes the pty (master) and
manipulates the modes of the tty (slave), dups tty to be stdio, and
then doex execv() on the command. Meanwhile the upper fork closes the
tty (slave), gets the attributes of stdin, using atexit() to have them
automatically restored on exit. Then it sets stdin to raw mode and
enters the select() loop on stdin, the pty master, and the net. It uses
regular blocking reads. It does not use TIOCPKT or anything like it.
openpty() is supported on: Linux, Mac OS X, NetBSD, FreeBSD, ...
openpty() is NOT supported on: Solaris, HP-UX, ...
1. Try copying the pty code, but keep everything else the same.
I did this; it compiles and starts OK, upper fork (ttptycmd) debug log
shows no errors, but nothing happens. Logs show that the Kermit program
that is started in the subfork seems to die as soon as it reaches eof
on its init file. The good news, at least, is that select() doesn't
report report that the pty is ready to be read. Clearly the file
descriptors aren't being assigned as expected, or as before.
In ckupty.c getptyslave() dup2's the slave fd to 0 and 1. The new code
does exactly the same thing. Debug log makes it look like the forked
kermit is not receiving its command line. But now I'm not even sure
that the forked kermit started at all. ps from another terminal doesn't
show it. ====
19 Jan 2007: Noticed that in snoopserver, the select() calls use
standard input and output file descriptors, rather than the pty master.
Made that change... In doing that I had to look at every file
descriptor in every line of code and discovered a couple mistakes,
fixed them, put back the original code but with the fixes, tried it,
but no change; can upload OK but still can't download with Zmodem
without lots of errors and ultimate failure. Going back to the
alternative version and trying to get the the file descriptors sorted
out, now it appears that the external Kermit program never even starts
in the lower fork. After a bit more fiddling I sort that out, but now
when the lower Kermit program goes to open "/dev/tty" it gets errno 6
"Device not configured". Forcing it to use stdio with "-l 0", it gets
past this and actually sends its first packet. But the Kermit on top
reads nothing from the pty.
Next, I change the pty fd from STDIN_FILENO and STDOUT_FILENO to
slavefd. No difference. Next I comment out the dup2() calls. This time
I get some action. The transfer starts, but only one packet comes. Log
shows that the lower Kermit sends its S packet. The upper Kermit
receives the ACK but the lower Kermit never gets it. The write to the
pty succeeds, no error. Different combinations give different results.
If write to master and read from the slave, I get packets in both
directions but tons of errors.... This happens only if I comment out
the dup2()'s.
25 Jan 2007: After leaving it sit for a while, and realizing that what
I'm trying to do has to be possible because so much other software does
the same thing (e.g. Telnet servers), I put things back to how they
were originally -- the upper fork (Kermit) uses the master and the
lower fork the slave. The upper fork puts the master in raw mode, the
lower fork puts the slave in raw mode. The lower fork dup2's the slave
fd to stdin/out. Send file in remote mode using external Kermit: works
OK but select() times out at the end. This means that the
self-contained pty code in ttptycmd() is sorted out -- all the file
descriptors go to the right place, etc, and now we can use this routine
as a testbed, rather than the original ckupty.c-based one.
But send with lsz, csz, and regular rz: Nothing happens, times out
after 0 bytes of i/o. Once again, Kermit works, Zmodem doesn't. The
reason for running Zmodem in a pty is so its i/o will work as it does
on a terminal, no matter how it may fiddle the file descriptors. So why
don't we see a single byte come out?
Commenting out pty_make_raw(), I get a successful Zmodem send using
lsz. csz manages to get the filename across, but then gets stuck.
regular sz, on the other hand, works perfectly. Testing csz by itself
(not under Kermit), I see it fails in exactly the same way ("Got phony
ZEOF", etc). OK, forget crzsz.
OK, let's move to local mode over a Kerberized Telnet connection...
Uploading (sending) with external Kermit protocol... works. Downloading
(receiving) with external Kermit protocol... works. Uploading with
sz... works. Downloading with lrz... Gets tons of errors and fails.
Running pty_make_raw() on the slave but not on the master: no
difference. Running pty_make_raw() on the master but not on the slave:
no difference.
Back where we started... Either:
. Zmodem is overdriving the pty, no matter what modes we put it in.
. It's a transparency problem.
Theoretically we should be able to test these by using different sz
switches:
-q: quiet (should always use this)
-e: escape all control characters
-B n: Buffer n bytes (rather than whole file)
-L n: Packet length
-l n: Frame length (>= packet length)
-w n: Window size
-4: 4K blocksize (doesn't help)
-q by itself doesn't help. -q -e, this one worked but still got about
100 errors and was very slow. -q -e -l 200 -L 100, failed fast and bad.
-q -e -w 1. Failed quickly. -q -e -w 1 -B 100. Eventually failed. -q -w
1, Eventually failed. -q -l 1024, this gets much more errors,
definitely need -e. -q -e -l 1024, got pretty far before failing. -q -e
-w 1 -l 1024, also got pretty far before failing. -q -e, this one got
farthest of all, about 48K, before getting errors.
In the latter combinations that work somewhat better, we always get up
to 16K, or 32K, or 48K, before the errors start coming out and piling
up. Sometimes the errors are recoverable and we receive as much as 300K
successfully before giving up.
Now that we have data flowing pretty well (but not well enough), tried
reinstating pty_make_raw(), but it hurt more than helped.
As a sanity check, I tried transferring from the same host over the
same kind of connection (Kerberized Telnet) directly to K95's built-in
Zmodem protocol, and that worked fine. So the problem is definitely in
the pty. Or more precisely, where Kermit writes incoming net data to
the pty master. ====
26 Jan 2007: Tried changing the size of the net-to-pty buffer from 24K
to 1K. Result: total failure. Set both buffers to 1K. Still total
failure. Set both to 4K: now we get about 45K of data, then failure.
Put them both back to 24K, still fails totally -- the same code that
worked pretty well yesterday. Actually, no downloads work, not even
Kermit, not even of text files. ====
27 Jan 2007: Since I have not been able to find a way to make ptys work
for this, I made a third copy of this routine, this time using pipes
instead of ptys. The disadvantage here is that if the external protocol
does not use stdio, the pipes won't work, but one thing a time...
Inferior Kermit starts in lower fork, but when it tries to send its
first packet it gets errno=9 EBADF, Bad File Descriptor. Substituting
G-Kermit as the external protocol, which is simpler, reveals that the
problem is that the external protocol gets errors when it tries to
manipulate the its stdio file descriptors with ioctls, etc; these are
not valid for a pipe. The pipe mechanism itself works. If I take out
the test for ttpkt() failing in gkermit, the file transfer works OK.
Trying Zmodem... Sending works OK; receiving works a lot better than
with ptys (it got 360K into the file before failing). Making the
buffers smaller, doesn't help.
I'm starting to wonder if the problem might be in my buffering code,
rather than in the pty or pipe interface... Try making a version that
does single-character reads and writes.
This one reads the first packet from the lower Kermit and sends it. It
is recognized by the other Kermit, which sends an ACK. We see the ^A of
the ACK, but then select() times out on the next character -- OF
COURSE: because at a lower level, it has already been read. We have to
check the myread buffer, and then call select() only if it's empty.
Making this change:
. SEND with G-Kermit works (but very slowly).
. SEND with lsz works but gets a lot of errors, eventually succeeds.
Let's work our way back... With the same changes to the buffered pipe
version:
. SEND with G-Kermit/streaming works (fast).
. SEND with lsz works too (fast), but we get gubbish at the end.
. RECEIVE with Kermit fails because "/dev/tty is not a terminal device".
. RECEIVE with rsz... lots of errors ("garbage count exceeded") but succeeded.
But maybe now we're seeing pipe artifacts, so going back one more step
to the version that gets its own pty and starts its own fork:
. SEND with G-Kermit/Streaming works (fast) but select() times out at the end.
Another breakthrough: Moved the write pieces to below the read pieces.
This is what was preventing the buffer reset code from working -- with
the writes done before the reads, we never catch up and can never reset
the buffers.
. SEND with G-Kermit/streaming works (fast) (but there's a pause at the end)
. SEND with lsz works (fast) (but there's a pause at the end)
. RECEIVE with rsz... lots of errors ("garbage count exceeded") and fails.
. RECEIVE with Kermit -- nothing happens (it thinks it succeeded), then we
reconnect, terminal sees S packet and goes into autodownload
From the log it looks like ttpkt() fails in the lower Kermit. Switching
this with the hacked G-Kermit... it gets "transmission error on
reliable link". Tried again with real Kermit below, this time with "-l
0" and not streaming. This was actually working, but slowly, I don't
see any NAKs in the packet log, but then select() timed out.
28 Jan 2007: Restored both the calls to pty_make_raw():
. SEND with C-Kermit streaming works, but slow (54Kcps)
. Ditto, but with debugging off -- hangs forever.
. Ditto, but using G-Kermit instead of C-Kermit -- also hangs forever.
Backed off on calling pty_make_raw(). Same thing. Reduced size of
net-to-pty buffer. Same thing.
==== 15 Feb 2007... Decided to give up on this and publish it as is, in
hopes that somebody with more experience with ptys can make it work,
because I'm just going in circles. So today I just have to get the code
into shape so people could choose among the three alternative routines.
The second one, yttyptycmd(), is the one that uses openpty(), which is
not portable, so it can be enabled only for Mac OS X, NetBSD, FreeBSD,
and Linux, or by also defining HAVE_OPENPTY at compile time. Anyway, if
you build Kermit in the normal way, you get the regular behavior --
ttruncmd() is used to execute external protocols. If you build it with
-DXTTPTYCMD, you get the first version of ttptycmd(); with -DYTTPTYCMD
the second, and with -DZTTPTYCMD the third.
(Then some interruptions, then...)
From Jeff, fix hostname comparison in X.509 certificate checking to
work right in the case of names that contain no periods. dNSName_cmp():
cl_ssl.c, 21 Feb 2007. ====
John Dunlap noticed some strange behavior when transferring files
between home base and the EM-APEX oceanographic floats via satellite...
long story, but every so often the transfer would get stuck for a long
time, and it happened only when C-Kermit was sending a file and
received two or more packets (Ack or Nak) back to back from the float.
Years ago I added some lookahead code to ttinl() to clear the input
buffer of any interpacket junk so that, in the windowing case, we
wouldn't be tricked next time around into thinking a packet was waiting
to be read when there wasn't. The code, which has been there for a
while, was a bit fractured; luckily, it would be executed only when the
debug log was active so it didn't have much effect. The problem was
that if the SOP came immediately after the EOP, it could be missed
because the loop read the next character before checking the current
one. Fixed by rearranging the loop. Also I changed it so it would
execute in all cases, not only when the debug log was active. Also,
cleaned up a bunch of confusing #ifdefs and removed some chunks that
had been commented out for years, decades maybe. ttinl(): ckutio.c,
21-22 Feb 2007. ====
Added NOW keyword info to HELP DATE, plus a tip about how to convert to
UTC; suggested by Arthur Marsh. ckuus2.c, 22 Feb 2007. ====
When an FTP client sends NLST to the server and no matching files are
found, the server is supposed to respond with an error message on the
control channel and nothing on the data channel. However it seems that
at least one server sends the error message back on the data channel,
as if it were a filename ("/bin/ls: blah: No such file or directory"),
and on the control channel there is no error indication ("226 ASCII
Transfer complete"). At this point remote_files() has a listfile and,
if a match pattern was given, it looks through list to see if any of
the lines match the given filename, e.g. "blah". This makes FTP CHECK
give false positives. The problem (diagnosed by Jeff) is that the match
pattern was not given in this case, so it takes some random default
action, resulting in the spurious success return. Fixed by using the
user's string as the pattern. Not tested, however, since I don't have
access to a server that behaves this way. ckcftp.c, 22 Feb 2007. ====
If an external-protocol file transfer fails, don't print
Kermit-specific hints. ckuus5.c, 22 Feb 2007. ====
One more time with ttinl(). Got rid of the "csave" junk, which never
could have worked (which is no doubt why it was in a debugging
section). The problem was that saving the beginning of the next packet
locally did not synchronize with the buffer clearing (ttflui()) done at
a higher level, between calls to ttinl(). So now, the lookahead code,
if it finds the beginning an as-yet unread packet, puts it back at the
head of the input queue. This way, if the protocol engine clears the
input buffer, it will get the whole packet, not just the part after the
SOH. ckutio.c, 24 Feb 2007. ====
From Steven M Schweda, Saint Paul, MN: adaptation of large file support
to VMS (it was already possible to transfer large files in VMS C-Kermit
but the file-transfer display and statistics were wrong). And a minimal
adaptation of the FTP client to VMS -- no RMS, no special VMS file
stuff, Stream_LF and binary files only, developed and tested only with
UCX. SSL/TLS is supported. The source-code changes are minimal; most
have nothing to do with VMS, but with header files, prototypes, and
data types (e.g. ftp_port int rather than short, various
signed/unsigned conflicts) to shut up compiler warnings. Some of these
could be dangerous in terms of portability; I've marked them with /*
SMS 2007/02/15 */. ckcfns.c, ckcnet.h, ck_ssl.h, ckuus3.c, ckuus4.c,
ckvfio.c, ckcftp.c, ckvker.mms (which was rewritten to actually reflect
the source module dependencies), ckvker.com (also heavily modified).
ckvker.com (the "makefile" for VMS C-Kermit) now includes "F" and "I"
option flags for the large File and Internal ftp features, plus better
handling of Vax/Alpha/IA64 distinction. 26 Feb 2007. ====
Changed NetBSD targets to include -DHAVE_OPENPTY and -lutil, so they
can use openpty(). makefile, 26 Feb 2007. ====
Built on Solaris without and with SSL OK. Built on NetBSD with Kerberos
5, OK. Built on Mac OS X 10.4, regular version, OK. Built on Mac OS X
10.4 with SSL and Kerberos 5, OK.
On VMS 7.2-1/Alpha with MultiNet 4.4A-X...
'CC' 'CCOPT' KSP:ckuus3 %DCL-W-TKNOVF, command element is too long -
shorten
\CKUUS4.OBJ "'CC' 'CCOPT' KSP:ckuus4" "KSP:ckuus4.c KSP:ckcsym.h KSP:ckcdeb.h
KSP:ckclib.h" "KSP:ckcasc.h KSP:ckcker.h KSP:ckcnet.h KSP:ckvioc.h"
"KSP:ckctel.h KSP:ckuusr.h KSP:ckucmd.h KSP:ckuver.h" "KSP:ckcxla.h
KSP:ckuxla.h KSP:ckcuni.h KSP:ckuath.h"
The new rule for ckuus4.c was too long. I removed one file from the
dependency list (ckcxla.h, which will probably never change again) and
that made it OK. Built Nonet and Net versions OK, but this is without
the new stuff.
"make f" (large-file support) on VMS 7.2-1... 'CC' 'CCOPT' KSP:ckuus4
if (CKFSEEK(fp,(CK_OFF_T)j,SEEK_CUR) != 0) {
........................^ %CC-I-IMPLICITFUNC, In this statement, the
identifier "fseeko" is implicitly declared as a function.
Ditto for ftello and fseeko in various other places, and then fseeko
and ftello come up up undefined at link time.
The rule for ckcftp in "make i" (Internal FTP support) had the same
problem. I removed ckcxla.h from its dependency list too, but "utime"
comes up undeclared at compile time and undefined at link time.
Verdict: neither one of the two new features can be used in VMS 7.2 or
earlier, but the code still builds OK if you don't ask for them.
VMS 8.3 on IA64... Can't build anything: %MMS-F-BADTARG, Specified
target (WERMIT) does not exist in description file
27 Feb 2007: Changed CKVKER.COM to keep all its dependencies but use a
shorter logical name (Steven M Schweda). The problem on VMS 8.3 is that
MMS now supports case-sensitive file systems, and so it can't find
anything. Workaround: bypass MMS (include "m" in P1). With this,
"@ckvker.com ifm" builds OK on HP Testdrive, but I can't test the new
features since outbound connections are not allowed there. As for
fseeko(), ftello(), and utime(), they simply are not available prior to
VMS 7.3. It would probably be a good idea to test for this in
CKVKER.COM, but actually it is possible to install newer C's and CRTLs
on older VMS versions, so don't stand in their way.
28 Feb 2007: With additional changes from SMS, and then some further
adjustments, I was able to build the FTP version on VMS 7.2-1. First I
tested it with GET of a binary file, but it transferred it in text
mode. After a few more attempts with PUT and GET, it crashed with
"floating/decimal divide by zero" in ckscreen, ckuusx.c line 27859. Of
course, that's the listing line, not the source line, and I don't have
a listing.
To get a listing, I deleted CKUUSX.OBJ and then did:
$ make i "" "" "/LIST"
Surprisingly, it recompiled everything.
Anyway, the divide by zero happened in a section of code where the
divisor was not checked, but it was a section of code we should not
have been executing at all, since the file-transfer display was
fullscreen, and this was in the "brief" section. Anyway, I added the
needed check. Again, it recompiles everything. Maybe there's no MMS on
grumpy -- right, there isn't.
ANYWAY... Try to GET a binary file like this:
binary
---> TYPE I
200 Type set to I.
get gkermit
---> TYPE A
200 Type set to A.
---> SIZE gkermit
550 gkermit: file too large for SIZE.
GET gkermit (text) (-1 bytes)---> TYPE A
Anyway... "get /binary gkermit" downloads it, seemingly correctly (the
byte count is right).
But "put /binary gkermit.;1" results in a 0-length GKERMIT file being
sent. Here's the debug log:
FTP PUT gnfile[DISK$MSA4:[C.FDC.NET]gkermit.;1]=1 ftp putfile
flg[DISK$MSA4:[C.FDC.NET]gkermit.;1]=0 zltor
fncnv[DISK$MSA4:[C.FDC.NET]gkermit.;1]=-1 FTP PUT nzltor[GKERMIT]
zfnqfp 1[DISK$MSA4:[C.FDC.NET]gkermit.;1]=675 zfnqfp
2[DISK$MSA4:[C.FDC.NET]GKERMIT.;1]=31 zfnqfp
3[DISK$MSA4:[C.FDC.NET]GKERMIT.;1]=31 zrelnam result 2[gkermit.;1] ftp
sendrequest restart[DISK$MSA4:[C.FDC.NET]gkermit.;1]=0 openi
name[DISK$MSA4:[C.FDC.NET]gkermit.;1] openi sndsrc=-1 openi file
number=2 zopeni[DISK$MSA4:[C.FDC.NET]gkermit.;1]=2 zopeni fp=0 chkfn=2
chkfn return=0 zopeni fixed file format - using blk I/O zopeni binary
flag at open=1 zopeni ifile_bmode=1 zopeni binary=1 zopeni RMS
operations completed ok openi zopeni
1[DISK$MSA4:[C.FDC.NET]gkermit.;1]=1 ftpcmd cmd[PASV] FTP SENT [PASV]
FTP RCVD [227 Entering Passive Mode (166,84,1,2,233,216)] initconn
connect ok FTP SENT [STOR GKERMIT] FTP RCVD [150 Opening BINARY mode
data connection for 'GKERMIT'.] doftpsend2 ftpcode[STOR]=150
Here is where the file is supposed to be read and sent but there is nothing
in the log between the "doftpsend2 ftpcode" line and the following line.
rftimer status=1 gftimer status 1=1 gftimer status 2=1409025 gftimer
status 3=1409025 gftimer s[0.000000] zclose n=2 chkfn=2 chkfn return=1
zclose ZIFILE RMS operations completed ok ftp getreply lcs=0 ftp
getreply rcs=-1 ftp getreply fc=0 FTP RCVD [226 Transfer complete.] ftp
getreply[226 Transfer complete.]=2 doftpsend2 ok=0
Everything is OK up until we go to send the file, then it behaves as if
we got EOF immediately and so closes the data connection, and reports
success; an empty copy of the file is left on the far end.
Starting over with a text file.... PUT LOGIN.COM gets another divide by
zero. But it happened in the code I just fixed, which is impossible.
Swell. I recompiled everything and this time the upload worked, and
downloading it again worked too.
But a binary file still can't be uploaded. Trying to upload a text file
after doing this seems to succeed (reports the right number of bytes
sent) but nothing appears on the far side.
SUMMARY:
To download a text file: GET /ASCII blah.txt (/ASCII is optional)
To download a binary file: GET /BINARY blah.bin (/BINARY is required)
To upload a text file: PUT blah.txt (/ASCII switch not needed)
To upload a binary file: PUT /BINARY blah.bin (doesn't work)
Problems:
. Why doesn't BINARY "stick"?
. Why don't binary uploads work?
The culprit seems to be the VMS version of zxin(). In the FTP module,
zxin() is called only when sending binary files. In VMS, zxin() is just
a front end for C-Library fread(). It probably needs to do just do
zminchar() in a loop, like binary mode does, but calling zzout instead
of xxout. Or something like that. FINISH THIS TOMORROW (debug on
grumpy). ====
2 Mar 2007: New logs from John Dunlap.
ema-1636-log-0175.dbg: C-Kermit uploads a short file. It receives an
Ack for the Z packet it just sent, tailgated by the beginning of a Nak
for the next packet. When the second SOH is encountered, it is put back
in the myread queue. Then the protocol engine, to which we return the
Ack, says, "I have the packet I wanted so I'm clearing the buffer", and
away go the first two bytes of the Nak from the myread buffer. Then,
having just received the Ack of our Z packet, we send our B, and go to
read the reply. in_chk finds 0 in the myread buffer (which we just
cleared) and 6 waiting to be read from the comms channel, which it
does, obtaining the remaining 6 bytes of the Nak, which it properly
discards. (The reason this is proper is that, having already received
the Ack for the last packet it sent, no Ack or Nak that arrives
subsequently -- in the non-windowing case -- could possibly affect what
it does next.) Since it hasn't yet found a good packet, it keeps
reading, and now it finds the Ack to the B, as soon as it showed up.
This is how it's supposed to work. No time was lost because of anything
that C-Kermit did.
ema-1636-log-0174.dbg: C-Kermit uploads a short file. It sends Data
packet #3 and receives the Ack followed immediately by the first 3
bytes of a Nak for packet 4. When it gets to the SOH of the second
packet, it pushes it back in the queue. Again, input() flushes the
input buffer (myread queue and device buffer). C-Kermit detects EOF on
the file it is sending, and sends the Z packet. Then it reads the
remaining bytes of the Nak, which it discards, and then it finds the
Ack for Z which comes in 23 seconds later, sends the B, gets a Nak for
the B, sends the B again, gets the Ack for the B 4 seconds later, and
done. Again, it's working right and losing no time.
The question remains: what would happen if the protocol engine did not
clear the buffer? Would ttinl() retrieve all packets in sequence even
when they come back to back? To test this, I had C-Kermit send a file
using 30 window slots and observed the stream of Acks in the reverse
direction:
HEXDUMP: mygetbuf read (16 bytes)
01 25 23 59 2f 52 39 0d | 01 25 24 59 2b 26 31 0d .%#Y/R9. .%$Y+&1.
ttinl lookahead my_count=9
ttinl lookahead removed=^M
ttinl lookahead pushback SOP=^A
HEXDUMP: ttinl got (7 bytes)
01 25 23 59 2f 52 39 | .%#Y/R9
RECEIVE BUFFERS:
buffer inuse address length data type seq flag retries
0 1 29212 9667 0 Y 3 0
[^A%#Y]
...
in_chk my_count=8
...
ttinl lookahead my_count=1
ttinl lookahead removed=^M
HEXDUMP: ttinl got (7 bytes)
01 25 24 59 2b 26 31 | .%$Y+&1
RECEIVE BUFFERS:
buffer inuse address length data type seq flag retries
0 1 29212 9667 0 Y 4 0
[^A%$Y]
Here we can see that the pushed-back SOH was properly retrieved next
time around, and the tailgating Ack was not lost. This scenario repeats
itself 212 times in the log, and there are no screwups.
Back to VMS FTP... The problem with sending binary files is that zxin()
uses C-Library fopen()/fread() instead of RMS, so it can't access the
input file, which was opened by zopeni(), which is totally RMS-ified in
VMS C-Kermit. For VMS only, I replaced the zxin() loop by a zminchar()
loop like the one used in text mode, except without the character set
or record-format conversion. Tested by PUT /BINARY of some binary
files, which worked fine. ckcftp.c, 2 Mar 2007. ====
Next problem... VMS C-Kermit ftp client sending binary files in text
mode. Variation 1: We just send the file. zopeni() is supposed to
detect that it's a binary file and automatically set the mode. And it
does:
zopeni fixed file format - using blk I/O
zopeni binary flag at open=0
zopeni ifile_bmode=1
zopeni binary=0
zopeni autoswitch from TEXT to BINARY
zopeni RMS operations completed ok
but then in gnfile():
if (!server || (server && ((whatru & WMI_FLAG) == 0)))
binary = gnf_binary; /* Restore prevailing transfer mode */
Well, since VMS sets text/binary mode automatically when sending files,
this code can (and should) be skipped in VMS. gnfile(): ckcfns.c, 2 Mar
2007.
Variation 2: BINARY or SET FILE TYPE BINARY doesn't force binary mode.
But SET FTP TYPE BINARY does. But BINARY does indeed call doftptyp() so
what's the problem? We do indeed set ftp_typ to 1 but it gets reset
somewhere before we call zopeni(). But then zopeni() puts it back to 1.
Tracing through a transfer, it looks like all of this works right, it's
only that the file transfer display says TEXT when the transfer is
really in binary mode. This is because screen() is called before
openi(). I wonder if we can call scrft() from the ftp module... No,
that would be too easy. OK, sendrequest calls openi() and sets the file
mode; putfile() calls screen(SCR_FN), which prints the transfer mode.
But putfile calls sendrequest() after it puts up the screen that says
the file type. So it looks like sendrequest() has to call
screen(SCR_FN) again if it changes the file type. OK, that did it.
ckuusx.c, ckcftp.c, 2 Mar 2007.
The BINARY and TEXT (ASCII) commands do not inhibit automatic type
switching in VMS. They don't in Unix either. They never have. Should
they? I think so, otherwise what good are they? Plus we want the Kermit
FTP client to behave like the others. I added code for this but it
doesn't work, due to the layers and layers of text/binary detection and
switching and if-this-but-then-if-that... Anyway, no harm done. The
normal rule is: when you PUT a file, Kermit figures out on a per-file
basis whether to use text or binary mode unless you include a /TEXT
(/ASCII) or /BINARY switch in the PUT (or MPUT) command. ckuus[r3].c,
ckcftp.c, 2 Mar 2007. ====
Wed Mar 7 16:21:13 2007 WROTE SHORT TEST PROGRAM for ttruncmd (the
openpty version) on Mac OS X. On dulce: ~/kermit/ttpty.c / ttpty.sh. It
starts the external protocol in the lower fork. The command to run is a
command-line argument. Sending and receiving files with Kermit works
OK. But again, the standalone program totally fails when I use sz or
lsz as the external protocol. So it looks like we can rule out any
environmental effects of running the code inside C-Kermit. ====
Mon Mar 12 16:52:20 2007: Put some effort into making ttpty.c more
useful; added a debug log. Found that for some reason, at least on Mac
OS X, select() always timed out at the the end. I added a SIGCHLD alarm
and that seems to handle the fork exit condition very nicely. Now we
can send (say) a 3MB file at good speed on Ethernet (1Mcps) considering
the debugging, etc, and it terminates instantly. But when sending a
file into ttptycmd (with "gkermit -r"), things go wrong at the end --
the Z packet is never acknowledged. This is reproducible. Maybe this is
a good lead.... The log shows that select() timed out, even though the
gkermit fork had not yet exited (or finished). It looks like gkermit
sent the Ack, ttpty.c read it from the pty and sent it out the net:
0003: read pty=8 <-- read Ack from pty
0003: loop top have_pty=1
0003: loop top have_net=1
0003: FD_SET pty_in
0003: FD_SET ttyfd in
0003: FD_SET ttyfd out=8
0003: nfds=5
0003: select=1
0003: FD_ISSET ttyfd out
0003: write net=8 <-- send ack to net
0003: loop top have_pty=1
0003: loop top have_net=1
0003: FD_SET pty_in
0003: FD_SET ttyfd in
0003: nfds=5
0009: select=0
0009: select timeout - have_pty=1
But Ack never arrived. This is a streaming transfer. But nope,
streaming is not the problem. If I disable streaming ("gkermit -Sr"),
we hang in in the middle of sending the data. If I use small packets,
we don't hang: 1000 is OK, 2000 is not. In fact, the cutoff is 1024.
OK, TBC... ====
Wed 14 Mar 2007: Receiving a file thru ttpty "gkermit -e 1200 -Srd"
produces a debug log that shows that gkermit gets a lot of EAGAIN
errors when it tries to read from its stdin. In fact, it takes 6 tries
(read() calls) to read the S packet (27 bytes). Then when the first
data packet arrives (1200 bytes), read() never returns even one single
byte. The timeout interval is 15 seconds and it times out repeatedly.
Added a primitive hex dump to the ttpty debug log for each read/write
(showing only the first 24 characters and the last character, so it
fits on one line). Tried uploading a file. The S, F, and A packets
(short) are received and Ack'd OK, but then ttpty select() times out,
never receiving even one byte from the D packet. Clearly, when the pty
driver receives a burst of > 1K bytes, stops working. As before, if I
limit the packets to < 1K, it works fine.
Can I send an 8-bit binary file? Nope. ttpty reads the binary data just
fine from the net and writes it exactly as it was received to the pty,
but the first time we write an 8-bit byte, we never hear back from the
PTY again. But the log shows that when the initial 7-bit packets from
the pty, it looks like the PTY is not in rawmode, because these packets
end with ^J rather than ^M. Calling pty_make_raw() on the masterfd and
slavefd explicitly, however, doesn't change anything. It doesn't matter
if I do this in the lower fork or the upper fork. So maybe it's the
actual semantics of pty_make_raw() that are wrong.
Thu 15 Mar 2007: Went thru all the terminal mode flags in Mac OS X;
didn't help. Changed hex dump to show whole packet. Put hex dump
routine in a private copy of G-Kermit. Tried to transfer an 8-bit file,
logging both ttpty and gkermit. Compared what ttpty received on stdin
with what it sent to the pty (same) and what was received by G-Kermit
(same). Then I realized that my little test program was not putting its
controlling terminal into raw mode; when I did that, I could upload
binary files (streaming, 2MB/sec). And with Zmodem too (with rz; lrz
doesn't work for some reason). Looking back at the original in
ckutio.c, I see that ttptycmd() never called ttpkt(). Maybe that was
the trouble all along. (Yup, but maybe not the whole trouble.)
Moving back to C-Kermit and the original ttptycmd() routine, adding the
call to ttpkt(), and stripping out a lot of cruft, and moving the
pty_make_raw() code to ckupty.c, Kermit uploads and downloads
(streaming) work fine in Solaris. Zmodem sends a file, but then the
transfer hangs at the very end, as if the signoff protocol were lost.
This happens on Solaris. If I move back to Mac OS X, everything works
just fine. Then, making a Kerberized connection from the Mac to NetBSD,
I can send files from the Mac with both Zmodem and Kermit. Receiving...
Kermit OK. Zmodem... Nope. "rz: Persistent CRC or other ERROR" (and
created a 265MB debug.log!) ====
Fri 16 Mar 2007: ttptycmd() was for sending files with Zmodem across
encrypted connections. But it occurred to me that it's necessary for
clear-text connections too; e.g. Telnet, where 0xff has to be doubled.
Of course Zmodem doesn't do that itself, so there's no way Zmodem
external protocol could work when executed over a Telnet connection,
and in fact it doesn't. I wonder why I ever thought it did. ====
Wed 21 Mar 2007: Back to where we left off a week ago. Trying
C-Kermit's ttptycmd() on the Mac again, in remote mode:
. G-Kermit send txt (kst): OK 832Kcps
. G-Kermit recv txt (kr): OK 425Kcps
. G-Kermit send bin (ksb): OK 1000Kcps
. G-Kermit recv bin (kr): OK 188Kcps
And Zmodem:
. sz txt (zst): OK 563Kcps
. sz bin (zsb): OK 714Kcps
. rz txt (zr): OK 863Kcps
. rz bin (zr): OK 198Kcps
So in remote mode, everything works. Now let's try a clear-text Telnet
connection...
. G-Kermit send txt (kst): OK 841Kcps
. G-Kermit recv txt (krt): OK 391Kcps
. G-Kermit send bin (ksb): OK 811Kcps
. G-Kermit recv bin (krb): OK 171Kcps
And Zmodem over the same clear-text telnet connection:
. sz txt (zst): OK 91Kcps (*)
Kermit is sending sz messages like "sz 3.73 1-30-03 finished." to the
host, which tries to execute them, after the transfer is finished. Of
course "sz" is a command, but:
sz: cannot open 3.73: No such file or directory
sz: cannot open 1-30-03: No such file or directory
sz: cannot open finished.: No such file or directory
Did I lose that code that dis-redirects stderr when I went back to
using the pty code from the ckupty module? No, it's there and it's
being executed. Apparently the copy of sz I have is writing its
"finished" message to stdout because "sz blah 2> /dev/null" does not
suppress it. Starting again with lsz instead of sz:
. sz txt (lzst): OK 413Kcps
. sz bin (lzsb): OK FAILED (*)
. rz txt (lzrt): OK
. rz bin (lzrb): OK
(*) Sigh. Using lsz, we get "garbage count exceeded" errors and
eventual failure. But using regular sz, we get the extraneous message
that starts sz on the far tend, and the resulting getty babble.
But even without changing the code, it will work one minute, and then
fail consistently the next. For example, I was able to send files with
sz successfully over and over, but with the getty babble at the end.
Then, after trying lsz and then going back to sz, every attempt at
sending a file quits with "Got ZCAN". The difference has to be that
Kermit always does at least some minimal encoding of C0/C1 control
characters such NUL and DEL and IAC, and I doubt that Zmodem does.
[7]http://zssh.sourceforge.net/ says:
If file transfer is initiated but never completes (ie a line like :
Bytes Sent: 0/ 513 BPS:0 ETA 00:00 Retry 0: Got ZCAN
can be seen, but transfer never completes), chances are the pty/tty on one
of the systems are not 8-bit clean. (Linux is 8-bit clean, NetBSD is not).
Using the -e (escape) option of rz should solve this problem.
It doesn't, at least not with lrz. And yes, the receiving end happens
to be NetBSD. But it looks like the zssh people have been down this
road too.
But with rz and sz, it worked. Once. Twice. Three times. But of course,
with the getty babble at the end. This can be taken care of by doing:
rz -eq ; cat > foo
which puts "sz 3.73 1-30-03 finished" and any other messages in foo
(but you have to type ^D to finish the cat). Using this method I was
also able to send an 8K binary file that contained a test pattern of
all 256 possible byte values. Then I tried a 3MB binary executable. All
OK. So here we go again:
. sz txt (zst): OK
. sz bin (zsb): OK
. rz txt (zrt):
. rz bin (zrb):
Downloading fails about halfway through a fairly large file. I tried an
even bigger file, guaranteed to be 100% ASCII; same thing -- halfway
through: "rz: Persistent CRC or other ERROR". But it worked with a
smaller version of the same file (82K versus 2MB). Tried again with the
bigger version, it failed in exactly the same way at exactly the same
spot: byte number 1048320. But this is just ASCII text so it can't be a
transparency problem. Substituting another plain ASCII file of the same
size but totally different contents, it doesn't fail (2.36MB). Back to
the previous file, it fails again, but in a different spot (832960). So
it's not totally deterministic.
To round things out, I tried downloading the binary test-pattern file;
it's only 8K. This failed.
-4, --try-4k go up to 4K blocksize
-B, --bufsize N buffer N bytes (N==auto: buffer whole file)
-e, --escape escape all control characters (Z)
-E, --rename force receiver to rename files it already has
-L, --packetlen N limit subpacket length to N bytes (Z)
-l, --framelen N limit frame length to N bytes (l>=L) (Z)
Tried again with "sz -L 256 -B 256 -4aeq". Doesn't change anything.
NOTE: Mac OS X rz 3.73 1-30-03 does not support -e. NetBSD rz 0.12.20
does support -e.
Thu 22 Mar 2007: It occurs to me that ttpkt() might still be a problem;
maybe it's the network connection and not the pty that is not
transparent enough. To test this theory I did "stty raw ; stty -a" and
then copied all of the flag values into ttpkt in the BSD44ORPOSIX
section:
. rz txt (zrt): OK (2.36MB file, worked 2 out of 3 times)
. rz bin (zrb): "rz: Persistent CRC or other ERROR"
A little more fiddling with the flags and I got the 8K binary test
pattern to SEEM to download OK (in the sense that rz gave a 0 return
code) but the file itself was truncated, always at 224. If I changed
the test pattern file to not include any bytes with value 224 (0xe0) or
255 (0xff), the download worked. So we have a transparency problem
somewhere. The debug log shows that all byte values are being received
from the network correctly so the problem has to occur when we try to
feed them to the pty.
But no amount of twiddling with the termios flags seems to let these
characters pass through. Of course, since they are not in the C0 or C1
control range, "sz -e" doesn't quote them (which it does by prefixing
with Ctrl-X and then adding 0x40 to the byte value so (e.g.) NUL
becomes ^X@. Note that 255 does not cause problems because it coincides
with the IAC character; the remote Telnet server doubles outbound IACs,
and Kermit's ttinc() undoubles them automatically (as the log shows).
Trying to send a different file (a C-Kermit binary) shows that 255 is
the real killer; the file is truncated where the first one appears (at
about 6K), even though some 224's precede it. Going back to the
remote-mode test, I see the same thing happens with the binary
test-pattern file, if I send it from K95 direct to
rz-under-C-Kermit-in-remote-mode. So it has nothing to do with C-Kermit
having a network connection. Yet if I send the same file direct from
K95 to rz, it goes OK and the result is not truncated, so it's not
Zmodem either. The data arrives to C-Kermit intact, so the failure is
definitely in writing it to the rz process through the slave and master
ptys.
BUT if I send the same file from K95 to rz-under-ttpty, that works.
What's the difference? Suppose I just transplant ttpty literally into
C-Kermit... It makes no difference. When receiving the test-pattern, it
truncates it in exactly the same place.
Well, all this is on Mac OS X. What if I move it to a different
platform? OK, building on Solaris and following the exact same
procedure, ttptycmd() doesn't even use the network connection. I think
that's because rzsz on Solaris is hardwired to use the controlling
terminal and can't be redirected, even in a pty?
Moved to NetBSD.
. sz txt (zst): Failed ("Got ZCAN")
. sz bin (zsb):
. rz txt (zrt): OK
. rz bin (zrb):
Well, this is a big mess. Sending doesn't work (or sometimes it does
but reports that it didn't). Receiving... well, actually it's the same
thing; the file is completely transferred but then the final protocol
handshake is lost. The local C-Kermit returns to its prompt, but rz is
still running:
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Got TIMEOUT
Retry 0: TIMEOUT
Retry 0: Got TIMEOUT
I don't see how that is even possible. Even after I exit from Kermit
the messages keep coming, even though ps doesn't show the rz process
anywhere. Looking at the code, I see a place where end_pty() was still
commented out from the ttpty.c episode, I uncommented it. But still:
. sz txt (zst): Fails ("Got ZCAN")
. sz bin (zsb): Fails instantly (but with no diagnostic)
. rz txt (zrt): OK
. rz bin (zrb): Fails with tons of "Bad CRC", "Garbage Count exceeded"
Conclusion for the day: I think this is hopeless. Even if I can get it
to work somewhere, the results depend on the exact Zmodem software, how
it uses stdin/out vs stderr versus getting its own nonredirectable file
descriptor, versus the Zmodem version on the other end and which
options are available on each, versus the pty and select() quirks on
each platform, and on and on. It will be so hard to explain and to set
up that nobody would ever use it. It would be better to just implement
Zmodem internally.
Fri 23 Mar 2007: Went back to the small test program, ttpty.c. Tried
setting both the master and the slave pty to rawmode, even though I
have never seen any other software that did this. I had it receive the
binary test pattern file; it worked. I made a bigger test-pattern file,
3MB, containing single, double, and triple copies of each byte in byte
order and in random order, this one was accepted too.
So it would seem that the ckupty.c module is something to avoid after
all. It's full of stuff I don't understand and probably should not
undo. So changing C-Kermit's ttptycmd() to manage its own pty again,
using openpty() (which is not portable), I got it all to work in remote
mode: Kermit text/binary up/down and Zmodem text/binary up/down. But in
local mode on the client side of a Telnet connection...
zst: OK, but we still get the getty babble at the end that starts sz.
zsb: OK, ditto. This is with the 3MB test-pattern file.
zrt: Not OK -- "Persistent CRC or other ERROR"
zrb: Not OK -- got the cutoff at 224 again "Persistent CRC or other ERROR"
It's close. But actually this was still with USE_CKUPTY_C defined. When
I undefined it, it was back to being totally broken. Start over. (Check
the new cfmakeraw() code.)
Tue 27 Mar 2007: Starting over. Back to ttpty.c. Let's verify, VERY
CAREFULLY, that it really does work, using the most stressful of the
four tests: sending the big (3.2768MB) binary test pattern from K95
into rz through ttpty, logging everything. ttpty definitely receives
the big file smoothly with no errors or hiccups when I have it set to
use the master side of the pty for i/o. The application program (Zmodem
in this case) runs on the slave, and the network and/or control program
communicates with the master. This implies that Zmodem controls the
terminal modes of the slave, and ttpty should be concerned with those
of the master. Doing it this way in ttpty confirms this.
Fine. But if I tell ttpty to SEND a file with sz, nothing happens.
Ditto with lsz. Select times out waiting for input from the pty. But if
I manually tell K95 to RECEIVE /PROTOCOL:ZMODEM it works OK. Somehow
sz's initial B000000 string is being swallowed somewhere, and it's
waiting for a reply from the receiver. sigh... But "ttpty gkermit -s
filename" works fine. What's the difference? It has nothing to do with
stdout vs stderr; sz is not writing to stderr at all. Is it some timing
thing between the forks? Aha. It's that I change the modes of the pty
master in one fork while sz is already starting in the other fork.
OK, good, now for the first time we have Kermit and Zmodem both able to
upload and download a large worst-case binary test-pattern file... in
remote mode. Now taking today's lessons and fitting them back into
C-Kermit so I can try it local mode...
Using G-Kermit as the external protocol, first in remote mode... All
good: text/binary up/down. The "halting problem" is solved by SIGCHLD,
which catches fork termination instantly and lets ttptycmd() know there
is no more pty. Zmodem:
zst: OK
zsb: OK
zrt: OK
zrb: OK
That's a first. Next, repeat in local mode, in which C-Kermit is the
client and has made a Telnet connection to another host over a secure
(Kerberos V) connection:
kst: OK zst: ...
ksb: OK
krt: OK
krb: OK
It seems we can never end a day on a high note. Somehow I seem to have
broken regular internal Kermit protocol transfers over encrypted
connections -- the en/decryption engine loses sync. But they still work
OK over a clear-text Telnet connection.
Today's code in ~/80/dulce.tar (27 Mar 2007).
Added makefile target solaris10g+openssl. Gathered all the standard
CFLAGS for Solaris into cdcdeb.h so they don't have to be included in
every single makefile target for Solaris. On local Solaris 10 host
OpenSSL is in /opt/openssl-0.9.8e/. Tried the new makefile target,
works OK. Also made solaris10+openssl for Sun CC, but couldn't test it
because I can't find any Solaris 10 host that has Sun CC. Built with
gcc at another site that has OpenSSL 0.9.8f-dev, all OK. ckcdeb.h,
makefile, 24 Jun 2007. ====
It occurs to me that Kermit transfers on secure connections might have
been broken by the changes I made back in February to ttinl() for John
Dunlap. Here, for the first time, we invoke myunrd() to push a byte
back into the input queue, and there is also some funny business with
"csave", which changed, and which an old comment notes that it has to
be treated specially when encrypting. So it could be that the broken
Kermit transfer has nothing to do with the work on external protocols,
and that putting back the previous ttinl() will fix it. But now I can't
seem to make a Kerberized connection from Panix to Panix, even though I
can make one from Columbia to Panix. This means I have to build a
Kerberized binary from the current source code on either Solaris or Mac
OS X. Trying Solaris first... [~/solaris9k5/mk5.sh] This didn't work
the first time due to undefined krb5_init_ets, which is referenced if
MIT_CURRENT is not defined (it should be for Kerberos 5 1.05 and later
and we have 1.42 here), tried again with -DMIT_CURRENT=1... Nope, that
one totally blew up in ck_crp.c. Later, Jeff says krb5_init_ets is a
no-op in Kerberos 1.4.x and later, so I added an #ifdef
(NO_KRB5_INIT_ETS) for skipping it; now it builds and runs OK.
ckuath.c, makefile, 9 Jul 2007. ====
Meanwhile, using C-Kermit on Mac OS X, which makes the Kerberized
connection just fine, but still has the problem transferring files over
it. Packet log shows:
s-00-01-^A9 Sz/ @-#Y3~Z! z0___F"U1@A^M
r-00-01-^A9 Y~/ @-#Y3~^>J)0___J"U1@I
s-01-01-^A(!Fx.x)(V^M
r-xx-08-<timeout>
S-01-08-^A(!Fx.x)(V^M
r-xx-08-<timeout>
S-01-08-^A(!Fx.x)(V^M
r-xx-16-<timeout>
Note that S packet is sent, received, and Ack'd OK. The F packet is
sent but is never Ack'd. Tried this several times and noticed that it's
just receiving that is screwed up, not sending. After ^C'ing out of the
transfer, I can still type commands, and they are executed on the far
end, but the results coming back are gibberish. Mon Jul 9 16:08:22 2007
(come back to this later... substitute Dev.27 ttinl for current one and
see if the problem goes away, and if so, conditionalize the new code
for clear-text connections).
Built C-Kermit with Kerberos 5 on Solaris with a version of ckutio.c
that uses the old ttinl() and transferred a file OK over a Kerberized
connection. So now it's just a matter of reconciling the old and new
ttinl. The easiest way to do this is to have new ttinl() chain to old
ttinl() if the connection is encrypted, which is what I did and it
works fine. At some point the two versions of ttinl() should be
reconciled. ckutio.c, 12 Aug 2007. ====
There was a function, islink(), used in only one place (ckuus6.c) that
had the same name as a commonly used scalar variable, and it was
missing a prototype. Changed its name to isalink() and added the
prototype (Unix only), ckuus6.c, ckufio.c, ckcdeb.h. 12 Aug 2007. ====
Revisiting the ASCII and BINARY top-level commands, which are supposed
to be like in other FTP clients, but don't seem to have any effect. I
added a new routine to the FTP module, doftpglobaltype(), that sets the
global, sticky, permanent transfer mode (ASCII or BINARY) (TENEX could
be added to if anybody asks). These commands (now that they work) are
different from SET FTP TYPE { ASCII, BINARY }, which set the *default*
transfer mode when automatic switching fails for a given file.
ckuusr.c, ckcftp.c, 12 Aug 2007.
(notify: Matt <mlist@cmcflex.com>)
Even though the code hasn't changed, suddenly we're getting:
"ckuusx.c", line 5682: warning: implicit function declaration: tgetent
"ckuusx.c", line 6183: warning: implicit function declaration: tgetstr
"ckuusx.c", line 6262: warning: implicit function declaration: tputs
"ckuusx.c", line 6266: warning: implicit function declaration: tgoto
in ckuusx.c on Solaris 9. <curses.h> is still in /usr/include, dated
2002. A quick search shows the missing functions are hiding in
<term.h>, which until now was included only in Linux. Added a
USE_TERM_H clause. No, that doesn't help, the prototypes are not
selected at compile time; there are #ifdefs in that file that skip over
these prototypes. I had to put them in the code under #ifdef
BUG999..#endif (I could have used a longer name like #ifdef
ADD_PROTOTYPES_FOR_CURSES_FUNCTIONS, but that would not be portable).
ckuusx.c, 12 Aug 2007.
Also:
"ckuusx.c", line 9232: warning: implicit function declaration: creat
This is called in the IKSD database code, used for getting a lockfile.
creat() is a Unixism in code that is supposed to be portable. But IKSD
only runs on Unix and Windows, so I assume the Windows C library has a
creat() function. Anyway, suddenly the Solaris header files seem to
have blocked whatever path previously existed to the creat() prototype
(which is in <fcntl.h>), so I added an #include in the appropriate
spot. ckuusx.c, 12 Aug 2007.
Kermit functions for converting the number base -- \fradix(),
\fhexify(), \unfhexify() -- did not work with big numbers; ckradix()
was missed in the CK_OFF_T conversion. Fixed in ckclib.c, 12 Aug 2007.
Updated the help text for ASCII, BINARY, and SET FTP TYPE to clarify
the semantics. ckuus2.c, ckcftp.c, 12 Aug 2007.
Error messages were printed upon failure to open any of the four log
file, even with SET QUIET ON. Fixed in ckuus4.c, 12 Aug 2007. ====
Built OK on NetBSD 1.3_RC3. Tried to build secure version but the
libraries had disappeared. 13 Aug 2007.
Built OK on Mac OS X 10.4.9. Tried the secure version,
macosx10.4+krb5+ssl. Here we get the usual pile of "pointer targets in
passing argument 1 of (function name) differ in signedness", regarding
security functions, but it built OK. 13 Aug 2007.
Reconciling the two ttinl's... On encrypted connections myread()
returns encrypted bytes; ttinl() has to decrypt them; it wasn't doing
this in the lookahead section so I fixed it. The new code works on both
encrypted and clear-text connections. I removed the chaining to
oldttinl(), and oldttinl() itself. ckutio.c, 13 Aug 2007.
(Wouldn't it make more sense and be more efficient and less confusing
for myfillbuf() to do the decrypting?)
When C-Kermit uses Zmodem as an external protocol, it doesn't seem to
scan files before sending them to set text or binary mode
appropriately. It's that external protocols bypass Kermit's whole "get
next file" mechanism; the (possibly wild) filespec is simply passed to
the external protocol program. Changing this would be a very big deal.
But if only one file is being sent (the filespec is not wild) it's easy
enough to check. I added this to the external protocols section of the
protocol module. It can be overridden in any of the regular ways (/TEXT
or /BINARY switch on SEND command, SET PATTERNS OFF, SET TRANSFER MODE
MANUAL, etc). ckcpro.w, 13 Aug 2007. ====
[FTP SEND /RECURSIVE] Peter Crowley reported a problem with FTP
recursive uploads getting the directory tree wrong when the previous
pathname was a left substring of the new pathname (e.g. foo/bar/ and
foo/bar2/). The logic did not handle this case and created the bar2
directory as a subdirectory of bar, rather than as a parallel
directory. Fixed in syncdir() and tested with various edge cases.
ckcftp.c 14 Aug 2007.
notify <peter.crowley@alumni.utexas.net>
Added CD messages to FTP BRIEF display to track the ups and downs of
recursive uploads. ckcftp.c, 14 Aug 2007.
The OUTPUT command gave a misleading error message ("Connection to xxx
not open") when used on a serial port that was, indeed, open but was
not presenting the Carrier signal, when CARRIER-WATCH was not OFF.
Added a new message for this, and some others. ckuus5.c, 14 Aug 2007.
Sending from the command line, e.g. kermit -s foo, did not give an
informative error message if the file could not be found or opened.
Fixed in ckuusy.c, 14 Aug 2007.
OK, back to ttptycmd.... It seems that back on March 27th, I got
everything working but I thought that there was still something wrong
with it because an unrelated problem so I put it aside. The version of
ttpty.c from that date worked OK, and it looks like I updated ckutio.c
from it, but that version of ckutio.c was put aside. Since then I have
been working on the ckutio.c version that was NOT put aside and so now
I have to reconcile the two:
~/80/ttypty/20070327/ckutio.c
~/80/ckutio.c
As a first cut I did this simply by replacing the contents of the
#ifdef CK_REDIR section of the latter with that of the former. Of
course in Solaris this comes up with openpty() implicitly declared at
compile time and unresolved at link time. So the first task is to get
HAVE_OPENPTY defined for platforms that have it and have the others use
the ttruncmd(). For starters I put an #ifdef block in ckcdeb.h that
defines HAVE_OPENPTY for Linux, FreeBSD, NetBSD, OpenBSD, and Mac OS X.
Ones that don't have openpty() include AIX, HP-UX, and Solaris. Others
like SCO I don't know but I doubt it. The real solution is to get the
ckupty.c module to work but one thing at a time... This version is
supposed work with secure builds on the openpty() platforms, and on the
others like Solaris, if an external protocol is attempted on a secure
(encrypted) connection, an error message is printed and the command
fails. ckutio.c, 14 Aug 2007.
How to test? Apparently I did all my testing on Panix before, and
that's where all my Zmodem builds are, but now when I build a
Kerberized version (which works if I do it on the right pool host), it
won't make a local connection, and there is no other place I can
connect to that has a Kerberized Telnet server. I can, however, connect
to Panix from here, using the same code, but on Mac OS X...
Slight detour: Got access to AIX again (5.3.0.0). Picky compiler, some
things needed fixing.... Also it says "1506-507 (W) No licenses
available. Contact your program supplier to add additional users.
Compilation will proceed shortly" and of course it goes kind of slow.
For some reason, I can't do streaming transfers into AIX over a local
network (to its SSH server), but windowed transfers are OK. Anyway,
noting that we've been using the same basic makefile target since AIX
4.2, changing nothing but the version herald, I made a new target,
simply "aix", that picks up the AIX version automatically and sets the
herald from it. Ditto for aix+openssl, but on this host requires
setting SSLINC and SSLLIB to /opt/ssl/include and /opt/ssl/lib. Also
the make program here was extremely sensitive to spacing so I had to
make some minor edits to get the link step to work for the SSL version.
ckuusy.c, makefile, 14-15 Aug 2007.
Got rid of the special Panix secure NetBSD target, replaced it with a
regular one, which is invoked in the normal way by defining K5INC and
K5LIB to point to to where the stuff is hidden. Cleaned up and
modernized the comments in the makefile a bit. makefile 15 Aug 2007.
====
Changed some data types and added some casts to ckctel.c to do away
with tons of "pointer targets in passing argument 1 of 'xxx' differ in
signedness" warnings. 15 Aug 2007.
Set up Mac OS X as the testbed for ttptycmd(), with Panix as the remote
partner over a Kerberos 5 connection. The first test is to send a 300K
text file with gkermit as the external protocol. It worked fine, and
the debug log showed all the right components were active (namely
encryption and ttptycmd) [kermit/zmodem send/receive text/binary]:
Kermit Zmodem
kst OK zst OK
ksb OK zsb OK
krt OK zrt OK
krb OK zrb Failed "rz: Persistent CRC or other ERROR"
We've seen this before. The problem is 0xff, Telnet IAC, as I proved to
myself by constructing a 3MB file that contained every byte but 0xff in
every mixture and order and transferring it successfully over the same
connection. Presumably the Telnet server is doubling IACs, whereas of
course rz is not undoubling, thus the CRC error. This is progress. 15
Aug 2007.
Log shows that indeed every IAC in the source file arrives doubled.
Adding code to remove the first IAC of every adjacent pair, a small
test file with different-length runs of IACs transfers OK. The 3MB
all.bin file does not.
Starting over... I can receive a big text file with Zmodem OK. The
3.2MB binary test pattern that contains no IACs failed after 1.8MB, but
the part that it transferred was OK. A second try, almost the whole
thing arrived, it stopped just 584 bytes short of the end. Could be
that file size is a separate problem. Making a new copy exactly 1MB
long... Well, that's interesting, this one too stopped just short of
the end. And again, the same thing. When connecting back to the host,
the last Zmodem packet can be seen on the screen; it's as if the local
Zmodem exited before reading the last packet... But OK, if I change the
options on the remote sz sender to use small blocks, etc, then it
works.
Now, changing from the 1MB no-IAC-binary test pattern, to the 1MB
all-values test pattern, we fail after 81K. But the part that was
transferred is correct. Second try, same thing, but 57K. Third: 40K.
Each time, upon connecting back, the session is completely dead.
IF I HAVE TO undouble IACs for incoming files, don't I have to double
them going out? To send a block to net we just call ttol(), but ttol()
doesn't do any doubling (because Kermit protocol always quotes 0xff).
To see what happens, I changed the ttol() call to ttoc() in a loop that
doubles IACs. I tested this by sending the full 3.2MB test pattern,
which worked fine.
For receiving, it's slow but it works OK with files that don't contain
IACs (my concern was that IACs might appear in outbound files or in
Zmodem protocol messages). It receives the 1MB no-IAC test pattern, so
there are no problems with protocol or timing. But the full test
pattern always gets cut off, but at different points, as before, with
the remote session dead. Changing the Zmodem receiver from rz to lrz on
the local end (since the sender on the remote end is lsz) does not
change the behavior.
Anyway, I went back and replaced the byte loop with something more
efficient, and it goes about 20 times faster. But this doesn't help
either, it only makes it fail faster. But aha, what if a doubled IAC is
broken across successive pty reads -- we have to make the "previous
character" memory persistent. Well, that was a good insight, but it
still didn't fix it. The log shows the IAC handling code is working
fine.
What does sz say? Capturing its stderr to a file... "Retry 1: Got
ZCAN". Next time: "Retry 1: Got TIMEOUT". Next time: Got ZCAN.
Trying different Zmodem options... apparently I don't need to use short
blocks. But I do need to use -e, probably because of Telnet NVT
treatment of carriage return; without -e, there is a "persistent CRC
error". -O disables timeouts, but this makes no difference.
OK, we still have two Big Problems:
1. When a long file has no IACs, the final < 1K of the file is not received.
2. When a long file has IACs, the transfer generally stops very early.
Problem 1: the transfer consistently fails less than 1K from the end of
the file. Upon CONNECT back to the host, a big Zmodem packet is sitting
there waiting to be read, which means ttptycmd()'s copy of rz is
terminating early. Can we catch it in the debug log? Doing this takes
forever and writes a GB to the disk... And then the problem doesn't
happen. Also, I can receive a HUGE text file almost instantly with no
errors at all.
Switching to lrz on the receiving end, now I see the error messages,
about 300 lines like this:
Retry 0: Garbage count exceeded
Bytes received: 872352/1000000 BPS:85464 ETA 00:01 Retry 0: Bad CRC
Bytes received: 892448/1000000 BPS:86690 ETA 00:01 Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Retry 0: Got ERROR
Bytes received: 898336/1000000 BPS:84293 ETA 00:01 Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Retry 0: Garbage count exceeded
Bytes received: 900384/1000000 BPS:83751 ETA 00:01 Bad escape sequence
2fRe
try 0: Bad data subpacket
Bytes received: 941472/1000000 BPS:86191 ETA 00:00 Retry 0: Bad CRC
Retry 0: Garbage count exceeded
Even when it succeeds, it gets these. But if I receive a text file, no
matter how big, no errors or retries or timeouts at all. So it appears
that there is only one problem: a big-time lack of transparency
regarding 8-bit and/or control characters. The odd thing is, it's not
that the characters can't get through -- they all can -- but they seem
to cause transitory blockages. 16 Aug 2007. ====
Cleaned up the remaining pointer signedness warnings in ckutio.c, but
this was a mistake, it broke Kerberos connections completely. Undid the
changes. ckutio.c, 17 Aug 2007.
Changed all return() in the fork()==0 section of ttptycmd() to exit().
ckutio.c, 17 Aug 2007. ====
Tried explicitly setting the slave pty to rawmode. Makes no difference.
Tried using the Mac OS X (curses) raw() function, and also system("stty
raw"); still no difference. Tried doing all of these in different
combinations and orders. I found one combination that cuts the errors
about in half, and the transfer of the no-IAC test pattern almost
always succeeds (but it's slow). Anyway, it doesn't help much with the
test pattern that contains IACs. Well, the code is more solid than it
was before but functionally we have not advanced much if we can't
download a binary file with Zmodem! On the other hand, we can upload
them, and we can transfer text files in both directions, which is an
improvement over the previous situation, in which the entire session
would hang due to loss of synchronization of the encryption stream.
Tried adding -funsigned-char to CFLAGS of Mac OS X target. It does not
make the "signedness" warnings go away and it doesn't change the
runtime symptoms.
I tried a simpler version of pty_make_raw(), the one from Serg
Iakovlev, but it was a total failure. That's encouraging though,
because it indicates that pty_make_raw() is the right place to be
working.
Then I made pty_make_raw() set or unset every single terminal flag
explicitly. This made no difference, but didn't hurt anything either.
Then I made pty_make_raw() explicitly set all the c_cc[] characters to
0 (but left c_cc[VMIN] as 1). This made no difference either.
I checked pty_make_raw() against ttpkt() and the only difference I
found in the terminal flags is that ttpkt() sets IGNPAR thinking it
means "ignore parity errors" when really it means "discard any
character that has a parity error" (at least according to Iakovlev) --
exactly the opposite. But I tried it both ways, no difference. 17 Aug
2007. ====
I noticed that even Zmodem text receives can fail. They don't get any
errors, they just get cut off shortly before the end. (But usually they
succeed, and fast too, like 500K cps).
What if I don't call pty_make_raw() at all on the slave pty?
zrt: EESSSSSSSS: 80% good (E = stopped just before end but no other
errors)
zrb no-IAC test pattern, short blocks:
1. S/5 (success with 5 screens of errors.
2. S/7
3. S/7
4. S/6
5. E/7 (failed just before end)
6. S/7
7. S/6
8. S/6
9. S/6
10. S/4
So, lots of errors, but it recovered 90% of the time. Next, same thing,
but without requesting short blocks:
1. E/5
2. S/5
3. E/4
4. S/5
5. S/5
6. S/5
7. X/0 (hard failure right away: "Got ZCAN"
8. S/5
9. S/5
10. S/5
So it doesn't look like short blocks make that much difference. Now
what if I turn off prefixing? Bad CRC, fails immediately every time.
Putting back pty_make_raw(slave), it still fails hard.
Tried a new strategy with pty_make_raw(): rather than modify existing
flags, I set all flags to 0, and then turn on only those few that we
need like CS8. Now we get only 2.5 screens of errors instead 4-7 and
the transfer rate is higher for binary files (all of the previous ones
were under 100K CPS, while for text files it was 400-500K CPS):
1. S/2 195669 CPS
2. S/2 194720
3. E/3
4. S/2 192550
5. S/3 192325
6. S/3 145066
7. S/2 200689
8. S/3 188948
9. S/2 209461
10. S/3 181991
I noticed that there was no TIOCSTTY ioctl in the pty/fork setup
sequence, which is recommended somewhere, so I tried that and it was a
disaster; the entire session hung. I took it back out. 18 Aug 2007.
Tried some transfers over a clear-text (not encrypted) connection with
the same results: smooth, fast transfer of a big text file (400K cps);
rocky but successful transfer of the no-IAC binary pattern file (135K
cps). Switching back to ttruncmd(), the same binary file is received at
1.5M cps, and the no-IAC binary file totally fails after too many "Bad
CRC"s; and we already know that any file that contains IACs will fail.
One might say that ttptycmd() is better in every respect than
ttruncmd() except in speed (when it works).
Let's see if ttyptycmd still works in remote mode (to local K95):
. sz / text works, but slowly.
. lsz / text works but some weird errors are reported.
. lsz / binary / no IAC doesn't work at all (CRC-32 mismatch for a header;
Unexpected control character ignored: 13, etc).
. sz / binary / no IAC works OK but slow.
. sz / binary / full test pattern with IAC works OK but slow.
. Sending text into rz fails completely.
What about ttruncmd() in remote mode?
. send /text works, fast.
. send /binary works, fast.
. receive /text works, not so fast but not bad.
. receive /binary works, not so fast but not bad.
So we use ttruncmd() for remote mode, and we use it for local mode
serial-port and modem connections, and we use ttptycmd() on network
connections because (a) they might be encrypted, and (b) even if they
are not, they use some protocol that we have to handle, e.g. Telnet,
Rlogin. 19 Aug 2007. ====
Discovered that Sending binary files no longer works. Text is OK,
binary transfers don't even start. This happens on both encrypted and
clear-text connections. ttptycmd() is being used in both cases. But
oddly enough, receiving binary still works as before. What did I break,
and when? Oh, it was just the script, when I changed it from using sz
to lsz. Putting it back to sz makes it work, even with the full 3.2MB
binary pattern with IACs.
I backed off the changes I made to ckctel.c to suppress some warnings,
in view of the fact that similar changes to ckutio.c broke things so
badly. 19 Aug 2007. ====
If sz is not given the -e flag, it sends control characters bare,
except ^P, ^Q, ^S, and ^X. ^X is the control prefix, so ^A is sent ^X
followed by A. With -e, all C0 control chars are prefixed, but with ^X,
which is, of course, a control character. Interestingly, the C1 analogs
of ^P, ^Q, ^S (but not ^X and, unfortunately, not IAC) are also
prefixed. -e makes no difference for 8-bit characters.
If we have a Telnet connection and the server is in ASCII (NVT) mode,
CR is always followed by LF or NUL. Well, it seems the server is
putting us (Kermit) in binary mode in this case, but staying in ASCII
mode itself. Added code to handle NVT byte stuffing and unstuffing in
each direction independently, according to the TRANSMIT_BINARY state in
that direction. I made a file containing just the bytes 0-31 and 127
and 128-159 and 255 (66 bytes all together) and sending it from the
host to C-Kermit, the local log shows that every control character was
received correctly and all TELNET conversions were done right -- NUL
removed after CR (and only after CR); IAC removed after IAC (and only
after an IAC meant as a quote). For the first time, I can receive the
1MB all-values test pattern, but there are still tons of (correctable)
CRC errors, so the transfer rate is really awful, like about 5% of what
we get with a text file (25Kcps instead of 500).
Further experimentation shows that the fundamental transparency problem
is fixed; we can receive short files (say, 1K or less) containing
absolutely any byte values in any combination with no errors at all.
But once the file size reaches (say) 10K, we get CRC errors, like one
every 2 or 3K of data. These are not deterministic. In successive
transfers of the same file, they come in different spots. It's tempting
to blame pty buffer overruns, but then text files would show the same
behavior. When a binary file size exceeds, say, 1MB, the chances of
successful completion go way down, independent of whether my external
protocol is rz or lrz. I like lrz better because the error reports come
out on the screen as the transfer is going on. Trying to download a
real-world binary file -- a 2.2MB C-Kermit executable -- I get 4500
error messages but the transfer eventually succeeds, with an effective
throughput of 21Kcps.
Actually it turns out that "sz -a somebigtextfile" (2.2MB) also gets a
lot of CRC errors. The -e flag (escape all control characters) makes
the same big text file transfer with few or no errors. It's not
sure-fire. Sometimes no errors, sometimes one or two, and sometimes a
fatal error that kills the transfer.
With binary files... a 32K binary file seems to make it every time. 40K
fails about 50% of the time. 48K fails 60% and every time it fails, it
has created a partial file of exactly 32K (32768 bytes). 96K fails 9
out of 10 times, when it fails, the partial file is always 0 bytes, or
32768, or 65536, but that just means that rz's file output buffer is
32K.
Why, then, do binary files cause trouble if it is not a solid
transparency problem? If a certain file can get through once, why can't
it get through every time? When a character arrives at the pty, the pty
driver probably takes a different path through its code, checking the
terminal flags that would affect that character. I tried making
Kermit's network read buffers very small but, surprisingly, this made
things worse. I also tried making them very much bigger, which didn't
help either. 24K still seems to be the right size.
So, is it that some characters take longer to process than others? So
long that data is lost due to lack of flow control between TCP and the
pty? One way to test this theory is to slow Zmodem down. I tried "-l
32" which, according to the man page, tells sz to "wait for the
receiver to acknowledge correct data every N (32 <= N <= 1024)
characters. This may be used to avoid network over-run when XOFF flow
control is lacking." Makes no difference. I also tried the -w (Window)
switch, ditto. In fact there are all sorts of options to set the
"window size", "packet length", "block size", and "frame length", but
with no explanation of what these mean or how they are related. If I
crank everything down to minimum value:
lsz q -L 32 -l 32 -w 1
I get 50% success with the 96K file instead of 10%. Adding -e, oddly
enough, made it worse. I also tried setting the environment variable
ZNULLS to different numbers like 512, no help there either.
I tried making the read-from-net-write-to-pty buffer small (1K) but
leaving the pty-to-net one big. This improves chances of success, but
it's intolerably slow (3Kcps when the connection is capable of 500K).
I also changed the write-to-pty operation from a single write() call of
possibly many K characters to a byte loop, one write() per byte. Same
result: success (but still about 300 recoverable errors), throughput
3Kcps. 20 Aug 2007.
With ttptycmd() configured to write to the pty in a byte loop, it is
possible to delay each write. Adding a 10msec delay per character
results in a transfer that runs at about 20 cps and (for the 96K test
file) would take about 80 minutes to complete. And yet it still gets
just as many errors. So it's not a matter of timing either. The errors
come, on average, every file 388 bytes, but not at regular intervals.
I tried the TIOCREMOTE ioctl on the pty master, as discussed somewhat
obliquely in the Mac OS X "man pty" page; "This mode causes input to
the pseudo terminal to be flow controlled and not input edited
(regardless of the terminal mode)" -- sounds like just the ticket but
it made no difference. Actually, looking at a man page on another OS
(Solaris), it says this is only for lines of text, EOLs are supplied,
so that would mess up the protocol. So remember: don't use this.
Tried without O_NDELAY; the behavior was the same but the speed was
much slower.
Tried switching back to the ckupty.c routines on Mac OS X and found
that it works now the same as with openpty(), except that I seem to get
more getty babble at the end. But this means I can run some tests on
Solaris. I moved the entire test environment from Mac OS X 10.4.9 to
Solaris 9. But it doesn't work at all.
Trying to figure out the ckupty.c modules again.
. do_pty() calls pty_getpty() which returns in arg1 the fd of the pty master.
. Then it creates a pipe as a way to tell when the child dies
. Then it creates a fork:
- The parent does a blocking read from the pipe
- The child calls getptyslave() to get the pty slave
and writes one byte to the pipe
and then execs the command it's supposed to run
Note that the file descriptor of the slave is known only to the lower
fork. Therefore the lower fork is the one that has to set all the tty
modes, etc. I took care of all that but the ckupty.c method doesn't
work at all on Solaris. But it works "fine" on Mac OS X (the 32K
all-bytes test file transfers instantly with no errors, but the 96K one
errors out).
The problem on Solaris is that pty_make_raw() fails on the masterfd
(but not on the slavefd) with errno 25 "ioctl inappropriate for
device". It doesn't matter whether I do it in ckupty.c or ckutio.c. I
found a web page on kde.org that says Solaris does not allow
tcget/setattr() on a pty master. But the Sun "knowledge base" is not
open to the public. Well, presumably changes made to the slave are
reflected in the master (comments in Solaris telnetd seem to confirm
this...) Let's come back to Solaris later.
Moving to a Linux with lrzsz installed... Built a Kerberos 5 version
with USE_CKUPTY_C. Like on Mac OS X, it transfers short files OK and
chokes on longer ones. Switched to openpty(), it behaves the same. So
the problems on Mac OS X are evidently not OS-specific, which is good I
guess, since that means finding the way around them will apply to more
than one platform. 21 Aug 2007.
Look into TIOCSCTTY again. On System V based OS's, opening a pty
acquires a controlling terminal automatically. On BSD-based OS's, no;
you have to use the TIOCSCTTY on the slave file descriptor to give it
one. I'm not sure why a controlling terminal would be needed, except
that without one, the virtual device "/dev/tty" does not exist for the
process that runs on the pty, and maybe the application that runs there
(e.g. rzsz) checks for it. On the downside, having a controlling
terminal opens the process up to terminal interrupts like SIGINT and
SIGQUIT. Until now I have not been using this ioctl(). Results (in
Linux):
With TIOCSCTTY: 96K all-bytes test: 11 screens of errors, then success
Without TIOCSCTTY: exactly the same.
Tried the same thing with TIOCNOTTY instead of TIOCSCTTY, with exactly
the same results (no effect whatsoever).
There has to be a way to make this work, because Zmodem works through
telnetd, which basically the same thing as ttptycmd(): a relay between
the network and a pty. ttptycmd() is like telnetd backwards. Modern
telnetds are not much help; they don't access ptys or the network
directly, they go through "mux" devices so I can't see what they're
doing to get transparency and flow control. An old BSD telnetd uses
packet mode but that would be a big deal...
I tried ignoring various signals like SIGTTOU and SITSTP, since some
Telnet clients do this. No effect, no difference. Anyway, in Linux the
transfers almost always finish OK despite the many errors. There is
just some trick I'm missing to make the pty accept a stream of
arbitrary bytes without hiccuping.
What about Solaris, which uses ckupty.c? In streams-based OS's, where
line disciplines and whatnot are pushed on top of the pty, it looks
like the pty module saves the file descriptor of the "bare" slave pty
(as 'spty') before pushing things onto it, and then later uses spty
rather than the regular slave pty file descriptor when getting/setting
terminal modes. I'm not sure what this is all about but it's definitely
SysVish... It happens if STREAMSPTY is defined, but I noticed that
STREAMSPTY is never defined anywhere. I tried defining it so we take an
entirely different path through the code. It made absolutely no
difference.
Then I noticed that HAVE_STREAMS is not defined for Solaris either.
Tried defining it, but the session didn't work at all, no i/o. Removing
the HAVE_STREAMS definition but keeping the STREAMSPTY defined, I
rebuilt and tried "set host /connect /pty emacs". I got an EMACS screen
but could not type anything into it, which means that STREAMSPTY should
not be defined either. Removed the definition and "set host /pty" works
again. So what's the problem with ttptycmd()?
In fact, ttptycmd() works on Solaris with Kermit as the external
protocol, but not with Zmodem, not even with text files. So again,
there is no fundamental problem with the code or the logic, it's Just A
Matter Of Transparency to control and/or 8-bit characters -- some trick
I don't know about.
Looking at the Solaris debug log... I see that ckupty.c is calling
init_termbuf() to set the tty modes of the master, not the slave, and
set_termbuf() to set them, but you can't do that in Solaris, error 25.
This is in getptyslave(). Shouldn't getptyslave() be setting the tty
modes of the slave, not the master? I changed it to do this, but like
all other changes, it made no difference. I checked to make sure that
after the change, "set host /pty /connect emacs" still worked and it
did.
And then what... I had some code to redirect stderr in ckupty.c that
was not being executing due to a typo. When I fixed the typo, poof,
Zmodem binary transfers started working, or working as well as they
work in Linux and Mac OS X. It turns out that if I don't redirect
stderr, sz and rz just don't work. But lsz and lrz do. But if I do
redirect it, I don't see the progress messages from lsz/lrz. 22 Aug
2007. ====
Built on HP-UX 11i v3 (B.11.31 U ia64) with optimizing compiler, got
tons of picky warnings, but it finished and linked and runs OK. Many of
the warnings were like this:
"ckucns.c", line 1606: warning #2068-D: integer conversion resulted in a
change of sign: tnopt[0] = (CHAR) IAC;
IAC is defined as 255 in ckctel.h. If I define it as 0xff, I don't get
the warnings. I changed the definitions of all the Telnet commands to
be in hex notation rather than decimal. If cuts way down on the HP-UX
warnings and doesn't seem to cause problems elsewhere. ckctel.h, 23 Aug
2007. ====
Now it looks like Solaris is working but then it hangs at the end. It
appears as if the ckupty.c module is blocking SIGCHLD. Debug log shows
that when the transfer is complete, we received IAC DM (Telnet Data
Mark) after sz's last gasp and before the shell prompt is printed. But
calling tn_doop() in this case is a mistake because we are reading the
number of bytes that we know are available in a counted loop, but
tn_doop() would consume an unknown number of bytes and we would never
know when to exit the loop. Anyway, C-Kermit doesn't do anything with
DM. Skipping over tn_doop() (and not writing out the Telnet command
bytes) fixes the hanging condition at the end, even though SIGCHLD is
never raised. ckutio.c, 23 Aug 2007. ====
Some tests, Solaris to NetBSD over K5. zst sends ascii.txt, a 2.36MB
ascii text file (Kcps / Errors). zrt receives the same file:
zst 587/0 526/0 542/0 434/0 423/0
zrt 827/0 800/0 847/0 FAIL 610/0
So text is good. Binary not so good. Here we transfer the 1MB all-bytes
pattern file. zrb receives it successfully, but with 1248 errors, at
only 15Kcps. Sending the same file out always fails:
Begin 20070823 16:32:07: SEND BINARY all2.bin [sz]
Sending: all2.bin
Bytes Sent: 5600/1000000 BPS:12446 ETA 01:19 FAILURE
End 20070823 16:32:13
Elapsed time: 6.617992999999842
cps = 151103.2121067556
lsz: caught signal 1; exiting
Decided to move to Linux but found that something is screwed up in
Linux C-Kermit with tilde expansion:
send ~/testfiles/all.bin
doesn't expand at all (but it did yesterday!). The problem was in the
ancient, ancient realuid/setuid handling code; real_uid() no longer
works in Linux. I worked around this in whoami() by setting ruid to
getuid() if real_uid() returned a negative number. Maybe dangerous,
worry about it later. ckufio.c, 23 Aug 2007. ====
ANYWAY... after fixing that, I tested zsb on Linux, and it's broken
there too, using openpty(), so it's nothing to do with ckupty.c. After
sending the first Zmodem data packet, it just hangs, nothing comes
back. In text mode it gets farther, but then the same thing happens.
Captured stderr from rz on the far end:
Bytes received: 608/1000000 BPS:21137 ETA 00:47 Retry 0: Bad CRC
Bytes received: 864/1000000 BPS:23540 ETA 00:42 Retry 0: Bad CRC
Bytes received: 1120/1000000 BPS:25003 ETA 00:39 Retry 0: Bad CRC
Bytes received: 5696/1000000 BPS:56988 ETA 00:17 Retry 0: Bad CRC
Bytes received: 9120/1000000 BPS:62227 ETA 00:15 Retry 0: Bad CRC
Bytes received: 9376/1000000 BPS:60766 ETA 00:16 Retry 0: Bad CRC
Bytes received: 9632/1000000 BPS:60361 ETA 00:16 Retry 0: Got TIMEOUT
Retry 0: Sender Canceled
Retry 0: Got ZCAN
The local sz, however, doesn't give any error message. ZCAN means:
"other end canceled session by sending 5 ^X's" (or user typed them).
What actually happens is that ttptycmd()'s select() times out waiting
for something from the Zmodem partner and ttptycmd() itself kills the
sz fork with SIGHUP. When lsz receives SIGHUP it sends the ZCAN. So the
real problem is that after some point we're not receiving anything.
I changed the timeout from 4 seconds to 30 seconds and now I see it
just stops for long periods of time and then resumes. The lrz log on
the receiving end shows tons of timouts, CRC errors, and other errors.
The local log shows that lsz wound up sending ZCAN (2 x (10 x ^H, 10 x
^X)).
Moving on to another problem... Turns out Ctrl-C (SIGINT) is working
right after all. Since I'm using my test scripts like kerbang scripts,
Ctrl-C exits through trap(), as it should, closing the connection and
cleaning up. If I start Kermit and tell it to TAKE the script, then
Ctrl-C brings me back to the prompt with the connection still open (as
it should). However, until now I haven't done anything about the fork
or the ptys. Added code to trap() to kill the fork and close the master
pty. ckuusx.c, 24 Aug 2007. ====
Added code to try to break the deadlock. If select() times out, but we
have stuff to write either to the pty or the net, try to do it anyway,
even though select() did not say we could. But this doesn't help
because when select() times out we don't have anything to write. The
problem is that after receiving that last packet from the remote rz,
the local lsz doesn't seem to do anything, as if the lower fork wasn't
running (and to confirm this hypothesis, sometimes I noticed that when
I Ctrl-C'd out of this, the transfer would take off again).
Backing up and testing with gkermit rather than zmodem:
kst ripple.txt [824K] OK
kst ascii.txt [1359K] OK
krt ripple.txt -- FAILED
It seems that we can't handle streaming. If I set up krt to disable
streaming on receipt, it works OK.
krt ripple.txt [824K] OK
krb all2.bin [1000K] OK
So here we have no trouble sending but big trouble receiving unless we
disable streaming. Whereas with Zmodem we have trouble receiving.
But this wasn't happening before, what changed? Using C-Kermit on the
far end to receive the file with debug log on, I see that it is sending
4K data packet after 4K data packet, with the local gkermit silent, as
expected. About midway through the transfer, the local Kermit sends an
error packet "Transmission error on reliable link". Looking at
G-Kermit's debug log... It receives the first five 4K data packets OK,
but gets a CRC error on the fifth one, and sends the Error packet. So
it has received a stream of 20-some thousand bytes OK and then messes
up. That number sounds a lot like ttptycmd()'s buffer size. I changed
the buffer sizes to be different:
Read from pty and write to net: 4K
Read from net and write to pty: 1K
This time it received the first 4K packet and failed on the second one.
Then I increased the buffers to 98K each, expecting to receive lots
more packets successfully but it bombed out on the 5th one. But that's
good, it confirms there's no logic error in the buffer management. Just
to make sure, though, let's set the buffer size smaller than the packet
size and disable streaming. In this case we get 4 good data packets and
a CRC error on the 5th one and so we request retransmission, and the
next 8 times it arrives it gets a different CRC error, but the 9th copy
is OK. Then the next packet comes and it gets a CRC error every time.
And this is nothing but plain ASCII text.
Switching to remote mode:
REMOTE=1 kk kst
(after tricking myself because it was using ttruncmd() for this...) I
see that nothing works at all. What did I break? 24 Aug 2007. ====
Fixed ttptycmd() to restore console modes after a remote-mode transfer.
ckutio.c, 25 Aug 2007. ====
Noticed that error codes like ESRCH are not available in all modules.
That's because of some complicated in #ifdefs in ckcdeb.h that wind up
not always #including <errno.h>. But I notice that ckutio.c includes it
unconditionally with no ill effects, and so does ckvfio.c. Does any
version of Unix at all not have <errno.h>? Added a catch-all clause to
ckcdeb.h to #include <errno.h> (in UNIX only) if, after the other
clauses, ESRCH was still not defined. ckcdeb.h, 25 Aug 2007. ====
Now back to debugging ttptycmd()... Remote-mode transfers with
ttptycmd() were broken in two places, maybe as long as 2 weeks ago
(this would have affected non-network transfers too, which I can't test
any more). The logic was missing in a couple places for the non-network
and/or non-Telnet and/or non-encrypting connections (if statements with
no else parts). Fixed in ckutio.c, 25 Aug 2007. ====
Testing remote mode:
kst OK zst OK
ksb OK zsb OK
krt OK zrt OK
krb OK zrb OK
Functionally it all works but there are hitches with Zmodem as always.
When sending to K95:
. If I send with lsz, there are hundreds of "Subpacket too long" errors,
and the transfer is very slow, but it succeeds.
. If I send with the 1994 Omen version of sz, transmission is instantaneous
and without errors, but then it hangs at the end.
. If I bypass C-Kermit and send direct from lsz or sz, both work fine.
So clearly the ptys are getting in the way. The hanging at the end
would be caused by the sz process closing before its last output
reached the master pty. It would need to do some form of flushing
and/or pausing at the end but there's nothing I can do about that;
these programs were not designed to be used in this way. Anyway, it
only seems to happen with files longer than 100K.
For local mode, testing in Solaris over our Kerberos 5 connection
again:
gkermit lrzsz
kst OK zst FAIL
ksb OK zsb FAIL
krt OK zrt OK but with errors
krb OK zrb FAIL
If I use Omen rzsz as the external protocol (e.g. with zst), it blocks
redirection and it sends the file to my terminal, rather than over the
connection. This would probably be because it finds out the device name
of the job's controlling terminal and opens it, to prevent redirection.
This is hard to prevent in Solaris because there is no TIOCSTTY
ioctl(). Supposedly the same thing is accomplished by closing and
reopening the slave pty after doing setsid(). I added code to do this,
but it made no difference. (If I use lsz instead of sz, it is indeed
redirected, but jams up after about 15K.) ckupty.c, 27 Aug 2007. ====
On Mac OS X with sz 3.73 1-30-03, however, the redirection works, so I
assume it would also work in Linux, FreeBSD, NetBSD, etc, too. Doing
the full test suite on Mac OS X:
gkermit lrzsz rzsz
kst OK zst FAIL (1) OK
ksb OK zsb FAIL (2) OK
krt OK zrt OK (3) OK for 100K file, fails for longer.
krb OK zrb FAIL (4) OK (1MB all-bytes test pattern)
(1) 64K file OK every time; 100K file fails every time. (2) 10K file
fails every time. (3) Succeeds with 800K file but gets a few
recoverable errors. (4) Succeeds with 48K binary file with some errors,
fails with longer ones.
So actually it looks pretty good, it's just that lrzsz messes up. When
sending with lsz if I include -L 512 it sends the 100K test file with
no errors, but still chokes on longer ones.
Testing on Mac OS X again, but this time over a clear-text Telnet
connection:
gkermit lrzsz rzsz
kst OK zst FAIL(1) OK
ksb OK zsb FAIL(2) OK
krt OK zrt OK(3) OK
krb OK zrb FAIL(4) OK
(1) Almost worked, finished 777K out of 824K without errors. (2) Got
tons of errors, failed in first 30K out of 1000K. (3) OK for 100K file
but fails for larger. (4) OK for 48K binary fail but fails for larger.
Maybe see if we can do without the OPENPTY part.
TOMORROW -- just clean up the code, add some SET / SHOW / HELP
commands, document it, and move on.
Note: In K95, SET WINDOW sets the Zmodem packet length, 32 - 1024,
multiple of 64.
SEE ~/80/external.txt
Changed ftp port from int to unsigned int. ckcftp.c, 30 Aug 2007.
Tried again to build KRB4/KRB5/SSL/TLS version for Solaris 9. Had to
update the build procedure again, of course, because of new file and
directory names, but ran into problems anyway because the
cu-solaris9g+krb5+krb4+openssl+shadow+pam+zlib target was calling
another target that did not know about the hardwired pathnames.
Integrated the two targets and tried building again. It actually
compiled ok (but with lots of warnings from the security modules), but
failed at link time with krb5_init_ets not found; fixed that with an
#ifdef NO_KRB5_INIT_ETS, now it builds OK but without the ftp client.
Tried building it WITH the FTP and that was OK too, no changes needed
except to the build procedure. 12 Feb 2008, that is: C-Kermit 8.0.212 :
20080212.
Tried to build with -DCK_SRP and -lsrp but:
hash_supported ckcftp.o
hash_getdescbyname ckcftp.o
hash_getdescbyid ckcftp.o
cipher_getdescbyname ckcftp.o
krypto_delete ckcftp.o
krypto_new ckcftp.o
cipher_supported ckcftp.o
krypto_msg_priv ckcftp.o
krypto_msg_safe ckcftp.o
hash_getlist ckcftp.o
cipher_getlist ckcftp.o
cipher_getdescbyid ckcftp.o
Sent mail to Tom Wu and backed off for now. makefile, 14 Feb 2008. (Tom
Wu never answered; seems like SRP is defunct.)
The ".blah = xxx" form of variable assignment only worked for variables
names of length 22 or less, noticed and fixed by Wolfram Sang.
ckucmd.c, 5 Mar 2008. ====
In "set host /pty ssh ..." connections, the INPUT command suddenly
stopped working. This is in Solaris 9. It happens with all 8.0.*
versions of C-Kermit, so it's nothing to do with ttptycmd(). Added some
debug() statements but they don't show anything. Turns out there wasn't
a problem after all. Wed Mar 26 16:04:53 2008 ====
Changed cmifi() to not print "?No files match" (or whatever) if SET
QUIET ON. ckucmd.c, 26 Mar 2008. ====
Added \v(remoteip) for the IP address of the host we're connected to,
and \v(inmessage) for INPUT status messages corresponding to
\v(instatus). ckuusr.h, ckcmai.c, ckuus[24].c, 26 Mar 2008. ====
Made \fkeywordval() strip braces/quotes from the right-hand side so we
can handle things like:
password="stringwithspaceatend "
ckuus4.c, 6 Aug 2008. ====
Added invisible PUTENV command for UNIX only. Value should not be
enclosed in doublequotes. Requires lge \v(buildid) 20080826.
ckuusr.[ch], 26 Aug 2008. ====
Added SET VARIABLE-EVALUATION { RECURSIVE, SIMPLE }. This is highly
experimental, but also highly desirable if it works out. SIMPLE
inhibits the default recursive method of evaluating \%x and \&x[]
variables, which is, quite frankly, nuts and makes programming in
Kermit at best counterintuitive. I made an exception in the case of
array subscripts, because changing how they are evaluated could break a
lot of scripts, and anyway there should never be any harm in evaluating
them recursively because their final value is always (or should be)
numeric, not some string that might contain backslashes. The SET VAR
setting is on the stack, just like SET QUIET (it follows the
quiet/xquiet code in ckuus[356].c), so macros or command files that
change it can't break the script that invokes them. Added \frecurse()
to force recursive evaluation of a \%x or \&x[] variable regardless of
the VARIABLE-EVALUATION setting. Added \v(vareval) to allow
programmatic setting to current setting. Tested on Solaris 9 but should
be totally portable. ckuusr.[ch], ckuus[356].c, 11 Sep 2008. ====
From Gnter Knauf: 64-bit builds were failing on SuSE Linux because
libresolv and libcrypt were in lib64 rather than lib; updated the tests
in the linux makefile target to find them. makefile, 12 Jan 2009. ====
Tried building on Red Hat Enterprise Linux Server release 5.3 64-bit.
There is no curses or ncurses. "make linuxnc" compiled OK but collapsed
at link time looking for crypt(), res_search(), and dn_expand(). Turned
out the linuxnc (and linuxc) targets needed the same treatment as the
Linux one for 64-bit Linuxes. makefile, 3 Mar 2009. ====
Consolidated the linux targets so we no longer need three separate ones
for curses, ncurses, and no curses. "make linux" works ok on computers
with and without (n)curses. "make linux+ssl", ditto. "linux+krb5+ssl
builds OK but needs -DNO_KRB5_INIT_ETS". Makefile, 3 Mar 2009. ====
Fixed copyright date announced in herald, ckuus5.c, 3 Mar 2009. ====
Patch from Seth Theriault to avoid deprecation warning for utmp
references in ckufio.c in Mac OS X 10.5 (later, this became a
consolidated makefile target that works automatically for at least Mac
OS X 10.3.9 through 10.5.6). makefile, ckufio.c, 28 April 2009. ====
zshcmd() (the function used by RUN and ! to run external commands) was
not falling back as expected in Linux RHEL4/5 if SHELL was not defined
in the environment. Also in all Unix versions, there was no indication
if a RUN/! command failed (other than the return code) because the
specified shell didn't exist or was not executable (e.g. the SHELL
environment variable was misdefined). Now it prints the name of the
offending shell and the reason it couldn't be executed (Not found,
Permission denied, etc). ckufio.c, 28 April 2009. ====
There is no easy way to get the last field of string; for example, the
extension from a filename, which might have any number of fields. In
general we want to be able to get "word number n" counting from the
right; \fword() lacks this ability. Now if you give it a negative word
number, that says to count from the right; for example \fword(one two
three four five, -2) returns "four". ckclib.c, ckuusr.c, 14 May 2009.
====
Fixed a typo in the aix51+openssl (SSLLIBS should have been SSLLIB).
From Jason Lehr. makefile, 27 May 2009. ====
Updated the linux+openssl+zlib+shadow+pam target to chain to the new
main Linux target. A bunch of other ones remain un-updated. makefile,
12 Jun 2009. ====
Updates to the new Mac OS X 10.5 target from Seth Theriault (which is
supposed to work on all Mac OS 10-point-anything) to avoid warnings
that came up on on Mac OS 10.4.11/Intel. Once this one is proven we
should be able to remove/consolidate lots of other ones. makefile, 12
Jun 2009. ====
C-Kermit disables SSL with the message "?OpenSSL libraries do not match
required version." if the version of OpenSSL that Kermit was built with
is not exactly the same as the version that is loaded dynamically at
runtime. This is actually the proper behavior, since APIs are not
guaranteed not to change between OpenSSL versions prior to 1.0.0. Made
the error message more informative. ck_ssl.c, 26 Aug 2009, and again 28
Aug 2009. ====
AIX 6.1 is out, it is really just a new name for AIX 5.4. Added
makefile targets, plus for the first I made AIX 4.2 and later figure
out its version number in the makefile target so we don't have to keep
adding new -DAIXnn sections to the code, and also get its hardware name
(e.g. "powerpc") from uname at make time, rather than hardwiring
"rs6000" as I did before. Consolidated all AIX 4.2 and later targets so
now just "make aix" or "make aix+ssl" can be used. Except not the gcc
ones as they have some quirks so I'd rather not disturb them. Tested
this on AIX 5.3. makefile, 28 Aug 2009. ====
From Kinjal Shah, a correction to the Linux makefile entry that allows
it find the 64-bit curses or ncurses library. makefile, 29 Aug 2009.
====
Renamed aix4[23]: to oldaix4[23]: in makefile to fix the warning
messages I didn't notice before. I didn't want to remove them because
they have some special things that might still be needed, if anybody
still has these AIX versions. makefile, 29 Aug 2009. ====
Built on RHEL 5.3 64-bit, regular and with OpenSSL 0.9.8e. 31 Aug 2009.
====
Built on NetBSD 5.0.1/i386, regular and with OpenSSL 0.9.9-dev, 1 Sep
2009. ====
Changed SSL message to mention LD_LIBRARY_PATH (Solaris), SHLIB_PATH
(HP-UX), LIBPATH (AIX), or LD_LIBRARY_PATH (Linux). ck_ssl.c, 3 Sep
2009 ====
Noticed that "make linux+openssl" fails to include -lutil a link time,
which it needs for openpty(). That's because this target is obsolete. I
renamed it to be oldlinux+openssl and added linux+openssl as a synonym
for linux+ssl. makefile, 3 Sep 2009. ====
Tested linux+openssl+zlib+shadow+pam, it's OK. Also linux+krb5. Also
linux+krb5+ssl. makefile, 3 Sep 2009. ====
Tried building on Solaris 9 with OpenSSL 0.9.8k with
solaris9g+openssl+shadow+pam+zlib, it failed like so:
ck_ssl.c:2875: error: conflicting types for 'inet_aton'
/usr/include/arpa/inet.h:52: previous declaration of 'inet_aton' was here
make[2]: [ck_ssl.o] Error 1
make[2]: Leaving directory hmt/sirius1/prv0/kd/fdc/solaris9ssl'
make[1]: [solaris2xg+openssl+zlib+pam+shadow] Error 2
make[1]: Leaving directory hmt/sirius1/prv0/kd/fdc/solaris9ssl'
make: [solaris9g+openssl+shadow+pam+zlib] Error 2
The problem was caused by including an inet_aton() function ck_ssl.c
for the benefit of platforms that don't have one in their libraries.
This is defeated by including NO_DCL_INET_ATON in KFLAGS. I added this,
but then I thought it would be a good idea to automatically sense the
OpenSSL version so we can automatically set OPENSSL_097 or OPENSSL_098
rather than bombing out, so I added code to do that too, and also to
set the Solaris version number: 9, 10, or 11. The new entry is
solaris9g+openssl. ckcdeb.h, makefile, 3 Sep 2009. ====
Fixed a complaint in ckufio.c about implicit declaration of initgroups.
ckufio.c, 4 Sep 2009. ====
Built on Solaris 10 with gcc and Sun CC using new solaris{9,10,11}
target that is like the new solaris{9,10,11}g one but without the
gccisms. makefile, 4 Sep 2009. ====
Changed solaris{9,10,11}g+ssl target to set only the SSL-specific
things and then chain to the main solaris{9,10,11}g target. Tested OK
on Solaris 9 and 10. makefile, 4 Sep 2009. ====
Created solaris{9,10,11}+ssl target that is exactly like the
solaris{9,10,11}g+ssl except it chains to the solaris{9,10,11} target
instead of the solaris{9,10,11}g one. That is, it builds an SSL version
of C-Kermit using Sun CC rather than gcc. makefile, 4 Sep 2009. ====
Tried building on HP-UX 10.20, bundled (non-ANSI) compiler ("make
hpux1000"). This failed until I:
. Moved a struct initialization out of setextern(), ckuus3.c.
. Removed an ANSIism from the declaration of sigchld_handler() in ckutio.c
. Added a cast to strcmp() in zvuser(), ckufio.c.
Builds OK now. Built OK with "hpux1000o" (the ANSI compiler) too. And
with "hpux1000gcc". Couldn't test "hpux1000o+openssl". 21 Sep 2009.
====
The Sony Playstation 2 and 3 are 64-bit PowerPC platforms that can run
Linux if it is installed as an "other OS" on its hard disk; and the
Linux kernel since 2.6.21 supports the PS3 without any patching
required. Pawel Rogocz reported that "make linuxppc" (one of the old
targets that has not yet been integrated into the main "linux" target)
compiles OK on 2.6.29-ydl61.3 (Yellow Dog Linux release 6.2 'Pyxis'),
but fails at link time because 'openpty' isn't found, because -lutil
was not included, because that part was added only to the main linux
target. I asked him to try "make linux" and he sent back a transcript
in which there were thousands of errors from the curses code ckuusx.c.
Later I tried it myself and it built without a hitch. My theory is that
between then and now, a missing piece of the ncurses library
(/usr/include/ncursesw) was installed. 21 Sep 2009. ====
HP-UX 9.05 on PA-RISC 9000/712 building with hpux0900 (bundled
compiler):
. ckutio.c compilation failed with PENDIN and FLUSHO not defined in
pty_make_raw(). I dummied definitions for them to handle this situation
on this or any other platform where it might crop up.
ckutio.c, 24 Sep 2009.
. Ditto for the PTY module, + IMAXBEL. ckupty.c, 24 Sep 2009.
. References to endusershell() were fatal in the bundled compiler. Changed
the hpux0900 target to define NODCLENDUSERSHELL, and put a special case
in ckufio.c to not put a cast in front of the call if NODCLENDUSERSHELL
is defined. Now it builds and links OK. makefile, ckufio.c, 24 Sep 2009.
====
HP-UX 9.05 on PA-RISC 9000/712 building with hpux0900o (optimizing
compiler):
. Warnings in ckutio.c at line 14860 about arguments to select (pointers
are not assignment-compatible). "man select" says arguments are ints.
Defining INTSELECT fixes these warnings but results in fatal errors later
around line 14881 and others in the area involving FD_SET. This was too
involved so I put it back as it was. 24 Sep 2009.
====
Built OK on Solaris 10 with Sun CC. A couple warnings about implicit
function declarations for curses routines because apparently they
aren't declared in curses.h. Tuff. 25 Sep 2009. ====
Tried building on Solaris 10 with Sun CC and OpenSSL 0.9.8k, and this
uncovered various loose ends in the solaris9+openssl target, which I
fixed. makefile, 25 Sep 2005. ====
Fixed four typos in printfs in ck_ssl.c, \% instead of just %. 25 Sep
2009. ====
Squelched 20-some complaints about a character array being referred to
directly instead of by a pointer, plus several other similar nits to
get rid of all the compilation warnings on Solaris 10 with Sun C 5.8
Patch 121015-06 2007/10/03. ckctel.c, ckctel.h, 25 Sep 2009. ====
Built the result on the same Solaris 10 system with gcc 4.2.4 using the
new solari10g+openssl target, working out a few kinks here too.
makefile, 25 Sep 2009. ====
Made consolidated Solaris 9/10/11 64-bit targets for gcc, solaris9g64,
solaris10g64, solaris11g64, tested on Solaris 10 Sparc. makefile, 25
Sep 2009. ====
Made consolidated Solaris 9/10/11 64-bit targets for Sun cc:
solaris9_64, solaris10_64, solaris11_64. These simply set a couple
flags and chain to the main solaris9 target. makefile, 25 Sep 2009.
====
Removed a bunch of old superfluous Solaris 9 and 10 targets:
oldsolaris9, oldsolaris9lfs, solaris9g64 solaris9g_64, oldsolaris10 old
solaris10lfs, oldsolaris10+openssl, oldsolaris10g+openssl,
solaris10_64, oldsolaris10g, solaris10g_64, solaris10g64. There are
still plenty more to prune but it's a start. makefile, 25 Sep 2009.
====
Added or fixed some missing prototypes in ckctel.h:
fwdx_send_xauth_to_xserver(), fwdx_parse_displayname. 25 Sep 2009. ====
Improved the instructions for building secure versions in the makefile,
using this example:
make solaris9+openssl "SSLINC=-I/opt/openssl-0.9.8k/include" \
"SSLLIB=-L/opt/openssl-0.9.8k/lib"
makefile, [8]http://kermit.columbia.edu/security.html, 25 Sep 2009.
====
Built on HP-UX 11.11, 26 Sep 2009:
. make hpux1100 (ok)
. make hpux1100gcc (ok)
. make hpux1100o (gets a lot of warnings about sendpath and sendfile,
because they are also declared in <sys/socket.h>, but builds OK)
. make hpux1000gcc+openssl \
SSLINC=-I/opt/openssl/include SSLLIB=-L/opt/openssl/lib
Note: sendpath and sendfile are not Kermit symbols. The warnings are
coming from socket.h: 'Redeclaration of "sendfile" with a different
storage class specifier'. This is nothing new; see notes of 2-4 Jan
2005. ====
From Peter Eichhorn:
. Update to makefile to make current code build OK on HP-UX 8.00.
. Changes to format of some hints to make them more copy-and-pastable.
makefile, ckuu5.c, 28 Sep 2009. ====
From Peter Eichhorn: Changes to HP-UX 7.0 target to increase the switch
table stack size, which was overflowing. makefile, 30 Sep 2009 ====
HP-UX 6.5 (1989), "make hpux0650tcpc"... (8:19...) Needed to not
include arpa/inet.h (which doesn't exist) and not use host address
lists (add -DNOHADDRLIST), which gets us past ckcnet.c, but in ckcftp.c
we bomb out on FD_SETSIZE undefined. Somehow we worked around this in
ckcnet.c. Patched in a definition in ckcftp.c, and also added
-DINTSELECT to compiler flags. Compiles ok, bombs at link time on
bcopy, bzero, FD_ZERO, FD_SET, FD_ISSET. Now it compiles and links OK
but dumps core when started. Added -DNOCKGETFQHOST, rebuilt from
scratch (takes 35 minutes). It starts OK, but it dumps core when given
a "telnet xxx" command, where xxx is a hostname. However, it works OK
if an IP address is used: "telnet 123.45.6.78". It took all day to
track this down, but now it's fixed (see the #ifdef HPUX6 sections of
ckcnet.c). So now (for the first time, I think) we have both telnet and
ftp in HP-UX 6.x, if anyone cares. ckcnet.[ch], ckcftp.c, makefile, 2
Oct 2009. ====
Changed default SET TERMINAL TYPE type for K95 from vt320 to vt220.
This is because Unix OS's such as Solaris have dropped vt320 as a
terminal type. settrmtyp(), ckuus7.c, 5 Oct 2009. ====
I moved the PUTENV command code, which was inline, to a function,
doputenv(). ckuus[r7].c, ckuusr.h, 5 Oct 2009. ====
Changed the UNIX version of SET TERMINAL TYPE to take a value and then
do the equivalent of "export TERM=value" by calling doputenv(). This
sets \$(TERM) correctly and passes its value along to inferior
processes. However, to make this take effect within Kermit itself (for
the fullscreen file transfer display and for the SCREEN command,
Ctrl-L, etc) I also had to reinitialize the curses database, which is
tricky because normally if you feed it an unknown terminal name, it
just exits. ckuus7.c, 5 Oct 2009. ====
Changed the little-known and little-used RESET command (which closes
all open files) to also put command echoing back to normal in case it
got messed up somehow (as in HP-UX 6.5, upon returning from PUSH).
ckuusx.c, 5 Oct 2009. ====
For Unix, increased string buffer sizes for wildcard expansion for all
platforms that have BIGBUFOK defined from 500000 (0.5M) to 10000000
(10M) bytes, and for 64-bit builds to 2000000000 (2G) bytes. No point
making it bigger than that because malloc's argument is a size_t, which
is an int. ckufio.c, 5 Oct 2009. ====
Built on Mac OS X 10.4.11, required one minor adjustment to the
makefile (-DNODCLINITGROUPS). This was using the macosx10.5 target,
which is supposed to be universal like the linux and netbsd targets,
but not yet proven. Also built a 64-bit version (-mpowerpc64 -mcpu=G5
-mtune=G5 -arch ppc64); it compiles and links OK but won't start: "Bad
CPU Type in executable". Fix later... makefile, 5 Oct 2009. ====
Changes from Seth Theriault to suppress signed vs unsigned char
warnings in Mac OS 10.5.8 from gcc4, and a new makefile target for Mac
OS X (presumably 10.3.9 or later) + Kerberos 5 and OpenSSL. ckutio.c,
ckuath.c, ckctel.c, ckcnet.c, ckcftp.c, ck_crp.c, makefile, 6 Oct 2009.
====
Later I had to back out of these, because although it made for a
clean build, in the resulting executable SSL connections didn't work.
====
Tue Oct 6 17:23:27 2009 FTP address resolution is broken, but
ftp_hookup() hasn't changed. So... (see the #ifdef HPUX6 sections of
ckcnet.c) (I did, and I rolled back some of the changes from the other
day, but it made no difference.) Putting back the ckcftp.c from a few
weeks ago makes no difference. Putting back the ckcnet.c from a few
weeks ago makes no difference. ====
Added patches from Seth Theriault so macosx10.5+krb5+openssl would
build on Mac OS X 10.3.9. makefile, ckcftp.c, 7 Oct 2009. ====
Built today's code on Linux RHEL4, NetBSD 5.0.1, Solaris 9, and Mac OS
X 10.4.11, both with and without SSL. The NetBSD system has OpenSSL
0.9.9-dev. 7 Oct 2009. ====
In Mac OS X 10.6, the following symbols are unresolved at link time:
_des_key_sched, _des_new_random_key, _des_ecb_encrypt,
_des_init_random_number_generator, _des_fixup_key_parity. This is with
OpenSSL 0.9.8k. But it doesn't happen on other platforms that have
0.9.8k. ====
Added SET SESSION-LOG NULL-TERMINATED-TEXT. This is for the benefit of
a speech synthesizer that will speak a line of text only after
receiving a NUL character. A more general solution would be to define a
filter or whatever, but who has time. ckuus[23x].c, 7 Oct 2009. ====
Consolidated Mac OS X targets, and removed experimental 64-bit ones,
because they never could work in 10.5 and earlier because 64-bit libs
are missing, and 10.6 and later are 64-bit automatically. makefile, 8
Oct 2009. ====
Built on Mac OS X 10.6.1. It came out automatically as a 64-bit build
because __LP64__ is defined somewhere that I can't find. But this
explains why the 0.9.8k on 10.6 comes up with missing symbols when the
0.9.8k lib 10.5 (or on Solaris or on Linux) does not: it's a different
library: "Mach-O 64-bit dynamically linked shared library x86_64",
rather than "Mach-O dynamically linked shared library ppc". Probably
the 64-bit version has some things #ifdef'd out. Added -m32 to the
CFLAGS and LNKFLAGS for the macosx+krb5+openssl targets, and it built
OK one time. But then the errors came back. makefile, 8 Oct 2009. ====
Updated C-Kermit installation for Mac OS X in ckuwr.html on the
website. 8 Oct 2009. ====
Tried some things to get around the problem with OpenSSL in Mac OS X
10.6, to no avail. Asked Jeff. He said, "MacOS X no longer includes DES
anywhere on the system. Not for SSL, not for Kerberos, not for
anything. This will increasingly become the situation on new operating
systems. Windows 7 and 2008 R2 will also ship with no DES." Sure
enough, the Mac OS X Server Upgrading and Migrating document for 10.6
says, "Mac OS X Server v10.6 does not support single DES encryption. It
supports AES 128 and 256 encryption types. However, during a migration
or upgrade from v10.4 to v10.6, servers that were Kerberized by the
v10.5 Open Directory server will not use the AES 128 or 256 encryption
types. To use the AES 128 or 256 encryption types you must re-Kerberize
all servers." 12 Oct 2009. ====
DES and 3DES encryption can be excluding removing the -DCK_DES flag. I
removed this one and -DLIBDES (and -m32) and this makes a working
64-bit version. Then I added code to the macosx+krb5+openssl target to
use these flags if the Mac OS X version was 10.5 or less and leave them
out for 10.6 or later. Tested on 10.4.11 and 10.6.1. A better way to do
it might have been "nm -gj libssl.dylib | grep des_", but that gives
the same results on 10.4 and 10.6. Also, 10.6 still has
/usr/include/ssl/des.h. makefile, 13 Oct 2009. ====
Next issue:
In file included from ckutio.c:15674:
/usr/lib/gcc/i386-redhat-linux/3.4.6/include/varargs.h:4:2: #error "GCC no
longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.6/include/varargs.h:5:2: #error "Revise
your code to use <stdarg.h>."
The problem occurs when trying to force a non-ANSIC build with GCC.
Changing the source file to include <stdarg.h> instead of <varargs.h>
doesn't help because evidently <stdarg.h> requires an ANSI C compiler.
Nothing can be done about this. 13 Oct 2009. ====
Next issue: Can't compile ckcftp.c with -DNOCSETS or -DNOSPL; some
#ifdef/#endif doesn't match up. Sigh, this is the hardest kind of thing
to debug. There's 17,622 lines of code in this module and no tool that
I know of.... Wait, I wrote one. But it shows all the
#if/#ifdef/#ifndef's and #endifs matching up just fine. Backing off to
ckcftp.c of a few days ago (before char / unsigned char casts were
added), I see that it builds OK, so I backed off to that one, but put
back the special case #ifdef for MACOSX103 declaring CONST
gss_OID_desc, and it builds OK (the other stuff was purely cosmetic,
when will I learn?). ckcftp.c, 13 Oct 2009. ====
Protected cvtstring() and related functions with #ifdef
NOCSETS..#endif, and ditto for the character-set conversion code in
dorename(). ckuus6.c, 13 Oct 2009. ====
Fixed an #endif /* TNCODE */ that was a line too low in ttptycmd(),
causing -DNONET builds to fail. ckutio.c, 13 Oct 2009. ====
There was a reference to doputenv() that wasn't guarded by #ifndef
NOPUTENV, fixed in ckuus7.c, 13 Oct 2009. ====
Moved doputenv() and settermtyp() out of an #ifdef NOLOCAL section
because these are useful even when not making connections. ckuus7.c, 13
Oct 2009. ====
Moved havelfs declaration outside of #ifdef NOXFER because it was also
used for other things. ckcmai.c, 13 Oct 2009. ====
COPY /PRESERVE depended on code from the Kermit protocol module, which
is omitted in -DNOXFER builds. Disabled COPY /PRESERVE in -DNOXFER
builds. ckuus6.c, 14 Oct 2009. ====
SHOW PROTOCOL code for external protocols had to be #ifdef'd out for
-DNOPUSH builds. ckuus4.c, 14 Oct 2009. ====
There was some confusion between "No XYZMODEM" and "No external
protocols"; cleared up in ckuus3.c, 14 Oct 2009. ====
After all that, 86 different combinations of feature selections built
OK on Linux. And the Kerberized version (K5) works OK on Linux for
Telnet and FTP. 14 Oct 2009. ====
Changed version number to 9.0. All modules, 16 Oct 2009. ====
Need to make LOG SESSION log to a tty. Right now "log session
/dev/ttyKeySerial1" says "Write permission denied" even though the
device is crw-rw-rw-. This happens in zchko(), which is called by
cmofi(). The problem is that /dev/ is not writeable. I added a
Unix-only clause that attempts to open the file for write access using
open(), in order to get a file descriptor, which then can be passed to
isatty() to check if it's a tty, and if so, to allow access. And then
close it. I tested this on Mac OS X as follows:
log session /dev/ttyKeySerial1
telnet somehost
The Mac's serial port was connected to the serial port of another
computer where Kermit displayed the incoming characters in CONNECT
mode. Glitches:
1. The port has to be set up as desired in advance, outside of Kermit.
2. log session /dev/ttyKeySerial1 will hang if any required modem signals
are not present when the port is opened.
3. Bypasses lockfile mechanism - so we do this only if -DNOUUCP.
For (2), I tried setting O_NDELAY / O_NONBLOCK, and this allowed
zchko() to continue, but then it freezes in the subsequent fopen(). So
I changed zopeno() to also check if the device is a serial port, and if
so, to open() it with O_NDELAY / O_NONBLOCK, and then convert the file
descriptor into a file pointer with fdopen().
Now for the speaking device that needs lines to be terminated by NUL...
set session-log binary <-- need to put these in SHOW LOG
set session-log null-padded (and in HELP SET LOG)
set line /dev/ttyKeySerial1
This part works.
This feature is enabled only for -DNOUUCP builds because serial ports
aren't like other Unix files; we would have to create a lockfile, but
we can't do that... actually, ttlock() takes a name as an argument, but
ttunlck() does not, so there would be no way to remove the lock.
Anyway, there is only one API for configuring the port (speed, flow
control, etc) and it only works with the SET LINE device, not any
random file. To fix this would require massive redesign and changes.
ckuus[23].c, ckufio.c, 19-20 Oct 2009. ====
I made -DNOUUCP the default for Mac OS X, since everybody winds up
building it that way anyhow. To undo this, do "make macosx
KFLAGS=-UNOUUCP". makefile, 21 Oct 2009. ====
Changed SET SESSION-LOG TEXT to strip out ANSI escape sequences;
previously there wasn't that much difference between TEXT and BINARY
logs. It's still not perfect; for example it doesn't delete characters
that the user erased. (Made sure this still builds with -DNOESCSEQ.)
ckucns.c, 22 Oct 2009. ====
Changed SHOW LOG to show the SET SESSION-LOG settings, as well as SET
DEBUG, which was not shown before. ckuus5.c, 22 Oct 2009. ====
If a series of PUTENV commands is given, each new one undoes the
previous one, so only the last definition is seen by the new fork (or
by Kermit itself). Turns out you can't feed automatic variables to
putenv(); they have to be static, so to allow for multiple PUTENV
commands Kermit has to maintain an array of static strings. ckuus7.c, 6
Nov 2009. ====
From Seth Theriault, a better way for the makefile to determine the Mac
OS X version number; there's a program for this, sw_ver. makefile, 6
Nov 2009. ====
Peter Eichhorn reported that file-transfer failure hints were not
coming out since Dev.27. The only change I made since then was to skip
them if the file-transfer protocol was not Kermit. I was using the
wrong variable in the tests, 'proto' instead of 'protocol'. ckuus5.c, 6
Nov 2009. ====
Changed Mac OS X targets to correctly extract the Mac OS major version
from uname -r in order to choose correctly between utmp and utmpx; this
wasn't working in 10.6.1. makefile, 6 Nov 2009. ====
Fix from Seth T. for an oversight in the previous edit. Also add
MACOSX103 to "show features" display. makefile, ckuus5.c, 10 Nov 2009.
====
Added REJECT as a synonym for DISCARD in SET FILE COLLISION; it's more
intuitive and more accurate. ckuus[27].c, 15 Nov 2009. ====
\fsplit() and \fword() always break on 8-bit characters unless you
explicitly put every single 8-bit value into the include set, e.g. (for
a TSV file):
undef include
for \%i 128 255 1 {
if == \%i 9 continue
.include := \m(include)\fchar(\%i)
}
.\%n := \fsplit(\m(line),&a,\9,\m(include))
I changed cksplit() to treat all 8-bit bytes 128-255 as non-break
characters by default. It might have made more sense to do this for
160-255 (since 128-159 are traditionally C1 control characters) but
thanks to Microsoft tradition is out the window. To treat one or more
8-bit characters as break characters, put them in the break set. This
might break some scripts, but I doubt it because this flaw was so awful
that if anyone had come up against they would have let me know.
ckclib.c, 16 Nov 2009. ====
Changed the netbsd target to set -funsigned-char, since cc on NetBSD is
actually gcc. makefile, 16 Nov 2009. ====
Changed macosx targets to get the CPU type from the HOSTTYPE
environment variable. Also added getenv("HOSTTYPE") as a last-resort
method to set the \v(cpu) variable at runtime (maybe it should be the
first resort?)... ckuus4.c, makefile, 16 Nov 2009. ====
Made sure the solaris9_64 and solaris10 targets still work. 16 Nov
2009. ====
Made sure the current source package builds OK on HP-UX 10.20... Got a
lot of "warning 6062: Optdriver: Exceeding compiler resource limits in
xxx; some optimizations skipped. Use +Onolimit if override desired" but
it builds OK. Tested long file transfer; works OK. 17 Nov 2009. ====
Built on FreeBSD 7.2 with and without OpenSSL, all OK. 17 Nov 2009.
====
Built on NetBSD 5.0.1 with and without OpenSSL, all OK, but netbsd+krb5
fails with "can't find -lgssapi_krb5"; worked around this with
"K5LIB=-L/usr/local/kerblib" (where the lib actually is on this host)
but then it failed with "ckcftp.c:13868: error: 'gss_nt_service_name'
undeclared". 17 Nov 2009. ====
I found a VMS 6.2 system... Takes a loooong time to build there. In
ckuusy.c, DEC C didn't like the prototypes and declarations of
dorlgarg() and dotnarg() as static so I made them not static. But that
didn't help, now it fails at the very end, saying the final #ifdef is
an invalid statement. It looks like an #ifdef mismatch that affects
only VMS. I ran my #ifdef matcher, it turned up nothing. I substituted
a copy of ckuusy.c from 2007, it comes up with the same errors. Then I
substituted the copy from 8.0.211 from 2004, and this one compiled OK
and, miraculously, the whole mess even linked OK and runs OK. The Alpha
binary is 2.84MB. Now I have 4500 lines of code to compare.... I went
through the two files line by line and I can't see a single thing
wrong. I gave up and tried building the TCP/IP version. It builds fine
except for ckuusy.c, with the utterly useless error message:
#endif /* NOCMDL */
...................^
%CC-E-BADSTMT, Invalid statement.
Indicating the last line in the file. Just for the heck of it, I put
another line after that one:
/* This is a test */
and got:
/* This is a test */
....................^
%CC-E-BADSTMT, Invalid statement.
So it is not objecting to anything in the file. Trying the old LISP
trick, I put an extraneous closing bracket after that. Success!
Honestly, I don't see anything wrong with file. It's DEC C V5.3-006. I
suspect a C bug. I'll leave it like this for now until I get access to
some other VMS versions. Another clue is that when building the network
version I get a horrible warning I never saw before from a module that
hasn't been touched in a very long time (ckvrtl.c). Also, in the
network version, I note that the FTP code is not compiled in. We have
to try this again with some command-line switches, but it'll do for
now. ckuusy.c, 18 Nov 2009. ====
---C-Kermit 9.0 Alpha.01--- ====
From Steven Schweda (SMS), the real solution for the VMS closing brace
problem, it wasn't a DECC bug, it was a me bug. ckuusy.c, 20 Nov 2009.
====
Rediscovered the new VMS build options: f for Long Files, i for
Internal FTP. "make mnf" doesn't work on VMS 6.2, it looks like the VMS
definition for CK_OFF_T got lost. Same thing with "make mfi". Come back
to this later. ====
From Gerry Belanger, a fix to INPUT /COUNT:n. ckuus4.c, 26 Nov 2009.
====
Added \fsqueeze(s), returns string s with leading and trailing
whitespace removed, Tabs converted to Spaces, and multiple spaces
converted to single spaces. For now, ASCII only, no options. ckuusr.h,
ckuus[24].c, 27 Nov 2009. ====
I wrote a Kermit script to read a big file of addresses on Solaris 9,
\fsqueeze()ing each line. After about 14000 lines, there was a malloc
failure in getnct() (the command-file reader). There's nothing wrong
with \fsqueeze(), the failure is on a deeper level, because the same
thing happens if I use \fupper() (which is structurally identical to
\fsqueeze()) in the same script. The problem is not in getnct() either,
because every malloc() is freed (I checked). On the other hand, the
same script (with \fupper() instead of \fsqueeze() completes OK in
C-Kermit 8.0.201. If I remove the function call (\fsqueeze() or
\fupper()) from the script, it also runs OK in 9.0. This seems to point
the finger at fneval(), which contains countless malloc's and free's.
But comparing fneval() between 8.0.211 and 9.0, I don't see any
difference that would explain this behavior -- nothing at all that
involves malloc(), makstr(), or free(). Nor any pertinent change in the
caller (zzstring) of fneval(). 27 Nov 3009. ====
Another problem is that when this happens, the error is not caught
(e.g. by the IF FAIL statement after the command that contains the
function call); instead, C-Kermit returns immediately to its prompt. 27
Nov 2009. ====
It could simply be that some of the buffers we allocate are much bigger
now. But again, I don't see much difference between 8.0.211 and 9.0; we
were already allocating 32K command-related buffers (malloc() takes a
size_t, and size_t is an int almost everywhere). I built the same
source on NetBSD and ran the same script (with \fqueeze()), and it
worked fine. Let's worry about this later, if it comes up. 27 Nov 2009.
====
Built OK on Silicon Graphics IRIX 6.5 R10000; regular build OK, SSL and
Kerberos builds failed. 30 Nov 3009. ====
Tried to build on Digital Unix 4.0F but it blew up in ckutio.c,
apparently not recognizing any of the terminal struct symbols from
termios.h. Tried again with gcc, same thing. Tried explicitly
#including <sys/termios.h> within #ifdef TRU64, same thing. What could
have changed? 30 Nov 2009. ====
Built OK on Linux RHEL5.4/Itanium-2, make linux. The secure build
required "FLAGS=-DNO_KRB5_INIT_ETS" and built OK. 30 Nov 2009. ====
Built OK on Digital Unix 4.0F using "make osf" instead of "make
tru64-40f". I don't know why the specific target doesn't work, but it's
not worth chasing down. 2 Dec 2009. ====
Built OK on MirBSD 10, despite a lot of gratuitous compiler warnings.
Built OK on MirBSD 10, OpenBSD 4.5, and Fedora 10. 3 Dec 2009. ====
(Various other successful Unix builds in these weeks...) ====
Built on VMS 7.2 and 8.3 with and without TCP/IP, no problems. 11 Jan
2010. ====
Built on VMS 8.3 with "make fi" to include the FTP client and long-file
support (mid Jan 2010).
Built on VMS 8.3 with UXC 5.6 and HP SSL 1.3, which is OpenSSL 0.9.7e.
It compiled and linked OK but when I tried to make an FTP SSL
connection it crashed in SSL$LIBSSL_SHR, which is called from
ssl_auth(), after having had TLS accepted as an authentication type,
but before actually authenticating. In Unix:
19. ftp open ftp.somecompany.com /user:pge.com/test_quota /password:xxxxxx
Connected to ftp.somecompany.com. 220-Somecompany FTP v6.0 for WinSock
ready... 220 Welcome to the online storage FTP server. Please check the
main web site for system announcements and AUP. (O) ---> AUTH TLS 234
AUTH command OK. Initializing SSL connection. TLS accepted as
authentication type SSL DEBUG ACTIVE =>START SSL/TLS connect on COMMAND
In VMS:
19. ftp open ftp.somecompany.com /user:pge.com/test_quota /password:xxxxxx
Connected to ftp.somecompany.com. 220 Somecompany FTP v6.0 for WinSock
ready... ---> AUTH TLS 234 AUTH command OK. Initializing SSL
connection. TLS accepted as authentication type SSL DEBUG ACTIVE
%SYSTEM-F-ACCVIO, access violation, reason mask=04, virtual
address=FFFFFFFF8001A120, PC=000000000068B118, PS=0000001B
Note: The Unix version received the second 220 response, the VMS
version did not. That's odd, it's the same code... 25 Jan 2010. ====
Added some essential details to the HELP FSEEK text. ckuus2.c, 25 Jan
2010. ====
Discovered that the result returned by \fsearch() is totally
unreliable. This is probably too hard to fix. ====
FSEEK did not pay attention to SET CASE, searches were always case
sensitive. Fixed in ckuus7.c, 26 Jan 2010. ====
FSEEK failed to find anything if the search pattern was matched in the
first line of the file. Fixed in ckuus7.c, 26 Jan 2010. ====
\fword() and \fsplit().... Another change, but not
backwards-incompatible. One may now put the word ALL (just like that,
all uppercase) as the include set (4th argument) to indicate that there
will be no break characters other than those explicitly given in the
break set, e.g. \fsplit(\m(xx),&a,:,ALL) breaks a line only on a colon
(:), nothing else. The original rules for cksplit() were more than a
little counterintuitive: the default break set is all non alphanums,
and the default include set is all alphanums, so if you wanted to parse
(say) a CSV file, breaking only on comma, you had to think of all the
characters you wanted to keep. This way you just say ALL. ckclib.c, 26
Jan 2010. ====
Speaking of CSV files... How can you put comma as a function argument
when comma is the function-argument separator? Use one of these forms:
\fsplit(\m(xx),&a,",",ALL)
\fsplit(\m(xx),&a,{,},ALL)
\fsplit(\m(xx),&a,\44,ALL)
\fsplit(\m(xx),&a,\fchar(44),ALL)
From John Dunlap, U. of Washington Applied Physics Lab: 'When "stty -a
< /dev/ttyS0 | grep crtscts" shows "crtscts" (not "-crtscts") and when
using a three wire serial interface and when asking kermit to not use
flow control (set flow none) then "ckutio.c1" (see attachments) fails
while "ckutio.c" works. The result of "diff -u ckutio.c1 ckutio.c" is
attached as "diffs"'. ckutio.c, 26 Jan 2010. ====
Changed the year from 2009 to 2010 in the modules I worked on today and
in the heralds, etc. ckckmai.c, ckuus5.c, ckutio.c, ckclib.c, ckuus7.c,
26 Jan 2010. ====
Built on Linux Fedora Core 3, regular and with OpenSSL 0.9.7a. Built on
Ubuntu 9.4 OK, but SSL and Kerberos builds failed due to not finding
libs and/or header files. I'm sure this could be fixed... 27 Jan 2010.
====
Added SSL, KRB4, and KRB5 to the startup herald for versions that were
built with SSL, Kerberos 4, or Kerberos 5. Built OK on Fedora 3 with
linux+krb5+ssl and new banner shows correctly. ckuus5.c, 27 Jan 2010.
====
Set NO_KRB5_INIT_ETS by default in ckuath.h since krb5_init_ets() is a
no-op in Kerberos 1.4.x and later and in some installations it can't be
found, which clobbers the build. ckuath.h, 27 Jan 2010. ====
Adapted to MINIX 3 1.5, the first version that has virtual memory
according to Andy T, who should know. On earlier versions (e.g. MINIX 3
1.2) any attempt to build C-Kermit causes the compiler to crash. Now
the compiler doesn't crash but it spews out countless warnings about
old-fashioned function declarations that I don't get anywhere else. The
real problems came in ckutio.c where numerous symbols were undefined at
compile time and the POSIX function tcgetpgrp() was not found at link
time, even though there is a prototype for it in the MINIX header
files, and there is no alternative (since POSIX doesn't let us use
ioctl()). Also note that there is some confusion over the compile-time
symbols MINIX, MINIX2, MINIX3, and MINIX315. You would expect MINIX to
mean "any version of MINIX" but in some parts of ckutio.c it means
MINIX 1.0. I sincerely doubt that C-Kermit 9.0 can be built on any
version of Minix before 3.1.5 so I removed the confusion and made MINIX
mean "any Minix". It builds on 3.1.5 OK now, except for the FTP client.
This can probably be fixed but... Modules changed: ckcdeb.h, ckuver.h,
ckcmai.c, ckuus5.c, ckutio.c, 1 Feb 2010. ====
Later.. Andy says MINIX does not support job control, so no program is
ever in the background. That settles that! 1 Feb 2010. ====
Built OK on Minix, Linux, Mac OS X, Solaris 9, NetBSD 5.0.1... 1 Feb
2010. ====
---C-Kermit 9.0 Alpha.02--- ====
From Christian Corti at Uni-Stuttgart.de: fixes to allow building on
SunOS 4.1, which once was my main development platform but which is
long-gone from here. ckupty.c, ckutio.c, 9 Feb 2010. (He says it is
also necessary to comment out the "struct winsize" and "struct ttysize"
in sys/ioctl.h; otherwise there will be a conflict with sys/ttycom.h
(included by termios.h) which also declares these structs. But you need
both includes.') ====
From John Dunlap, a fix for Kermit protocol fixed packet-timeout
interval going to a unexpected value (missing else clause in two
places). ckcfn2.c, 9 Feb 2010. ====
Added an aixg target to build on AIX with gcc when gcc is not installed
as cc, and also added CC=$(CC) CC2=$(CC) clauses to the aix and aix+ssl
targets. Wow, AIX really loses bigtime when receiving files through its
ssh server. Streaming can't be used, sliding windows recover from
errors but there are tons of them using the default 4K packets; 500
works much better. Built with IBM cc and gcc, and also tested
(successfully) the new aix+ibmssl target, in which the OpenSSL headers
and libs are in a standard place. makefile, 9 Feb 2010. ====
In ckupty.h, make the #include <sys/ioctl.h> be #ifndef SUNOS41. From
Christian Corti. 10 Feb 2010. ====
Built on VMS E8.4. 12 Feb 2010. ====
Tried to build on a real VAX-11/785 but the machine seems to be
seriously wedged. 12-15 Feb 2010. ====
Added note to CKVKER.COM to the effect the the 'f' option has no effect
on VAX architecture. 15 Feb 2010. ====
Moved the #include "ckvrtl.h" in the FTP module to below the include
for utime.h, because building the VMS version with the 'i' option
(meaning "include internal ftp client") results in "struct utimbuf tp"
erroring out because struct utimbuf is not defined yet (at least in
some version of VMS with some version of C). From Rob Brown, ckcftp.c,
20 Feb 2010. ====
From Martin Vorlaender: new code in VMS C-Kermit build procedure to
detect OpenSSL version automatically. ckvker.com, 22 Feb 2010. ====
Added code to INPUT command to strip ANSI escape sequences. It's
activated by SET SESSION-LOG TEXT. ckuusr.h: added prototype for
chkaes(); ckucon.c, ckucns.c: made inesc[] and oldesc[] global instead
of static; ckuus4.c: doinput() code for skipping escape sequences. 1
Mar 2010. ====
Peter Eichhorn complained that if you make an ssh connection with
Kermit, then log out from the ssh host, and then use a "connect"
command to make a new connection to the same host (which you can do
with Telnet), Kermit says (e.g.):
DNS Lookup... Can't get address for ssh -e none somehostname
Sorry, can't open ssh -e none somehostname: Error 0
I added code to detect and handle this case and it seems to work OK,
even though it's kind of a hack. ckuusr.[ch], ckuus7.c, 1 Mar 2010.
====
There has never been a clean way to put debugging messages (ECHO
commands) in a script which are executed only if debugging is desired
and ignored otherwise. You'd have to set a random variable and test it,
or define a macro or whatever. To make this more straightforward, I
added SET DEBUG MESSAGE ON/OFF/STDERR, and added a new MESSAGE (syn:
MSG) command for printing debugging messages to stdout if SET DEBUG
MESSAGE is ON or to stderr if SET DEBUG MESSAGE is STDERR. ckcmai.c,
ckuus[r23].c, 12 Mar 2010. ====
Also for debugging and error messages, I added \v(lastcommmand) so that
the command that failed can be included in an IF FAIL or DEBUG error
message. This works even for commands that have syntax errors.
ckuusr.h, ckuus5.c, ckucmd.c, 12 Mar 2010. ====
From SMS for VMS: 'Added/documented P3 options INTSELECT, OLDFIB,
OLDIP. Disabled (commented out) automatic definition of NOSETTIME for
VMS before V7.2 (vms_ver .lts. "VMS_V72").' ckcdeb.h, ckcftp.c,
ckcnet.c, ckuus[2567].c, ckvfio.c, ckvker.com, ckvrtl.[ch], 15 Mar
2010. ====
Exposed inesc[] and oldesc[] for VMS, so new INPUT command
escape-sequence stripping can work (really, chkaes() and related global
variables should be moved out of ck[uvd]con.c/ckucns.c and into a
common module; do that later). ckuusr.h, ckvcon.c, 15 Mar 2010. ====
Built OK on Solaris9, Mac OS X 10.4.11, RHEL4 (32-bit), RHEL5 (64-bit),
AIX 5.3, SCO OpenServr 6.0.0... 15 Mar 2010. ====
Not so good on VMS, turns out I made a typo in one of the VMS updates
(#ifndef OLDIP instead of #ifdef...). ckcnet.c, 16 Mar 2010. ====
More from SMS for VMS, 16 Mar 2010:
. Set MAXPATH correctly for VMS, ckcdeb.h.
. NAM -> NAML, QIO replaces system( "SET PROTECTION"), bugfixes in
cvtdir() and nzltor(), ... (See comments): ckvfio.c, new ckvrms.h.
(The RMS code in ckvfio.c was almost totally rewritten)
. Moved "NAMX$*" (and related) macros to ckvrms.h, and renamed to
"NAMX_*" (and similar "$" -> "_"), moved "FIB_*" macros from ckvrtl.c.
These changes are mainly to accommodate the ODS5 file system, which has
longer and mixed-case filenames, and also to execute certain commands
(e.g. for setting file protection, deleting directories) directly
instead of using a system() command.
Built OK on VMS 8.3 (with and without network support). 16 Mar 2010.
Failed to build on VMS 6.2. 16 Mar 2010. ====
FreeBSD 8.0 <libutil.h> has a hexdump() prototype that conflicts with
the hexdump macro defined in ckcdeb.h. Since the same thing is likely
to happen elsewhere, I changed the Kermit macro to ckhexdump as well
all references to it: ckcdeb.h, ckcftp.c, ckcnet.c, ckctel.c, ckuath.c,
ckutio.c, 16 Mar 2010. ====
Built OK on Digital Unix Tru-64 4.0E using "make osf", 16 Mar 2010.
====
Tried again to build Digital Unix Tru64 4.0E using "make tru64-40e",
but something prevents it from picking up the termios symbols and it
blows up in ckutio.c, whereas this used to work in earlier C-Kermit
versions. This is the only Tru64 system I still have access to, so I
can't tell if it's a local peculiarity or what. Note that POSIX is not
defined for this build. But if I define it, I get into trouble with
"struct timeval". Tried again with "KFLAGS=-DPOSIX -DNOTIMEVAL" but
that doesn't help. Tried "make dec-osf" and that worked OK but oddly
enough it makes a Kermit with less features than "make osf". 16 Mar
2010. ====
To go with MESSAGE and SET DEBUG MESSAGE, I added IF DEBUG, which is
true if SET DEBUG MESSAGE is not OFF and false otherwise. ckuusr.h,
ckuus6.c, 16 Mar 2010. ====
From SMS: Corrections to my merging of SMS's changes, ckcftp.c,
ckvrtl.h. Builds OK on VMS 6.2 now. Also did an SSL build on VMS 8.3
with OpenSSL m0.9.7e and "OPENSSL_DISABLE_OLD_DES_SUPPORT" was included
in P3 automatically by Martin V's addition to ckvker.com. 17 Mar 2010.
====
From SMS: #include <types.h> earlier for VMS in ckcdeb.h to pick up
off_t before it is referenced. This allows C-Kermit to compile on
VMS/Alpha 6.2 but linking fails on fseeko() and ftello() (and yet, a
functional executable is created, and FSEEK works right). Builds the
same way with no problems at all on VMS 8.3 / Alpha. In this case we
get the full 64-bit arithmetic... Well, 62 bits:
ATLAS::C-Kermit>( ^ 2 63)
9223372036854775000.0
ATLAS::C-Kermit>( ^ 2 62)
4611686018427387904
whereas on VMS 6.2 we get integers only up to (^ 2 30). 17 Mar 2010.
====
Changed the VMS build procedure to enable large file support
automatically for non-VAX and VMS 7.3 or greater. No reason not to
include this feature. Changed the sense of the F option to DISABLE
large file support in the unlikely case that C-Kermit is being built on
a suitable platform but the C library is older than VMS73_ACRTL-V0200,
in which case fseeko() and ftello() will come up missing at link time.
ckvker.com, 18 Mar 2010. ====
Changed VMS build procedure to include the FTP client in any network
build by default. Changed the sense of the I option to exclude the FTP
client, in case anybody would want to do that. ckvker.com, 18 Mar 2010.
====
From SMS: updated dependencies in CKVKER.COM, fix the "don't reinclude
me" clause in CKVRTL.H. 19 Mar 2010. ====
Built OK on VMS 6.2 and 8.3 with and without networking. Large file
support included automatically in VMS 8.3 FTP client included
automatically in both network builds. 19 Mar 2010. ====
Changed hexdump() to ckhexdump() in ck_crp.c, which I missed before. 19
Mar 2010. ====
---C-Kermit 9.0 Alpha.03--- ====
In HP-UX with the bundled-non ANSI compiler, we get warnings about
functions such as endusershell(), which are declared void in the header
files. But in non-ANSI builds we defind VOID to be int rather than
void, so our prototypes are wrong. I checked that HP-UX 9, 10, and 11
all have void datatype and changed the definition of VOID to void in
those cases. ckcdeb.h, 29 Mar 2010. ====
Fixed a typo in a debug() statement in cksplit() that was causing some
warnings. ckclib.c, 29 Mar 2010. ====
Ditto in tls_load_certs(). ck_ssl.c, 29 Mar 2010. ====
"make hpux1000o+ssl" files with: /usr/ccs/bin/ld: Unsatisfied symbols:
__umoddi3 (code)
__udivdi3 (code)
__eprintf (code)
It appears that OpenSSL (0.9.7c in this case) requires -lgcc. And
indeed hpux1000gcc+ssl builds fine. 29 Mar 2010. ====
There are various warnings in the SSL code in ckutio.c, ckcftp.c, and
ckcnet.c about pointers not being assignment compatible, but I have
learned from experience not to try to fix these (see notes from 6 Oct
2009). 29 Mar 2010. ====
connect(s, (struct sockaddr *)&hisctladdr, sizeof (hisctladdr)): In
FTP, this doesn't work on RHEL5 / Mac OX X 6.1/2 64-bit. But the
connect() in Telnet works. On Mac OS X 6.2 I tried changing the
socket() call to be like the one in ckcnet.c for Telnet, but it made no
difference. On a RHEL5.4 system on i386, FTP works fine, so it's not
the Red Hat version. On Digital Unix 4.0E 64-bit, same thing: ====
11:23:10.722 ftp_hookup[kermit.columbia.edu]=21
11:23:10.722 ftp hookup A[kermit.columbia.edu]
11:23:10.722 ftp hookup C[kermit.columbia.edu]
11:23:10.722 ftp hookup socket=4
11:23:10.722 ftp hookup HADDRLIST
11:23:10.723 ftp hookup connect failed=13
11:23:10.723 ftp hookup bad
13 = Permission denied:
[EACCESS] Search permission is denied for a component of the path prefix;
or write access to the named socket is denied.
On Gentoo Linux, also on Alpha, the errno is 51: Network is
unreachable. Clearly some data type in the sockets structs is out of
whack.
The third connect() argument is "address length". The address is a
struct sockaddr. About the third argument, RHEL5 "man connect" says:
The third argument of connect() is in reality an int (and this is what
4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in
the present socklen_t, also used by glibc. See also accept(2).
Building on RHEL5 on x86_64, where size_t is 8 and socklen_t is 4, I
get a warning:
ckcftp.c: In function 'ftp_hookup':
ckcftp.c:14667: warning:
comparison is always true due to limited range of data
Referring to:
if (hisctladdr.sin_addr.s_addr != (unsigned long) -1)
This seems to be the problem; if I remove the (unsigned long) cast (in
two places), the problem goes away. Actually what I should be comparing
it with is INADDR_NONE, which is defined appropriately in some header
file, e.g. as 0xffffffff. Also I define it explicitly as -1 if it is
not defined in any header file (as is the case in Solaris 9). Tested OK
on 64-bit RHEL5, 32-bit RHEL5, Digital Unix 4.0E 64-bit, Solaris 9
32-bit, Mac OS X 10.4.11 32-bit, Mac OS X 10.6.3 64-bit, AIX 5.3,
Gentoo Linux 2.6.31 on Alpha 64-bit, NetBSD 5.0.1 32-bit.... ckcftp.c,
29 Mar 2010. ====
---C-Kermit 9.0 Alpha.04--- ====
Yesterday's VOID redefinition caused problems for HP-UX in ckuusx.c, in
the curses section where VOID is undef'd and not used to avoid a
conflict with curses.h. As a workaround I defined a new macro CKVOID
with the same definition as VOID and used it in the offending section
of ckuusx. The real solution is to replace all references to VOID with
CKVOID (since VOID is increasingly likely to cause conflicts), but a
mass search and replace is not without risks. ckcdeb.h, ckuusx.c, 30
Mar 2010. ====
Changed VOID and CKVOID definition to be 'void' for all HP-UX (verified
by PeterE back to HP-UX 6.5, 1989). Still need to check this on HP-UX
5.21; if that's an exception it can be done in the makefile. ckcdeb.h,
30 Mar 2010. ====
The change I made to allow CONNECT to reestablish a previous SSH
connection prevented a new SSH connection to a different host to be
made. Fixed in ckuus7.c, 30 Mar 2010. ====
Fixed mistaken extern declarations of krb4_errno and krb5_errno as
strings in nvlook(); they are ints. Built OK on Mac OS X 10.6.3.
ckuus4.c, 30 Mar 2010. ====
A fix to Trusted HP-UX makefile target from PeterE, to account for the
equivalence of +openssl and +ssl as target suffixes. 30 Mar 2010. ====
Added a new function \fcvtcsets(string,cset1,cset1) that converts a
string from one character set to another. The csets are File
Character-Set names. ckuus4.c, 31 Mar 2010. ====
Added a new function \fdecodehex(string,prefix) that decodes a string
containing prefixed hex bytes. Default prefix is %%, but any prefix of
one of two chars (such as % or 0x) can be specified. ckuusr.h,
ckclib.h, ckclib.c, ckuusr.c, 31 Mar 2010. ====
Richard Nolde reports that Kermit can't find -lpam on Fedora 12 because
it's in /lib rather than /usr/lib. RHEL5 has symlinks, FC12 should too.
Added a note to the makefile. 1 Apr 2010. ====
Build on Solaris 11 for the first time. Had to adjust ckuver.h to get
the version herald right. This was on a box that reported its
architecture as i86pc. 1 Apr 2010. ====
Added MIME character-set names as invisible synonyms in the file and
terminal character-set tables, fcstab[] and tcstab[]. Note that not all
the character sets known to Kermit are registered in MIME. But at least
now MIME-registered character sets can be referred to by their MIME
names, e.g. ISO-8859-1, ISO646-ES, IBM437, WINDOWS-1252. These are not
listed if you type ? in a field that is parsing them, unless you type a
letter first, e.g. "i?" lists ISO- and IBM set names. Later maybe I'll
make parallel tables, or keyword attribute bit that says whether a name
is MIME or not. The real benefit of this change is that now Kermit can
take its character-set names from external sources like email headers
or web logs. ckuxla.c, 1 Apr 2010. ====
Changed the IF command to accept a bare macro name its condition. This
will parse and execute correctly if the macro is defined and if it has
a numeric value, or if it is not defined, in which case it evaluates to
0 (FALSE). If it is defined but has a non-numeric value, a parse error
occurs. ckuus6.c, 2 Apr 2010. ====
Added \fstringtype() function. Given a string argument, it tells
whether the string is 7bit, 8bit, utf8, binary, etc. ckuusr.h,
ckuus[4x].c, 2 Apr 2010. ====
Did a few builds to make sure there were no booboos. Solaris 9, NetBSD
5.01, Linux RHEL4, HP-UX 10.20 (non-ANSI compiler and ANSI optimizing
compiler), Mac OS X 10.4.11, SCO OSR 6.00. 5 Apr 2010. ====
---C-Kermit 9.0 Alpha.05--- ====
Increased maximum variable name length from 4K to 16K. Verified that
too-long names are caught and recovered from correctly. ckuusr.h, 6 Apr
2010. ====
Implemented a new \fsplit() option for parsing CSV files, which turns
out to be a little complicated, because the separator is not just a
comma, but a comma and all its surrounding spaces. Also there are
special quoting rules for fields with embedded commas and fields with
embedded quotes. ckclib.c, 7 Apr 2010. ====
---C-Kermit 9.0 Alpha.06--- ====
VMS changes from SMS. They build OK, Kermit file transfers are still
OK, but FTP text-mode GETs always hang on the 10th 8K network read.
Couldn't get a debug log this time. ckcmai.c, ckvfio.c, ckvrms.h,
ckvker.com. 8 Apr 2010. ====
Changing VNAML from 4K to 16K broke the build on HP-UX 9. Put it back
to 4K. 9 Apr 2010. ====
John Dunlap, running days-long stress tests between E-Kermit and
C-Kermit, found a bug in the packet-reading and -decoding code: If a
NAK packet arrives with its length field corrupted to indicate a bigger
size, and there are enough bytes following in the pipeline, ttinl()
will return a too-long packet (if there are not enough bytes waiting to
be read, then ttinl() will properly time out). In the bad case rpack()
trusts the packet length, uses it as the basis for computation of the
block-check length, which is then used to access memory that might not
be there, causing (at least on John's Linux system) a segmentation
fault. John added the normal clause to check the result of the
block-check calculation, and I changed ttinl() to always break on the
eol character (normally carriage return), since this can never appear
in a packet, even if we "set control unprefix all". Also added a check
to ttinl() to protect against length fields corrupted into illegal
values. ckcfn2.c, ckutio.c, 13 Apr 2010. ====
From Lewis McCarthy:
Based on code inspection, C-Kermit appears to have an SSL-related security
vulnerability analogous to that identified as CVE-2009-3767 (see e.g.
[9]http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3767).
I'm attaching a patch for this issue relative to the revision of ck_ssl.c
obtained from a copy of [10]http://www.columbia.edu/kermit/ftp/test/tar/x.zip
downloaded on 2010/07/30, which I believe is the latest.
When this flaw was first widely publicized at last year's Black Hat
conference, it was claimed that some public certificate authorities had
indeed issued certificates that could be used to exploit this class of
vulnerability. As far as I know they have not revealed specifically which
public CA(s) had been found issuing such certificates.
Some references: [11]http://www.mseclab.com/?p=180
[12]http://www.theregister.co.uk/2009/07/30/universal_ssl_certificate/
Patches added to ck_ssl.c, 4 Aug 2010. ====
Peter Eichhorn reported that "RENAME ../x ." didn't work. This is a
side effect of the changes of 2006 to the RENAME command, there was a
little confusion in the renameone() routine; fixed in ckuus6.c, 4 Aug
2010. ====
If only one file is FOPEN'd, FCLOSE given with no arguments would close
it. Turns out to be a bad idea. Example: program with an input and
output file, try to close the output file before it is opened by just
typing FCLOSE; this can mess up the input file. For safety FCLOSE has
to require a channel number or ALL. ckuus7.c, 4 Aug 2010. ====
Added \fstrcmp(s1,s2,case,start,length), which has the advantage over
IF EQU,LGT,LLT that case sensitivity can be specified as a function
arg, and also substrings can be specified. ckuusr.h, ckuus[24].c, 5 Aug
2010. ====
The CSV feature of Alpha.06 had a subtle flaw, namely that if the last
item in a comma separated list was enclosed within doublequotes with a
trailing space after the closing doublequote, a spurious empty final
element would be created in the result array. Fixed in cksplit(),
ckclib.c, 5 Aug 2010. ====
---Alpha.07--- ====
The CSV feature of \fsplit() splits a comma-separated list into an
array. To turn the array back into a comma separated list,
\fjoin(&a,\44,1) almost works, except for elements contain literal
doublequotes, such as:
Mohammad "The Greatest" Ali
This calls for making a symbolic CSV argument for \fjoin() like the one
that was made for \fsplit(): \fjoin(&a,CSV). Also \fjoin(&a,TSV) for
Tab-separated list. Thus if Kermit reads a record in CSV format, splits
it into an array, and then joins the array back into a CSV record, the
result will be equivalent to the original, according to the CSV
definition. It might not be identical, because if the result had
extraneous spaces before or after the separating commas, these are
discarded, but that does not affect the elements themselves.
Furthermore it is now possible to convert a comma-separated list into a
tab-separated list, and vice versa (which is not a simple matter of
changing commas to tabs or vice versa). ckuus4.c, 12 Aug 2010. ====
From Joop Boonen 26 Juli 2010: "Added HAVE_LOCKDEV as openSuSE >= 11.3
uses lockdev but not baudboy. They use ttylock directly. The program
code has been added so the the program works without a problem."
makefile, ckcdeb.h, ckutio.c, ckuus5.c, 23 Aug 2010. ====
---Alpha.08--- ====
From Gary Mills at the U of Manitoba: convert Solaris version from BSD
ptys to streams ptys because there are only 48 BSD-style ptys and he
was running out. No code changes needed, the only change necessary was
to add the following flags to the makefile target:
-DHAVE_STREAMS -DHAVE_GRANTPT -DHAVE_PTSNAME
-DPUSH_PTEM -DPUSH_LDTERM -DPUSH_TTCOMPAT
makefile, ckcmai.c, 21 Sep 2010. ====
Testing this in Solaris 9 I see that the DES library disappeared. Added
code to the solaris9 targets (also used by Solaris 10 and 11) to check
for this. makefile, 21 Sep 2010. ====
The Solaris target checked the OpenSSL version automatically to set the
right flag, the Linux target didn't. Put the OpenSSL-version testing
code in the Linux target too. makefile, 21 Sep 2010. ====
A couple minor changes to the tru64-51b makefile targets from Steven
Schweda but there still are some problems with the Tru64 Unix builds.
makefile, 21 Sep 2010. ====
---Alpha.09--- ====
\fcontents(\&a[3]) got an error if the array was declared but its
dimension was less than 3, which is bad when dealing with (say) an
array created dynamically by \fsplit(), which might or might not have a
third element. In case it doesn't -- i.e. in case we are referring to
an out of range element of any array that is declared -- we should just
return a null string, as we do with other types of variables that are
not defined. For that matter, ditto even if the array is not declared;
what useful purpose is served by throwing an error in this case?
ckuus4.c, 30 Dec 2010. ====
cksplit() treats \ as a quoting character. If the source string
contains backslashes, they are swallowed (or, if doubled, one is kept).
That's not good for parsing external data, such as lines read from
files, where there are no quoting rules. This came up when parsing CSV
files; as a workaround, I made \fsplit() treat backslash as an ordinary
character for CSV and TSV splitting (a better solution might be yet
another argument that specifies a quote character). ckclib.c, 30 Dec
2010. ====
Began converting C-Kermit to Open Source with the Simplified 3-Clause
BSD license. Updated the text for the INTRO, LICENSE, NEWS, and SUPPORT
commands. Fixed things so the copyright year to be displayed is defined
in one place (ck_cryear in ckcmai.c), rather than hardwired into text
strings all over the place. COPYING.TXT, ckcmai.c, ckuus[256].c, 2 Jun
2011. ====
When I added MIME synonyms for Kermit character-set names, I left a
bogus entry in the tables ("windows-1251") that was in the wrong place
alphabetically, thus preventing most references to file character-set
names from working right. Removed the bogus entry. ckuxla.c, 2 Jun
2011. ====
Most combinations work OK, but not translating Cyrillic text from UTF-8
to Latin/Cyrillic, and probably the same would be true for any case of
converting from UTF-8 or UCS-2 to anything else. The problem was in
xgnbyte(), which converts the input stream from the specified character
to UCS2; it needed to make a special case for when the input file was
already Unicode. Believe it or not, this problem occurred at least as
far back as 8.0.201 (9.5 years ago) and nobody noticed. So if the fix
isn't perfect probably nobody will notice that either. ckcfns.c, 3 Jun
2011. ====
The SET BLOCK CHECK command did not parse all the items in its keyword
list. Fixed in ckuus3.c, 3 Jun 2011. ====
For EM-APEX ocean floats project, where buoys in stormy waters have to
transmit data through an earth satellite using non-error-correcting
modems, John Dunlap ran exhaustive stress tests of Kermit protocol
transfers through a simulated connection that injected errors and
delays and identified a weakness in Kermit protocol when it is used
under extremely bad conditions: If a data byte of the S packet (or its
Ack) is corrupted and the 1-byte checksum is also corrupted in such a
way that that the checksum matches the corrupted data, the two Kermit
programs will disagree as to the negotiated parameters. For example, if
file Sender's RPT field is changed from '~' to '^', the receiver will
decode the packet incorrectly. Ditto for most of the other parameters.
The result is that a corrupted file is received but reported correct.
John suggested a new mode of operation in which the Type 3 block check
is used for all packets. Such a mode can not be negotiated because the
negotiation packet itself is assumed by all Kermit programs to have a
1-byte checksum. Added SET BLOCK-CHECK 5 to the parser (with invisible
synonym FORCE-3". ckuus3.c, 3 Jun 2011. ====
Added supporting code for SET BLOCK 5: ckcfn[23].c, ckcpro.w, ckcmai.c,
ckuus3.c, 3 Jun 2011. ====
Added code to skip the heuristic that S and I packets always have block
check type 1. File transfer OK between two C-Kermits with SET BLOCK 5.
rpack(): ckcfn2.c, 5 Jun 2011. ====
Made the file receiver put "5" in the block-check-type in its ACK to
the S-Packet. spar(): ckcfns.c, 5 Jun 2011. ====
Now the question is: Can we make the file receiver automatically and
safely recognize a three-byte block check on an incoming S or I packet?
It's tricky because the block check field is not self-identified, it's
just the last "n" characters of string indicated by the length field,
so correct decoding of the packet depends on stateful knowledge of "n".
How about this: rpack() already knows what type of packet it is, so if
it's an S or I packet and the 8th byte of the data field is "5" and
last 3 bytes, when interpreted as the CRC, match the packet contents,
then we accept the packet and switch to BLOCK 5 mode.
On the other hand, if the "5" was put there by corruption, the CRC
should catch the error. In that case we NAK the packet and presumably
get a different version back. There would be no reason to try to
re-read the same packet with a different block check, because the "5"
could not possibly be there legitimately unless it had a 3-byte CRC. To
be clear, this is cheating. We read the packet contents before we know
the packet is correct, then we check that it *is* correct. I made the
4-line change to rpack() and it works OK in the absence of transmission
errors. ckcfn2.c, 3 Jun 2011. ====
So the various combinations should work as desired:
. Sender and receiver both support and are told to SET BLOCK 5 ("SB5").
. Sender SB5, but receiver doesn't support it (errors out).
. Sender SB5, receiver supports it but wasn't told (auto-recognizes it).
. Receiver SB5 but sender no (errors out).
Note in the last case, the receiver should NOT automatically fall back
to standard behavior because if the user said SET BLOCK 5 that means
every packet MUST be protected by CRC to prevent the I/S packets from
being corrupted.
Installed new HELP SET BLOCK-CHECK text. ckuus2.c, 5 Jun 2011. ====
Autodownload didn't work when the S or I packet had a 3-byte block
check because kstart() checked it for a 1-byte checksum. Fixed in
kstart(), ckcfn2.c, 6 Jun 2011. However, older Kermit versions and
programs that claim to do "autodownload" will never recognize this type
of packet. No big deal since even if they did, the transfer would fail
anyway.
Added 'FORCE 3' to E-Kermit, called it EK 1.7. The option is "-b 5".
Works OK for sending and receiving, both with and without the new
option. Also works with "-b 5" if you send an S packet to it with '5'
in the BCT field. Changes were minimal, I have them all in ek17.diff.
I could probably also make a new G-Kermit in about 10 minutes, but who
cares about G-Kermit... We already have two useful Kermit programs that
interoperate with the new protocol. 6 Jun 2011. ====
Replaced the very inadequate help texts for functions \fword() and
\fsplit() with new ones. ckuus2.c, 6 Jun 2011. ====
There were a couple reports of file corruption that I was saving for
later. Now that now is later I dug up the messages, files, and logs and
it turns out that nobody had reported a reproducible case of Kermit
corrupting a file. There have been non-reproducible cases though,
almost certainly due to corruption of the S or I packet or its ACK,
which is why we now have SET BLOCK 5. Even with BLOCK CHECK 5, there is
no guarantee that the same thing won't happen, it is just far less
likely. Even if we added a 32-bit CRC or even 64-bit one, there would
still be a small chance it could happen. ====
7 Jun 2011:
Corrected various #ifdefs (or lack of them) when building C-Kermit with
different combinations of feature-selection options such as NOCSETS,
NOICP, NOLOCAL, NOSPL, NOUNICODE, etc. ckcfns.c ckcmai.c ckcxla.h
ckuus2.c ckuus4.c ckuus5.c ckuus6.c ckuusr.c, 7 Jun 2011. After running
the script that does all these builds (84 of them) I ran it again to
make sure that none of the changes broke builds that succeeded before
the changes were made.
Built OK on Solaris9 ("make solaris9") Ditto with Krb5 and OpenSSL
0.9.8q ("make solaris9g+openssl+shadow+pam+zlib")
Built OK on Mac OS X 10.4.11 ("make macosx"). Also "make
macosx+krb5+openssl.
Built OK on Linux RHEL4 ("make linux"). Built OK on Linux RHEL4 with
OpenSSL 0.9.7a ("make linux+ssl"). Built OK on Linux RHEL5 ("make
linux").
"make linux+ssl" fails on RHEL5 because of DES, even though the target
tests for the presence or absence of the DES libraries. In this case
the libraries are there but they lack the functions des_ecb3_encrypt,
des_random_seed, and des_set_odd_parity. The build succeeds as:
make linux+ssl KFLAGS=-UCK_SSL
Since DES is now considered harmful, Jeff Altman suggests that all
OpenSSL builds, even for old versions, should omit it ("If you are
building with openssl and no kerberos or srp, just disable DES.
Disabling DES will impact telnet and rlogin but it won't matter if you
have no ability to negotiate a session key").
From Ian Beckwith, patches for Debian Linux:
. Change all '-' to '\(hy' in man page (new pedantry): ckuker.nr.
. Make IKSD authentication (using PAM) ask for a password when an invalid
username has been given, to avoid disclosing which account names are valid:
ckufio.c, ckuus7.c.
. Fix spelling errors: ckcftp.c, ckuus2.c, ckuker.nr, ckcpro.w, ckuusr.h.
. Patch makefile to support install to a staging area with DESTDIR.
. Some other patches (mainly for typos) were for plain-text documentation
files that were generated from Web pages; I updated the web pages.
A big corporate C-Kermit user has an application where a local C-Kermit
makes a connection to a remote one, uploads some files, and then if the
server has any new patch files for the local, it sends the patches and
does a REMOTE HOST command to run the patch program. This stopped
working in C-Kermit 6.0 or 7.0 when I put a check to prevent it,
because "it makes no sense to send REMOTE commands to the local end,
because the results are sent back to the remote to be displayed on its
screen but it has no screen". That may be true, but if the user needs
to control the local from the remote, they should be able to. I removed
the checks. This doesn't solve the problem of where the output goes;
ideally it would go to the local screen but I don't see any elegant and
simple way to make that change. However the output redirectors can
still be used with the REMOTE command so the results can be captured to
a remote file, which could then be sent. ckuus7.c, 7 Jun 2011. ====
Changed SET VARIABLE-EVALUATION to SET COMMAND VARIABLE-EVALUATION, but
left the former version available. ckuusr.c, 9 Jun 2011. ====
Documented the SET COMMAND VARIABLE-EVALUATION command, which I added
in 2008. ck90.html, 9 Jun 2011. ====
Renamed all old Mac OS X makefile targets to have the prefix "old" to
avoid confusing them with the current targets, and made macosx10 a
synonym for macosx, so those who used previous makefiles will get a
current target without having to know the new name. makefile, 9 Jun
2011. ====
Added XMESSAGE, which is to MESSAGE as XECHO is ECHO: prints the text
without a line terminator, so it can be continued by subsequent
[X]MESSAGE commands. ckuusr.[ch], 9 Jun 2011. ====
Back to "make linux+ssl" on RHEL5... I took the coward's way out and
added code to the makefile target to check whether the build worked
(somebody let me know if there is a better way to check), and if not to
give a message suggesting they "make clean ; make linux+ssl
KFLAGS=-UCK_DES". makefile, 9 Jun 2011. ====
Noticed that \frecurse() would dump core if called with no arguments.
Fixed in ckuus4.c, 9 Jun 2011. ====
Added \q() as an alternative to the more verbose \fliteral() for
quoting strings that contain characters (like \) that would otherwise
be significant to Kermit. It's more efficient because it isn't a
function call, and 'q' is an intuitive letter to mean 'quote'. It also
works better than \fliteral() because functions treat commas and braces
specially. ckuus4.c, 10 Jun 2011. ====
Built OK on VMS 8.3 on Alpha, no net. DEC C caught a couple glitches in
the new code that gcc didn't catch, which I fixed. ckuus[25].c, 10 Jun
2011. ====
Built OK on VMS 8.3 on Alpha with Multinet 5.3. The SSL build failed
but I'm not going to worry about it. 10 Jun 2011. ====
Built OK on NetBSD 5.1. 10 Jun 2011.
Tried to resurrect my old "build-all" machine, an IBM Netfinity 3500
from 1997 with 20-some mountable bootable hard disks with lots of 1990s
OS's on them. No dice. I can see the BIOS but not the hard disks. The
configuration is still correct because it tries to boot from the
mountable hard disk, but it fails (I tried six different ones).
Tried to resurrect my old Siemens Nixdorf RM 200 MIPS machine. Booted
OK, headless even, but makes a hellish high-pitched whine, like a
dentist drill. It's pretty slow too. "make sinix542" (for SINIX 5.4.2)
bombed at link time on no rdchk(). Fixed by #including <sys/filio.h>.
ckutio.c, 10 Jun 2011. ====
Tried to resurrect my old SCO Xenix 2.3.4 machine, also headless.
Amazingly it still works; it can't use a monitor but I can Telnet to
it. Had to tweak some #ifdefs but I got a no-net version built
successfully. According to my notes, it hasn't been possible to build
with TCP/IP since C-Kermit 8.0, but how many people ever had SCO Xenix
2.3.4 with TCP/IP anyway? Anyway we still have the binaries for
C-Kermit 7.0. ckuus4.c, 10 Jun 2011. ====
Built OK on AIX 5.3. Built OK on Solaris 10. 11 Jun 2011. ====
Tried harder to revive the build-all machine, now it sort of works, but
not all of the bootable OS's work. Built C-Kermit 9.0 OK on OpenBSD
3.0. Built OK on QNX 4.25 but had to #ifdef references to IXANY in
ckutio.c and ckupty. Built OK on NetBSD 1.5.1 (2000). Tried "make
netbsd+ssl" on this one, it's OpenSSL 0.9.5a 1 Apr 2000, but it bombs
out in ckuath.c, no big deal. Another problem in NetBSD 1.5.2 is that
even though off_t is 8, CK_OFF_T is 4. Worth noting but not worth
fixing unless someone else notices. 13 Jun 2011. ====
SuSE 7.0... boots OK but telnet server doesn't work. Can telnet out but
it's too flaky, connection drops if I try to transfer a file.
OpenBSD 2.5 [1999] OK. Red Hat 7.1 OK. Red Hat 7.1 with OpenSSL 0.9.6
not OK, same error as with 0.9.5a:
ckuath.c In file included from ck_ssl.h:48,
from ckuath.c:225:
/usr/include/openssl/des.h:77: warning: redefinition of `Block'
ckuat2.h:86: warning: `Block' previously declared here
/usr/include/openssl/des.h:83: redefinition of `struct des_ks_struct'
/usr/include/openssl/des.h:91: warning: redefinition of `Schedule'
ckuat2.h:90: warning: `Schedule' previously declared here
So it appears that OpenSSL support is broken for pre-0.9.7. Tried
building it again with -UCK_SSL (since the errors are originating from
from des.h)... But it still failed exactly the same way. I found
#includes for des.h in ckuath.c and and ck_ssl.h and #ifdef'd them out,
but it still fails:
In file included from /usr/include/openssl/evp.h:89,
from /usr/include/openssl/x509.h:67,
from /usr/include/openssl/ssl.h:69,
from ck_ssl.h:51,
from ckuath.c:227:
/usr/include/openssl/des.h:77: warning: redefinition of `Block'
ckuat2.h:86: warning: `Block' previously declared here
/usr/include/openssl/des.h:83: redefinition of `struct des_ks_struct'
/usr/include/openssl/des.h:91: warning: redefinition of `Schedule'
ckuat2.h:90: warning: `Schedule' previously declared here
Built OK on Debian 2.1. 13 Jun 2011. ====
On FreeBSD 4.4, it blows up with: ckufio.c: In function vpass':
ckufio.c:8201: conflicting types for 'initgroups'
/usr/include/unistd.h:154: previous declaration of 'initgroups'
ckufio.c:8201: warning: extern declaration of 'initgroups' doesn't
match global one. Fixed by defining NODCLINITGROUPS for FreeBSD in
ckufio.c. It might not be the right fix, but I don't have a lot of
other FreeBSD versions to compare with. Anyway now it builds OK on 4.4,
and also on FreeBSD 3.3. ckufio.c, 13 Jun 2011. ====
Tried to build on SCO Open Server 5.0.7 but it fails at link time
because it can't find rdchk(). But it's supposed to be there! Come back
to this later...
Red Hat 6.1 i386 32/64 linux 2332545 Red Hat 7.1 i386 32/64 linux
2368528 Red Hat EL4 i386 32/74 linux 2363067 Red Hat EL5.6 i386 64
linux 2371279 Solaris9 sparc 32/64 solaris9 2849896 Solaris9+ssl sparc
32/64 solaris9 5021764 Solaris10 sparc 32/64 solaris10 2855776 QNX i386
32 qnx32 2012323 NetBSD 1.5.1 i386 32/64 netbsd 2198055 NetBSD 5.1 i386
32/64 netbsd 2159863 OpenBSD 2.5 i386 32/64 openbsd 2236036 Mac OS X
10.6.7 x86_64 64 macosx 2.7M Mac OS X 10.4.11 ppc 32/64 macosx 2496304
Debian 2.1 i386 32/64 linux 2213221 FreeBSD 4.4 i386 32/64 freebsd
2291333 FreeBSD 3.3 i386 32/64 freebsd 2147370 SINIX 5.42 mips 32
sinix542 3319325 (1995) SCO Unixware 2.1.3 i386 32 uw213 2242176 SCO
OSR6.0.0 i386 32/64 sco_osr600 2368300
More builds, 14 June 2011:
VMS 6.2 alpha 32 make mn 2556928 No TCP/IP VMS 6.2 alpha 32 make m
3112960 UCX 4.0 Solaris 11 i386 32/64 solaris11 2823860 Solaris 11 i386
32/64 solaris11+ssl 2993660 OpenSSL 0.9.8l NetBSD 5.1 i386 32/64
netbsd+krb5 2307855 Kerberos 5 Linux Slackware 12.1.0 i386 32/65 linux
2175754 Linux Fedora 14 i386 32/64 linux 2256514 Linux Fedora 14 i386
32/64 linux+ssl ....... OpenSSL 1.0.0d Linux Fedora 14 i386 32/64
linux+krb 2449614 (*)
(*) make linux+krb5 "LIBS=$LIBS /lib/libk5crypto.so.3
/lib/libcom_err.so.2"
Noticed that netbsd+ssl build on NetBSD 5.1 said "NetBSD 1.5" in its
banner. Fixed by replacing the old hardwired target with the new
"subroutinized" target a'la linux+ssl and adapting it to NetBSD.
makefile, 15 Jun 2011. ====
Same deal for Kerberos 5, make a new netbsd+krb5 target and it builds
ok, at least once one figures out where the Kerberos headers and libs
are. makefile, 15 Jun 2011. ====
Same deal for the netbsdnc target, now it simply defined NOCURSES and
chains to the main netbsd target. makefile, 15 Jun 2011. ====
Tried to build with Kerberos 5 on Solaris, fails because the DES
library no longer exists. This one is beyond me, sorry. ====
Made new targets for MirBSD, mirbsd and mirbsd+ssl, makefile 15 Jun
2011. ====
In OpenSUSE 11.2 with OpenSSL 0.9.8r we bomb on undefined references
from various DES library routines. Builds OK without DES. ====
Various linux+krb5 builds fail because can't find -lgssapi_krb5 ====
SSL builds with OpenSSL < 0.9.7 fail even though there is code to
support the older SSL. ====
Fixed some printf %ld vs int instances in the sizeofs section of SHOW
FEATURES. ckuus5.c, 15 Jun 2011. ====
Fixed the new linux+ssl target to actually use the SSLINC and SSLLIBS
definitions, oops. makefile, 15 Jun 2011. ====
15 June 2011 builds (Beta.01):
AIX 5.3 ppc 32/64 aix+ssl 3283846 OpenSSL 0.9.8m NetBSD 5.1 i386 32/64
netbsd 2159863 NetBSD 5.1 i386 32/64 netbsd+ssl 2350274 OpenSSL
0.9.9-dev NetBSD 5.1 i386 32/64 netbsd+krb5 2349627 MIT Krb5 1.6.3
FreeBSD 8.2 i386 32/64 freebsd 2298414 FreeBSD 8.2 i386 32/64
freebsd+ssl 2448961 OpenSSL 0.9.8q OpenBSD 4.7 i386 32/64 openbsd
2266132 OpenBSD 4.7 i386 32/64 openbsd+ssl 2409263 OpenSSL 0.9.8k
MirBSD 10 i386 32/64 mirbsd 2216601 MirBSD 10 i386 32/64 mirbsd+ssl
2358318 OpenSSL 0.9.8r OpenSuse 11.2 x86_64 64 linux 2348468 OpenSuse
11.2 x86_64 64 linux+ssl (*) 2546540 OpenSSL 0.9.8r RHEL 5.6 ia64 64
linux 4390687 RHEL 5.6 ia64 64 linux+ssl (*) 4775007 OpenSSL 0.9.8e
Ubuntu 9.10 i386 32/64 linux 2275523 Ubuntu 9.10 i386 32/64 linux+ssl
2466708 OpenSSL 0.9.8r Gentoo 1.12.13 ppc 32/64 linux 2386597 Gentoo
1.12.13 ppc64 64 linux 2749015 Gentoo 1.12.13 ppc64 64 linux+ssl
3002150 OpenSSL 0.9.8r Gentoo 1.12.13 sparc 32/64 linux 2478382 Gentoo
1.12.13 sparc 32/64 linux+ssl 2690499 OpenSSL 0.9.8r Solaris 9 sparc
32/64 solaris9 2849896 Solaris 10 i386 32/64 solaris10 2837620 IRIX 6.5
R10000 32/64 irix65 2869704
* and KFLAGS=-UCK_DES
Tried building on NetBSD 5.1 with Heimdal Kerberos using:
make netbsd+krb5 \
"KFLAGS=-DHEIMDAL" \
"K5INC=-I/usr/include" \
"K5LIB=-L/usr/lib"
It found all its headers OK, but it blew up in ckuath.c. Small wonder,
ckccfg.html says:
HEIMDAL
Should be defined if Kerberos V support is provided by HEIMDAL. Support
for this option is not complete in C-Kermit 8.0. Anyone interested in
working on this should contact kermit-support.
KERBEROS VERSION:
'krb5-config --version' gives the MIT Kerberos 5 version number. ====
Make a new netbsd+krb5+ssl target based on the combination of the new
netbsd+ssl and netbsd+krb5 targets. There were lots of warnings in the
compilation but no errors, but it produced an executable that starts
and does normal things but I have no idea if the SSL or Kerberos
functions work. makefile, 16 Jun 2011. ====
Changed the cu-solaris9-krb5 target to test for the presence of DES
because DES isn't there, to see if this would allow a Kerberos build to
proceed. And it worked, amazing. At least the build completed, I have
no way to test the Kerberos part. makefile, 16 Jun 2011. ====
Updated the solaris9+ssl target to do the DES testing. makefile, 16 Jun
2011. ====
Updated cu-solaris+krb5 target to test whether the GSSAPI library is
called libgassapi or libgassapi_krb5. makefile, 16 Jun 2011. ====
Added lots of tests to the Linux Kerberos 5 entries, linux+krb5 and
linux+krb5+ssl, because some have libk5crypto and some don't; some have
libcom_err and some don't; and some have libgssapi_krb5 (e.g. RHEL5,
OpenSuse 11.2) whereas others have libgssapi (Gentoo). ====
16 June 2011 builds (Beta.01):
NetBSD 5.1 i386 32/64 netbsd+krb5+ssl 2451757 OpenSSL 0.9.9 MIT Krb5
1.6.3 Solaris 9 sparc 32/64 solaris9+krb5 2543036 MIT Kerberos 5 1.7.1
Solaris 9 sparc 32/64 solaris9+ssl 5021544 OpenSSL 0.9.8q (gcc)
Gentoo... ppc 32/64 linux 2386597 Gentoo... ppc 32/64 linux+ssl 2593561
OpenSSL 0.9.8r Gentoo... ppc64 64 linux 2749015 Gentoo... ppc64 64
linux+ssl 3002150 OpenSSL 0.9.8r RHEL5 x86_64 64 linux+krb5 (*) 2563878
MIT Kerberos 5 1.6.1 RHEL5 x86_64 64 linux+krb5+ssl(*) 2563878 MIT
Kerberos 5 1.6.1 Fedora 14 i386 32/64 linux+krb5+ssl 2539891 MIT Krb5 +
OpenSSL 0.9.8r
* KFLAGS=-UCK_DES ====
--- C-Kermit 9.0.299 Beta.01 --- ====
sizeof() can return a long or an int, so neither
printf("%d",sizeof(blah)); or printf("%ld",sizeof(blah)); can be used
everywhere. Changed the "sizeofs" section of SHOW FEATURES in the
dumbest (and therefore most portable) way to squelch the warnings.
ckuus5.c, 17 Jun 2011. ====
From John Dunlap: "Watching the server screen led me to offer a
cosmetic patch for ckuusx.c. I noticed that the server screen said it
was "RESENDING" when it really wasn't. The attached patch emits blanks
to insure that old labels are completely erased." ckuusx.c, 17 Jun
2011. ====
Nelson Beebe found two places where I had SSLLIBS in the makefile
instead of SSLLIB. makefile, 18 Jun 2011. ====
More important he knew how to force gcc to load the right header files
for OpenSSL 1.0.0d (by using '-isystem' rather than '-I'). Previously
it was using the 0.9.8r header files but linking with the 1.0.0d
libraries. This is not in the sources or makefile; it's done when
giving the 'make' command:
export PATH=/usr/bin:$PATH
export SSLINC=-isystem/usr/include
export "SSLLIB=-L/usr/lib -Wl,-rpath,/usr/lib"
make linux+ssl
Folded the previous linux+openssl+zlib+shadow+pam and
linux+openssl+shadow targets into linux+ssl. Checked the linuxso
(scripting only) target, builds OK, 600K. Made new subroutinized
linux+krb5+krb4 target but can't find anyplace to test it. Made new
subroutinized linux+shadow+pam target, works fine on RHEL4. Revised
comments and lists again. makefile, 18 Jun 2011. ====
For the pluggable-disk OS's that boot OK but lack a working network, I
rigged up a serial connection using a DB9-FF null modem cable, and then
a DB9-MF modem cable to make it reach. I don't see any modem signals on
either end, but the data goes through OK. COM1 on the desktop PC,
/dev/ttyS1 or whatever on Lab. Since there are no modem signals, can't
use RTS/CTS. At 57600bps with Xon/Xoff, 500-byte packets and sliding
windows, transfers work OK at about 5000cps using 5 window slots; takes
8 minutes to transfer the gzipped C-Kermit tarball. Kermit to the
rescue. 19 Jun 2011. ====
Transferred the tarball over serial ports to SCO OSR5.0.5 at 38.4Kbps,
the highest speed supported, 12 minutes, no errors, 3300cps. Unpack,
make sco32v505udk, OK. Also built the TCP/IP version and it almost made
an outbound connection, but only once (not a Kermit problem but
something with the TCP/IP stack). 19 Jun 2011. ====
Ditto for Solaris 2.6/i386, except 57.6Kbps, 4K-byte packets, no
problem. Solaris 8/i386, ditto. 19 Jun 2011.
SCO OpenServer 5.0.5 i386 32 sco32v505udk 1940964 No TCP/IP SCO
OpenServer 5.0.5 i386 32 sco32v505udknet 2314668 With TCP/IP Sun
Solaris 2.6 i386 32 solaris26g 4661368 Sun Solaris 8 i386 32 solaris8g
4675432 ====
When using compact substring notation, \s(xx[4]) returns the whole
string xx starting at position 4, but \s(xx[4:]) returns an empty
string. Fixed the latter to be like the former. ckuus5.c, 20 Jun 2010.
====
Really it would have been nicer if \s(xx[4]) returned a single
character, the 4th character of xx, but it's too late now. Added
another "separator" character '.' (period) for that: \s(xx[4.]) is the
4th character of xx. ckuus4.c, 20 Jun 2010.
Back to SCO OSR5.0.7... This failed before because 'rdchk' came up
unknown at link time, unlike all previous OSR5's, that used rdchk() in
place of the FIONREAD ioctl. Added #ifdefs to make a special case for
5.0.7. I'm not sure this is the best way, but this is the minimal
change to get it to work. If anybody cares, maybe the same can be done
for previous OSR5 releases. ckutio.c, 20 Jun 2010 (search for
SCO_OSR507).
SCO OpenServer 5.0.7 i386 32 sco32v507 1895724 No TCP/IP SCO OpenServer
5.0.7 i386 32 sco32v507net 2246792 With TCP/IP ====
Checked current code on RHEL4, found that my GSSAPI-lib finding
makefile target didn't look in enough places; added some more.
makefile, 21 Jun 2011. ====
Got reports back on HPUX from Peter Eichhorn, almost all good on HP-UX
7, 8, 9, 10, and 11. 21-22 Jun 2011. ====
Got access to Debian 5.0 and 7-to-be ("Wheezy/Sid"). Regular 'make
linux' is OK in Debian 5, but in 7 can't find crypt, res_search, or
dn_expand; had to add more library search clauses to 'make linux'.
makefile, 21 Jun 2011. ====
In Debian 7.0, libk5crypto could not be found without adding another
clause to 'make linux+krb5'. That done, the SSL build (1.0.0d) was OK,
as well as the krb5+ssl one. makefile, 21 Jun 2011. ====
I found a Linux box that had both Kerberos 4 and 5 installed and tried
'make linux+krb5+krb4', which failed because of missing DES functions.
Tried 'make linux+krb5+krb4 KFLAGS=-UCK_DES', but that fails too, even
though it doesn't fail for Kerberos 5 alone, so probably some Krb4 code
is making unguarded calls to the DES routines. What is really needed is
a way to completely strip all DES references from any given build, code
and makefile, a big deal. 21 Jun 2011. ====
Fixed some typos in COPYING.TXT (noticed by Ian Beckwith). 24 Jun 2011.
====
Got access to perhaps the last living 4.3BSD VAX system. It doesn't
have SEEK_CUR so I had to #ifdef out the \fpicture() function. Aside
from that, no problems. ckuus4.c, 24 Jun 2011. ====
I had been wanting the S-Expression (ROUND x) to allow a second
argument n, which, if given, tells where the rounding should occur. If
n is positive, the number is rounded to n decimal places. If zero, it
is rounded to the nearest integer If negative, the number is rounded to
the nearest power of 10; e.g. -2 means "to the nearest hundred". If
ROUND is used as before, with one argument, it works as before.
ckclib.c, ckuus3.c, 25 Jun 2011. ====
From Arthur Marsh, a few more directories to test for libresolv in
Linux. makefile, 26 Jun 2011. ====
From Martin Vorlaender, a fix for the VMS file-transfer display and
statistics, a place where a file length wasn't being cast to CK_OFF_T
in zchki(). ckvfio.c, 28 Jun 2011. ====
Updated version to 9.0.300 and removed the Beta designation. ckcmai.c,
makefile, 28 Jun 2011. ====
Removed solaris9_64 target from makefile. It builds but it doesn't work
at all. 30 Jun 2011. ====
--- C-Kermit 9.0.300 --- ====
On Solaris 10 and 11, DNS lookups don't work. It seems these Solaris
versions have INADDRX and INADDRX_NONE defined, thus triggering the
code in ckcnet.c, ckucns.c, and ckcftp.c #ifdef'd on these symbols, but
that code doesn't work in this case. This happens building with gcc as
well as with Sun cc. Put #ifdefs in ckcnet.h to undefine these symbols
(if they are defined after including all the header files) for Solaris.
I didn't bother trying to differentiate the Solaris versions because
the symbols are not defined in Solaris 9 or earlier, and they should
not be used in Solaris 10 or 11. ckcnet.h, 6 July 2011. ====
From SMS: To avoid the %CC-W-PTRMISMATCH1 complaints from ck_ssl.c, add
two (harmless) type casts at lines 2460 and 2773, 6 July 2011. ====
Built and tested on Solaris 9, Solaris 10, and RHEL5. 6 July 2011. ====
--- C-Kermit 9.0.301 Beta.01 --- ====
Updated version text and date. ckcmai.c, makefile, 11 July 2011. ====
--- C-Kermit 9.0.301 --- ====
After the initial release I made some small changes that affect only
HP-UX 5.x: added -DVOID=void and -DCKVOID=void to the hpux0500 makefile
targets, and put #ifdefs around #include <errno.h>, which (in the
WinTCP case) didn't protect itself against multiple inclusion (which is
happening in other header files, not in Kermit). makefile, ckucmd.c,
ckucon.c, ckutio.c, ckufio.c, ckcnet.c, ckcftp.c, 14 July 2011. ====
In the new copyright notice, copied from the BSD license template, one
instance of "the <ORGANIZATION>" was not replaced by "Columbia
University". Fixed in ckcmai.c, 19 July 2011. ====
Added another search term for lk5crypto in the linux+krb5 targets.
makefile, 20 July 2011. ====
Added and successfully used a new solaris9+krb5+ssl target. makefile, 8
Aug 2011. ====
FreeBSD 9 switched from utmp to utmpx, which broke compilation of
Kermit on that version. Furthermore, the UUCP lockfile conventions
changed in FreeBSD 8, which did not prevent C-Kermit from compiling,
but any attempt to lock a terminal or pty device would fail. Thanks to
Alexey Dokuchaev "danfe" for finding and patching the problems. I undid
the patches and fixed the code so it didn't need to be patched, except
for some declarations in the ck_crp.c module, which I felt had better
not be changed without thoroughly testing the changes on dozens of
different platforms, which I don't have time to do (in any case, it
builds OK on FreeBSD 9 without the patch). In particular I made
completely new makefile targets for FreeBSD 4.0 and later, which
automatically detect FreeBSD 8 and FreeBSD 9 to enable the appropriate
feature tests in the code, for a regular build and a build with
OpenSSL. These changes should affect only FreeBSD. ckutio.c, ckufio.c,
ck_crp.c, ckuus5.c, makefile, 20 Aug 2011. ====
Changed the version to 9.0.302, ckcmai.c, 20 Aug 2011. ====
Fixed freebsd+ssl and netbsd+ssl, netbsd+krb5, and netbsd+krb5+ssl
targets to have CC=$(CC) instead of CC=gcc; ditto for CC2, and adjusted
line breaks in freebsd and freebsd+ssl targets for easier patching.
makefile, 21 Aug 2011. ====
--- 9.0.302 --- ====
From Edward Berner: C-Kermit 9.0 on OpenBSD on sparc64 gets a "Bus
error" and dumps core when receiving a file. Some variables were
defined long or CK_OFF_T and extern'd as int from other modules. Edward
found and corrected all instances of this. The variables were filcnt,
dest, filrej, dialcapas. ckcpro.w, ckuusx.c, 23 Aug 2011. ====
Changed version to 9.0.303. ckcmai.c, 23 Aug 2011. ====
Fixed a problem with 'make linux "KFLAGS=-DNOICP -DNOSPL -DNOHELP
-DNODEBUG"' in which fp_rounding and fp_digits came up undefined.
ckuus4.c, 28 May 2012. ====
From Adam Friedlander: OpenSSL version test was preventing C-Kermit
from starting when the installed OpenSSL version was >= 1.0.0 and there
was a change in the last letter (e.g. 1.0.0a to 1.0.0b) or to the last
number (e.g. 1.0.0 to 1.0.1), but these changes do not indicate ABI
incompatibility. This was forcing rebuild and reinstallation of
C-Kermit every time a minor update was made to OpenSSL (e.g. on Ubuntu
Linux that has preinstalled binaries). ck_ssl.[ch], ckcmai.c, 28 May
2012. ====
Changed version to 9.0.304 Dev.01. ckckmai.c, 28 May 2012. ====
From Tim Sneddon:
[13]http://tim.sneddon.id.au/blog/Posts/C-Kermit_for_Android -
Adaptation of C-Kermit to Android via the Linux path; required very few
changes, mainly #ifdef'ing a couple Linux APIs not supported in
Android. ckcdeb.h, ckufio.c, ckutio.c, 20 Jul 2012. ====
Vanity herald for Android: ckuver.h, 20 Jul 2012. ====
From Adam Friedlander: an updated OpenSSL version test obtained after
consultation with Jeff Altman incorporating the new rules for when the
OpenSSL 1.x.yz ABI changes. ck_ssl.[ch], 20 Jul 2012. ====
From Ian Beckwith (Debian), support for multiarchitecture curses
library in Linux; also libresolv, libcrypt, liblockdev, libk5crypto,
libgssapi_krb5. Don't know if these changes work, but at least they
don't seem to hurt anything. makefile, 20 Jul 2012. ====
Built OK on Linux RHEL4 32-bit with: "make linux", "make linux+SSL"
(OpenSSL 0.9.7a). Built OK on Linux RHEL5 64-bit with: "make linux",
"make linux+krb5", "make linux+SSL -DKFLAGS=-UCK_DES" (0.9.8q). Also
with "make linux -DKFLAGS=-DANDROID" to see the vanity herald. Built OK
on Solaris 9 with and without OpenSSL (0.9.8q). Built OK on NetBSD
5.1.2 with and without OpenSSL (0.9.9-dev). Built on NetBSD 5.1.2 with
Kerberos V 1.6.3; lots of warnings but it runs. ====
Added android.mk (makefile) and android.txt (README) to regular Unix
tarball. 20 Jul 2012. ====
When uploading files to Unix from K95, it has become increasingly
unlikely that the filename is shown on the file-transfer display
because Unix pathnames are growing longer and longer all the time, and
the name part disappears off the edge. This can't be fixed in K95
(since nobody has yet been able to build it from source code), but it
can be ameliorated in C-Kermit in many cases by shortening the pathname
sent back to K95 when receiving files from or under the user's Unix
login directory, by replacing login directory path prefix with "~/".
This was done within #ifdef UNIX .. #endif in ckcpro.w, in the place
where the protocol state machine handles an F packet. It could probably
also be done in VMS, but probably not worth it ("SYS$LOGIN:" is not
exactly short). This could be expanded, with some effort, to other
people's directories ("~eddie/"). ckcpro.w, ckcmai.c, makefile, 2 Nov
2012. ====
Correction to yesterday's, which didn't account for SET CD HOME.
ckcpro.w, ckcmai.c, ckuus[454].c, 3 Nov 2012. ====
The change of Nov 2 still needs work. Modern Unix servers tend to have
ever-longer pathnames so even with the previous change we're still
seeing the truncated pathnames on the file transfer display of the
sender which is less than helpful when sending a large group of files;
you can't see the filenames and have no idea how far along the transfer
is (because the thermometer applies only to the current file, not the
whole group). Why should C-Kermit, when receiving files, send back the
entire pathname when the incoming file is being stored in its current
directory? No reason. Added code to chop it off. ckcpro.w, 11 March
2013.
(Obviously it would be better for the progess indicator to apply to the
whole transfer than to the current file out of possibly many, but that
would require a change to the protocol itself, in which the file sender
makes a pass through the file list to get the total size of all files
and then sends a new kind of message to the receiver with this
information. Possibly this could be done in the A packet: File #x out
of y in a transfer of total size z.)
In the 1980s and 90s, before switches were added to Kermit command
syntax, there was a MOVE command, which meant to send a file and then
delete the original after it had been sent successfully. When switches
were added in C-Kermit 7.0 in 2000, this function was assigned to SEND
/DELETE. The MOVE command was left behind for compatibility.
Unfortunately it's so similar to the Unix 'mv' that I (for one) keep
using it when I mean RENAME. On the supposition that nobody uses MOVE
in the SEND /DELETE sense any more (if they ever did), I changed it to
be a synonym for RENAME. If you build C-Kermit with -DOLDMOVE in
KFLAGS, the old behavior is restored. ckuus[r2].c, 11 Mar 2013.
The DIRECTORY command has a lot of switches for file selection, sorting
of results, etc. These include an /ARRAY: switch that allows the
resulting filenames to be stored in an array rather than being printed,
so they can be processed by a script; for example, to do something with
the files that were selected by the DIRECTORY command switches. But the
array was constructed before processing the switches and doing any
sorting. So, for example, DIRECTORY /SORT:SIZE /TOP:10 /ARRAY:&a, which
you would expect to load the array a with the 10 largest files in the
current directly in reverse order of size, loads all the files in
alphabetical order. Fixed in domydir(), ckuus6.c, 11 Mar 2013.
The S-Expression processor sometimes dumped core if an invalid operator
was given. Fixed in dosexp(), ckuus3.c, 11 March 2012.
Added note about Raspberry Pi (that it builds normally with any of the
Linux targets) to the Makefile, 11 Mar 2013. ====
A large manufacturing company upgraded from MS-DOS Kermit to Kermit 95
because new PCs were installed that could no longer us MS-DOS Kermit.
These PCs are used to control Cincinnati (now MAG IAS) machines (press
brakes, composite tape layers, etc), which use their own implementation
of Kermit protocol to exchange data with the PC. Where MS-DOS Kermit
had been working fine in this capacity for some 20 years, K95 failed
consistently after the 13th packet. The Cincinnati machines are quite
old and (from the standpoint of their communications) quite primitive,
communicating over a serial port at 19.2Kbps with no flow control. When
receiving a file, they buffer the incoming file data and when the
buffer fills, they "turn around" to write out the buffer, but this
takes a long time. The difference between MS-DOS Kermit and K95 (and
C-Kermit for that matter, which runs the same protocol code) is that
packet timeouts in MS-DOS Kermit are fixed, whereas those in
C-Kermit/K95 are dynamic, varying according to the characteristics of
the transfer in progress. In this case the first 12 ACKs were received
promptly so K95's timeout reduced itself to an interval shorter than
the time needed by the machine to write out its buffer. K95 resent the
packet at a time when the machine was not prepared to receive it and
matters went downhill from there. The resolution was to tell K95 to use
a longer timout interval, and to make it fixed, not dynamic:
SET SEND TIMEOUT 20 FIXED
This raised two issues:
1. This feature was implemented in C-Kermit 6.0.192 from 1996, and
as such is documented in "Using C-Kermit", but not online, so it
took me quite a while to find it even though it's my own creation.
2. It's not documented in the brake.html page, which discusses how to
use Kermit software with Cincinnati CNC machines.
3. A long fixed timeout should have been included in the ROBUST command.
I updated the ROBUST command in ckuus5.c, and updated the brake.html
page on the new Kermit website. 12 Mar 2013. ====
Since Oct 2006 C-Kermit has had a very handy TOUCH command, much more
useful that Unix's because of all the file-selection options (switches)
that go with it, the same, in fact, as the DIRECTORY command, even
though a few of them (such as /OUTPUT) don't make much sense with
TOUCH. But one thing that Kermit TOUCH can't do that Unix touch can is
to set the file's mod time to an arbitrary date-time. Up until now,
Kermit TOUCH can only give it the current date-time. To add this
capability in a sensible way, I started by giving TOUCH its own switch
table. In doing this I also corrected a long-standing error in the
original DIRECTORY switch table, in which one of the keywords,
/FOLLOWLINKS, was out of order, which could have resulted in spurious
parse errors or failures. ckuusr.h, ckuus6.c, 12 Mar 2013.
Added TOUCH /MODTIME:xxx, allowing a specific date-time to be set; xxx
is a free-format date and/or time as described by "HELP DATE". This
works both for all existing files that are selected by the switches and
wildcard patterns, or for a single nonexistent file, i.e. to create a
new file with a given modification date-time. Also added TOUCH /LIST,
which lists the files that were touched, and and TOUCH /SIMULATE which
lists the files that would be touched without actually touching them.
ckuus6.c, 12 Mar 2013.
New HELP TOUCH text. ckuus2.c, 12 Mar 2013.
Fixed HELP INCREMENT and HELP DECREMENT to clarify that the operations
use integer arithmetic and the result is always an integer. ckuus2.c,
13 Mar 2013. ====
---Dev.03--- ====
Added SET EXIT MESSAGE { ON, OFF, STDOUT, STDERR }, so the text (if
any) from an EXIT command (e.g. EXIT 1 "File not found") can be
supressed, printed normally, or sent to stderr. Added EXIT MESSAGE
status to SHOW EXIT and updated HELP SET EXIT. ckuus[235].c, 13 Mar
2013. ====
ziperm() and zgperm() did not work in Unix for filespecs that used
tilde notation, e.g. ~/kermit/ckuusr.h. Fixed in ckufio.c, 14 Mar 2013.
====
Made a new function \ffileinfo(name,&a) that populates the specified
array with 7 or 8 elements:
1. the file's name;
2. the full path of the directory where the file resides;
3. the file's modification date-time yyyymmdd hh:mm:ss;
4. platform-specific permissions string, e.g. "drwxrwxr-x" or "RWED,RWE,RE,E";
5. platform-specific permissions code, e.g. an octal number like 40775;
6. the file's size in bytes;
7. file type: 1=regular file; 2=executable; 3=directory; 4=link; 0=unknown.
8. (if filename is link) name of linked-to file.
ckuusr.h, ckuus[24].c, 14 Mar 2013. ====
---Dev.04--- ====
Lawrence Woodman reported that with SET TELNET WAIT OFF, if C-Kermit
telnets to a site that doesn't properly respond to all Telnet
negotions, such as b4bbs.sampsa.com (running Synchronet BBS software),
the initial connection works OK (Kermit doesn't wait), but then after
escaping back and connecting again, TELNET WAIT switches back to ON.
This is evidently because of the TELNET KERMIT negotiations, which
require waiting. But it occurs to me that nobody is using the TELNET
KERMIT option due to lack of support for it, so if the user says SET
TELNET WAIT OFF, this should not be overriden silently. (In fact,
C-Kermit said WILL KERMIT, the remote said DONT KERMIT, so I think the
problem is deeper, because for some reason C-Kermit was sending SB
REQ_STOP even though the Telnet KERMIT option was not negotiated, but
let's come back to this if there is ever any reason to.) I fixed the
problem by not sending SB_STOP_REQ is SET TELNET WAIT is OFF. ckctel.c,
line 2238, 9 Apr 2013. ====
Looking at this in more detail... C-Kermit says DO KERMIT, WILL KERMIT.
Remote says WILL KERMIT, DON'T KERMIT. In other words the remote is
saying "I will do Kermit, I refuse to negotiate about Kermit". As soon
as C-Kermit receives WILL KERMIT, it sends SB KERMIT SOP to tell the
remote what its Kermit-protocol start-of-packet character is; this is
required by RFC2840. The remote is required to respond with *its*
start-of-packet character, but it never does, since its WILL KERMIT was
in error. So upon receiving DONT Kermit I turned off the flag that said
the other Kermit supports and will use the Kermit option. This allows
the connection to be made to the Synchronet Telnet server without
forcing the user to SET TELNET WAIT OFF or (even more obscure) SET
TELOPT KERMIT REFUSE REFUSE. ckctel.c, 12 Apr 2013. ====
Added a third element to the \fpictureinfo() result array: the "date
taken", if any, recorded by the camera or scanner. This is done in the
dumbest possible way, without attempting to parse the Exif structure;
Kermit simply scans the first 8K of the JPG file looking for valid
date-time strings, and keeps the earliest one found. ckuus4.c, 14 Apr
2013. ====
Fixed \fpictureinof() to handle Unix filenames with tilde notation.
Also checked to make sure that no other \functions() had this problem.
ckuus4.c, 15 Apr 2013. ====
Discovered that TOUCH /MODTIME could, in some cases, destroy an
existing file, oops. Fixed in domydir(), ckuus6.c , 15 Apr 2013. ====
Added \ffilecompare(file1,file2) function. Returns 0 if the contents of
the two files is identical, 1 if they differ, and -1 on any kind of
error (file not found, etc). ckuus[24].c, 15 Apr 2013. ====
Added IF FUNCTION name, to test if the given built-in function is
available. The name can be entered as name, \fname(), \\fname, or any
combination, e.g. "if function left", "if func \fleft()", "if func
left()", etc. ckuus[26].c, 15 Apr 2013. ====
Here is an incompatible change: Noticed that "if lkjlkjlkj" (where
lkjlkjlkj is just some gibberish) did not produce an error. The token
following IF is supposed to be a keyword, a number, a variable that
evaluates to a number, or the name of a macro whose value is a number.
A string of gibberish is none of these, but the code in this case would
treat the gibberish as "false" (i.e. as the name of a macro whose value
was 0) and proceed to not execute the statement (or worse, if there
were an ELSE part, it would execute it). I would hope that nobody ever
noticed, much less relied on, this undocumented misfeature. Fixed in
boolexp(), ckuus6.c, 15 Apr 2013. ====
Changed references in C-Kermit help text from kermit.columbia.edu to
www.kermitproject.org. ckuus2.c, 15 Apr 2013. ====
Built on NetBSD 5.1.2, Solaris 9, FreeBSD 6.4, SCO OSR6.0.0, Linux
Slackware 13.37.0, Linux RHEL5 (64-bit), Linux RHEL4 32-bit (with and
without OpenSSL), all with no complaints.a ====
--- Dev.05 --- ====
Sure enough the next day this caught mistakes in TWO of my overnight
cron job scripts: One was "if not <misspelled variable name>". The
other was "if neq ...". There is no "if neq". Added IF NEQ, IF LLE, IF
LGE, since even I expected them to be there. ckuus[26].c, 16 Apr 2016.
====
Added a 9th element to the \ffileinfo() result array: analysis of
contents of the file, if it is a regular file (not a directory or a
link):
text:7bit 7-bit text (e.g. ASCII, ISO 646)
text:utf8 Unicode 8-bit Transformation Format (UTF-8)
text:ucs2 Raw Unicode
text:8bit 8-bit text (e.g. ISO 8859-1, Windows CP 1252)
text:unknown Text, unknown encoding
binary Binary (e.g. an executable, object, or image file)
This analysis is performed using the same file scanner that is used
during file transfer to set up text mode versus binary mode, and to set
up the character-set conversion if possible. If the file is not a
regular file, the 9th element is empty. Suppose the array is \&a[].
Then:
if equ "\fleft(\&a[9],4)" "text" (or if equ "\fword(\&a[9],1) "text")
or:
if neq "\&a[9]" "binary"
the file is a text file, not a binary file, a directory file, or a
link. This is useful if you don't care about the encoding. ckuus4.c, 16
Apr 2013. ====
For convenience, two new IF conditions have been added: IF BINARY
filename succeeds if the named file is a binary file (meaning that it
would be transferred in binary mode by Kermit): an executable program,
an object file, an image file, etc. IF TEXT filename succeeds if the
named file is a text file, such as the file you are reading, or program
source code, or an HTML or XML file, etc, regardless of the character
encoding. If the file is a directory, both IF TEXT and IF BINARY fail.
If the file is a link, the result reflects the contents of the
linked-to file. ckuus[26].c, 17 Apr 2013. ====
Looked into making ==, if >, etc, work with strings, as one might
expect from other languages like Javascript. Turned out to be
unworkable because these constructions accept not only numeric
constants and numeric-valued variables, but also arithmetic
expressions. The idea would have been that if either of the two
operands was non-numeric once evaluated, lexical comparison would be
done instead of arithmetic comparison. The fly in the ointment is
something like this:
if > x*(x+1) 2000 ...
When the arithmetic comparison operators are used, Kermit knows that
the operands must be numbers, so any non-numeric strings like 'x' in
the example above are automatically treated as macros and evaluated.
But if we check first to see if the string is non-numeric, it will be,
and the same evaluation will not be done, and the the operands will be
compared as strings, giving a result that could only be right by
accident. ====
Built on Linux RH 5.9 x86_64, 18 Apr 2013.
But when doing the Kerberos+SSL build:
-L/usr/kerberos/lib -L/usr/local/ssl/
lib -lssl -ldes425 -lpam -lz -lcrypto -lgssapi_krb5 -lkrb5 -lk5crypto
-lcom_err -lncurses -lutil -lresolv -lcrypt -lm
?OpenSSL libraries do not match required version:
. C-Kermit built with OpenSSL 1.0.1c 10 May 2012
. Version found OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
OpenSSL versions prior to 1.0.0 must be the same.
Set LD_LIBRARY_PATH for OpenSSL 1.0.1c 10 May 2012.
Or rebuild C-Kermit from source on this computer to make versions agree.
C-Kermit makefile target: linux+krb5+ssl
Or if that is what you did then try to find out why
the program loader (image activator) is choosing a
different OpenSSL library than the one specified in the build.
====
Added a CHANGE command that's part of the DIRECTORY / TOUCH family,
with most of the same file-selection switches:
CHANGE /switches filespec string1 [ string2 ]
Example:
CHANGE /RECURSIVE ~/web/*.html [14]http://www.oldsite.com [15]http://www.new
site.com
The syntax of the command is a little annoying because Unix users would
expect the filespec to come last, but the command shares a vast amount
of parsing and execution code with DIRECTORY and TOUCH, which I didn't
want to duplicate.
CHANGE-specific switches:
/CASE:{ON,OFF} - Honor/Ignore alphabetic case when searching for string1
/MODTIME:{PRESERVE,UPDATE} - Modtime for changed file
/SIMULATE - Say which files would be changed without changing them.
ckuusr.[ch], ckuus6.c, 3 May 2013. ====
Updated SUPPORT command text. ckuus2.c, 3 May 2013. ====
Suppose you want to do something to all the files whose names match a
certain pattern and that contain a certain string or text that matches
a certain pattern. For example, in a website with thousands of html
files, all the ones that contain links to a site that disappeared. How
to get a list of such files? I added an /ARRAY:&x switch to Kermit's
GREP command for this. Then after the GREP command the resulting array
can be accessed in a loop to process the desired files -- delete,
rename, transfer, etc. Element 0 of the array tells now many files
contained a match and how many elements are in the array (1-based).
ckuus6.c, 22 Jul 2013. ====
Added HELP CHANGE text. ckuus2.c, 22 Jul 2013. ====
CHANGE works by copying each file to a temporary directory, making
changes to the the copy, and then renaming the copy over the original
file. It was doing this for all files, even when they weren't actually
changed (i.e. did not contain string1). Also if \v(tmpdir) was defined
to be a directory that did not exist, the CHANGE command didn't try to
create it. Both fixed in ckuus6.c, 22 Jul 2013. ====
Until now there was no straightforward way to extract a field from a
date-time string. As a start, I added a new output format, 5, for
\fcvtdate(), to make the result be numeric with fields delimited by
':', for example: 2013:07:22:15:19:43. Any desired field can be
extracted with \fword(), for example to get the current year:
\fword(\fcvtdate(,5),1), or for the current month
\fword(\fcvtdate(,5),2). And so on. Since each field is numeric, it can
index into tables of (say) month names or day names in the desired
language and character-set. ckucmd.c, 22 Jul 2013. ====
Added \v(year), which evaluates to the current year, e.g. 2013. Mainly
because I keep expecting it to be there. Also \v(month) (three-letter
month abbreviation, English) and \v(nmonth) (2-digit month number,
01-12). ckuusr.h, ckuus4.c, 22 Jul 2013.
Note that \v(month) and \v(day) are not ideal -- abbreviations, not
full names, and English only. I added \v(month) and \v(nmonth) only for
symmetry with \v(day) and \v(nday). These shortcomings are remedied in
the next items. ====
Put a locale_dayname() function in ckutio.c. This is compiled if
HAVE_LOCALE is defined and NO_LOCALE is not defined. HAVE_LOCALE is
defined for BSD44 and POSIX, VMS, OS/2, and Windows. These definitions
can be adjusted if necessary in ckcdeb.h and NO_LOCALE can be included
on the make command line to override in case of trouble. ckcdeb.h,
ckutio.c, 23 Jul 2013. ====
Added \fdayname(date,fc), where date can be any free-format date/time
string, with or without the time, or omitted to give the name of the
current day. fc is a function code: 0 to return the name in full,
nonzero to abbreviate it according to the locale; if fc is omitted, the
abbreviated form is returned. The full or abbreviated day name is
returned in the language and character set specified or implied by the
locale if the underlying platform is configured for it; otherwise they
come out in English. These routines builds upon all of the date-time
code that was added in 2003, particularly cmcvtdate(), the free-format
date parser, and mjd(), that calculates a Modifed Julian Date, from
which the day of the week can be derived by a simple modulus. This
function pretty much supersedes \fday() (which returns only the
3-letter English day name), but \fday() remains available for
compatibility. ckuusr.h, ckuus4.c, 24 Jul 2013. ====
Added locale_monthame(month,fc), like locale_dayame(day,fc) but for
months. ckutio.c, 24 Jul 2013. ====
Added \fmonthame(), like \fdayname() but for months. ckuusr.h,
ckuus4.c, 24 Jul 2013. ====
Added HELP text for \fmonthame() and \fdayname(). ckuus2.c, 24 Jul
2013. ====
Developed, built and tested on NetBSD with English, Spanish, and
German. Built and tested OK on Linux RHEL5 with the same languages.
Built OK on Solaris 9, which supports the locale APIs, but does not
have any locales installed except en_US. 24 Jul 2013.
CAUTION: Except where C-Kermit is explicitly dealing with multibyte
character sets, such as in file transfer and in the terminal emulator,
there is no special support for multibyte character sets such as UTF-8,
Shift-JIS, etc. So while \fupper(), \flower(), and \fcapitalize() can
work with ISO-8859-1, KOI-8, and other single-byte character sets, they
won't work with UTF-8 because they are just byte loops, unless the
underlying isupper, tolower, etc, functions (or macros, or whatever
they are) do some magic. Ditto for Shift-JIS, Japanese EUC, etc. ====
A new command-line options, --nolocale, was added to disable use of the
locale by forcing the "C" locale. Ditto if the environment variable
K_NOLOCALE is set to a nonzero integer value. ckuusr.h, ckuusy.c,
ckcmai.c, 24 Jul 2013. ====
--- Dev.06 --- ====
The CHANGE command would indicate failure even when there was no error.
Fixed in ckuus6.c, 4 Aug 2013. ====
Changed CHANGE /SIMULATE to list files that would NOT be changed only
if the /VERBOSE switch was included. ckuus6.c, 4 Aug 2013. ====
Added clarification to HELP CHANGE about string format. ckuus2.c, 3 Sep
2013. ====
NetBSD 6.1, man 3 time: "In NetBSD 6.0 the time_t type was changed to
be 64 bits wide, including on 32-bit machines, making rollover a
concern for the far distant future only. Note however that any code
making the incorrect assumption that time_t is the same as long will
fail on 32-bit machines in 2038." C-Kermit builds OK but warns:
ckcmai.c:(.text+0x1e92): warning: warning: reference to compatibility
time(); include <time.h> for correct reference
Did this and all's OK. But it might have repercussions elsewhere.
ckcmai.c, 3 Sep 2013. ====
ckuus5.c:597:29: warning: missing terminating " character <- fixed 3
Sep 2013. ====
\fpictureinfo() was checking the filename against a pattern and failing
on no match, sometimes incorrectly. I took out the filename check,
since the next thing it does is check the internal structure of the
file. ckuus4.c, 17 Sep 2013. ====
Changed CHANGE message to put spaces around the "->" so it doesn't get
intepreted by the terminal emulator as part of a URL. ckuus6.c, 11 Oct
2013. ====
If the CHANGE command was used repeatedly, eventually C-Kermit would
get a memory allocation error. A dynamic buffer was not being freed.
Fixed in ckuus6.c, 15 Oct 2013. ====
\fdayname(\v(nday)) would fail if executed on Sunday because \v(nday)
numbers days 0 (Sunday) to 6 (Saturday), whereas \fdayname() wants 1
(Monday) through 7 (Sunday). Also, \fdayname(,1) would return "Jan" if
today was Sunday. Fixed by allowing both 0 and 7 to mean Sunday. All
the other day numbers agree. ckuus4.c, 15 Oct 2013. ====
The documentation had the sense of the second argument to \fdayname()
and \fmonthname() backwards. Fixed in locale.html, 15 Oct 2013. ====
\fpictureinfo() problem from 17 Sep 2013 was because I was using a tail
anchor ($) on the pattern but had not set the ckmatch() opts bit saying
so. Removed the tail anchor. Also changed the function to return 3
("square") if width == height (so it's kind of like a bit mask).
ckuus4.c, 15 Oct 2013. ====
Updated HELP FUNCTION PICTUREINFO. ckuus2.c, 15 Oct 2013. ====
Android changes from Jake Thompson, 17 Nov 2013:
. Disable locales in android.mk
. Disable "format string checks" in the ndk-build invocation, android.txt.
====
Changes to make current C-Kermit source code integrate with Kermit 95
code, from from Jake Thompson, 21 Nov 2013:
. Inconsistent declarations of nzxpand() in Unix and Windows, ckcdeb.h.
. Extraneous prototype of ckcgetc() in ckcker.h.
. Duplicate definition of __inline int in ckcsig.h.
. Similar issues in ckcuni.h.
. Windows OpenSSL doesn't have X509_to_user() or X509_userok(), ck_ssl.c.
. No longer necessary to #include ckosslc.h and ckossl.h in ck_ssl.c.
. zgfs_link and linkname not implemented in K95: ckuus4.c.
. Include ckodir.h for MAXPATHLEN in ckuus[46].c.
. chkaes() calling sequence is different in K95: ckuusr.h.
Each change marked with "[jt] 2013/11/21". 24 Nov 2013. ====
Removed or updated numerous references to Columbia University, many
modules, 24 Nov 2013. ====
Changed program name in Windows from "Kermit 95" to "C-Kermit".
ckcmai.c, 24 Nov 2013. ====
Commented out calls to shoreg(). ckuus[r5].c, 24 Nov 2013. ====
Built OK on NetBSD 6.1.2. Built OK on RHEL4. Could not build with SSL
on NetBSD because "can't open config file: /etc/openssl/openssl.cnf".
Built OK on Linux with OpenSSL 0.9.7a but for some reason a ton of
"passing arg ... from incompatible pointer type" messages came out of
DES_*() function invocations, which didn't happen before. Built OK on
Solaris 9 without SSL, and with OpenSSL 0.9.8q (with no warnings, but
this one doesn't have DES). 24 Nov 2013. ====
--- Dev.07 --- ====
From Jake Thompson: Fixed a typo in applying diffs to ckcsig.h. Fixed
some locale-related #ifdefs in ckuusr.h and ckuus5.c. Also added the
ability to suppress locale support at compile time via -DNOLOCALE
(ckcdeb.h). 6 Dec 2013. ====
A major annoyance with C-Kermit scripts is that when a command fails,
we often get no clue about which command it was or where it was. This
happens when the command issues its own error message (e.g. "?Text
required") and returns -9 to the parser to indicate an error message
was already printed (on the assumption that the user just typed the bad
command and so knows what it is). In the cases where the command did
not already issue an error message, the parser already echoed the
command that failed. I changed the parser to do this in the -9 case
too. ckuus5.c, 6 Dec 2013.
(Another problem in this area is just too hard to fix, namely that when
the parser is executing a script and a command fails, the parser often
has no idea which line of the script file the failing command came
from. That's because when reading a script file, the parser
concatenates each {...} block into a single line, so when a command
within the block fails, the parser only knows the line number of the
first line of the block.) ====
Another fundamental change to the parser. Script writers might have
noticed that an innocent-looking statement like:
if equ \%a xx echo "Dos equis"
would work correctly sometimes and others would get a parse error,
depending on whether the variable (\%a in this case) had a non-empty
definition. The normal workaround is to write it like this:
if equ "\%a" "xx" echo "Dos equis"
but that shouldn't be necessary, since the parser knows that (a) the
statement does not have a syntax error and (b) it has evaluated a
variable that has an empty (or no) value, in which case it should
simply return an empty string instead of a failure code. I ran several
of my huge production scripts with this change with no ill effects, and
in fact it let me track down several long-elusive problems in the
scripts. ckucmd.c, 6 Dec 2013. ====
In the same vein... Lazy IF Conditions, in which a variable name can be
used as an IF condition as long as it evaluates to a number (0 being
false, nonzero being true)... The error message given when the variable
(or other random string) did not have a numeric value, or any value at
all, was less than informative. Now it prints the variable name, which
is a good trick because it had already been wiped out in the act of
trying to evaluate it. ckuus6.c, 6 Dec 2013. ====
Changed ckstrcmp(), which is used by the DIRECTORY command, the ARRAY
/SORT command, the \fstrcmp() function, and who knows what else (this
function is called from 261 different places in C-Kermit), to use the
collating sequence of the current locale, which works as long as the
the character set is single-byte (e.g. ISO-8859-1 or KOI8). The way I
did it is not pretty, but there is no standard locale-aware string
comparison function that has the options that ckstrcmp() has (and
uses), and as far as I can tell there is no standard way to compare two
characters according to the locale, only two NUL-terminated strings. So
I turn each character into a string and compare them with strcoll(). I
can't just compare the strings directly because (a) strcoll() doesn't
allow the comparison of pieces of strings and (b) there is no
case-independent version of strcoll(). The new code is within #ifdef
HAVE_LOCALE..#endif, but some adjustments might be needed if strcoll()
(circa 1989) is not found everywhere that locales are found. Anyway,
now non-ASCII filenames and arrays (except in multibyte character sets
like UTF8) will sort correctly if the locale has the required collating
sequence; otherwise they come out as before. ckclib.c, 6 Dec 2013. ====
DIR /ARRAY:&a *.jpg doesn't work right if only one file matches: it
creates the array with dimension 1, but element 1 is empty. But it
works OK if two or more files match. This is because the code to load
the array is executed only if we sort the result, a step which we
cleverly skip if there is only one file in the listing. For that
matter, DIR /NOSORT /ARRAY:&a *.* doesn't work at all, no matter how
many files match. It turns out a lot of code is in the sorting block
that doesn't actually have anything to do with sorting. So I changed
domydir() so it the "xsort" flag (which selects this code) is always
on, and added a new flag that says whether we actually call the sort
routine, which was safer than reorganizing a ton of code. ckuus6.c, 6
Dec 2013. ====
Branding of C-Kermit for Windows... I removed the special version
numbering for C-Kermit for Windows (nee K95) so now it should show the
regular C-Kermit version herald. Changed \v(program) to always be
"C-Kermit", not "K-95", "K/2", etc. Changed default prompt for Windows
and OS/2 to [dir] C-Kermit>. Added "IF WINDOWS" and made "IF K-95" an
invisible synonym for it. Performed a rather massive edit on the help
text module to remove references to Kermit 95. Builds OK in Unix but so
far I don't have a way to test it in Windows. ckcmai.c, ckuus2.c,
ckuus4.c, ckuus5.c, ckuus6.c, 6 Dec 2013. ====
--- Dev.08 --- ====
The TOUCH command was dumping core because of a clever optimization I
put in the code at some point, probably not too long ago or I would
have noticed it. Fixed the problem by removing the optimization.
ckuus6.c, 17 Dec 2013. ====
Reported by Christoph Sievers... the following sequence:
SET FTP AUTOENCRYPTION ON
SET FTP AUTHTYPE TLS
SET AUTH TLS VERBOSE ON
SET AUTH TLS VERIFY NO
ftp open 127.0.0.1 12345 /USER:fu /PASSWORD:bar /NOINIT
is supposed to allow a secure FTP connection to proceed without the
question:
Warning: Server didn't provide a certificate
Continue? (Y/N)
but the question was coming out anyway. Jeff noticed that the FTP/SSL
code was missing an IF clause that was present in the TELNET/SSL code.
Fixed in ckcftp.c, 17 Dec 2013. ====
For Unix only, changed default prompt to show "~/" instead of the full
home path, which these days can get ridiculously long. So now, for
example, "(/hmt/sirius1/prv0/kd/fdc/) C-Kermit>" becomes "(~/)
C-Kermit>". If I'm cd'd to the "src" directory of my home directory,
it's "(~/src/) C-Kermit>". If my current directory is not in my home
tree, its full path is shown as before. ckuus5.c (definition of
ckprompt), 17 Dec 2013. ====
Got rid of the "ok" keyword as an IF condition. OK was an undocumented
and invisible synonym for SUCCESS, but this has bitten me too many
times, when I create a variable named OK and use it as a "lazy IF
condition" as in:
.ok = 0
if match \&a[i] img_[0-9][0-9][0-9][0-9].jpg .ok = 1
else if match \&a[i] img_[0-9][0-9][0-9][0-9][0-9].jpg .ok = 1
else if match \&a[i] dscf[0-9][0-9][0-9][0-9].jpg .ok = 1
else if match \&a[i] scan[0-9][0-9][0-9][0-9].jpg .ok = 1
if not ok exit 1 "\&a[i]: Not a recognized image file name"
ckuus6.c, 17 Dec 2013. ====
Corrected HELP SHIFT text, which previously said it affected only
arguments 1..9, but really affects all arguments, no matter how many.
ckuus2.c, 17 Dec 2013. ====
From David Goodwin: Remove all references to K95 registration and
time-limited demo versions, and fix a couple minor compilation problems
for the Windows version. ckcmai.c, ckcpro.w, ckucmd.c, ckuus[34rx].c,
ckuusr.h, 20 Jan 2014. ====
Fixed an aggregrate array initialization (not legal in non-ANSI).
ckuus4.c, 20 Jan 2014. ====
Added CHECK LOCALE. ckuus3.c, 20 Jan 2014. ====
Various minor touch-ups to HELP, NEWS, VERSION text. ckuus[r2].c, 20
Jan 2014. ====
Fixed core dump that happened only in Solaris (as far as I know) with
"ftp open kermitproject.org" (which should have been
"ftp.kermitproject.org"). The problem was that perror() was being
called with a pointer to an empty string, which should be OK but
apparently is not in Solaris. ckcftp.c, 20 January 2014. ====
Updated version number and date and copyright date. ckcmai.c and many
other modules. 20 January 2014. ====
--- Dev.09 --- ====
From my to-do list.... I noticed a while back that \fsplit(s,&a,,TSV)
could mess up if the data fields contained grouping characters like
parens, quotes, brackets, or braces. \fsplit() and \fword() are handled
by cksplit(), which is designed to allow grouping, nesting, quoting,
recursion, and so on (for parsing such things as complex LISP
S-expressions and Comma-separated lists full of quoting) and I guess
some of that code was being executed for TSVs. Rather than mess with
the existing code and possibly break something else, I added a chunk of
new code at the beginning of the byte loop in cksplit() to handle TSVs,
which are extremely simple, and so the new code is too. And also way
more efficient. Seems to work right, and other things like LISP
programs still work. ckclib.c, 31 Jan 2014. ====
From Ian Beckwith, updates to the Debian Linux MULTIARCH support. "I've
checked through the patched makefile, every library is checked in
/usr/lib/$(MULTIARCH)/, except for libdes425, which isn't in debian."
These changes are presently in Debian testing for amd64, armel, armhf,
i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390x,
sparc. makefile, 23 Feb 2014.
Documentation for MULTIARCH:
[16]https://wiki.debian.org/Multiarch/Implementation
[17]https://wiki.ubuntu.com/MultiarchSpec
[18]https://wiki.debian.org/Multiarch/HOWTO
====
From Mark Wooding: add #define _XOPEN_SOURCE 500, #include <stdlib.h>
in the PTY module, "Needed along with -DHAVE_PTMX for working ptys".
Also fixed a debug() statement that had a string argument that should
have been an int. ckupty.c, 23 Feb 2014. ====
From Mark Wooding: supply default "(none)" value for \v(dialmsg).
ckuus4.c, 23 Feb 2014. ====
From Mark Wooding: Fix inconsistent declarations of a couple variables
across modules; he actually reported a bunch of them but all the
serious ones (int vs long or off_t) had been fixed in 2005 with the
introduction of CK_OFF_T, and the only two that needed fixing were char
* vs char [] (prevcmd and cmdfil). ckucmd.c, ckuusy.c, 23 Feb 2014.
====
--- Dev.10 --- ====
The photogallery script documentation contains a hint that didn't work,
namely that to create a list of the names of all the non-thumbnail,
non-resized original image files, use:
directory /brief /except:*-[tr].jpg /output:somefile *.jpg
This did not work; the /EXCEPT switch was ignored whenever the /BRIEF
switch was included in a DIRECTORY command. Fixed in domydir() by
moving two lines of code to where they always should have been.
ckuus6.c, 3 Nov 2014. ====
I received reports from both Alan Jones and Harold Baldwin around the
same time that REMOTE commands were getting "?Not confirmed" parse
errors in C-Kermit 9.0.302 and later. Incredibly, this was broken long
ago in remcfm(); see the comment there in ckuus7.c about line 7177. The
problem was that I commented out the test for an empty cmtxt() result
string. Apparently at least 10 years have passed without anybody
noticing and reporting this (it works right in K95 2.1.3 from 2003).
Fixed in ckuus7.c, 3 Nov 2014.
Updated HELP SET FILE text to mention that SET FILE COLLISION OVERWRITE
doesn't work for a server unless it has also been told to ENABLE
DELETE. ckuus2.c, 3 Nov 2014. ====
--- Dev.11 --- ====
On QNX 4.25 an FTP GET command always failed with a segmentation fault.
In fact, this would happen in any Unix version of C-Kermit that has
NOUUCP defined, such as Mac OS X. The code in the #ifdef NOUUCP section
of zchko() was wrong, clobbering the variable (x) that held the length
of filename string. I fixed zchko to not do that. ckufio.c 9.0.219, 11
Jan 2015. ====
Updated copyright year to 2015. ckcmai.c, 11 Jan 2015. ====
Fixed the previous fix. ckufio.c 9.0.220, 12 Jan 2015. ====
--- Dev.12 --- ====
SET LOGIN USER xxx did not evaluate xxx if it was a variable. If there
was ever a reason for this I can't recall it. Fixed in ckuus3.c, 5 Feb
2015. ====
Edward Berner noticed that K95 built with Open Watcom was crashing
because of "inconsistent extern declarations of vmode". vmode is
declared BYTE vmode = VCMD; in ckoco2.c and referenced as extern BYTE
in all but two cko*.c modules, but as extern int in all cku*.c modules
except cko[tf]io.c. BYTE is not a known type to mainline C-Kermit code.
However, all references to vmode in mainline code are within #ifdef
OS2. Fixed in ckofio.c, ckotio.c, ckuus3.c, ckuus6.c, ckuus7.c,
ckuusx.c, 5 Feb 2015.
Edward also reported a similar problem with marginbot, but in my
sources all declarations are consistent (int). But he is working with
2003 source code, probably it's fixed. ====
Changed \fgetpidinfo() to \fpidinfo() to be easier to find, but left
the original name as an invisible synonym. ckuusr.c, 5 Feb 2015. ====
Apropos of the previous item, SHOW FUNCTIONS is not very useful. It
gives a list of all the functions, period. But if I wanted to find only
the functions that have to do with PIDs, it would be nice to be able to
include a string to match the function names, as in "show function
pid". Other examples include "show func info", "sho func code", "sho
fun date", etc. This was added doshow() ckuus5.c, with a special
function code parameter value added to kwdhelp() in ckucmd.c and new
HELP FUNCTION text in ckuus2.c. It's not really pattern matching, just
a substring. Anything more ambitious would have required a rewrite of
kwdhelp(). 5 Feb 2015. ====
From Jake Thompson: "ckcftp.c is currently set up to allow only SSL 3.0
by default when using AUTH SSL/AUTH TLS, and no later versions
(SSLv3_client_method). After the POODLE vulnerability, most sites have
disabled SSL 3.0, allowing only TLS 1.0 or later. The attached patch
changes ckcftp.c to allow TLS 1.0 and later only by default, adding a
new bug option use-ssl-v3 in order to downgrade to SSL 3.0 if needed.
ck_ssl.c looks like it may need similar changes; I haven't looked
extensively." I applied Jake's patch to ckcftp.c, and the analogous
patches to ssl_tn_init() and ssl_http_init() in ck_ssl.c, with improved
structure and debug logging. 5 Feb 2015. ====
Compiles, links, and runs OK with "make netbsd+ssl" except for these
warnings:
ck_ssl.c: In function 'ssl_display_connect_details': ck_ssl.c:1089:12:
warning: assignment discards qualifiers from pointer target type
ck_ssl.c: In function 'tls_is_anon': ck_ssl.c:3139:12: warning:
assignment discards qualifiers from pointer target type ck_ssl.c: In
function 'tls_is_krb5': ck_ssl.c:3189:12: warning: assignment discards
qualifiers from pointer target type
Resulting binary connects with TLS 1.0 to [19]https://www.google.com.
====
--- Dev.13 --- ====
Two closing braces were missing in ck_ssl.c at line 2207, which
prevented Dev.13 from being built with OpenSSL support. 10 Oct 2015.
====
--- Dev.14 --- ====
Trying to build C-Kermit on Red Hat RHEL6 it failed at link time
because it couldn't find libncurses. It was really hard to track this
one down because all the symptoms were totally misleading. The real
problem was that ncurses.h was not installed on the system, and the
elaborate checking in the linux targe of the makefile didn't allow for
the case when the libraries were installed but the header file not.
After fixing the makefile it compiles and links correctly without
curses support. Also fixed a large number rule lines that started with
spaces in stead of Tab. makefile, 17 Dec 2015.
NOTE FOR DOCS: If C-Kermit builds silently but the result has no curses
support, it means that lib[n]ncurses is missing OR [n]curses.h is missing.
There should be a way to issue a message from the makefile but I couldn't
find it (echo, @echo, etc, none of them worked).
====
Patches from Bernard Spil for LibreSSL: "Currently Kermit fails to
build when openssl libraries have been built without SSLv3 are used
(configure --no-ssl2 --nossl3). This has surfaced when building with
the latest LibreSSL 2.3. In addition, there are issues with LibreSSL as
it does not support SSL compression nor perl EGD as entropy source.
Attached patches address all these issues. These can be improved upon
by using only SSLv23_ methods or even TLS_ methods and setting
SSL_CTX_set_options(ctx, SSL_OP_NO_SSL2 | SSL_OP_NO_SSL3) but I've
tried to make the patches minimally intrusive. OpenSSL 1.1.0 will
deprecate SSLv23_ methods and introduces compatible TLS_ methods."
ckssl.h, ck_ssl.h, ck_ssl.c, ckcftp.c, ckupty.c. Built OK on NetBSD
6.1.5 with OpenSSL 1.0.1e and Linux RHEL6.6 with 1.0.1k, and also on
both without SSL selected, but with some warnings; in functions
'tls_is_anon' and 'tls_is_krb5': "assignment discards qualifiers from
pointer target type".
Updated dates and Dev number, ckuus5.c, ckcmai.c. ====
--- Dev.15 --- ====
Mark Sapiro noticed that "OK" is no longer a valid IF condition (it was
a synonym for SUCCESS), which is true; I removed it years ago because
of some conflict but didn't make a note of it, can't remember the
reason, but IF OK still showed up in HELP IF. Removed it in ckuus2.c,
and put a new version of the iftest script in the script library. 31
Dec 2015. ====
Made a new "linux" target for the makefile. Kept the previous one
available as "linux-2015". The feature tests in the old one looked for
libraries in specific places, like "if test -f
/usr/lib64/libncurses.so.5" which is stupid because there is an endless
number of places where Linux packagers will dream up to put them,
especially for multiarchitecture distributions. Well, who really knows
where the libraries are, and what the library search path is? ld,
right? So now instead of looking in 20 different places for (say)
libncurses under several different names, we just ask ld if it can find
it and if so -- and if we also can identify the corresponding header
file (if any) -- then we set the appropriate HAVE_BLAH feature flags.
makefile, 18 Jan 2016. ====
Updated copyright year to 2016. ckcmai.c, 18 Jan 2016. ====
--- Dev.16 --- ====
I discovered that the CHANGE command didn't work on Linux. This opened
a whole big can of worms, read on...
CHANGE command failed on platforms like Linux where fputs() did not
return 0 on success. Fixed in ckuus6.c, 29 Jan 2016.
But after this fix it still didn't work if I did not have en
environment variable defined that said what directory to use for
temporary files because the \v(tmpdir) variable was not falling back
correctly. In Unix, first it tried the environment variables CK_TMP,
TMPDIR, TEMP, and TMP, in that order, and if nothing turned up it tried
/tmp/. Then if the resulting value doesn't end in a directory
separator, one is tacked on. There were a couple mistakes in the code
causing the /tmp/ part to be skipped, and tacking '/' onto the null
string, thus setting the temporary directory to be the root directory,
resulting in big trouble when writing temporary files, e.g. in the FTP
GET command, the CHANGE command, who knows what else. Fixed in
ckuus4.c, 29 Jan 2016.
Another problem with this was that the temporary directory might be
referenced before it was defined, e.g. in an FTP GET command. Remedied
by "invoking" \v(tmpdir) before any commands are processed. ckcmai.c,
29 Jan 2016.
And Yet Another Problem was that the SET TEMP-DIRECTORY command simply
did not work. Plus it didn't store its argument as a full pathname, so
it would not work after the user CD'd to someplace else. ckuus3.c, 29
Jan 2016.
A related problem was that IF WRITEABLE didn't work when given a
directory name. Fixed in ckufio.c, 29 Jan 2016.
Another problem was that there was no SHOW TEMP-DIRECTORY command.
Every SET should have a SHOW. Fixed in ckuusr.h, ckuusr.c, 29 Jan 2016.
Updated HELP SET TEMP-DIRECTORY text. ckuus2.c, 29 Jan 2016.
Added TMP-DIRECTORY as an invisible synonym for TEMP-DIRECTORY in the
SET and SHOW commands. ckuusr.c, 29 Jan 2016. ====
Added a /DESTINATION:directory switch for CHANGE. Some problems I had
doing this revealed an error in domydir()... For reasons too hard to
explain the DIRECTORY command sets a global flag "diractive" to let the
command parsing routine cmifi2() know that a DIRECTORY command is in
progress, and therefore to do some special things in that case when a
wildcard expansion includes directory names. Later on I added TOUCH and
CHANGE commands to domydir(), because writing separate routines would
have meant duplicating tons of code. BUT... The "diractive" flag should
NOT be set when the command is TOUCH or CHANGE. Once that was fixed,
the rest was pretty straightforward. ckuus6.c, 1 Feb 2016. ====
Added a /BACKUP:directory switch for CHANGE. ckuus6.c, 1 Feb 2016. ====
In adding the /BACKUP switch, something caused a core dump when using
/MODTIME:PRESERVE, a bad value in the "generic permissions" field of
the zsattr struct when going to copy the modtime and perms from the
original file to the backup file. It's because I wasn't initializing
all the struct members. I changed zsattr() to defend itself against
out-range-values, clarified the calling convenstions for zstime() in
the opening comments (if you are not setting attribute blah, then set
blah.len = 0 in the argument struct), and I fixed the struct
initializations in the calling code. ckuus6.c, ckufio.c, 2 Feb 2016.
====
We have always had DIRSEP and ISDIRSEP macros for referring to
directory separators in the code, e.g. '/' for Unix, ':' for AOS/VS,
'>' for VOS, '\' for OS-9, etc, but we needed a string version, so I
added STRDIRSEP analogs for each DIRSEP (like "/" for '/') so we could
use them as arguments to ckindex(), ckstrncat(), etc. ckcdeb.h, 2 Feb
2016. ====
Used STRDIRSEP in the CHANGE code to keep it portable, in case C-Kermit
is ever built on any non-Unix platform again (WARNING, VMS will still
require some special code). ckuus6.c, 2 Feb 2016 ====
Mark Sapiro reported C-Kermit crashing on some platforms but not others
when evaluating any rounding operation in an S-expression, e.g. (round
1.75). My mistake, I had sprintf() writing into a buffer that was too
short. I know I should use snprintf() but it's not portable and it
would be a big deal to enumerate all the platforms where it's available
and where it's not and tailor the code accordingly, so I just made the
buffer (more than) big enough, barring any misbehaving printf() format
interpreters. ckround(): ckclib.c, 3 Feb 2016. ====
Mark Sapiro also noticed that the "localarray" stresstest revealed that
if an array (say \%a[]) was declared as local in a macro, but the same
array was NOT declared at any higher level, then the array persisted
even after the macro returned, instead of disappearing as it should.
Fixed in popclvl(): ckuus5.c, 3 Feb 2016. ====
Added __x86_64 to the symbols looked for and displayed by SHOW
FEATURES. ckuus5.c, 3 Feb 2016. ====
Added __x86_64 to the symbols looked for when defining CK_64BIT.
ckcdeb.h, 3 Feb 2016. ====
Changed definitions of sizes of things (command buffers, packet
buffers, etc) to be much bigger on 64-bit architectures. This will
allow bigger script programs, bigger packet buffers (and thus
conceivably faster file transfers), more macros, more variables, longer
values of variables, etc. The bigger sizes are dependent on the symbol
CK_64BIT, which is set in ckcdeb.h based on what it can figure out from
compiler builtins, header files, etc, but can also be set on the CC
command line in case ckcdeb.h doesn't pick it up. ckcdeb.h, ckcker.h,
ckucmd.h, ckuusr.h, 3 Feb 2016. ====
Removed misleading display of Z_MAXCHAN from SHOW FEATURES because in
Unix we don't use this symbol; we get the real maximum number of open
files from sysconf(). ckuus5.c, 3 Feb 2016. ====
The command "date 29-feb-1996 +1year" failed with "?Base day out of
range". Fixed in ckucmd.c, 3 Feb 2016. ====
Added missing "help xmessage" text. ckuus2.c, 3 Feb 2016. ====
--- Dev.17 --- ====
Mark Sapiro says Dev.17 segfaults immediately on startup on Ubuntu
15.04. Asked him for a debug log. Meanwhile I checked the tarball,
rebuilt from it, all OK on 64-bit Linux RHEL6 and on 32-bit NetBSD
6.1.5. Built on NebBSD 7.0 also, no problem there except a few new
warnings. Backed off the 64-bit size changes. ckcdeb.h, ckcker.h,
ckucmd.h, ckuusr.h, 4 Feb 2016. ====
Fixed four debug() statements that had a string as the final parameter
instead of a number, noticed by gcc on NetBSD 7. ckuusx.c, ckudia.c, 4
Feb 2016. ====
--- Dev.18 --- ====
Added locale support to \fcvtdate() so month name comes out in the
desired language in formats where an "English month name" was
previously returned. Works OK in Red Hat EL6.6, but localized dates
aren't supported on the other platforms I have access to (Solaris 9,
various NetBSD versions). As a start, I always use 3-letter short month
abbreviations, even though some countries might use longer ones. If
anybody cares about this, they will let me know. But this way, all date
formats that have textual month names come out in the same format and
dates in the same format are always the same length. ckucmd.c, 5 Feb
2016. ====
In doing this, I noticed that if I included any command that referenced
the locale in a kerbang script or any other script invoked on the
command line, that the locale wasn't used. I moved the initialization
of the locale a bit higher up in the program start code. ckcmai.c, 5
Feb 2016. ====
Added new format code 6 to \fcvtdate() for "dd fullmonthname yyyy
hh:mm:ss". This prints the monthname from the Locale, or if there is no
Locale or it is disabled, the full monthname in English. ckucmd.c, 5
Feb 2016. ====
Updated locale documentation on the website in locale.html, 5 Feb 2016.
====
As noted, Dev.17 dumped core immediately upon startup on certain 64-bit
platforms such as Ubuntu 15.04 and Mac OS X 10.11. Since I don't have
access to these platforms I asked Mark Sapiro to look at the changes I
made and try to narrow them down. He found that these did the trick:
--- cku304.17/ckucmd.h 2016-02-03 11:28:00.000000000 -0800 +++
cku304.18x/ckucmd.h 2016-02-04 17:54:33.872465535 -0800 @@ -103,7
+103,7 @@
#define HLPBL 100 /* Help string buffer length */
#ifdef BIGBUFOK
#ifdef CK_64BIT
-#define ATMBL 163808 /* Command atom buffer length */ +#define ATMBL
20470 /* Command atom buffer length */
#else
#define ATMBL 10238 /* Command atom buffer length */
#endif /* CK_64BIT */
@@ -122,7 +122,7 @@
#else
#ifdef BIGBUFOK
#ifdef CK_64BIT
-#define CMDBL 8388608 +#define CMDBL 65500
#else
#define CMDBL 32763
#endif /* CK_64BIT */
So I put back my changes from to ckcdeb.h, ckcker.h, ckucmd.h, and
ckuusr.h, from Feb 3, and then made the adjustments just above. I
suspect the segfaults occurred when a bunch of these very large buffers
were malloc'd in cmsetup() upon program startup. Time will tell if the
new values are safe. ckucmd.c, 5 Feb 2016. ====
--- Dev.19 --- ====
I got a report that the photogallery script could not create files in
Mac OS X. Sure enough, C-Kermit 9.0.304 got an error every time it
tried to create a file. This happened in both zchko() ("check if file
can be created") and in zopeno() ("open file for output"), whichever
was called first, even though the code in these routines had not
changed, probably in decades. I couldn't take a debug log either
because that required opening a file. The user who reported the problem
discovered that if she created the desired file first outside of
Kermit, then Kermit could open it for output. It seems that ever since
1985, I have been calling open() with just O_WRONLY. Evidently that's
not good enough any more in recent Mac OS X releases; experimentation
shows I have to use O_WRONLY|O_CREAT, but then I also have to put
perms, so I put 0600. I made this change in both zchko() and zopeno().
Tests OK in Mac OS X 10.10.5, NetBSD 6.1.5, Solaris 9, and Linux
RHEL6.6. ckufio.c, 16 Feb 2016. ====
--- Dev.20 --- ====
\fcvtdate(string,code)... code is a number or a variable with an
integer value. Function args that must be numeric can be given as macro
names without the \m(xxx) notation, i.e. just xxx, but that didn't work
with \fcvtcate():
for i 1 6 1 { echo \m(i). \fcvtdate(,i) }
Now it does. ckuus4.c, 23 Mar 2016.
Fixed HELP SEXP to also show ROUND with optional second argument.
ckuus2.c, 24 Apr 2016. ====
There was no way to print stuff within S-Expression code, so I added an
ECHO command that takes any number of arguments to be printed in
series, but unlike the mainline ECHO command, this one evaluates each
element in its argument list as an S-expression, or if it is not an
S-Expression, then as a macro. Literal strings and Kermit backslash
items (variables, function calls) must be entered as Lisp quoted
strings:
(echo '(\fupper(abcdefg)))
which prints "ABCDEFG".
This example shows how Kermit code can be transformed to all Lisp:
define a three plus four is
define b 3
define c 4
increment b c
echo \m(a) \m(b)
Results in "three plus four is 7". The more-compact all-Lisp version
gives the same result:
(setq b 3 c 4)
(echo '(three plus four is) (+ b c))
Thus the main utility of the S-expression ECHO directive is to be able
to print macro named variables (i.e. variables whose names don't start
with backslash) without enclosing them in \m(). Or to put it another
way, to be able to write LISP code that prints results in regular Lisp
syntax without having to leave the Lisp environment. ckuus3.c, 25 Apr
2015. ====
Added UNQUOTE command to deal with Lisp string constants like:
'(this is a string)
so they can be echoed without the syntax, or exported into Kermit land.
Also fixed bug where dosexp() could return a previous value if the
current one was empty. ckuus3.c, 26 Apr 2016. ====
.................... The following notes are from April 27, 2016...
Apparently I was in the middle of SEXP work and got distracted.
....................
Fixed the ECHO command to always do unquoting itself, so UNQUOTE is
only necessary for things like creating a string valued variable in
Lisp that can be referenced in the Kermit domain:
(setq a (unquote '(This is a Lisp string constant)))
show macro a
This is a Lisp string constant
We still need the inverse of Unquote, say REQUOTE or DOQUOTE or
ADDQUOTE or IMPORT, whose argument is a variable containing a Kermit
string, which returns the equivalent Lisp string. Like QUOTE, but
evaluates the operand first.
The sexp torture test still runs correctly.
Meanwhile I think there is a lot of redundant or unused code in
dosexp().
Explanation for docs:
Everything in an S-Expression is an operator, a variable name, a
numerical constant, or a string constant. Strings in Lisp are
represented as '(contents of string). The ECHO operator understands
these and outputs them without the syntax, but it also understands
regular Kermit strings, so you can use Kermit variables
Kermit variables that start with backslash like \%a, \v(date), etc,
don't look like Lisp variables so they have to be quoted: (echo '(\%a)
'(\v(date)))
Now do we need other string functions like CAR, CADDR, and CONCAT?
(End of April 27, 2016, notes) .................... ====
April 19, 2017: Coming back to the code after a year of not touching
it. If there are still any C-Kermit users out there, they don't seem to
have any issues. Nevertheless, I do believe there are problems with the
OpenSSL support. But I'm really not qualified or equipped to deal with
them. ====
Updated Dev version and dates, plus added comments about how to do
this. ckcmai.c, 27 Apr 2016. ====
Updated makefile dates. makefile, 27 Apr 2016. ====
It was bothering me that in Unix, you can't pipe a command or shell
script to the kind of Kermit script that is designed to read from a
file whose name specified on the command line; that is, that has an
FOPEN /READ command in it. If FOPEN had a way to "open" standard input,
then if no filename was given on the command line, FOPEN could
accommodate:
if defined \%1 fopen /read \%c \%1
else fopen /stdin \%c
if fail ...
So using this code, you can run a script "averages" in either of two
ways:
average list # The 'list' file contains a list of numbers
someprogram | average # 'someprogram' outputs a list of numbers
To see the C-Kermit changes search for "stdin" (case-independent) in
ckuus7.c. It's not super-elegant, codewise, but I didn't want to
totally redesign the data structures. Nothing was done for stdout or
stderr, but they could follow the same path if there's ever a need.
UNIX only for now, but could probably be adapted to VMS or Windows
without much trouble. ckcker.h, ckuus2.c, ckuus7.c, 19 Apr 2017. ====
Added switches for GETC... GETC /TIMEOUT:sec (so as not to have to SET
ASK-TIMER before and after), /QUIET (so as not to see "?Timed out"
message), and GETC /CHECK to see if anything is waiting to be read in
the standard input stream (what it actually does is checks to see if
stdin is a terminal; normally it won't have anything waiting if it is,
and if it isn't, that means stdin is being piped to C-Kermit (or, more
usefully, a C-Kermit script). This way a script can be written that can
read its input from a disk file whose name is given on the command
line, or have its input piped from another program, and still be able
to give a usage message if no filename was given and nothing was piped.
ckuus6.c, ckuus2.c, 21 Apr 2017. ====
Here is sample code for a script:
if defined \%1 { # filename given on command line
fopen /read \%c \%1
if fail exit 1
} else { # No command-line argument given
fopen /stdin \%c
if fail exit 1 # Open failed (shouldn't happen)
getc /check # Check if stdin is redirected.
if fail exit 1 \m(usage) # If not exit with usage message.
}
For this purpose, it turns out that IF NOT BACKGROUND works just as
well as GETC /CHECK followed by IF FAIL. IF BACKGROUND is true not only
if the program is running in the background, but also if its standard
input is a pipe. ====
--- 9.0.304 Dev.21 --- ====
Fixed \fcode() to not throw errors if given an empty string (or nothing
at all) as an argument. ckuus4.c, 22 Apr 2017. ====
In the parser for DO command (macro invocation)... Prior to C-Kermit
9.0.304 Dev.22, cmtxt() was called in all cases with zzstring. But this
fouled up the identification of macro arguments when their values
contained grouping characters such as doublequotes and braces. I
changed the cmtxt() evaluation function pointer from zzstring to NULL,
so we get a correct list of arguments, and then changed xwords (which
was a big mess) to evaluate each one. I made a new evalmacroargument()
routine for this, because xwords() needed to do this in about five
places. ckuusr.c, ckuus5.c, 24 Apr 2017. ====
The resulting Kermit program had big problems running production
scripts, so the next few edits are to aid in tracking them down.
Added HAVE_SPRINTF macro to ckcdeb.h so we can use sprintf() safely in
conditionals. True for Linux, Mac OS X, and *BSD but others can be
added easily. ckcdeb.h, 25 Apr 2017. ====
Added a new routine newerrmsg(s); that prints an error message, and if
it's from a command file, it shows the line number where the command
started and the first part of the command (hence the need for
snprintf(), to make the assembled message fit on one line). While
working on xwords() I realized that the whole big mess was totally
unnecessary now that I have the cksplit() C-Kermit library function, so
I replaced the mess (or at least the "if (macro)" parts of it) with a
single ckpslit() call. ckuusr.c, ckuus5.c, 25 Apr 2017. ====
newerrmsg() reveals that that the new "Definition is circular or too
deep" errors are at the beginning of FOR and WHILE loops, but the loops
still sort of work. This almost certainly is because FOR and WHILE are
internally defined macros that have not been passed through command
parser. Debugging continues...
Fixed a bad debug() statement in the FOPEN (or FREAD?) code that was
added in Dev.21 that could cause segfaults on certain platforms.
ckuus7.c, 26 Apr 2017. ====
Fixed a bug in cksplit(), it wasn't filling the notsep[] string array,
which could have affected CSV, TSV, or ALL include sets. ckclib.c, 26
Apr 2017. ====
When used for macro arguments, cksplit() was using '\' as a quote
character, and thus variable names were not being recognized. I added a
new cksplit() argument for this, and it works, but now cksplit doesn't
split the string into words. That was because 'while (c = *ss++ &&
!flag)' should have been 'while ((c = *ss++) && !flag)', now it is, all
OK, except it didn't set the macro arguments. This goes back to when I
decided to allow any number of macro args, instead of just 10, and
created the macro argument vector \&_[]. For arguments 1-9, you also
have to do addmac() for each argument, which I did. Really there should
not be duplicate lists, but that's for another day. ckclib.c, 26 Apr
2017. ====
The FOR, WHILE, IF, and SWITCH commands are defined in ckuus5.c like
this:
/* WHILE macro */
char *whil_def[] = { "_assign _whi\\v(cmdlevel) {_getargs,",
":_..inc,\\%1,\\%2,goto _..inc,:_..bot,_putargs},",
"_define break goto _..bot, _define continue goto _..inc,",
"do _whi\\v(cmdlevel),_assign _whi\\v(cmdlevel)",
""};
It seemed to me that the easiest way to fix the problem with the
built-in macros would be parse them the same way they were parsed
before. I moved the internal-macro check to a routine,
isinternalmacro(). It works by checking the macro name. We have to
stick to the discipline that internal macros have names starting with
'_' followed by 3 unique characters. For WHILE the "master macro" is
'_while', and the generated macros are _whi2, whi3, etc, where the
number indicates the execution stack level (so we can have nested
loops). ckuus5.c, ckuusr.c, 27 Apr 2017.
Then in ckuusr.c where the cmtxt() call was changed to not use
zzstring, put the zzstring call back if it's an internal macro, in
theory undoing the original change to dodo() but only for internal
macros. After some serious juggling of the quoting levels in the
internal WHILE macro definition, it worked. At least for my test
script, and for the HTML script. ckuus5.c, ckuusr.c, 27 Apr 2017.
Now to fix the other internal macro definitions... I fixed foz_def (the
macro to use when the loop variable is a macro rather than a \%x
variable), now it works too. ckuus5.c, 27 Apr 2017. ====
A problem with FOR was noted where the loop variable disappears inside
the loop: "for \%i 99 99 1 { echo [\%i] }" printed "[]" instead of
"[99]". Fixed by adjusting the quoting in for_def. ckuus5.c, 28 Apr
2017.
The IF command (also implemented as an internal macro) was adjusted the
same way. ckuus5.c, 28 Apr 2017.
The next problem comes up when running the text-to-html script on this
update notes file: it gets errors like
"?<ERROR:MISSING_ARG:\farraylook()>". This problem was not in Kermit
but in the script: \m(line) was being passed as an argument to a macro,
and the line contained the string "\farraylook()". The argument is seen
as \%1 from the macro's point of view and therefore evaluated
recursively. The solution is to refer to this argument as
\fcontents(\%1). No wonder the Kermit programming never caught on! I
forgot about this, even though it was standard advice for (for example)
passing Windows pathnames as arguments to macros. Anyway, with this
change the html script runs without complaint and productes the correct
result. April 28, 2017.
But running other long, complex production scripts, a new problem came
up: when a macro passes one (or more) of its arguments to another
macro, the other macro gets an empty value for it. dodo():
. Makes a new macro level (maclvl) and a new command level (cmdlvl).
. Initializes the new cmdlvl stack frame.
. Initializes the return value for this level to NULL.
. Deletes any old macro arguments (\%1-\%9) at this level.
. Calls xwords() to get the new argument list.
Suppose macro A has been called with an argument \%1, and then invokes
macro B with that same argument. Macro B gets "\%1" rather than the
value of \%1, but since it is at a new level, \%1 does not have a
value. Previously, these variables were evaluated in docmd() case XXDO,
before dodo() was called, therefore they received the values from level
where the macro was invoked. Now they are evaluated after dodo() starts
a new macro level, but in the new level zzstring() doesn't find any
definitions for the \%1-9 variables. The solution is not exactly
elegant:
maclvl--;
evalmacroarg(&p);
maclvl++;
but it's the only safe way to do it, because it is only in this place
that we know that (say) \%1 is on the macro invocation's argument list
and not in some other context. ckuus5.c, 29 Apr 2017. ====
The SWITCH command internal macro definition needed another adjustment.
ckuus5.c, 30 Apr 2017.
In running the suite of script-language torture tests, most of them
(the ones published on the website) give the same results in previous
and new C-Kermit. An incompatibility was noted in the 'demo' script:
ask \%x { Type 3 numbers separated by spaces or an empty line to quit: }
if not def \%x break
smallest \%x
In old Kermit, the 'smallest' macro saw three arguments; the new Kermit
sees only one. I think the old behavior was too much magic; the new
behavior is proper. From now on, if you want a macro to receive 3
arguments, you'll have to call it with three arguments. Or recode the
macro to \fsplit() any compound arguments.
The S-Expression torture test gets errors now that it didn't before,
but the errors are correct: e.g.
?Not defined - "c"
?sexp[37]: "(++ a 1 b 1 c 1 d)": Syntax error'
?Too few operands - "/ 2"
?sexp[110]: "(/ 2) ----} - c a)) t2 t1)..."
?Too few operands - "++"
?sexp[189]: "(++) ate result) f (objective \%1) ..."
Added FOPEN /STDOUT and FOPEN /STDERR. This allows a Kermit script to
be fully pipeable. A minor wrinkle here was to not actually close any
of these if the script contained an FCLOSE for them. ckcker.h,
ckuus[27].c, 30 Apr 2017. ====
--- 9.0.304 Dev.22 --- ====
CHANGE /COUNT:variablename always set variable to 0 or 1, where it
should have set it to the number of changes that it made. Diagnosis: it
was sharing too much code with DIRECTORY /COUNT. Fixed in ckuus6.c, 8
May 2017. ====
Fixed Lisp (ROUND -5.6666 2), it was losing the minus sign (result 5.67
instead of -5.67). ckcklib.c, 19 July 2017. ====
\fpictureinfo(s[,&a]) apparently never has worked for getting the
orientation of a JPG that comes straight out of a camera (or certain
cameras). The reason I never noticed this is that I almost always run
every image in a gallery through Photoshop first. Kermit only looks at
the ImageLength (i.e. height) and ImageWidth Exif items, but in the
camera's files they are the same for all orientations; the actual
orientation is given by the Exif Orientation tag. Photoshop uses this
to orient the picture properly when loading it, and sets the width and
height correctly on writing it out.
But there is nothing Kermit can do about this; even if I could figure
out how to find the Orientation tag, what would I do with it?
Eventually it dawned on me that the right place to handle this (to fix
the problem when it occurs in the Photogallery script) was on on the
Imagemagick command line. Simply adding -auto-orient did the trick.
Photogallery 2.14, 21 Jul 2017. No changes to Kermit.
Added a new option to \freplace(): a 5th argument specifying "word
mode", meaning that the target string will be replaced only if it's a
"word", i.e. surrounded by whitespace or punctuation, etc, so as not
avoid the case where the target word happens to also be a substring of
other words. For example, changing the word "a" to the word "the"
without changing all the other letter a's to "the". That would be
simple enough but I also wanted to handle things like replacing "--" by
— and "..." by … (for the html-to-text script). Added 4
new routines -- isalphanum(string), cisalphanum(char),
nonalphanum(string), cnonalphanum(string) -- which the \freplace() code
uses to check the context of the target string. All of the new code is
in #ifdef RPLWORDMODE..#endif, so can easily be deselected if
necessary. ckuus[24].c, 5-7 Oct 2017. ====
Simplified "hints" given after a GET command failed. ckuus5.c, 8 Oct
2017. ====
CHANGE command: Got rid of the the "Would create temp file" message, it
overwhelms all the other feedback. ckuus6.c, 10 August 2018. ====
Changed copyright year to 2018. ckcmai.c, 10 August 2018. ====
It was annoying me that constructions like:
if \findex(not rated,\m(line)) {
.line := \freplace(\m(line),not rated,sin ranking)
}
failed with a message like "?<ERROR:MISSING_ARG:\findex()>". This has
been the case forever. The standard advice was to work around in ways
like this:
.x := \findex(not rated,\m(line))
if x .line := \freplace(\m(line),not rated, sin ranking)
or:
if \findex(not\32rated,\m(line)) {
.line := \freplace(\m(line),not rated, sin ranking)
}
or:
.notrated = not rated
if \findex(\m(notrated),\m(line)) {
.line := \freplace(\m(line),not rated, sin ranking)
}
The IF command expects a keyword, a symbol, a number, or a "field", and
therefore breaks on the first space. This is not a problem only with
the IF command, nor only with the \findex() function; the same thing
happens in any context where a "word" is expected and you include a
\function() invocation that has spaces in its argument list. A
universal fix was required at the very deepest level of the command
parser: a state machine that recognizes function calls and prevents any
blanks contained in their argument lists from triggering a premature
word break. Now you can write function calls consistently in any
context, no matter whether they contain spaces or not. The new code was
added to gtword() and setatm() in ckucmd.c, enclosed in #ifdef
FUNCTIONTEST..#endif, which is defined at the top of the file. 3-4
September 2018. By the way, doing this revealed significant unnecessary
duplication of effort between gtword() and setatm(), not worth fixing
at this late date. ====
--- 9.0.304 Dev.23 4 Sep 2018 --- ====
I've been using this version myself for 16 months with a lot of
heavy-duty scripting, so after making sure it still builds on Red Hat
6.10 and NetBSD 8.1, I installed it on the FTP server and announced it.
- 31 January 2020 ====
The cmcvtdate() routine in ckucmd.c has been there since 2000 (C-Kermit
7.0); its purpose is to parse free-format date-times (possibly
including offests and/or timezones) and convert them into canonical
local-timezone date-times. It's used by the DATE command and also by
any other command than can parse date-times, and by the script language
\fcvtdate() function. Among the many formats I thought it was supposed
to understand is the one used in Apache weblogs: yyyy:mm:dd:hh:mm:ss.
Apparently this has never worked. I changed cmcvtdate() (and thus the
DATE command and the \fcvtdate() function) to preprocess its argument
and strip the colons from any dates in this format before proceeding. -
ckucmd.c, ckcmai.c, 25 Apr 2020. ====
Under certain circumstances, the CHANGE command could cause a
segmentation fault. Diagnosis: a variable (k) was referenced
(incremented) before it was initialized. - domydir(), ckuus6.c, 26
April 2020. ====
--- 9.0.304 Dev.24 25 Apr 2020 -- ====
Emergency C-Kermit release because GNU changed the name of a symbol
from "__FILE_defined" to "__FILE_defined", thus breaking C-Kermit
builds on all platforms (like Debian and Ubuntu) that use glibc.
ckucmd.c, ckcmai.c.
--- 9.0.305 Alpha.01 24 Jul 2020 --
:END: ---------------------------------
**************************
[[20]Go to top]
__________________________________________________________________
ckupdates.html: 20200131 11:26:59 ... Text to html by Kermit [21]html
script 3.03
References
1. file:///net/u/1/f/fdc/kermit/ckupdates.html#bottom
2. ftp://ftp7.usa.openbsd.org/pub/os/OpenBSD/3.3/i386/
3. http://freshmeat.net/articles/view/709/
4. http://www.ece.utexas.edu/~luo/linux_lfs.html
5. http://devrsrc1.external.hp.com/STK/partner/lg_files.pdf
6. http://wwws.sun.com/software/whitepapers/wp-largefiles/largefiles.pdf
7. http://zssh.sourceforge.net/
8. http://kermit.columbia.edu/security.html
9. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3767)
10. http://www.columbia.edu/kermit/ftp/test/tar/x.zip
11. http://www.mseclab.com/?p=180
12. http://www.theregister.co.uk/2009/07/30/universal_ssl_certificate/
13. http://tim.sneddon.id.au/blog/Posts/C-Kermit_for_Android
14. http://www.oldsite.com/
15. http://www.newsite.com/
16. https://wiki.debian.org/Multiarch/Implementation
17. https://wiki.ubuntu.com/MultiarchSpec
18. https://wiki.debian.org/Multiarch/HOWTO
19. https://www.google.com/
20. file:///net/u/1/f/fdc/kermit/ckupdates.html#top
21. http://kermitproject.org/html.html
|