master 3dc11577e291 cached
92 files
20.6 MB
5.4M tokens
39 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (21,621K chars total). Download the full file to get everything.
Repository: orhanayd/kandilli-rasathanesi-api
Branch: master
Commit: 3dc11577e291
Files: 92
Total size: 20.6 MB

Directory structure:
gitextract_5ax4jvme/

├── .gitattributes
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── LICENSE
├── README.md
├── biome.jsonc
├── index-internal.js
├── index.js
├── package.json
└── src/
    ├── constants/
    │   ├── errors.js
    │   └── index.js
    ├── controller/
    │   ├── afad/
    │   │   └── index.js
    │   ├── data/
    │   │   └── index.js
    │   ├── index.js
    │   └── kandilli/
    │       └── index.js
    ├── db/
    │   ├── MongoDB.js
    │   ├── index.js
    │   ├── locations/
    │   │   ├── airports.js
    │   │   ├── geojsons/
    │   │   │   ├── adriyatik-denizi.js
    │   │   │   ├── arnavutluk.js
    │   │   │   ├── azerbaycan.js
    │   │   │   ├── bosna-hersek.js
    │   │   │   ├── bulgaristan.js
    │   │   │   ├── ermenistan.js
    │   │   │   ├── filistin.js
    │   │   │   ├── gurcistan.js
    │   │   │   ├── hirvatistan.js
    │   │   │   ├── index.js
    │   │   │   ├── irak.js
    │   │   │   ├── iran.js
    │   │   │   ├── israil.js
    │   │   │   ├── kibris.js
    │   │   │   ├── libya.js
    │   │   │   ├── lubnan.js
    │   │   │   ├── makedonya.js
    │   │   │   ├── misir.js
    │   │   │   ├── mixed-locations.js
    │   │   │   ├── montenegro.js
    │   │   │   ├── rusya.js
    │   │   │   ├── sirbistan.js
    │   │   │   ├── suriye.js
    │   │   │   ├── urdun.js
    │   │   │   └── yunanistan.js
    │   │   └── index.js
    │   ├── nopeRedis.js
    │   └── populations.js
    ├── helpers/
    │   ├── cloudflare.js
    │   ├── crawler/
    │   │   ├── afad.js
    │   │   ├── helpers.js
    │   │   ├── index.js
    │   │   └── kandilli.js
    │   ├── date/
    │   │   └── index.js
    │   ├── earthquakes.js
    │   └── index.js
    ├── middlewares/
    │   ├── ban.js
    │   ├── cron.js
    │   ├── index.js
    │   ├── stats.js
    │   ├── swagger.js
    │   └── timeout.js
    ├── repositories/
    │   ├── afad/
    │   │   └── index.js
    │   ├── ban/
    │   │   └── index.js
    │   ├── data/
    │   │   ├── index.js
    │   │   └── stats.js
    │   ├── index.js
    │   ├── kandilli/
    │   │   └── index.js
    │   └── rate/
    │       └── index.js
    ├── routes/
    │   ├── afad/
    │   │   └── index.js
    │   ├── data/
    │   │   └── index.js
    │   ├── index.js
    │   ├── int/
    │   │   └── index.js
    │   ├── kandilli/
    │   │   └── index.js
    │   └── statics/
    │       └── index.js
    └── services/
        ├── afad/
        │   ├── archive.js
        │   ├── index.js
        │   └── live.js
        ├── data/
        │   ├── allProviders.js
        │   ├── get.js
        │   ├── index.js
        │   ├── search.js
        │   ├── sitemap.js
        │   ├── sitemapCount.js
        │   └── statsGeneral.js
        ├── index.js
        ├── int/
        │   ├── banCleanup.js
        │   ├── earthquakes.js
        │   └── index.js
        ├── kandilli/
        │   ├── archive.js
        │   ├── index.js
        │   └── live.js
        └── statics/
            ├── cities.js
            └── index.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto


================================================
FILE: .github/FUNDING.yml
================================================
github: [orhanayd]

================================================
FILE: .gitignore
================================================
env.php
node_modules
old
.env
tools/tester.js
yarn.lock
package-lock.json
yarn.lock
.DS_Store
CLAUDE.md


================================================
FILE: LICENSE
================================================
Kandilli Rasathanesi API - Özel Lisans

Copyright (c) Orhan AYDOĞDU

Bu yazılım ve ilgili dokümantasyon dosyalarının ("Yazılım") kullanımı aşağıdaki
koşullara tabidir:

1. TİCARİ OLMAYAN KULLANIM
   - Bu yazılım, ticari olmayan, eğitim, araştırma ve kişisel amaçlar için
     ücretsiz olarak kullanılabilir.
   - Kaynak kodu görüntülenebilir, indirilebilir ve değiştirilebilir.

2. TİCARİ KULLANIM KISITLAMASI
   - Bu yazılımın ticari amaçlarla kullanımı, önceden yazılı izin alınmadan
     kesinlikle yasaktır.
   - Ticari kullanım için detaylı bilgi için info@orhanaydogdu.com.tr adresinden iletişime geçiniz.

3. VERİ KULLANIMI VE TİCARİ KULLANIM
   - API tarafından sağlanan deprem verileri, Boğaziçi Üniversitesi Kandilli
     Rasathanesi ve Deprem Araştırma Enstitüsü'nün verilerine dayanmaktadır.
   - Bu verilerin ticari kullanımı, Boğaziçi Üniversitesi Rektörlüğü'nün
     yazılı izni olmadan yasaktır.

4. API KULLANIM KOŞULLARI
   - API kullanımı rate limiting'e tabidir (dakikada 40 istek).
   - Aşırı kullanım durumunda erişim engellenebilir.
   - API'nin sürekli erişilebilirliği garanti edilmez.

5. ATTRİBÜSYON (ATIF)
   - Bu yazılımı kullanan projeler, görünür bir şekilde aşağıdaki atfı
     içermelidir:
     "Deprem verileri Kandilli Rasathanesi API tarafından sağlanmaktadır."

6. SORUMLULUK REDDİ
   - Bu yazılım "OLDUĞU GİBİ" sağlanmaktadır, hiçbir garanti verilmemektedir.
   - Yazılımın kullanımından doğabilecek hiçbir zarar veya kayıptan yazılım
     sahibi sorumlu tutulamaz.
   - Deprem verilerinin doğruluğu ve güncelliği konusunda garanti verilmez.

7. DEĞİŞİKLİKLER
   - Değiştirilmiş versiyonlar, orijinal olarak sunulamaz.
   - Kaynak kodda yapılan değişiklikler belirtilmelidir.

8. DAĞITIM
   - Bu yazılımın yeniden dağıtımı, bu lisans koşullarını içermelidir.
   - Ticari amaçlı dağıtım yasaktır.

Bu lisans koşullarını kabul etmiyorsanız, bu yazılımı kullanmayınız.

İletişim: info@orhanaydogdu.com.tr
Web: https://api.orhanaydogdu.com.tr

================================================
FILE: README.md
================================================
# 🌍 Kandilli Rasathanesi / AFAD API

<div align="center">

[![API Status](https://img.shields.io/badge/API-Active-brightgreen)](https://api.orhanaydogdu.com.tr/deprem/status)
[![License](https://img.shields.io/badge/License-Custom-orange.svg)](LICENSE)
[![Node Version](https://img.shields.io/badge/Node.js-%3E%3D14.0.0-green)](https://nodejs.org)
[![MongoDB](https://img.shields.io/badge/MongoDB-6.0%2B-green)](https://www.mongodb.com/)

**Türkiye'nin en güncel deprem verilerini sunan, ücretsiz ve açık kaynaklı API servisi**

[🔗 Swagger Dokümantasyonu](https://api.orhanaydogdu.com.tr/deprem/api-docs/) | [📊 API Durumu](https://api.orhanaydogdu.com.tr/deprem/status) | [💬 Whatsapp Topluluğu](https://chat.whatsapp.com/KOkShApC4lc9HlMtFFN3kQ)

</div>

---

## 📋 İçindekiler

- [Hakkında](#-hakkında)
- [Özellikler](#-özellikler)
- [Hızlı Başlangıç](#-hızlı-başlangıç)
- [API Endpoints](#-api-endpoints)
- [Kurulum](#-kurulum)
- [Rate Limiting](#-rate-limiting)
- [Lisans ve Uyarılar](#-lisans-ve-uyarılar)

## 📖 Hakkında

Kandilli Rasathanesi API, **Boğaziçi Üniversitesi Kandilli Rasathanesi** ve **AFAD (Afet ve Acil Durum Yönetimi)** tarafından yayınlanan deprem verilerini işleyerek, zenginleştirilmiş ve kolayca kullanılabilir formatta sunan bir RESTful API servisidir.

### Neden Bu API?

- ✅ **Çift Kaynak**: Kandilli ve AFAD verilerini birleştirir
- ✅ **Gerçek Zamanlı**: Veriler her dakika güncellenir
- ✅ **Zenginleştirilmiş Veri**: Deprem noktasına en yakın şehirler ve havaalanları
- ✅ **GeoJSON Desteği**: Harita uygulamalarına kolay entegrasyon
- ✅ **Ücretsiz**: Ticari olmayan kullanımlar için tamamen ücretsiz
- ✅ **Güvenilir**: MongoDB ve Redis cache ile yüksek performans

## ✨ Özellikler

### Temel Özellikler
- 📊 Son 24 saatteki depremler (canlı veri)
- 📅 Tarih bazlı deprem arşivi
- 🗺️ GeoJSON formatında konum verileri
- 🏙️ Depreme en yakın şehir bilgileri
- ✈️ En yakın havaalanları ve uzaklıkları
- 👥 Etkilenen bölge nüfus bilgileri

### Teknik Özellikler
- ⚡ 30 saniyelik önbellekleme (canlı veriler)
- 🔍 Gelişmiş arama ve filtreleme
- 📈 İstatistik ve analiz endpointleri
- 🔐 Rate limiting (dakikada 40 istek)
- 📖 Swagger/OpenAPI dokümantasyonu
- 🌍 30+ ülke için sınır verileri

## 🚀 Hızlı Başlangıç - Tüm Kaynaklar (Kandilli/AFAD)

```bash
curl https://api.orhanaydogdu.com.tr/deprem
```

## 📚 API Endpoints

### 📖 Swagger/OpenAPI Dokümantasyonu

Detaylı API dokümantasyonu ve interaktif test arayüzü için:

🔗 **[https://api.orhanaydogdu.com.tr/deprem/api-docs/](https://api.orhanaydogdu.com.tr/deprem/api-docs/)**

### Endpoint Listesi

| Method | Endpoint | Açıklama | Cache | Rate Limit |
|--------|----------|----------|-------|------------|
| `GET` | `/deprem/kandilli/live` | Kandilli - Son 24 saat | 30s | 40/dk |
| `GET` | `/deprem/kandilli/archive` | Kandilli - Tarih aralığı | - | 40/dk |
| `GET` | `/deprem/afad/live` | AFAD - Son 24 saat | 30s | 40/dk |
| `GET` | `/deprem/afad/archive` | AFAD - Tarih aralığı | - | 40/dk |
| `GET` | `/deprem` | Tüm kaynaklar - Son 24 saat | 30s | 40/dk |
| `POST` | `/deprem/data/search` | Gelişmiş arama & filtreleme | - | 40/dk |
| `GET` | `/deprem/data/get` | Tekil deprem bilgisi | 24h | 40/dk |
| `GET` | `/deprem/statics/cities` | Şehir listesi | - | 40/dk |
| `GET` | `/deprem/status` | API sağlık durumu | - | 40/dk |

---

### 1️⃣ Kandilli - Canlı Veriler

**Endpoint:** `GET /deprem/kandilli/live`

**Açıklama:** Kandilli Rasathanesi'nden son 24 saatteki depremler.

**Query Parametreleri:**
- `skip` (number, optional): Atlanacak kayıt sayısı (default: 0)
- `limit` (number, optional): Maksimum kayıt sayısı (default: 50, max: 100)

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/kandilli/live?skip=0&limit=10"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 12,
  "metadata": {
    "date_starts": "2024-01-07 12:00:00",
    "date_ends": "2024-01-08 12:00:00",
    "count": 10
  },
  "result": [
    {
      "earthquake_id": "ABC123XYZ456",
      "provider": "kandilli",
      "title": "AKDENIZ",
      "date": "2024.01.08 11:45:23",
      "mag": 3.8,
      "depth": 10.5,
      "geojson": {
        "type": "Point",
        "coordinates": [30.5432, 36.1234]
      },
      "location_properties": {
        "closestCity": {
          "name": "Antalya",
          "cityCode": 7,
          "distance": 125430.5,
          "population": 2619832
        }
      },
      "date_time": "2024-01-08 11:45:23",
      "created_at": 1704710723
    }
  ]
}
```

---

### 2️⃣ Kandilli - Arşiv

**Endpoint:** `GET /deprem/kandilli/archive`

**Açıklama:** Kandilli Rasathanesi'nden belirli tarih aralığındaki depremler.

**Query Parametreleri:**
- `date` (string, required): Başlangıç tarihi (YYYY-MM-DD)
- `date_end` (string, optional): Bitiş tarihi (YYYY-MM-DD, default: bugün)
- `skip` (number, optional): Atlanacak kayıt sayısı (default: 0)
- `limit` (number, optional): Maksimum kayıt sayısı (default: 50, max: 100)

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/kandilli/archive?date=2024-01-01&date_end=2024-01-31&limit=50"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 28,
  "metadata": {
    "count": 50
  },
  "result": [
    {
      "earthquake_id": "DEF456GHI789",
      "provider": "kandilli",
      "title": "GEMLIK KORFEZI (BURSA)",
      "mag": 4.2,
      "depth": 8.7,
      "date_time": "2024-01-15 14:23:11"
    }
  ]
}
```

---

### 3️⃣ AFAD - Canlı Veriler

**Endpoint:** `GET /deprem/afad/live`

**Açıklama:** AFAD'dan son 24 saatteki depremler.

**Query Parametreleri:**
- `skip` (number, optional): Atlanacak kayıt sayısı (default: 0)
- `limit` (number, optional): Maksimum kayıt sayısı (default: 50, max: 100)

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/afad/live?limit=20"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 15,
  "metadata": {
    "date_starts": "2024-01-07 12:00:00",
    "date_ends": "2024-01-08 12:00:00",
    "count": 20
  },
  "result": [
    {
      "earthquake_id": "JKL789MNO012",
      "provider": "afad",
      "title": "AEGEAN SEA",
      "mag": 3.5,
      "depth": 7.2,
      "date_time": "2024-01-08 10:30:15"
    }
  ]
}
```

---

### 4️⃣ AFAD - Arşiv

**Endpoint:** `GET /deprem/afad/archive`

**Açıklama:** AFAD'dan belirli tarih aralığındaki depremler.

**Query Parametreleri:**
- `date` (string, required): Başlangıç tarihi (YYYY-MM-DD)
- `date_end` (string, optional): Bitiş tarihi (YYYY-MM-DD, default: bugün)
- `skip` (number, optional): Atlanacak kayıt sayısı (default: 0)
- `limit` (number, optional): Maksimum kayıt sayısı (default: 50, max: 100)

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/afad/archive?date=2024-01-01&date_end=2024-01-10"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 22,
  "metadata": {
    "count": 35
  },
  "result": [
    {
      "earthquake_id": "PQR345STU678",
      "provider": "afad",
      "title": "Ege Denizi",
      "mag": 4.1,
      "depth": 10.3,
      "date_time": "2024-01-05 08:15:42"
    }
  ]
}
```

---

### 5️⃣ Tüm Kaynaklar (Kombine)

**Endpoint:** `GET /deprem`

**Açıklama:** Tüm veri kaynaklarından (Kandilli + AFAD) son 24 saatteki depremler.

**Query Parametreleri:**
- `date` (string, optional): Başlangıç tarihi (YYYY-MM-DD, default: 24 saat önce)
- `date_end` (string, optional): Bitiş tarihi (YYYY-MM-DD, default: şimdi)
- `skip` (number, optional): Atlanacak kayıt sayısı (default: 0)
- `limit` (number, optional): Maksimum kayıt sayısı (default: 50, max: 100)

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem?limit=30"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 18,
  "result": [
    {
      "earthquake_id": "ABC123",
      "provider": "kandilli",
      "title": "MARMARA DENIZI",
      "mag": 3.2,
      "depth": 8.5,
      "date_time": "2024-01-08 10:15:30"
    },
    {
      "earthquake_id": "XYZ789",
      "provider": "afad",
      "title": "EGE DENIZI",
      "mag": 2.8,
      "depth": 6.2,
      "date_time": "2024-01-08 09:45:12"
    }
  ]
}
```

---

### 6️⃣ Gelişmiş Arama

**Endpoint:** `POST /deprem/data/search`

**Açıklama:** Tüm depremler üzerinde gelişmiş filtreleme, konum bazlı arama ve sıralama.

**Request Body:**
```json
{
  "provider": "kandilli",  // optional: "kandilli" veya "afad" - kaynak filtresi
  "match": {
    "mag": 4.0,              // optional: Minimum büyüklük
    "cityCode": 34,          // optional: Şehir plaka kodu
    "date_starts": "2024-01-01 00:00:00",  // optional: Başlangıç tarihi
    "date_ends": "2024-01-31 23:59:59"     // optional: Bitiş tarihi
  },
  "geoNear": {
    "lon": 29.0,             // optional: Boylam koordinatı
    "lat": 41.0,             // optional: Enlem koordinatı
    "radiusMeter": 100000    // optional: Yarıçap (metre)
  },
  "sort": "date_-1",         // optional: date_1, date_-1, mag_1, mag_-1
  "skip": 0,                 // optional: Sayfalama offset
  "limit": 10                 // optional: Max kayıt (default: 10, max: 100 - otomatik sınırlanır)
}
```

**Örnek 1 - Büyüklük Filtreleme:**
```bash
curl -X POST https://api.orhanaydogdu.com.tr/deprem/data/search \
  -H "Content-Type: application/json" \
  -d '{
    "match": {"mag": 4.5},
    "sort": "mag_-1",
    "limit": 10
  }'
```

**Örnek 2 - Konum Bazlı Arama (İstanbul çevresinde 200km):**
```bash
curl -X POST https://api.orhanaydogdu.com.tr/deprem/data/search \
  -H "Content-Type: application/json" \
  -d '{
    "geoNear": {
      "lon": 28.9784,
      "lat": 41.0082,
      "radiusMeter": 200000
    },
    "match": {"mag": 3.0},
    "limit": 20
  }'
```

**Örnek 3 - Şehir ve Tarih Filtresi:**
```bash
curl -X POST https://api.orhanaydogdu.com.tr/deprem/data/search \
  -H "Content-Type: application/json" \
  -d '{
    "match": {
      "cityCode": 6,
      "mag": 3.0,
      "date_starts": "2024-01-01 00:00:00",
      "date_ends": "2024-01-31 23:59:59"
    },
    "sort": "date_-1"
  }'
```

**Örnek 4 - Kaynak Filtresi (Sadece AFAD):**
```bash
curl -X POST https://api.orhanaydogdu.com.tr/deprem/data/search \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "afad",
    "match": {"mag": 4.0},
    "limit": 30
  }'
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "serverloadms": 35,
  "result": [
    {
      "earthquake_id": "VWX901YZA234",
      "provider": "kandilli",
      "title": "MARMARA DENIZI",
      "mag": 4.8,
      "depth": 12.3,
      "geojson": {
        "type": "Point",
        "coordinates": [28.5, 40.8]
      },
      "location_properties": {
        "closestCity": {
          "name": "İstanbul",
          "cityCode": 34,
          "distance": 45230.8,
          "population": 15840900
        },
        "closestCities": [
          {"name": "İstanbul", "cityCode": 34, "distance": 45230.8},
          {"name": "Tekirdağ", "cityCode": 59, "distance": 67890.2}
        ],
        "airports": [
          {
            "name": "İstanbul Havalimanı",
            "code": "IST",
            "distance": 52340.5
          }
        ]
      },
      "date_time": "2024-01-15 14:23:11"
    }
  ]
}
```

---

### 7️⃣ Tekil Deprem Bilgisi

**Endpoint:** `GET /deprem/data/get`

**Açıklama:** Belirli bir earthquake_id'ye sahip depremin detaylı bilgisi.

**Query Parametreleri:**
- `earthquake_id` (string, required): Deprem ID'si

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/data/get?earthquake_id=EoIrMsfMSC19f"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "result": {
    "earthquake_id": "EoIrMsfMSC19f",
    "provider": "kandilli",
    "title": "CALIS-ELBISTAN (KAHRAMANMARAS)",
    "date": "2023.03.08 02:54:44",
    "mag": 4.2,
    "depth": 5,
    "geojson": {
      "type": "Point",
      "coordinates": [37.0132, 38.1355]
    },
    "location_properties": {
      "closestCity": {
        "name": "Kahramanmaraş",
        "cityCode": 46,
        "distance": 15234.56,
        "population": 1177436
      },
      "epiCenter": {
        "name": "Kahramanmaraş",
        "cityCode": 46,
        "population": 1177436
      },
      "airports": [
        {
          "distance": 66757.09,
          "name": "Kahramanmaraş Havalimanı",
          "code": "KCM"
        }
      ]
    },
    "date_time": "2023-03-08 02:54:44",
    "created_at": 1678240484
  }
}
```

---

### 8️⃣ Şehir Listesi

**Endpoint:** `GET /deprem/statics/cities`

**Açıklama:** Türkiye şehir listesi (plaka kodu, isim, nüfus).

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/statics/cities"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "result": [
    {
      "cityCode": 1,
      "name": "Adana",
      "population": 2258718
    },
    {
      "cityCode": 6,
      "name": "Ankara",
      "population": 5663322
    },
    {
      "cityCode": 34,
      "name": "İstanbul",
      "population": 15840900
    }
  ]
}
```

---

### 9️⃣ API Sağlık Durumu

**Endpoint:** `GET /deprem/status`

**Açıklama:** API durumu, toplam deprem sayısı ve sistem bilgileri.

**Örnek İstek:**
```bash
curl "https://api.orhanaydogdu.com.tr/deprem/status"
```

**Örnek Response:**
```json
{
  "status": true,
  "httpStatus": 200,
  "desc": "kandilli son depremler api service",
  "stats": {
    "total_request_ip": 15,
    "total_request": 230,
    "total_banned_ip": 21
  },
  "nopeRedis": {
    "total": 42,
    "size": "1.2 MB"
  }
}
```

## 💻 Kurulum

### Gereksinimler
- Node.js >= 14.0.0
- MongoDB >= 6.0
- PM2 (opsiyonel, production için)

### Adımlar

1. **Projeyi klonlayın**
```bash
git clone https://github.com/orhanayd/kandilli-rasathanesi-api.git
cd kandilli-rasathanesi-api
```

2. **Bağımlılıkları yükleyin**
```bash
npm install
```

3. **Environment değişkenlerini ayarlayın**
```bash
cp .env.example .env
# .env dosyasını düzenleyin
```

4. **Geliştirme sunucusunu başlatın**
```bash
npm run dev
```

5. **Production için**
```bash
npm start
```


## 🔒 Rate Limiting

API'nin sürdürülebilirliği için rate limiting uygulanmaktadır:

- **Limit**: Dakikada maksimum 40 istek
- **Kapsam**: IP başına
- **Bypass**: `BYPASS_IPS` environment değişkeni ile belirli IP'ler muaf tutulabilir
- **Hata Kodu**: 429 (Too Many Requests)

> **Dikkat: IP Engelleme Politikasi**
>
> API'nin tum kullanicilar icin adil ve kesintisiz bir sekilde hizmet verebilmesi amaciyla, dakikada 40 istek limitini asan IP adresleri icin asagidaki yaptirimlari uygulamaktayiz:
>
> 1. **Otomatik IP Ban**: Dakikada 40 istek limitini asan IP adresleri **otomatik olarak 3 gun (72 saat) sureyle** engellenir. Bu sure zarfinda API'ye yapilan tum istekler **403 (Forbidden)** hatasi ile reddedilir. Engelleme suresi dolduğunda ban otomatik olarak kalkar.
>
> 2. **Kalici Engelleme**: Limiti tekrar tekrar asan veya sistematik olarak ihlal eden IP adresleri **kalici olarak** engellenir. Kalici engelleme durumunda API'ye erisim tamamen kapatilir.
>
> Lutfen uygulamalarinizi rate limit sinirlarina uygun sekilde tasarlayin. Istek araliklarinizi duzenleyerek ve onbellekleme mekanizmalari kullanarak bu sinirin altinda kalmaniz mumkundur. Engellenme durumunda veya ozel ihtiyaclariniz icin **info@orhanaydogdu.com.tr** adresi uzerinden bizimle iletisime gecebilirsiniz.

## 📜 Lisans ve Uyarılar

### 🔒 Lisans Koşulları

Bu proje **özel lisans** altında lisanslanmıştır:

- ✅ **Ücretsiz Kullanım**: Eğitim, araştırma ve kişisel amaçlar için
- ❌ **Ticari Kullanım**: Yazılı izin gerektirir
- 📄 **Atribusyon**: Projenizde "Kandilli Rasathanesi API" referansı gerekli
- 🚫 **Veri Ticareti**: Deprem verilerinin satışı yasaktır

### ⚠️ Ticari Kullanım Uyarısı

> **ÖNEMLİ UYARI**:
> 1. Söz konusu bilgi, veri ve haritalar Boğaziçi Üniversitesi Rektörlüğü'nün yazılı izni olmadan ticari amaçlı kullanılamaz.
> 2. API'nin ticari kullanımı için info@orhanaydogdu.com.tr adresinden detaylı bilgi ve izin alınmalıdır.
> 3. İzinsiz ticari kullanım yasal işleme tabi olabilir.

### 📝 Lisans Detayları

Tam lisans metni için [LICENSE](LICENSE) dosyasına bakınız.

### İletişim
- 📧 Email: info@orhanaydogdu.com.tr
- 💬 [Whatsapp Topluluğu](https://chat.whatsapp.com/KOkShApC4lc9HlMtFFN3kQ)
- 🐛 [GitHub Issues](https://github.com/orhanayd/kandilli-rasathanesi-api/issues)

## 🙏 Teşekkürler

- Boğaziçi Üniversitesi Kandilli Rasathanesi ve Deprem Araştırma Enstitüsü'ne veri sağladıkları için teşekkürler.
- AFAD (Afet ve Acil Durum Yönetimi Başkanlığı)'a veri sağladıkları için teşekkürler.
- Bu API'yi kullanan ve geri bildirim sağlayan tüm geliştiricilere teşekkürler.

---

<div align="center">

**Made with ❤️ by [Orhan Aydoğdu](https://github.com/orhanayd)**

</div>

================================================
FILE: biome.jsonc
================================================
{
	"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
	"assist": { "actions": { "source": { "organizeImports": "on" } } },
	"files": {
		"includes": ["**"]
	},
	"linter": {
		"enabled": true,
		"rules": {
			"recommended": true,
			"performance": {
				"noDelete": "off"
			},
			"complexity": {
				"useLiteralKeys": "off"
			},
			"correctness": {
				"noUndeclaredVariables": "error"
			},
			"style": {
				"useNumberNamespace": "off",
				"useDefaultParameterLast": "off"
			},
			"suspicious": {
				"noExplicitAny": "off"
			}
		}
	},
	"javascript": {
		"formatter": {
			"jsxQuoteStyle": "single",
			"quoteStyle": "single",
			"lineWidth": 150
		}
	}
}


================================================
FILE: index-internal.js
================================================
const express = require('express');
const cors = require('cors');
const logger = require('morgan');

const app = express();
const helpers = require('./src/helpers');
const db = require('./src/db');
const port = 7980;

// connectors for db, cache etc.;
const cloudflare = require('./src/helpers/cloudflare');

async function connector() {
	await db.MongoDB.connector();
	await cloudflare.init();
}

connector();

app.set('trust proxy', true);
app.use((req, _res, next) => {
	const ipFromExpress = req.ip;
	const ipFromCF = req.headers['cf-connecting-ip'];
	req.ip = ipFromCF || ipFromExpress;
	next();
});

logger.token('real-ip', (req) => req.ip);
logger.token('datetime', () => new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'));

app.use(cors());
app.use(logger(':datetime - :real-ip - :method :url :status :response-time ms'));
app.use(express.json({ limit: 10000 }));
app.use(express.urlencoded({ extended: false }));

// Internal routes only
const intRoutes = require('./src/routes/int');
app.use('/deprem/int', intRoutes);

// Health check endpoint for internal service
app.get('/health', (_req, res) => {
	res.json({
		status: true,
		service: 'kandilli-internal',
		port: port,
		timestamp: new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'),
	});
});

// Error handling middleware
app.use((err, _req, res, next) => {
	if (err instanceof SyntaxError && err.status === 400 && 'body' in err) {
		console.error(err);
		const response = {
			status: false,
			desc: err.message || '',
			httpStatus: err.httpStatus || 500,
		};
		return res.status(response.httpStatus).send(response);
	}
	return next();
});

// 404 handler
app.use((_req, res) => {
	const response = {
		httpStatus: 404,
		status: false,
		desc: 'No endpoint!',
	};
	return res.status(response.httpStatus).json(response);
});

app.listen(port, () => {
	console.log(`Kandilli Internal Service - PORT: ${port}`);
});


================================================
FILE: index.js
================================================
const express = require('express');
const cors = require('cors');
const logger = require('morgan');
const expressJSDocSwagger = require('express-jsdoc-swagger');

const app = express();
const middlewares = require('./src/middlewares');
const helpers = require('./src/helpers');
const db = require('./src/db');
const constants = require('./src/constants');
const port = 7979;

// connectors for db, cache etc.;
const repositories = require('./src/repositories');

const cloudflare = require('./src/helpers/cloudflare');

async function connector() {
	await db.MongoDB.connector();
	await repositories.ban.createIndex();
	await repositories.rate.createIndex();
	await cloudflare.init();
}

connector();

app.set('trust proxy', true);
app.use((req, _res, next) => {
	const ipFromExpress = req.ip;
	const ipFromCF = req.headers['cf-connecting-ip'];
	req.ip = ipFromCF || ipFromExpress;
	next();
});

logger.token('real-ip', (req) => req.ip);
logger.token('datetime', () => new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'));

app.use(cors());
app.use(logger(':datetime - :real-ip - :method :url :status :response-time ms'));
app.use(middlewares.ban);
app.use(express.json({ limit: 10000 }));
app.use(express.urlencoded({ extended: false }));

// Add timeout middleware (configurable via REQUEST_TIMEOUT_MS env var, default 30 seconds)
app.use(middlewares.timeout(constants.CONFIG.REQUEST_TIMEOUT_MS));

expressJSDocSwagger(app)(middlewares.swagger);
app.use(express.json({ limit: '50mb' }));

//routes;
app.use(require('./src/routes'));
app.use((err, _req, res, next) => {
	if (err instanceof SyntaxError && err.status === 400 && 'body' in err) {
		console.error(err);
		const response = {
			status: false,
			desc: err.message || '',
			httpStatus: err.httpStatus || 500,
		};
		return res.status(response.httpStatus).send(response); // Bad request
	}
	return next();
});

/**
 * 404
 */
app.use((_req, res) => {
	const response = {
		httpStatus: 404,
		status: false,
	};
	response.desc = 'No endpoint!';
	return res.status(response.httpStatus).json(response);
});

app.listen(port, () => {
	console.log(`Kandilli Rasathanesi API Service API - PORT: ${port}`);
});


================================================
FILE: package.json
================================================
{
	"name": "kandilli-service-api",
	"version": "1.0.0",
	"description": "Kandilli Rasathanesi'nin yayınladığı son depremler listesi için API. (last minute earthquakes in turkey parsing from Kandilli Observatory XML)",
	"main": "index.js",
	"scripts": {
		"start": "NODE_ENV=PROD pm2 start index.js --name kandilli-service -i 1 --max-memory-restart 512M",
		"start:internal": "NODE_ENV=PROD pm2 start index-internal.js --name kandilli-internal -i 1 --max-memory-restart 1024M",
		"start:all": "npm run start && npm run start:internal",
		"dev": "NODE_ENV=DEV pm2 start index.js --name kandilli-service-dev -i 1 --watch --max-memory-restart 512M",
		"dev:internal": "NODE_ENV=DEV pm2 start index-internal.js --name kandilli-internal-dev -i 1 --watch --max-memory-restart 1024M",
		"dev:all": "npm run dev && npm run dev:internal",
		"test": "echo \"Error: no test specified\" && exit 1"
	},
	"repository": {
		"type": "git",
		"url": "git+https://github.com/orhanayd/kandilli-rasathanesi-api.git"
	},
	"author": "",
	"license": "SEE LICENSE IN LICENSE",
	"bugs": {
		"url": "https://github.com/orhanayd/kandilli-rasathanesi-api/issues"
	},
	"homepage": "https://github.com/orhanayd/kandilli-rasathanesi-api#readme",
	"dependencies": {
		"@turf/turf": "^7.3.4",
		"axios": "^1.13.5",
		"cors": "^2.8.6",
		"dotenv": "^17.3.1",
		"express": "^5.2.1",
		"express-jsdoc-swagger": "^1.8.0",
		"fast-xml-parser": "^5.3.7",
		"kk-date": "^4.1.2",
		"md5": "^2.3.0",
		"mongodb": "^7.1.0",
		"morgan": "^1.10.1",
		"nope-id": "1.0.0",
		"nope-redis": "^2.0.4"
	},
	"devDependencies": {
		"@biomejs/biome": "2.3.15"
	}
}


================================================
FILE: src/constants/errors.js
================================================
function paramsAdder(thiss, params) {
	if (params.length === 0) {
		return thiss;
	}
	for (const key in params[0]) {
		thiss[key] = params[0][key];
	}
	return thiss;
}

class ServerError extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, ServerError);
		}
		this.name = 'ServerError';
		this.operation = `${operation}`;
		this.errorCode = 1;
		this.httpStatus = 500;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class MissingField extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, MissingField);
		}
		this.name = 'MissingField';
		this.operation = `${operation}`;
		this.httpStatus = 406;
		this.errorCode = 2;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class UnAuth extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, UnAuth);
		}
		this.name = 'UnAuth';
		this.operation = `${operation}`;
		this.errorCode = 3;
		this.message = `${message}`;
		this.httpStatus = 401;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class Forbidden extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, Forbidden);
		}
		this.name = 'Forbidden';
		this.operation = `${operation}`;
		this.errorCode = 4;
		this.httpStatus = 403;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class WrongParam extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, WrongParam);
		}
		this.name = 'WrongParam';
		this.operation = `${operation}`;
		this.errorCode = 5;
		this.httpStatus = 422;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class TooManyRequest extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, TooManyRequest);
		}
		this.name = 'TooManyRequest';
		this.operation = `${operation}`;
		this.errorCode = 7;
		this.httpStatus = 429;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}

class NotFound extends Error {
	constructor(operation = '', message = '', ...params) {
		super(...params);
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, NotFound);
		}
		this.name = 'NotFound';
		this.operation = `${operation}`;
		this.errorCode = 8;
		this.httpStatus = 404;
		this.message = `${message}`;
		this.date = new Date();
		paramsAdder(this, params);
	}
}
module.exports = {
	ServerError,
	MissingField,
	UnAuth,
	Forbidden,
	WrongParam,
	TooManyRequest,
	NotFound,
};


================================================
FILE: src/constants/index.js
================================================
require('dotenv').config();

module.exports.CONFIG = {
	CRON_KEY: process.env.CRON_KEY,
	STATS_KEY: process.env.STATS_KEY,
	BYPASS_IPS: process.env.BYPASS_IPS.split(','),
	REQUEST_TIMEOUT_MS: parseInt(process.env.REQUEST_TIMEOUT_MS, 10) || 30000,
	CLOUDFLARE_ACCOUNT_ID: process.env.CLOUDFLARE_ACCOUNT_ID || '',
	CLOUDFLARE_API_KEY: process.env.CLOUDFLARE_API_KEY || '',
	CLOUDFLARE_EMAIL: process.env.CLOUDFLARE_EMAIL || '',
	CLOUDFLARE_LIST_ID: process.env.CLOUDFLARE_LIST_ID || '',
};

module.exports.STAGES = {
	DEV: 'DEV',
	PROD: 'PROD',
};

module.exports.stats = {
	dateBy: 'dateBy',
	hourBy: 'hourBy',
	epiCenterBy: 'epiCenterBy',
	airportsBy: 'airportsBy',
	magBy: 'magBy',
	dateByEarthQuakes: 'dateByEarthQuakes',
};

module.exports.statsRange = {
	TODAY: 'TODAY',
	YESTERDAY: 'YESTERDAY',
	LAST3DAYS: 'LAST3DAYS',
	LAST5DAYS: 'LAST5DAYS',
	LAST7DAYS: 'LAST7DAYS',
	THISMONTH: 'THISMONTH',
	LASTMONTH: 'LASTMONTH',
	LAST2MONTHS: 'LAST2MONTHS',
	LAST3MONTHS: 'LAST3MONTHS',
	DATE: 'DATE',
};

module.exports.providers = {
	KANDILLI: 'kandilli',
	AFAD: 'afad',
};

module.exports.providersList = Object.values(this.providers);

module.exports.response = () => {
	return {
		status: true,
		httpStatus: 200,
		desc: '',
	};
};

module.exports.errors = require('./errors');


================================================
FILE: src/controller/afad/index.js
================================================
const helpers = require('../../helpers');
const repositories = require('../../repositories');
const constants = require('../../constants');

module.exports.live = async (req, res, next) => {
	const response = constants.response();

	try {
		const query = {
			skip: 0,
			limit: 50,
		};
		await repositories.rate.check(req.ip);

		if (req.query.skip && typeof req.query.skip === 'string') {
			query.skip = parseInt(req.query.skip, 10);
			if (Number.isNaN(query.skip)) {
				throw new constants.errors.WrongParam('afad.live', 'isNaN skip !');
			}
		}

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('afad.live', 'isNaN limit !');
			}
			if (query.limit > 100) {
				query.limit = 100;
			}
		}

		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.archive = async (req, res, next) => {
	const response = constants.response();

	try {
		const query = {
			skip: 0,
			limit: 50,
			date: new helpers.date.kk_date().add(-24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
			date_end: new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'),
		};

		await repositories.rate.check(req.ip);

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('afad.archive', 'isNaN limit !');
			}
			if (query.limit > 100) {
				query.limit = 100;
			}
		}
		if (req.query.skip && typeof req.query.skip === 'string') {
			query.skip = parseInt(req.query.skip, 10);
			if (Number.isNaN(query.skip)) {
				throw new constants.errors.WrongParam('afad.archive', 'isNaN skip !');
			}
		}

		if (req.query.date && typeof req.query.date === 'string') {
			req.query.date = req.query.date.toString();
			if (!helpers.date.kk_date.isValid(req.query.date, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('afad.archive', 'date wrong param !');
			}
			query.date = new helpers.date.kk_date(req.query.date).startOf('days').format('YYYY-MM-DD HH:mm:ss');
		}
		if (req.query.date_end && typeof req.query.date_end === 'string') {
			req.query.date_end = req.query.date_end.toString();
			if (!helpers.date.kk_date.isValid(req.query.date_end, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('afad.archive', 'date_end wrong param !');
			}
			query.date_end = new helpers.date.kk_date(req.query.date_end).endOf('days').format('YYYY-MM-DD HH:mm:ss');
		}

		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};


================================================
FILE: src/controller/data/index.js
================================================
const helpers = require('../../helpers');
const constants = require('../../constants');
const repositories = require('../../repositories');

module.exports.statsGeneral = (req, res, next) => {
	const response = constants.response();
	try {
		const body = {
			match: {
				date_time: {},
			},
		};
		body.match.provider = constants.providers.KANDILLI;
		body.provider = constants.providers.KANDILLI;

		if (typeof req.body.range !== 'string') {
			throw new constants.errors.MissingField('data.statsGeneral', 'range missing !');
		}
		if (req.body.range in constants.statsRange === false) {
			throw new constants.errors.WrongParam('data.statsGeneral', 'range wrong !');
		}
		body.range = req.body.range;
		if (req.body.range === 'DATE') {
			try {
				body.date = JSON.parse(req.body.date);
			} catch (error) {
				helpers.errorLogger(error);
				throw new constants.errors.ServerError('data.statsGeneral', 'req body date parse error !');
			}
		}
		if (typeof req.body.provider === 'string') {
			if (req.body.provider in constants.providers === false) {
				throw new constants.errors.WrongParam('data.statsGeneral', 'provider wrong !');
			}
			body.match.provider = req.body.provider.toString();
			body.provider = body.match.provider;
		}

		if (typeof req.body.epiCenter === 'string') {
			body.match['location_properties.epiCenter.name'] = req.body.epiCenter.toString();
		}

		if (typeof req.body.types === 'undefined' || Array.isArray(req.body.types) === false) {
			req.body.types = [];
		}
		body.types = [];
		const type_length = req.body.types.length;
		for (let index = 0; index < type_length; index++) {
			if (req.body.types[index] in constants.stats === false) {
				throw new constants.errors.WrongParam('data.statsGeneral', 'type value wrong !');
			}
			body.types.push(req.body.types[index].toString());
		}

		switch (req.body.range) {
			case constants.statsRange.TODAY:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.YESTERDAY:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-1, 'days').startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().add(-1, 'days').endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LAST3DAYS:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-3, 'days').startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LAST5DAYS:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-5, 'days').startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LAST7DAYS:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-7, 'days').startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.THISMONTH:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().startOf('months').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('months').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LASTMONTH:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-1, 'months').startOf('months').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().add(-1, 'months').endOf('months').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LAST2MONTHS:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-2, 'months').startOf('months').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('months').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.LAST3MONTHS:
				body.match.date_time = {
					$gte: new helpers.date.kk_date().add(-3, 'months').startOf('months').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date().endOf('months').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			case constants.statsRange.DATE: {
				const total = new helpers.date.kk_date(body.date.starts_date).diff(body.date.ends_date, 'days');
				if (total > 7) {
					throw new constants.errors.WrongParam('data.statsGeneral', 'date range cant be big than 7 days !');
				}
				body.match.date_time = {
					$gte: new helpers.date.kk_date(body.date.starts_date).startOf('days').format('YYYY-MM-DD HH:mm:ss'),
					$lte: new helpers.date.kk_date(body.date.ends_date).endOf('days').format('YYYY-MM-DD HH:mm:ss'),
				};
				break;
			}
			default:
				throw new constants.errors.WrongParam('data.statsGeneral', 'no range type !');
		}

		res.locals.body = body;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.search = async (req, res, next) => {
	const response = constants.response();
	try {
		await repositories.rate.check(req.ip);

		const body = {
			skip: 0,
			limit: 10,
			geoNear: null,
			match: {},
			sort: { date_time: -1 },
		};

		if (typeof req.body.skip === 'number') {
			body.skip = parseInt(req.body.skip, 10);
			if (Number.isNaN(body.skip)) {
				throw new constants.errors.WrongParam('data.search', 'isNaN skip !');
			}
		}

		if (typeof req.body.limit === 'number') {
			body.limit = parseInt(req.body.limit, 10);
			if (Number.isNaN(body.limit)) {
				throw new constants.errors.WrongParam('data.search', 'isNaN limit !');
			}
			if (body.limit > 100) {
				body.limit = 100;
			}
		}

		if (typeof req.body.geoNear === 'object') {
			if (typeof req.body.geoNear.lon !== 'number' && typeof req.body.geoNear.lat !== 'number') {
				throw new constants.errors.WrongParam('data.search', 'lat or lon is not a number !');
			}
			if (typeof req.body.geoNear.radiusMeter !== 'number') {
				req.body.geoNear.radiusMeter = parseInt(req.body.geoNear.radiusMeter, 10);
				if (Number.isNaN(req.body.geoNear.radiusMeter)) {
					throw new constants.errors.WrongParam('data.search', 'radiusMeter isNaN !');
				}
			}
			body.geoNear = {
				geojson: { $geoWithin: { $centerSphere: [[], 0] } },
			};
			body.geoNear.geojson['$geoWithin']['$centerSphere'][0][0] = parseFloat(req.body.geoNear.lon);
			body.geoNear.geojson['$geoWithin']['$centerSphere'][0][1] = parseFloat(req.body.geoNear.lat);
			body.geoNear.geojson['$geoWithin']['$centerSphere'][1] = helpers.metersToRadios(req.body.geoNear.radiusMeter);
			if (body.geoNear.geojson['$geoWithin']['$centerSphere'][1] === false) {
				throw new constants.errors.WrongParam('data.search', 'meters is false !');
			}
		}

		if (typeof req.body.sort === 'string') {
			if (req.body.sort === 'date_1') {
				body.sort = { date_time: 1 };
			} else if (req.body.sort === 'date_-1') {
				body.sort = { date_time: -1 };
			} else if (req.body.sort === 'mag_1') {
				body.sort = { mag: 1 };
			} else if (req.body.sort === 'mag_-1') {
				body.sort = { mag: -1 };
			}
		}

		if (typeof req.body.provider === 'string' && constants.providersList.includes(req.body.provider)) {
			body.match.provider = req.body.provider.toString();
		}

		if (typeof req.body.match === 'object') {
			if (req.body.match.mag && typeof req.body.match.mag === 'number') {
				body.match.mag = { $gte: parseInt(req.body.match.mag, 10) };
				if (Number.isNaN(body.match.mag['$gte'])) {
					throw new constants.errors.WrongParam('data.search', 'isNaN mag !');
				}
			}
			if (typeof req.body.match.date_starts === 'string' && typeof req.body.match.date_ends === 'string') {
				if (
					!helpers.date.kk_date.isValid(req.body.match.date_starts, 'YYYY-MM-DD HH:mm:ss') ||
					!helpers.date.kk_date.isValid(req.body.match.date_ends, 'YYYY-MM-DD HH:mm:ss')
				) {
					throw new constants.errors.WrongParam('data.search', 'date_starts or date_ends is not valid !');
				}
				body.match.date_time = {
					$gte: req.body.match.date_starts.toString(),
					$lte: req.body.match.date_ends.toString(),
				};
			}

			if (typeof req.body.match.cityCode === 'number') {
				body.match['location_properties.epiCenter.cityCode'] = parseInt(req.body.match.cityCode, 10);
				if (Number.isNaN(body.match['location_properties.epiCenter.cityCode'])) {
					throw new constants.errors.WrongParam('data.search', 'cityCode isNaN !');
				}
			}
		}

		res.locals.body = body;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.get = async (req, res, next) => {
	const response = constants.response();

	try {
		await repositories.rate.check(req.ip);

		const query = {};

		if (typeof req.query.earthquake_id === 'undefined') {
			throw new constants.errors.MissingField('data.search', 'earthquake_id missing param !');
		}
		query.earthquake_id = req.query.earthquake_id.toString();
		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.sitemap = (req, res, next) => {
	const response = constants.response();
	try {
		const query = {
			page: 1,
			limit: 5000,
		};

		if (req.query.page && typeof req.query.page === 'string') {
			query.page = parseInt(req.query.page, 10);
			if (Number.isNaN(query.page) || query.page < 1) {
				throw new constants.errors.WrongParam('data.sitemap', 'page wrong param !');
			}
		}

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('data.sitemap', 'isNaN limit !');
			}
			if (query.limit > 10000) {
				query.limit = 10000;
			}
		}

		query.skip = (query.page - 1) * query.limit;
		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.allProviders = async (req, res, next) => {
	const response = constants.response();
	try {
		const query = {
			skip: 0,
			limit: 50,
			date: new helpers.date.kk_date().add(-24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
			date_end: new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'),
		};

		await repositories.rate.check(req.ip);

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('afad.archive', 'isNaN limit !');
			}
			if (query.limit > 100) {
				query.limit = 100;
			}
		}
		if (req.query.skip && typeof req.query.skip === 'string') {
			query.skip = parseInt(req.query.skip, 10);
			if (Number.isNaN(query.skip)) {
				throw new constants.errors.WrongParam('afad.archive', 'isNaN skip !');
			}
		}

		if (req.query.date && typeof req.query.date === 'string') {
			req.query.date = req.query.date.toString();
			if (!helpers.date.kk_date.isValid(req.query.date, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('afad.archive', 'date wrong param !');
			}
			query.date = new helpers.date.kk_date(req.query.date).startOf('days').format('YYYY-MM-DD HH:mm:ss');
		}
		if (req.query.date_end && typeof req.query.date_end === 'string') {
			req.query.date_end = req.query.date_end.toString();
			if (!helpers.date.kk_date.isValid(req.query.date_end, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('afad.archive', 'date_end wrong param !');
			}
			query.date_end = new helpers.date.kk_date(req.query.date_end).endOf('days').format('YYYY-MM-DD HH:mm:ss');
		}

		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};


================================================
FILE: src/controller/index.js
================================================
module.exports.kandilli = require('./kandilli');
module.exports.data = require('./data');
module.exports.afad = require('./afad');


================================================
FILE: src/controller/kandilli/index.js
================================================
const helpers = require('../../helpers');
const repositories = require('../../repositories');
const constants = require('../../constants');

module.exports.live = async (req, res, next) => {
	const response = constants.response();

	try {
		const query = {
			skip: 0,
			limit: 50,
		};
		await repositories.rate.check(req.ip);

		if (req.query.skip && typeof req.query.skip === 'string') {
			query.skip = parseInt(req.query.skip, 10);
			if (Number.isNaN(query.skip)) {
				throw new constants.errors.WrongParam('kandilli.live', 'isNaN skip !');
			}
		}

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('kandilli.live', 'isNaN limit !');
			}
			if (query.limit > 100) {
				query.limit = 100;
			}
		}

		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};

module.exports.archive = async (req, res, next) => {
	const response = constants.response();

	try {
		const query = {
			skip: 0,
			limit: 50,
			date: new helpers.date.kk_date().add(-24, 'hours').format('YYYY-MM-DD HH:mm:ss'),
			date_end: new helpers.date.kk_date().format('YYYY-MM-DD HH:mm:ss'),
		};

		await repositories.rate.check(req.ip);

		if (req.query.limit && typeof req.query.limit === 'string') {
			query.limit = parseInt(req.query.limit, 10);
			if (Number.isNaN(query.limit)) {
				throw new constants.errors.WrongParam('kandilli.archive', 'isNaN limit !');
			}
			if (query.limit > 100) {
				query.limit = 100;
			}
		}
		if (req.query.skip && typeof req.query.skip === 'string') {
			query.skip = parseInt(req.query.skip, 10);
			if (Number.isNaN(query.skip)) {
				throw new constants.errors.WrongParam('kandilli.archive', 'isNaN skip !');
			}
		}

		if (req.query.date && typeof req.query.date === 'string') {
			req.query.date = req.query.date.toString();
			if (!helpers.date.kk_date.isValid(req.query.date, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('kandilli.archive', 'date wrong param !');
			}
			query.date = new helpers.date.kk_date(req.query.date).startOf('days').format('YYYY-MM-DD HH:mm:ss');
		}
		if (req.query.date_end && typeof req.query.date_end === 'string') {
			req.query.date_end = req.query.date_end.toString();
			if (!helpers.date.kk_date.isValid(req.query.date_end, 'YYYY-MM-DD')) {
				throw new constants.errors.WrongParam('kandilli.archive', 'date_end wrong param !');
			}
			query.date_end = new helpers.date.kk_date(req.query.date_end).endOf('days').format('YYYY-MM-DD HH:mm:ss');
		}

		res.locals.query = query;
		return next();
	} catch (error) {
		helpers.errorLogger(error);
		response.desc = error.message || '';
		response.httpStatus = error.httpStatus || 500;
		response.status = false;
		return res.status(response.httpStatus).json(response);
	}
};


================================================
FILE: src/db/MongoDB.js
================================================
/**
 * Created from @orhanayd
 * For MongoDB easy use!
 */

const { MongoClient, ObjectId } = require('mongodb');
const { customAlphabet } = require('nope-id');
const constants = require('../constants');

/*
 * @class
 * @alias module:Bar
 * @param {connection} MongoClient
 */
let connection;
let retry = 0;
const maxRetry = 3;

module.exports.connector = async (connectionString = null) => {
	if (retry < maxRetry) {
		try {
			retry++;
			const uri = connectionString
				? connectionString
				: `mongodb://${process.env.MONGODB_USER}:${encodeURIComponent(process.env.MONGODB_PASS)}@${process.env.MONGODB_HOST}:${process.env.MONGODB_PORT}/admin`;
			const mongoClient = new MongoClient(uri, {
				minPoolSize: 1,
				maxPoolSize: 3,
				connectTimeoutMS: 5 * 1000,
			});
			connection = await mongoClient.connect();
			console.log('MongoDB -> Connected');
			return connection;
		} catch (error) {
			console.error(error);
		}
	}
	if (maxRetry >= retry) {
		console.error('MongoDB -> NOT CONNECT');
	}
	connection = false;
};

/**
 * MongoDB CRUD Operation class
 */
class CRUD {
	/**
	 * constructor for mongodb
	 *
	 * @param {String} db
	 * @param {String} collection
	 */
	constructor(db, collection) {
		if (!connection) {
			throw new constants.errors.ServerError('db.connector', 'db connection error !');
		}
		this.db = db;
		this.collection = collection;
		if (process.env.NODE_ENV === constants.STAGES.DEV) {
			this.db = `dev_${this.db}`;
		}
	}

	/**
	 *
	 * Find operator for mongodb
	 *
	 * @param {Object} query
	 * @param {Array} limit
	 * @param {Object} project
	 * @param {Object} sort
	 * @param {Object} options
	 * @returns {Promise<Array>}
	 */
	async find(query = {}, limit = [0, 10], project = {}, sort = {}, collation = {}) {
		return await connection
			.db(this.db)
			.collection(this.collection)
			.find(query)
			.sort(sort)
			.collation(collation)
			.skip(limit[0])
			.limit(limit[1])
			.project(project)
			.toArray();
	}

	/**
	 * Count data with query
	 *
	 * @param {Object} query
	 * @returns
	 */
	async count(query = {}) {
		return await connection.db(this.db).collection(this.collection).countDocuments(query);
	}

	/**
	 * mongodb insert operator for object
	 *
	 * @param {Object} data
	 * @returns
	 */
	async insert(data) {
		await connection.db(this.db).collection(this.collection).insertOne(data);
		return true;
	}

	/**
	 * mongodb insert operator for array
	 *
	 * @param {Array} data
	 * @returns
	 */
	async insertMany(data) {
		if (Array.isArray(data) === false) {
			return false;
		}
		await connection.db(this.db).collection(this.collection).insertMany(data);
		return true;
	}

	/**
	 * mongodb update operator for multiple or single
	 *
	 * @param {Object} query
	 * @param {Object} update
	 * @param {Boolean} multiple
	 * @returns
	 */
	async update(query = null, update = null, multiple = false, options = {}) {
		if (multiple) {
			await connection.db(this.db).collection(this.collection).updateMany(query, update, options);
		} else {
			await connection.db(this.db).collection(this.collection).updateOne(query, update, options);
		}
		return true;
	}

	/**
	 * mongodb delete operation for delete multiple document
	 *
	 * @param {Object} query
	 * @returns
	 */
	async delete(query) {
		await connection.db(this.db).collection(this.collection).deleteMany(query);
		return true;
	}

	/**
	 * mongodb aggregation pipelines
	 *
	 * @param {Object} pipeline aggregation pipeline stages
	 */
	async aggregate(pipeline) {
		return await connection.db(this.db).collection(this.collection).aggregate(pipeline, { allowDiskUse: true }).toArray();
	}

	/**
	 * mongodb get collection list
	 *
	 * @param {Object} pipeline aggregation pipeline stages
	 */
	async listCollection() {
		return await connection.db(this.db).listCollections().toArray();
	}

	async createIndex(data, options = {}) {
		return await connection.db(this.db).collection(this.collection).createIndex(data, options);
	}
}

module.exports.id = customAlphabet('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz', 13);
module.exports.CRUD = CRUD;
module.exports.ObjectId = ObjectId;


================================================
FILE: src/db/index.js
================================================
module.exports.MongoDB = require('./MongoDB');
module.exports.nopeRedis = require('./nopeRedis');
module.exports.locations = require('./locations');
module.exports.populations = require('./populations');


================================================
FILE: src/db/locations/airports.js
================================================
const airports = [
	{
		name: 'Atatürk Havalimanı',
		number: 34,
		code: 'IST',
		city: 'İstanbul',
		coordinates: {
			type: 'Point',
			coordinates: [28.819198608398438, 40.9788613095528],
		},
	},
	{
		name: 'İstanbul Havalimanı',
		number: 34,
		code: 'IST',
		city: 'İstanbul',
		coordinates: {
			type: 'Point',
			coordinates: [28.69640724873047, 41.26284442553171],
		},
	},
	{
		name: 'Sabiha Gökçen Havalimanı',
		number: 34,
		code: 'SAW',
		city: 'İstanbul',
		coordinates: {
			type: 'Point',
			coordinates: [29.30843353271484, 40.89976036643661],
		},
	},
	{
		name: 'Gökçeada Havalimanı',
		number: 17,
		code: 'GKD',
		city: 'Çanakkale',
		coordinates: {
			type: 'Point',
			coordinates: [25.8837, 40.1996],
		},
	},
	{
		name: 'Çanakkale Havalimanı',
		number: 17,
		code: 'CKZ',
		city: 'Çanakkale',
		coordinates: {
			type: 'Point',
			coordinates: [26.4268, 40.1377],
		},
	},
	{
		name: 'Çiğli Havalimanı',
		number: 35,
		code: 'IGL',
		city: 'İzmir',
		coordinates: {
			type: 'Point',
			coordinates: [27.01, 38.513],
		},
	},
	{
		name: 'Adnan Menderes Havalimanı',
		number: 35,
		code: 'ADB',
		city: 'İzmir',
		coordinates: {
			type: 'Point',
			coordinates: [27.157, 38.2924],
		},
	},
	{
		name: 'Tekirdağ Çorlu Havalimanı',
		number: 59,
		code: 'TEQ',
		city: 'Tekirdağ',
		coordinates: {
			type: 'Point',
			coordinates: [27.921, 41.1392],
		},
	},
	{
		name: 'Bandırma Havalimanı',
		number: 10,
		code: 'BDM',
		city: 'Balıkesir',
		coordinates: {
			type: 'Point',
			coordinates: [27.9777, 40.318],
		},
	},
	{
		name: 'Balıkesir Merkez Havalimanı',
		number: 10,
		code: 'BZI',
		city: 'Balıkesir',
		coordinates: {
			type: 'Point',
			coordinates: [27.926, 39.6193],
		},
	},
	{
		name: 'Balıkesir Koca Seyit Havalimanı',
		number: 10,
		code: 'EDO',
		city: 'Balıkesir',
		coordinates: {
			type: 'Point',
			coordinates: [27.0138, 39.5546],
		},
	},
	{
		name: 'Aydın Çıldır Havalimanı',
		number: 9,
		code: 'CII',
		city: 'Aydın',
		coordinates: {
			type: 'Point',
			coordinates: [27.8885, 37.816],
		},
	},
	{
		name: 'Milas Bodrum Havalimanı',
		number: 48,
		code: 'BJV',
		city: 'Muğla',
		coordinates: {
			type: 'Point',
			coordinates: [27.6643, 37.2506],
		},
	},
	{
		name: 'Bursa Havalimanı',
		number: 16,
		code: 'BTZ',
		city: 'Bursa',
		coordinates: {
			type: 'Point',
			coordinates: [29.0094, 40.2326],
		},
	},
	{
		name: 'Dalaman Havalimanı',
		number: 48,
		code: 'DLM',
		city: 'Muğla',
		coordinates: {
			type: 'Point',
			coordinates: [28.7925, 36.7131],
		},
	},
	{
		name: 'Bursa Yenişehir Havalimanı',
		number: 16,
		code: 'YEI',
		city: 'Bursa',
		coordinates: {
			type: 'Point',
			coordinates: [29.5625, 40.2553],
		},
	},
	{
		name: 'Uşak Havalimanı',
		number: 64,
		code: 'USQ',
		city: 'Uşak',
		coordinates: {
			type: 'Point',
			coordinates: [29.4717, 38.6815],
		},
	},
	{
		name: 'Çardak Havalimanı',
		number: 20,
		code: 'DNZ',
		city: 'Denizli',
		coordinates: {
			type: 'Point',
			coordinates: [29.7013, 37.7856],
		},
	},
	{
		name: 'Cengiz Topel Havalimanı',
		number: 41,
		code: 'KCO',
		city: 'Kocaeli',
		coordinates: {
			type: 'Point',
			coordinates: [30.0833, 40.735],
		},
	},
	{
		name: 'Zafer Havalimanı',
		number: 43,
		code: 'KZR',
		city: 'Kütahya',
		coordinates: {
			type: 'Point',
			coordinates: [30.0183, 39.4242],
		},
	},
	{
		name: 'Eskişehir Anadolu Havalimanı',
		number: 26,
		code: 'AOE',
		city: 'Eskişehir',
		coordinates: {
			type: 'Point',
			coordinates: [30.5193, 39.8098],
		},
	},
	{
		name: 'Afyon Havalimanı',
		number: 3,
		code: 'AFY',
		city: 'Afyon',
		coordinates: {
			type: 'Point',
			coordinates: [30.6011, 38.7264],
		},
	},
	{
		name: 'Süleyman Demirel Havalimanı',
		number: 32,
		code: 'ISE',
		city: 'Isparta',
		coordinates: {
			type: 'Point',
			coordinates: [30.3684, 37.8554],
		},
	},
	{
		name: 'Antalya Havalimanı',
		number: 7,
		code: 'AYT',
		city: 'Antalya',
		coordinates: {
			type: 'Point',
			coordinates: [30.8005, 36.8987],
		},
	},
	{
		name: 'Sivrihisar Havalimanı',
		number: 26,
		code: 'KYA',
		city: 'Eskişehir',
		coordinates: {
			type: 'Point',
			coordinates: [31.3649, 39.4519],
		},
	},
	{
		name: 'Zonguldak Havalimanı',
		number: 67,
		code: 'ONQ',
		city: 'Zonguldak',
		coordinates: {
			type: 'Point',
			coordinates: [32.0855, 41.5046],
		},
	},
	{
		name: 'Esenboğa Havalimanı',
		number: 6,
		code: 'ESB',
		city: 'Ankara',
		coordinates: {
			type: 'Point',
			coordinates: [32.9951, 40.1281],
		},
	},
	{
		name: 'Konya Havalimanı',
		number: 42,
		code: 'KYA',
		city: 'Konya',
		coordinates: {
			type: 'Point',
			coordinates: [32.5619, 37.979],
		},
	},
	{
		name: 'Gazipaşa Havalimanı',
		number: 7,
		code: 'GZP',
		city: 'Antalya',
		coordinates: {
			type: 'Point',
			coordinates: [32.3006, 36.2992],
		},
	},
	{
		name: 'Kastamonu Havalimanı',
		number: 37,
		code: 'KFS',
		city: 'Kastamonu',
		coordinates: {
			type: 'Point',
			coordinates: [33.7958, 41.3142],
		},
	},
	{
		name: 'Nevşehir Kapadokya Havalimanı',
		number: 50,
		code: 'NAV',
		city: 'Nevşehir',
		coordinates: {
			type: 'Point',
			coordinates: [34.5346, 38.7719],
		},
	},
	{
		name: 'Sinop Havalimanı',
		number: 57,
		code: 'NOP',
		city: 'Sinop',
		coordinates: {
			type: 'Point',
			coordinates: [35.0806, 42.0209],
		},
	},
	{
		name: 'Amasya Merzifon Havalimanı',
		number: 5,
		code: 'MZH',
		city: 'Amasya',
		coordinates: {
			type: 'Point',
			coordinates: [35.522, 40.8294],
		},
	},
	{
		name: 'Kayseri Erkilet Havalimanı',
		number: 38,
		code: 'ASR',
		city: 'Kayseri',
		coordinates: {
			type: 'Point',
			coordinates: [35.4954, 38.7704],
		},
	},
	{
		name: 'Şakirpaşa Havalimanı',
		number: 1,
		code: 'ADA',
		city: 'Adana',
		coordinates: {
			type: 'Point',
			coordinates: [35.2804, 36.9822],
		},
	},
	{
		name: 'Samsun Çarşamba Havalimanı',
		number: 55,
		code: 'SZF',
		city: 'Samsun',
		coordinates: {
			type: 'Point',
			coordinates: [36.556, 41.2585],
		},
	},
	{
		name: 'Tokat Havalimanı',
		number: 60,
		code: 'TJK',
		city: 'Tokat',
		coordinates: {
			type: 'Point',
			coordinates: [36.3711, 40.3063],
		},
	},
	{
		name: 'Hatay Havalimanı',
		number: 31,
		code: 'HTY',
		city: 'Hatay',
		coordinates: {
			type: 'Point',
			coordinates: [36.2835, 36.3619],
		},
	},
	{
		name: 'Sivas Nuri Demirağ Havalimanı',
		number: 58,
		code: 'VAS',
		city: 'Sivas',
		coordinates: {
			type: 'Point',
			coordinates: [36.9035, 39.8138],
		},
	},
	{
		name: 'Kahramanmaraş Havalimanı',
		number: 46,
		code: 'KCM',
		city: 'Kahramanmaraş',
		coordinates: {
			type: 'Point',
			coordinates: [36.9473, 37.5374],
		},
	},
	{
		name: 'Gaziantep Havalimanı',
		number: 27,
		code: 'GZT',
		city: 'Gaziantep',
		coordinates: {
			type: 'Point',
			coordinates: [37.4787, 36.9472],
		},
	},
	{
		name: 'Ordu Giresun Havalimanı',
		number: 52,
		code: 'OGU',
		city: 'Ordu',
		coordinates: {
			type: 'Point',
			coordinates: [38.0802, 40.9647],
		},
	},
	{
		name: 'Erhaç Havalimanı',
		number: 44,
		code: 'MLX',
		city: 'Malatya',
		coordinates: {
			type: 'Point',
			coordinates: [38.091, 38.4354],
		},
	},
	{
		name: 'Adıyaman Havalimanı',
		number: 2,
		code: 'ADF',
		city: 'Adıyaman',
		coordinates: {
			type: 'Point',
			coordinates: [38.4691, 37.7314],
		},
	},
	{
		name: 'GAP Havalimanı',
		number: 63,
		code: 'GNY',
		city: 'Şanlıurfa',
		coordinates: {
			type: 'Point',
			coordinates: [38.9022, 37.4456],
		},
	},
	{
		name: 'Elazığ Havalimanı',
		number: 23,
		code: 'EZS',
		city: 'Elazığ',
		coordinates: {
			type: 'Point',
			coordinates: [39.296, 38.6041],
		},
	},
	{
		name: 'Erzincan Havalimanı',
		number: 24,
		code: 'ERC',
		city: 'Erzincan',
		coordinates: {
			type: 'Point',
			coordinates: [39.527, 39.7102],
		},
	},
	{
		name: 'Trabzon Havalimanı',
		number: 61,
		code: 'TZX',
		city: 'Trabzon',
		coordinates: {
			type: 'Point',
			coordinates: [39.7897, 40.9951],
		},
	},
	{
		name: 'Diyarbakır Havalimanı',
		number: 21,
		code: 'DIY',
		city: 'Diyarbakır',
		coordinates: {
			type: 'Point',
			coordinates: [40.201, 37.8939],
		},
	},
	{
		name: 'Mardin Havalimanı',
		number: 47,
		code: 'MQM',
		city: 'Mardin',
		coordinates: {
			type: 'Point',
			coordinates: [40.6319, 37.2234],
		},
	},
	{
		name: 'Bingöl Havalimanı',
		number: 12,
		code: 'BGG',
		city: 'Bingöl',
		coordinates: {
			type: 'Point',
			coordinates: [40.5941, 38.8602],
		},
	},
	{
		name: 'Erzurum Havalimanı',
		number: 25,
		code: 'ERZ',
		city: 'Erzurum',
		coordinates: {
			type: 'Point',
			coordinates: [41.1702, 39.9565],
		},
	},
	{
		name: 'Batman Havalimanı',
		number: 72,
		code: 'BAL',
		city: 'Batman',
		coordinates: {
			type: 'Point',
			coordinates: [41.1166, 37.929],
		},
	},
	{
		name: 'Muş Havalimanı',
		number: 49,
		code: 'MSR',
		city: 'Muş',
		coordinates: {
			type: 'Point',
			coordinates: [41.6612, 38.7478],
		},
	},
	{
		name: 'Siirt Havalimanı',
		number: 56,
		code: 'SXZ',
		city: 'Siirt',
		coordinates: {
			type: 'Point',
			coordinates: [41.8382, 37.9784],
		},
	},
	{
		name: 'Şırnak Şerafettin Elçi Havalimanı',
		number: 73,
		code: 'NKT',
		city: 'Şırnak',
		coordinates: {
			type: 'Point',
			coordinates: [42.0599, 37.3639],
		},
	},
	{
		name: 'Kars Havalimanı',
		number: 36,
		code: 'KSY',
		city: 'Kars',
		coordinates: {
			type: 'Point',
			coordinates: [43.115, 40.5622],
		},
	},
	{
		name: 'Ağrı Havalimanı',
		number: 4,
		code: 'AJI',
		city: 'Ağrı',
		coordinates: {
			type: 'Point',
			coordinates: [43.026, 39.6545],
		},
	},
	{
		name: 'Van Ferit Melen Havalimanı',
		number: 65,
		code: 'VAN',
		city: 'Van',
		coordinates: {
			type: 'Point',
			coordinates: [43.3323, 38.4682],
		},
	},
	{
		name: 'Iğdır Havalimanı',
		number: 76,
		code: 'IGD',
		city: 'Iğdır',
		coordinates: {
			type: 'Point',
			coordinates: [43.8794, 39.975],
		},
	},
	{
		name: 'Hakkari Yüksekova Havalimanı',
		number: 30,
		code: 'YKO',
		city: 'Hakkari',
		coordinates: {
			type: 'Point',
			coordinates: [44.2377, 37.5501],
		},
	},
	{
		name: 'Ercan Havalimanı',
		number: 82,
		code: 'ECN',
		city: 'KKTC',
		coordinates: {
			type: 'Point',
			coordinates: [33.4961, 35.1547],
		},
	},
];
module.exports = airports;


================================================
FILE: src/db/locations/geojsons/adriyatik-denizi.js
================================================
module.exports = {
	name: 'Adriyatik Denizi',
	number: -1,
	coordinates: {
		type: 'MultiPolygon',
		coordinates: [
			[
				[
					[13.24486124, 45.76002514],
					[13.24516964, 45.75947022],
					[13.24522316, 45.75951505],
					[13.24577963, 45.75943124],
					[13.24650216, 45.75930905],
					[13.24734426, 45.75915003],
					[13.24784601, 45.75885725],
					[13.24793386, 45.75844801],
					[13.24774158, 45.75816655],
					[13.24738932, 45.75801373],
					[13.24692774, 45.75784338],
					[13.24629474, 45.75757873],
					[13.24545968, 45.75720418],
					[13.24463463, 45.75693035],
					[13.24387491, 45.75675535],
					[13.24311435, 45.75664127],
					[13.24250793, 45.75650465],
					[13.24203634, 45.75628686],
					[13.24166036, 45.75587451],
					[13.24141192, 45.75534105],
					[13.24120188, 45.75490952],
					[13.24101531, 45.75459623],
					[13.24080241, 45.75432527],
					[13.24060321, 45.75402141],
					[13.24042666, 45.75361896],
					[13.24037993, 45.75313437],
					[13.24045324, 45.75272071],
					[13.24077415, 45.75270736],
					[13.24246132, 45.7523756],
					[13.24419785, 45.75216115],
					[13.24528706, 45.75201392],
					[13.24575472, 45.75191045],
					[13.24589324, 45.75178397],
					[13.24596167, 45.75161398],
					[13.24622202, 45.75140703],
					[13.24684727, 45.75106943],
					[13.24774373, 45.75057352],
					[13.24846196, 45.75022387],
					[13.24895287, 45.75005972],
					[13.24934435, 45.75007474],
					[13.24971652, 45.75017691],
					[13.25009131, 45.75018811],
					[13.25047934, 45.75007236],
					[13.25092626, 45.74992454],
					[13.25152075, 45.74979806],
					[13.25226915, 45.74979746],
					[13.25297081, 45.74992383],
					[13.25647235, 45.75002861],
					[13.25699794, 45.75019193],
					[13.25755286, 45.75032723],
					[13.25808835, 45.75050604],
					[13.25872636, 45.75078273],
					[13.2595793, 45.75118935],
					[13.26050258, 45.75154436],
					[13.26143491, 45.75181615],
					[13.26230192, 45.75188744],
					[13.26290894, 45.75179601],
					[13.26326895, 45.75167215],
					[13.26344943, 45.75150633],
					[13.26356244, 45.75126028],
					[13.26376593, 45.75093305],
					[13.26418388, 45.75054038],
					[13.26499212, 45.75020695],
					[13.26598787, 45.75021207],
					[13.26677442, 45.75054061],
					[13.26716375, 45.75087738],
					[13.26739836, 45.75107956],
					[13.26769125, 45.75119984],
					[13.26808465, 45.75134563],
					[13.26858318, 45.75153995],
					[13.26916385, 45.75179636],
					[13.26960492, 45.75203848],
					[13.26971972, 45.75200367],
					[13.2698307, 45.75213981],
					[13.26992905, 45.75235307],
					[13.27012444, 45.75247824],
					[13.27044415, 45.75246227],
					[13.27086461, 45.75231886],
					[13.27141035, 45.75210822],
					[13.27210617, 45.75183284],
					[13.27280796, 45.75157905],
					[13.27332425, 45.75129402],
					[13.27360856, 45.75098574],
					[13.27380705, 45.75063956],
					[13.27397394, 45.75023532],
					[13.27410281, 45.75014925],
					[13.27413166, 45.74998856],
					[13.27418923, 45.74979508],
					[13.27446425, 45.7492547],
					[13.27475143, 45.74919546],
					[13.27484131, 45.74861991],
					[13.27522755, 45.74802434],
					[13.27573836, 45.74774432],
					[13.27635145, 45.74785602],
					[13.2769587, 45.74811947],
					[13.2775743, 45.74844062],
					[13.27818024, 45.74874592],
					[13.27883387, 45.7491101],
					[13.27893341, 45.74911106],
					[13.28037846, 45.74912524],
					[13.28138804, 45.74913025],
					[13.2814064, 45.74913561],
					[13.28646386, 45.74918556],
					[13.28678322, 45.74964941],
					[13.28719974, 45.75004482],
					[13.28814197, 45.75024474],
					[13.28966022, 45.75023675],
					[13.29085612, 45.75010014],
					[13.29160833, 45.74994755],
					[13.29208493, 45.74978995],
					[13.29251432, 45.74965251],
					[13.29308832, 45.74950755],
					[13.29383862, 45.74937451],
					[13.29454315, 45.74922991],
					[13.29516435, 45.74909615],
					[13.2956506, 45.74895155],
					[13.29604351, 45.74881744],
					[13.2964226, 45.7486701],
					[13.29689312, 45.74852931],
					[13.29759085, 45.74837554],
					[13.29849541, 45.74825168],
					[13.29923952, 45.74818504],
					[13.29981935, 45.74823797],
					[13.30030727, 45.74834394],
					[13.30059826, 45.74850023],
					[13.30073583, 45.74869871],
					[13.30084646, 45.74889326],
					[13.30203271, 45.74885452],
					[13.30243075, 45.74867606],
					[13.30286133, 45.74853301],
					[13.30337083, 45.74838877],
					[13.30394781, 45.74825895],
					[13.30443943, 45.7481209],
					[13.30478025, 45.74799526],
					[13.30496311, 45.74784422],
					[13.30509198, 45.74769437],
					[13.30538177, 45.74765205],
					[13.30596125, 45.74770176],
					[13.30664957, 45.74761057],
					[13.30685794, 45.74723113],
					[13.30633855, 45.74668694],
					[13.30558395, 45.74620688],
					[13.30490375, 45.74569595],
					[13.30449915, 45.74516797],
					[13.30429053, 45.74464762],
					[13.30428696, 45.74414766],
					[13.30446935, 45.74386966],
					[13.30473554, 45.74388063],
					[13.30497003, 45.74418104],
					[13.30521524, 45.74468362],
					[13.30558908, 45.74510682],
					[13.30602098, 45.74536443],
					[13.30675983, 45.7457509],
					[13.30736136, 45.74594653],
					[13.30808365, 45.74622583],
					[13.30887043, 45.74654555],
					[13.3095535, 45.7469573],
					[13.31000125, 45.74736845],
					[13.31160414, 45.74858916],
					[13.31204486, 45.74870253],
					[13.31254256, 45.7488147],
					[13.31310344, 45.74881744],
					[13.31362724, 45.74868417],
					[13.31415117, 45.74847424],
					[13.3147217, 45.7482059],
					[13.31526256, 45.74799275],
					[13.31700778, 45.74650216],
					[13.31716573, 45.74527347],
					[13.31731713, 45.74447763],
					[13.31730843, 45.74399412],
					[13.31712616, 45.74366844],
					[13.31691885, 45.74340045],
					[13.31677973, 45.74317825],
					[13.31686401, 45.74305975],
					[13.31714857, 45.74308622],
					[13.31753862, 45.74322641],
					[13.31806111, 45.7433809],
					[13.31887603, 45.74350703],
					[13.31997597, 45.74350953],
					[13.32089174, 45.74339235],
					[13.32157695, 45.74325323],
					[13.32205856, 45.74311125],
					[13.32238686, 45.74299502],
					[13.32259023, 45.74284363],
					[13.3227396, 45.74262047],
					[13.32291842, 45.74234962],
					[13.32309556, 45.74204135],
					[13.32331121, 45.74167347],
					[13.32357454, 45.74125743],
					[13.32396293, 45.74091744],
					[13.32440233, 45.74070692],
					[13.32454145, 45.74094141],
					[13.32476056, 45.74152541],
					[13.32508552, 45.74207854],
					[13.32554316, 45.74251246],
					[13.32651365, 45.7427181],
					[13.32802022, 45.74270856],
					[13.32911241, 45.74257827],
					[13.32963157, 45.74244213],
					[13.3298105, 45.74228632],
					[13.32988906, 45.7421056],
					[13.33007705, 45.74193835],
					[13.33045924, 45.74174905],
					[13.33099115, 45.74149716],
					[13.33161545, 45.74129474],
					[13.33254886, 45.74112988],
					[13.33389223, 45.74099755],
					[13.33519626, 45.74085641],
					[13.33638716, 45.74072385],
					[13.33717883, 45.74057913],
					[13.33771813, 45.74044895],
					[13.33828354, 45.74031746],
					[13.33891237, 45.74020445],
					[13.33932376, 45.74005055],
					[13.33955145, 45.73982275],
					[13.3397758, 45.73955536],
					[13.33997095, 45.73839116],
					[13.34024835, 45.73792851],
					[13.34029925, 45.73750281],
					[13.34033024, 45.73709035],
					[13.34040272, 45.7369256],
					[13.34048676, 45.73673224],
					[13.34074235, 45.73641443],
					[13.34112716, 45.73613775],
					[13.34154046, 45.73594975],
					[13.34194553, 45.73582983],
					[13.34242165, 45.7358402],
					[13.34312725, 45.73597336],
					[13.34409225, 45.73613346],
					[13.34499657, 45.73627472],
					[13.34574378, 45.73628092],
					[13.34582877, 45.73624194],
					[13.34614897, 45.73609531],
					[13.34630382, 45.73577285],
					[13.34640098, 45.73546183],
					[13.34989536, 45.73545265],
					[13.35073805, 45.73527372],
					[13.3516463, 45.73515046],
					[13.35232854, 45.73507786],
					[13.35284531, 45.73506272],
					[13.35342252, 45.73498976],
					[13.35414195, 45.73487556],
					[13.3548243, 45.73472953],
					[13.35551512, 45.73459291],
					[13.35630286, 45.73444641],
					[13.35723996, 45.73430288],
					[13.35808086, 45.73412526],
					[13.359375, 45.73409593],
					[13.35944235, 45.73406637],
					[13.36029005, 45.73388815],
					[13.36129725, 45.73374522],
					[13.36229372, 45.73360121],
					[13.36326337, 45.73347127],
					[13.36395526, 45.73333204],
					[13.36442363, 45.73320305],
					[13.36482465, 45.73304784],
					[13.36522806, 45.73285663],
					[13.36558938, 45.73258877],
					[13.36582434, 45.7323364],
					[13.36604655, 45.73217762],
					[13.3663249, 45.73209763],
					[13.3687427, 45.73029566],
					[13.36905837, 45.73009443],
					[13.36978304, 45.72994542],
					[13.37099171, 45.72983027],
					[13.37208951, 45.72969651],
					[13.37298882, 45.72956526],
					[13.37367463, 45.72942054],
					[13.37427437, 45.72929013],
					[13.37484276, 45.72915387],
					[13.37547565, 45.72902668],
					[13.37620652, 45.72885203],
					[13.37706125, 45.72858965],
					[13.37778664, 45.72820747],
					[13.37828922, 45.72789037],
					[13.37894654, 45.72772038],
					[13.37987661, 45.72763205],
					[13.38051462, 45.72749507],
					[13.38073885, 45.72724223],
					[13.38056695, 45.72688508],
					[13.37990177, 45.72650695],
					[13.37910604, 45.72624934],
					[13.37861502, 45.72599888],
					[13.37838435, 45.72566247],
					[13.37822211, 45.72532523],
					[13.37811315, 45.72501254],
					[13.37841666, 45.72485566],
					[13.37904871, 45.72497904],
					[13.37958395, 45.72513735],
					[13.38004994, 45.72525466],
					[13.38042963, 45.72523606],
					[13.38053262, 45.72495043],
					[13.38016617, 45.72454333],
					[13.37959278, 45.72426295],
					[13.37890947, 45.72412205],
					[13.37816417, 45.72412765],
					[13.37764096, 45.72419035],
					[13.37739134, 45.72414124],
					[13.37726462, 45.72398877],
					[13.37705815, 45.72382963],
					[13.37670612, 45.72365403],
					[13.37631297, 45.72339034],
					[13.37602532, 45.72309256],
					[13.37583613, 45.72280037],
					[13.37583005, 45.72251534],
					[13.37600112, 45.72222698],
					[13.376266, 45.72192955],
					[13.37668312, 45.72164082],
					[13.37723601, 45.7213881],
					[13.3779366, 45.72112477],
					[13.37871456, 45.72092605],
					[13.37937856, 45.72130096],
					[13.37983525, 45.72138071],
					[13.38006353, 45.72169948],
					[13.38012063, 45.72261643],
					[13.3819952, 45.72431088],
					[13.38267004, 45.72445786],
					[13.38327384, 45.72460115],
					[13.38379335, 45.72456956],
					[13.38412035, 45.72417331],
					[13.38431227, 45.72337675],
					[13.38445306, 45.72245264],
					[13.38443995, 45.72148383],
					[13.38427043, 45.72078931],
					[13.38406718, 45.72033691],
					[13.38384545, 45.72002804],
					[13.38364685, 45.71970403],
					[13.38343644, 45.71916664],
					[13.38324654, 45.71833396],
					[13.38305235, 45.71741223],
					[13.38289475, 45.71644604],
					[13.38272238, 45.7157526],
					[13.38245726, 45.71532881],
					[13.38183248, 45.71512437],
					[13.38081312, 45.71502245],
					[13.37992334, 45.71491468],
					[13.37924898, 45.71480215],
					[13.37872255, 45.71463823],
					[13.37816334, 45.71438324],
					[13.37745714, 45.71397436],
					[13.37735248, 45.71358812],
					[13.37715292, 45.71344864],
					[13.37275255, 45.71351862],
					[13.37260294, 45.71310794],
					[13.37244964, 45.71262431],
					[13.37226653, 45.7122122],
					[13.37212193, 45.71187377],
					[13.36988163, 45.71040785],
					[13.36896741, 45.71030641],
					[13.36814547, 45.71017206],
					[13.36730921, 45.71004641],
					[13.36652625, 45.70991635],
					[13.36582577, 45.70978641],
					[13.36542165, 45.70956337],
					[13.36524475, 45.7092092],
					[13.36853564, 45.70702195],
					[13.36866224, 45.70654225],
					[13.36881185, 45.70582545],
					[13.36892641, 45.70489764],
					[13.36912835, 45.70431328],
					[13.36965156, 45.7040832],
					[13.37075758, 45.70400155],
					[13.37233615, 45.70403588],
					[13.3734591, 45.70412946],
					[13.37406147, 45.70415008],
					[13.37444866, 45.70412087],
					[13.37478781, 45.70416975],
					[13.37507784, 45.70426667],
					[13.37527025, 45.7044152],
					[13.37543666, 45.70459604],
					[13.37576115, 45.70475733],
					[13.37627792, 45.70493364],
					[13.37674355, 45.70519173],
					[13.37701786, 45.70544136],
					[13.37724304, 45.7056005],
					[13.37766886, 45.70602715],
					[13.37796354, 45.70668685],
					[13.37974584, 45.70767403],
					[13.38189673, 45.70866096],
					[13.38171232, 45.70715904],
					[13.38254607, 45.70326436],
					[13.38254607, 45.703125],
					[13.38246727, 45.703125],
					[13.38282216, 45.69647312],
					[13.38411236, 45.68613052],
					[13.38580036, 45.68313992],
					[13.38591397, 45.68289125],
					[13.385728, 45.68277371],
					[13.38529551, 45.68280792],
					[13.38480043, 45.68297636],
					[13.38409972, 45.68320823],
					[13.38283265, 45.68343556],
					[13.38101363, 45.68343425],
					[13.37930393, 45.68318582],
					[13.37822056, 45.68301368],
					[13.37817895, 45.68322063],
					[13.37823963, 45.68345594],
					[13.37833273, 45.68368793],
					[13.37820685, 45.68388116],
					[13.37779105, 45.68405807],
					[13.37720406, 45.68418264],
					[13.37668526, 45.68405151],
					[13.37629402, 45.68371713],
					[13.37586546, 45.68326795],
					[13.37538505, 45.68277013],
					[13.37478745, 45.68221331],
					[13.37427628, 45.68167353],
					[13.37385821, 45.6810981],
					[13.37369943, 45.68056703],
					[13.37384582, 45.68030035],
					[13.37432504, 45.68029845],
					[13.37524354, 45.6804105],
					[13.37652194, 45.68043387],
					[13.37754464, 45.68033171],
					[13.37825882, 45.6801964],
					[13.37873936, 45.68005204],
					[13.37906206, 45.67993176],
					[13.37924695, 45.67978168],
					[13.37933612, 45.67958093],
					[13.37953317, 45.67944467],
					[13.37981462, 45.67936182],
					[13.38001347, 45.67922175],
					[13.38015616, 45.67904544],
					[13.38035083, 45.67891347],
					[13.38059914, 45.678828],
					[13.38080466, 45.67869496],
					[13.38097286, 45.67843544],
					[13.38119495, 45.67799687],
					[13.38148057, 45.67738032],
					[13.38184166, 45.67677093],
					[13.38211465, 45.67631602],
					[13.38235486, 45.67608488],
					[13.38260496, 45.67597985],
					[13.38279664, 45.67585754],
					[13.38293815, 45.67569542],
					[13.38312626, 45.67556345],
					[13.38336253, 45.67546105],
					[13.38357615, 45.67530191],
					[13.38383806, 45.67505348],
					[13.38430798, 45.67478907],
					[13.38492322, 45.67460072],
					[13.38554013, 45.67444623],
					[13.38614702, 45.6743083],
					[13.38669455, 45.67413676],
					[13.38926041, 45.67430282],
					[13.39030147, 45.67494452],
					[13.39100504, 45.67528772],
					[13.39147747, 45.67538404],
					[13.39194775, 45.67533147],
					[13.39254212, 45.67532742],
					[13.39322925, 45.67542934],
					[13.39397121, 45.67554414],
					[13.39455473, 45.67562783],
					[13.39503694, 45.67565477],
					[13.39562094, 45.67573965],
					[13.39642024, 45.67585838],
					[13.39731371, 45.6759659],
					[13.39824653, 45.67595923],
					[13.39892125, 45.67586923],
					[13.39941955, 45.67586374],
					[13.40002036, 45.67599905],
					[13.40090644, 45.67621291],
					[13.40196383, 45.67644584],
					[13.40303755, 45.67651296],
					[13.40386045, 45.67644358],
					[13.40451527, 45.67642987],
					[13.40508986, 45.67652977],
					[13.40566361, 45.67667484],
					[13.40619445, 45.67686522],
					[13.41050863, 45.67692864],
					[13.41104746, 45.67711985],
					[13.41160476, 45.67726731],
					[13.41209102, 45.67737186],
					[13.41255963, 45.67736065],
					[13.41314685, 45.67727196],
					[13.41388524, 45.67726731],
					[13.41457927, 45.67738092],
					[13.41920841, 45.67741692],
					[13.42003834, 45.67723775],
					[13.42092872, 45.67711484],
					[13.42159951, 45.67704308],
					[13.42216206, 45.67703044],
					[13.42293406, 45.67695868],
					[13.42400515, 45.67683577],
					[13.42499065, 45.67665672],
					[13.43120491, 45.67660928],
					[13.43166184, 45.67639971],
					[13.43218172, 45.67618775],
					[13.43274772, 45.67594111],
					[13.43317008, 45.67575633],
					[13.43334472, 45.67557514],
					[13.43330491, 45.67534161],
					[13.43325985, 45.67510402],
					[13.43353856, 45.67495406],
					[13.43410492, 45.67496014],
					[13.43454325, 45.67516565],
					[13.43479013, 45.67556202],
					[13.43494225, 45.67605257],
					[13.43492877, 45.67657614],
					[13.43476284, 45.67698193],
					[13.43456233, 45.67733622],
					[13.43431306, 45.67783225],
					[13.43400848, 45.67857516],
					[13.43361986, 45.67939174],
					[13.43331695, 45.68016994],
					[13.43312573, 45.68075025],
					[13.43312931, 45.68119085],
					[13.43329072, 45.68151617],
					[13.43345845, 45.68175924],
					[13.43362486, 45.68194938],
					[13.43398655, 45.68194973],
					[13.43451273, 45.68212056],
					[13.43509126, 45.68225753],
					[13.43570161, 45.68241036],
					[13.43644095, 45.68259966],
					[13.43733275, 45.68287468],
					[13.43830025, 45.68319797],
					[13.43913305, 45.6836524],
					[13.43981314, 45.68418396],
					[13.44057894, 45.68473578],
					[13.44128346, 45.68513298],
					[13.44190204, 45.68543267],
					[13.44239175, 45.68562186],
					[13.44279623, 45.68576646],
					[13.44318092, 45.68588996],
					[13.44359815, 45.6860491],
					[13.44409752, 45.68625331],
					[13.44466913, 45.68651533],
					[13.44517934, 45.68671823],
					[13.44559825, 45.68687356],
					[13.44591784, 45.68699145],
					[13.44611394, 45.6871376],
					[13.44624436, 45.68731618],
					[13.44643557, 45.68745494],
					[13.44671357, 45.68753624],
					[13.44729567, 45.68774354],
					[13.44778657, 45.68782115],
					[13.44807684, 45.68795514],
					[13.44822764, 45.68813431],
					[13.44845045, 45.68830454],
					[13.44886577, 45.68849576],
					[13.44941723, 45.68874848],
					[13.44992065, 45.68895102],
					[13.45035136, 45.68911552],
					[13.45077372, 45.68924797],
					[13.45125365, 45.68938935],
					[13.45178986, 45.68952215],
					[13.45228267, 45.68966663],
					[13.45282245, 45.68979394],
					[13.45360196, 45.68991935],
					[13.45456922, 45.69002724],
					[13.45521307, 45.69019914],
					[13.45565295, 45.69050896],
					[13.45623863, 45.69093513],
					[13.45695424, 45.69139707],
					[13.45771062, 45.69195485],
					[13.45827174, 45.69242156],
					[13.45881164, 45.69270635],
					[13.45939577, 45.69274831],
					[13.45994365, 45.69261754],
					[13.46010494, 45.69271505],
					[13.45999026, 45.69314313],
					[13.45991576, 45.69349051],
					[13.4600054, 45.69378126],
					[13.46017826, 45.69407547],
					[13.46039367, 45.69442546],
					[13.4605844, 45.69482732],
					[13.46077836, 45.69517314],
					[13.46097505, 45.69541526],
					[13.46128738, 45.69553864],
					[13.46171045, 45.69559574],
					[13.46202791, 45.69572043],
					[13.46223462, 45.69606125],
					[13.46243274, 45.6967628],
					[13.46258402, 45.69774652],
					[13.46265686, 45.69845092],
					[13.46260035, 45.69884014],
					[13.46261275, 45.69912493],
					[13.46279085, 45.69946957],
					[13.46307313, 45.69992816],
					[13.46343374, 45.70038617],
					[13.46372604, 45.70070565],
					[13.46407187, 45.70087755],
					[13.46456695, 45.70099115],
					[13.46508884, 45.70113862],
					[13.46582544, 45.70118022],
					[13.46623087, 45.70136726],
					[13.46675897, 45.7015655],
					[13.46756554, 45.70185888],
					[13.46867836, 45.70225704],
					[13.46996856, 45.70284784],
					[13.47005951, 45.703125],
					[13.47043681, 45.703125],
					[13.47044981, 45.70326304],
					[13.47074127, 45.70334291],
					[13.47097194, 45.70344615],
					[13.47096205, 45.70366383],
					[13.47067428, 45.70401073],
					[13.47037804, 45.7043575],
					[13.47013664, 45.70466375],
					[13.46997881, 45.70494854],
					[13.46811807, 45.70620906],
					[13.46787572, 45.70623887],
					[13.46770453, 45.70635855],
					[13.46766162, 45.70652795],
					[13.46589673, 45.70797205],
					[13.46523845, 45.70849562],
					[13.46420705, 45.70902061],
					[13.46298063, 45.7093513],
					[13.46181083, 45.70951664],
					[13.46066165, 45.70951796],
					[13.45982957, 45.70936942],
					[13.45921421, 45.70909047],
					[13.45868278, 45.70862591],
					[13.45834815, 45.70809448],
					[13.45812702, 45.70756424],
					[13.457973, 45.70702171],
					[13.45780015, 45.70660067],
					[13.45755494, 45.70632124],
					[13.45704496, 45.70617902],
					[13.45629573, 45.70619631],
					[13.45576251, 45.70641863],
					[13.45541263, 45.70686555],
					[13.45500457, 45.70745134],
					[13.45453525, 45.70809662],
					[13.45399094, 45.70869887],
					[13.45362472, 45.70908546],
					[13.45336402, 45.70926142],
					[13.45309985, 45.70933175],
					[13.45284653, 45.70939505],
					[13.45285857, 45.70968175],
					[13.44970524, 45.71182621],
					[13.4499588, 45.71252692],
					[13.45016134, 45.71329212],
					[13.45036674, 45.71383977],
					[13.45056248, 45.71418095],
					[13.45079637, 45.71444952],
					[13.45103443, 45.71473444],
					[13.45123744, 45.71507061],
					[13.45116437, 45.715415],
					[13.45058, 45.71564066],
					[13.44954431, 45.71577334],
					[13.44863081, 45.71590281],
					[13.44794333, 45.71602845],
					[13.44744301, 45.71617162],
					[13.44700456, 45.71630347],
					[13.44652724, 45.71644056],
					[13.44604564, 45.71656072],
					[13.44574034, 45.71670902],
					[13.44557643, 45.71688211],
					[13.44539321, 45.71701145],
					[13.44515145, 45.71710551],
					[13.44491541, 45.71726584],
					[13.44464624, 45.71756005],
					[13.44428992, 45.71795583],
					[13.44399965, 45.71834874],
					[13.4434756, 45.71876872],
					[13.44306636, 45.71885586],
					[13.44264781, 45.7188704],
					[13.44222498, 45.71865106],
					[13.44178462, 45.71819985],
					[13.44121265, 45.71756065],
					[13.44061506, 45.71691728],
					[13.43982732, 45.7164154],
					[13.43893194, 45.71614432],
					[13.43807566, 45.71599627],
					[13.43714774, 45.71591854],
					[13.4348222, 45.71762967],
					[13.43467188, 45.71770513],
					[13.43462014, 45.71765327],
					[13.43424666, 45.7175492],
					[13.43385172, 45.71727908],
					[13.43350756, 45.71687257],
					[13.43307936, 45.71627164],
					[13.43254328, 45.71551704],
					[13.43178594, 45.71482205],
					[13.43098176, 45.71438146],
					[13.43005311, 45.71411562],
					[13.42903733, 45.71406734],
					[13.42820275, 45.71417487],
					[13.42745912, 45.71429706],
					[13.42461622, 45.71616113],
					[13.42362905, 45.71636534],
					[13.42275226, 45.71668291],
					[13.42189884, 45.71709633],
					[13.42099476, 45.71759844],
					[13.42037857, 45.71792531],
					[13.42010105, 45.71812856],
					[13.42000735, 45.71832323],
					[13.41703892, 45.7203418],
					[13.41643274, 45.72000933],
					[13.41591227, 45.71979368],
					[13.41538918, 45.71964514],
					[13.41476035, 45.71954322],
					[13.41405702, 45.71942806],
					[13.41335905, 45.71923947],
					[13.41297817, 45.71879387],
					[13.41295111, 45.71808422],
					[13.41312277, 45.71752155],
					[13.4133203, 45.71721911],
					[13.41359866, 45.71714842],
					[13.41402745, 45.71724284],
					[13.4145112, 45.71737528],
					[13.41482806, 45.71753716],
					[13.41500282, 45.7177155],
					[13.41519547, 45.71785235],
					[13.41543353, 45.71797335],
					[13.41561556, 45.71818387],
					[13.41573632, 45.71848524],
					[13.41592181, 45.71872473],
					[13.41628087, 45.71888113],
					[13.41689706, 45.71896541],
					[13.41781366, 45.71884263],
					[13.41885376, 45.71848154],
					[13.41894615, 45.71805525],
					[13.41916466, 45.71769941],
					[13.41933751, 45.71736217],
					[13.41958785, 45.71711266],
					[13.42000592, 45.71683633],
					[13.42051601, 45.71639955],
					[13.42099965, 45.71596944],
					[13.42177904, 45.71571541],
					[13.42294204, 45.71558821],
					[13.42381895, 45.71547425],
					[13.42427647, 45.71534741],
					[13.42447221, 45.71513402],
					[13.42461932, 45.71485138],
					[13.42492425, 45.71465731],
					[13.42535675, 45.71452427],
					[13.42558265, 45.71426666],
					[13.42540896, 45.71377385],
					[13.42492855, 45.71319175],
					[13.42450404, 45.71279001],
					[13.42400956, 45.71264005],
					[13.42325532, 45.71269834],
					[13.42237437, 45.71284151],
					[13.42148936, 45.7128371],
					[13.42096806, 45.71250713],
					[13.42074013, 45.71184278],
					[13.42121756, 45.71155405],
					[13.42173457, 45.7114526],
					[13.42206693, 45.71124852],
					[13.42225611, 45.71093178],
					[13.42238522, 45.71060598],
					[13.42237175, 45.71020246],
					[13.42227066, 45.70950472],
					[13.42228115, 45.70846808],
					[13.42235196, 45.70751655],
					[13.42217541, 45.70668197],
					[13.42168295, 45.70610321],
					[13.42121983, 45.70583367],
					[13.42095125, 45.70568132],
					[13.42080057, 45.70553017],
					[13.42061317, 45.7054069],
					[13.42037547, 45.70530736],
					[13.42019475, 45.70516753],
					[13.42007315, 45.70498884],
					[13.41986835, 45.70483935],
					[13.41945195, 45.70472395],
					[13.41876256, 45.70460165],
					[13.41792584, 45.70449126],
					[13.41739285, 45.70433724],
					[13.41713333, 45.70410883],
					[13.41691232, 45.70384097],
					[13.41690326, 45.70354354],
					[13.41650391, 45.70326436],
					[13.41650391, 45.703125],
					[13.41630983, 45.703125],
					[13.41632998, 45.70303631],
					[13.41604126, 45.70261872],
					[13.41566896, 45.70212865],
					[13.41503704, 45.70161724],
					[13.41420925, 45.70113564],
					[13.41327298, 45.70062423],
					[13.41257071, 45.70029187],
					[13.41206968, 45.70008135],
					[13.41158414, 45.69988668],
					[13.41104138, 45.69963944],
					[13.41054952, 45.69944012],
					[13.41011882, 45.69927633],
					[13.40971363, 45.69914615],
					[13.40932965, 45.69901407],
					[13.4090085, 45.69889736],
					[13.40879655, 45.69875217],
					[13.40864146, 45.69858205],
					[13.40843451, 45.69844794],
					[13.40822566, 45.69832432],
					[13.40822208, 45.69809544],
					[13.40847254, 45.69774926],
					[13.40872586, 45.69746614],
					[13.40901041, 45.69736815],
					[13.40944755, 45.6974405],
					[13.41004205, 45.69754565],
					[13.41047251, 45.69774985],
					[13.41116226, 45.6980617],
					[13.41190434, 45.69844162],
					[13.41252327, 45.6987133],
					[13.41306877, 45.69889581],
					[13.41362345, 45.69902563],
					[13.41411233, 45.69915175],
					[13.41454661, 45.69924593],
					[13.41733372, 45.70111728],
					[13.41758704, 45.70119548],
					[13.41782176, 45.70137477],
					[13.41820192, 45.70170307],
					[13.41893673, 45.70209861],
					[13.41985071, 45.70237064],
					[13.42069674, 45.70251584],
					[13.42146802, 45.70250082],
					[13.42203486, 45.70235515],
					[13.42250454, 45.70219064],
					[13.42311168, 45.70208454],
					[13.42399955, 45.70219564],
					[13.42501664, 45.70255244],
					[13.42506886, 45.703125],
					[13.42489338, 45.703125],
					[13.42479134, 45.70315135],
					[13.42457998, 45.70405364],
					[13.42454421, 45.70501196],
					[13.42472792, 45.70556462],
					[13.42506754, 45.70574868],
					[13.42544675, 45.70582128],
					[13.42578602, 45.70594406],
					[13.42611158, 45.706357],
					[13.42660046, 45.70719111],
					[13.42726874, 45.70815825],
					[13.42758882, 45.70888567],
					[13.42745805, 45.70924377],
					[13.42706072, 45.70946968],
					[13.42666686, 45.70983756],
					[13.42653954, 45.71030045],
					[13.42670131, 45.71060777],
					[13.42704904, 45.71076572],
					[13.42746425, 45.71088398],
					[13.42788923, 45.71096516],
					[13.42848527, 45.71113932],
					[13.42887783, 45.71098483],
					[13.42964816, 45.7109251],
					[13.4299407, 45.71084034],
					[13.43015623, 45.70688355],
					[13.42985475, 45.70678413],
					[13.42942548, 45.70669031],
					[13.42880475, 45.70658576],
					[13.42811644, 45.70648897],
					[13.42780817, 45.70628345],
					[13.42807984, 45.70580995],
					[13.42876756, 45.70505345],
					[13.42932236, 45.7043035],
					[13.42974675, 45.70371044],
					[13.4296875, 45.703125],
					[13.42984664, 45.703125],
					[13.4298259, 45.70028651],
					[13.42955196, 45.69965041],
					[13.42928553, 45.69892061],
					[13.42894983, 45.69831753],
					[13.42855251, 45.69796467],
					[13.42779148, 45.69784474],
					[13.42662013, 45.69790566],
					[13.42572057, 45.69804001],
					[13.42523766, 45.69804394],
					[13.42506814, 45.69779003],
					[13.42513061, 45.69730771],
					[13.42533517, 45.69681621],
					[13.42555416, 45.69636047],
					[13.42578554, 45.69594312],
					[13.42598236, 45.69550276],
					[13.42613566, 45.69502735],
					[13.42614985, 45.69450772],
					[13.42609775, 45.69405413],
					[13.42616916, 45.69359791],
					[13.4263128, 45.69307625],
					[13.42650926, 45.69262254],
					[13.4267559, 45.69226205],
					[13.42720461, 45.6920675],
					[13.42795086, 45.69225144],
					[13.42903256, 45.69283354],
					[13.42963076, 45.69310701],
					[13.43003786, 45.69330323],
					[13.43048155, 45.69346476],
					[13.43099594, 45.69359744],
					[13.43151724, 45.69359756],
					[13.43180347, 45.69339526],
					[13.43173456, 45.69302356],
					[13.43131006, 45.69263911],
					[13.43065464, 45.69228375],
					[13.42989671, 45.69189584],
					[13.42930806, 45.69162262],
					[13.42887151, 45.69143081],
					[13.42840207, 45.6912924],
					[13.42768586, 45.6912055],
					[13.42669284, 45.69128585],
					[13.42582631, 45.69152975],
					[13.4252516, 45.69174755],
					[13.42484927, 45.69188321],
					[13.42447615, 45.69187641],
					[13.42401922, 45.6917839],
					[13.42338562, 45.69177353],
					[13.42251706, 45.69188106],
					[13.42134976, 45.69202018],
					[13.42011321, 45.69216657],
					[13.41866696, 45.69227505],
					[13.41787446, 45.69205487],
					[13.41676974, 45.69185114],
					[13.41603172, 45.69150364],
					[13.41563904, 45.69103384],
					[13.41541505, 45.69054151],
					[13.41540527, 45.6900413],
					[13.41538334, 45.68942046],
					[13.41521001, 45.68863881],
					[13.41492474, 45.68768191],
					[13.41454721, 45.6869204],
					[13.41424394, 45.68638885],
					[13.41239035, 45.68515062],
					[13.41212916, 45.68474531],
					[13.41181016, 45.68432987],
					[13.41154766, 45.68402064],
					[13.41114712, 45.68391335],
					[13.41036105, 45.68406677],
					[13.40924394, 45.68441772],
					[13.4081794, 45.68472755],
					[13.40759671, 45.68507695],
					[13.40737021, 45.68554425],
					[13.40722954, 45.68594575],
					[13.40710366, 45.68621862],
					[13.40689516, 45.6863811],
					[13.40656567, 45.68649328],
					[13.40616655, 45.68659186],
					[13.40575147, 45.68659174],
					[13.40536022, 45.68648934],
					[13.40503943, 45.68636501],
					[13.40481305, 45.68618786],
					[13.40458691, 45.68593681],
					[13.40423381, 45.68568087],
					[13.40382314, 45.68550205],
					[13.40337491, 45.68532741],
					[13.40281165, 45.68507898],
					[13.40208495, 45.68467796],
					[13.40199566, 45.68343318],
					[13.40222764, 45.68316936],
					[13.40247071, 45.68294942],
					[13.4028995, 45.68280637],
					[13.40350163, 45.68268883],
					[13.40388715, 45.6824826],
					[13.40393984, 45.68219304],
					[13.40374792, 45.68198264],
					[13.40346956, 45.68185902],
					[13.40326703, 45.68172157],
					[13.40314305, 45.68154955],
					[13.40294957, 45.68140328],
					[13.40255058, 45.68128455],
					[13.40185666, 45.68114865],
					[13.40092313, 45.68101704],
					[13.40012443, 45.68087137],
					[13.39950824, 45.68073583],
					[13.39904976, 45.68058813],
					[13.39856541, 45.68045306],
					[13.39776075, 45.68031704],
					[13.39650238, 45.68021596],
					[13.39466035, 45.68148315],
					[13.39396584, 45.68200994],
					[13.3929224, 45.68249595],
					[13.39180827, 45.68268096],
					[13.39105046, 45.68260157],
					[13.39058971, 45.68243992],
					[13.39022183, 45.68225086],
					[13.38979101, 45.68208134],
					[13.38918126, 45.68195963],
					[13.3884207, 45.68203986],
					[13.38782966, 45.68242145],
					[13.38751078, 45.68300283],
					[13.38730216, 45.68358874],
					[13.38713753, 45.68414092],
					[13.38695383, 45.68454945],
					[13.38677752, 45.68486667],
					[13.38655162, 45.68521786],
					[13.38527966, 45.68716037],
					[13.38377821, 45.70197713],
					[13.38366175, 45.703125],
					[13.38374472, 45.703125],
					[13.38312566, 45.70758808],
					[13.38650215, 45.72475433],
					[13.38730121, 45.72488296],
					[13.38816178, 45.72484005],
					[13.3889575, 45.72428525],
					[13.39016545, 45.72384596],
					[13.39131844, 45.72361505],
					[13.39230716, 45.7236588],
					[13.39324391, 45.72379994],
					[13.39391172, 45.72396386],
					[13.39436173, 45.72410512],
					[13.39475751, 45.72426772],
					[13.39522064, 45.72447407],
					[13.39543653, 45.72468293],
					[13.39579678, 45.72476447],
					[13.39644778, 45.72504938],
					[13.39709783, 45.72501183],
					[13.39724171, 45.72530246],
					[13.39809453, 45.72537208],
					[13.39880884, 45.72526932],
					[13.39943063, 45.7251178],
					[13.40000415, 45.72494721],
					[13.40064585, 45.72479916],
					[13.40142274, 45.72468364],
					[13.40237915, 45.72468495],
					[13.40330017, 45.72479296],
					[13.40426648, 45.72490311],
					[13.40514505, 45.72512853],
					[13.40653098, 45.72521985],
					[13.40703475, 45.72532487],
					[13.40725875, 45.72537172],
					[13.40746844, 45.72555184],
					[13.40751874, 45.72563684],
					[13.40758204, 45.72555554],
					[13.40781915, 45.72537673],
					[13.40853155, 45.72521627],
					[13.4097203, 45.7250905],
					[13.41072595, 45.72495282],
					[13.41146755, 45.72482145],
					[13.41205502, 45.72467661],
					[13.41260123, 45.72454381],
					[13.41307533, 45.7244029],
					[13.41355205, 45.72427511],
					[13.41417074, 45.72412455],
					[13.41493475, 45.72394097],
					[13.41553795, 45.72367096],
					[13.41587043, 45.72337151],
					[13.4160459, 45.72307861],
					[13.41603255, 45.72279131],
					[13.41584563, 45.72249865],
					[13.41556835, 45.72220063],
					[13.41516602, 45.72193491],
					[13.41471863, 45.72175634],
					[13.41458416, 45.72170556],
					[13.41426301, 45.72131741],
					[13.41386712, 45.72090507],
					[13.41359305, 45.72053504],
					[13.41354334, 45.72022724],
					[13.41384161, 45.72003853],
					[13.41435635, 45.72005332],
					[13.41494906, 45.72017634],
					[13.41548872, 45.72036684],
					[13.41604126, 45.72059202],
					[13.41670191, 45.72082901],
					[13.41738915, 45.72090125],
					[13.41801608, 45.72080767],
					[13.41860986, 45.72067106],
					[13.41911352, 45.72051156],
					[13.41954935, 45.72032905],
					[13.41993701, 45.72004795],
					[13.42027998, 45.71967685],
					[13.42072225, 45.71921527],
					[13.42127895, 45.71869957],
					[13.42201364, 45.71818364],
					[13.42263544, 45.71786773],
					[13.42312396, 45.71767044],
					[13.42362511, 45.71746755],
					[13.42422366, 45.71715724],
					[13.42482674, 45.71700144],
					[13.42509305, 45.71685255],
					[13.42535961, 45.71681535],
					[13.42734027, 45.71544516],
					[13.42807651, 45.71521616],
					[13.42904985, 45.71496224],
					[13.43012857, 45.71486604],
					[13.43082297, 45.71500647],
					[13.43128705, 45.71538603],
					[13.43181121, 45.71592665],
					[13.43226242, 45.71643591],
					[13.43267965, 45.71689034],
					[13.43302381, 45.71726275],
					[13.43342066, 45.71755254],
					[13.43389821, 45.71773767],
					[13.43451452, 45.71785438],
					[13.43524957, 45.71784711],
					[13.43584514, 45.71772528],
					[13.43628395, 45.71757543],
					[13.43667042, 45.71740317],
					[13.43711734, 45.71724582],
					[13.43773401, 45.71713173],
					[13.43849528, 45.71720004],
					[13.43908155, 45.71751082],
					[13.43939376, 45.71793377],
					[13.43961215, 45.71831524],
					[13.43984592, 45.71865964],
					[13.44019043, 45.71901512],
					[13.44072807, 45.71920693],
					[13.4420073, 45.71964824],
					[13.44313276, 45.71980631],
					[13.44388366, 45.7197082],
					[13.44443905, 45.71949267],
					[13.44501591, 45.71918881],
					[13.44561744, 45.71885681],
					[13.44621062, 45.71843314],
					[13.44666565, 45.71799707],
					[13.44707823, 45.71756744],
					[13.44742584, 45.71717894],
					[13.44781661, 45.71679866],
					[13.45184612, 45.71676433],
					[13.45225275, 45.71658945],
					[13.45248008, 45.71651995],
					[13.45268905, 45.71645606],
					[13.45318365, 45.71633017],
					[13.45368493, 45.71620584],
					[13.45402157, 45.71598637],
					[13.45422244, 45.71562695],
					[13.45436621, 45.71521533],
					[13.45435214, 45.71477783],
					[13.45418108, 45.71435046],
					[13.45398104, 45.71391201],
					[13.45377493, 45.71350086],
					[13.45360672, 45.71315014],
					[13.45340645, 45.71295345],
					[13.45315051, 45.71285307],
					[13.45286906, 45.71267915],
					[13.45248365, 45.71231484],
					[13.45199585, 45.71180475],
					[13.45179164, 45.71136916],
					[13.45189011, 45.71105134],
					[13.45207942, 45.71082783],
					[13.45232367, 45.71069515],
					[13.45259595, 45.71060658],
					[13.45279741, 45.71047318],
					[13.45291221, 45.71027815],
					[13.4538722, 45.70979202],
					[13.4556123, 45.70989275],
					[13.45673776, 45.71002865],
					[13.45746195, 45.71016324],
					[13.45809817, 45.71031106],
					[13.45883703, 45.71045005],
					[13.45960987, 45.71060431],
					[13.46049833, 45.71074402],
					[13.46149242, 45.71085978],
					[13.46258223, 45.71087265],
					[13.46337104, 45.71079946],
					[13.46395671, 45.71072233],
					[13.46465445, 45.71053565],
					[13.46551812, 45.71013558],
					[13.46612597, 45.70982862],
					[13.46639121, 45.70963287],
					[13.46650612, 45.70946896],
					[13.46674764, 45.70929825],
					[13.46728873, 45.70899832],
					[13.46805656, 45.70846677],
					[13.46874034, 45.70788336],
					[13.46935666, 45.70731747],
					[13.46974218, 45.70689487],
					[13.46997261, 45.70658636],
					[13.47009957, 45.70631802],
					[13.47116804, 45.70553625],
					[13.47145414, 45.70511222],
					[13.47180307, 45.70464396],
					[13.47206378, 45.70423305],
					[13.47231162, 45.70399284],
					[13.47263455, 45.70385671],
					[13.47300816, 45.70370722],
					[13.47728765, 45.70371032],
					[13.47812903, 45.70389235],
					[13.47915065, 45.70404315],
					[13.48022246, 45.70419705],
					[13.48134851, 45.70431805],
					[13.48225164, 45.70437658],
					[13.48314536, 45.70430267],
					[13.48418665, 45.70417106],
					[13.48496902, 45.70404518],
					[13.48550344, 45.70403385],
					[13.48598337, 45.70413375],
					[13.48645008, 45.70425391],
					[13.48675025, 45.70441794],
					[13.4869194, 45.70465577],
					[13.48710275, 45.70494413],
					[13.48736775, 45.70525026],
					[13.48784816, 45.70552492],
					[13.48850155, 45.70571005],
					[13.48922813, 45.70586062],
					[13.48999572, 45.70598793],
					[13.49059606, 45.70612705],
					[13.49104285, 45.70625734],
					[13.49143231, 45.70640135],
					[13.49181652, 45.70654452],
					[13.49220586, 45.70672274],
					[13.49300694, 45.70678294],
					[13.49341786, 45.70696151],
					[13.49382901, 45.70710194],
					[13.49421966, 45.70723581],
					[13.49453425, 45.70734751],
					[13.494717, 45.70748496],
					[13.49483442, 45.70765996],
					[13.49508727, 45.70784748],
					[13.4956423, 45.70810914],
					[13.49646902, 45.70847666],
					[13.49723995, 45.70874405],
					[13.49778366, 45.70891654],
					[13.49819732, 45.7090466],
					[13.49865913, 45.70924306],
					[13.49934125, 45.70956182],
					[13.50022757, 45.70996487],
					[13.50095296, 45.71016204],
					[13.50155008, 45.71029544],
					[13.50218534, 45.71049798],
					[13.50284147, 45.71067631],
					[13.50351834, 45.71087921],
					[13.50438487, 45.71120524],
					[13.50543451, 45.71173501],
					[13.50648546, 45.71231794],
					[13.50767314, 45.71305072],
					[13.50831926, 45.71324551],
					[13.50891745, 45.71377313],
					[13.50934684, 45.71418035],
					[13.50974762, 45.71446085],
					[13.51015234, 45.71462882],
					[13.51060593, 45.71480417],
					[13.51120734, 45.71506906],
					[13.51196778, 45.71546197],
					[13.51267016, 45.71580672],
					[13.51328361, 45.71610165],
					[13.51376915, 45.71629596],
					[13.51419628, 45.7164607],
					[13.51468205, 45.71665478],
					[13.51529551, 45.71694934],
					[13.51599515, 45.7172929],
					[13.51674914, 45.71768546],
					[13.51734376, 45.71795583],
					[13.51781213, 45.71814883],
					[13.51829791, 45.7183429],
					[13.51887047, 45.71860921],
					[13.51946294, 45.71887887],
					[13.52007973, 45.71917784],
					[13.52067614, 45.71945035],
					[13.52127147, 45.71972334],
					[13.52181554, 45.7199254],
					[13.52252781, 45.72036564],
					[13.52304256, 45.72056794],
					[13.52362192, 45.72083914],
					[13.52428472, 45.72110403],
					[13.52518582, 45.72138917],
					[13.52630436, 45.72165704],
					[13.52737987, 45.72199094],
					[13.52842414, 45.72240496],
					[13.52943206, 45.72291493],
					[13.53015792, 45.72326255],
					[13.53071201, 45.72347045],
					[13.53127134, 45.72360432],
					[13.53184414, 45.72370708],
					[13.53248036, 45.72370291],
					[13.53317475, 45.72358894],
					[13.53392756, 45.72344446],
					[13.53455377, 45.72326124],
					[13.53510416, 45.72304738],
					[13.53566074, 45.72282112],
					[13.53614128, 45.72275186],
					[13.53654516, 45.72281337],
					[13.53692424, 45.72283745],
					[13.53735733, 45.72281897],
					[13.53796494, 45.72286928],
					[13.53880155, 45.72293735],
					[13.53942406, 45.72324646],
					[13.54003406, 45.72313857],
					[13.54053605, 45.72299135],
					[13.54098225, 45.72284746],
					[13.54146886, 45.72272944],
					[13.54201341, 45.72273302],
					[13.54250526, 45.72286022],
					[13.5429877, 45.72301137],
					[13.54358935, 45.72313595],
					[13.5443176, 45.72313297],
					[13.54491651, 45.72300732],
					[13.5453608, 45.72287381],
					[13.54573214, 45.72279894],
					[13.54610205, 45.72285962],
					[13.54656374, 45.72298753],
					[13.54726183, 45.72315061],
					[13.54821777, 45.72329354],
					[13.5491271, 45.72340202],
					[13.5499438, 45.72340727],
					[13.55054355, 45.72336495],
					[13.55099547, 45.72342515],
					[13.55140555, 45.72358811],
					[13.55177486, 45.72386277],
					[13.55204666, 45.72417116],
					[13.55231702, 45.72447515],
					[13.55229437, 45.72536242],
					[13.55179536, 45.72561705],
					[13.55135715, 45.72579706],
					[13.55095363, 45.72594786],
					[13.55050433, 45.72607446],
					[13.54991055, 45.72621036],
					[13.54918754, 45.72633863],
					[13.54858065, 45.72649765],
					[13.5480659, 45.72669852],
					[13.54750645, 45.72697485],
					[13.54679573, 45.72724927],
					[13.54567933, 45.72754967],
					[13.5441972, 45.72782397],
					[13.54290438, 45.72810042],
					[13.54192293, 45.72830105],
					[13.54122162, 45.72846031],
					[13.54059255, 45.72859001],
					[13.53992474, 45.72872961],
					[13.53916585, 45.72885895],
					[13.53847945, 45.72899926],
					[13.53784156, 45.72913122],
					[13.53722405, 45.72929513],
					[13.53654754, 45.72949791],
					[13.53587842, 45.72975576],
					[13.53529334, 45.72996223],
					[13.53494144, 45.73011875],
					[13.5340414, 45.73042393],
					[13.53321028, 45.73079252],
					[13.53258824, 45.73105443],
					[13.53200817, 45.73126411],
					[13.53123283, 45.7315315],
					[13.53025925, 45.73193765],
					[13.52927387, 45.73234522],
					[13.52840686, 45.73274755],
					[13.52779424, 45.73301482],
					[13.52727008, 45.73324657],
					[13.52658153, 45.73357856],
					[13.52572107, 45.73404396],
					[13.52511001, 45.73436403],
					[13.52477956, 45.73459876],
					[13.52445197, 45.73490512],
					[13.52389503, 45.73529375],
					[13.5232532, 45.73566484],
					[13.52265036, 45.73608577],
					[13.52223313, 45.73649204],
					[13.51762545, 45.73985541],
					[13.51752341, 45.74004185],
					[13.51734483, 45.74016702],
					[13.51709747, 45.74026203],
					[13.5168128, 45.74045634],
					[13.51636326, 45.74083781],
					[13.51567626, 45.74131298],
					[13.51512301, 45.74162054],
					[13.51477206, 45.74186122],
					[13.51440883, 45.74222302],
					[13.51390696, 45.74271548],
					[13.51353323, 45.74314106],
					[13.51326334, 45.74347651],
					[13.51300526, 45.74377501],
					[13.51263535, 45.74403524],
					[13.51222527, 45.74420953],
					[13.51182413, 45.74434912],
					[13.511397, 45.74447274],
					[13.51084006, 45.74465227],
					[13.51007044, 45.74492741],
					[13.50923502, 45.74530494],
					[13.50860333, 45.74557984],
					[13.50815082, 45.74576306],
					[13.50776506, 45.74590135],
					[13.5073899, 45.74606597],
					[13.50702381, 45.74612296],
					[13.50647235, 45.74630201],
					[13.50589538, 45.74644578],
					[13.50539303, 45.7465893],
					[13.50496781, 45.74671388],
					[13.50459707, 45.74683964],
					[13.50429261, 45.74695444],
					[13.50403762, 45.74713898],
					[13.50367045, 45.74745011],
					[13.50304806, 45.74781084],
					[13.50242817, 45.74806631],
					[13.50203073, 45.74833584],
					[13.50173867, 45.74874163],
					[13.50140035, 45.74920094],
					[13.50113046, 45.74961901],
					[13.49890685, 45.75120974],
					[13.49846005, 45.75168633],
					[13.49791634, 45.75220406],
					[13.49752927, 45.75265765],
					[13.49727321, 45.75311232],
					[13.49709213, 45.75361836],
					[13.49689937, 45.75403035],
					[13.49670172, 45.75434434],
					[13.49644887, 45.75461984],
					[13.49635863, 45.75707436],
					[13.49608827, 45.75756097],
					[13.49588192, 45.75807345],
					[13.49573314, 45.75846672],
					[13.49572945, 45.75876486],
					[13.49578774, 45.75911045],
					[13.49568951, 45.75967777],
					[13.49543643, 45.76048291],
					[13.49504673, 45.76117241],
					[13.49465585, 45.7616713],
					[13.49418604, 45.76213062],
					[13.49362004, 45.76262355],
					[13.49288166, 45.76313233],
					[13.49226105, 45.76345205],
					[13.49179721, 45.76363647],
					[13.49137366, 45.76375854],
					[13.49088681, 45.76388943],
					[13.49032783, 45.76401734],
					[13.48982787, 45.76416183],
					[13.48940051, 45.76429605],
					[13.48900354, 45.76444066],
					[13.48861063, 45.76457262],
					[13.48821461, 45.76471663],
					[13.48781574, 45.76485944],
					[13.48741603, 45.76503742],
					[13.48700166, 45.76505947],
					[13.48689556, 45.76525044],
					[13.48679185, 45.76544118],
					[13.48659492, 45.76558816],
					[13.48622322, 45.76570368],
					[13.48563015, 45.76583767],
					[13.48483086, 45.76596916],
					[13.48401725, 45.76611757],
					[13.48322952, 45.76625955],
					[13.48263657, 45.76641095],
					[13.48219275, 45.76652467],
					[13.48177195, 45.76657522],
					[13.48129952, 45.76652551],
					[13.48081851, 45.76651788],
					[13.48048961, 45.76664686],
					[13.48023307, 45.76689613],
					[13.47988164, 45.76716471],
					[13.47948194, 45.76736093],
					[13.47905052, 45.76754642],
					[13.47850132, 45.76775551],
					[13.47773921, 45.76798534],
					[13.4768573, 45.76805735],
					[13.47603202, 45.76796162],
					[13.47523093, 45.76780736],
					[13.47454214, 45.76760864],
					[13.47347927, 45.76840603],
					[13.47380531, 45.76902747],
					[13.47438061, 45.76941681],
					[13.4751749, 45.76949322],
					[13.47598755, 45.7693696],
					[13.47685707, 45.76920891],
					[13.47775388, 45.76904428],
					[13.47871578, 45.76890433],
					[13.47950685, 45.76875925],
					[13.48016906, 45.76862645],
					[13.48075724, 45.76848197],
					[13.48132944, 45.76834822],
					[13.48181546, 45.76820302],
					[13.48222804, 45.76806867],
					[13.48261905, 45.76792395],
					[13.48303485, 45.76779211],
					[13.48351991, 45.76765168],
					[13.48406672, 45.76752174],
					[13.48458242, 45.76736248],
					[13.48515725, 45.76716435],
					[13.48593521, 45.76689637],
					[13.48684835, 45.76663446],
					[13.48768234, 45.76632726],
					[13.488451, 45.7659657],
					[13.48932242, 45.76545608],
					[13.49020195, 45.76531494],
					[13.49059713, 45.76513863],
					[13.49101734, 45.76500046],
					[13.49150515, 45.76486576],
					[13.49206793, 45.76473784],
					[13.49263167, 45.76455498],
					[13.49327302, 45.76428115],
					[13.49399686, 45.76391065],
					[13.49451923, 45.76364744],
					[13.49477625, 45.76346028],
					[13.49490166, 45.76329565],
					[13.49506664, 45.76318967],
					[13.49530494, 45.76312065],
					[13.49557185, 45.76294875],
					[13.49594784, 45.76250875],
					[13.49647772, 45.76172912],
					[13.49687004, 45.76083875],
					[13.49713182, 45.76017571],
					[13.49731505, 45.75962341],
					[13.49750805, 45.7589519],
					[13.49770546, 45.75806975],
					[13.49795794, 45.75728106],
					[13.49797964, 45.75437236],
					[13.49830782, 45.75403488],
					[13.49871266, 45.75360584],
					[13.49929321, 45.75306165],
					[13.49986744, 45.75255227],
					[13.50047076, 45.75213873],
					[13.50092804, 45.75190651],
					[13.5011698, 45.75174224],
					[13.50127256, 45.75155711],
					[13.50384188, 45.749614],
					[13.50440097, 45.74909592],
					[13.50513101, 45.74858177],
					[13.50574827, 45.7482655],
					[13.50619936, 45.74808836],
					[13.50657427, 45.74797344],
					[13.50697458, 45.74783266],
					[13.50752807, 45.74764013],
					[13.50834465, 45.74735034],
					[13.50930452, 45.74701953],
					[13.51006401, 45.7466228],
					[13.51044714, 45.74630475],
					[13.51071692, 45.74610305],
					[13.51111972, 45.74591911],
					[13.51166463, 45.74567652],
					[13.51217926, 45.74548161],
					[13.5126096, 45.74532914],
					[13.51294112, 45.74521518],
					[13.51314127, 45.74507046],
					[13.51324105, 45.74487245],
					[13.51541626, 45.74335492],
					[13.51570427, 45.74327981],
					[13.51594675, 45.74310994],
					[13.51621032, 45.74280035],
					[13.51655495, 45.74241483],
					[13.51681984, 45.742118],
					[13.51705182, 45.74196255],
					[13.51729441, 45.74186075],
					[13.51750791, 45.74164486],
					[13.51776373, 45.74123347],
					[13.51819324, 45.74072003],
					[13.51876473, 45.74018574],
					[13.51950085, 45.73967814],
					[13.5200603, 45.73937905],
					[13.5203762, 45.73916554],
					[13.52062595, 45.73887455],
					[13.52093947, 45.73850834],
					[13.52118862, 45.73820841],
					[13.52146864, 45.73801243],
					[13.52190113, 45.73783612],
					[13.52243304, 45.73761511],
					[13.52285457, 45.73744583],
					[13.52313805, 45.73725176],
					[13.52346766, 45.73691475],
					[13.5240128, 45.73642373],
					[13.52475655, 45.73618543],
					[13.52587914, 45.73550463],
					[13.52672362, 45.73501146],
					[13.52734375, 45.73457074],
					[13.52775443, 45.73419845],
					[13.52815163, 45.73391426],
					[13.52855778, 45.73373568],
					[13.52895296, 45.73359084],
					[13.52933335, 45.73346508],
					[13.52972293, 45.73332536],
					[13.53020155, 45.73319495],
					[13.53090012, 45.73305464],
					[13.53179777, 45.73292255],
					[13.53253114, 45.73275805],
					[13.53311574, 45.73255265],
					[13.53367305, 45.73229086],
					[13.53415382, 45.73208582],
					[13.53457057, 45.73192143],
					[13.53496504, 45.73178983],
					[13.53535843, 45.73164916],
					[13.53575516, 45.73151672],
					[13.53615427, 45.73136985],
					[13.53655422, 45.73123467],
					[13.53695393, 45.73109841],
					[13.53735363, 45.73099721],
					[13.53776336, 45.73077714],
					[13.53847516, 45.73067617],
					[13.53919208, 45.73054004],
					[13.53994131, 45.73040497],
					[13.54052401, 45.73025775],
					[13.54094815, 45.73012281],
					[13.54132581, 45.72997737],
					[13.54178584, 45.72984362],
					[13.54247522, 45.72969866],
					[13.54338896, 45.72956467],
					[13.54419124, 45.72941971],
					[13.54489708, 45.72928572],
					[13.54559422, 45.72914064],
					[13.54633355, 45.72900665],
					[13.54691732, 45.72886145],
					[13.54734993, 45.72872758],
					[13.54773521, 45.7285825],
					[13.54817474, 45.72844851],
					[13.54876244, 45.72830343],
					[13.54947424, 45.72816956],
					[13.5500648, 45.72802556],
					[13.55059063, 45.72789395],
					[13.55127561, 45.72774994],
					[13.55218363, 45.72760701],
					[13.5530256, 45.72742903],
					[13.55452895, 45.72739434],
					[13.55464387, 45.72759974],
					[13.55479443, 45.72779536],
					[13.555112, 45.72789836],
					[13.55561435, 45.72785521],
					[13.55609655, 45.72773254],
					[13.55645955, 45.72773576],
					[13.55671155, 45.72801316],
					[13.55697036, 45.72855377],
					[13.55732155, 45.72910202],
					[13.55760336, 45.72950804],
					[13.55782521, 45.72979975],
					[13.55799937, 45.73001027],
					[13.55822682, 45.73014355],
					[13.55851364, 45.73026145],
					[13.55871487, 45.73047745],
					[13.55867434, 45.73077488],
					[13.55827308, 45.73095286],
					[13.55755186, 45.73093498],
					[13.55683291, 45.73081255],
					[13.55625713, 45.73080111],
					[13.55597734, 45.73104274],
					[13.55599308, 45.73153508],
					[13.55617845, 45.73211432],
					[13.55635786, 45.73277903],
					[13.55608284, 45.73302054],
					[13.55579221, 45.73295558],
					[13.55557525, 45.73281753],
					[13.55540895, 45.73257244],
					[13.55523145, 45.73222184],
					[13.55509424, 45.73178005],
					[13.55331182, 45.73058307],
					[13.55290663, 45.73053968],
					[13.55255425, 45.73033655],
					[13.55227125, 45.73008907],
					[13.55181122, 45.72995901],
					[13.55104792, 45.73003721],
					[13.55027127, 45.7302953],
					[13.54968595, 45.73057747],
					[13.54929841, 45.73088157],
					[13.54908705, 45.73111916],
					[13.54885197, 45.73118877],
					[13.54843855, 45.73109305],
					[13.54785836, 45.73098326],
					[13.54724777, 45.7309767],
					[13.54665113, 45.73114955],
					[13.54616046, 45.73133934],
					[13.54574835, 45.73150456],
					[13.54532492, 45.73163795],
					[13.54479337, 45.73180974],
					[13.54413056, 45.73206365],
					[13.54352474, 45.73243213],
					[13.54310715, 45.73274088],
					[13.54252231, 45.73295581],
					[13.54148197, 45.73322547],
					[13.54023242, 45.73368227],
					[13.53978205, 45.73382485],
					[13.5393424, 45.73403394],
					[13.53884256, 45.73424804],
					[13.53827012, 45.73450386],
					[13.53772151, 45.73470592],
					[13.53455687, 45.73685682],
					[13.53415668, 45.73695755],
					[13.53375673, 45.73709333],
					[13.53335845, 45.73722768],
					[13.53296566, 45.73737574],
					[13.53258002, 45.73751497],
					[13.53218675, 45.73767054],
					[13.53173292, 45.73781288],
					[13.53113234, 45.73792923],
					[13.53040314, 45.73792827],
					[13.529796, 45.73781157],
					[13.52930677, 45.73767388],
					[13.52882564, 45.73753285],
					[13.52835298, 45.73741233],
					[13.52803028, 45.73724544],
					[13.52777243, 45.73699796],
					[13.52740848, 45.73673487],
					[13.52698946, 45.73653436],
					[13.52656555, 45.73633814],
					[13.52483583, 45.73756826],
					[13.52455616, 45.73795438],
					[13.52421415, 45.73834038],
					[13.52394998, 45.73863101],
					[13.52365625, 45.73882973],
					[13.52320874, 45.73906243],
					[13.52269602, 45.73941565],
					[13.52235305, 45.73972285],
					[13.5220437, 45.73993444],
					[13.52159095, 45.74017274],
					[13.52105761, 45.74054635],
					[13.52069604, 45.74091578],
					[13.52046812, 45.74121761],
					[13.52031422, 45.74144185],
					[13.52009583, 45.74159181],
					[13.51975036, 45.74174511],
					[13.51934981, 45.74200714],
					[13.51896691, 45.74235523],
					[13.51852155, 45.74277306],
					[13.51810622, 45.74325788],
					[13.51778066, 45.74391556],
					[13.51785052, 45.74469936],
					[13.51835024, 45.74531937],
					[13.51895976, 45.74567854],
					[13.51957536, 45.74596596],
					[13.51951015, 45.74628913],
					[13.51896834, 45.74650931],
					[13.51856017, 45.74666524],
					[13.51843536, 45.74687815],
					[13.51874888, 45.74727023],
					[13.51945984, 45.74777603],
					[13.52011681, 45.74812496],
					[13.52058494, 45.74831486],
					[13.52090848, 45.74833357],
					[13.52115846, 45.74815512],
					[13.52149427, 45.74775624],
					[13.52201116, 45.74720395],
					[13.52250135, 45.74673271],
					[13.52308857, 45.74646795],
					[13.52380574, 45.74653745],
					[13.52447367, 45.74690616],
					[13.52492607, 45.74734282],
					[13.52678454, 45.74871945],
					[13.52645564, 45.74905133],
					[13.52606177, 45.74942362],
					[13.52552128, 45.74979913],
					[13.52507925, 45.75003672],
					[13.52484155, 45.75021052],
					[13.52469206, 45.75038874],
					[13.52440715, 45.75054252],
					[13.5238955, 45.75066447],
					[13.52326584, 45.75074208],
					[13.52254927, 45.75065756],
					[13.52188325, 45.75044417],
					[13.52143312, 45.75035048],
					[13.52120483, 45.75044107],
					[13.52107728, 45.75062215],
					[13.52090025, 45.75077081],
					[13.52066565, 45.75087905],
					[13.52046525, 45.75103855],
					[13.52026355, 45.75128615],
					[13.51991105, 45.75155115],
					[13.5193305, 45.75174272],
					[13.51831531, 45.75190032],
					[13.51689494, 45.75203073],
					[13.51575673, 45.75216222],
					[13.51486301, 45.75226045],
					[13.51458085, 45.75248158],
					[13.51419234, 45.75258255],
					[13.51380241, 45.75271881],
					[13.51338911, 45.75285375],
					[13.51289916, 45.75300097],
					[13.51229382, 45.75313616],
					[13.51160824, 45.75328135],
					[13.51081967, 45.75341535],
					[13.51002765, 45.75356054],
					[13.50913274, 45.75369513],
					[13.50812328, 45.75384033],
					[13.50700438, 45.75397146],
					[13.50621665, 45.75410747],
					[13.50579727, 45.75422728],
					[13.50561213, 45.75437844],
					[13.50550628, 45.75455964],
					[13.50532711, 45.75469875],
					[13.50505245, 45.75477982],
					[13.50324905, 45.75599205],
					[13.50311041, 45.75626612],
					[13.50289404, 45.75655735],
					[13.50260437, 45.75689912],
					[13.50220764, 45.75730574],
					[13.50182343, 45.75773764],
					[13.50141394, 45.75822878],
					[13.50103092, 45.75875831],
					[13.50055313, 45.75929594],
					[13.49995971, 45.75987053],
					[13.49922705, 45.76050794],
					[13.49872518, 45.76100373],
					[13.49842906, 45.76138926],
					[13.49826396, 45.76176834],
					[13.49819064, 45.76216125],
					[13.49828184, 45.76266992],
					[13.49844563, 45.76331031],
					[13.49867284, 45.76382566],
					[13.49897957, 45.76416624],
					[13.49947906, 45.76431203],
					[13.50006342, 45.76420283],
					[13.50050676, 45.76393151],
					[13.50076985, 45.76332724],
					[13.50099123, 45.76232302],
					[13.50131488, 45.76134765],
					[13.50180256, 45.76146483],
					[13.50194788, 45.76126206],
					[13.50209975, 45.76102173],
					[13.50229657, 45.76075685],
					[13.50249016, 45.76048768],
					[13.50270116, 45.76020706],
					[13.50289094, 45.75986183],
					[13.50308466, 45.75937438],
					[13.50325143, 45.75880194],
					[13.50345743, 45.75845325],
					[13.50371242, 45.75830507],
					[13.50395262, 45.75814807],
					[13.50421834, 45.75785995],
					[13.50455976, 45.75748122],
					[13.50482106, 45.75717413],
					[13.50507605, 45.75699544],
					[13.50541234, 45.75688744],
					[13.50579226, 45.75677502],
					[13.50612581, 45.75666785],
					[13.50633895, 45.75650966],
					[13.506464, 45.75627208],
					[13.50660264, 45.75600028],
					[13.50684094, 45.75576282],
					[13.50747645, 45.75561357],
					[13.50864255, 45.75553787],
					[13.50942695, 45.75533044],
					[13.51006401, 45.75522935],
					[13.51066446, 45.75509357],
					[13.51133084, 45.75496113],
					[13.51212037, 45.75481856],
					[13.51302695, 45.75468576],
					[13.51373434, 45.75452077],
					[13.51430583, 45.75431561],
					[13.51494682, 45.75405455],
					[13.51572585, 45.75385237],
					[13.51673496, 45.7536931],
					[13.5179646, 45.75356102],
					[13.51888704, 45.75339234],
					[13.51963651, 45.75317526],
					[13.52058256, 45.75291872],
					[13.52164125, 45.75280416],
					[13.52227557, 45.75289536],
					[13.52255273, 45.75320494],
					[13.52278495, 45.75378823],
					[13.5230726, 45.75461662],
					[13.52333641, 45.75535083],
					[13.52317047, 45.75593615],
					[13.5225141, 45.75645435],
					[13.52180338, 45.75680983],
					[13.52114332, 45.75711906],
					[13.52121985, 45.76411295],
					[13.52145493, 45.7643733],
					[13.52163672, 45.76458704],
					[13.52184832, 45.76472342],
					[13.52210236, 45.76485264],
					[13.52231348, 45.76513064],
					[13.52248323, 45.7655797],
					[13.52267778, 45.76599205],
					[13.52286625, 45.76635551],
					[13.52307367, 45.76677716],
					[13.52326298, 45.76727927],
					[13.52346444, 45.76769137],
					[13.52365375, 45.76800585],
					[13.52388895, 45.76829982],
					[13.52418065, 45.76863837],
					[13.52454913, 45.76902401],
					[13.52483392, 45.76936805],
					[13.52507663, 45.76968086],
					[13.52533674, 45.77003038],
					[13.52571845, 45.77045166],
					[13.52621567, 45.77088737],
					[13.52701652, 45.77129471],
					[13.52804327, 45.77157795],
					[13.53108931, 45.77360725],
					[13.53138018, 45.77413487],
					[13.53174221, 45.77460194],
					[13.53202653, 45.77497804],
					[13.53228056, 45.77535284],
					[13.53256214, 45.77580404],
					[13.53294468, 45.77627325],
					[13.53332984, 45.77670693],
					[13.53377914, 45.77715695],
					[13.53425801, 45.77764261],
					[13.53481138, 45.77817154],
					[13.53525913, 45.77860522],
					[13.53574598, 45.77894795],
					[13.53639793, 45.77926874],
					[13.537238, 45.77964497],
					[13.5380069, 45.77991211],
					[13.53856695, 45.78008223],
					[13.53900826, 45.78017914],
					[13.5417546, 45.78206027],
					[13.54216635, 45.78215706],
					[13.54255855, 45.78228402],
					[13.54288304, 45.78240454],
					[13.54309034, 45.78255594],
					[13.54323077, 45.78273416],
					[13.54342234, 45.78287303],
					[13.54366291, 45.78297246],
					[13.54384828, 45.78310192],
					[13.54399145, 45.78327036],
					[13.54424655, 45.78344345],
					[13.54470396, 45.78368402],
					[13.54525101, 45.78406215],
					[13.54562545, 45.78443146],
					[13.54587436, 45.78474367],
					[13.54605591, 45.7850244],
					[13.54625416, 45.78529716],
					[13.54645467, 45.78557324],
					[13.54668581, 45.78585982],
					[13.54687285, 45.78616285],
					[13.54693615, 45.78647113],
					[13.54670691, 45.78671134],
					[13.54619181, 45.78676081],
					[13.54522967, 45.78665876],
					[13.54371035, 45.78654122],
					[13.54288685, 45.78636455],
					[13.54158294, 45.78595197],
					[13.54045367, 45.78546154],
					[13.53979206, 45.78514075],
					[13.53952765, 45.78494155],
					[13.53944016, 45.78475976],
					[13.53936386, 45.78458905],
					[13.53415751, 45.78459823],
					[13.53238475, 45.78580844],
					[13.53223288, 45.78614986],
					[13.53207338, 45.78657627],
					[13.53202975, 45.78709507],
					[13.53209341, 45.78753972],
					[13.53221452, 45.78788924],
					[13.53259027, 45.78813136],
					[13.53315735, 45.78817046],
					[13.53379345, 45.78802776],
					[13.53462172, 45.78780162],
					[13.53576386, 45.7875483],
					[13.53710794, 45.78743672],
					[13.53819084, 45.78745484],
					[13.53798795, 45.79031456],
					[13.53821242, 45.79068744],
					[13.53841257, 45.79103684],
					[13.53873098, 45.79125834],
					[13.53921592, 45.79138696],
					[13.53970194, 45.79151511],
					[13.54016066, 45.79164302],
					[13.54066932, 45.79179561],
					[13.54126787, 45.79194355],
					[13.54185975, 45.79208016],
					[13.54237843, 45.79211426],
					[13.54269147, 45.79199815],
					[13.54287267, 45.79172266],
					[13.54308343, 45.79127324],
					[13.54335594, 45.79067385],
					[13.54369521, 45.79013431],
					[13.54393005, 45.78978384],
					[13.54415834, 45.78959131],
					[13.54457712, 45.78947175],
					[13.54535997, 45.78942037],
					[13.5464946, 45.78961515],
					[13.54741812, 45.79008615],
					[13.54766691, 45.79055047],
					[13.54744732, 45.79095852],
					[13.54700267, 45.79137194],
					[13.54657245, 45.79177976],
					[13.54613531, 45.79220295],
					[13.54574466, 45.79261863],
					[13.54532015, 45.79304814],
					[13.54492223, 45.79346561],
					[13.54451621, 45.79387557],
					[13.54424667, 45.79422176],
					[13.54413664, 45.79451525],
					[13.54421854, 45.79478955],
					[13.54434395, 45.79506135],
					[13.54472864, 45.79525065],
					[13.54545367, 45.79517817],
					[13.54590702, 45.79501355],
					[13.54621434, 45.79471076],
					[13.54655504, 45.79431832],
					[13.54682076, 45.7939651],
					[13.54703581, 45.79367185],
					[13.5472157, 45.79339993],
					[13.54746616, 45.79309201],
					[13.54785335, 45.79267752],
					[13.54841423, 45.79215443],
					[13.54890227, 45.79167354],
					[13.54934645, 45.79123402],
					[13.54972994, 45.79080641],
					[13.55017388, 45.79029298],
					[13.55066204, 45.78967154],
					[13.55122387, 45.78900504],
					[13.55161464, 45.78845584],
					[13.55187011, 45.78807676],
					[13.55204737, 45.78777385],
					[13.55222666, 45.78744686],
					[13.55239654, 45.78706956],
					[13.55263162, 45.78670144],
					[13.55299497, 45.78629196],
					[13.55357933, 45.78578365],
					[13.5557307, 45.78571415],
					[13.55593026, 45.78557468],
					[13.55574346, 45.78271234],
					[13.55665743, 45.78269374],
					[13.55776966, 45.78280342],
					[13.5586946, 45.78305137],
					[13.55942547, 45.78327167],
					[13.56035173, 45.78342426],
					[13.5615983, 45.78344715],
					[13.56259775, 45.78334463],
					[13.56324744, 45.78313971],
					[13.56354403, 45.78269935],
					[13.56354833, 45.78205001],
					[13.56330657, 45.78159654],
					[13.56282592, 45.78133523],
					[13.56215513, 45.78110814],
					[13.56146491, 45.78094876],
					[13.56086767, 45.78077877],
					[13.56029582, 45.78047514],
					[13.5597856, 45.77987802],
					[13.55961084, 45.77912712],
					[13.55974758, 45.77850616],
					[13.56003094, 45.77803755],
					[13.56046891, 45.77778566],
					[13.56100714, 45.77779615],
					[13.56160295, 45.77793455],
					[13.56216145, 45.77814114],
					[13.56252193, 45.77811408],
					[13.56288922, 45.77807105],
					[13.56326795, 45.77810454],
					[13.56373072, 45.77809143],
					[13.56442821, 45.77798235],
					[13.56541312, 45.77784693],
					[13.56642616, 45.77769411],
					[13.5674088, 45.77755606],
					[13.56809545, 45.77741051],
					[13.56853425, 45.77727723],
					[13.56889427, 45.77713203],
					[13.56933248, 45.77699435],
					[13.57001936, 45.77683973],
					[13.57100463, 45.77669692],
					[13.57202518, 45.77657604],
					[13.57302058, 45.77656412],
					[13.57370877, 45.77666616],
					[13.57408655, 45.77682745],
					[13.57425332, 45.77711916],
					[13.57435441, 45.77753174],
					[13.57459891, 45.77786005],
					[13.57512093, 45.77815533],
					[13.57584524, 45.77851677],
					[13.57646751, 45.77879441],
					[13.57697022, 45.77902961],
					[13.57815587, 45.77893114],
					[13.57843888, 45.77885973],
					[13.57863677, 45.77892113],
					[13.57877028, 45.77907276],
					[13.57894576, 45.77920365],
					[13.57918525, 45.77933121],
					[13.57946801, 45.77961421],
					[13.57992434, 45.78013766],
					[13.58062625, 45.78069007],
					[13.58118296, 45.78090346],
					[13.58146572, 45.78075886],
					[13.58160186, 45.78044534],
					[13.58176684, 45.78021312],
					[13.58198714, 45.78008151],
					[13.58219945, 45.77992415],
					[13.58249748, 45.77968144],
					[13.58307683, 45.77941704],
					[13.58383834, 45.77922225],
					[13.58446217, 45.77906466],
					[13.58492196, 45.77895582],
					[13.58531106, 45.77889037],
					[13.58569133, 45.77888012],
					[13.58609331, 45.77880061],
					[13.58654404, 45.77864027],
					[13.58705354, 45.77838445],
					[13.58717573, 45.77801216],
					[13.58769751, 45.77754796],
					[13.58811545, 45.77711988],
					[13.58850837, 45.77670658],
					[13.58878052, 45.77635658],
					[13.58897185, 45.77606952],
					[13.58910131, 45.77584457],
					[13.58930945, 45.77569807],
					[13.58975315, 45.77559507],
					[13.5905354, 45.7754755],
					[13.59151697, 45.77534091],
					[13.59213054, 45.77512085],
					[13.59246802, 45.77482653],
					[13.59295595, 45.77461421],
					[13.59367216, 45.77448595],
					[13.59414184, 45.77434027],
					[13.59432685, 45.77417111],
					[13.59450006, 45.77408016],
					[13.59491575, 45.77411795],
					[13.59577894, 45.77416873],
					[13.59707701, 45.77396107],
					[13.59819055, 45.77342832],
					[13.59876585, 45.77291274],
					[13.59913576, 45.77263021],
					[13.59959042, 45.77251291],
					[13.60037005, 45.77210855],
					[13.60098124, 45.77188897],
					[13.60176635, 45.77158844],
					[13.60272658, 45.77129507],
					[13.60375178, 45.77107275],
					[13.60486722, 45.77115345],
					[13.60603964, 45.77156174],
					[13.61200023, 45.77173376],
					[13.61269677, 45.7715559],
					[13.61343515, 45.77141297],
					[13.61401558, 45.77126861],
					[13.61447132, 45.77113616],
					[13.61496174, 45.7709918],
					[13.61560786, 45.77086043],
					[13.61640143, 45.77072513],
					[13.61724865, 45.77060866],
					[13.61774576, 45.77046525],
					[13.61794937, 45.77028787],
					[13.61816192, 45.77012026],
					[13.61855698, 45.76993024],
					[13.61909711, 45.76967788],
					[13.61961961, 45.76947558],
					[13.62014401, 45.76931143],
					[13.62075221, 45.76917875],
					[13.62144423, 45.76903582],
					[13.62225413, 45.76889706],
					[13.62305236, 45.76874411],
					[13.62383437, 45.76862156],
					[13.62445676, 45.76855791],
					[13.62498486, 45.76861334],
					[13.62549245, 45.76870954],
					[13.62591243, 45.76882255],
					[13.62586141, 45.76910913],
					[13.62612843, 45.76940775],
					[13.62639737, 45.76970804],
					[13.62677181, 45.76997805],
					[13.62721002, 45.7701683],
					[13.62772322, 45.77033806],
					[13.62836111, 45.77048886],
					[13.62910104, 45.77059555],
					[13.62991095, 45.77049887],
					[13.63047945, 45.77011871],
					[13.63062954, 45.76962554],
					[13.63043976, 45.76930857],
					[13.63005161, 45.76916385],
					[13.62960148, 45.76906252],
					[13.62922013, 45.76894557],
					[13.62908888, 45.76867413],
					[13.62941074, 45.76816845],
					[13.63020468, 45.76760745],
					[13.63105655, 45.7672621],
					[13.63179803, 45.76704097],
					[13.63252497, 45.76679266],
					[13.63314795, 45.76642477],
					[13.63349855, 45.76610816],
					[13.63373816, 45.76593041],
					[13.63400304, 45.76585054],
					[13.63411522, 45.76584125],
					[13.63456142, 45.76531768],
					[13.63513362, 45.76469672],
					[13.63561952, 45.76408815],
					[13.63603127, 45.76359463],
					[13.63629651, 45.76328385],
					[13.63652325, 45.76313138],
					[13.63676667, 45.76304567],
					[13.63695765, 45.76292372],
					[13.63710284, 45.76276445],
					[13.63730156, 45.76263404],
					[13.63755524, 45.76249671],
					[13.63776815, 45.76220906],
					[13.63793933, 45.76174962],
					[13.63813436, 45.76133561],
					[13.63832355, 45.76101434],
					[13.63853192, 45.76073205],
					[13.63872075, 45.7604351],
					[13.63891566, 45.76009452],
					[13.63908696, 45.75975263],
					[13.63930225, 45.75953817],
					[13.63956046, 45.75942421],
					[13.63976204, 45.75929296],
					[13.63989115, 45.75911117],
					[13.64001656, 45.75892413],
					[13.64033926, 45.75900042],
					[13.64060175, 45.75871396],
					[13.64104402, 45.75830877],
					[13.6417371, 45.75783324],
					[13.64229631, 45.75752854],
					[13.64262104, 45.75730574],
					[13.64287508, 45.75701082],
					[13.64318264, 45.75664425],
					[13.64341044, 45.75634587],
					[13.64366341, 45.75615036],
					[13.64412665, 45.75596905],
					[13.64489806, 45.75573015],
					[13.64589334, 45.75553393],
					[13.6484673, 45.75396502],
					[13.64874947, 45.75385094],
					[13.6489495, 45.75363767],
					[13.64909315, 45.75334334],
					[13.64928961, 45.75313115],
					[13.64953876, 45.75300705],
					[13.64973915, 45.75286984],
					[13.64988887, 45.75270045],
					[13.65008545, 45.75256383],
					[13.65032625, 45.75246024],
					[13.65051568, 45.75232065],
					[13.65068281, 45.75214255],
					[13.65099013, 45.75199151],
					[13.65147996, 45.75187111],
					[13.65197778, 45.75174415],
					[13.65243566, 45.75164735],
					[13.65405238, 45.75042856],
					[13.65461421, 45.7499423],
					[13.65535176, 45.74950135],
					[13.65598416, 45.74930108],
					[13.65644252, 45.74919856],
					[13.65675807, 45.74911368],
					[13.65693641, 45.74898231],
					[13.65705466, 45.74880743],
					[13.65728045, 45.74864244],
					[13.65771186, 45.74845815],
					[13.65829241, 45.74820292],
					[13.65883267, 45.74795616],
					[13.65924501, 45.7476685],
					[13.65948963, 45.7473464],
					[13.65969658, 45.74697375],
					[13.65996575, 45.74655736],
					[13.66045105, 45.7462182],
					[13.66110611, 45.74600828],
					[13.66764104, 45.74167073],
					[13.66792631, 45.74159837],
					[13.66813338, 45.74145377],
					[13.66829038, 45.74121797],
					[13.66848886, 45.74092793],
					[13.66874075, 45.74062407],
					[13.66910911, 45.74036014],
					[13.66951716, 45.74018645],
					[13.66996837, 45.74001205],
					[13.67059636, 45.73974848],
					[13.67151511, 45.73931634],
					[13.67259085, 45.73882735],
					[13.67364705, 45.73829401],
					[13.67436945, 45.73795426],
					[13.67482865, 45.73776984],
					[13.6752094, 45.73765361],
					[13.67563057, 45.73749483],
					[13.67614305, 45.73724365],
					[13.67666841, 45.73687255],
					[13.67699957, 45.73656297],
					[13.67728424, 45.73636317],
					[13.67771161, 45.73614061],
					[13.67828107, 45.73574615],
					[13.67887914, 45.73523116],
					[13.67964315, 45.73459506],
					[13.67966795, 45.73401785],
					[13.68007231, 45.73384595],
					[13.68066084, 45.73354161],
					[13.68139446, 45.73302543],
					[13.68194795, 45.73251355],
					[13.68234766, 45.73208404],
					[13.68259013, 45.73178887],
					[13.68290746, 45.7315675],
					[13.68353951, 45.73125148],
					[13.68441725, 45.73078561],
					[13.68505442, 45.73045862],
					[13.68535125, 45.73025167],
					[13.68548477, 45.73007977],
					[13.68565655, 45.7299546],
					[13.68588984, 45.72985947],
					[13.68607986, 45.72972655],
					[13.68622684, 45.72955632],
					[13.68645561, 45.72940421],
					[13.68681252, 45.72923827],
					[13.68719292, 45.72897434],
					[13.68746126, 45.72864997],
					[13.68766701, 45.72828901],
					[13.68782496, 45.72793734],
					[13.68803155, 45.72771931],
					[13.68831575, 45.72761476],
					[13.68978524, 45.72654247],
					[13.68982804, 45.72622371],
					[13.68999922, 45.72606421],
					[13.69024181, 45.72602427],
					[13.69264603, 45.72425055],
					[13.69281721, 45.72381222],
					[13.69350195, 45.72317445],
					[13.69367325, 45.722736],
					[13.69617724, 45.72075784],
					[13.69622016, 45.72058845],
					[13.69639134, 45.72046888],
					[13.69663382, 45.72043896],
					[13.69886005, 45.71887791],
					[13.69911945, 45.71857035],
					[13.69950795, 45.71829927],
					[13.69994557, 45.71811914],
					[13.70035756, 45.71797836],
					[13.700688, 45.71786535],
					[13.70089471, 45.7177211],
					[13.70103443, 45.71754634],
					[13.70122993, 45.71740937],
					[13.70148325, 45.71730936],
					[13.70168293, 45.71716976],
					[13.70180082, 45.71697283],
					[13.70412445, 45.71534693],
					[13.70448124, 45.71523726],
					[13.705109, 45.71479893],
					[13.70526588, 45.71454966],
					[13.7075181, 45.71297967],
					[13.70810044, 45.71268785],
					[13.70867693, 45.71228516],
					[13.70911765, 45.71190011],
					[13.70953035, 45.71161044],
					[13.70987725, 45.71144354],
					[13.71009326, 45.71129584],
					[13.71021354, 45.71111465],
					[13.71032834, 45.71093202],
					[13.7109375, 45.7109375],
					[13.7109375, 45.71065843],
					[13.71113718, 45.71065843],
					[13.71304095, 45.70918786],
					[13.71259236, 45.70793116],
					[13.71204591, 45.70703685],
					[13.71165717, 45.70654893],
					[13.7114104, 45.70627165],
					[13.71126676, 45.70606685],
					[13.71114028, 45.70589614],
					[13.7109375, 45.70591521],
					[13.7109375, 45.703125],
					[13.71133566, 45.703125],
					[13.71129823, 45.70298004],
					[13.71159625, 45.70287907],
					[13.71194887, 45.70277834],
					[13.71232283, 45.70265555],
					[13.71264505, 45.70253861],
					[13.71287704, 45.70236933],
					[13.7131114, 45.70211697],
					[13.71347642, 45.70184874],
					[13.71388912, 45.70165265],
					[13.71428275, 45.70149493],
					[13.71466565, 45.70139074],
					[13.71512771, 45.70134211],
					[13.71584094, 45.70136023],
					[13.71687424, 45.70127904],
					[13.71793854, 45.70105457],
					[13.71893775, 45.70084774],
					[13.71986246, 45.70067585],
					[13.72078741, 45.70054221],
					[13.72145414, 45.70040572],
					[13.72189856, 45.70027673],
					[13.7222985, 45.70011473],
					[13.72282255, 45.69991255],
					[13.72357011, 45.69965255],
					[13.72441936, 45.69943595],
					[13.72516561, 45.69922566],
					[13.72540414, 45.69921255],
					[13.72598946, 45.69900846],
					[13.72666574, 45.69879365],
					[13.72736096, 45.69851422],
					[13.72799432, 45.69824314],
					[13.72857106, 45.69797277],
					[13.72897744, 45.69778514],
					[13.72919095, 45.69762242],
					[13.72933865, 45.69744945],
					[13.7296257, 45.69731116],
					[13.73010421, 45.69719851],
					[13.73061216, 45.69704914],
					[13.73113251, 45.69685435],
					[13.73171043, 45.69658804],
					[13.73232758, 45.69632614],
					[13.73307943, 45.69601071],
					[13.73396945, 45.69561982],
					[13.73486662, 45.69506288],
					[13.73555803, 45.69448066],
					[13.73615074, 45.69391596],
					[13.73651576, 45.69348943],
					[13.73673737, 45.69318426],
					[13.73688626, 45.69296265],
					[13.73708367, 45.69282961],
					[13.73736227, 45.69276321],
					[13.73780406, 45.69260073],
					[13.73838174, 45.69231057],
					[13.73891854, 45.69193435],
					[13.73924172, 45.69163108],
					[13.73949134, 45.69145644],
					[13.73982775, 45.69129801],
					[13.74027467, 45.69098461],
					[13.74083614, 45.69047344],
					[13.74152994, 45.68984032],
					[13.74198878, 45.68939316],
					[13.74231815, 45.68916202],
					[13.74274075, 45.68899167],
					[13.74326265, 45.6887778],
					[13.74368763, 45.68860865],
					[13.74396622, 45.68842053],
					[13.74422514, 45.68812442],
					[13.7445662, 45.68773293],
					[13.74484611, 45.68734372],
					[13.74665988, 45.68600917],
					[13.74695063, 45.68563235],
					[13.74740255, 45.68518555],
					[13.74799192, 45.68465197],
					[13.74871194, 45.68402207],
					[13.74919307, 45.68343365],
					[13.74950993, 45.68271208],
					[13.74985635, 45.68176806],
					[13.75037944, 45.68104756],
					[13.75090206, 45.68071318],
					[13.75139427, 45.68054378],
					[13.75193465, 45.68035054],
					[13.75249493, 45.68000674],
					[13.75286531, 45.67955124],
					[13.75306284, 45.67883956],
					[13.75305033, 45.67780721],
					[13.75288355, 45.67679572],
					[13.75271845, 45.67571604],
					[13.7563318, 45.67310596],
					[13.75619483, 45.67284727],
					[13.75609004, 45.67263925],
					[13.75617063, 45.67251527],
					[13.75640285, 45.67239416],
					[13.75668132, 45.67207515],
					[13.75706375, 45.67145467],
					[13.75759256, 45.67073333],
					[13.75798094, 45.67014885],
					[13.75824225, 45.66975856],
					[13.75843978, 45.66947293],
					[13.75867546, 45.66921532],
					[13.75860834, 45.66671383],
					[13.7584269, 45.66643524],
					[13.75842214, 45.66615486],
					[13.75858855, 45.66586995],
					[13.75878596, 45.66557932],
					[13.75898373, 45.6652956],
					[13.75914145, 45.66506505],
					[13.75935853, 45.66496158],
					[13.75972354, 45.66501033],
					[13.76024985, 45.66510832],
					[13.76087058, 45.66500735],
					[13.76133692, 45.66457307],
					[13.76145315, 45.66398561],
					[13.76127172, 45.66361642],
					[13.76097512, 45.66340721],
					[13.76078022, 45.66306877],
					[13.76079583, 45.66250312],
					[13.76097775, 45.66195405],
					[13.76117885, 45.66143095],
					[13.76136434, 45.66087294],
					[13.76148832, 45.66028512],
					[13.76166701, 45.65992367],
					[13.76209235, 45.65975797],
					[13.76300824, 45.65964556],
					[13.76450872, 45.65957105],
					[13.76552582, 45.65917885],
					[13.76538444, 45.65890122],
					[13.76519096, 45.65862453],
					[13.76499081, 45.65834844],
					[13.76475215, 45.65806651],
					[13.76451266, 45.65776253],
					[13.76431262, 45.65742183],
					[13.76439464, 45.65708625],
					[13.76499343, 45.65687001],
					[13.76602638, 45.65671015],
					[13.76685274, 45.65644717],
					[13.76734054, 45.65601254],
					[13.76771843, 45.65532517],
					[13.76798785, 45.65449202],
					[13.76822901, 45.65384316],
					[13.76843226, 45.65335095],
					[13.76855135, 45.6529119],
					[13.7683773, 45.65243626],
					[13.76789963, 45.65201294],
					[13.76746082, 45.65176046],
					[13.76713586, 45.65151775],
					[13.76665723, 45.65112507],
					[13.76575506, 45.65068316],
					[13.76467335, 45.65056038],
					[13.7636379, 45.65075946],
					[13.76196182, 45.651021],
					[13.76198566, 45.65075254],
					[13.76225555, 45.65035844],
					[13.76278543, 45.64984536],
					[13.76318884, 45.64941776],
					[13.76334214, 45.64913178],
					[13.76314902, 45.64899003],
					[13.76273024, 45.64899898],
					[13.76237261, 45.64917314],
					[13.76207483, 45.64951026],
					[13.76173413, 45.64992535],
					[13.76144302, 45.6502068],
					[13.76107848, 45.65018821],
					[13.76059413, 45.649845],
					[13.76016605, 45.64938676],
					[13.75971055, 45.64889765],
					[13.75917006, 45.64843225],
					[13.75838304, 45.64804804],
					[13.75761986, 45.64792526],
					[13.75734234, 45.64805174],
					[13.75758553, 45.64828718],
					[13.75803626, 45.64848244],
					[13.75990927, 45.64969313],
					[13.75971031, 45.64983261],
					[13.75613201, 45.64990342],
					[13.75561035, 45.6500591],
					[13.75511837, 45.65009081],
					[13.7547816, 45.64995122],
					[13.75450122, 45.64964545],
					[13.75412953, 45.64922905],
					[13.75374877, 45.64879704],
					[13.75332475, 45.64835441],
					[13.75294912, 45.64793491],
					[13.75259447, 45.64754474],
					[13.75234544, 45.64725494],
					[13.75201654, 45.64702916],
					[13.75138104, 45.64670944],
					[13.75050592, 45.64624202],
					[13.74987257, 45.64591587],
					[13.74957776, 45.64571416],
					[13.74943995, 45.64555216],
					[13.74925113, 45.64543057],
					[13.74898827, 45.64529514],
					[13.74880266, 45.64501715],
					[13.74882925, 45.64461505],
					[13.74911642, 45.64434028],
					[13.74955523, 45.64418674],
					[13.74987364, 45.64397788],
					[13.75004363, 45.64364123],
					[13.74975598, 45.64316905],
					[13.74936521, 45.64255726],
					[13.74864161, 45.64211905],
					[13.74761498, 45.64183652],
					[13.74672234, 45.64158106],
					[13.74612665, 45.64139605],
					[13.74572253, 45.64125001],
					[13.74543405, 45.64113665],
					[13.74525225, 45.64099801],
					[13.74508464, 45.64083075],
					[13.74475145, 45.64068592],
					[13.74424827, 45.64052081],
					[13.74388325, 45.64022422],
					[13.74385321, 45.63979793],
					[13.74397862, 45.63929737],
					[13.74415696, 45.63887656],
					[13.74892366, 45.6389271],
					[13.74962544, 45.63877046],
					[13.75031137, 45.63862836],
					[13.75069046, 45.63839865],
					[13.75072491, 45.63804758],
					[13.75054812, 45.63771105],
					[13.75028551, 45.63746548],
					[13.74983561, 45.63732564],
					[13.74922955, 45.63721907],
					[13.74885726, 45.63701081],
					[13.74882376, 45.63666832],
					[13.74899554, 45.63631773],
					[13.74917757, 45.63600194],
					[13.74936748, 45.63571811],
					[13.74965644, 45.63549006],
					[13.75034904, 45.63537216],
					[13.75148535, 45.63537395],
					[13.75250137, 45.63541436],
					[13.75353098, 45.63539207],
					[13.75478792, 45.63541675],
					[13.75589442, 45.63553846],
					[13.76079285, 45.63548243],
					[13.76152956, 45.6348145],
					[13.76181734, 45.63432455],
					[13.76172805, 45.63394618],
					[13.76149285, 45.63362193],
					[13.76107144, 45.63342595],
					[13.76043832, 45.63330603],
					[13.75976861, 45.63311946],
					[13.75885546, 45.63278246],
					[13.75745726, 45.63229752],
					[13.75600827, 45.63196313],
					[13.75521922, 45.63175535],
					[13.75495493, 45.63158643],
					[13.75479674, 45.63146997],
					[13.75457811, 45.63138986],
					[13.75435674, 45.63125885],
					[13.75417113, 45.6310153],
					[13.75407052, 45.63062584],
					[13.75427186, 45.63007355],
					[13.75475764, 45.62948978],
					[13.75514376, 45.62910032],
					[13.75542903, 45.62892151],
					[13.75568783, 45.62883687],
					[13.75587285, 45.62871516],
					[13.75597727, 45.62852848],
					[13.75611711, 45.62837756],
					[13.75651574, 45.62855494],
					[13.75693774, 45.62869716],
					[13.75741315, 45.62884271],
					[13.75792623, 45.62898147],
					[13.75839734, 45.62914002],
					[13.75901175, 45.62928045],
					[13.76014316, 45.62936842],
					[13.76179791, 45.62928963],
					[13.76307404, 45.62908435],
					[13.76379871, 45.62899816],
					[13.76428962, 45.62906682],
					[13.76472831, 45.62918317],
					[13.76504695, 45.62936854],
					[13.7653352, 45.62967098],
					[13.76570213, 45.63005865],
					[13.76599658, 45.63042963],
					[13.7661854, 45.63080025],
					[13.76617277, 45.63120985],
					[13.76598644, 45.63161695],
					[13.76579225, 45.63202286],
					[13.76568234, 45.63240325],
					[13.76576555, 45.63283277],
					[13.76595473, 45.63335073],
					[13.76622617, 45.63383317],
					[13.76606715, 45.63407171],
					[13.76695156, 45.63417256],
					[13.76810324, 45.63427806],
					[13.76928163, 45.63441491],
					[13.77043772, 45.63455224],
					[13.77123368, 45.63470924],
					[13.77176225, 45.63486016],
					[13.77225018, 45.63500094],
					[13.77272356, 45.63503456],
					[13.77295017, 45.63489461],
					[13.77283311, 45.63454521],
					[13.77251875, 45.63399494],
					[13.77238464, 45.63338816],
					[13.77247906, 45.63294184],
					[13.77264226, 45.63269055],
					[13.77290022, 45.63262355],
					[13.77332914, 45.63268113],
					[13.77391255, 45.63271987],
					[13.77455163, 45.63277328],
					[13.77525806, 45.63296175],
					[13.7759341, 45.63315976],
					[13.77645135, 45.63331223],
					[13.77680242, 45.63333547],
					[13.77699721, 45.63321316],
					[13.77708733, 45.63300025],
					[13.77740705, 45.63262105],
					[13.7775619, 45.63218951],
					[13.77771306, 45.63183665],
					[13.77771664, 45.63154197],
					[13.77756965, 45.63126337],
					[13.77740633, 45.63098371],
					[13.77721441, 45.63071442],
					[13.77690184, 45.63049364],
					[13.77618015, 45.63035524],
					[13.77508604, 45.63024521],
					[13.77435112, 45.63003886],
					[13.7740283, 45.62971032],
					[13.77388275, 45.62937927],
					[13.77391684, 45.62904716],
					[13.77412868, 45.62860644],
					[13.77444553, 45.62798238],
					[13.77485442, 45.62729681],
					[13.77517128, 45.62667894],
					[13.77534652, 45.62629235],
					[13.77524495, 45.62612081],
					[13.77480614, 45.62604892],
					[13.77400124, 45.62596536],
					[13.77299094, 45.62580371],
					[13.77235425, 45.62535977],
					[13.77206242, 45.6245445],
					[13.77259183, 45.62398982],
					[13.77269614, 45.62378824],
					[13.77290153, 45.62363935],
					[13.77323031, 45.62352622],
					[13.77362478, 45.62339711],
					[13.77404022, 45.62327051],
					[13.77446485, 45.62311423],
					[13.77489138, 45.62292385],
					[13.77526522, 45.62266505],
					[13.77551186, 45.62243187],
					[13.77574515, 45.62228394],
					[13.77599847, 45.62213266],
					[13.77614796, 45.62178934],
					[13.77610874, 45.62123716],
					[13.77596354, 45.62076521],
					[13.77594662, 45.62034857],
					[13.77612543, 45.61976481],
					[13.77641201, 45.61894095],
					[13.77676594, 45.61821795],
					[13.77703178, 45.61774385],
					[13.77734637, 45.61747551],
					[13.77789164, 45.6171658],
					[13.77860355, 45.61660933],
					[13.77916503, 45.61595893],
					[13.78077352, 45.6148715],
					[13.78148675, 45.61433375],
					[13.78218496, 45.61352003],
					[13.78262365, 45.61267054],
					[13.78301752, 45.61225808],
					[13.78362274, 45.6122961],
					[13.78439486, 45.61250818],
					[13.78518558, 45.61248434],
					[13.78584194, 45.61213684],
					[13.7863332, 45.61173105],
					[13.78704262, 45.61146915],
					[13.78818703, 45.61148894],
					[13.78965366, 45.61169243],
					[13.79133618, 45.61178458],
					[13.79275894, 45.61170888],
					[13.79398382, 45.61157465],
					[13.79486835, 45.61140001],
					[13.79558325, 45.61118865],
					[13.79624498, 45.61090565],
					[13.79690886, 45.61063242],
					[13.79768515, 45.61036265],
					[13.79843795, 45.61017776],
					[13.79886973, 45.61001611],
					[13.79903901, 45.60983002],
					[13.79914153, 45.60964656],
					[13.79984713, 45.60967958],
					[13.80020964, 45.60984611],
					[13.80076134, 45.60999024],
					[13.80182517, 45.61018658],
					[13.80346966, 45.61047125],
					[13.80495036, 45.61080813],
					[13.80591643, 45.61090445],
					[13.80635226, 45.61075044],
					[13.80631042, 45.61056983],
					[13.80601776, 45.61044824],
					[13.80431306, 45.60938191],
					[13.80393612, 45.60914588],
					[13.80338872, 45.60894215],
					[13.80281734, 45.60868943],
					[13.80231881, 45.60849381],
					[13.80188405, 45.608325],
					[13.80146921, 45.60813916],
					[13.80108225, 45.60785925],
					[13.8007493, 45.60753894],
					[13.8003484, 45.60725474],
					[13.79991984, 45.60706925],
					[13.79952562, 45.60692835],
					[13.79922116, 45.60681665],
					[13.79903161, 45.60667336],
					[13.79882014, 45.60649586],
					[13.79831612, 45.60634768],
					[13.79749477, 45.60622823],
					[13.79679835, 45.60608947],
					[13.79630685, 45.60595286],
					[13.79591107, 45.60580552],
					[13.79553652, 45.60569406],
					[13.79516125, 45.6056298],
					[13.79477775, 45.60562325],
					[13.79434943, 45.60552955],
					[13.79379272, 45.60529602],
					[13.79306662, 45.60488737],
					[13.79308391, 45.60423577],
					[13.79326284, 45.60393345],
					[13.79321504, 45.60358596],
					[13.79288113, 45.60317194],
					[13.79230881, 45.60273826],
					[13.79124296, 45.60228074],
					[13.78975844, 45.60182297],
					[13.78837585, 45.60130155],
					[13.78734064, 45.60089672],
					[13.78583133, 45.59974861],
					[13.78576756, 45.59945178],
					[13.78562605, 45.59916162],
					[13.78527892, 45.59891784],
					[13.7843281, 45.59880376],
					[13.78273451, 45.59889317],
					[13.78140473, 45.59917641],
					[13.78049815, 45.59952271],
					[13.77977598, 45.59990227],
					[13.7793014, 45.60016882],
					[13.77900243, 45.60046387],
					[13.77865171, 45.60096395],
					[13.77814138, 45.60160208],
					[13.77775586, 45.60216045],
					[13.77750504, 45.60255444],
					[13.77736127, 45.60285974],
					[13.77529621, 45.60432327],
					[13.77453351, 45.60442507],
					[13.7736237, 45.60456121],
					[13.77243745, 45.60469282],
					[13.77124643, 45.60483026],
					[13.77008486, 45.60495353],
					[13.76926315, 45.60511386],
					[13.76866734, 45.60535884],
					[13.76811314, 45.6057651],
					[13.76760423, 45.60625064],
					[13.76697946, 45.606812],
					[13.76250887, 45.60693705],
					[13.76213193, 45.60704446],
					[13.76172066, 45.60703826],
					[13.76119113, 45.60697115],
					[13.76045847, 45.60703135],
					[13.75959754, 45.60724366],
					[13.75882101, 45.60743213],
					[13.75840688, 45.60759962],
					[13.75823402, 45.60778177],
					[13.75798595, 45.60797966],
					[13.75747156, 45.60825896],
					[13.75678515, 45.60861266],
					[13.75630832, 45.60872912],
					[13.75609887, 45.60850525],
					[13.75582886, 45.60808086],
					[13.75491488, 45.60777414],
					[13.75311995, 45.60761476],
					[13.75084651, 45.60901618],
					[13.75055921, 45.60928714],
					[13.75014734, 45.60942078],
					[13.7497462, 45.60928977],
					[13.74950206, 45.60904121],
					[13.74933124, 45.60879946],
					[13.74216115, 45.60884917],
					[13.74178481, 45.60901344],
					[13.74147272, 45.60914028],
					[13.74127543, 45.60928822],
					[13.74111748, 45.60946572],
					[13.74081898, 45.60961306],
					[13.74033821, 45.60973144],
					[13.73985195, 45.60986686],
					[13.73939717, 45.60999775],
					[13.73890317, 45.61014342],
					[13.73832715, 45.61028182],
					[13.73772812, 45.61043751],
					[13.73707163, 45.61058295],
					[13.73637831, 45.61070788],
					[13.73570275, 45.61071825],
					[13.73530734, 45.61058915],
					[13.73513365, 45.61039901],
					[13.7349509, 45.61028338],
					[13.73464477, 45.61030436],
					[13.73422611, 45.61038196],
					[13.73370647, 45.61032581],
					[13.73313761, 45.61011446],
					[13.73270297, 45.6099236],
					[13.7324686, 45.60974443],
					[13.7323662, 45.60953677],
					[13.73201072, 45.60915065],
					[13.73195386, 45.60898125],
					[13.73172641, 45.6088618],
					[13.73127127, 45.60883176],
					[13.72933185, 45.60758734],
					[13.72904813, 45.60720718],
					[13.7286731, 45.60680044],
					[13.72831476, 45.60641432],
					[13.72790694, 45.6060307],
					[13.72428191, 45.60611057],
					[13.72393155, 45.60615516],
					[13.7235502, 45.60608196],
					[13.72301054, 45.60595596],
					[13.72209597, 45.60584116],
					[13.72085595, 45.60584748],
					[13.71995735, 45.60594988],
					[13.71949327, 45.60598505],
					[13.7192893, 45.60587215],
					[13.71915805, 45.60561752],
					[13.71897376, 45.60525727],
					[13.71877575, 45.60484493],
					[13.71859431, 45.60450125],
					[13.71856976, 45.60427034],
					[13.71873987, 45.60413957],
					[13.71900773, 45.60399592],
					[13.71923316, 45.60364473],
					[13.71940768, 45.60306954],
					[13.71960342, 45.60258174],
					[13.71979976, 45.60223985],
					[13.72003031, 45.60196805],
					[13.72024334, 45.60170782],
					[13.72038972, 45.60142195],
					[13.72027814, 45.60107112],
					[13.71987724, 45.60063875],
					[13.71980286, 45.59853983],
					[13.72001505, 45.59835374],
					[13.72006834, 45.59816766],
					[13.72203934, 45.59657335],
					[13.72219098, 45.59579504],
					[13.72239995, 45.59515202],
					[13.72261012, 45.59451532],
					[13.72266304, 45.59269631],
					[13.71825051, 45.59130025],
					[13.71715474, 45.59129322],
					[13.71229804, 45.59374273],
					[13.7109375, 45.59375],
					[13.70784545, 45.59372365],
					[13.70513415, 45.59271574],
					[13.70432711, 45.59218204],
					[13.70346832, 45.59046781],
					[13.70418835, 45.58894706],
					[13.7109375, 45.58565843],
					[13.7109375, 45.58482134],
					[13.72394323, 45.58172286],
					[13.72581422, 45.57965457],
					[13.72902763, 45.57972395],
					[13.73422122, 45.57421434],
					[13.74157143, 45.57325494],
					[13.74218488, 45.56978214],
					[13.74101245, 45.56820977],
					[13.74591517, 45.56815624],
					[13.74614513, 45.56477666],
					[13.73687565, 45.56424022],
					[13.73312676, 45.55973411],
					[13.74668455, 45.55876851],
					[13.73894823, 45.55732012],
					[13.73358655, 45.55758834],
					[13.73121202, 45.55651546],
					[13.73205447, 45.55345774],
					[13.73695672, 45.55367231],
					[13.73795235, 45.55238485],
					[13.73389292, 45.55072176],
					[13.72623324, 45.55077553],
					[13.72293937, 45.54943442],
					[13.72194374, 45.54879057],
					[13.72362876, 45.54905891],
					[13.7245481, 45.5468595],
					[13.71933937, 45.54310441],
					[13.7147845, 45.54411995],
					[13.7109375, 45.54659593],
					[13.6988548, 45.5481981],
					[13.69142318, 45.54811454],
					[13.67900574, 45.54572237],
					[13.67847717, 45.54555976],
					[13.67563915, 45.54244423],
					[13.66847885, 45.53913403],
					[13.66775668, 45.53903663],
					[13.66588914, 45.54061425],
					[13.66624784, 45.54310751],
					[13.65806031, 45.54202127],
					[13.65702176, 45.54177964],
					[13.6563282, 45.54154432],
					[13.65363896, 45.53732872],
					[13.64426243, 45.53212714],
					[13.63897634, 45.53341246],
					[13.62942517, 45.53379095],
					[13.62232006, 45.53630125],
					[13.61791325, 45.53957784],
					[13.61433935, 45.54041147],
					[13.61324966, 45.54006505],
					[13.61193037, 45.53828335],
					[13.60220146, 45.53734481],
					[13.60109806, 45.53133106],
					[13.602355, 45.53044355],
					[13.6029582, 45.5317167],
					[13.6039443, 45.53173471],
					[13.60620463, 45.53091288],
					[13.60618484, 45.53045332],
					[13.60224366, 45.52734375],
					[13.60209215, 45.52734375],
					[13.60035324, 45.52568543],
					[13.59786546, 45.52650285],
					[13.58079064, 45.52573204],
					[13.57627106, 45.52734375],
					[13.57556796, 45.52734375],
					[13.57097018, 45.52981424],
					[13.56442821, 45.53062475],
					[13.56334221, 45.53031814],
					[13.56273603, 45.52949774],
					[13.56720686, 45.52734375],
					[13.56753182, 45.52734375],
					[13.56644237, 45.52141738],
					[13.56878006, 45.51603794],
					[13.56910706, 45.51568186],
					[13.57298505, 45.5133301],
					[13.57716703, 45.515558],
					[13.58206546, 45.51276648],
					[13.59157407, 45.51283705],
					[13.59228456, 45.51220596],
					[13.59428775, 45.50473237],
					[13.59410465, 45.50423348],
					[13.59332991, 45.50354254],
					[13.58721936, 45.50196111],
					[13.58692586, 45.50175416],
					[13.58713293, 45.49989784],
					[13.58753145, 45.49955964],
					[13.59007871, 45.4983654],
					[13.59156525, 45.49980915],
					[13.59552681, 45.49676943],
					[13.60284495, 45.49543726],
					[13.609411, 45.49056494],
					[13.61851227, 45.48740816],
					[13.61873066, 45.48718643],
					[13.62105918, 45.48270273],
					[13.61820078, 45.47901201],
					[13.61629927, 45.4782356],
					[13.60977948, 45.47929096],
					[13.61012387, 45.47609484],
					[13.61383486, 45.47287655],
					[13.61570466, 45.46743882],
					[13.61450613, 45.46548963],
					[13.60730922, 45.4654839],
					[13.6065402, 45.46557307],
					[13.60102725, 45.46758676],
					[13.59373784, 45.47228515],
					[13.58892667, 45.47319531],
					[13.57838285, 45.48016906],
					[13.56079614, 45.48753047],
					[13.55603182, 45.49075401],
					[13.52839875, 45.50034606],
					[13.51804137, 45.50227225],
					[13.51091075, 45.50550222],
					[13.50345337, 45.50359178],
					[13.50228751, 45.50083983],
					[13.50396025, 45.49933791],
					[13.49880624, 45.49917758],
					[13.49705577, 45.49769378],
					[13.49817216, 45.49170721],
					[13.49265504, 45.49143577],
					[13.49004436, 45.4896239],
					[13.48993754, 45.48620462],
					[13.49843836, 45.47898734],
					[13.50438726, 45.47519684],
					[13.51014948, 45.47346318],
					[13.50859785, 45.46524525],
					[13.51265073, 45.46408761],
					[13.51303363, 45.46269143],
					[13.51136541, 45.46158552],
					[13.51107073, 45.45921385],
					[13.50801778, 45.45832682],
					[13.51245534, 45.45782411],
					[13.51722515, 45.45328164],
					[13.51194096, 45.45212984],
					[13.51193416, 45.44992232],
					[13.51546502, 45.44862676],
					[13.51508546, 45.44645452],
					[13.50964475, 45.44328415],
					[13.50796986, 45.44100082],
					[13.51165175, 45.44018376],
					[13.51296115, 45.43787396],
					[13.51753736, 45.43767893],
					[13.52122092, 45.43940341],
					[13.52386212, 45.43764234],
					[13.52089465, 45.43372154],
					[13.51554108, 45.43422556],
					[13.51943207, 45.43211973],
					[13.51857674, 45.42733467],
					[13.52402437, 45.42475355],
					[13.51923764, 45.42192435],
					[13.51582146, 45.42305231],
					[13.51697946, 45.42115772],
					[13.51535594, 45.41641903],
					[13.51644671, 45.41416562],
					[13.52258551, 45.41045785],
					[13.52435863, 45.40713251],
					[13.52804852, 45.40592003],
					[13.52955306, 45.40299857],
					[13.53606796, 45.40132105],
					[13.53101897, 45.39563727],
					[13.53917277, 45.39081395],
					[13.53459871, 45.3896116],
					[13.53236806, 45.38608336],
					[13.53751016, 45.38124883],
					[13.54458427, 45.37817514],
					[13.53554511, 45.37534738],
					[13.53695714, 45.37409127],
					[13.54438436, 45.37221551],
					[13.54096091, 45.36899996],
					[13.54189181, 45.36038291],
					[13.55144155, 45.36049855],
					[13.55497217, 45.35857916],
					[13.55477405, 45.35722673],
					[13.55096436, 45.35463095],
					[13.54986846, 45.35421693],
					[13.54369974, 45.35246134],
					[13.53880894, 45.35283744],
					[13.53797412, 45.35252905],
					[13.53792763, 45.3515625],
					[13.53948808, 45.34700215],
					[13.54423892, 45.34084547],
					[13.54085386, 45.33808601],
					[13.54419732, 45.33303595],
					[13.53920627, 45.33066106],
					[13.53970325, 45.32777727],
					[13.55073524, 45.32583356],
					[13.55283237, 45.32116938],
					[13.55605376, 45.3210721],
					[13.55779958, 45.32428467],
					[13.56314146, 45.32188332],
					[13.56353426, 45.32161796],
					[13.56338954, 45.31956852],
					[13.55880213, 45.31752956],
					[13.55706871, 45.31548297],
					[13.55719674, 45.31531453],
					[13.56022465, 45.31397545],
					[13.56517887, 45.31396937],
					[13.56782508, 45.31564236],
					[13.57335544, 45.31347156],
					[13.58323717, 45.313308],
					[13.58484673, 45.31444216],
					[13.59120226, 45.31535006],
					[13.59239912, 45.31881285],
					[13.59115565, 45.32085896],
					[13.59833062, 45.32201612],
					[13.60086381, 45.32114828],
					[13.59686935, 45.31697714],
					[13.60306931, 45.31702244],
					[13.60642564, 45.31831074],
					[13.60310233, 45.31500244],
					[13.61047792, 45.31308484],
					[13.61358738, 45.31346595],
					[13.61377764, 45.31305885],
					[13.61171305, 45.31183457],
					[13.61103153, 45.31174338],
					[13.60611844, 45.31208301],
					[13.59957945, 45.30787218],
					[13.59107924, 45.30582571],
					[13.58712864, 45.30175841],
					[13.58940208, 45.29801726],
					[13.5758965, 45.29999995],
					[13.56835353, 45.29793704],
					[13.58118522, 45.28971601],
					[13.58174086, 45.28772104],
					[13.58705997, 45.28385973],
					[13.59754646, 45.28229928],
					[13.60078275, 45.28479373],
					[13.59672523, 45.27947056],
					[13.59756637, 45.27789414],
					[13.60150135, 45.27681184],
					[13.59920991, 45.27617955],
					[13.59787953, 45.27715814],
					[13.5939573, 45.27547276],
					[13.58983076, 45.27684402],
					[13.58760631, 45.27536416],
					[13.58201051, 45.27802575],
					[13.58098054, 45.27724111],
					[13.58223355, 45.27265894],
					[13.57991111, 45.27102792],
					[13.57965624, 45.26898241],
					[13.57287693, 45.26432025],
					[13.57474613, 45.26316881],
					[13.57810831, 45.26496375],
					[13.58134711, 45.26470828],
					[13.57987404, 45.25962341],
					[13.57617152, 45.25687468],
					[13.57612872, 45.25547791],
					[13.58130455, 45.25478828],
					[13.58396792, 45.25311196],
					[13.59166884, 45.25495791],
					[13.59454346, 45.2542994],
					[13.5948143, 45.25173926],
					[13.58938444, 45.24867797],
					[13.59992707, 45.24295735],
					[13.59396732, 45.2362864],
					[13.59821761, 45.23236847],
					[13.59785724, 45.22892165],
					[13.59593272, 45.22828376],
					[13.59191442, 45.22928691],
					[13.58826733, 45.22804344],
					[13.59336007, 45.22530985],
					[13.59189725, 45.21841586],
					[13.59425998, 45.21549165],
					[13.59260225, 45.21407211],
					[13.58875763, 45.21414185],
					[13.59042037, 45.20944631],
					[13.58744097, 45.20861995],
					[13.59014654, 45.20664156],
					[13.59479856, 45.20783675],
					[13.59738493, 45.20689595],
					[13.59784496, 45.20436776],
					[13.59229672, 45.2026875],
					[13.58954871, 45.20567954],
					[13.58707285, 45.20584726],
					[13.58585441, 45.20365214],
					[13.58956504, 45.20077503],
					[13.5894711, 45.19918835],
					[13.58121192, 45.19915211],
					[13.57950354, 45.19788611],
					[13.58397365, 45.19470715],
					[13.58527637, 45.19085956],
					[13.59051633, 45.18862843],
					[13.58998334, 45.18523586],
					[13.59546864, 45.18552256],
					[13.60341525, 45.17981064],
					[13.60355234, 45.17933965],
					[13.60297406, 45.17823195],
					[13.59951508, 45.17829204],
					[13.59707737, 45.17665684],
					[13.59078073, 45.17717636],
					[13.58899915, 45.17578125],
					[13.58901513, 45.17578125],
					[13.5882498, 45.17485845],
					[13.59019542, 45.17400551],
					[13.59088016, 45.17170715],
					[13.59119415, 45.17157912],
					[13.59290647, 45.17284536],
					[13.59846175, 45.17188752],
					[13.59672034, 45.16717243],
					[13.60319436, 45.16512382],
					[13.60361505, 45.16438246],
					[13.6010257, 45.16432655],
					[13.60025311, 45.16302133],
					[13.60470676, 45.16199327],
					[13.60878241, 45.15918314],
					[13.60878074, 45.15638328],
					[13.60456693, 45.15347683],
					[13.59739637, 45.153548],
					[13.59734535, 45.15024352],
					[13.60204542, 45.1496489],
					[13.59930825, 45.14911056],
					[13.59751654, 45.14634931],
					[13.60043144, 45.14305651],
					[13.59654391, 45.14062595],
					[13.5966922, 45.14037812],
					[13.60117972, 45.13816273],
					[13.60208571, 45.13352156],
					[13.60316312, 45.13206756],
					[13.6042062, 45.13159907],
					[13.61243105, 45.13037181],
					[13.61297202, 45.13041616],
					[13.61954105, 45.13495147],
					[13.62635696, 45.13668835],
					[13.63742065, 45.13637781],
					[13.64176655, 45.13396704],
					[13.65992153, 45.13497663],
					[13.67026484, 45.13317895],
					[13.68615961, 45.13258195],
					[13.69141006, 45.13553691],
					[13.69211495, 45.13566816],
					[13.70801735, 45.13776255],
					[13.7109375, 45.13699782],
					[13.71203995, 45.13679874],
					[13.71615386, 45.13748562],
					[13.71706235, 45.13735867],
					[13.72126198, 45.13478422],
					[13.72692096, 45.13501453],
					[13.72989595, 45.13409877],
					[13.73343861, 45.13160324],
					[13.73170733, 45.13094246],
					[13.72861362, 45.13305914],
					[13.71863103, 45.1334002],
					[13.71566045, 45.13442814],
					[13.7109375, 45.13309145],
					[13.70663035, 45.13468671],
					[13.70581758, 45.13459992],
					[13.69203806, 45.1321547],
					[13.68624532, 45.12894332],
					[13.6795392, 45.12966561],
					[13.66963422, 45.12869847],
					[13.65742934, 45.13023496],
					[13.63712716, 45.12992871],
					[13.63351274, 45.13150108],
					[13.62942326, 45.13160825],
					[13.62184918, 45.12766051],
					[13.6215142, 45.12734008],
					[13.62249053, 45.12517834],
					[13.62083435, 45.12329221],
					[13.62432051, 45.12329435],
					[13.62641037, 45.12187827],
					[13.624264, 45.12047005],
					[13.62350404, 45.11643267],
					[13.61948407, 45.11943436],
					[13.61513436, 45.12080705],
					[13.61431277, 45.11930037],
					[13.61641335, 45.11827827],
					[13.61618042, 45.11720967],
					[13.60899472, 45.11788273],
					[13.60681391, 45.11580551],
					[13.61145258, 45.11168695],
					[13.61162591, 45.10803676],
					[13.61445475, 45.10518515],
					[13.62110305, 45.10238636],
					[13.62303376, 45.09998894],
					[13.63119912, 45.09944713],
					[13.63006747, 45.09393585],
					[13.63294518, 45.09407628],
					[13.63602817, 45.09764552],
					[13.64057517, 45.09563363],
					[13.64069831, 45.08685851],
					[13.63379955, 45.08446598],
					[13.62849283, 45.08399975],
					[13.63240015, 45.07981527],
					[13.63425672, 45.08057547],
					[13.63818336, 45.07912314],
					[13.63329661, 45.07555985],
					[13.63612235, 45.07153165],
					[13.63584483, 45.06954551],
					[13.63227522, 45.06897044],
					[13.62774146, 45.07050324],
					[13.62597013, 45.06988382],
					[13.62901986, 45.06632614],
					[13.62895525, 45.06305492],
					[13.63688624, 45.06295884],
					[13.6389358, 45.06471121],
					[13.64285314, 45.06406033],
					[13.64502645, 45.06608474],
					[13.65212011, 45.06578886],
					[13.65113163, 45.06475306],
					[13.65727985, 45.06462956],
					[13.66356432, 45.06072366],
					[13.6713413, 45.05986166],
					[13.67224991, 45.05849934],
					[13.66972971, 45.05628586],
					[13.67480147, 45.05486953],
					[13.6768676, 45.05284011],
					[13.6839385, 45.05050755],
					[13.68826497, 45.05052924],
					[13.68710363, 45.04847181],
					[13.68232191, 45.04736698],
					[13.68100643, 45.04386008],
					[13.68430364, 45.04259682],
					[13.68593574, 45.04048705],
					[13.69068456, 45.03893793],
					[13.68974328, 45.03463805],
					[13.69041097, 45.03138328],
					[13.69232273, 45.02971995],
					[13.68946946, 45.02757061],
					[13.68928385, 45.02713084],
					[13.68953896, 45.02409506],
					[13.69002581, 45.02324235],
					[13.69454074, 45.02211475],
					[13.69540191, 45.02211416],
					[13.70266426, 45.02326775],
					[13.70644963, 45.0209738],
					[13.7109375, 45.02260041],
					[13.71113467, 45.02315843],
					[13.71436405, 45.02130854],
					[13.71481001, 45.02042294],
					[13.71143746, 45.01489925],
					[13.71405375, 45.01098514],
					[13.7109375, 45.01004457],
					[13.7109375, 45.00809145],
					[13.72017586, 45.00719404],
					[13.71934557, 45.00541925],
					[13.72416174, 45.00202835],
					[13.72352135, 45],
					[13.72358167, 44.99816215],
					[13.72511947, 44.99681282],
					[13.72562134, 44.99658525],
					[13.73100901, 44.99562335],
					[13.73260951, 44.99226367],
					[13.73630404, 44.99120355],
					[13.73431456, 44.98725498],
					[13.73518515, 44.98549175],
					[13.73550737, 44.98538005],
					[13.74172437, 44.98713684],
					[13.74524415, 44.98530364],
					[13.75293314, 44.98526251],
					[13.75593007, 44.98691583],
					[13.76106215, 44.98565376],
					[13.76114452, 44.98254645],
					[13.76565194, 44.97866082],
					[13.76502752, 44.97470927],
					[13.76688838, 44.97365272],
					[13.77031767, 44.96637833],
					[13.77340853, 44.96524191],
					[13.77999234, 44.95982504],
					[13.78144264, 44.95718718],
					[13.78451323, 44.95616233],
					[13.78255355, 44.95100915],
					[13.78904116, 44.94604254],
					[13.79094171, 44.93899345],
					[13.80174983, 44.93097544],
					[13.80171764, 44.9195646],
					[13.80479872, 44.91335857],
					[13.80907285, 44.91175485],
					[13.80837452, 44.9088968],
					[13.81316686, 44.90785468],
					[13.81046367, 44.90618086],
					[13.80873477, 44.89965463],
					[13.80434561, 44.89831245],
					[13.80163658, 44.89555752],
					[13.79726243, 44.89449525],
					[13.79513776, 44.89266145],
					[13.79452944, 44.88952982],
					[13.80494356, 44.89234138],
					[13.80623198, 44.89067507],
					[13.80431032, 44.88853824],
					[13.80469143, 44.88347948],
					[13.8066684, 44.88213944],
					[13.8109982, 44.8827126],
					[13.81203723, 44.87848556],
					[13.81658721, 44.87810826],
					[13.81743562, 44.87628186],
					[13.81628692, 44.87598515],
					[13.81755304, 44.87531865],
					[13.82036662, 44.87557685],
					[13.82040203, 44.87702906],
					[13.82316005, 44.87853265],
					[13.82721627, 44.87754071],
					[13.83212244, 44.87801707],
					[13.83359551, 44.87888765],
					[13.8327831, 44.88065362],
					[13.83856332, 44.8851366],
					[13.84821141, 44.88320112],
					[13.84590924, 44.87799752],
					[13.84834945, 44.87405455],
					[13.84392548, 44.87329185],
					[13.84047055, 44.870718],
					[13.84029365, 44.86735356],
					[13.83497918, 44.86430323],
					[13.83439541, 44.86418807],
					[13.82747281, 44.86632752],
					[13.82567871, 44.86394405],
					[13.82213998, 44.86443436],
					[13.82064855, 44.86580205],
					[13.81686628, 44.86375833],
					[13.81497681, 44.86653018],
					[13.80743265, 44.86998916],
					[13.80821955, 44.87153626],
					[13.80263936, 44.87556171],
					[13.8020159, 44.87576807],
					[13.79890633, 44.87505901],
					[13.794788, 44.87593997],
					[13.79230285, 44.87205255],
					[13.79642904, 44.86645126],
					[13.79694223, 44.86258101],
					[13.79895306, 44.86075604],
					[13.80079806, 44.85996234],
					[13.80149424, 44.85977244],
					[13.80485511, 44.86071217],
					[13.80872107, 44.85886145],
					[13.81181312, 44.86109507],
					[13.81220674, 44.86097252],
					[13.81357491, 44.86007237],
					[13.81357491, 44.85951436],
					[13.80927694, 44.85686672],
					[13.81361008, 44.85353661],
					[13.81455255, 44.85318172],
					[13.81612766, 44.85312188],
					[13.81848288, 44.85468626],
					[13.81600416, 44.85708511],
					[13.81732583, 44.86014485],
					[13.82102537, 44.85889542],
					[13.82315278, 44.85649586],
					[13.82594871, 44.85722864],
					[13.82561386, 44.85359395],
					[13.82642126, 44.85282326],
					[13.82898152, 44.85327506],
					[13.82956874, 44.85083675],
					[13.83309293, 44.84918177],
					[13.83055592, 44.84737527],
					[13.83140326, 44.84365344],
					[13.83403885, 44.84241855],
					[13.82756758, 44.83807635],
					[13.82672203, 44.83691537],
					[13.82756722, 44.83539164],
					[13.83157241, 44.83325195],
					[13.83457565, 44.83234966],
					[13.83617914, 44.83419013],
					[13.84106648, 44.83471215],
					[13.84147382, 44.83614194],
					[13.83879185, 44.83863294],
					[13.8414849, 44.84313905],
					[13.84176803, 44.83846498],
					[13.84692526, 44.83711612],
					[13.84387004, 44.83408081],
					[13.84400845, 44.83094776],
					[13.85045922, 44.83059835],
					[13.85431135, 44.83230805],
					[13.86054301, 44.83282256],
					[13.8615756, 44.82832408],
					[13.85791755, 44.82784891],
					[13.85496116, 44.82887745],
					[13.85232258, 44.82687616],
					[13.84765625, 44.8281368],
					[13.84605002, 44.82718456],
					[13.84583235, 44.82663393],
					[13.84607315, 44.82542193],
					[13.84700084, 44.82421875],
					[13.84708953, 44.82421875],
					[13.84923446, 44.82206345],
					[13.84965312, 44.82190001],
					[13.85618377, 44.8208096],
					[13.85600865, 44.81934643],
					[13.85359442, 44.81801736],
					[13.85342634, 44.81764674],
					[13.85378015, 44.81628954],
					[13.85584581, 44.81537426],
					[13.86085045, 44.81505716],
					[13.86114991, 44.81517744],
					[13.86569417, 44.82047248],
					[13.86795104, 44.82178497],
					[13.86937904, 44.82207251],
					[13.87369776, 44.82063103],
					[13.8741188, 44.81985176],
					[13.87385166, 44.81953645],
					[13.86596715, 44.81732464],
					[13.86165953, 44.81210673],
					[13.86740685, 44.80822182],
					[13.87790251, 44.80855525],
					[13.87252545, 44.80531085],
					[13.87326384, 44.80448806],
					[13.87380075, 44.80422485],
					[13.88067508, 44.80531585],
					[13.88598847, 44.80927706],
					[13.88994455, 44.80836618],
					[13.89322245, 44.80955994],
					[13.90120435, 44.80771017],
					[13.90356934, 44.80503905],
					[13.90388346, 44.80259907],
					[13.90176928, 44.79847443],
					[13.90354884, 44.79550242],
					[13.90001094, 44.79018736],
					[13.90298867, 44.78895795],
					[13.90229416, 44.78535354],
					[13.90587926, 44.78624487],
					[13.90681815, 44.78544748],
					[13.90326822, 44.78252995],
					[13.90366745, 44.77778316],
					[13.90594625, 44.77670765],
					[13.90663981, 44.77295673],
					[13.90476823, 44.76996625],
					[13.90784252, 44.76834226],
					[13.91648448, 44.76726961],
					[13.91870976, 44.76563633],
					[13.92436898, 44.76594222],
					[13.92497218, 44.76605046],
					[13.92726338, 44.76853991],
					[13.92741585, 44.76881504],
					[13.92713702, 44.77003646],
					[13.92688274, 44.77024198],
					[13.92455041, 44.769912],
					[13.92106581, 44.77186406],
					[13.91774738, 44.77150631],
					[13.91746676, 44.77188206],
					[13.91828275, 44.77268565],
					[13.92362511, 44.77372682],
					[13.92122698, 44.77689421],
					[13.91412997, 44.77452421],
					[13.91341913, 44.77527177],
					[13.91339135, 44.77627552],
					[13.91373074, 44.77697146],
					[13.92119503, 44.77977085],
					[13.9205693, 44.78171015],
					[13.91734397, 44.78291965],
					[13.91990852, 44.78596056],
					[13.91653311, 44.78552675],
					[13.91467607, 44.79148436],
					[13.91726852, 44.79172218],
					[13.91873801, 44.79533851],
					[13.92180824, 44.7954514],
					[13.92004573, 44.80046344],
					[13.92372763, 44.80113983],
					[13.92452073, 44.80345762],
					[13.92010474, 44.80548573],
					[13.91913092, 44.80969024],
					[13.91726482, 44.80926454],
					[13.91859782, 44.81084645],
					[13.91805542, 44.81197536],
					[13.91767287, 44.81229246],
					[13.91289651, 44.81447268],
					[13.91083658, 44.81525981],
					[13.90311313, 44.81449377],
					[13.89719772, 44.81709135],
					[13.89300525, 44.81618512],
					[13.88891995, 44.81681192],
					[13.88805854, 44.81833851],
					[13.88430142, 44.81973422],
					[13.88358474, 44.8207643],
					[13.88303685, 44.82235277],
					[13.88482475, 44.82395387],
					[13.88985765, 44.82421875],
					[13.90031087, 44.81748164],
					[13.90252995, 44.81834483],
					[13.90407395, 44.82117963],
					[13.89996433, 44.82323861],
					[13.90008914, 44.82435822],
					[13.90816796, 44.82173204],
					[13.91067028, 44.82326972],
					[13.91110003, 44.82421875],
					[13.90948093, 44.82978761],
					[13.91012478, 44.83004773],
					[13.91474974, 44.82879364],
					[13.91914237, 44.82534206],
					[13.9237957, 44.82524335],
					[13.92368376, 44.82421875],
					[13.92438614, 44.82421875],
					[13.92401636, 44.82215071],
					[13.92721355, 44.82183588],
					[13.92789304, 44.82053435],
					[13.92340434, 44.82083094],
					[13.92289352, 44.82063651],
					[13.92123878, 44.81934178],
					[13.92123866, 44.81676817],
					[13.92401016, 44.81575096],
					[13.92429066, 44.81568515],
					[13.92814207, 44.81613874],
					[13.92867732, 44.81630385],
					[13.93148136, 44.81960535],
					[13.93338931, 44.81816948],
					[13.93369245, 44.8173871],
					[13.93315256, 44.81615317],
					[13.92876303, 44.81461406],
					[13.92658401, 44.80906844],
					[13.92643666, 44.80846286],
					[13.92663884, 44.80696201],
					[13.92983031, 44.80284595],
					[13.93285835, 44.80320084],
					[13.93072021, 44.80539346],
					[13.93071151, 44.80595195],
					[13.93270063, 44.80953908],
					[13.93070435, 44.81189716],
					[13.93282783, 44.81328762],
					[13.93362546, 44.81329894],
					[13.93930387, 44.81118643],
					[13.94066942, 44.81026781],
					[13.94277406, 44.80837941],
					[13.9440093, 44.80516088],
					[13.94896364, 44.80274761],
					[13.95837915, 44.8046149],
					[13.9644891, 44.8027842],
					[13.97287285, 44.80433595],
					[13.97636485, 44.80242586],
					[13.98448634, 44.80324554],
					[13.98849571, 44.80249143],
					[13.98975432, 44.80438876],
					[14.00075602, 44.80166483],
					[14.00397575, 44.80513954],
					[14.00389302, 44.80542946],
					[13.99806571, 44.80757904],
					[14.00064671, 44.80950785],
					[14.00036764, 44.81180441],
					[13.99280691, 44.81405222],
					[13.99244642, 44.81449687],
					[13.99126577, 44.81598782],
					[13.99126112, 44.82122231],
					[13.98484921, 44.82154036],
					[13.98254585, 44.81874454],
					[13.97988093, 44.81757235],
					[13.97937286, 44.81764245],
					[13.97662973, 44.81933713],
					[13.97906184, 44.82295775],
					[13.98284912, 44.82421875],
					[13.98345745, 44.82421875],
					[13.98610306, 44.82519424],
					[13.98871314, 44.82784426],
					[13.98929322, 44.82965791],
					[13.98932016, 44.83072257],
					[13.98911083, 44.83127427],
					[13.98024511, 44.83880293],
					[13.97979677, 44.83963811],
					[13.97948635, 44.84164464],
					[13.98220563, 44.8468641],
					[13.98253643, 44.85174811],
					[13.98283315, 44.85203993],
					[13.98562825, 44.85385883],
					[13.99145555, 44.85550725],
					[13.99250984, 44.86038375],
					[14.00106967, 44.86234331],
					[14.00169146, 44.86312091],
					[14.00181818, 44.86342573],
					[14.00092638, 44.86492968],
					[13.99588776, 44.86691403],
					[13.99753022, 44.86996221],
					[13.99525321, 44.87325287],
					[13.99169076, 44.87424564],
					[13.99300861, 44.87798023],
					[13.99512112, 44.88029623],
					[13.99546301, 44.88041866],
					[13.99985337, 44.87995195],
					[14.00357974, 44.8815515],
					[14.00299633, 44.8871932],
					[13.99391532, 44.88681698],
					[13.9858855, 44.89340925],
					[13.98126125, 44.89338994],
					[13.9833523, 44.89687645],
					[13.98125732, 44.90197873],
					[13.98342025, 44.90238142],
					[13.98842645, 44.89595222],
					[13.99698257, 44.89187396],
					[13.99928594, 44.89279008],
					[14.00726247, 44.89216042],
					[14.01205707, 44.89898026],
					[14.01407933, 44.89947724],
					[14.01549721, 44.89624977],
					[14.01841485, 44.89812136],
					[14.019804, 44.90114558],
					[14.02391446, 44.90194738],
					[14.02483165, 44.90404046],
					[14.02784753, 44.90583324],
					[14.02742851, 44.91028273],
					[14.02984071, 44.91262805],
					[14.02010143, 44.91590595],
					[14.02884352, 44.91952217],
					[14.0267601, 44.92505646],
					[14.03060126, 44.92274404],
					[14.03505027, 44.91671824],
					[14.03832006, 44.91682386],
					[14.04160953, 44.92385662],
					[14.04066241, 44.92507875],
					[14.04444396, 44.92644405],
					[14.04270113, 44.9284482],
					[14.04553676, 44.93084276],
					[14.04396617, 44.93382001],
					[14.05018687, 44.93700707],
					[14.05031753, 44.93959785],
					[14.04686415, 44.94119513],
					[14.04593611, 44.94364262],
					[14.04393196, 44.94485366],
					[14.04120696, 44.94480932],
					[14.04108655, 44.94688094],
					[14.03925025, 44.94846356],
					[14.03579652, 44.94911695],
					[14.03285885, 44.95121622],
					[14.03274572, 44.95264137],
					[14.05054987, 44.9464668],
					[14.05330193, 44.94743252],
					[14.05456674, 44.95037115],
					[14.05152416, 44.95499516],
					[14.05629921, 44.95883155],
					[14.05642271, 44.95915306],
					[14.0542556, 44.96190417],
					[14.05444205, 44.96227574],
					[14.05700386, 44.96251738],
					[14.05994391, 44.96540165],
					[14.06112361, 44.96595967],
					[14.0625, 44.96595967],
					[14.06460822, 44.96685195],
					[14.06481278, 44.97076392],
					[14.06730735, 44.97391534],
					[14.06465876, 44.97732234],
					[14.06705105, 44.9773612],
					[14.07139075, 44.97514033],
					[14.074283, 44.97593081],
					[14.07653654, 44.97828937],
					[14.07325566, 44.98095357],
					[14.07115972, 44.99177265],
					[14.06906366, 44.99301815],
					[14.0625, 44.99469864],
					[14.05925965, 44.99464607],
					[14.05317354, 44.99686265],
					[14.05002391, 44.9965384],
					[14.04637694, 45],
					[14.04632247, 45],
					[14.04648101, 45.00014305],
					[14.04097927, 45.00105202],
					[14.037642, 45],
					[14.03831434, 45.00404716],
					[14.04148376, 45.00625587],
					[14.0465281, 45.01373744],
					[14.04672444, 45.01632893],
					[14.04315865, 45.01855731],
					[14.04188395, 45.02485335],
					[14.04168856, 45.02532971],
					[14.03902876, 45.02858818],
					[14.03905678, 45.02968776],
					[14.03945935, 45.03064251],
					[14.04012454, 45.03092861],
					[14.04577243, 45.03187478],
					[14.04692245, 45.03415203],
					[14.04734814, 45.03390086],
					[14.04920328, 45.03194785],
					[14.04949784, 45.02927661],
					[14.05386174, 45.02656055],
					[14.05308866, 45.02185273],
					[14.05935895, 45.01769161],
					[14.05922163, 45.01384854],
					[14.05908477, 45.01351583],
					[14.05450153, 45.00808561],
					[14.05410612, 45.00714445],
					[14.05411208, 45.00414002],
					[14.05474234, 45.00321591],
					[14.05727577, 45.00170231],
					[14.0625, 45.00167406],
					[14.06270278, 45.00170207],
					[14.06447268, 45],
					[14.06755602, 44.99975586],
					[14.06881297, 45],
					[14.06874287, 45.00014555],
					[14.07188547, 45.00102365],
					[14.07734001, 45.00483],
					[14.07763398, 45.00470626],
					[14.07817793, 45.00278974],
					[14.0767045, 45],
					[14.07704997, 45],
					[14.07594621, 44.99773908],
					[14.07911885, 44.99371076],
					[14.08059073, 44.98534846],
					[14.08282626, 44.9836055],
					[14.08702862, 44.98460245],
					[14.08754241, 44.97747254],
					[14.09873414, 44.97230375],
					[14.09806752, 44.97111034],
					[14.09174788, 44.97154915],
					[14.08769655, 44.96963322],
					[14.07729125, 44.97097588],
					[14.07239044, 44.96905386],
					[14.07267904, 44.96322358],
					[14.06771624, 44.95944154],
					[14.06917536, 44.94910216],
					[14.06488132, 44.94596863],
					[14.06463885, 44.94478035],
					[14.06507385, 44.94463825],
					[14.0761255, 44.94650972],
					[14.08141685, 44.95633507],
					[14.09011257, 44.96214437],
					[14.09976125, 44.96490896],
					[14.10393476, 44.96890461],
					[14.10856485, 44.9706403],
					[14.11873424, 44.96887195],
					[14.11840153, 44.96528327],
					[14.12278175, 44.96126795],
					[14.12840605, 44.96433938],
					[14.13309622, 44.96425962],
					[14.13715243, 44.96612716],
					[14.13860488, 44.96226192],
					[14.14344573, 44.95683241],
					[14.14811456, 44.95668387],
					[14.14871812, 44.95701218],
					[14.15609264, 44.96442521],
					[14.15609264, 44.96693635],
					[14.16506624, 44.97400534],
					[14.16740632, 44.97815764],
					[14.16984355, 44.97888255],
					[14.17035007, 44.9798156],
					[14.17211425, 44.98599732],
					[14.17211485, 44.98636806],
					[14.17138767, 44.99368727],
					[14.16867661, 45],
					[14.16863954, 45],
					[14.16716206, 45.00420225],
					[14.16799355, 45.01100934],
					[14.16640031, 45.01425302],
					[14.16299152, 45.01459897],
					[14.16470015, 45.01889205],
					[14.1630218, 45.02045083],
					[14.15961635, 45.0208106],
					[14.16072011, 45.02314675],
					[14.15602505, 45.02810895],
					[14.15572584, 45.03337967],
					[14.15983427, 45.03097975],
					[14.16070533, 45.03311324],
					[14.15674055, 45.03670502],
					[14.14983392, 45.04794776],
					[14.14307106, 45.05208385],
					[14.14346957, 45.05372965],
					[14.14474225, 45.05383217],
					[14.14898241, 45.05186021],
					[14.15986598, 45.04242516],
					[14.16281545, 45.04115427],
					[14.16323864, 45.04478621],
					[14.15916967, 45.04868865],
					[14.15915215, 45.05119908],
					[14.15527487, 45.05227602],
					[14.15902805, 45.05539155],
					[14.16009474, 45.05879044],
					[14.15749717, 45.06012142],
					[14.15512264, 45.06515467],
					[14.14989233, 45.06711602],
					[14.15363944, 45.06872261],
					[14.15245247, 45.07839465],
					[14.15395916, 45.07890034],
					[14.15822005, 45.07767761],
					[14.16110671, 45.07320333],
					[14.16626442, 45.07241321],
					[14.16862905, 45.07569218],
					[14.17586672, 45.07926273],
					[14.18008196, 45.08551896],
					[14.18973982, 45.09284186],
					[14.19776845, 45.10592842],
					[14.19836247, 45.11317897],
					[14.19504917, 45.11755633],
					[14.18863523, 45.12114263],
					[14.18647313, 45.12805486],
					[14.17842102, 45.13265705],
					[14.18233442, 45.13276684],
					[14.18996036, 45.12784684],
					[14.19350755, 45.12245703],
					[14.20795941, 45.11614454],
					[14.21390033, 45.12371004],
					[14.21399641, 45.12730885],
					[14.21687305, 45.13062978],
					[14.21804667, 45.13511014],
					[14.22486734, 45.13730967],
					[14.22510552, 45.14244306],
					[14.22323656, 45.14355564],
					[14.22771096, 45.14691544],
					[14.22705781, 45.15337563],
					[14.23705876, 45.16806197],
					[14.23724282, 45.16848814],
					[14.23540294, 45.17332876],
					[14.23547745, 45.17411566],
					[14.23733616, 45.1750741],
					[14.23729467, 45.17578125],
					[14.23709345, 45.17578125],
					[14.23846316, 45.17818177],
					[14.2396301, 45.17903876],
					[14.24248874, 45.17930841],
					[14.24146974, 45.1810019],
					[14.24373364, 45.18165052],
					[14.24394786, 45.18200541],
					[14.24621224, 45.19488215],
					[14.24325645, 45.19833088],
					[14.24353993, 45.20296574],
					[14.24593377, 45.21157587],
					[14.24984932, 45.21528411],
					[14.25041771, 45.22141874],
					[14.25488126, 45.22657442],
					[14.25523257, 45.23593426],
					[14.2574352, 45.23674488],
					[14.26173985, 45.2447859],
					[14.26247573, 45.24960041],
					[14.26481676, 45.25125015],
					[14.26606107, 45.26398432],
					[14.27036154, 45.26588225],
					[14.26956153, 45.27028751],
					[14.27247345, 45.27123284],
					[14.27395427, 45.28557456],
					[14.27641773, 45.28911495],
					[14.27856076, 45.28997958],
					[14.27794945, 45.29768968],
					[14.28138804, 45.29906714],
					[14.28348601, 45.30357873],
					[14.2814064, 45.30517423],
					[14.28697741, 45.30761707],
					[14.28716183, 45.31168282],
					[14.29169154, 45.31370008],
					[14.29177844, 45.31777775],
					[14.29642594, 45.31882286],
					[14.29783976, 45.32023084],
					[14.30428433, 45.33174181],
					[14.31199086, 45.33439767],
					[14.31176841, 45.33865845],
					[14.32128537, 45.34697378],
					[14.32160354, 45.35034192],
					[14.32559252, 45.3508383],
					[14.32608342, 45.35534],
					[14.32632387, 45.35557103],
					[14.33089221, 45.35639775],
					[14.33139825, 45.35624421],
					[14.33155203, 45.35332406],
					[14.33349597, 45.35128343],
					[14.33826125, 45.35131145],
					[14.34261036, 45.34955621],
					[14.34330535, 45.34803605],
					[14.35605347, 45.34464216],
					[14.35804474, 45.34293485],
					[14.37101042, 45.34062958],
					[14.37750506, 45.33793712],
					[14.38216651, 45.33786345],
					[14.3945868, 45.33481336],
					[14.40085471, 45.33480203],
					[14.40236855, 45.33364391],
					[14.40940165, 45.33411622],
					[14.4140625, 45.33231032],
					[14.42098284, 45.33045268],
					[14.42134893, 45.32922804],
					[14.42263865, 45.33057678],
					[14.42642331, 45.32984734],
					[14.42654526, 45.32864571],
					[14.4272778, 45.32933235],
					[14.42947507, 45.32886016],
					[14.43148947, 45.32813072],
					[14.43075705, 45.32654285],
					[14.43136752, 45.32637107],
					[14.43252707, 45.32783031],
					[14.43527401, 45.32701492],
					[14.43527401, 45.32564163],
					[14.43753243, 45.3266716],
					[14.44124818, 45.32550752],
					[14.44129026, 45.32527137],
					[14.44074464, 45.32409132],
					[14.44036686, 45.32394373],
					[14.4321419, 45.32444525],
					[14.42584705, 45.32665813],
					[14.41904891, 45.32715964],
					[14.41930056, 45.32689404],
					[14.43898213, 45.32288146],
					[14.44166791, 45.32320607],
					[14.44364023, 45.32246852],
					[14.44309473, 45.32190788],
					[14.44175184, 45.32164228],
					[14.43852055, 45.32252753],
					[14.43784904, 45.32184887],
					[14.43831074, 45.32164228],
					[14.4454447, 45.32049167],
					[14.45022857, 45.32176042],
					[14.45018673, 45.32034421],
					[14.45469952, 45.31923902],
					[14.45737314, 45.32042193],
					[14.45963848, 45.32047272],
					[14.46051598, 45.32021701],
					[14.46561921, 45.31781435],
					[14.47295094, 45.3119086],
					[14.47946143, 45.31277895],
					[14.47944212, 45.30978215],
					[14.48491228, 45.30695665],
					[14.48924911, 45.30680203],
					[14.48737705, 45.30517304],
					[14.48790455, 45.30292141],
					[14.4920696, 45.29831254],
					[14.49591923, 45.2975713],
					[14.49678278, 45.29501212],
					[14.50481606, 45.29345465],
					[14.5136826, 45.29019845],
					[14.51733232, 45.28872466],
					[14.52075851, 45.28487706],
					[14.52505827, 45.28484035],
					[14.53246236, 45.28102481],
					[14.53765273, 45.28087008],
					[14.54155147, 45.27763605],
					[14.55139661, 45.27741992],
					[14.55355561, 45.27938378],
					[14.55793512, 45.28013527],
					[14.55699134, 45.28171623],
					[14.5604974, 45.28455615],
					[14.55465865, 45.28979361],
					[14.55221951, 45.29417574],
					[14.54965866, 45.29471755],
					[14.54128528, 45.30160582],
					[14.53760123, 45.30310655],
					[14.53674054, 45.30688131],
					[14.54325616, 45.30538845],
					[14.54686046, 45.30171645],
					[14.55071425, 45.29986],
					[14.55871761, 45.29794872],
					[14.56455195, 45.29260588],
					[14.56938624, 45.29229724],
					[14.57308447, 45.28826427],
					[14.57949054, 45.28461456],
					[14.58143675, 45.28123498],
					[14.57936144, 45.27961004],
					[14.57378066, 45.27988708],
					[14.56920826, 45.28212786],
					[14.56512845, 45.28236032],
					[14.56487131, 45.27810287],
					[14.56256175, 45.27671015],
					[14.56681991, 45.27440608],
					[14.56568694, 45.27345455],
					[14.56191766, 45.27455485],
					[14.56034136, 45.27272093],
					[14.56233525, 45.27033186],
					[14.563187, 45.26484477],
					[14.57509327, 45.25662124],
					[14.57534003, 45.25182664],
					[14.57166696, 45.2493751],
					[14.57567263, 45.24765074],
					[14.58293545, 45.24825466],
					[14.58234215, 45.24740601],
					[14.59585607, 45.24188125],
					[14.59901643, 45.23757815],
					[14.6017102, 45.23740745],
					[14.60160375, 45.23637307],
					[14.6044805, 45.23624241],
					[14.60546362, 45.2344985],
					[14.60707247, 45.23478556],
					[14.61165857, 45.23248661],
					[14.6111449, 45.22816348],
					[14.61506355, 45.22588122],
					[14.60996485, 45.22311795],
					[14.61084783, 45.21838915],
					[14.61106813, 45.21822417],
					[14.61733377, 45.21884406],
					[14.62097776, 45.21522033],
					[14.62878406, 45.21227336],
					[14.63338268, 45.21192133],
					[14.64163518, 45.20850515],
					[14.64832985, 45.20468676],
					[14.64870191, 45.20426142],
					[14.64814305, 45.20019567],
					[14.65180373, 45.19946694],
					[14.65341067, 45.20108521],
					[14.65634835, 45.19976187],
					[14.66036355, 45.19577026],
					[14.67613554, 45.18619275],
					[14.68565238, 45.17578125],
					[14.68592155, 45.17578125],
					[14.68815827, 45.17307496],
					[14.69626725, 45.16940975],
					[14.70249963, 45.16850317],
					[14.70658398, 45.16486013],
					[14.71383524, 45.16193974],
					[14.71516991, 45.15920424],
					[14.71839106, 45.15759766],
					[14.71683097, 45.15356135],
					[14.72133124, 45.15206873],
					[14.72393572, 45.14930403],
					[14.73061955, 45.14700174],
					[14.74010837, 45.13832641],
					[14.74174643, 45.13759506],
					[14.75381815, 45.13557041],
					[14.75924325, 45.13173795],
					[14.765625, 45.13085926],
					[14.76582217, 45.13085926],
					[14.76760137, 45.12953794],
					[14.78742313, 45.12735903],
					[14.78770578, 45.12458932],
					[14.79178083, 45.12297714],
					[14.80330467, 45.12098193],
					[14.80765772, 45.12149048],
					[14.80809283, 45.11948323],
					[14.81230116, 45.11764014],
					[14.81483102, 45.1144402],
					[14.8199352, 45.11584306],
					[14.82133257, 45.11430061],
					[14.82772553, 45.11285853],
					[14.83076012, 45.1159029],
					[14.8333894, 45.11620462],
					[14.83157456, 45.11082876],
					[14.83303106, 45.10861862],
					[14.84209394, 45.11068261],
					[14.84589314, 45.11408997],
					[14.84377992, 45.11023104],
					[14.84030092, 45.10777545],
					[14.84427226, 45.10371745],
					[14.84296083, 45.10030675],
					[14.84339976, 45.0938096],
					[14.84641802, 45.08753121],
					[14.85207486, 45.0852133],
					[14.85637295, 45.07905054],
					[14.85542726, 45.07373404],
					[14.85797191, 45.07154345],
					[14.8584553, 45.06832635],
					[14.86189747, 45.06716824],
					[14.86509836, 45.06157446],
					[14.87060714, 45.05588722],
					[14.87259221, 45.04788303],
					[14.87708211, 45.04543233],
					[14.87538683, 45.04018736],
					[14.87555432, 45.03922391],
					[14.87572443, 45.03892481],
					[14.87762225, 45.03890061],
					[14.88084435, 45.03642035],
					[14.88073897, 45.03179264],
					[14.88457978, 45.02639782],
					[14.88486922, 45.02108133],
					[14.88977993, 45.01121235],
					[14.89526141, 45.00542724],
					[14.89599335, 45.00180614],
					[14.89780605, 45],
					[14.89814913, 45],
					[14.8996644, 44.99528384],
					[14.89862716, 44.99200392],
					[14.90043914, 44.99053693],
					[14.89745784, 44.98905695],
					[14.89777863, 44.98782206],
					[14.8982141, 44.98714554],
					[14.91082406, 44.9793359],
					[14.91503334, 44.97608972],
					[14.91777766, 44.97279727],
					[14.92035437, 44.96768045],
					[14.92146134, 44.96144032],
					[14.92618322, 44.95498753],
					[14.92703414, 44.95188796],
					[14.92703617, 44.95092761],
					[14.92098474, 44.94025815],
					[14.92038643, 44.93153226],
					[14.91896045, 44.92956245],
					[14.91515827, 44.92927575],
					[14.91677713, 4
Download .txt
gitextract_5ax4jvme/

├── .gitattributes
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── LICENSE
├── README.md
├── biome.jsonc
├── index-internal.js
├── index.js
├── package.json
└── src/
    ├── constants/
    │   ├── errors.js
    │   └── index.js
    ├── controller/
    │   ├── afad/
    │   │   └── index.js
    │   ├── data/
    │   │   └── index.js
    │   ├── index.js
    │   └── kandilli/
    │       └── index.js
    ├── db/
    │   ├── MongoDB.js
    │   ├── index.js
    │   ├── locations/
    │   │   ├── airports.js
    │   │   ├── geojsons/
    │   │   │   ├── adriyatik-denizi.js
    │   │   │   ├── arnavutluk.js
    │   │   │   ├── azerbaycan.js
    │   │   │   ├── bosna-hersek.js
    │   │   │   ├── bulgaristan.js
    │   │   │   ├── ermenistan.js
    │   │   │   ├── filistin.js
    │   │   │   ├── gurcistan.js
    │   │   │   ├── hirvatistan.js
    │   │   │   ├── index.js
    │   │   │   ├── irak.js
    │   │   │   ├── iran.js
    │   │   │   ├── israil.js
    │   │   │   ├── kibris.js
    │   │   │   ├── libya.js
    │   │   │   ├── lubnan.js
    │   │   │   ├── makedonya.js
    │   │   │   ├── misir.js
    │   │   │   ├── mixed-locations.js
    │   │   │   ├── montenegro.js
    │   │   │   ├── rusya.js
    │   │   │   ├── sirbistan.js
    │   │   │   ├── suriye.js
    │   │   │   ├── urdun.js
    │   │   │   └── yunanistan.js
    │   │   └── index.js
    │   ├── nopeRedis.js
    │   └── populations.js
    ├── helpers/
    │   ├── cloudflare.js
    │   ├── crawler/
    │   │   ├── afad.js
    │   │   ├── helpers.js
    │   │   ├── index.js
    │   │   └── kandilli.js
    │   ├── date/
    │   │   └── index.js
    │   ├── earthquakes.js
    │   └── index.js
    ├── middlewares/
    │   ├── ban.js
    │   ├── cron.js
    │   ├── index.js
    │   ├── stats.js
    │   ├── swagger.js
    │   └── timeout.js
    ├── repositories/
    │   ├── afad/
    │   │   └── index.js
    │   ├── ban/
    │   │   └── index.js
    │   ├── data/
    │   │   ├── index.js
    │   │   └── stats.js
    │   ├── index.js
    │   ├── kandilli/
    │   │   └── index.js
    │   └── rate/
    │       └── index.js
    ├── routes/
    │   ├── afad/
    │   │   └── index.js
    │   ├── data/
    │   │   └── index.js
    │   ├── index.js
    │   ├── int/
    │   │   └── index.js
    │   ├── kandilli/
    │   │   └── index.js
    │   └── statics/
    │       └── index.js
    └── services/
        ├── afad/
        │   ├── archive.js
        │   ├── index.js
        │   └── live.js
        ├── data/
        │   ├── allProviders.js
        │   ├── get.js
        │   ├── index.js
        │   ├── search.js
        │   ├── sitemap.js
        │   ├── sitemapCount.js
        │   └── statsGeneral.js
        ├── index.js
        ├── int/
        │   ├── banCleanup.js
        │   ├── earthquakes.js
        │   └── index.js
        ├── kandilli/
        │   ├── archive.js
        │   ├── index.js
        │   └── live.js
        └── statics/
            ├── cities.js
            └── index.js
Download .txt
SYMBOL INDEX (39 symbols across 8 files)

FILE: index-internal.js
  function connector (line 13) | async function connector() {

FILE: index.js
  function connector (line 18) | async function connector() {

FILE: src/constants/errors.js
  function paramsAdder (line 1) | function paramsAdder(thiss, params) {
  class ServerError (line 11) | class ServerError extends Error {
    method constructor (line 12) | constructor(operation = '', message = '', ...params) {
  class MissingField (line 27) | class MissingField extends Error {
    method constructor (line 28) | constructor(operation = '', message = '', ...params) {
  class UnAuth (line 43) | class UnAuth extends Error {
    method constructor (line 44) | constructor(operation = '', message = '', ...params) {
  class Forbidden (line 59) | class Forbidden extends Error {
    method constructor (line 60) | constructor(operation = '', message = '', ...params) {
  class WrongParam (line 75) | class WrongParam extends Error {
    method constructor (line 76) | constructor(operation = '', message = '', ...params) {
  class TooManyRequest (line 91) | class TooManyRequest extends Error {
    method constructor (line 92) | constructor(operation = '', message = '', ...params) {
  class NotFound (line 107) | class NotFound extends Error {
    method constructor (line 108) | constructor(operation = '', message = '', ...params) {

FILE: src/db/MongoDB.js
  class CRUD (line 47) | class CRUD {
    method constructor (line 54) | constructor(db, collection) {
    method find (line 76) | async find(query = {}, limit = [0, 10], project = {}, sort = {}, colla...
    method count (line 95) | async count(query = {}) {
    method insert (line 105) | async insert(data) {
    method insertMany (line 116) | async insertMany(data) {
    method update (line 132) | async update(query = null, update = null, multiple = false, options = ...
    method delete (line 147) | async delete(query) {
    method aggregate (line 157) | async aggregate(pipeline) {
    method listCollection (line 166) | async listCollection() {
    method createIndex (line 170) | async createIndex(data, options = {}) {

FILE: src/helpers/cloudflare.js
  constant CF_TIMEOUT (line 4) | const CF_TIMEOUT = 10000;
  constant LIST_NAME (line 5) | const LIST_NAME = 'kandilli_ban_list';

FILE: src/helpers/earthquakes.js
  function locations (line 4) | function locations(turfPoint) {
  function airports (line 95) | function airports(turfPoint) {

FILE: src/repositories/ban/index.js
  constant CACHE_KEY_PREFIX (line 5) | const CACHE_KEY_PREFIX = 'ban:';
  constant BANNED_TTL (line 6) | const BANNED_TTL = 600;
  constant NOT_BANNED_TTL (line 7) | const NOT_BANNED_TTL = 300;
  constant BAN_DURATION_DAYS (line 8) | const BAN_DURATION_DAYS = 3;

FILE: src/services/int/earthquakes.js
  function kandilliImport (line 11) | async function kandilliImport() {
  function afadImport (line 19) | async function afadImport() {
  function start (line 30) | async function start() {
Copy disabled (too large) Download .json
Condensed preview — 92 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (25,758K chars).
[
  {
    "path": ".gitattributes",
    "chars": 66,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 18,
    "preview": "github: [orhanayd]"
  },
  {
    "path": ".gitignore",
    "chars": 104,
    "preview": "env.php\nnode_modules\nold\n.env\ntools/tester.js\nyarn.lock\npackage-lock.json\nyarn.lock\n.DS_Store\nCLAUDE.md\n"
  },
  {
    "path": "LICENSE",
    "chars": 1976,
    "preview": "Kandilli Rasathanesi API - Özel Lisans\n\nCopyright (c) Orhan AYDOĞDU\n\nBu yazılım ve ilgili dokümantasyon dosyalarının (\"Y"
  },
  {
    "path": "README.md",
    "chars": 16750,
    "preview": "# 🌍 Kandilli Rasathanesi / AFAD API\n\n<div align=\"center\">\n\n[![API Status](https://img.shields.io/badge/API-Active-bright"
  },
  {
    "path": "biome.jsonc",
    "chars": 671,
    "preview": "{\n\t\"$schema\": \"https://biomejs.dev/schemas/2.2.4/schema.json\",\n\t\"assist\": { \"actions\": { \"source\": { \"organizeImports\": "
  },
  {
    "path": "index-internal.js",
    "chars": 1899,
    "preview": "const express = require('express');\nconst cors = require('cors');\nconst logger = require('morgan');\n\nconst app = express"
  },
  {
    "path": "index.js",
    "chars": 2171,
    "preview": "const express = require('express');\nconst cors = require('cors');\nconst logger = require('morgan');\nconst expressJSDocSw"
  },
  {
    "path": "package.json",
    "chars": 1610,
    "preview": "{\n\t\"name\": \"kandilli-service-api\",\n\t\"version\": \"1.0.0\",\n\t\"description\": \"Kandilli Rasathanesi'nin yayınladığı son deprem"
  },
  {
    "path": "src/constants/errors.js",
    "chars": 3039,
    "preview": "function paramsAdder(thiss, params) {\n\tif (params.length === 0) {\n\t\treturn thiss;\n\t}\n\tfor (const key in params[0]) {\n\t\tt"
  },
  {
    "path": "src/constants/index.js",
    "chars": 1280,
    "preview": "require('dotenv').config();\n\nmodule.exports.CONFIG = {\n\tCRON_KEY: process.env.CRON_KEY,\n\tSTATS_KEY: process.env.STATS_KE"
  },
  {
    "path": "src/controller/afad/index.js",
    "chars": 3030,
    "preview": "const helpers = require('../../helpers');\nconst repositories = require('../../repositories');\nconst constants = require("
  },
  {
    "path": "src/controller/data/index.js",
    "chars": 12559,
    "preview": "const helpers = require('../../helpers');\nconst constants = require('../../constants');\nconst repositories = require('.."
  },
  {
    "path": "src/controller/index.js",
    "chars": 131,
    "preview": "module.exports.kandilli = require('./kandilli');\nmodule.exports.data = require('./data');\nmodule.exports.afad = require("
  },
  {
    "path": "src/controller/kandilli/index.js",
    "chars": 3054,
    "preview": "const helpers = require('../../helpers');\nconst repositories = require('../../repositories');\nconst constants = require("
  },
  {
    "path": "src/db/MongoDB.js",
    "chars": 4127,
    "preview": "/**\n * Created from @orhanayd\n * For MongoDB easy use!\n */\n\nconst { MongoClient, ObjectId } = require('mongodb');\nconst "
  },
  {
    "path": "src/db/index.js",
    "chars": 204,
    "preview": "module.exports.MongoDB = require('./MongoDB');\nmodule.exports.nopeRedis = require('./nopeRedis');\nmodule.exports.locatio"
  },
  {
    "path": "src/db/locations/airports.js",
    "chars": 10188,
    "preview": "const airports = [\n\t{\n\t\tname: 'Atatürk Havalimanı',\n\t\tnumber: 34,\n\t\tcode: 'IST',\n\t\tcity: 'İstanbul',\n\t\tcoordinates: {\n\t\t"
  },
  {
    "path": "src/db/locations/geojsons/adriyatik-denizi.js",
    "chars": 2400660,
    "preview": "module.exports = {\n\tname: 'Adriyatik Denizi',\n\tnumber: -1,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t["
  },
  {
    "path": "src/db/locations/geojsons/arnavutluk.js",
    "chars": 378378,
    "preview": "module.exports = {\n\tname: 'Feature',\n\tnumber: 355,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t"
  },
  {
    "path": "src/db/locations/geojsons/azerbaycan.js",
    "chars": 37166,
    "preview": "module.exports = {\n\tname: 'Azerbaycan',\n\tnumber: 994,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/bosna-hersek.js",
    "chars": 49609,
    "preview": "module.exports = {\n\tname: 'Bosna Hersek',\n\tnumber: 387,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t"
  },
  {
    "path": "src/db/locations/geojsons/bulgaristan.js",
    "chars": 95120,
    "preview": "module.exports = {\n\tname: 'Bulgaristan',\n\tnumber: 359,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/ermenistan.js",
    "chars": 145146,
    "preview": "module.exports = {\n\tname: 'Ermenistan',\n\tnumber: 374,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/filistin.js",
    "chars": 19145,
    "preview": "module.exports = {\n\tname: 'Filistin',\n\tnumber: 970,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n"
  },
  {
    "path": "src/db/locations/geojsons/gurcistan.js",
    "chars": 94208,
    "preview": "module.exports = {\n\tname: 'Gürcistan',\n\tnumber: 995,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t["
  },
  {
    "path": "src/db/locations/geojsons/hirvatistan.js",
    "chars": 561257,
    "preview": "module.exports = {\n\tname: 'Hırvatistan',\n\tnumber: 385,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/index.js",
    "chars": 1310,
    "preview": "const adriyatikDenizi = require('./adriyatik-denizi');\nconst arnavutluk = require('./arnavutluk');\nconst azerbaycan = re"
  },
  {
    "path": "src/db/locations/geojsons/irak.js",
    "chars": 71751,
    "preview": "module.exports = {\n\tname: 'Irak',\n\tnumber: 964,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/iran.js",
    "chars": 65438,
    "preview": "module.exports = {\n\tname: 'İran',\n\tnumber: 98,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/israil.js",
    "chars": 40847,
    "preview": "module.exports = {\n\tname: 'İsrail',\n\tnumber: 972,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t"
  },
  {
    "path": "src/db/locations/geojsons/kibris.js",
    "chars": 49962,
    "preview": "module.exports = {\n\tname: 'Kıbrıs',\n\tnumber: 82,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/libya.js",
    "chars": 138944,
    "preview": "module.exports = {\n\tname: 'Libya',\n\tnumber: 218,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/lubnan.js",
    "chars": 37036,
    "preview": "module.exports = {\n\tname: 'Lübnan',\n\tnumber: 961,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t"
  },
  {
    "path": "src/db/locations/geojsons/makedonya.js",
    "chars": 30247,
    "preview": "module.exports = {\n\tname: 'Makedonya',\n\tnumber: 389,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t["
  },
  {
    "path": "src/db/locations/geojsons/misir.js",
    "chars": 245867,
    "preview": "module.exports = {\n\tname: 'Mısır',\n\tnumber: 20,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/mixed-locations.js",
    "chars": 8126393,
    "preview": "module.exports = [\n\t{\n\t\tname: 'Akdeniz Açıkları (Suriye)',\n\t\tnumber: -1,\n\t\tcoordinates: {\n\t\t\ttype: 'MultiPolygon',\n\t\t\tco"
  },
  {
    "path": "src/db/locations/geojsons/montenegro.js",
    "chars": 68956,
    "preview": "module.exports = {\n\tname: 'Montenegro',\n\tnumber: 382,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/rusya.js",
    "chars": 92812,
    "preview": "module.exports = {\n\tname: 'Rusya',\n\tnumber: 7,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/sirbistan.js",
    "chars": 90402,
    "preview": "module.exports = {\n\tname: 'Sırbistan',\n\tnumber: 381,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t["
  },
  {
    "path": "src/db/locations/geojsons/suriye.js",
    "chars": 59532,
    "preview": "module.exports = {\n\tname: 'Suriye',\n\tnumber: 963,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t"
  },
  {
    "path": "src/db/locations/geojsons/urdun.js",
    "chars": 27019,
    "preview": "module.exports = {\n\tname: 'Ürdün',\n\tnumber: 962,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t[\n\t\t\t"
  },
  {
    "path": "src/db/locations/geojsons/yunanistan.js",
    "chars": 8546210,
    "preview": "module.exports = {\n\tname: 'Yunanistan',\n\tnumber: 30,\n\tcoordinates: {\n\t\ttype: 'MultiPolygon',\n\t\tcoordinates: [\n\t\t\t[\n\t\t\t\t["
  },
  {
    "path": "src/db/locations/index.js",
    "chars": 121,
    "preview": "const geojsons = require('./geojsons');\nconst airports = require('./airports');\nmodule.exports = { geojsons, airports };"
  },
  {
    "path": "src/db/nopeRedis.js",
    "chars": 182,
    "preview": "const nopeRedis = require('nope-redis');\nnopeRedis.config({\n\tevictionPolicy: 'lfu',\n\tmaxMemorySize: 3,\n\tisMemoryStatsEna"
  },
  {
    "path": "src/db/populations.js",
    "chars": 5786,
    "preview": "module.exports = {\n\t'-1': {\n\t\tcity: null,\n\t\tcityCode: null,\n\t\tpopulation: null,\n\t},\n\t1: {\n\t\tcity: 'Adana',\n\t\tcityCode: '"
  },
  {
    "path": "src/helpers/cloudflare.js",
    "chars": 5869,
    "preview": "const axios = require('axios');\nconst constants = require('../constants');\n\nconst CF_TIMEOUT = 10000;\nconst LIST_NAME = "
  },
  {
    "path": "src/helpers/crawler/afad.js",
    "chars": 1119,
    "preview": "const axios = require('axios');\nconst helpers_crawler = require('./helpers');\n\nmodule.exports.get = async (starts, ends)"
  },
  {
    "path": "src/helpers/crawler/helpers.js",
    "chars": 2984,
    "preview": "const helpers = require('../../helpers');\nconst db = require('../../db');\nconst constants = require('../../constants');\n"
  },
  {
    "path": "src/helpers/crawler/index.js",
    "chars": 137,
    "preview": "module.exports.kandilli = require('./kandilli');\nmodule.exports.afad = require('./afad');\nmodule.exports.helpers = requi"
  },
  {
    "path": "src/helpers/crawler/kandilli.js",
    "chars": 2164,
    "preview": "const axios = require('axios');\nconst { XMLParser } = require('fast-xml-parser');\nconst helpers_crawler = require('./hel"
  },
  {
    "path": "src/helpers/date/index.js",
    "chars": 292,
    "preview": "const KkDate = require('kk-date');\nconst kk_date = require('kk-date');\nkk_date.caching({ status: true, defaultTtl: 14400"
  },
  {
    "path": "src/helpers/earthquakes.js",
    "chars": 4122,
    "preview": "const db = require('../db');\nconst turf = require('@turf/turf');\n\nfunction locations(turfPoint) {\n\tlet closestPoly = { p"
  },
  {
    "path": "src/helpers/index.js",
    "chars": 648,
    "preview": "const constants = require('../constants');\n\nmodule.exports.crawler = require('./crawler');\nmodule.exports.date = require"
  },
  {
    "path": "src/middlewares/ban.js",
    "chars": 741,
    "preview": "const constants = require('../constants');\nconst repositories = require('../repositories');\nconst helpers = require('../"
  },
  {
    "path": "src/middlewares/cron.js",
    "chars": 708,
    "preview": "const constants = require('../constants');\n\n/**\n * This middleware for auth mechanism.\n */\nmodule.exports = async (req, "
  },
  {
    "path": "src/middlewares/index.js",
    "chars": 217,
    "preview": "module.exports.swagger = require('./swagger');\nmodule.exports.cron = require('./cron');\nmodule.exports.stats = require('"
  },
  {
    "path": "src/middlewares/stats.js",
    "chars": 711,
    "preview": "const constants = require('../constants');\n\n/**\n * This middleware for auth mechanism.\n */\nmodule.exports = async (req, "
  },
  {
    "path": "src/middlewares/swagger.js",
    "chars": 1079,
    "preview": "/* eslint-disable indent */\nmodule.exports = {\n\topenapi: '3.0.0',\n\tinfo: {\n\t\tversion: '1.0.0',\n\t\ttitle: 'Kandilli Rasath"
  },
  {
    "path": "src/middlewares/timeout.js",
    "chars": 1173,
    "preview": "module.exports = (timeoutMs = 30000) => {\n\treturn (_req, res, next) => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tif (!"
  },
  {
    "path": "src/repositories/afad/index.js",
    "chars": 1067,
    "preview": "const db = require('../../db');\nconst helpers = require('../../helpers');\nconst constants = require('../../constants');\n"
  },
  {
    "path": "src/repositories/ban/index.js",
    "chars": 2261,
    "preview": "const db = require('../../db');\nconst constants = require('../../constants');\nconst cloudflare = require('../../helpers/"
  },
  {
    "path": "src/repositories/data/index.js",
    "chars": 2592,
    "preview": "const db = require('../../db');\n\nmodule.exports.stats = require('./stats');\n\nmodule.exports.multiSave = async (data, col"
  },
  {
    "path": "src/repositories/data/stats.js",
    "chars": 3509,
    "preview": "const db = require('../../db');\n\nmodule.exports.dateBy = async (match) => {\n\treturn await new db.MongoDB.CRUD('earthquak"
  },
  {
    "path": "src/repositories/index.js",
    "chars": 211,
    "preview": "module.exports.kandilli = require('./kandilli');\nmodule.exports.data = require('./data');\nmodule.exports.rate = require("
  },
  {
    "path": "src/repositories/kandilli/index.js",
    "chars": 1071,
    "preview": "const db = require('../../db');\nconst helpers = require('../../helpers');\nconst constants = require('../../constants');\n"
  },
  {
    "path": "src/repositories/rate/index.js",
    "chars": 1873,
    "preview": "const db = require('../../db');\nconst helpers = require('../../helpers');\nconst constants = require('../../constants');\n"
  },
  {
    "path": "src/routes/afad/index.js",
    "chars": 1121,
    "preview": "const express = require('express');\nconst router = express.Router();\nconst services = require('../../services');\nconst c"
  },
  {
    "path": "src/routes/data/index.js",
    "chars": 3302,
    "preview": "const express = require('express');\nconst router = express.Router();\nconst services = require('../../services');\nconst c"
  },
  {
    "path": "src/routes/index.js",
    "chars": 1782,
    "preview": "const express = require('express');\nconst db = require('../db');\nconst router = express.Router();\n\nconst repositories = "
  },
  {
    "path": "src/routes/int/index.js",
    "chars": 857,
    "preview": "const express = require('express');\nconst router = express.Router();\nconst services = require('../../services');\nconst m"
  },
  {
    "path": "src/routes/kandilli/index.js",
    "chars": 1161,
    "preview": "const express = require('express');\nconst router = express.Router();\nconst services = require('../../services');\nconst c"
  },
  {
    "path": "src/routes/statics/index.js",
    "chars": 419,
    "preview": "const express = require('express');\nconst router = express.Router();\nconst services = require('../../services');\n\n/**\n *"
  },
  {
    "path": "src/services/afad/archive.js",
    "chars": 1051,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/afad/index.js",
    "chars": 88,
    "preview": "module.exports.live = require('./live');\nmodule.exports.archive = require('./archive');\n"
  },
  {
    "path": "src/services/afad/live.js",
    "chars": 1622,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/data/allProviders.js",
    "chars": 1228,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/data/get.js",
    "chars": 1048,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst db = require('../../db');\ncon"
  },
  {
    "path": "src/services/data/index.js",
    "chars": 302,
    "preview": "module.exports.search = require('./search');\nmodule.exports.get = require('./get');\nmodule.exports.statsGeneral = requir"
  },
  {
    "path": "src/services/data/search.js",
    "chars": 883,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/data/sitemap.js",
    "chars": 1209,
    "preview": "const helpers = require('../../helpers');\nconst db = require('../../db');\nconst repositories = require('../../repositori"
  },
  {
    "path": "src/services/data/sitemapCount.js",
    "chars": 943,
    "preview": "const helpers = require('../../helpers');\nconst db = require('../../db');\nconst repositories = require('../../repositori"
  },
  {
    "path": "src/services/data/statsGeneral.js",
    "chars": 3129,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst constants = require('../../co"
  },
  {
    "path": "src/services/index.js",
    "chars": 217,
    "preview": "module.exports.int = require('./int');\nmodule.exports.kandilli = require('./kandilli');\nmodule.exports.statics = require"
  },
  {
    "path": "src/services/int/banCleanup.js",
    "chars": 1509,
    "preview": "const helpers = require('../../helpers');\nconst repositories = require('../../repositories');\nconst constants = require("
  },
  {
    "path": "src/services/int/earthquakes.js",
    "chars": 1303,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/int/index.js",
    "chars": 108,
    "preview": "module.exports.earthquakes = require('./earthquakes');\nmodule.exports.banCleanup = require('./banCleanup');\n"
  },
  {
    "path": "src/services/kandilli/archive.js",
    "chars": 1088,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/kandilli/index.js",
    "chars": 88,
    "preview": "module.exports.live = require('./live');\nmodule.exports.archive = require('./archive');\n"
  },
  {
    "path": "src/services/kandilli/live.js",
    "chars": 1648,
    "preview": "/* eslint-disable no-inner-declarations */\nconst helpers = require('../../helpers');\nconst repositories = require('../.."
  },
  {
    "path": "src/services/statics/cities.js",
    "chars": 611,
    "preview": "const helpers = require('../../helpers');\nconst repositories = require('../../repositories');\nconst constants = require("
  },
  {
    "path": "src/services/statics/index.js",
    "chars": 45,
    "preview": "module.exports.cities = require('./cities');\n"
  }
]

About this extraction

This page contains the full source code of the orhanayd/kandilli-rasathanesi-api GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 92 files (20.6 MB), approximately 5.4M tokens, and a symbol index with 39 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!