// Path: itl/src/main/java/org/arabeyes/itl/prayertime/PrayerModule.java
// static class Location {
//     double degreeLong;  /* Longitude in decimal degree. */
//     double degreeLat;   /* Latitude in decimal degree. */
//     double gmtDiff;     /* GMT difference at regular time. */
//     int dst;            /* Daylight savings time switch (0 if not used).
//                            Setting this to 1 should add 1 hour to all the
//                            calculated prayer times */
//     double seaLevel;    /* Height above Sea level in meters */
//     double pressure;    /* Atmospheric pressure in millibars (the
//                            astronomical standard value is 1010) */
//     double temperature; /* Temperature in Celsius degree (the astronomical
//                            standard value is 10) */
// 
//     Location() {
//     }
// 
//     Location(Location src) {
//         this.degreeLong = src.degreeLong;
//         this.degreeLat = src.degreeLat;
//         this.gmtDiff = src.gmtDiff;
//         this.dst = src.dst;
//         this.seaLevel = src.seaLevel;
//         this.pressure = src.pressure;
//         this.temperature = src.temperature;
//     }
// }
// 
// Path: itl/src/main/java/org/arabeyes/itl/prayertime/PrayerModule.java
// static class SDate {
//     int day;
//     int month;
//     int year;
// 
//     SDate() {
//     }
// 
//     SDate(SDate src) {
//         this.day = src.day;
//         this.month = src.month;
//         this.year = src.year;
//     }
// }


import org.arabeyes.itl.prayertime.PrayerModule.Location;
import org.arabeyes.itl.prayertime.PrayerModule.SDate;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.LinkedHashMap;
import java.util.TimeZone;
/* Copyright (c) 2017, Fikrul Arif
 * (under LGPL license - see COPYING file)
 */
package org.arabeyes.itl.prayertime;



public class Prayer {

    private static final Method[] METHODS_CACHE = new Method[StandardMethod.values().length];

// Path: itl/src/main/java/org/arabeyes/itl/prayertime/PrayerModule.java
// static class Location {
//     double degreeLong;  /* Longitude in decimal degree. */
//     double degreeLat;   /* Latitude in decimal degree. */
//     double gmtDiff;     /* GMT difference at regular time. */
//     int dst;            /* Daylight savings time switch (0 if not used).
//                            Setting this to 1 should add 1 hour to all the
//                            calculated prayer times */
//     double seaLevel;    /* Height above Sea level in meters */
//     double pressure;    /* Atmospheric pressure in millibars (the
//                            astronomical standard value is 1010) */
//     double temperature; /* Temperature in Celsius degree (the astronomical
//                            standard value is 10) */
// 
//     Location() {
//     }
// 
//     Location(Location src) {
//         this.degreeLong = src.degreeLong;
//         this.degreeLat = src.degreeLat;
//         this.gmtDiff = src.gmtDiff;
//         this.dst = src.dst;
//         this.seaLevel = src.seaLevel;
//         this.pressure = src.pressure;
//         this.temperature = src.temperature;
//     }
// }
// 
// Path: itl/src/main/java/org/arabeyes/itl/prayertime/PrayerModule.java
// static class SDate {
//     int day;
//     int month;
//     int year;
// 
//     SDate() {
//     }
// 
//     SDate(SDate src) {
//         this.day = src.day;
//         this.month = src.month;
//         this.year = src.year;
//     }
// }


// Path: itl/src/main/java/org/arabeyes/itl/prayertime/Prayer.java
import org.arabeyes.itl.prayertime.PrayerModule.Location;
import org.arabeyes.itl.prayertime.PrayerModule.SDate;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.LinkedHashMap;
import java.util.TimeZone;

/* Copyright (c) 2017, Fikrul Arif
 * (under LGPL license - see COPYING file)
 */
package org.arabeyes.itl.prayertime;



public class Prayer {

    private static final Method[] METHODS_CACHE = new Method[StandardMethod.values().length];

    private final Location location;