diff --git a/BadBoy_Classic.lua b/BadBoy_Classic.lua new file mode 100644 index 0000000..0ded2fa --- /dev/null +++ b/BadBoy_Classic.lua @@ -0,0 +1,365 @@ + +local _, S = ... +S.gnt(1439,"1509,1534,1531,1531,1534,1526,1534,1518,1517,1526,1529,1526,1530,1529,1530,1518^1523,1532,1514,1522,1461,1457,1529,1526,1523,1523,1461,1457,1452,1515,1458,1522,1461,1457,1524,1520,1525,1532,1531,1516,1530,1461,1457,1527,1530,1531^1509,1530,1516,1523,1523,1520,1525,1518,1514,1530,1518,1526,1514,1512,1530,1516^1534,1531,1506,1513,1530,1531,1508,1529,1530,1466,1478,1518,1526,1523,1515,1461,1457,1534,1526,1534,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1514,1515,1522,1516,1516,1478,1536^1534,1531,1506,1513,1530,1508,1534,1526,1534,1518,1526,1523,1515,1461,1457,1529,1530,1518,1526,1523,1515^1509,1530,1516,1523,1523,1520,1525,1518,1530,1526,1524,1516,1514,1530,1518,1526,1514,1512,1530,1516^1509,1513,1532,1536,1520,1525,1518,1526,1530,1529,1530,1518,1526,1523,1515,1534,1520,1531,1519,1534,1526,1534,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1522,1516,1536^1534,1531,1530,1534,1526,1534,1512,1514,1514,1526,1532,1525,1531,1461,1457,1516,1527,1520,1514^1515,1526,1532,1513,1523,1516,1461,1457,1531,1529,1520,1527,1527,1478,1523,1516,1461,1457,1514,1512,1530,1520,1525,1526^1509,1518,1526,1531,1530,1526,1524,1516,1529,1530,1463,1470,1462,1478,1529,1478,1530,1478,1466,1478,1518,1526,1523,1515,1523,1512,1536,1520,1525,1518,1512,1529,1526,1532,1525,1515,1461,1457,1524,1516^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1514,1519,1516,1512,1527^1509,1534,1531,1530,1514,1519,1516,1512,1527,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1508,1529,1530,1512,1514,1514,1526,1532,1525,1531^1509,1531,1529,1512,1515,1520,1525,1518,1514,1530,1518,1526,1461,1457,1518,1526,1523,1515^1529,1526,1523,1523,1461,1457,1518,1512,1524,1516,1461,1457,1518,1526,1523,1515,1461,1457,1534,1520,1525,1461,1457,1523,1526,1534,1516,1529^1509,1534,1531,1513,1452,1515,1458,1524,1463,1470,1518,1527^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1522,1525,1520,1506,1517,1533,1508,1516^1518,1526,1523,1515,1517,1526,1529,1529,1532,1525,1516,1530,1514,1512,1527,1516,1518,1526,1523,1515^1509,1534,1531,1513,1526,1530,1529,1530,1518,1527^1509,1534,1531,1506,1513,1530,1508,1506,1466,1469,1508,1463,1515,1512,1536,1530,1478,1527,1529,1516,1527,1512,1520,1515,1518,1512,1524,1516,1531,1520,1524,1516^1509,1534,1531,1506,1513,1530,1508,1518,1512,1524,1516,1514,1512,1529,1515^1509,1531,1529,1512,1515,1520,1525,1518,1534,1526,1534,1518,1526,1523,1515,1517,1526,1529,1526,1478,1530,1478,1529,1530,1518,1526,1523,1515^1518,1512,1524,1513,1523,1516,1461,1457,1529,1526,1523,1523,1461,1457,1535,1465,1461,1457,1529,1526,1523,1523,1461,1457,1535,1468^1509,1530,1516,1523,1523,1520,1525,1518,1518,1526,1523,1515,1530,1478,1517,1526,1529,1514,1530,1518,1526^1509,1534,1531,1530,1452,1515,1458,1515,1512,1536,1530,1478,1518,1512,1524,1516,1531,1520,1524,1516^1534,1531,1506,1513,1530,1508,1529,1532,1525,1516,1530,1514,1512,1527,1516,1518,1526,1523,1515^1515,1506,1526,1532,1508,1506,1532,1513,1508,1513,1523,1516,1461,1457,1452,1515,1458,1461,1457,1531,1529,1520,1527,1527,1478,1523,1516^1509,1513,1532,1536,1520,1525,1518,1514,1530,1518,1526,1522,1516,1536^1509,1534,1531,1530,1452,1515,1458,1522,1517,1526,1529,1452,1515,1458,1516,1532^1509,1534,1531,1506,1513,1530,1531,1508,1522,1516,1536,1530,1520,1525,1514,1530,1518,1526^1514,1512,1530,1520,1525,1526,1461,1457,1529,1526,1523,1523,1461,1457,1515,1526,1532,1513,1523,1516^1534,1531,1506,1513,1530,1508,1529,1532,1525,1516,1530,1514,1512,1527,1516,1512,1514,1514,1526,1532,1525,1531^1534,1531,1506,1513,1530,1508,1461,1457,1529,1532,1525,1516,1530,1514,1512,1527,1516,1524,1526,1525,1516,1536,1461,1457,1452,1515,1458,1522^1513,1516,1531,1461,1457,1529,1526,1523,1523,1461,1457,1535,1465,1461,1457,1535,1466,1461,1457,1524,1520,1525,1461,1457,1524,1512,1535^1509,1534,1531,1531,1534,1526,1534,1518,1526,1523,1515,1517,1526,1529,1526,1530,1529,1530^1509,1513,1532,1536,1520,1525,1518,1514,1519,1516,1512,1527,1514,1530,1518,1526,1530,1522,1520,1525^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1530,1531,1516,1512,1524,1518,1520,1517,1531^1509,1530,1516,1523,1523,1520,1525,1518,1514,1530,1518,1526,1520,1531,1516,1524^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1530,1522,1520,1525,1530^1509,1534,1531,1506,1513,1530,1508,1518,1526,1530,1522,1520,1525,1530^1509,1534,1531,1506,1513,1530,1508,1527,1529,1516,1527,1512,1520,1515,1514,1512,1529,1515^1509,1534,1531,1506,1530,1513,1531,1508,1534,1526,1534,1518,1526,1523,1515,1517,1526,1529,1514,1530,1518,1526,1530,1522,1520,1525^1509,1534,1531,1506,1513,1530,1508,1518,1512,1524,1516,1531,1520,1524,1516^1518,1526,1523,1515,1461,1457,1531,1529,1520,1527,1527,1478,1523,1516,1461,1457,1514,1512,1530,1520,1525,1526^1509,1534,1531,1506,1513,1530,1531,1508,1530,1526,1524,1516,1514,1530,1518,1526,1530,1522,1520,1525^1509,1534,1531,1531,1534,1526,1534,1518,1517,1526,1529,1529,1530,1463,1470,1518^1509,1534,1531,1513,1529,1530,1518,1527,1451^1509,1534,1531,1506,1530,1531,1508,1512,1514,1514,1526,1532,1525,1531,1534,1520,1531,1519^1509,1534,1531,1513,1518,1526,1523,1515,1461,1457,1518,1512,1524,1516,1531,1520,1524,1516^1529,1526,1523,1523,1461,1457,1452,1515,1458,1461,1457,1529,1526,1523,1523,1461,1457,1452,1515,1458,1461,1457,1513,1516,1531^1509,1534,1531,1506,1513,1530,1531,1508,1529,1530,1463,1470,1518,1526,1523,1515^1534,1531,1506,1513,1530,1508,1534,1526,1534,1518,1526,1523,1515,1461,1457,1529,1530,1514,1526,1520,1525,1531,1478,1530^1514,1512,1530,1520,1525,1526,1461,1457,1534,1519,1520,1530,1527,1516,1529,1461,1457,1520,1525,1517,1526^1509,1534,1531,1506,1513,1530,1508,1527,1529,1516,1527,1512,1520,1515,1518,1512,1524,1516,1514,1512,1529,1515^1515,1520,1514,1516,1461,1457,1535,1465,1461,1457,1535,1466,1461,1457,1513,1516,1531,1530^1509,1534,1531,1506,1513,1530,1531,1508,1524,1536,1518,1526,1523,1515,1517,1526,1529,1514,1530,1518,1526,1530,1522,1520,1525^1514,1512,1530,1520,1525,1526,1461,1457,1452,1515,1458,1535,1465,1461,1457,1452,1515,1458,1535,1466^1509,1534,1531,1506,1513,1530,1508,1452,1515,1458,1515,1512,1536,1461,1457,1518,1512,1524,1516,1514,1512,1529,1515^1514,1512,1530,1520,1525,1526,1461,1457,1529,1526,1523,1523,1461,1457,1452,1515,1458,1461,1457,1529,1526,1523,1523,1461,1457,1452,1515,1458^1509,1513,1532,1536,1520,1525,1518,1514,1530,1518,1526,1522,1525,1520,1506,1517,1533,1508,1516^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1514,1512,1524,1526^1509,1534,1531,1506,1513,1530,1531,1508,1518,1526,1523,1515,1517,1526,1529,1514,1530,1518,1526^1509,1534,1531,1506,1530,1531,1508,1534,1526,1534,1512,1514,1514,1526,1532,1525,1531^1523,1532,1514,1522,1461,1457,1529,1526,1523,1523,1461,1457,1515,1526,1532,1513,1523,1516,1461,1457,1518,1526,1523,1515^1513,1532,1536,1520,1525,1518,1478,1529,1532,1525,1516,1530,1514,1512,1527,1516,1506,1512,1518,1508^1529,1532,1525,1516,1530,1514,1512,1527,1516,1518,1526,1523,1515,1517,1526,1529,1534,1526,1534,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1531,1508,1524,1536,1534,1526,1534,1518,1526,1523,1515,1461,1457,1514,1530,1518,1526,1530,1522,1520,1525^1529,1526,1532,1523,1516,1531,1531,1516,1461,1457,1529,1526,1523,1523,1461,1457,1465,1535,1461,1457,1466,1535^1509,1534,1531,1506,1513,1530,1508,1518,1512,1524,1516,1514,1526,1515,1516^1509,1518,1526,1531,1512,1525,1536,1529,1530,1463,1478,1466,1462,1529,1530,1463,1478,1470,1518,1526,1523,1515,1523,1512,1536,1520,1525,1518,1512,1529,1526,1532,1525,1515,1461,1457,1518,1526,1526,1515,1526,1517,1517,1516,1529^1529,1526,1523,1523,1518,1512,1524,1513,1523,1516,1461,1457,1452,1515,1458,1461,1457,1523,1526,1530,1516,1452,1515,1458,1461,1457,1534,1520,1525,1461,1457,1452,1515,1458^1509,1534,1531,1530,1514,1519,1516,1512,1527,1512,1525,1515,1517,1512,1530,1531,1518,1526,1523,1515^1514,1512,1530,1520,1525,1526,1461,1457,1515,1520,1514,1516,1461,1457,1452,1515,1458,1461,1457,1531,1529,1520,1527,1523,1516^1516,1535,1514,1519,1512,1525,1518,1520,1525,1518,1529,1530,1518,1526,1523,1515^1531,1529,1512,1515,1520,1525,1518,1524,1536,1534,1526,1529,1523,1515,1526,1517,1534,1512,1529,1514,1529,1512,1517,1531,1518,1526,1523,1515,1517,1526,1529,1461,1457,1529,1532,1525,1516,1530,1514,1512,1527,1516,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1512,1514,1514^1509,1534,1531,1506,1513,1530,1531,1508,1523,1516,1518,1520,1526,1525,1514,1478,1515,1478,1522,1516,1536^1509,1534,1531,1506,1513,1530,1531,1508,1514,1519,1516,1512,1527,1514,1530,1518,1526,1530,1522,1520,1525^1514,1512,1530,1520,1525,1526,1461,1457,1513,1516,1531,1461,1457,1452,1515,1458^1514,1530,1518,1526,1530,1522,1520,1525,1530,1461,1457,1518,1526,1523,1515,1461,1457,1530,1519,1526,1527,1461,1457,1524,1526,1532,1525,1531,1530^1509,1534,1531,1506,1513,1530,1508,1512,1478,1525,1478,1512,1534,1516,1530,1526,1524,1516,1529,1530,1512,1514,1514,1526,1532,1525,1531^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1520,1531,1516,1524^1509,1513,1532,1536,1520,1525,1518,1529,1530,1466,1530,1531,1532,1517,1517^1509,1513,1532,1536,1520,1525,1518,1514,1530,1452,1461,1478,1518,1506,1463,1526,1508,1530,1522,1520,1525^1509,1534,1531,1506,1513,1530,1508,1513,1512,1523,1512,1525,1514,1516,1527,1512,1536,1527,1512,1523,1513,1536,1518,1526,1523,1515^1509,1534,1531,1506,1513,1530,1531,1508,1512,1525,1536,1514,1530,1518,1526,1530,1522,1520,1525^1509,1534,1531,1531,1534,1526,1534,1518,1526,1523,1515,1517,1526,1529,1526,1523,1515,1530,1514,1519,1526,1526,1523,1529,1530,1518,1526,1523,1515^1514,1512,1530,1520,1525,1526,1461,1457,1462,1534,1461,1457,1452,1515,1458,1461,1457,1529,1526,1523,1523^1534,1512,1525,1531,1531,1526,1513,1532,1536,1506,1462,1507,1508,1530,1516,1523,1523,1514,1530,1518,1526,1520,1531,1516,1524^1534,1512,1525,1531,1531,1526,1530,1516,1523,1523,1506,1462,1507,1508,1513,1532,1536,1514,1530,1518,1526,1520,1531,1516,1524^1509,1534,1531,1506,1513,1530,1508,1452,1515,1458,1524,1526,1525,1531,1519,1461,1457,1518,1512,1524,1516,1531,1520,1524,1516^1509,1530,1516,1523,1523,1520,1525,1518,1514,1530,1518,1526,1530,1522,1520,1525^1452,1515,1458,1461,1457,1515,1506,1526,1532,1508,1506,1532,1513,1508,1513,1523,1516,1461,1457,1452,1515,1458,1461,1457,1531,1529,1520,1527^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1452,1461,1478,1518,1526,1530,1522,1520,1525^1509,1534,1531,1506,1513,1530,1531,1508,1514,1530,1518,1526,1514,1512,1530,1516^1509,1534,1531,1513,1518,1526,1523,1515,1461,1457,1524,1526,1532,1525,1531^1514,1512,1530,1520,1525,1526,1461,1457,1452,1515,1458,1461,1457,1515,1526,1532,1513,1523,1516,1461,1457,1452,1515,1458,1461,1457,1531,1529,1520,1527,1527,1478,1523,1516^1534,1531,1506,1513,1530,1508,1529,1532,1525,1516,1530,1514,1512,1527,1516,1527,1532,1529,1516^1529,1526,1523,1523,1461,1457,1534,1520,1525,1461,1457,1515,1526,1532,1513,1523,1516,1461,1457,1524,1520,1525,1461,1457,1524,1512,1535^1509,1518,1526,1531,1512,1525,1536,1529,1532,1525,1516,1530,1514,1512,1527,1516,1518,1526,1523,1515,1462,1534,1524,1516^1509,1534,1531,1530,1452,1515,1458,1515,1512,1536,1530,1478,1518,1512,1524,1516,1514,1512,1529,1515^1534,1526,1534,1518,1526,1523,1515,1517,1526,1529,1514,1530,1518,1526,1522,1516,1536^1509,1534,1531,1506,1513,1530,1508,1452,1515,1458,1529,1530,1512,1514,1514,1526,1532,1525,1531^1514,1512,1530,1520,1525,1526,1461,1457,1523,1516,1518,1520,1531,1461,1457,1530,1512,1517,1516,1461,1457,1514,1512,1530,1520,1525,1526","1529,1471,1466,1468,1466,1466,1467,1468,1468,1472^1534,1521,1531,1521,1532,1528,1517,1535,1528,1517,1535,1531,1520,1527,1528^1510,1525,1513,1530,1521,1526,1513,1644,1600,1563,1644,1600,1570,1647,1570,1548,1646,1554,1580,1647,1560,1550,1644,1600,1563,1645,1590,1598^1625,1550,1517,1624,1605,1507,1513,1517,1509,1462,1458,1524,1527,1527,1532,1523,1517,1517,1528,1517,1530,1507,1453,1462,1460,1509,1515,1527,1525^1645,1606,1590,1644,1607,1577,1462,1458,1465,1469,1464,1469,1467,1472,1465,1473,1464,1471^1534,1521,1531,1521,1532,1462,1458,1531,1521,1525,1528,1524,1517,1515,1513,1530,1530,1537,1453,1462,1515,1527,1525^1516,1521,1531,1515,1527,1530,1516,1462,1458,1516,1534,1521,1526,1519,1531,1533,1528,1528,1527,1530,1532^1624,1605,1624,1600,1624,1599,1523,1624,1600,1517,1625,1550,1517,1624,1605,1625,1555,1462,1458,1519,1517,1532,1524,1527,1527,1532,1507,1453,1462,1460,1509,1530,1533^1510,1525,1513,1530,1521,1526,1513,1645,1560,1548,1647,1583,1557,1647,1570,1590,1648,1546,1580^1531,1523,1537,1528,1517,1462,1458,1525,1513,1538,1517,1535,1527,1535^1510,1520,1517,1524,1528,1535,1521,1532,1520,1525,1537,1532,1520,1521,1515,1465,1464,1523,1517,1537,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537,1463,1531,1520,1513,1530,1517,1462,1458,1515,1520,1517,1531,1532,1530,1533,1526,1462,1458,1528,1525,1518,1527,1530,1521,1526,1518,1527^1535,1530,1521,1532,1517,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1516,1521,1531,1515,1527,1530,1516,1462,1458,1530,1517,1537,1534,1521,1526,1523,1465,1469,1472,1470^1510,1514,1527,1527,1531,1532,1521,1526,1519,1525,1537,1532,1520,1521,1515,1462,1458,1516,1533,1526,1519,1517,1527,1526,1531,1513,1526,1516,1530,1513,1521,1516,1531,1462,1458,1530,1513,1530,1517,1525,1527,1533,1526,1532,1531,1462,1458,1528,1534,1528,1520,1517,1524,1528^1529,1529,1462,1458,1465,1464,1464,1472,1468,1469,1473,1473,1469^1529,1529,1462,1458,1467,1465,1473,1468,1469,1466,1465,1472,1468,1472^1528,1530,1527,1516,1533,1515,1532,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1534,1536,1522,1521,1526,1519,1536,1533,1513,1526,1467,1467,1468,1468,1469,1466,1465^1535,1532,1531,1534,1521,1515,1521,1527,1533,1531,1462,1458,1527,1532,1520,1517,1530,1528,1534,1528,1525,1527,1533,1526,1532,1531,1462,1458,1515,1513,1530,1530,1521,1517,1516,1462,1458,1531,1523,1521,1524,1524,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537^1510,1525,1513,1530,1521,1526,1513,1645,1572,1579,1645,1549,1553,1645,1550,1571^1521,1527,1535,1462,1458,1530,1525,1514,1462,1458,1527,1523,1468,1519,1527,1524,1516^1515,1527,1526,1532,1513,1515,1532,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1519,1527,1524,1516,1468,1527,1523,1507,1453,1462,1460,1509,1515,1527,1525,1462,1458,1531,1527,1532,1515,1523^1529,1529,1467,1465,1472,1466,1469,1472,1467,1469,1464,1473,1462,1458,1531,1523,1537,1528,1517^1644,1600,1603,1648,1548,1561,1645,1573,1560,1649,1586,1561,1462,1458,1645,1557,1545,1645,1593,1546,1644,1605,1558,1644,1607,1573,1462,1458,1466,1465,1464,1464,1528,1534,1528,1647,1589,1553,1647,1602,1583^1510,1525,1513,1530,1521,1526,1513,1646,1567,1583,1644,1600,1566,1647,1565,1556^1521,1526,1518,1527,1462,1458,1535,1517,1514,1531,1521,1532,1517,1462,1458,1522,1533,1531,1532,1514,1527,1527,1531,1532^1515,1520,1517,1515,1523,1462,1458,1535,1527,1535,1520,1533,1526,1532,1453,1462,1515,1527,1525^1644,1607,1577,1525,1521,1513,1465,1465,1465,1466,1469^1531,1520,1513,1516,1527,1535,1514,1527,1527,1531,1532,1453,1462,1515,1527,1525,1462,1458,1519,1533,1521,1524,1516^1526,1527,1533,1531,1531,1527,1525,1525,1517,1531,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1645,1556,1549,1645,1571,1578,1462,1458,1469,1466,1471,1467,1467,1472,1473,1467,1468^1535,1532,1531,1462,1458,1513,1526,1516,1527,1532,1520,1517,1530,1534,1521,1515,1521,1527,1533,1531,1525,1527,1533,1526,1532,1531,1462,1458,1534,1521,1513,1453,1516,1534,1453,1516,1462,1458,1525,1533,1524,1532,1521,1528,1524,1517,1532,1517,1513,1525,1531,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537^1535,1532,1531,1462,1458,1517,1453,1462,1458,1528,1453,1462,1458,1521,1453,1462,1458,1515,1453,1462,1458,1515,1453,1462,1458,1513,1453,1462,1458,1530,1453,1462,1458,1530,1453,1462,1458,1537,1453,1462,1458,1515,1453,1462,1458,1527,1453,1462,1458,1525^1516,1521,1531,1515,1527,1530,1516,1528,1517,1535,1528,1517,1535,1469,1468,1468,1472^1516,1521,1531,1515,1527,1530,1516,1514,1513,1530,1531,1513,1530,1516,1465,1471,1469,1472^1645,1564,1590,1645,1606,1590,1462,1458,1472,1473,1468,1469,1472,1464,1466,1467,1465^1510,1525,1513,1530,1521,1526,1513,1528,1534,1528,1647,1594,1606,1649,1564,1560,1647,1570,1590,1648,1546,1580^1527,1518,1518,1517,1530,1531,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1529,1529,1466,1469,1465,1465,1467,1464,1468,1473,1467^1515,1527,1526,1532,1513,1515,1532,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537,1507,1453,1462,1460,1509,1526,1517,1532^1515,1513,1624,1601,1532,1462,1458,1523,1521,1526,1519,1519,1527,1524,1516,1507,1453,1462,1460,1509,1530,1533^1525,1537,1532,1520,1521,1515,1462,1458,1514,1527,1527,1531,1532,1462,1458,1518,1530,1517,1517,1462,1458,1519,1517,1513,1530,1462,1458,1514,1517,1531,1532,1528,1530,1521,1515,1517,1462,1458,1521,1526,1518,1527^1534,1521,1531,1521,1532,1462,1458,1517,1528,1453,1462,1479,1521,1515,1515,1513,1530,1530,1537,1453,1462,1515,1527,1525^1645,1606,1590,1644,1607,1577,1462,1458,1519,1527,1524,1516,1518,1527,1530,1531^1516,1521,1531,1515,1527,1530,1516,1516,1527,1530,1532,1535,1521,1536,1466,1466,1469,1468^1535,1527,1535,1520,1533,1526,1532,1514,1527,1527,1531,1532,1521,1526,1519,1531,1517,1530,1534,1521,1515,1517^1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525,1462,1458,1521,1526,1518,1527^1535,1532,1531,1534,1521,1515,1521,1527,1533,1531,1462,1458,1524,1517,1519,1513,1515,1537,1528,1534,1528,1525,1527,1533,1526,1532,1531,1462,1458,1513,1515,1520,1521,1517,1534,1462,1458,1527,1528,1532,1521,1527,1526,1513,1524^1644,1607,1577,1465,1472,1465,1471,1469,1465,1467,1470,1470,1464,1466^1518,1533,1524,1524,1530,1533,1526,1462,1458,1519,1533,1513,1530,1513,1526,1532,1517,1517,1522,1533,1531,1532,1518,1527,1530,1453,1516,1453,1516,1459,1517,1533,1530,1462,1458,1532,1527,1526,1521,1519,1520,1532^1624,1607,1527,1525,1527,1624,1598,1517,1525,1462,1458,1526,1521,1519,1520,1532,1525,1527,1526,1517,1537,1507,1453,1462,1460,1509,1530,1533^1529,1529,1466,1471,1473,1465,1466,1468,1470,1467,1465^1645,1606,1590,1644,1607,1577,1538,1538,1535,1532,1467,1467,1467^1518,1513,1531,1532,1468,1519,1527,1524,1516,1507,1453,1462,1460,1509,1515,1527,1525,1462,1458,1531,1527,1532,1515,1523^1644,1607,1577,1525,1531,1531,1522,1518,1535^1645,1606,1590,1644,1607,1577,1462,1458,1465,1467,1473,1471,1469,1471,1467,1465,1466,1470,1471^1644,1607,1577,1469,1468,1473,1473,1470,1469,1472,1467,1472^1531,1523,1537,1528,1517,1462,1458,1514,1517,1524,1523,1527,1530,1523,1480,1519,1525,1513,1521,1524,1453,1462,1515,1527,1525^1535,1532,1531,1462,1458,1513,1526,1516,1527,1532,1520,1517,1530,1528,1534,1528,1525,1527,1533,1526,1532,1531,1513,1526,1516,1513,1515,1520,1521,1517,1534,1462,1458,1526,1527,1532,1527,1526,1524,1537,1535,1521,1524,1524,1537,1527,1533,1519,1517,1532,1462,1458,1513,1524,1527,1532,1527,1518,1453,1516,1531,1535,1521,1526,1531,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1519,1527,1524,1516^1514,1527,1527,1531,1532,1521,1526,1519,1507,1453,1462,1460,1509,1528,1530,1527,1462,1458,1525,1527,1533,1526,1532^1521,1526,1518,1527,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537,1507,1453,1462,1460,1509,1515,1527,1525^1525,1537,1532,1520,1521,1515,1519,1533,1521,1524,1516,1521,1531,1531,1517,1524,1521,1521,1526,1519,1462,1458,1530,1533,1526,1531,1513,1526,1516,1525,1537,1532,1520,1521,1515,1516,1533,1526,1519,1517,1527,1526,1523,1517,1537,1531,1462,1458,1513,1520,1517,1513,1516,1527,1518,1532,1520,1517,1515,1533,1530,1534,1517,1532,1527,1516,1513,1537,1462,1458,1526,1527,1530,1517,1529,1533,1521,1530,1517,1525,1517,1526,1532,1531^1535,1532,1531,1462,1458,1531,1523,1537,1528,1517,1462,1458,1514,1527,1527,1531,1532,1521,1526,1519,1520,1517,1524,1528^1529,1529,1462,1458,1467,1469,1472,1466,1466,1464,1464,1470,1470^1531,1520,1521,1526,1517,1514,1527,1527,1531,1532,1472,1467,1467,1464^1535,1532,1531,1515,1530,1513,1538,1537,1515,1520,1517,1513,1528,1518,1513,1531,1532,1525,1537,1532,1520,1521,1515,1465,1464,1465,1469,1535,1517,1517,1523,1524,1537,1462,1458,1537,1527,1533,1515,1513,1526,1515,1520,1527,1527,1531,1517,1513,1526,1537,1516,1533,1526,1519,1517,1527,1526,1462,1458,1521,1526,1518,1527^1520,1517,1530,1517,1525,1525,1507,1464,1527,1509,1524,1534,1524,1507,1453,1462,1460,1509,1479,1515,1507,1464,1527,1509,1525^1648,1554,1591,1522,1521,1526,1519,1536,1533,1513,1526,1467,1467,1468,1468,1469,1466,1465^1645,1606,1590,1644,1607,1577,1524,1521,1533,1522,1521,1513,1526,1536,1521,1527,1526,1519,1472,1472,1466,1472^1645,1606,1590,1644,1607,1577,1517,1537,1517,1531,1524,1527,1532^1523,1520,1513,1530,1521,1516,1513,1530,1517,1462,1458,1532,1513,1524,1513,1462,1458,1520,1513,1531,1532,1513,1525,1514,1517,1462,1458,1514,1513,1524,1513,1532,1513,1530,1521,1526,1462,1458,1468,1531,1513,1524,1532,1513,1522,1530,1527,1514,1517,1462,1458,1535,1525,1517^1535,1532,1531,1534,1521,1515,1521,1527,1533,1531,1462,1458,1527,1532,1520,1517,1530,1528,1534,1528,1525,1527,1533,1526,1532,1531,1462,1458,1515,1527,1525,1528,1524,1517,1532,1521,1527,1526,1462,1458,1520,1533,1526,1516,1530,1517,1516,1462,1458,1518,1521,1531,1520,1537^1528,1530,1521,1515,1517,1462,1458,1514,1507,1464,1527,1509,1507,1464,1527,1509,1525,1514,1507,1464,1527,1509,1507,1464,1527,1509,1531,1532,1507,1453,1462,1460,1509,1515,1507,1464,1527,1509,1525^1644,1607,1577,1462,1458,1471,1471,1472,1469,1472,1471,1467,1465,1470^1531,1517,1530,1534,1521,1515,1517,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1534,1521,1531,1521,1532,1462,1458,1515,1527,1526,1529,1533,1517,1531,1532,1515,1513,1528,1528,1517,1516,1507,1453,1462,1460,1509,1515,1527,1525^1523,1527,1514,1527,1524,1516,1462,1458,1531,1528,1530,1538,1517,1516,1513,1522,1523,1527,1526,1532,1527,1507,1453,1462,1460,1509,1528,1524^1530,1525,1514,1462,1458,1646,1552,1568,1647,1605,1561,1528,1530,1517,1532,1532,1537,1517,1524,1517,1526,1513^1527,1518,1518,1517,1530,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537,1507,1460,1453,1462,1509,1515,1527,1525^1645,1606,1590,1644,1607,1577,1462,1458,1466,1470,1470,1466,1471,1473,1473,1465,1467,1468^1453,1516,1453,1516,1453,1516,1523,1519,1527,1524,1516,1462,1458,1531,1532,1513,1530,1532,1526,1527,1535,1462,1458,1515,1533,1530,1534,1517,1462,1458,1524,1527,1527,1532,1513,1530,1517,1531,1520,1513,1530,1517,1516,1462,1458,1518,1533,1524,1524,1519,1533,1521,1524,1516,1462,1458,1516,1521,1531,1515,1527,1530,1516^1515,1524,1513,1531,1531,1462,1458,1518,1514,1525,1532,1517,1513,1525,1453,1462,1515,1527,1525^1531,1523,1537,1528,1517,1462,1458,1520,1517,1524,1525,1521,1530,1471,1469,1471,1472^1513,1533,1532,1527,1462,1458,1531,1520,1513,1516,1527,1535,1514,1527,1527,1531,1532,1453,1462,1515,1527,1525^1515,1530,1533,1531,1513,1516,1517,1530,1462,1458,1646,1591,1565,1644,1600,1570,1462,1458,1523,1524,1538,1462,1458,1645,1584,1545,1646,1572,1571,1462,1458,1646,1585,1569^1510,1535,1532,1531,1525,1537,1532,1520,1521,1515,1462,1458,1535,1517,1517,1523,1524,1537,1524,1527,1527,1532,1462,1458,1520,1517,1524,1528,1537,1527,1533,1532,1527,1515,1524,1517,1513,1530,1462,1458,1524,1517,1532,1533,1531,1520,1513,1526,1516,1524,1517,1532,1520,1517,1514,1527,1530,1521,1526,1519,1528,1513,1530,1532,1531^1647,1603,1547,1647,1602,1583,1462,1458,1514,1517,1513,1530,1535,1527,1535,1507,1460,1462,1509,1515,1527,1525^1516,1521,1531,1515,1527,1530,1516,1462,1458,1528,1513,1468,1473,1468,1472^1644,1607,1577,1524,1527,1534,1517,1514,1513,1514,1537,1466,1467,1468^1514,1527,1527,1531,1532,1532,1527,1516,1513,1537,1462,1458,1531,1520,1513,1516,1527,1535,1514,1527,1527,1531,1532,1453,1462,1515,1527,1525^1534,1521,1531,1521,1532,1462,1458,1535,1527,1535,1520,1533,1526,1532,1453,1462,1515,1527,1525^1535,1517,1514,1531,1521,1532,1517,1462,1458,1517,1514,1513,1537,1519,1527,1524,1516,1531,1453,1462,1515,1527,1525^1645,1606,1590,1646,1552,1561,1465,1469,1469,1471,1468,1472,1468,1467,1470,1464,1472^1510,1648,1544,1545,1647,1553,1556,1647,1606,1558,1646,1572,1557,1515,1527,1519^1531,1523,1537,1528,1517,1462,1458,1526,1521,1519,1520,1532,1518,1521,1530,1517,1535,1527,1535,1462,1458,1519,1527,1527,1516^1516,1534,1521,1526,1519,1507,1453,1462,1460,1509,1530,1533,1462,1458,1537,1515,1624,1603,1537,1530,1624,1600^1518,1513,1515,1517,1514,1527,1527,1523,1453,1462,1515,1527,1525,1463,1531,1528,1530,1538,1517,1516,1513,1522,1523,1527,1526,1532,1527,1528,1524^1645,1606,1590,1644,1607,1577,1462,1458,1466,1472,1468,1469,1473,1470,1467,1464,1467^1531,1523,1537,1528,1517,1462,1458,1522,1513,1526,1517,1514,1527,1527,1531,1532^1516,1521,1531,1515,1527,1530,1516,1525,1537,1532,1520,1521,1515,1469,1468,1468,1472^1535,1527,1535,1525,1513,1530,1532,1507,1453,1462,1460,1509,1530,1533,1462,1458,1624,1599,1527,1624,1603,1527,1532,1527^1535,1517,1514,1528,1513,1519,1517,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537^1517,1528,1515,1513,1530,1530,1521,1517,1531,1462,1458,1531,1523,1537,1528,1517^1644,1607,1577,1519,1527,1524,1516,1535,1527,1535^1644,1607,1577,1645,1559,1599,1465,1469,1467,1464,1472,1468,1467,1469,1470,1465,1465^1645,1549,1584,1647,1606,1558,1649,1582,1566,1646,1573,1544,1645,1549,1588,1644,1604,1570,1462,1458,1524,1521,1525,1521,1532,1462,1458,1645,1551,1602,1645,1564,1590,1645,1559,1594,1648,1591,1567,1462,1458,1645,1559,1580,1645,1592,1564,1644,1600,1601,1645,1573,1560,1649,1586,1561^1510,1531,1532,1537,1524,1517,1645,1549,1588,1644,1604,1570,1646,1555,1571,1645,1560,1548,1648,1545,1556,1644,1600,1570,1647,1558,1585,1645,1590,1598,1518,1513,1530,1525,1645,1559,1582,1645,1580,1566,1645,1549,1588,1644,1604,1570,1518,1513,1530,1525,1520,1647,1558,1555,1645,1602,1583,1645,1556,1549,1645,1571,1578,1646,1572,1553,1646,1595,1565,1645,1600,1552,1516,1523,1649,1586,1561,1647,1553,1583,1646,1572,1591,1645,1573,1561,1525,1647,1558,1555,1645,1602,1583,1465,1473,1646,1572,1557,1645,1554,1577,1645,1569,1584,1471,1647,1546,1601,1645,1604,1544,1646,1553,1563,1452^1535,1527,1535,1515,1524,1513,1531,1531,1521,1515,1507,1453,1462,1460,1509,1519,1528,1524,1513,1537,1507,1453,1462,1460,1509,1528,1530,1527^1535,1532,1531,1462,1458,1525,1537,1532,1520,1521,1515,1523,1517,1537,1462,1458,1515,1513,1530,1530,1537,1530,1533,1526,1462,1458,1515,1527,1525,1517,1519,1517,1532,1537,1527,1533,1530,1513,1524,1524,1462,1458,1515,1520,1517,1513,1528,1528,1530,1521,1515,1517^1515,1527,1526,1532,1513,1515,1532,1462,1458,1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537^1534,1521,1531,1521,1532,1535,1527,1535,1534,1517,1526,1516,1527,1530,1453,1462,1507,1526,1515,1527,1509,1507,1517,1527,1530,1509,1507,1532,1525,1519,1509^1644,1600,1603,1648,1548,1561,1645,1573,1560,1649,1586,1561,1462,1458,1649,1547,1605,1644,1607,1573,1645,1602,1565,1462,1458,1647,1589,1553,1647,1602,1583,1462,1458,1648,1579,1549,1647,1589,1553,1462,1458,1644,1600,1566,1644,1603,1603,1462,1458,1528,1534,1528^1645,1606,1590,1644,1607,1577,1462,1458,1469,1473,1467,1472,1467,1471,1464,1467,1465^1531,1521,1532,1517,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1453,1462,1515,1507,1527,1464,1509,1525^1645,1606,1590,1644,1607,1577,1462,1458,1465,1469,1472,1469,1471,1470,1466,1469,1464,1464,1470^1532,1517,1524,1517,1519,1530,1513,1525,1462,1458,1513,1525,1521,1530,1513,1526,1519,1513,1525,1521,1526,1519^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1517,1536,1532,1530,1513^1534,1644,1607,1577,1462,1458,1465,1469,1464,1469,1467,1472,1465,1473,1464,1471^1516,1521,1531,1515,1527,1530,1516,1525,1517,1524,1527,1530,1521,1536,1536,1468,1465,1469,1465^1644,1607,1577,1527,1523,1468,1519,1527,1524,1516^1510,1528,1513,1521,1516,1519,1533,1521,1524,1516,1530,1533,1526,1531,1462,1458,1519,1524,1527,1530,1537,1513,1515,1520,1521,1517,1534,1517,1525,1517,1526,1532,1531,1462,1458,1525,1527,1533,1526,1532,1531,1462,1458,1528,1527,1535,1517,1530,1524,1517,1534,1517,1524,1521,1526,1519,1462,1458,1521,1526,1518,1527^1530,1513,1532,1521,1526,1519,1531,1462,1458,1515,1527,1513,1515,1520,1521,1526,1519,1462,1458,1524,1517,1519,1517,1526,1516,1513,1530,1537,1462,1458,1528,1530,1521,1538,1517,1531,1462,1458,1519,1527,1524,1516,1462,1458,1521,1526,1518,1527^1514,1527,1527,1531,1532,1521,1526,1519,1507,1453,1462,1460,1509,1528,1530,1527,1462,1458,1524,1527,1527,1532^1645,1571,1578,1462,1458,1465,1466,1473,1466,1471,1464,1470,1465,1467,1468^1534,1521,1531,1521,1532,1462,1458,1535,1527,1535,1520,1533,1526,1532,1453,1462,1526,1517,1532^1510,1515,1527,1519,1645,1549,1588,1644,1604,1570,1648,1560,1584,1645,1578,1563^1531,1523,1537,1528,1517,1462,1458,1522,1513,1531,1525,1521,1526,1517,1514,1513,1514,1537,1464,1468,1464,1472^1531,1523,1537,1528,1517,1462,1458,1519,1517,1530,1513,1524,1516,1514,1513,1529^1528,1527,1535,1517,1530,1524,1517,1479,1534,1517,1479,1524,1521,1526,1519,1462,1458,1530,1513,1530,1517,1525,1527,1533,1526,1532,1531,1462,1458,1515,1513,1530,1530,1537^1529,1460,1479,1529,1465,1464,1467,1472,1469,1473^1516,1517,1513,1524,1531,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537,1453,1462,1526,1517,1532^1529,1529,1462,1458,1465,1469,1465,1467,1473,1468,1465,1472,1465,1468^1516,1534,1521,1526,1519,1462,1458,1537,1515,1624,1603,1537,1530,1624,1600,1462,1458,1516,1534,1521,1526,1519^1510,1535,1532,1531,1532,1515,1519,1525,1527,1533,1526,1532,1462,1458,1515,1520,1517,1513,1528,1519,1462,1458,1531,1532,1527,1515,1523,1462,1458,1531,1513,1534,1517^1529,1529,1465,1473,1471,1465,1471,1464,1472,1465,1467,1471,1462,1458,1531,1523,1537,1528,1517^1519,1527,1524,1516,1462,1458,1519,1507,1527,1464,1509,1524,1516,1515,1517,1507,1527,1464,1509,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1517,1528,1521,1515,1515,1513,1530,1530,1537,1453,1462,1526,1517,1532,1462,1458,1534,1521,1531,1521,1532^1644,1607,1577,1467,1473,1473,1465,1466,1472,1469,1468,1472^1644,1607,1577,1531,1517,1531,1517,1519,1527,1524,1516^1649,1551,1561,1462,1458,1465,1469,1472,1464,1466,1469,1469,1471,1465,1466,1470^1523,1524,1538,1462,1458,1646,1553,1579,1465,1468,1472,1468,1468,1471,1465,1466,1466,1468^1521,1526,1518,1527,1462,1458,1514,1507,1527,1464,1509,1507,1527,1464,1509,1525,1514,1507,1527,1464,1509,1507,1527,1464,1509,1531,1532,1460,1515,1507,1527,1464,1509,1525^1516,1521,1531,1515,1527,1530,1516,1532,1514,1465,1507,1465,1464,1509,1464,1464^1529,1529,1462,1458,1468,1470,1473,1472,1470,1469,1468,1472,1469^1519,1533,1521,1524,1516,1462,1458,1531,1520,1513,1516,1527,1535,1514,1527,1527,1531,1532,1453,1462,1515,1527,1525^1645,1606,1590,1644,1607,1577,1462,1458,1465,1472,1470,1473,1466,1466,1464,1472,1471,1468,1469^1534,1521,1531,1521,1532,1462,1458,1528,1517,1530,1518,1517,1515,1532,1535,1513,1537,1453,1462,1527,1526,1517^1531,1523,1537,1528,1517,1462,1458,1515,1513,1524,1534,1521,1526,1453,1462,1518,1530,1517,1517,1538,1517^1531,1523,1537,1528,1517,1462,1458,1513,1528,1528,1527,1524,1513,1536,1467,1464,1472,1469^1534,1521,1531,1521,1532,1462,1458,1535,1527,1535,1514,1527,1528,1453,1462,1515,1527,1525^1529,1529,1462,1458,1472,1468,1471,1468,1470,1469,1466,1472,1470^1510,1528,1519,1528,1645,1599,1581,1644,1605,1572,1645,1590,1580,1644,1605,1558,1644,1607,1573^1535,1513,1524,1524,1519,1513,1525,1521,1526,1519,1462,1458,1524,1527,1527,1532,1462,1458,1523,1517,1537,1531,1532,1527,1526,1517^1530,1527,1624,1603,1624,1596,1513,1507,1453,1462,1460,1509,1528,1625,1548,1462,1458,1534,1521,1531,1513^1645,1606,1590,1644,1607,1577,1519,1520,1517,1531,1532,1524,1533,1527,1514,1527^1534,1521,1531,1521,1532,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1464,1527,1509,1525^1513,1532,1532,1517,1526,1532,1521,1527,1526,1462,1458,1517,1528,1521,1479,1515,1515,1513,1530,1530,1537,1453,1462,1515,1527,1525^1510,1513,1514,1532,1648,1555,1593,1649,1571,1548,1645,1556,1549,1645,1571,1578,1462,1458,1515,1527,1519,1645,1599,1581,1644,1605,1572,1645,1590,1580^1644,1607,1577,1514,1513,1514,1517,1537,1465,1465,1466,1467^1535,1532,1531,1534,1521,1515,1521,1527,1533,1531,1462,1458,1515,1513,1530,1530,1537,1537,1527,1533,1530,1517,1519,1513,1530,1516,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537,1462,1458,1530,1517,1524,1513,1532,1517,1516,1531,1532,1533,1518,1518^1535,1517,1514,1531,1521,1532,1517,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537^1518,1514,1525,1532,1517,1513,1525,1453,1462,1515,1527,1525,1462,1458,1519,1513,1525,1517^1536,1521,1526,1514,1513,1514,1517,1537,1465,1465,1466,1467^1519,1527,1527,1519,1524,1517,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537^1529,1529,1462,1458,1466,1466,1471,1472,1464,1468,1472,1465,1471,1473^1515,1520,1517,1515,1523,1462,1458,1535,1527,1535,1520,1533,1526,1532,1453,1462,1526,1517,1532^1516,1521,1531,1515,1527,1530,1516,1462,1458,1531,1533,1526,1526,1537,1468,1465,1469,1465^1531,1517,1524,1524,1521,1526,1519,1462,1458,1517,1524,1521,1532,1521,1531,1532,1519,1513,1525,1521,1526,1519,1507,1453,1462,1460,1509,1515,1527,1525^1516,1517,1532,1513,1521,1524,1531,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1464,1527,1509,1525^1528,1534,1528,1462,1458,1535,1513,1524,1524,1519,1513,1525,1521,1526,1519,1507,1453,1462,1460,1509,1515,1527,1525^1529,1529,1462,1458,1469,1473,1467,1472,1467,1471,1464,1467,1465^1529,1529,1462,1458,1465,1469,1467,1472,1471,1468,1464,1470,1473^1645,1606,1590,1644,1607,1577,1462,1458,1531,1517,1531,1517,1519,1527,1524,1516^1528,1517,1535,1528,1517,1535,1531,1520,1527,1528,1453,1462,1528,1530,1527,1462,1458,1525,1537,1532,1520,1521,1515^1516,1521,1531,1515,1527,1530,1516,1533,1528,1467,1473,1464,1467^1644,1607,1577,1467,1473,1466,1465,1466,1467,1464,1469,1467^1535,1532,1531,1525,1537,1532,1520,1521,1515,1465,1453,1516,1531,1532,1513,1530,1532,1521,1526,1519,1526,1527,1535,1462,1458,1531,1525,1527,1527,1532,1520,1530,1533,1526,1531,1462,1458,1517,1536,1528,1517,1530,1521,1517,1526,1515,1517,1462,1458,1517,1524,1521,1532,1517,1528,1524,1513,1537,1517,1530,1531,1462,1458,1514,1517,1531,1532,1528,1530,1521,1515,1517,1531,1462,1458,1513,1524,1531,1527,1531,1517,1524,1524,1521,1526,1519,1462,1458,1519,1527,1524,1516,1527,1526,1524,1537^1516,1521,1531,1515,1527,1530,1516,1523,1527,1523,1527,1538,1527,1530,1522,1523,1517,1471,1469,1464,1471^1534,1521,1531,1521,1532,1535,1527,1535,1532,1517,1513,1525,1453,1462,1526,1517,1532^1535,1532,1531,1525,1537,1532,1520,1521,1515,1515,1520,1517,1531,1532,1518,1513,1530,1525,1462,1458,1527,1533,1530,1513,1531,1531,1521,1531,1532,1513,1526,1515,1517,1462,1458,1513,1526,1537,1513,1525,1527,1533,1526,1532,1462,1458,1530,1517,1513,1516,1537,1532,1527,1519,1527^1645,1600,1545,1462,1458,1645,1606,1590,1644,1607,1577,1531,1532,1537,1537,1524,1517,1517^1529,1529,1462,1458,1465,1468,1467,1467,1469,1467,1469,1470,1466,1472^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1525,1521,1526,1533,1532,1507,1517,1527,1509^1515,1527,1526,1532,1513,1515,1532,1462,1458,1517,1528,1521,1515,1515,1513,1530,1530,1537,1507,1453,1462,1460,1509,1515,1527,1525^1624,1607,1528,1527,1624,1596,1513,1624,1596,1624,1600,1525,1530,1528,1527,1624,1593,1624,1605,1624,1600,1625,1550,1537,1462,1458,1624,1607,1527,1624,1596,1513,1528,1527,1523,1462,1458,1624,1594,1624,1607,1525^1514,1513,1524,1527,1514,1521,1526,1516,1480,1527,1533,1532,1524,1527,1527,1523,1453,1462,1515,1527,1525^1525,1513,1519,1517,1532,1527,1535,1517,1530,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525^1529,1529,1462,1458,1467,1468,1469,1464,1467,1468,1469^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1524,1521,1534,1530,1513,1521,1531,1527,1526^1624,1607,1528,1527,1624,1596,1513,1624,1598,1513,1462,1458,1515,1527,1521,1526,1531,1531,1532,1527,1530,1517,1507,1453,1462,1460,1509,1530,1533^1644,1607,1577,1466,1468,1469,1469,1469,1470,1466,1465,1469^1516,1534,1521,1526,1519,1462,1458,1528,1527,1535,1517,1530,1524,1517,1479,1534,1517,1479,1524,1462,1458,1516,1534,1521,1526,1519^1510,1515,1527,1519,1647,1606,1558,1646,1572,1557,1645,1599,1581,1644,1605,1572,1645,1590,1580^1645,1606,1590,1644,1607,1577,1462,1458,1467,1469,1469,1467,1467,1472,1473,1471,1465^1535,1532,1531,1525,1516,1533,1526,1519,1517,1527,1526,1515,1520,1517,1531,1532,1530,1533,1526,1531,1462,1458,1520,1517,1524,1528,1537,1527,1533,1532,1527,1518,1513,1530,1525,1513,1526,1537,1513,1525,1527,1533,1526,1532,1527,1518,1525,1537,1532,1520,1521,1515,1462,1458,1516,1530,1527,1528,1513,1519,1517,1513,1530,1528,1521,1517,1515,1517,1462,1458,1531,1517,1532,1513,1526,1516,1530,1517,1513,1516,1537,1532,1527,1519,1527^1534,1536,1516,1513,1521,1535,1527,1535,1472,1472,1472^1531,1523,1537,1528,1517,1462,1458,1522,1533,1531,1532,1521,1526,1453,1462,1528,1524,1513,1515,1527,1531^1529,1647,1606,1580,1462,1458,1465,1466,1466,1472,1471,1465,1470,1471,1465^1531,1523,1537,1528,1517,1462,1458,1515,1520,1521,1517,1518,1514,1527,1527,1531,1532^1534,1521,1531,1521,1532,1462,1458,1516,1534,1521,1526,1519,1453,1462,1526,1517,1532^1535,1532,1531,1462,1458,1524,1527,1527,1532,1530,1513,1521,1516,1462,1458,1519,1524,1527,1530,1537,1462,1458,1525,1527,1533,1526,1532,1531,1462,1458,1525,1527,1530,1517,1521,1526,1518,1527^1644,1607,1577,1462,1458,1465,1471,1471,1472,1472,1473,1469,1469,1467,1468,1465^1531,1521,1532,1517,1520,1517,1524,1528,1535,1527,1535,1453,1462,1525,1517^1527,1533,1530,1532,1517,1513,1525,1462,1458,1520,1517,1524,1528,1537,1527,1533,1462,1458,1519,1517,1532,1537,1527,1533,1530,1462,1458,1532,1527,1516,1513,1537,1462,1458,1519,1517,1532,1531,1532,1513,1530,1532,1517,1516^1534,1521,1531,1521,1532,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1516,1507,1527,1464,1509,1532,1515,1507,1527,1464,1509,1525^1645,1606,1590,1644,1607,1577,1462,1458,1466,1466,1468,1471,1470,1472,1466,1469,1465,1466^1531,1523,1537,1528,1517,1462,1458,1514,1532,1513,1519,1462,1458,1528,1530,1517,1532,1532,1537,1517,1524,1517,1526,1513^1527,1524,1527,1524,1527,1528,1517,1535,1469,1468,1468,1472^1534,1521,1531,1521,1532,1462,1458,1516,1534,1521,1526,1519,1516,1527,1532,1526,1517,1532^1529,1529,1462,1458,1466,1472,1469,1465,1471,1467,1465,1472,1472,1471^1510,1525,1513,1530,1521,1526,1513,1647,1587,1574,1646,1554,1544,1645,1572,1602^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1527,1514,1532,1517,1526,1517,1538^1521,1526,1518,1527,1462,1458,1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1479,1515,1507,1464,1527,1509,1525^1510,1525,1513,1530,1521,1526,1513,1649,1568,1607,1646,1571,1604,1648,1555,1559,1647,1570,1548,1649,1578,1548,1648,1583,1545^1510,1525,1513,1530,1521,1526,1513,1648,1591,1570,1646,1558,1581,1646,1567,1581^1525,1525,1507,1527,1464,1509,1524,1534,1524,1507,1453,1462,1460,1509,1515,1507,1527,1464,1509,1525,1462,1458,1515,1527,1526,1532,1513,1515,1532^1535,1532,1531,1515,1520,1517,1513,1528,1517,1531,1532,1462,1458,1525,1537,1532,1520,1521,1515,1516,1533,1526,1519,1517,1527,1526,1514,1527,1527,1531,1532,1462,1458,1519,1517,1532,1537,1527,1533,1530,1453,1516,1453,1516,1453,1516,1521,1532,1517,1525,1531,1513,1532,1532,1520,1517,1517,1526,1516,1462,1458,1513,1518,1523,1462,1458,1537,1527,1533,1535,1521,1524,1524,1519,1517,1532,1513,1524,1524,1532,1520,1517,1532,1530,1513,1516,1517,1479,1513,1514,1524,1517,1524,1527,1527,1532,1462,1458,1521,1526,1518,1527^1644,1607,1577,1472,1473,1468,1469,1472,1464,1466,1467,1465^1645,1606,1590,1644,1607,1577,1465,1469,1469,1471,1468,1472,1468,1467,1470,1464,1472^1535,1517,1515,1520,1513,1532,1462,1458,1535,1532,1535,1532,1521,1513,1526,1467,1466,1465^1530,1525,1514,1462,1458,1645,1581,1581,1648,1607,1586,1645,1592,1564,1648,1579,1549,1645,1580,1551,1645,1557,1565,1645,1557,1566,1462,1458,1528,1534,1528,1462,1458,1521,1527,1535^1465,1464,1465,1469,1645,1593,1546,1645,1580,1583,1647,1593,1595,1469,1645,1572,1602,1648,1607,1574,1645,1552,1599,1468,1647,1564,1594,1645,1600,1590,1646,1561,1600,1647,1569,1605,1648,1559,1572,1644,1603,1599,1646,1573,1581,1645,1557,1565,1645,1592,1593,1646,1553,1563,1644,1603,1551,1646,1565,1556,1644,1601,1555,1648,1577,1544,1465,1467,1647,1553,1601,1644,1603,1599,1525,1645,1573,1560,1649,1586,1561,1646,1592,1596,1645,1549,1547,1647,1596,1576,1646,1572,1553,1644,1605,1557,1647,1605,1590,1649,1551,1561,1645,1600,1545,1470,1464,1464,1647,1558,1592,1648,1596,1583^1531,1523,1537,1528,1517,1462,1458,1519,1517,1526,1537,1453,1462,1523,1466^1516,1521,1531,1515,1527,1530,1516,1532,1514,1471,1464,1464,1464^1644,1607,1577,1516,1513,1521,1535,1527,1535,1472,1472,1472^1535,1532,1531,1525,1537,1532,1520,1521,1515,1462,1458,1531,1532,1513,1530,1532,1521,1526,1519,1526,1527,1535,1462,1458,1531,1525,1527,1527,1532,1520,1530,1533,1526,1531,1516,1527,1526,1517,1514,1537,1462,1458,1517,1524,1521,1532,1517,1528,1524,1513,1537,1517,1530,1531,1462,1458,1514,1517,1531,1532,1528,1530,1521,1515,1517,1531,1462,1458,1535,1517,1513,1524,1531,1527,1531,1520,1513,1530,1517^1532,1521,1532,1513,1526,1521,1533,1525,1514,1513,1537,1462,1458,1519,1530,1513,1532,1521,1531^1531,1523,1537,1528,1517,1462,1458,1528,1534,1517,1531,1520,1527,1528^1531,1517,1517,1525,1527,1530,1517,1462,1458,1535,1527,1535,1520,1533,1526,1532,1453,1462,1479,1515,1527,1525^1535,1532,1531,1462,1458,1532,1515,1519,1525,1527,1533,1526,1532,1531,1462,1458,1519,1507,1527,1464,1509,1524,1516,1462,1458,1531,1513,1524,1517^1529,1469,1468,1473,1473,1470,1469,1472,1467,1472^1644,1600,1586,1644,1602,1602,1645,1563,1545,1646,1600,1579,1645,1589,1560,1462,1458,1528,1530,1527,1518,1527,1533,1526,1516,1531,1517,1513^1534,1521,1531,1521,1532,1519,1528,1524,1513,1537,1453,1462,1528,1530,1527^1645,1556,1602,1521,1527,1538,1527,1644,1605,1558,1644,1607,1573,1647,1569,1605,1648,1559,1572,1644,1603,1599,1645,1557,1545,1649,1544,1545,1644,1600,1544,1468,1647,1564,1594,1645,1600,1590,1646,1561,1600,1521,1527,1645,1593,1546,1644,1605,1558,1644,1607,1573,1646,1572,1544^1521,1519,1518,1513,1526,1531,1462,1458,1531,1532,1527,1515,1523,1462,1458,1516,1517,1524,1521,1534,1517,1530^1645,1606,1590,1644,1607,1577,1462,1458,1465,1472,1464,1469,1473,1467,1473,1471,1469,1470,1464^1528,1534,1528,1462,1458,1521,1527,1535,1462,1458,1527,1523,1468,1519,1527,1524,1516^1531,1517,1524,1524,1521,1526,1519,1462,1458,1518,1533,1524,1524,1525,1513,1531,1532,1517,1530,1524,1527,1527,1532,1462,1458,1463,1465,1464,1462,1458,1528,1517,1527,1528,1524,1517,1462,1458,1525,1513,1536,1519,1517,1513,1530,1462,1458,1515,1520,1517,1513,1528,1517,1531,1532,1528,1530,1521,1515,1517^1514,1517,1531,1533,1515,1520,1517,1526,1462,1458,1535,1527,1535,1534,1517,1526,1516,1527,1530,1453,1462,1515,1527,1525^1516,1521,1531,1515,1527,1530,1516,1462,1458,1525,1513,1524,1528,1527,1527,1531,1466,1466,1472,1468^1531,1517,1524,1524,1521,1526,1519,1462,1458,1532,1521,1525,1517,1530,1462,1458,1531,1517,1524,1518,1528,1524,1513,1537,1462,1458,1518,1513,1531,1532,1462,1458,1532,1527,1528,1519,1517,1513,1530,1462,1458,1521,1526,1518,1527","1532,1518,1525,1519,1529,1525,1514,1538^1515,1508,1528,1465,1510,1508,1528,1465,1510,1532,1533^1530,1534,1514,1527,1533,1522,1533,1538^1648,1604,1548,1648,1603,1584^1516,1528,1534,1529,1528,1527^1514,1516,1516,1532,1521,1514,1531,1508,1518,1522,1510^1520,1534,1514,1531,1514,1527,1533,1518,1518^1650,1580,1575,1649,1578,1557,1647,1553,1561,1646,1593,1594^1649,1546,1557,1645,1601,1571,1646,1574,1561,1650,1587,1562^1514,1531,1518,1527,1514^1533,1531,1534,1532,1533,1529,1522,1525,1528,1533^1532,1534,1529,1529,1528,1531,1533^1532,1524,1538,1529,1518^1646,1553,1600,1647,1586,1570^1518,1537,1529,1518,1531,1522,1518,1527,1516,1518^1532,1518,1531,1535,1522,1516,1518^1532,1533,1528,1531,1518^1516,1528,1514,1516,1521,1522,1527,1520^1516,1521,1518,1514,1529^1516,1528,1517,1518^1529,1514,1538,1529,1514,1525^1532,1518,1514,1532,1528,1527^1536,1518,1515,1516,1521,1514,1533^1646,1574,1561,1650,1587,1562^1516,1534,1532,1533,1528,1526,1518,1531^1525,1522,1518,1519,1518,1531,1534,1527,1520^1529,1531,1522,1516,1518^1649,1554,1603,1647,1554,1556,1645,1604,1580,1647,1554,1564^1650,1569,1608,1646,1560,1581,1647,1567,1592,1647,1553,1561,1646,1593,1594^1529,1514,1516,1524,1514,1520,1518^1520,1525,1514,1517,1522,1514,1533,1528,1531^1534,1527,1525,1528,1516,1524^1649,1584,1580,1650,1565,1546,1650,1580,1575,1649,1578,1557^1531,1514,1533,1522,1527,1520^1532,1514,1525,1518^1647,1567,1593,1648,1584,1558,1647,1568,1560,1646,1602,1604,1646,1557,1567,1649,1584,1580,1650,1565,1546^1529,1522,1525,1508,1528,1465,1510,1533,1518,1517^1649,1546,1557,1645,1601,1571,1646,1572,1579,1650,1569,1576^1645,1604,1600^1525,1522,1535,1518,1516,1521,1514,1533^1535,1522,1532,1522,1533,1463,1459,1536,1518,1515,1532,1522,1533,1518^1517,1518,1525,1522,1535,1518,1531,1538^1649,1597,1605,1647,1596,1566,1646,1607,1600^1532,1518,1516,1534,1531,1518^1647,1567,1593,1648,1584,1558,1647,1568,1560,1649,1584,1580,1650,1565,1546^1526,1508,1528,1465,1510,1534,1527,1533^1519,1514,1532,1533^1529,1531,1528,1519,1519,1480,1518,1532,1532,1480,1522,1528,1527,1514,1525^1531,1515,1520^1525,1518,1535,1518,1525,1522,1527,1520^1530,1534,1514,1525,1522,1533,1538^1517,1522,1532,1516,1528,1534,1527,1533^1532,1514,1519,1518^1525,1518,1520,1514,1525^1516,1528,1526,1529,1518,1533,1522,1533,1522,1528,1527^1650,1587,1562,1645,1601,1571,1646,1555,1578^1650,1580,1575,1649,1578,1557,1649,1584,1580,1650,1565,1546^1514,1516,1516,1528,1534,1527,1533","1650,1598,1584,1647,1561,1601,1649,1605,1598,1648,1556,1582^1648,1574,1559,1647,1556,1579,1647,1571,1586,1455,1518,1455,1518,1481,1649,1548,1603,1647,1606,1546,1648,1555,1565^1651,1587,1590,1646,1602,1556,1648,1555,1565,1648,1597,1567","1538,1530,1538,1523,1530,1533,1519,1520,1534,1456,1465,1518,1530,1528^1535,1538,1524,1535,1518,1523,1456,1465,1535,1537^1534,1523,1524,1537,1535,1533,1456,1465,1518,1530,1528^1538,1520,1520,1517,1527,1540,1456,1465,1518,1530,1528^1519,1520,1531,1520,1529,1519^1520,1529,1535,1533,1516,1529,1518,1520^1534,1520,1533,1537,1520,1533,1535,1524,1528,1520^1456,1465,1538,1524,1539,1456,1465,1518,1530,1528^1522,1536,1524,1527,1519,1530,1528,1516,1535,1524,1518,1456,1465,1518,1530,1528^1522,1536,1524,1527,1519,1531,1530,1533,1535,1516,1527,1456,1465,1518,1530,1528^1522,1533,1520,1520,1529,1534^1522,1530,1527,1519,1530,1529,1527,1540^1522,1536,1524,1527,1519^1522,1516,1528,1520,1533,1527,1516,1536,1529,1518,1523,1456,1465,1518,1530,1528^1518,1530,1533,1531,1527,1516,1536,1529,1518,1523,1456,1465,1518,1530,1528^1522,1536,1524,1527,1519,1538,1530,1533,1526,1465,1518,1530,1528^1531,1533,1524,1518,1520,1456,1519,1462,1526^1456,1519,1462,1526,1531,1520,1533,1519,1536,1529,1522,1520,1530,1529^1536,1534,1535,1533,1520,1516,1528,1456,1465,1535,1537^1534,1530,1518,1524,1516,1527^1522,1516,1528,1520,1535,1524,1528,1520^1522,1536,1524,1527,1519,1523,1530,1534,1535,1524,1529,1522,1465,1530,1533,1522^1522,1536,1524,1527,1519,1527,1516,1536,1529,1518,1523,1456,1465,1518,1530,1528^1528,1520,1528,1517,1520,1533,1534^1456,1519,1462,1526,1510,1466,1511,1512,1482,1520,1516,1518,1523^1538,1530,1538,1527,1516,1536,1529,1518,1523,1456,1465,1518,1530,1528^1456,1519,1462,1526,1531,1520,1533,1533,1536,1529^1516,1531,1531,1527,1510,1524,1540,1512^1522,1530,1527,1519,1531,1533,1524,1518,1520,1534^1520,1529,1525,1524,1529,1456,1465,1518,1530,1528^1538,1530,1538,1534,1535,1520,1516,1519,1456,1465,1518,1530,1528^1530,1529,1527,1540,1516,1518,1518,1520,1531,1535,1524,1482,1529,1482,1522,1482,1522,1530,1527,1519^1533,1520,1518,1533,1536,1524,1482,1535^1521,1530,1533,1522,1530,1527,1519^1530,1538,1529,1470,1519,1456,1465,1535,1537^1456,1519,1462,1526,1510,1466,1511,1512,1482,1519,1536,1529,1522,1520,1530,1529^1518,1523,1520,1516,1531,1520,1533,1535,1523,1516,1529,1516,1523^1456,1465,1517,1516,1535,1535,1527,1520,1456,1465,1529,1520,1535,1466^1522,1516,1528,1524,1529,1522","1539,1531,1539,1538,1521,1530,1520,1531,1534,1457,1466,1530,1521,1536^1528,1521,1523,1525,1531,1530,1522,1517,1534,1529,1457,1466,1519,1531,1529^1526,1537,1535,1536,1518,1531,1531,1535,1536,1457,1466,1531,1534,1523^1529,1541,1536,1524,1525,1519,1535,1536,1531,1534,1521,1511,1457,1466,1464,1513,1530,1521,1536^1531,1527,1472,1523,1531,1528,1520,1511,1457,1466,1464,1513,1519,1531,1529^1518,1531,1531,1535,1536,1518,1517,1541,1457,1466,1519,1531,1529^1520,1538,1525,1530,1523,1511,1457,1466,1464,1513,1530,1521,1536^1518,1517,1530,1527,1472,1520,1524,1511,1457,1466,1464,1513,1483,1519,1531,1529^1528,1521,1532,1534,1521,1535,1536,1531,1534,1521,1457,1466,1519,1531,1529^1539,1531,1539,1518,1531,1532,1457,1466,1519,1531,1529^1532,1521,1534,1522,1521,1519,1536,1539,1517,1541,1511,1457,1466,1464,1513,1531,1530,1521^1518,1531,1531,1535,1536,1470,1530,1525,1523,1524,1536,1457,1466,1519,1531,1529^1522,1518,1529,1536,1521,1517,1529,1457,1466,1532,1534,1531^1539,1539,1539,1457,1466,1523,1517,1529,1521,1534,1521,1517,1535,1541,1457,1466,1519,1531,1529^1539,1531,1539,1524,1537,1530,1536,1457,1466,1530,1521,1536^1518,1531,1531,1535,1536,1524,1525,1538,1521,1511,1457,1466,1464,1513,1521,1537^1536,1525,1536,1517,1530,1525,1537,1529,1518,1517,1541,1457,1466,1519,1531,1529^1524,1531,1535,1536,1523,1531,1528,1520,1535,1457,1466,1519,1531,1529^1539,1531,1539,1524,1537,1530,1536,1457,1466,1519,1531,1529^1518,1531,1531,1535,1536,1531,1534,1521,1511,1457,1466,1464,1513,1530,1521,1536^1525,1534,1517,1530,1518,1528,1525,1542,1542,1517,1534,1520,1457,1466,1519,1531,1529^1517,1524,1523,1531,1528,1520,1535,1457,1466,1519,1531,1529^1519,1531,1530,1533,1537,1521,1535,1536,1519,1517,1532,1532,1521,1520,1511,1457,1466,1464,1513,1519,1531,1529^1523,1531,1528,1520,1520,1521,1517,1528,1511,1457,1466,1464,1513,1534,1537^1528,1521,1532,1534,1521,1535,1536,1531,1534,1521,1457,1466,1531,1534,1523^1521,1528,1525,1536,1525,1535,1536,1523,1517,1529,1525,1530,1523,1511,1457,1466,1464,1513,1519,1531,1529^1521,1532,1525,1519,1519,1517,1534,1534,1541,1511,1457,1466,1464,1513,1530,1521,1536^1524,1537,1535,1527,1541,1518,1511,1531,1468,1513,1511,1531,1468,1513,1535,1536,1457,1466,1519,1511,1531,1468,1513,1529^1529,1541,1536,1524,1525,1519,1535,1536,1531,1534,1521,1511,1457,1466,1464,1513,1519,1531,1529^1535,1524,1517,1520,1531,1539,1518,1531,1531,1535,1536,1457,1466,1529,1528^1539,1531,1539,1538,1521,1530,1520,1531,1534,1457,1466,1519,1531,1529^1532,1538,1521,1535,1524,1531,1532,1457,1466,1532,1534,1531^1522,1518,1529,1536,1521,1517,1529,1511,1457,1466,1464,1513,1519,1531,1529^1523,1531,1528,1520,1472,1532,1538,1521,1457,1466,1519,1531,1529^1533,1537,1525,1519,1527,1517,1530,1520,1535,1529,1531,1531,1536,1524,1457,1466,1519,1531,1529^1529,1529,1531,1528,1538,1528,1511,1457,1466,1464,1513,1519,1511,1468,1531,1513,1529^1521,1532,1525,1519,1519,1517,1534,1534,1541,1511,1457,1466,1464,1513,1531,1534,1523^1539,1531,1539,1538,1521,1530,1520,1531,1534,1457,1466,1531,1534,1523^1521,1518,1517,1541,1523,1531,1528,1520,1535,1457,1466,1519,1531,1529^1528,1531,1531,1536,1519,1528,1531,1537,1520,1520,1531,1536,1519,1531,1529^1532,1538,1521,1523,1517,1529,1521,1534,1535,1457,1466,1530,1521,1536^1532,1538,1521,1523,1517,1529,1521,1534,1535,1457,1466,1519,1531,1529^1528,1521,1532,1534,1521,1535,1536,1531,1534,1521,1457,1466,1530,1521,1536^1523,1517,1529,1521,1517,1537,1519,1457,1466,1519,1531,1529^1522,1531,1540,1535,1536,1531,1534,1521,1457,1466,1532,1534,1531^1532,1521,1539,1532,1521,1539,1535,1524,1531,1532,1511,1457,1466,1464,1513,1532,1534,1531^1535,1524,1517,1520,1531,1539,1518,1531,1531,1535,1536,1457,1466,1519,1531,1529^1521,1532,1525,1519,1519,1517,1534,1534,1541,1511,1457,1466,1464,1513,1519,1531,1529^1522,1518,1529,1536,1521,1517,1529,1457,1466,1530,1521,1536","1540,1532,1540,1539,1522,1531,1521,1532,1535,1458,1467,1531,1522,1537^1540,1532,1540,1539,1522,1531,1521,1532,1535,1458,1467,1520,1532,1530^1540,1532,1540,1539,1522,1531,1521,1532,1535,1458,1467,1532,1535,1524") + +local repTbl = { + --Symbol & space removal + ["[%*%-<>%(%)\"!%?=`'_%+#%%%^&;:~{}%[%] ]"]="", + ["¨"]="", ["”"]="", ["“"]="", ["▄"]="", ["▀"]="", ["█"]="", ["▓"]="", ["▲"]="", ["◄"]="", ["►"]="", ["▼"]="", ["♣"]="", + ["░"]="", ["♥"]="", ["♫"]="", ["●"]="", ["■"]="", ["☼"]="", ["¤"]="", ["☺"]="", ["↑"]="", ["«"]="", ["»"]="", ["♦"]="", + ["▌"]="", ["▒"]="", ["□"]="", ["¬"]="", ["√"]="", ["²"]="", ["´"]="", ["☻"]="", ["★"]="", ["☆"]="", ["◙"]="", ["◘"]="", + ["¦"]="", ["|"]="", [";"]="", ["΅"]="", ["™"]="", ["。"]="", ["◆"]="", ["◇"]="", ["♠"]="", ["△"]="", ["¯"]="", [" "]="", + ["《"]="", ["》"]="", ["("]="", [")"]="", ["~"]="", ["—"]="", ["!"]="", [":"]="", ["·"]="", ["˙"]="", ["…"]="", [" "]="", + ["▎"]="", ["▍"]="", ["▂"]="", ["▅"]="", ["▆"]="", ["+"]="", ["‘"]="", ["’"]="", ["【"]="", ["】"]="", ["│"]="", + + --This is the replacement table. It serves to deobfuscate words by replacing letters with their English "equivalents". + ["а"]="a", ["à"]="a", ["á"]="a", ["ä"]="a", ["â"]="a", ["ã"]="a", ["å"]="a", -- First letter is Russian "\208\176". Convert > \97. + ["Ą"]="a", ["ą"]="a", ["Ā"]="a", ["ā"]="a", ["Ă"]="a", ["ă"]="a", -- Convert > \97. Note: Ą, Ā, Ă fail with strlower, include both. + ["с"]="c", ["ç"]="c", ["Ć"]="c", ["ć"]="c", ["Č"]="c", ["č"]="c", ["Ĉ"]="c", ["ĉ"]="c", ["Ċ"]="c", ["ċ"]="c", --First letter is Russian "\209\129". Convert > \99. Note: Ć, Č, Ĉ, Ċ fail with strlower, include both. + ["Ď"]="d", ["ď"]="d", ["Đ"]="d", ["đ"]="d", --Convert > \100. Note: Ď, Đ fail with strlower, include both. + ["е"]="e", ["è"]="e", ["é"]="e", ["ë"]="e", ["ё"]="e", ["ê"]="e", --First letter is Russian "\208\181". Convert > \101. + ["Ę"]="e", ["ę"]="e", ["Ė"]="e", ["ė"]="e", ["Ě"]="e", ["ě"]="e", ["Ē"]="e", ["ē"]="e", ["Έ"]="e", ["έ"]="e", ["Ĕ"]="e", ["ĕ"]="e", ["Ε"]="e", ["ε"]="e", --Note: Ę, Ė, Ě, Ē, Έ, Ĕ, Ε fail with strlower, include both. + ["Ğ"]="g", ["ğ"]="g", ["Ĝ"]="g", ["ĝ"]="g", ["Ģ"]="g", ["ģ"]="g", ["Ġ"]="g", ["ġ"]="g", -- Convert > \103. Note: Ğ, Ĝ, Ģ, Ġ fail with strlower, include both. + ["Ĥ"]="h", ["ĥ"]="h", -- Convert > \104. Note: Ĥ fail with strlower, include both. + ["ì"]="i", ["í"]="i", ["ï"]="i", ["î"]="i", ["İ"]="i", ["ı"]="i", -- Convert > \105. + ["Ϊ"]="i", ["ϊ"]="i", ["Ι"]="i", ["ι"]="i", ["Ί"]="i", ["ί"]="i", ["Ĭ"]="i", ["ĭ"]="i", ["Ї"]="i", ["ї"]="i", --Convert > \105. -- Note: Ϊ, Ι, Ί, Ĭ, Ї fail with strlower, include both. + ["Į"]="i", ["į"]="i", ["Ĩ"]="i", ["ĩ"]="i", ["Ī"]="i", ["ī"]="i", ["I"]="i", ["i"]="i", --Convert > \105. -- Note: Į, Ĩ, Ī, I fail with strlower, include both. + ["Ĵ"]="j", ["ĵ"]="j", -- Convert > \106. -- Note: Ĵ fail with strlower, include both. + ["к"]="k", ["Ķ"]="k", ["ķ"]="k", -- First letter is Russian "\208\186". Convert > \107. -- Note: Ķ fail with strlower, include both. + ["Ł"]="l", ["ł"]="l", ["Ĺ"]="l", ["ĺ"]="l", ["Ľ"]="l", ["ľ"]="l", -- Convert > \107. -- Note: Ł, Ĺ, Ľ fail with strlower, include both. + ["Μ"]="m", ["м"]="m", -- First letter is capital Greek μ "\206\156". Convert > \109 + ["η"]="n", ["ή"]="n", ["ñ"]="n", ["Ν"]="n", -- First letter is small Greek eta η "\206\183". Convert > \110. + ["Ń"]="n", ["ń"]="n", ["Ņ"]="n", ["ņ"]="n", ["Ň"]="n", ["ň"]="n", ["Ŋ"]="n", ["ŋ"]="n", --Convert > \110. Note: Ń, Ņ, Ň, Ŋ fail with strlower, include both. + ["о"]="o", ["ò"]="o", ["ó"]="o", ["ö"]="o", ["ô"]="o", ["õ"]="o", ["ø"]="o", ["σ"]="o", --First letter is Russian "\208\190". Convert > \111. + ["Ō"]="o", ["ō"]="o", ["Ǿ"]="o", ["ǿ"]="o", ["Ő"]="o", ["ő"]="o", ["Θ"]="o", ["θ"]="o", ["Ŏ"]="o", ["ŏ"]="o", ["O"]="o", ["o"]="o", --Note: Ō, Ǿ, Ő, Θ, Ŏ, O fail with strlower, include both. + ["р"]="p", ["þ"]="p", ["φ"]="p", ["Ρ"]="p", ["ρ"]="p", --First letter is Russian "\209\128". Convert > \112. --Note: Ρ fail with strlower, include both. + ["Q"]="q", ["q"]="q", --Note: Q fail with strlower, include both. + ["г"]="r", ["я"]="r", ["Ř"]="r", ["ř"]="r", ["Ŕ"]="r", ["ŕ"]="r", ["Ŗ"]="r", ["ŗ"]="r", --Convert > \114. -- Note: Ř, Ŕ, Ŗ fail with strlower, include both. + ["Ş"]="s", ["ş"]="s", ["Š"]="s", ["š"]="s", ["Ś"]="s", ["ś"]="s", ["Ŝ"]="s", ["ŝ"]="s", ["Ѕ"]="s", ["ѕ"]="s", --Convert > \115. -- Note: Ş, Š, Ś, Ŝ, Ѕ fail with strlower, include both. + ["т"]="t", ["Ŧ"]="t", ["ŧ"]="t", ["Τ"]="t", ["τ"]="t", ["Ţ"]="t", ["ţ"]="t", ["Ť"]="t", ["ť"]="t", --Convert > \116. -- Note: Ŧ, Τ, Ţ, Ť fail with strlower, include both. + ["ù"]="u", ["ú"]="u", ["ü"]="u", ["û"]="u", --Convert > \117. + ["Ų"]="u", ["ų"]="u", ["Ŭ"]="u", ["ŭ"]="u", ["Ů"]="u", ["ů"]="u", ["Ű"]="u", ["ű"]="u", ["Ū"]="u", ["ū"]="u", --Convert > \117. -- Note: Ų, Ŭ, Ů, Ű, Ū fail with strlower, include both. + ["ω"]="w", ["ώ"]="w", ["Ẃ"]="w", ["ẃ"]="w", ["Ẁ"]="w", ["ẁ"]="w", ["Ŵ"]="w", ["ŵ"]="w", ["Ẅ"]="w", ["ẅ"]="w", ["W"]="w", ["w"]="w", -- First letter is small Greek omega Ώ "\207\142". Convert > \119. -- Note: Ẃ, Ẁ, Ŵ, Ẅ, W fail with strlower, include both. + ["у"]="y", ["ý"]="y", ["Ÿ"]="y", ["ÿ"]="y", -- First letter is Russian "\209\131". Convert > \121. -- Note: Ÿ fail with strlower, include both. + ["0"]="0", ["1"]="1", ["2"]="2", ["3"]="3", ["4"]="4", ["5"]="5", ["6"]="6", ["7"]="7", ["8"]="8", ["9"]="9", + ["•"]=".", ["·"]=".", [","]=",", ["º"]="o", ["®"]="r", ["○"]="o", ["†"]="t", +} + +--[[ Chat Scanning ]]-- +local Ambiguate, BNGetGameAccountInfoByGUID, strfind, gsub, lower, next, type, tremove = Ambiguate, BNGetGameAccountInfoByGUID, string.find, string.gsub, string.lower, next, type, tremove +local IsFriend, IsGuildMember, UnitInRaid, UnitInParty, SetCVar, GetCVarBool = C_FriendList.IsFriend, IsGuildMember, UnitInRaid, UnitInParty, SetCVar, GetCVarBool +local CanReportPlayer, ReportPlayer, PlayerLocation = C_ChatInfo.CanReportPlayer, C_ChatInfo.ReportPlayer, PlayerLocation +local spamCollector, spamLogger, prevShow, enableBubble = {}, {}, 0, false +local blockedLineId, et, chatLines, chatPlayers = 0, 7, {}, {} +local btn, reportFrame +local function IsFriendly(name, flag, _, guid) + if not guid then return true end -- LocalDefense automated prints + if not guid:find("^Player") then -- Bad addons + local msg = "BadBoy: Unexpected GUID requested by an addon: ".. guid + print(msg) + geterrorhandler()(msg) + return true + end + local _, characterName = BNGetGameAccountInfoByGUID(guid) + if characterName or IsGuildMember(guid) or IsFriend(guid) or UnitInRaid(name) or UnitInParty(name) or flag == "GM" or flag == "DEV" then + return true + end +end +local function Cleanse(msg) + msg = gsub(msg, "|c[^%[]+%[([^%]]+)%]|h|r", "%1") -- Speed up processing messages with links by removing them + msg = lower(msg) --Lower all text, remove capitals + for k,v in next, repTbl do + msg = gsub(msg, k, v) + end + return msg +end +local eventFunc = function(_, event, msg, player, _, _, _, flag, channelId, _, _, _, lineId, guid) + -- Re-enable chat bubbles if they were disabled in the previous event. + if enableBubble then + enableBubble = false + SetCVar("chatBubbles", 1) + end + + blockedLineId = 0 + if event == "CHAT_MSG_CHANNEL" and (channelId == 0 or type(channelId) ~= "number") then return end --Only scan official custom channels (gen/trade) + + local trimmedPlayer = Ambiguate(player, "none") + if IsFriendly(trimmedPlayer, flag, nil, guid) then return end + + local debug = msg --Save original message format + msg = Cleanse(msg) + + --20 line text buffer, this checks the current line, and blocks it if it's the same as one of the previous 20 + if event == "CHAT_MSG_CHANNEL" then + local cleanestMsg = gsub(msg, "[@,./\\=]", "") -- Anything purposely not removed by Cleanse() + for i=1, #chatLines do + if chatLines[i] == cleanestMsg and chatPlayers[i] == guid then --If message same as one in previous 20 and from the same person... + blockedLineId = lineId + -- Reduce the chances of a spam report expiring (line id is too old) by refreshing it + if spamCollector[guid] and S.is(msg) then + local loc = PlayerLocation:CreateFromChatLineID(lineId) + spamCollector[guid] = loc + if BADBOY_OPTIONS.tipSpam then + spamLogger[guid] = debug + end + end + -- + return + end + if i == 20 then tremove(chatLines, 1) tremove(chatPlayers, 1) end --Don't let the DB grow larger than 20 + end + chatLines[#chatLines+1] = cleanestMsg + chatPlayers[#chatPlayers+1] = guid + end + --End text buffer + + if S.is(msg) then + if event == "CHAT_MSG_SAY" or event == "CHAT_MSG_YELL" then + -- Awful way of disabling chat bubbles when spam is detected. + -- Chat bubbles are processed internally by the game client AFTER all the addon event handlers are fired. + if GetCVarBool("chatBubbles") then + enableBubble = true + SetCVar("chatBubbles", 0) + end + end + if not BADBOY_OPTIONS.freqButton then + for i = 1, #S[et] do + if strfind(msg, S[et][i]) then + blockedLineId = lineId + return + end + end + end + if BadBoyLog then + BadBoyLog("BadBoy", event, trimmedPlayer, debug) + end + if not BADBOY_BLACKLIST[guid] and not IsEncounterInProgress() then + local loc = PlayerLocation:CreateFromChatLineID(lineId) + spamCollector[guid] = loc + if BADBOY_OPTIONS.tipSpam then + spamLogger[guid] = debug + if btn:IsShown() and reportFrame:IsMouseOver() then + reportFrame:GetScript("OnLeave")(reportFrame) -- Add more spam to tooltip if shown + reportFrame:GetScript("OnEnter")(reportFrame) + end + end + + local t = GetTime() + if t-prevShow > (BADBOY_OPTIONS.freqBtn and 30 or 90) then + prevShow = t + btn:Show() + end + end + + blockedLineId = lineId + return + elseif next(spamCollector) then + local t = GetTime() + if t-prevShow > (BADBOY_OPTIONS.freqBtn and 30 or 90) then + prevShow = t + btn:Show() + end + end +end +local filterFunc = function(_, _, _, _, _, _, _, _, _, _, _, _, lineId) + if blockedLineId == lineId then + return true + end +end + +do + --temp + local xpcall = xpcall + local dummy = function() end + --end temp + btn = CreateFrame("Frame", nil, ChatFrame1) + btn:SetWidth(50) + btn:SetHeight(50) + btn:SetPoint("BOTTOMRIGHT", 18, -20) + btn:SetFrameStrata("DIALOG") + local tx = btn:CreateTexture() + tx:SetAllPoints(btn) + tx:SetMask("Interface\\CharacterFrame\\TempPortraitAlphaMask") + tx:SetTexture(132360) -- Interface/Icons/Ability_Warrior_ShieldMastery + local animGroup = btn:CreateAnimationGroup() + animGroup:SetLooping("REPEAT") + local scale = animGroup:CreateAnimation("Scale") + scale:SetOrder(1) + scale:SetFromScale(0.25,0.25) + scale:SetToScale(1,1) + scale:SetDuration(0.4) + local scale2 = animGroup:CreateAnimation("Scale") + scale2:SetOrder(2) + scale2:SetFromScale(1,1) + scale2:SetToScale(0.25,0.25) + scale2:SetDuration(0.4) + scale2:SetEndDelay(8) + animGroup:Play() + btn:Hide() + + reportFrame = CreateFrame("Button", nil, btn) + reportFrame:SetAllPoints(ChatFrame1) + reportFrame:SetFrameStrata("DIALOG") + local ticker = nil + local tickerFunc = function() + local canReport = false + for k, v in next, spamCollector do + local go, pass = xpcall(CanReportPlayer, dummy, v) + if go and pass then + canReport = true + else + spamCollector[k] = nil + spamLogger[k] = nil + end + end + if not canReport then + btn:Hide() + end + end + btn:SetScript("OnShow", function() + if ticker then ticker:Cancel() end + ticker = C_Timer.NewTicker(5, tickerFunc) + tickerFunc() + -- Don't animate if the feature is disabled + if animGroup:IsPlaying() and BADBOY_OPTIONS.noAnim then + btn:SetWidth(12) + btn:SetHeight(12) + animGroup:Stop() + btn:ClearAllPoints() + btn:SetPoint("BOTTOMRIGHT", 0, -5) + elseif not animGroup:IsPlaying() and not BADBOY_OPTIONS.noAnim then + btn:SetWidth(46) + btn:SetHeight(46) + animGroup:Play() + btn:ClearAllPoints() + btn:SetPoint("BOTTOMRIGHT", 18, -20) + end + end) + btn:SetScript("OnHide", function() + if ticker then + ticker:Cancel() + ticker = nil + end + end) + reportFrame:SetScript("OnClick", function(self) + if IsAltKeyDown() then -- Dismiss + prevShow = GetTime() -- Refresh throttle so we don't risk showing again straight after reporting + self:GetParent():Hide() + spamCollector, spamLogger = {}, {} + else -- Report + prevShow = GetTime() -- Refresh throttle so we don't risk showing again straight after reporting + self:GetParent():Hide() + + local systemMsg = {GetFramesRegisteredForEvent("CHAT_MSG_SYSTEM")} -- Don't show the "Complaint Registered" message + local infoMsg = {GetFramesRegisteredForEvent("UI_INFO_MESSAGE")} -- Don't show the "Thanks for the report" message + for i = 1, #systemMsg do + systemMsg[i]:UnregisterEvent("CHAT_MSG_SYSTEM") + end + for i = 1, #infoMsg do + infoMsg[i]:UnregisterEvent("UI_INFO_MESSAGE") + end + + for k, v in next, spamCollector do + local go, pass = xpcall(CanReportPlayer, dummy, v) + if go and pass then + BADBOY_BLACKLIST[k] = true + ReportPlayer("spam", v) + end + spamCollector[k] = nil + spamLogger[k] = nil + end + + for i = 1, #systemMsg do + systemMsg[i]:RegisterEvent("CHAT_MSG_SYSTEM") + end + for i = 1, #infoMsg do + infoMsg[i]:RegisterEvent("UI_INFO_MESSAGE") + end + end + end) + local tt = CreateFrame("GameTooltip", "bbtt", UIParent, "GameTooltipTemplate") + reportFrame:SetScript("OnEnter", function(self) + tt:SetOwner(self, "ANCHOR_CURSOR") + tt:AddLine(S.spamBlocked, 1, 1, 1) + tt:AddLine(S.clickToReport, 1, 1, 1) + if next(spamLogger) then + tt:AddLine(" ", 0.5, 0.5, 1) + for _, v in next, spamLogger do + tt:AddLine(v, 0.2, 1, 0) + end + end + tt:Show() + end) + reportFrame:SetScript("OnLeave", function() tt:Hide() end) +end + +--[[ Add Filters ]]-- +do + local f = CreateFrame("Frame") + f:SetScript("OnEvent", eventFunc) + local tbl = { + "CHAT_MSG_CHANNEL", + "CHAT_MSG_YELL", + "CHAT_MSG_SAY", + "CHAT_MSG_WHISPER", + "CHAT_MSG_EMOTE", + "CHAT_MSG_DND", + "CHAT_MSG_AFK", + } + for i = 1, #tbl do + local event = tbl[i] + local frames = {GetFramesRegisteredForEvent(event)} + for j = 1, #frames do + local frame = frames[j] + frame:UnregisterEvent(event) + end + f:RegisterEvent(event) + ChatFrame_AddMessageEventFilter(event, filterFunc) + for j = 1, #frames do + local frame = frames[j] + frame:RegisterEvent(event) + end + end +end + +--[[ Blacklist ]]-- +do + local f = CreateFrame("Frame") + f:RegisterEvent("ADDON_LOADED") + f:RegisterEvent("PLAYER_LOGIN") + f:SetScript("OnEvent", function(frame, event, addon) + if addon == "BadBoy" then + if type(BADBOY_OPTIONS) ~= "table" then BADBOY_OPTIONS = {} end + if type(BADBOY_BLACKLIST) ~= "table" then BADBOY_BLACKLIST = {} end + frame:UnregisterEvent(event) + elseif event == "PLAYER_LOGIN" then + -- Blacklist DB setup, needed since Blizz nerfed ReportPlayer so hard the block sometimes only lasts a few minutes. + local dateTbl = date("*t") + local day = dateTbl.day + if BADBOY_BLACKLIST.dayFromCal ~= day then + BADBOY_BLACKLIST = {dayFromCal = day} -- Can't use ADDON_LOADED as date function isn't always ready on very first login. + end + SetCVar("spamFilter", 1) + frame:UnregisterEvent(event) + BADBOY_OPTIONS.tmp = nil + BADBOY_OPTIONS.tmpm = nil + BADBOY_OPTIONS.tmpl = nil + BADBOY_OPTIONS.freqButton = nil + + -- Chat bubble restore + frame:SetScript("OnEvent", function() + if enableBubble then + enableBubble = false + SetCVar("chatBubbles", 1) + end + end) + -- Hopefully we never end up in a situation where we've permanently disabled chat bubbles for the user. + frame:RegisterEvent("PLAYER_LOGOUT") + frame:RegisterEvent("CHAT_MSG_MONSTER_SAY") + frame:RegisterEvent("CHAT_MSG_MONSTER_YELL") + end + end) +end + +_G.BadBoyIsFriendly = IsFriendly +_G.BadBoyCleanse = Cleanse diff --git a/BadBoy_TBC.toc b/BadBoy_TBC.toc index 9e0a113..462d06d 100644 --- a/BadBoy_TBC.toc +++ b/BadBoy_TBC.toc @@ -29,5 +29,5 @@ embeds.xml Locale.lua SimpleOptions.lua Generate.lua -BadBoy.lua +BadBoy_Classic.lua diff --git a/BadBoy_Vanilla.toc b/BadBoy_Vanilla.toc index 3da3e18..9d4cc6f 100644 --- a/BadBoy_Vanilla.toc +++ b/BadBoy_Vanilla.toc @@ -29,5 +29,5 @@ embeds.xml Locale.lua SimpleOptions.lua Generate.lua -BadBoy.lua +BadBoy_Classic.lua