├── pyproject.toml ├── connector ├── requirements │ ├── base.in │ ├── dev.in │ ├── Makefile │ ├── base.txt │ └── dev.txt ├── Makefile ├── Dockerfile └── test │ └── test_connector.py ├── map ├── Makefile ├── requirements │ ├── base.in │ ├── dev.in │ ├── Makefile │ ├── base.txt │ └── dev.txt ├── frontend │ ├── static │ │ └── images │ │ │ ├── aircraft_0.png │ │ │ ├── aircraft_1.png │ │ │ ├── aircraft_2.png │ │ │ ├── aircraft_3.png │ │ │ ├── aircraft_4.png │ │ │ ├── aircraft_5.png │ │ │ ├── aircraft_6.png │ │ │ ├── aircraft_7.png │ │ │ ├── aircraft_8.png │ │ │ ├── aircraft_9.png │ │ │ ├── aircraft_10.png │ │ │ ├── aircraft_100.png │ │ │ ├── aircraft_101.png │ │ │ ├── aircraft_102.png │ │ │ ├── aircraft_103.png │ │ │ ├── aircraft_104.png │ │ │ ├── aircraft_105.png │ │ │ ├── aircraft_106.png │ │ │ ├── aircraft_107.png │ │ │ ├── aircraft_108.png │ │ │ ├── aircraft_109.png │ │ │ ├── aircraft_11.png │ │ │ ├── aircraft_110.png │ │ │ ├── aircraft_111.png │ │ │ ├── aircraft_112.png │ │ │ ├── aircraft_113.png │ │ │ ├── aircraft_114.png │ │ │ ├── aircraft_115.png │ │ │ ├── aircraft_116.png │ │ │ ├── aircraft_117.png │ │ │ ├── aircraft_118.png │ │ │ ├── aircraft_119.png │ │ │ ├── aircraft_12.png │ │ │ ├── aircraft_120.png │ │ │ ├── aircraft_121.png │ │ │ ├── aircraft_122.png │ │ │ ├── aircraft_123.png │ │ │ ├── aircraft_124.png │ │ │ ├── aircraft_125.png │ │ │ ├── aircraft_126.png │ │ │ ├── aircraft_127.png │ │ │ ├── aircraft_128.png │ │ │ ├── aircraft_129.png │ │ │ ├── aircraft_13.png │ │ │ ├── aircraft_130.png │ │ │ ├── aircraft_131.png │ │ │ ├── aircraft_132.png │ │ │ ├── aircraft_133.png │ │ │ ├── aircraft_134.png │ │ │ ├── aircraft_135.png │ │ │ ├── aircraft_136.png │ │ │ ├── aircraft_137.png │ │ │ ├── aircraft_138.png │ │ │ ├── aircraft_139.png │ │ │ ├── aircraft_14.png │ │ │ ├── aircraft_140.png │ │ │ ├── aircraft_141.png │ │ │ ├── aircraft_142.png │ │ │ ├── aircraft_143.png │ │ │ ├── aircraft_144.png │ │ │ ├── aircraft_145.png │ │ │ ├── aircraft_146.png │ │ │ ├── aircraft_147.png │ │ │ ├── aircraft_148.png │ │ │ ├── aircraft_149.png │ │ │ ├── aircraft_15.png │ │ │ ├── aircraft_150.png │ │ │ ├── aircraft_151.png │ │ │ ├── aircraft_152.png │ │ │ ├── aircraft_153.png │ │ │ ├── aircraft_154.png │ │ │ ├── aircraft_155.png │ │ │ ├── aircraft_156.png │ │ │ ├── aircraft_157.png │ │ │ ├── aircraft_158.png │ │ │ ├── aircraft_159.png │ │ │ ├── aircraft_16.png │ │ │ ├── aircraft_160.png │ │ │ ├── aircraft_161.png │ │ │ ├── aircraft_162.png │ │ │ ├── aircraft_163.png │ │ │ ├── aircraft_164.png │ │ │ ├── aircraft_165.png │ │ │ ├── aircraft_166.png │ │ │ ├── aircraft_167.png │ │ │ ├── aircraft_168.png │ │ │ ├── aircraft_169.png │ │ │ ├── aircraft_17.png │ │ │ ├── aircraft_170.png │ │ │ ├── aircraft_171.png │ │ │ ├── aircraft_172.png │ │ │ ├── aircraft_173.png │ │ │ ├── aircraft_174.png │ │ │ ├── aircraft_175.png │ │ │ ├── aircraft_176.png │ │ │ ├── aircraft_177.png │ │ │ ├── aircraft_178.png │ │ │ ├── aircraft_179.png │ │ │ ├── aircraft_18.png │ │ │ ├── aircraft_180.png │ │ │ ├── aircraft_181.png │ │ │ ├── aircraft_182.png │ │ │ ├── aircraft_183.png │ │ │ ├── aircraft_184.png │ │ │ ├── aircraft_185.png │ │ │ ├── aircraft_186.png │ │ │ ├── aircraft_187.png │ │ │ ├── aircraft_188.png │ │ │ ├── aircraft_189.png │ │ │ ├── aircraft_19.png │ │ │ ├── aircraft_190.png │ │ │ ├── aircraft_191.png │ │ │ ├── aircraft_192.png │ │ │ ├── aircraft_193.png │ │ │ ├── aircraft_194.png │ │ │ ├── aircraft_195.png │ │ │ ├── aircraft_196.png │ │ │ ├── aircraft_197.png │ │ │ ├── aircraft_198.png │ │ │ ├── aircraft_199.png │ │ │ ├── aircraft_20.png │ │ │ ├── aircraft_200.png │ │ │ ├── aircraft_201.png │ │ │ ├── aircraft_202.png │ │ │ ├── aircraft_203.png │ │ │ ├── aircraft_204.png │ │ │ ├── aircraft_205.png │ │ │ ├── aircraft_206.png │ │ │ ├── aircraft_207.png │ │ │ ├── aircraft_208.png │ │ │ ├── aircraft_209.png │ │ │ ├── aircraft_21.png │ │ │ ├── aircraft_210.png │ │ │ ├── aircraft_211.png │ │ │ ├── aircraft_212.png │ │ │ ├── aircraft_213.png │ │ │ ├── aircraft_214.png │ │ │ ├── aircraft_215.png │ │ │ ├── aircraft_216.png │ │ │ ├── aircraft_217.png │ │ │ ├── aircraft_218.png │ │ │ ├── aircraft_219.png │ │ │ ├── aircraft_22.png │ │ │ ├── aircraft_220.png │ │ │ ├── aircraft_221.png │ │ │ ├── aircraft_222.png │ │ │ ├── aircraft_223.png │ │ │ ├── aircraft_224.png │ │ │ ├── aircraft_225.png │ │ │ ├── aircraft_226.png │ │ │ ├── aircraft_227.png │ │ │ ├── aircraft_228.png │ │ │ ├── aircraft_229.png │ │ │ ├── aircraft_23.png │ │ │ ├── aircraft_230.png │ │ │ ├── aircraft_231.png │ │ │ ├── aircraft_232.png │ │ │ ├── aircraft_233.png │ │ │ ├── aircraft_234.png │ │ │ ├── aircraft_235.png │ │ │ ├── aircraft_236.png │ │ │ ├── aircraft_237.png │ │ │ ├── aircraft_238.png │ │ │ ├── aircraft_239.png │ │ │ ├── aircraft_24.png │ │ │ ├── aircraft_240.png │ │ │ ├── aircraft_241.png │ │ │ ├── aircraft_242.png │ │ │ ├── aircraft_243.png │ │ │ ├── aircraft_244.png │ │ │ ├── aircraft_245.png │ │ │ ├── aircraft_246.png │ │ │ ├── aircraft_247.png │ │ │ ├── aircraft_248.png │ │ │ ├── aircraft_249.png │ │ │ ├── aircraft_25.png │ │ │ ├── aircraft_250.png │ │ │ ├── aircraft_251.png │ │ │ ├── aircraft_252.png │ │ │ ├── aircraft_253.png │ │ │ ├── aircraft_254.png │ │ │ ├── aircraft_255.png │ │ │ ├── aircraft_256.png │ │ │ ├── aircraft_257.png │ │ │ ├── aircraft_258.png │ │ │ ├── aircraft_259.png │ │ │ ├── aircraft_26.png │ │ │ ├── aircraft_260.png │ │ │ ├── aircraft_261.png │ │ │ ├── aircraft_262.png │ │ │ ├── aircraft_263.png │ │ │ ├── aircraft_264.png │ │ │ ├── aircraft_265.png │ │ │ ├── aircraft_266.png │ │ │ ├── aircraft_267.png │ │ │ ├── aircraft_268.png │ │ │ ├── aircraft_269.png │ │ │ ├── aircraft_27.png │ │ │ ├── aircraft_270.png │ │ │ ├── aircraft_271.png │ │ │ ├── aircraft_272.png │ │ │ ├── aircraft_273.png │ │ │ ├── aircraft_274.png │ │ │ ├── aircraft_275.png │ │ │ ├── aircraft_276.png │ │ │ ├── aircraft_277.png │ │ │ ├── aircraft_278.png │ │ │ ├── aircraft_279.png │ │ │ ├── aircraft_28.png │ │ │ ├── aircraft_280.png │ │ │ ├── aircraft_281.png │ │ │ ├── aircraft_282.png │ │ │ ├── aircraft_283.png │ │ │ ├── aircraft_284.png │ │ │ ├── aircraft_285.png │ │ │ ├── aircraft_286.png │ │ │ ├── aircraft_287.png │ │ │ ├── aircraft_288.png │ │ │ ├── aircraft_289.png │ │ │ ├── aircraft_29.png │ │ │ ├── aircraft_290.png │ │ │ ├── aircraft_291.png │ │ │ ├── aircraft_292.png │ │ │ ├── aircraft_293.png │ │ │ ├── aircraft_294.png │ │ │ ├── aircraft_295.png │ │ │ ├── aircraft_296.png │ │ │ ├── aircraft_297.png │ │ │ ├── aircraft_298.png │ │ │ ├── aircraft_299.png │ │ │ ├── aircraft_30.png │ │ │ ├── aircraft_300.png │ │ │ ├── aircraft_301.png │ │ │ ├── aircraft_302.png │ │ │ ├── aircraft_303.png │ │ │ ├── aircraft_304.png │ │ │ ├── aircraft_305.png │ │ │ ├── aircraft_306.png │ │ │ ├── aircraft_307.png │ │ │ ├── aircraft_308.png │ │ │ ├── aircraft_309.png │ │ │ ├── aircraft_31.png │ │ │ ├── aircraft_310.png │ │ │ ├── aircraft_311.png │ │ │ ├── aircraft_312.png │ │ │ ├── aircraft_313.png │ │ │ ├── aircraft_314.png │ │ │ ├── aircraft_315.png │ │ │ ├── aircraft_316.png │ │ │ ├── aircraft_317.png │ │ │ ├── aircraft_318.png │ │ │ ├── aircraft_319.png │ │ │ ├── aircraft_32.png │ │ │ ├── aircraft_320.png │ │ │ ├── aircraft_321.png │ │ │ ├── aircraft_322.png │ │ │ ├── aircraft_323.png │ │ │ ├── aircraft_324.png │ │ │ ├── aircraft_325.png │ │ │ ├── aircraft_326.png │ │ │ ├── aircraft_327.png │ │ │ ├── aircraft_328.png │ │ │ ├── aircraft_329.png │ │ │ ├── aircraft_33.png │ │ │ ├── aircraft_330.png │ │ │ ├── aircraft_331.png │ │ │ ├── aircraft_332.png │ │ │ ├── aircraft_333.png │ │ │ ├── aircraft_334.png │ │ │ ├── aircraft_335.png │ │ │ ├── aircraft_336.png │ │ │ ├── aircraft_337.png │ │ │ ├── aircraft_338.png │ │ │ ├── aircraft_339.png │ │ │ ├── aircraft_34.png │ │ │ ├── aircraft_340.png │ │ │ ├── aircraft_341.png │ │ │ ├── aircraft_342.png │ │ │ ├── aircraft_343.png │ │ │ ├── aircraft_344.png │ │ │ ├── aircraft_345.png │ │ │ ├── aircraft_346.png │ │ │ ├── aircraft_347.png │ │ │ ├── aircraft_348.png │ │ │ ├── aircraft_349.png │ │ │ ├── aircraft_35.png │ │ │ ├── aircraft_350.png │ │ │ ├── aircraft_351.png │ │ │ ├── aircraft_352.png │ │ │ ├── aircraft_353.png │ │ │ ├── aircraft_354.png │ │ │ ├── aircraft_355.png │ │ │ ├── aircraft_356.png │ │ │ ├── aircraft_357.png │ │ │ ├── aircraft_358.png │ │ │ ├── aircraft_359.png │ │ │ ├── aircraft_36.png │ │ │ ├── aircraft_37.png │ │ │ ├── aircraft_38.png │ │ │ ├── aircraft_39.png │ │ │ ├── aircraft_40.png │ │ │ ├── aircraft_41.png │ │ │ ├── aircraft_42.png │ │ │ ├── aircraft_43.png │ │ │ ├── aircraft_44.png │ │ │ ├── aircraft_45.png │ │ │ ├── aircraft_46.png │ │ │ ├── aircraft_47.png │ │ │ ├── aircraft_48.png │ │ │ ├── aircraft_49.png │ │ │ ├── aircraft_50.png │ │ │ ├── aircraft_51.png │ │ │ ├── aircraft_52.png │ │ │ ├── aircraft_53.png │ │ │ ├── aircraft_54.png │ │ │ ├── aircraft_55.png │ │ │ ├── aircraft_56.png │ │ │ ├── aircraft_57.png │ │ │ ├── aircraft_58.png │ │ │ ├── aircraft_59.png │ │ │ ├── aircraft_60.png │ │ │ ├── aircraft_61.png │ │ │ ├── aircraft_62.png │ │ │ ├── aircraft_63.png │ │ │ ├── aircraft_64.png │ │ │ ├── aircraft_65.png │ │ │ ├── aircraft_66.png │ │ │ ├── aircraft_67.png │ │ │ ├── aircraft_68.png │ │ │ ├── aircraft_69.png │ │ │ ├── aircraft_70.png │ │ │ ├── aircraft_71.png │ │ │ ├── aircraft_72.png │ │ │ ├── aircraft_73.png │ │ │ ├── aircraft_74.png │ │ │ ├── aircraft_75.png │ │ │ ├── aircraft_76.png │ │ │ ├── aircraft_77.png │ │ │ ├── aircraft_78.png │ │ │ ├── aircraft_79.png │ │ │ ├── aircraft_80.png │ │ │ ├── aircraft_81.png │ │ │ ├── aircraft_82.png │ │ │ ├── aircraft_83.png │ │ │ ├── aircraft_84.png │ │ │ ├── aircraft_85.png │ │ │ ├── aircraft_86.png │ │ │ ├── aircraft_87.png │ │ │ ├── aircraft_88.png │ │ │ ├── aircraft_89.png │ │ │ ├── aircraft_90.png │ │ │ ├── aircraft_91.png │ │ │ ├── aircraft_92.png │ │ │ ├── aircraft_93.png │ │ │ ├── aircraft_94.png │ │ │ ├── aircraft_95.png │ │ │ ├── aircraft_96.png │ │ │ ├── aircraft_97.png │ │ │ ├── aircraft_98.png │ │ │ └── aircraft_99.png │ └── index.html ├── Dockerfile └── app.py ├── fids ├── Makefile ├── requirements │ ├── dev.in │ ├── base.in │ └── Makefile ├── test │ └── db │ │ ├── flights.db │ │ └── positions.db ├── Dockerfile ├── trig.py └── app.py ├── db-updater ├── Makefile ├── requirements │ ├── dev.in │ ├── base.in │ ├── Makefile │ ├── base.txt │ └── dev.txt └── Dockerfile ├── .gitignore ├── docs ├── architecture-diagram.png └── database.md ├── .env-sample ├── Makefile ├── ROADMAP.md ├── ci_ping_frontend.py ├── Makefile.inc ├── ci_performance_regression_test.sh ├── LICENSE.md ├── .github └── workflows │ ├── docker-publish.yml │ ├── dockerimage.yml │ └── codeql-analysis.yml ├── README.md └── docker-compose.yml /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.black] 2 | line-length = 100 3 | -------------------------------------------------------------------------------- /connector/requirements/base.in: -------------------------------------------------------------------------------- 1 | confluent-kafka==1.8.2 2 | -------------------------------------------------------------------------------- /map/Makefile: -------------------------------------------------------------------------------- 1 | include ../Makefile.inc 2 | 3 | PROGNAME=map 4 | -------------------------------------------------------------------------------- /fids/Makefile: -------------------------------------------------------------------------------- 1 | include ../Makefile.inc 2 | 3 | PROGNAME=fids 4 | -------------------------------------------------------------------------------- /map/requirements/base.in: -------------------------------------------------------------------------------- 1 | Flask==2.3.2 2 | confluent-kafka==1.8.2 3 | -------------------------------------------------------------------------------- /connector/requirements/dev.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | mypy 3 | black 4 | pylint -------------------------------------------------------------------------------- /fids/requirements/dev.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | mypy 3 | black 4 | pylint 5 | -------------------------------------------------------------------------------- /map/requirements/dev.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | mypy 3 | black 4 | pylint 5 | -------------------------------------------------------------------------------- /connector/Makefile: -------------------------------------------------------------------------------- 1 | include ../Makefile.inc 2 | 3 | PROGNAME=connector 4 | -------------------------------------------------------------------------------- /db-updater/Makefile: -------------------------------------------------------------------------------- 1 | include ../Makefile.inc 2 | 3 | PROGNAME=db-updater 4 | -------------------------------------------------------------------------------- /db-updater/requirements/dev.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | mypy 3 | black 4 | pylint 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | .env 3 | venv/ 4 | .python-version 5 | .mypy_cache/ 6 | -------------------------------------------------------------------------------- /fids/test/db/flights.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/fids/test/db/flights.db -------------------------------------------------------------------------------- /fids/test/db/positions.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/fids/test/db/positions.db -------------------------------------------------------------------------------- /docs/architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/docs/architecture-diagram.png -------------------------------------------------------------------------------- /fids/requirements/base.in: -------------------------------------------------------------------------------- 1 | sqlalchemy==1.3.24 2 | Flask==1.1.4 3 | flask-cors==5.0.0 4 | psycopg2-binary==2.9.3 5 | requests 6 | -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_0.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_1.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_2.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_3.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_4.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_5.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_6.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_7.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_8.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_9.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_10.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_100.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_101.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_102.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_103.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_104.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_105.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_106.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_107.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_108.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_109.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_11.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_110.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_111.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_112.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_113.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_114.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_115.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_116.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_117.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_118.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_119.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_12.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_120.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_121.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_122.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_123.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_124.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_125.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_126.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_127.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_128.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_129.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_13.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_130.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_131.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_132.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_133.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_134.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_135.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_136.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_137.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_138.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_139.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_139.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_14.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_140.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_141.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_142.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_143.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_144.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_145.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_146.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_147.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_148.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_149.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_15.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_150.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_151.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_152.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_153.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_154.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_155.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_156.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_156.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_157.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_158.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_159.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_16.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_160.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_161.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_162.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_163.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_164.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_165.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_166.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_167.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_168.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_169.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_17.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_170.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_171.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_172.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_173.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_174.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_175.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_176.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_177.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_178.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_178.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_179.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_18.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_180.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_181.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_182.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_183.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_184.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_185.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_186.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_186.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_187.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_188.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_188.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_189.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_189.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_19.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_190.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_191.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_192.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_193.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_194.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_195.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_195.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_196.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_197.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_198.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_199.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_20.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_200.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_201.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_202.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_202.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_203.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_204.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_204.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_205.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_206.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_207.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_208.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_209.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_209.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_21.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_210.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_211.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_211.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_212.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_212.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_213.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_214.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_215.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_215.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_216.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_217.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_217.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_218.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_218.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_219.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_219.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_22.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_220.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_221.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_221.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_222.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_222.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_223.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_223.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_224.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_225.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_225.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_226.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_226.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_227.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_227.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_228.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_228.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_229.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_229.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_23.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_230.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_230.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_231.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_231.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_232.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_232.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_233.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_233.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_234.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_234.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_235.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_235.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_236.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_236.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_237.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_237.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_238.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_238.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_239.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_239.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_24.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_240.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_241.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_241.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_242.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_242.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_243.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_243.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_244.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_244.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_245.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_245.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_246.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_246.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_247.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_247.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_248.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_248.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_249.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_25.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_250.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_251.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_251.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_252.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_252.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_253.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_253.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_254.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_254.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_255.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_255.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_256.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_257.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_257.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_258.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_258.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_259.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_259.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_26.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_260.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_260.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_261.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_261.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_262.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_262.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_263.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_263.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_264.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_264.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_265.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_266.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_266.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_267.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_267.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_268.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_268.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_269.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_269.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_27.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_270.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_270.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_271.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_271.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_272.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_272.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_273.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_273.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_274.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_274.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_275.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_275.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_276.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_276.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_277.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_277.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_278.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_279.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_279.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_28.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_280.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_281.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_281.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_282.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_282.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_283.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_283.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_284.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_284.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_285.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_285.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_286.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_286.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_287.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_287.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_288.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_288.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_289.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_289.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_29.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_290.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_290.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_291.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_291.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_292.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_292.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_293.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_293.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_294.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_294.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_295.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_295.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_296.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_296.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_297.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_297.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_298.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_299.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_299.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_30.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_300.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_301.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_302.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_302.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_303.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_303.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_304.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_304.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_305.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_305.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_306.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_306.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_307.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_307.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_308.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_308.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_309.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_31.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_310.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_311.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_311.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_312.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_312.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_313.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_313.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_314.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_314.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_315.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_315.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_316.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_316.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_317.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_317.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_318.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_318.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_319.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_319.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_32.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_320.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_321.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_321.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_322.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_322.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_323.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_323.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_324.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_324.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_325.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_325.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_326.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_326.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_327.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_327.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_328.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_328.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_329.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_329.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_33.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_330.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_330.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_331.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_331.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_332.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_332.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_333.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_333.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_334.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_335.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_335.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_336.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_337.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_337.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_338.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_338.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_339.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_339.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_34.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_340.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_340.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_341.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_341.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_342.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_342.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_343.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_343.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_344.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_344.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_345.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_345.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_346.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_346.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_347.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_347.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_348.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_348.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_349.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_349.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_35.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_350.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_350.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_351.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_351.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_352.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_352.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_353.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_353.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_354.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_354.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_355.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_355.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_356.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_356.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_357.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_357.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_358.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_358.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_359.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_359.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_36.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_37.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_38.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_39.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_40.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_41.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_42.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_43.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_44.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_45.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_46.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_47.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_48.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_49.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_50.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_51.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_52.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_53.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_54.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_55.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_56.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_57.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_58.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_59.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_60.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_61.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_62.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_63.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_64.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_65.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_66.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_67.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_68.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_69.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_70.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_71.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_72.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_73.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_74.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_75.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_76.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_77.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_78.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_79.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_80.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_81.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_82.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_83.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_84.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_85.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_86.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_87.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_88.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_89.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_90.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_91.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_92.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_93.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_94.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_95.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_96.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_97.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_98.png -------------------------------------------------------------------------------- /map/frontend/static/images/aircraft_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/flightaware/firestarter/master/map/frontend/static/images/aircraft_99.png -------------------------------------------------------------------------------- /.env-sample: -------------------------------------------------------------------------------- 1 | FH_USERNAME=user 2 | FH_APIKEY=key 3 | INIT_CMD_ARGS=events "flifo departure arrival cancellation position" 4 | GOOGLE_MAPS_API_KEY=key 5 | -------------------------------------------------------------------------------- /db-updater/requirements/base.in: -------------------------------------------------------------------------------- 1 | sqlalchemy==1.3.24 2 | # optional, if postgres support is desired 3 | psycopg2-binary==2.9.3 4 | confluent-kafka==1.8.2 5 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | run: 2 | docker-compose build --parallel && docker-compose up 3 | 4 | run-background: 5 | docker-compose build --parallel && docker-compose up -d 6 | -------------------------------------------------------------------------------- /fids/requirements/Makefile: -------------------------------------------------------------------------------- 1 | objects = $(wildcard *.in) 2 | outputs := $(objects:.in=.txt) 3 | 4 | .PHONY: all 5 | all: $(outputs) 6 | 7 | %.txt: %.in 8 | . ../venv/bin/activate && pip-compile --verbose --build-isolation --generate-hashes --output-file $@ $< 9 | 10 | test.txt: base.txt 11 | -------------------------------------------------------------------------------- /map/requirements/Makefile: -------------------------------------------------------------------------------- 1 | objects = $(wildcard *.in) 2 | outputs := $(objects:.in=.txt) 3 | 4 | .PHONY: all 5 | all: $(outputs) 6 | 7 | %.txt: %.in 8 | . ../venv/bin/activate && pip-compile --verbose --build-isolation --generate-hashes --output-file $@ $< 9 | 10 | test.txt: base.txt 11 | -------------------------------------------------------------------------------- /connector/requirements/Makefile: -------------------------------------------------------------------------------- 1 | objects = $(wildcard *.in) 2 | outputs := $(objects:.in=.txt) 3 | 4 | .PHONY: all 5 | all: $(outputs) 6 | 7 | %.txt: %.in 8 | . ../venv/bin/activate && pip-compile --verbose --build-isolation --generate-hashes --output-file $@ $< 9 | 10 | dev.txt: base.txt 11 | -------------------------------------------------------------------------------- /db-updater/requirements/Makefile: -------------------------------------------------------------------------------- 1 | objects = $(wildcard *.in) 2 | outputs := $(objects:.in=.txt) 3 | 4 | .PHONY: all 5 | all: $(outputs) 6 | 7 | %.txt: %.in 8 | . ../venv/bin/activate && pip-compile --verbose --build-isolation --generate-hashes --output-file $@ $< 9 | 10 | test.txt: base.txt 11 | -------------------------------------------------------------------------------- /connector/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.9-slim-bullseye 2 | 3 | LABEL org.opencontainers.image.source=https://github.com/flightaware/firestarter 4 | 5 | RUN apt-get update && apt-get install -y build-essential librdkafka-dev 6 | RUN id -u firestarter || useradd -u 8081 firestarter -c "FIRESTARTER User" -m -s /bin/sh 7 | USER firestarter 8 | WORKDIR /home/firestarter 9 | 10 | COPY --chown=firestarter Makefile.inc . 11 | 12 | RUN mkdir app 13 | WORKDIR /home/firestarter/app 14 | COPY --chown=firestarter connector/requirements ./requirements 15 | COPY --chown=firestarter connector/Makefile . 16 | 17 | RUN make docker-setup 18 | ENV VIRTUAL_ENV=./venv 19 | ENV PATH="$VIRTUAL_ENV/bin:$PATH" 20 | 21 | COPY --chown=firestarter connector/main.py . 22 | 23 | CMD ["python3", "main.py"] 24 | 25 | -------------------------------------------------------------------------------- /ROADMAP.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | ### v1 3 | Firestarter v1 contains 2 services and an example application. With these 4 | components you can track flights at the granularity of departures and arrivals 5 | (using flight info messages) and view them in a FIDS-like interface. 6 | 7 | ### v2 8 | Firestarter v2 will introduce a robust queueing component between the connector 9 | and its clients, allowing for efficient data fan-out. 10 | 11 | ### v3 (current release) 12 | Firestarter v3 adds support for processing and storage of airborne position data 13 | from Firehose. It will likely also include a sample application for viewing such 14 | data. 15 | 16 | ### v4 17 | Firestarter v4 will support processing and storage of surface position data from 18 | Firehose. It will likely also include a sample application for viewing such 19 | data. 20 | -------------------------------------------------------------------------------- /db-updater/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.9-slim-bullseye 2 | 3 | LABEL org.opencontainers.image.source=https://github.com/flightaware/firestarter 4 | 5 | RUN apt-get update && apt-get install -y libpq-dev build-essential sqlite3 postgresql-client librdkafka-dev 6 | RUN id -u firestarter || useradd -u 8081 firestarter -c "FIRESTARTER User" -m -s /bin/sh 7 | USER firestarter 8 | WORKDIR /home/firestarter 9 | 10 | COPY --chown=firestarter Makefile.inc . 11 | 12 | RUN mkdir app 13 | WORKDIR /home/firestarter/app 14 | RUN mkdir db 15 | COPY --chown=firestarter db-updater/requirements ./requirements 16 | COPY --chown=firestarter db-updater/Makefile . 17 | 18 | RUN make docker-setup 19 | ENV VIRTUAL_ENV=./venv 20 | ENV PATH="$VIRTUAL_ENV/bin:$PATH" 21 | 22 | COPY --chown=firestarter db-updater/main.py . 23 | 24 | CMD ["python3", "main.py"] 25 | -------------------------------------------------------------------------------- /ci_ping_frontend.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | from selenium import webdriver 4 | from selenium.webdriver.chrome.options import Options 5 | from webdriver_manager.chrome import ChromeDriverManager 6 | import time 7 | 8 | class NoAirportsFound(Exception): 9 | pass 10 | 11 | time.sleep(30) 12 | 13 | chrome_options = Options() 14 | chrome_options.add_argument("--headless") 15 | chrome_options.binary_location = '/usr/bin/google-chrome' 16 | 17 | driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(), chrome_options=chrome_options) 18 | driver.get('http://localhost:8080/') 19 | page_output = driver.page_source 20 | 21 | p = re.compile("airport-list-link.*?>([A-Z]{4})") 22 | airports = p.findall(page_output) 23 | 24 | if len(airports) > 0: 25 | print(airports) 26 | else: 27 | raise NoAirportsFound() 28 | 29 | driver.quit() 30 | -------------------------------------------------------------------------------- /fids/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.9-slim-bullseye 2 | 3 | LABEL org.opencontainers.image.source=https://github.com/flightaware/firestarter 4 | 5 | RUN apt-get update && \ 6 | apt-get install -y libpq-dev build-essential 7 | RUN id -u firestarter || useradd -u 8081 firestarter -c "FIRESTARTER User" -m -s /bin/sh 8 | USER firestarter 9 | WORKDIR /home/firestarter 10 | 11 | COPY --chown=firestarter Makefile.inc . 12 | 13 | RUN mkdir app 14 | WORKDIR /home/firestarter/app 15 | 16 | RUN mkdir db 17 | COPY --chown=firestarter fids/requirements ./requirements 18 | COPY --chown=firestarter fids/Makefile . 19 | 20 | ENV FLASK_APP=app.py 21 | ENV FLASK_ENV=development 22 | 23 | RUN make docker-setup 24 | ENV VIRTUAL_ENV=./venv 25 | ENV PATH="$VIRTUAL_ENV/bin:$PATH" 26 | 27 | COPY --chown=firestarter fids/app.py . 28 | COPY --chown=firestarter fids/trig.py . 29 | 30 | CMD ["python3", "app.py"] 31 | -------------------------------------------------------------------------------- /map/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.9-slim-bullseye 2 | 3 | LABEL org.opencontainers.image.source=https://github.com/flightaware/firestarter 4 | 5 | RUN apt-get update && \ 6 | apt-get install -y npm build-essential librdkafka-dev && \ 7 | npm install npm@latest -g 8 | RUN id -u firestarter || useradd -u 8081 firestarter -c "FIRESTARTER User" -m -s /bin/sh 9 | USER firestarter 10 | WORKDIR /home/firestarter 11 | 12 | COPY --chown=firestarter Makefile.inc . 13 | 14 | RUN mkdir app 15 | WORKDIR /home/firestarter/app 16 | 17 | COPY --chown=firestarter map/requirements ./requirements 18 | COPY --chown=firestarter map/Makefile . 19 | 20 | ENV FLASK_APP=app.py 21 | ENV FLASK_ENV=development 22 | 23 | RUN make docker-setup 24 | ENV VIRTUAL_ENV=./venv 25 | ENV PATH="$VIRTUAL_ENV/bin:$PATH" 26 | 27 | COPY --chown=firestarter map/frontend frontend 28 | COPY --chown=firestarter map/app.py . 29 | 30 | CMD ["python3", "app.py"] 31 | -------------------------------------------------------------------------------- /fids/trig.py: -------------------------------------------------------------------------------- 1 | from math import degrees, radians, sin, cos, atan2 2 | from typing import Tuple 3 | 4 | 5 | def get_bearing_degrees(coord1: Tuple[float, float], coord2: Tuple[float, float]) -> float: 6 | """Get bearing in degrees between 2 sets of coordinates""" 7 | r_lat1 = radians(coord1[0]) 8 | r_lon1 = radians(coord1[1]) 9 | r_lat2 = radians(coord2[0]) 10 | r_lon2 = radians(coord2[1]) 11 | d_lon = r_lon2 - r_lon1 12 | y = sin(d_lon) * cos(r_lat2) 13 | x = cos(r_lat1) * sin(r_lat2) - sin(r_lat1) * cos(r_lat2) * cos(d_lon) 14 | bearing = degrees(atan2(y, x)) 15 | bearing = (bearing + 360) % 360 16 | return bearing 17 | 18 | 19 | def get_cardinal_for_angle(angle_degrees: float) -> int: 20 | """Approximate an angle in degrees to 1 of 4 cardinal directions""" 21 | if 45 <= angle_degrees < 135: 22 | return 90 23 | elif 135 <= angle_degrees < 225: 24 | return 180 25 | elif 225 <= angle_degrees < 315: 26 | return 270 27 | else: 28 | return 0 29 | -------------------------------------------------------------------------------- /Makefile.inc: -------------------------------------------------------------------------------- 1 | BLACK=black 2 | PYLINT=pylint 3 | PYTHON=python3 4 | 5 | venv: venv/bin/activate 6 | 7 | venv/bin/activate: 8 | test -d venv || $(PYTHON) -m venv venv 9 | . venv/bin/activate && $(PYTHON) -m pip install pip-tools && $(PYTHON) -m pip install --upgrade setuptools 10 | 11 | pip-compile: venv 12 | . venv/bin/activate && make -C requirements all 13 | 14 | pip-sync: venv pip-compile 15 | . venv/bin/activate && venv/bin/pip-sync $(wildcard requirements/*.txt) 16 | 17 | pip-sync-ci: 18 | $(PYTHON) -m pip install pip-tools 19 | pip-sync $(wildcard requirements/*.txt) 20 | 21 | docker-setup: venv pip-sync 22 | 23 | type-check: 24 | . venv/bin/activate && mypy --check-untyped-defs . 25 | 26 | format: 27 | . venv/bin/activate && $(PYTHON) -m $(BLACK) --line-length=100 . 28 | 29 | lint: 30 | . venv/bin/activate && $(PYTHON) -m $(PYLINT) *.py 31 | 32 | check: lint type-check 33 | 34 | test: 35 | . venv/bin/activate && $(PYTHON) -m unittest discover -s test 36 | 37 | test-ci: 38 | $(PYTHON) -m unittest discover -s test 39 | 40 | run: 41 | docker-compose -f ../docker-compose.yml up --build $(PROGNAME) 42 | 43 | .PHONY: venv pip-compile pip-sync docker-setup type-check format lint check test run 44 | -------------------------------------------------------------------------------- /ci_performance_regression_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | start=$(date +%s) 4 | 5 | sleep 300 6 | 7 | dbupdater_container=$(docker ps | grep firestarter_db-updater_1 | awk 'NF>1{print $NF}') 8 | flights_count=$(docker exec -i ${dbupdater_container} sqlite3 /home/firestarter/app/db/flights.db 'SELECT COUNT(*) FROM flights') 9 | 10 | timescaledb_container=$(docker ps | grep firestarter_timescaledb_1 | awk 'NF>1{print $NF}') 11 | positions_count=$(docker exec -i ${timescaledb_container} psql -qAt -U postgres -c 'SELECT COUNT(*) FROM positions') 12 | 13 | positions_time_processed=$(docker exec -i ${timescaledb_container} psql -qAt -U postgres -c 'SELECT MAX(extract(epoch from time)) - MIN(extract(epoch from time)) as time_diff FROM positions' | tr -d '\r') 14 | 15 | end=$(date +%s) 16 | 17 | echo "Flights Count: ${flights_count}" 18 | echo "Positions Count: ${positions_count}" 19 | 20 | if [[ $flights_count -lt 45000 ]]; then 21 | echo "Flight count lower than threshold 45000" 22 | docker-compose logs 23 | exit 1 24 | fi 25 | 26 | if [[ $positions_count -lt 200000 ]]; then 27 | echo "Position count lower than threshold 200000" 28 | docker-compose logs 29 | exit 1 30 | fi 31 | 32 | echo "Position catch-up rate: x$(($positions_time_processed / ($end - $start)))" 33 | 34 | exit 0 35 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2020, FlightAware 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /.github/workflows/docker-publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish Docker image 2 | 3 | on: 4 | push: 5 | # Publish `master` as Docker `latest` image. 6 | branches: 7 | - master 8 | 9 | # Publish `v1.2.3` tags as releases. 10 | tags: 11 | - v* 12 | 13 | workflow_dispatch: 14 | # Allow manually triggered builds too. 15 | 16 | env: 17 | CONNECTOR_IMAGE_NAME: connector 18 | DB_UPDATER_IMAGE_NAME: db-updater 19 | FIDS_IMAGE_NAME: fids-backend 20 | MAP_IMAGE_NAME: map 21 | FH_USERNAME: dummy 22 | FH_APIKEY: dummy 23 | FS_VERSION: latest 24 | 25 | jobs: 26 | # Push image to GitHub Packages. 27 | # See also https://docs.docker.com/docker-hub/builds/ 28 | push: 29 | 30 | runs-on: ubuntu-latest 31 | if: github.event_name == 'push' 32 | 33 | steps: 34 | - uses: actions/checkout@v2 35 | 36 | - name: Build images 37 | run: | 38 | # Strip git ref prefix from version 39 | FS_VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') 40 | 41 | # Use Docker `latest` tag convention 42 | [ "$FS_VERSION" == "master" ] && FS_VERSION=latest 43 | 44 | echo "FS_VERSION=$FS_VERSION" >> $GITHUB_ENV 45 | 46 | docker-compose build --parallel $CONNECTOR_IMAGE_NAME $DB_UPDATER_IMAGE_NAME $FIDS_IMAGE_NAME $MAP_IMAGE_NAME 47 | 48 | - name: Log into registry 49 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ secrets.GHCR_USER }} --password-stdin 50 | 51 | - name: Push images 52 | run: 53 | docker-compose push $CONNECTOR_IMAGE_NAME $DB_UPDATER_IMAGE_NAME $FIDS_IMAGE_NAME $MAP_IMAGE_NAME 54 | -------------------------------------------------------------------------------- /connector/requirements/base.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with python 3.9 3 | # To update, run: 4 | # 5 | # pip-compile --generate-hashes --output-file=base.txt base.in 6 | # 7 | confluent-kafka==1.8.2 \ 8 | --hash=sha256:02b78bb6d1199ea350240eae1f4415f22014896199a46edf85f779a69751f984 \ 9 | --hash=sha256:039c68379f9a5ece6e45a683ec7abebb95a9dac904ec4e2f9d93738e1cf6fab2 \ 10 | --hash=sha256:1df83fa20e4fe032651ad73ce0ba85dd14a7fabff6066c9cb20e944d2748e72b \ 11 | --hash=sha256:3d66e8c1a6a15144ca5b176170adbf30207c27813c76202c56abf52ef2b475e1 \ 12 | --hash=sha256:4f26052ef53212752039cd1d9e932b2feb6a0975d717ab070af323629a72a0b9 \ 13 | --hash=sha256:585bc8e8aa7d6fbd46dc0b2da3d4b1fd8457555288fee1ecba6af2c97ab738cc \ 14 | --hash=sha256:748813f47641dd65dd8d3bae8dcb3ce96a3e455c12b467d4b35e1fc880362d01 \ 15 | --hash=sha256:ac7155e1b9a94445ed8eecf691c80c61407148813808a2aa1cba0babbe197e77 \ 16 | --hash=sha256:add05db627435697d4ed8f81b3ce1081931770813a989fd775910865f07d694d \ 17 | --hash=sha256:ae75d3f4bc3d2109663912d77911c45aaa2939bde3694fc05e75842c806fa760 \ 18 | --hash=sha256:b679c3f9f555e87a9cbb043c676473c30d12182609e075be85afd98f84bcc863 \ 19 | --hash=sha256:b79e836c3554bc51c6837a8a0152f7521c9bf31342f5b8e21eba6b28044fa585 \ 20 | --hash=sha256:b7cb6fa3d44972e3670e0b3b054186a6006e6fd664600cfe70e008fad2443d16 \ 21 | --hash=sha256:d50b091770d277714766943d885ad6b2c5c427e67328706cfd33dc86eef540c9 \ 22 | --hash=sha256:e49382a943fb47813f421e913cc6c87cd1d4bfdecad1785efa0dacada7003d84 \ 23 | --hash=sha256:ead7f18c516f7bcb886b643fa78ff2a2142270adaf931ba0311b62e9a047e6ca \ 24 | --hash=sha256:f843680e183479f6e0732b593ea3235c836a5bb2de6be3819a11b891b6af1dde 25 | # via -r base.in 26 | -------------------------------------------------------------------------------- /docs/database.md: -------------------------------------------------------------------------------- 1 | # Database support 2 | Firestarter offers flexibility in your choice of database. Its db-updater 3 | component is written on top of SQLAlchemy, a python library which supports many 4 | popular SQL databases (full listing at 5 | https://docs.sqlalchemy.org/en/13/dialects/index.html). By default, db-updater 6 | uses a sqlite database located on a Docker named volume. This allows the 7 | database file (located at `/home/firestarter/db/flights.db`) to persist between 8 | container restarts and allows sharing the database file with the fids 9 | component. Db-updater uses TimescaleDB for positions. TimescaleDB is a 10 | time-series database, so it is very efficient in handling time-series data like 11 | positions. It is also an extension of PostgreSQL, which has been fully tested 12 | in db-updater. 13 | 14 | When starting db-updater, it checks the database it's connected to ensure that 15 | the "flights" or "positions" table exists (depending on what it is intended to 16 | update). If no such table exists, it is created with the schema found 17 | [here](../db-updater/main.py). 18 | 19 | ## Customizing the database connection 20 | To use a different database than db-updater's default sqlite file, you just 21 | need to set the DB_URL environment variable. The syntax for this variable is 22 | described at https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls. 23 | Here are a few examples of potential values for the variable: 24 | * `sqlite:///db/flights.db` 25 | This is the default DB_URL. It uses the sqlite dialect, and it opens the 26 | database located at `./db/flights.db` 27 | * `postgresql://postgres:password@10.1.1.1/flightdata` 28 | This is a sample PostgreSQL connection URL. It will connect to a database 29 | named "flightdata" running at the host with IP 10.1.1.1 with username 30 | "postgres" and password "password". The database does not need to be running 31 | in Docker; it just needs to be reachable from the container host. 32 | -------------------------------------------------------------------------------- /.github/workflows/dockerimage.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image CI 2 | 3 | on: 4 | push: 5 | branches: '**' 6 | workflow_dispatch: 7 | # Allow manually triggered builds too. 8 | 9 | env: 10 | KEEPALIVE: 60 11 | KEEPALIVE_STALE_PITRS: 5 12 | SERVER: firehose-test.flightaware.com 13 | PRINT_STATS_PERIOD: 0 14 | FH_USERNAME: ${{ secrets.FH_USERNAME }} 15 | FH_APIKEY: ${{ secrets.FH_APIKEY }} 16 | 17 | jobs: 18 | test: 19 | runs-on: ubuntu-latest 20 | strategy: 21 | matrix: 22 | node-version: [12.16.3] 23 | python-version: [3.9] 24 | steps: 25 | - name: Add secrets mask 26 | run: | 27 | echo "::add-mask::${{ secrets.FH_USERNAME }}" 28 | echo "::add-mask::${{ secrets.FH_APIKEY }}" 29 | - uses: actions/checkout@v2 30 | - name: Set up Python ${{ matrix.python-version }} 31 | uses: actions/setup-python@v2 32 | with: 33 | python-version: ${{ matrix.python-version }} 34 | - name: Setup Node.js ${{ matrix.node-version }} 35 | uses: actions/setup-node@v1 36 | with: 37 | node-version: ${{ matrix.node-version }} 38 | - name: Connector 39 | env: 40 | INIT_CMD_TIME: "pitr 1647160200" 41 | INIT_CMD_ARGS: "events \"flifo\"" 42 | KAFKA_TOPIC_NAME: feed1 43 | run: | 44 | cd connector 45 | make pip-sync-ci 46 | make test-ci 47 | 48 | - name: Db-updater 49 | env: 50 | KAFKA_TOPIC_NAME: feed1 51 | KAFKA_GROUP_NAME: group1 52 | run: | 53 | cd db-updater 54 | make pip-sync-ci 55 | make test-ci 56 | 57 | - name: Fids 58 | run: | 59 | cd fids 60 | make pip-sync-ci 61 | make test-ci 62 | 63 | - name: Full_Integration 64 | env: 65 | INIT_CMD_ARGS: "events \"flightplan departure arrival cancellation position\"" 66 | run: | 67 | docker-compose build --parallel 68 | docker-compose up -d 69 | python3 -m pip install webdriver-manager 70 | python3 -m pip install selenium 71 | python3 ci_ping_frontend.py 72 | docker-compose rm -fsv 73 | docker volume prune -f 74 | 75 | - name: Performance 76 | env: 77 | INIT_CMD_TIME: "pitr 1577880000" 78 | INIT_CMD_ARGS: "events \"flightplan departure arrival cancellation position\"" 79 | run: | 80 | docker-compose up -d 81 | ./ci_performance_regression_test.sh 82 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '39 19 * * 0' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | language: [ 'javascript', 'python' ] 32 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 33 | # Learn more: 34 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 35 | 36 | steps: 37 | - name: Checkout repository 38 | uses: actions/checkout@v2 39 | 40 | # Initializes the CodeQL tools for scanning. 41 | - name: Initialize CodeQL 42 | uses: github/codeql-action/init@v1 43 | with: 44 | languages: ${{ matrix.language }} 45 | # If you wish to specify custom queries, you can do so here or in a config file. 46 | # By default, queries listed here will override any specified in a config file. 47 | # Prefix the list here with "+" to use these queries and those in the config file. 48 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 49 | 50 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 51 | # If this step fails, then you should remove it and run the build manually (see below) 52 | - name: Autobuild 53 | uses: github/codeql-action/autobuild@v1 54 | 55 | # ℹ️ Command-line programs to run using the OS shell. 56 | # 📚 https://git.io/JvXDl 57 | 58 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 59 | # and modify them (or add more) to build your code if your project 60 | # uses a compiled language 61 | 62 | #- run: | 63 | # make bootstrap 64 | # make release 65 | 66 | - name: Perform CodeQL Analysis 67 | uses: github/codeql-action/analyze@v1 68 | -------------------------------------------------------------------------------- /map/app.py: -------------------------------------------------------------------------------- 1 | """Forward flight events via SSE""" 2 | 3 | import os 4 | import random 5 | 6 | from confluent_kafka import KafkaException, Consumer # type: ignore 7 | from flask import Flask, Response, render_template, request 8 | 9 | 10 | app = Flask(__name__, template_folder="frontend", static_folder="frontend/static") 11 | 12 | @app.route("/") 13 | def index(): 14 | return render_template( 15 | "index.html", 16 | google_maps_api_key=os.environ.get("GOOGLE_MAPS_API_KEY", ""), 17 | startlive='live' in request.args) 18 | 19 | @app.route("/listen") 20 | def listen(): 21 | group = request.headers.get("Last-Event-ID", f"{os.environ['KAFKA_GROUP_NAME']}{random.randint(0, 10**9)}") 22 | live = 'live' in request.args 23 | def stream(): 24 | innergroup = group 25 | consumer = None 26 | while True: 27 | try: 28 | # Handle case where we initialized the consumer but failed to 29 | # subscribe. Don't want to keep initializing. 30 | if consumer is None: 31 | consumer = Consumer( 32 | { 33 | "bootstrap.servers": "kafka:9092", 34 | "group.id": innergroup, 35 | "auto.offset.reset": "latest" if live else "earliest", 36 | "enable.auto.commit": True, 37 | "auto.commit.interval.ms": 1000, 38 | } 39 | ) 40 | consumer.subscribe([os.environ["KAFKA_TOPIC_NAME"]]) 41 | break 42 | except (KafkaException, OSError) as error: 43 | # Consider providing some sort of status update to listener 44 | time.sleep(3) 45 | while True: 46 | # Polling will mask SIGINT, just fyi 47 | messagestr = consumer.poll(timeout=1.0) 48 | if messagestr is None: 49 | # poll timed out 50 | continue 51 | if messagestr.error(): 52 | # Consider providing to listener 53 | print(f"Encountered kafka error: {messagestr.error()}") 54 | # They continue in the examples, so let's do it as well 55 | continue 56 | yield as_sse(messagestr.value().decode(), id=innergroup) 57 | # Only send the id for the first message. We're kind of hijacking 58 | # the ID's purpose since it's really supposed to be unique per 59 | # message. We just need one ID for handling the group membership, 60 | # though. 61 | innergroup = None 62 | return Response(stream(), mimetype="text/event-stream") 63 | 64 | 65 | def as_sse(data, event=None, id=None): 66 | message = f"data: {data}" 67 | if event is not None: 68 | message = f"event: {event}\n{message}" 69 | if id is not None: 70 | message = f"{message}\nid: {id}" 71 | message = message + "\n\n" 72 | return message 73 | 74 | app.run(host="0.0.0.0", port=5001) 75 | -------------------------------------------------------------------------------- /map/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |